Skip to content

Releases: onflow/flow-go

v0.43.1-rc.6

07 Oct 23:01
fa65b20
Compare
Choose a tag to compare
v0.43.1-rc.6 Pre-release
Pre-release

What's Changed

Data Availability

Execution

Immutability

  • Extend InterfaceFromMessageCode, define UntrustedMessage interface. by @AndriiDiachuk in #7739
  • messages.Proposal, messages.ClusterProposal: message/internal split + validation by @UlyanaAndrukhiv in #7731
  • messages.CollectionGuarantee: message/internal split + validation by @UlyanaAndrukhiv in #7761
  • messages.BlockResponse, messages.ClusterBlockResponse: message/internal split + validation by @UlyanaAndrukhiv in #7740
  • messages.SyncRequest, messages.SyncResponse and messages.BatchRequest: message/internal split + validation by @UlyanaAndrukhiv in #7776
  • messages.EntityRequest and messages.EntityResponse: message/internal split + validation by @AndriiDiachuk in #7790
  • messages.ChunkDataRequest, messages.ChunkDataResponse and messages.RangeRequest: message/internal split + validation by @UlyanaAndrukhiv in #7798
  • messages.ApprovalRequest and messages.ApprovalResponse : message/internal split + validation by @AndriiDiachuk in #7760
  • messages.BlockVote, messages.ClusterBlockVote, messages.TransactionBody and messages.Transaction: message/internal split + validation by @AndriiDiachuk in #7801
  • messages.TimeoutObject and messages.ClusterTimeoutObject: message/internal split + validation by @UlyanaAndrukhiv in #7818
  • flow.ExecutionReceipt and messages.DKGMessage: message/internal split + validation by @UlyanaAndrukhiv in #7823
  • messages.ResultApproval and messages.TestMessage: message/internal split + validation by @AndriiDiachuk in #7824
  • Sync feature/networking-layer-immutability with Master by @AndriiDiachuk in #7900
  • Network Layer by @AndriiDiachuk in #7887

Scheduled Transactions

FlowEVM

  • Add the MaxGasConsumed field in EVM Result type by @m-Peter in #7951

Storage

Cadence

Testing

Util

CI

flow-go-sdk

Core Contracts

  • Updates core-contracts deps and adds deployment for FlowTransactionSchedulerUtils by @joshuahannan in #7938

Documentation

New Contributors

Full Changelog: v0.43.0...v0.43.1-rc.6

🎺 Forte (Mainnet 27)

10 Sep 00:17
7874657
Compare
Choose a tag to compare
Pre-release

The Forte network upgrade will unlock the next era of Flow. This upgrade will empower developers and AI agents building on Flow, unlocking protocol composability and native automation directly on the network. Forte upgrades Flow with the tools and performance to make it a best-in-class option for building with AI, tapping into Cadence’s developer friendliness, launching new features, and introducing a reusable component library alongside core protocol improvements.

Forte advances the roadmap across all three pillars - developer experience, efficiency and scalability, and protocol autonomy.

🧑‍💻✨ Revolutionizing Developer Experience

🕦 🤖 Build Autonomous Apps with Scheduled Transactions

Flow adds Scheduled Transactions, the first native time scheduler that lets on-chain apps run tasks automatically, like cron job for blockchains. So applications are no longer restricted to being reactive only to user transactions.
Scheduled Transactions enable autonomous apps, for example DeFi protocols and AI-driven agents that proactively rebalance, settle, sweep on a schedule, all without external keepers. They run natively on the network, which simplifies operations, reduces off-chain dependencies, and makes behavior auditable and predictable in code. For builders, this means fewer moving parts to deploy, fewer operational scripts to maintain, and a cleaner path to automation-heavy use cases that feel instant and reliable to end users. This work implements FLIP 330: Scheduled Transaction.

🔢🔢🔢🔢 High-precision DeFi with 128-bit fixed-point types in Cadence

Cadence now supports Fix128 and UFix128, 128-bit fixed-point types enabling precision up to 24 decimal places for advanced DeFi, risk engines, interest accrual, and other finance-heavy workloads. These types expand numeric range while preserving fine fractional precision, and all existing Fix64 and UFix64 values convert losslessly to their 128-bit counterparts. In contrast, most Ethereum contracts rely on integer math with token “decimals” rather than a native fixed-point type, which means Cadence’s built-in 128-bit fixed-point support removes much of the bespoke arithmetic scaffolding and reduces rounding-related errors in application code. This work implements FLIP 341: Add 128-bit Fixed-point Types to Cadence.

📱 🔑 Native WebAuthn and Passkey Support

