Skip to content

Releases: onflow/flow-go

10th April 2025 - Third Height Co-orindated Upgrade on Mainnet26 at Block Height 109384800

11 Apr 21:16
86c40b1
Compare
Choose a tag to compare

What's Changed

Cadence

Data Availability - Websocket streaming

EVM

  • Introduce the dryCall method under EVM contract & CadenceOwnedAccount resource by @m-Peter in #6838

Execution

Storage

Util

Misc

Full Changelog: v0.39.5...v0.40.0

v0.38.4

21 Feb 17:08
34bcb31
Compare
Choose a tag to compare

What's Changed

  • [v0.38] Backport: Use SafetyData to avoid double-proposing instead of myLastProposedView by @jordanschalm in #7079

Full Changelog: v0.38.3...v0.38.4

Protocol Upgrade - EFM Recovery at Block View 20504725, Block Height 108630638

20 Feb 22:54
ad1076f
Compare
Choose a tag to compare

What's Changed

⬆️ Coordinated Upgrades for all Node Roles

This is a mechanism built into the Protocol State which enables view-coordinated upgrades to the Protocol State data model. This mechanism can be leveraged to implement coordinated behavioural changes ("protocol upgrades") for all node roles, including for backward-incompatible upgrades. Previously such upgrades were supported only for Execution Nodes and the Execution stack via the Height Coordinated Upgrade mechanism and VersionBeacon smart contract.

This release completes the upgrade feature and implements the first such coordinated upgrade, which will be used to enable EFM Recovery (see below). Further details are in the working group meeting notes.

Related PRs

🌟 Epoch Fallback Mode Recovery

Epoch Fallback Mode (EFM) is a operational mode triggered when an epoch transition fails for any reason. While in EFM, the current epoch is extended in perpetuity and epoch transitions are disabled. This has the effect of disabling changes to the node operator committee. Also, automatic reward payout is disabled and reverts to a manual governance transaction.

EFM Recovery provides a mechanism to recover from epoch failures using a governance transaction. Previously, recovery from EFM required a network upgrade (spork). With EFM Recovery, a governance transaction is used to resume epoch transitions. Further details are in the design document.

EFM Recovery is available in this release, but must be enabled via a coordinated upgrade (see above).

Related PRs

🪨 Storage Layer

⛰️ Access API

❓ Miscellaneous

Breaking Changes

  • ServiceEventCount field added to Chunk. After the Protocol State Upgrade to version 2, this field will be activated. When active, this field's presence changes the canonical encoding and hashing for Chunk and all entities which use it (for example: ExecutionResult and Block). Clients which are not using a compatible version of flow-go will compute incorrect IDs for these entities.

Full Changelog: v0.38.3...v0.39.0

18th Feb 2025 Second Height Co-orindated Upgrade on Mainnet26 at block height 103983000

19 Feb 03:29
4e7e56b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.38.2...v0.38.3

18th Feb 2025 Height Co-ordinated Upgrade on Mainnet26 at block height 103957477

10 Feb 21:41
bcb8a22
Compare
Choose a tag to compare

The Flow network has been upgraded!

This release brings a major enhancement to on-chain state storage with Account Storage Format v2, improving both the scalability and resiliency of the network.

✅ What is Included in This Upgrade?

  • Optimized Account Storage Format v2 for improved efficiency and scalability
  • Zero-Downtime State Migration - an innovative new method to seamlessly roll out the new account storage format on the live network without requiring any downtime.

🔹 What’s New in Account Storage Format v2?

The Account Storage Format v2 enhances how the on-chain state is stored and processed, resulting in significantly reduced memory usage on the Execution nodes.

The Execution State is a Merkle tree, which holds the user data (account token balances, NFTs, smart contracts deployed etc.) as payloads in its leaves. This update optimizes the storage format for the payloads resulting in fewer, more compactly serialized payloads. Fewer payloads in turn reduce the size of the MTrie, making Flow more efficient in handling state.

With this update,

  • The number of payloads will be reduced by 25-30%, reducing the on-disk storage footprint of the execution data. This will improve RAM, Disk and CPU efficiency, not only for execution nodes but also for all databases, indexers, and caches that store and serve execution data such as the access node.
  • The number of vertices in the MTrie will also be reduced by 25-30% reducing the in-memory storage footprint of the data for execution nodes, which hold the execution state in memory. With this size reduction, execution nodes will see more than an 11% reduction in memory usage (RAM) improving their stability and capacity to accommodate memory spikes during peak usage.

