The Crescendo network upgrade has been successfully completed, bringing full EVM Equivalence and  Cadence 1.0
Ecosystem
August 2, 2024
Flow Crescendo: Road To Mainnet Upgrade
Flow
Flow Crescendo: Road To Mainnet Upgrade

The Flow Crescendo Mainnet network upgrade will happen on September 4th, at 12pm UTC (5am PT). 

Crescendo is the most significant upgrade to the Flow network since genesis. This upgrade includes full EVM equivalence for all developers on Flow, as well as marking the point of maturity for the Flow native programming environment with Cadence 1.0. 

Full EVM equivalence means any smart contract, protocol, or tooling that works on Ethereum Mainnet will work out of the box on Flow, similar to an EVM L2. The difference on Flow is developers can choose to write Cadence and access Flow-native features and benefits including game-changing user experience and improved performance.  

This one-time network upgrade is estimated to take ~6 hours. The Flow Mainnet network will be in maintenance mode during this time, from 12pm UTC to 6pm UTC, meaning transactions will not be processed for the duration of the upgrade.

The Migration Process

Developers must ensure they are ready for Crescendo ahead of time and can find full details on how to stage, upgrade, and verify contracts in the Flow Migration Hub

 

Cadence 1.0 Readiness Plan

Cadence 1.0 will be the last Cadence release to include breaking changes to smart contracts on Flow; all contract owners must update their contracts in order for them to remain fully operational. To help Flow’s community of builders ensure their applications will be fully functional and ready for the upcoming migration, we have developed a process to flag transactions on the network that depend on code that might break after the Cadence 1.0 update.  

This flagging process checks transactions on the pre-1.0 networks (both Mainnet and Testnet), and inspects all smart contracts that a transaction depends on (directly and indirectly). If any smart contract inspected does not have a valid Cadence 1.0 update staged and ready for migration, the network will flag the transaction as problematic. The Execution Node operated by the Flow Foundation will log these issues, and we will provide a summary of this data to affected developers. Additionally, in order to ensure that no one is surprised by this transition, the network will probabilistically fail a small percentage of these transactions with a special error message to ensure the problem can’t be ignored.

The failure probability will increase incrementally. Starting August 7th 0% of all flagged transactions will fail, with this percentage linearly increasing with each block, until reaching a rate of 100% on September 4th. This block-by-block escalation gives developers the opportunity to monitor and adjust their systems in real-time. This escalation allows most operations to continue working even if there is a previously undetected dependency via retries. This mechanism ensures we keep Flow Mainnet stable and reliable leading up to and after the Crescendo release, demonstrating Flow’s commitment to transparent and collaborative community work. By addressing potential issues before they impact the broader ecosystem, this strategy offers a safer and more effective migration path for Cadence 1.0.

Thank you to our community and our team for the hard work to get Flow ready for this huge milestone. The Flow Foundation will work closely with partners and ecosystem members to minimize the disruption and impacts of this downtime. We will keep you updated during the upgrade via the Flow Status page and the Flow Discord.

Resources

Cadence 1.0 Breaking Changes - Learn about the changes coming to the language of Flow.

Cadence 1.0 Migration Guide - Access in-depth information and tutorials on how to update your code for Cadence 1.0

Cadence Staging - A detailed walkthrough on how to Stage your contracts.

Flow Certified Developer Program - Find professional teams you can hire to help with the work for the Crescendo Upgrade.

Supercharging apps with EVM on Flow - See some of the incredible possibilities in our latest blog.

For further support, you can join the Flow Discord and ask any questions or join our weekly Developer Office Hours (Thursday, 10am PT, every week).