After a long period of research, implementation work, and rigorous testing, we are very excited to announce that Fast Finality (F3) is about to launch on the Filecoin mainnet! This milestone represents the culmination of a long journey. This journey began with theoretical research on consensus mechanisms, went through complex protocol design, countless whiteboard meetings, and the hard work of developers, and the final parameters stemmed from extensive passive testing (nv24, nv25). It is about to become reality and will fundamentally change the Filecoin network!
The story of F3 began with early research aimed at exploring how to bring faster finality to Filecoin's unique architecture. The first research papers and proofs of concept were written by the ConsensusLab team, followed by the development of technical specifications and implementation plans, and extensive passive testing at 100% network scale recently. Each step built on the previous one, ultimately creating a solution capable of fulfilling Filecoin's promise of faster and more reliable transaction finality.
Once seemingly unattainable goals are now only days away from becoming an indispensable part of the network. This is not just a technical upgrade; adding a new consensus mechanism to the Filecoin network will empower developers, enhance user experience, and solidify Filecoin's position as a cutting-edge decentralized storage infrastructure.
🗓️ Mark Your Calendar: F3 Release Date
🚀 F3 will activate on the Filecoin mainnet on April 29, 2025, at 18:00 UTC+8 (Epoch 4920480) 🚀
After a long period of research, implementation work, and rigorous testing, we are very excited to announce that Fast Finality (F3) is about to launch on the Filecoin mainnet! This milestone represents the culmination of a long journey. This journey began with theoretical research on consensus mechanisms, went through complex protocol design, countless whiteboard meetings, and the hard work of developers, and the final parameters stemmed from extensive passive testing (nv24, nv25). It is about to become reality and will fundamentally change the Filecoin network!
The story of F3 began with early research aimed at exploring how to bring faster finality to Filecoin's unique architecture. The first research papers and proofs of concept were written by the ConsensusLab team, followed by the development of technical specifications and implementation plans, and extensive passive testing at 100% network scale recently. Each step built on the previous one, ultimately creating a solution capable of fulfilling Filecoin's promise of faster and more reliable transaction finality.
Once seemingly unattainable goals are now only days away from becoming an indispensable part of the network. This is not just a technical upgrade; adding a new consensus mechanism to the Filecoin network will empower developers, enhance user experience, and solidify Filecoin's position as a cutting-edge decentralized storage infrastructure.
🗓️ Mark Your Calendar: F3 Release Date
🚀 F3 will activate on the Filecoin mainnet on April 29, 2025, at 18:00 UTC+8 (Epoch 4920480) 🚀
The activation of F3 on the mainnet was successfully deployed on April 14 after the extensive passive testing of network version 25, consistently proving that F3 is ready for the mainnet.
After 17 rounds of passive testing following the launch of nv25, we identified four F3 parameter adjustments that play a key role in network stability and performance, and made the corresponding adjustments:
QualityDeltaMultiplier: Increased from 1 to 8
Extending the QualityDeltaMultiplier stage's QUALITY timeout is intended to promote better propagation of proposals across the network while keeping the timeouts of other stages unaffected to maintain a fast, consistent final completion pace.
Internal publish-subscribe channel buffer size: The internal buffer size for queuing publish-subscribe messages before processing has been significantly increased to avoid message loss before they are processed.
This helps address the message processing bottleneck issue, which is caused by the slow call speed of retrieving chain state during message validation and instance startup. Additionally, all F3 messages are processed in sequence to ensure state consistency. Increasing the buffer size allows more messages to queue before processing, helping ensure messages are not dropped and the system can keep up with the rate of incoming messages.
MaxChainLength: Reduced from 100 to 20.
The longer the chain, the more states need to be retrieved and verified. Given the slower response time for interacting with chain states, this may lead to performance issues. The MaxChainLength parameter is used to limit the number of tipsets selected in each round of F3 finality operations. By lowering this value, we can reduce the amount of state that needs to be retrieved and verified, which helps improve performance and further assists F3 in keeping up with incoming messages.
HeadLookback: Set to 4.
By setting this value to 4, we can ensure that F3 can finalize blocks that are at least 4 blocks behind the chain head. This helps ensure the correctness of F3's design goals: to coexist elegantly with the EC chain.
As we shared in our blog post (F3 Mainnet Activation Delegation Mechanism), we were able to speed up the mainnet activation time through a delegation mechanism that allows us to fine-tune parameters and set these parameters through contracts without waiting for additional network upgrades.
🔍 What Happens After F3 Activation
First, when F3 is activated, there are two phases to note: 2025-04-29 at 18:00 UTC+8.
The Bootstrap Phase: Where F3 catches up with the latest state. The Steady State Phase: Finality of the ongoing chain after the initial bootstrap phase.
The bootstrap process is expected to take about 1 hour and 30 minutes, with an expected bandwidth usage of approximately ≈500KiB for uploads and downloads during this period. After the bootstrap phase, we will enter F3 steady state and complete the connection chain. You can expect the bandwidth usage at this time to be approximately ≈1MiB for uploads and downloads.
Here are the metrics we collected during the bootstrap phase of the 66th round of passive testing on the mainnet, with parameters identical to those being activated:
During the bootstrap, we observed bandwidth usage rising and falling around 500KiB/s, while in the steady state, we are observing bandwidth usage rising and falling around 1MiB/s.
Similarly, we see that the bootstrap phase takes about 1 hour and 10 minutes to complete (i.e., reaching the head of the chain), and in the steady state, we are completing the tipset starting from the head in 5 periods (i.e., finishing in less than 3 minutes).
📊 Monitoring F3 Performance
We have developed several tools to help you monitor the F3 activation status and ensure you participate in F3 and monitor its performance over time:
F3 Grafana Dashboard:
After setting up the Grafana dashboard for your Lotus instance, you can import the F3Dashboard.json template.
Sample appearance of the F3 Grafana dashboard template.
People can compare the metrics of their own nodes with the F3 public dashboard.
CLI Command: lotus f3 and its subcommands:
lotus f3 status: Quick overview of the F3 running status, showing whether F3 is running, the current instance, rounds, phases, and manifest details.
lotus f3 list-miners: This command lists the minerID connected to the Lotus node and participating in F3.
lotus f3 powertable: Subcommand for interacting with the F3 power table.
lotus f3 powertable get: Retrieves the power table for a specific instance, showing the power distribution among F3 participants.
lotus f3 powertable get-proportion: Calculates the total power proportion of the specified minerID, helping you understand your voting power in the F3 system.
lotus f3 certs: Subcommand for managing interactions with F3 finality certificates.
lotus f3 certs get: Retrieves the final certificate for a specific instance (if not specified, retrieves the latest certificate).
lotus f3 certs list: Displays a series of final certificates, allowing you to track the progress of F3.
lotus f3 manifest: Displays the current F3 manifest, which includes the system's configuration parameters, such as committee reviews, initial power tables, and other key settings.
🤝 Community Support
#fil-fast-finality F3 team will provide support during and after activation. We encourage all storage providers and node operators to post in the #fil-help channel if they have any questions about any logs or potential issues.
For storage providers, we also recommend reading some common log messages that can be seen after activation, please refer to the storage provider's F3 (Fast Finality) guide.
🗺️ Looking Ahead: From Activation to Utilization
The launch of F3 on the mainnet is an important milestone for Filecoin, but it is important to understand that this is just the beginning of the F3 user experience journey. While F3 will be active on the network, users will have to wait until ecosystem partners integrate with it through the upcoming API to experience all its benefits immediately.
Therefore, our focus in the second quarter is to prepare the API and assist users in integration. Our future plans are:
Developing the v2 API to leverage F3 in Lotus: This API foundation is crucial for exchanges, browsers, and other services to benefit from the faster finality brought by F3.
Support for Ethereum-compatible bridging API: We have begun to expand Eth* API support to incorporate the 'finality' concept, making it easier for bridges and dapps to integrate F3's finality guarantees.
These integrations will soon be launched in Lotus v1.33.0 (with more integrations to come), bringing tangible benefits of rapid finality to the broader Filecoin ecosystem.
We want to thank the entire Filecoin community for your patience, feedback, and support throughout this journey. 💙 The success of F3 is due to a dedicated group of engineers, researchers, and protocol designers, and we now look forward to seeing F3 implemented in strategic areas of the ecosystem.$FIL