Flow adds native WebAuthn support to the protocol: you can now authorize transactions with passkeys and other WebAuthn credentials. The Access API and Cadence FVM have been extended to accept and validate WebAuthn signatures, enabling device-backed credentials from iOS, Android, browsers, and password managers to sign transactions. This work implements FLIP 264: WebAuthn Credential Support, bringing standard WebAuthn authentication to Flow accounts without breaking existing flows.

For users, passkeys eliminate the need for seed phrases while preserving self-custody and secure cross-device portability. Wallets and applications can take advantage of widely adopted WebAuthn implementations in browsers and operating systems, which makes integration simple. For example, with Flow’s native account abstraction model and on-chain passkey support, developers can build smart wallets on Flow without relying on additional smart contract layers like ERC-4337. Flow Wallet will soon be integrating WebAuthn in the near future.

🤖 ❤️ 🤗 Descriptive, AI- and human-friendly Cadence errors

Cadence compiler and linter errors are now designed for AI assistance, making it easier for agents and IDE copilots to fix issues automatically. Messages for common problems, including pre-1.0 keyword changes like pub, have been rewritten to explain the cause, suggest concrete fixes, and link directly to reference docs and migration notes. These enriched primary and secondary messages are also surfaced through the Cadence language server, so tools like Cursor and other agent-based editors can follow the link, apply the recommended change, and validate the result. The outcome is faster feedback, fewer round trips to documentation, and a smoother path for AI agents that refactor or migrate Cadence code, all of which advances Flow’s goal of first-class developer experience for agent-powered workflows.

⚙️ Boosting Efficiency and Scalability

🦡 ➡️ 🪨 Switching node database from BadgerDB to PebbleDB for more scalability

This release upgrades node storage to PebbleDB to deliver better uptime, smoother operations, and lower total cost for operators. PebbleDB offers higher stability under load for our workloads, eliminating memory spikes, effective automated pruning of historical data, a modest performance edge in typical node operations, and broad ecosystem adoption that supports rapid improvements and long-term runtime reliability. In practice, these strengths translate into more scalable nodes, simpler database management, and improved ROI for operators. Following the migration, measured outcomes show significant gains: depending on node type memory usage improves by up to 80%, CPU usage drops by up to 60%, and annual disk usage is reduced by up to 30%.

🗝️🗝️🗝️ ➡️ 👉 👉 🗝️ Make state storage more efficient with account key de-duplication

Public key de-duplication streamlines Flow’s state while preserving the flexibility of multi-key accounts. Many apps intentionally reuse the same key to manage multiple in-flight transactions, since each key maintains its own sequence number. With de-duplication, when a previously added key is added again the state now references a single canonical entry instead of storing another copy, and existing accounts have been de-duplicated transparently. The duplication problem is significant: over half of all keys (53%) are duplicates, and one in ten accounts (10%) contain duplicate keys. Removing duplicates cuts a large chunk of redundant data, shrinking Flow’s execution state by about 6% (21 GB out of 349 GB). Specifically, we trimmed 0.29 billion of the current 1.82 billion entries in Flow’s low-level storage trie, making state access leaner and faster. This translates to an estimated 6–18% reduction in memory used by Execution Nodes, and benefits any node or service that touches payloads by moving less data and finishing work sooner.

📈 🎚️ Overload resilience with adaptive collection rate limiting