This improvement will also help slow down future memory growth rate as new accounts are created, further ensuring that Flow scales efficiently.
Read more about this change here 👉 GitHub Issue #3584

🔹How Will Account Storage v2 Be Rolled Out? Zero-Downtime Migration!

To deploy the new Account Storage Format without any network downtime, an innovative approach called Zero-Downtime Migration has been introduced.

Zero-Downtime Migration uses system transactions to migrate small batches of accounts, running in the background without affecting network operations. The ambient process takes several days to complete.

With this approach, the new Account Storage Format will be deployed gradually and seamlessly without requiring any action from developers or users, ensuring zero disruption to the network.

🔜 Upcoming improvements

This upgrade also lays the foundation for several upcoming improvements that will be rolled out as part of the next set of updates. These include:

  • Websocket Streaming API endpoints aimed at improving the user experience of dApps.
  • The ability to deploy protocol upgrades including downwards-incompatible changes for all node types to the live Mainnet - without requiring any network downtime!
  • Easy recovery from epoch transition failures, again requiring no downtime.

This upgrade marks another significant step in Flow’s journey toward scaling to petabytes of on-chain data. 🚀


❗Breaking change

There is a breaking change to streaming Access API in this upgrade.

Several AccessAPI and ExecutionDataAPI streaming endpoints include a message_index field in the response which indicates the order of messages sent by the server so the client can detect if they missed processing any. Previously, some endpoints used 1 as the first index in a stream while others used 0. After the HCU, all endpoints will be consistent regarding message_index and start from index 0.
APIs that will affected (Protobuf definition) -

  1. SubscribeEvents - field message_index
  2. SendAndSubscribeTransactionStatuses - field message_index
  3. SubscribeAccountStatuses - field message_index

These streaming APIs are fairly recent, therefore most apps will not be impacted.


⚠️ Deprecation

  • The protocol_version field of the NodeVersionInfo endpoint of the Access API is deprecated and will be removed in a future release.

Commit list

Account Storage Format v2 Migration

NOTE: Account Storage Format v2 is implemented in PRs in repo onflow/cadence.

Zero downtime (Recovering from failed epoch switchover)

  • Add test cases documenting CBOR's behaviour with omitted and extra fields by @jordanschalm in #6880

Data Availability

Read more

Jan 27th 2025 Height Co-orindated Upgrade on Mainnet26 at block height 101584244

28 Jan 06:02
5f6b25b
Compare
Choose a tag to compare

What's Changed

FVM

Cadence

Collection

CI/CD

Util

Full Changelog: v0.37.22...v0.37.36

Nov 21st 2024 Height Co-orindated Upgrade on Mainnet26 at block height 94361765

21 Nov 19:53
e94c022
Compare
Choose a tag to compare

What's Changed

Data Availability

CI/CD

FVM

Cadence

Full Changelog: v0.37.20...v0.37.22

October 29th 2024 Height Co-orindated Upgrade on Mainnet26 at block height 91874965

30 Oct 21:31
f059012
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.37.17...v0.37.20

October 8th 2024 Height Co-orindated Upgrade on Mainnet26 at block height 89610514

09 Oct 22:28
bfed72e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.37.16...v0.37.17

Mainnet 26

04 Oct 18:35
bb12f14
Compare
Choose a tag to compare

What's Changed

Cadence

Network

EVM

  • Port PR 6430 (Support EVM registers in check-storage) to v0.37 by @fxamacker in #6454
  • port #6467 - patch evm tracer by @ramtinms in #6475
  • backport of 6480 - handle UInt,Int types for ABI encoding/decoding by @ramtinms in #6481
  • port 6486 - Add boundary checks for ABI encoding values of type UInt & Int by @ramtinms in #6492

FVM

Execution

Tools

Misc

  • minor revision of log, to clarify the root causes of likely benign error log by @AlexHentschel in #6420
  • Transaction Validator recovers from script parse panic by @jordanschalm in #6443

Full Changelog: v0.37.10...v0.37.16