Flan hard fork proposal, Nov 9th 16:30 UTC

tldr;

  • Flan hard fork is proposed for block #16068685 targeting an activation around Nov 9th, 16:30-17:00 UTC (8:30-9am PST). The proposal requires validators ONLY to opt-in.
  • Validators, if you agree with this hard fork, please upgrade both your validator nodes and proxies to v1.7.0 and fill out this form to help us keep track of who has upgraded
  • This release includes the consensus changes (see more details in @pastoh’s original forum post) made as a result of the mainnet stall in July
  • Baklava and Alfajores have already gone through this hard fork without issues

We’re excited to share more details about the proposed Flan hard fork planned for November 9th. The mainnet stall in July uncovered an issue in the celo-blockchain implementation of the Istanbul PBFT consensus, which was temporarily resolved with the 1.5.8 patch and a hotfix to reduce the gas limit per block (big thanks again to all the validators who were so quick to approve the hotfix!).

Now that the stall is behind us, we are proposing to update the consensus protocol so that we can raise the block gas limit again. @pastoh’s forum post has more details, but to briefly summarize:

  • A RoundChangeCertificate is composed of:
    • RoundChange messages from validators, and
    • (optionally) PreparedCertificates containing proposals that might have previously passed prepare consensus
  • In the current implementation, the RoundChange messages reference a full block via the PreparedCertificate - which means the RoundChangeCertificate can become bloated (this was the cause of the network stall)
  • As a quick fix, we lowered the block gas limit to 20M to unstall the network
  • In the v1.7.0 release, RoundChange messages now refer to a block hash and not the full block, therefore removing the risk of a RoundChangeCertificate being too large
    • The hard fork also includes updates to the block field representation that should solve compatibility issues with the ethers.js library, as well as a rollback of the snap sync feature that was enabled in the v1.7.0-beta. See the github link above for more details.
  • Because this change applies only to consensus, the hard fork applies only to validators

Since this change is backwards incompatible, with community support we settled on a hard fork as the best path forward. Validators, if you agree with this hard fork please upgrade your validator nodes and proxies to the latest version (v1.7.0) and fill out this form by the following dates to help us track who has yet to upgrade.

  • Baklava (already complete): October 12th, 16:30 - 17:00 UTC (8:30 - 9:00am PDT)
  • Mainnet: November 9th, 16:30 - 17:00 UTC (8:30 - 9:00am PST). Block number: 16068685

Thanks all for your support and cooperation!

UPDATED on 7th Nov to correct date and add activation block numbers

6 Likes

Update: we made a mistake when calculating the date for this hard fork, and it’s actually Nov 9th at 16:30 UTC

3 Likes

Love the community chosen name! :custard:

Excited for this one!

1 Like