Flow’s architecture functions like [an assembly line](https://flow.com/why-flow: transactions are first batched into blocks, then executed, and finally committed (“sealed”) only after the results have passed verification . This pipelined design enables massive scalability. However, if the collection nodes, the first stage of the pipeline, accept more transactions than subsequent stages can process, a backlog may accumulate inside the pipeline. Forte introduces adaptive rate limiting for collections so that when execution or sealing lags, collection nodes automatically ease off. The result is a steadier pipeline flow, even at transaction rates of several hundred per second.
This resilience feature is increasingly important as transaction volume continues to grow. With Flow Actions, AI agents are expected to drive additional traffic. The limiter activates only above a configurable threshold and disengages automatically once sealing catches up. Load testing at upwards of 300 TPS shows that inserting one or two blocks with empty collections is often sufficient to clear accumulated sealing lag. Consequently, the limiter engages only for a small minority of blocks. Governance and protocol transactions are prioritized, ensuring that critical operations continue even while rate limiting is active. Sealing lag is tracked continuously and exposed as a metric for observability and tuning. In this way, Flow strengthens its resilience under challenging operational conditions, remaining highly responsive even during periods of network overload.

🚧 🧱 Unlocking (near) real-time transaction results

Flow’s long-term vision for data availability is to enable clients and developers to trustlessly access Flow’s state with minimal latency. In practice, this is achieved through Access Nodes (ANs), which replicate block state and transaction results, serving them directly without relying on third-party services.
The Crescendo upgrade marked a major milestone towards this vision: ANs began locally replicating account data along with the transaction results and events for each sealed block. This allowed ANs to serve state queries directly from their own data, reducing latency and easing load on the Execution Nodes through local instead of remote data lookups. Shortly after, the next upgrade introduced streaming endpoints, further improving developer experience when building dApps that consume chain data. Today, ANs replicate account data and results for sealed blocks only, avoiding the complexity of handling forks.
With Forte’s groundwork, ANs will soon be able to ingest account data and transaction results for both Cadence and EVM prior to finalization and sealing, with the ability to replicate and serve da...

Read more

7th Aug 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 122174655

08 Aug 00:57
5ad9dd5
Compare
Choose a tag to compare

17th June 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 116720200

18 Jun 16:38
5fe6535
Compare
Choose a tag to compare

What's Changed

Data Availability

  • Fix high CPU usage related to EVM DeltaView.AddressInAccessList by @m-Peter in #7502
  • adding access node compatibility for new version by @j1010001 in #7500

Cadence

Storage

Full Changelog: v0.42.0-rc.2...v0.42.1

3rd June 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 115211511

16 Jun 17:03
5a5a11d
Compare
Choose a tag to compare

What's Changed

Data Availability

Cadence

Execution

FVM

Storage

  • Refactor hotstuff Persister by @zhangchiqing in #7358
  • Fix Writer.Set() & Writer.Delete() args not being safe to modify (BadgerDB) by @fxamacker in #7400
  • Optimize memory cache key creation and key format for some stores by @fxamacker in #7391
  • Optimize iterating and seeking with BadgerDB by @fxamacker in #7432
  • Fix memory caches getting out of sync with databases (BadgerDB and Pebble) by @fxamacker in #7324
  • Support Execution Fork Evidence for new databases (BadgerDB & Pebble) by @fxamacker in #7388

Bug fixes

  • Fix bug where protected types appear as fields in unprotected types by @jordanschalm in #7386

Util

Full Changelog: v0.41.4...v0.42.0-rc.2

23rd May 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 114045444

16 Jun 15:36
b120bc4
Compare
Choose a tag to compare

What's Changed

Data Availability

Cadence

Full Changelog: v0.41.0...v0.41.4

v0.41.3

21 May 23:42
23eb808
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.41.2...v0.41.3

v0.41.2

20 May 20:49
1b98944
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.41.1...v0.41.2

15th May 2025 - Height Coordinated Upgrade on Mainnet26 at Block Height 113162222

07 May 22:33
0000b9b
Compare
Choose a tag to compare

What's Changed

EVM Pectra Update

Data Availability

Storage

  • Close BadgerDB before db init functions return error by @fxamacker in #7229
  • Remove old code in initBadgerDB() by @fxamacker in #7230
  • Optimize storing execution receipts in BadgerDB by @fxamacker in #7238
  • Optimize speed & memory for generating db keys (BadgerDB and Pebble) by @fxamacker in #7243
  • Discard BadgerDB transaction when iterator is closed by @fxamacker in #7254
  • Add Closer to Batch interface and use it to prevent memory leak (BadgerDB & Pebble) by @fxamacker in #7257
  • Add db Seeker for up to ~50x speedup & ~18x less memory seeking key in range (BadgerDB, Pebble) by @fxamacker in #7255
  • Fix batch remove in ServiceEvents to use the correct batch (BadgerDB, Pebble) by @fxamacker in #7323
  • Add database multiReader, multiIterator, multiSeeker (BadgerDB, Pebble) by @fxamacker in #7320
  • Remove unneeded lock in storage Callbacks and document it isn't safe for concurrent use by @fxamacker in #7352
  • Update DB.Reader() API to not return error by @fxamacker in #7354
  • Fix deadlock in batch writes by @zhangchiqing in #7341
  • Support NodeDisallowList for db migration by @fxamacker in #7361
  • Refactor to rename blocklist to disallowlist for consistency by @fxamacker in #7363

Crypto

Cadence

CI/CD

Misc

Full Changelog: v0.40.0...v0.41.0

v0.40.2

07 May 21:29
b058543
Compare
Choose a tag to compare

What's Changed

  • [Access] Allow small gap between streaming start and indexed height - v0.40 by @peterargue in #7360
  • [Access] Update websockets events and account status reponses to use json-cdc by @peterargue in #7359

Full Changelog: v0.40.1...v0.40.2