Meta

Blog Post Content

🎬 Action Required

As of epoch 4919580, F3 is active on Mainnet! Finality is now just a couple of minutes away – a huge step forward for the Filecoin network.

As a result, node operators should set the initial power table CID so that they don’t need to rely on past blockchain state to compute this. Failure to do so will cause nodes without historical state leading up to the bootstrap epoch on 2025-04-29T10:00:00Z to not participate in F3. Setting the initial power table CID can be accomplished via two means:

  1. Upgrade to the Lotus 1.32.3 on your Lotus Chain Node. This small patch sets the initial power table in the build constants (diff).
    1. Storage providers only needs to upgrade their Lotus chain node to this release.
  2. Set the F3_INITIAL_POWERTABLE_CID environment variable to: export F3_INITIAL_POWERTABLE_CID="bafy2bzacecklgxd2eksmodvhgurqvorkg3wamgqkrunir3al2gchv2cikgmbu" before starting your node.

❓ Why is this necessary? During the bootstrap process, F3 began its operation at epoch 4918680, taking the power table from the state at that epoch to start finalising tipsets. The first certificate refers to the above power table by CID, but there can be many first certificates, and their distinguishing factor is which power table they were created by. The above CID is the genesis information of F3 for Filecoin’s Mainnet, and thus the node requires it to distinguish it from any other possible certificate sequence.

As long as the node possesses the full state for epoch 4918680, it can use that state to begin following the certificate sequence, but without it, the node needs a direction telling it “F3 started with power table with this CID”.

❓ Why wasn’t this included in the f3 activation contract where all the other f3 activation parameter were set?

The f3 activation contract was designed with the mindset to “have as small as scope as necessary”. As a result, the initial power table CID wasn’t included. In retrospect, it maybe have been wise for the contract to have a second method to allow the implementers to set-once-and-only-once the power table CID after the bootstrap epoch.

❓ Does the F3 engineering team have the ability to perform any kind of passive testing or parameter adjusting on mainnet?

No, we are back to the permissionless network that we know and love. Per FRC-0099, the F3 activation contract was a use-once mechanism. Given the the bootstrap epoch has passed, the contract is now immutable.

👀 Looking ahead