github onflow/flow-go v0.29.0

latest releases: v0.37.20-re-execute-block, v0.37.21-tts, v0.37.21...
pre-release23 months ago

Mainnet 21

This release includes the following major changes,

  1. Active pacemaker
  2. BFT change to support Permissionless AN

💥 Breaking Changes

Upgrade of Flow's consensus to the Jolteon protocol, a substantially improved HotStuff derivative

Execution node

Execution node refactoring - Prerequisite for concurrent transaction execution

Execution node performance improvement - caching FVM settings

Execution node - Performance optimizations

Execution node - spork performance optimization & checkpointing improvements

Sync engine

  • Update depenencies to use onflow/go-bitswap fork by @peterargue in #3402
  • Align request handlers between common and collection sync engines by @peterargue in #3407
  • Update rate limited blobstore to drop requests by @smnzhu in #3349

Crypto

Access and Observer node

Performance benchmarking

Protocol changes required for Cadence features

  • Add AccountKeysCount to AccountKeyReader to match changes in Cadence's runtime Interface by @dreamsmasher in #3444
  • remove redundant address validity checks in AccountKeyReader by @dreamsmasher in #3463

Byzantine Fault Tolerance [BFT]

  • [BFT] add suspicious flag to a few new log messages by @peterargue in #3376
  • [BFT] Improve network message validation by @peterargue in #3375
  • [BFT] Add bitswap tracer by @smnzhu in #3390
  • [BFT] Enables disconnection from disallowed peers by @yhassanzadeh13 in #3459
  • [BFT] Tune logging and settings based on canary testing by @peterargue in #3589
  • [BFT] Handle unverifiable input error in cluster compliance core by @jordanschalm in #3610
  • [BFT] Performance Improvements for Cluster Compliance Engine by @jordanschalm in #3598
  • [BFT] Update Epoch Collection Node Join/Leave Integration Test by @jordanschalm in #3625
  • [BFT] Add consensus and sync-related message types without nil struct fields by @jordanschalm in #3523
  • [BFT] Unskip Test TestCrosstalkPreventionOnNetworkKeyChange by @LLsq2 in #3446
  • [BFT] Khalil/1716 unicast rate limiter by @kc1116 in #2840
  • [BFT] Khalil/1817 Check node is supposed to receive messages on unicast channel by @kc1116 in #3490
  • [BFT] Prevent broadcasting unicast only messages by @kc1116 in #3525
  • [BFT edge case] Process service events over ordered seals by @jordanschalm in #3461

Networking

BFT Testing

  • [BFT Testing] Corruptible LibP2P Node by @kc1116 in #3276
  • [BFT Testing][CI][Testing] create insecure module for forked libp2p-pubsub, CI and flaky test updates by @gomisha in #3420
  • [BFT Testing] fixes ingress related issues by @yhassanzadeh13 in #3591
  • [BFT Testing] Topic validator tests by @kc1116 in #3580
  • [Networking][BFT Testing] abstracts GossipSub-related primitives by @yhassanzadeh13 in #3585

Testing

  • [Testing] quarantine flaky test TestCrosstalkPreventionOnNetworkKeyChange in network/p2p/test/sporking_test.go by @gomisha in #3465
  • [BFT Testing][CI][Testing] create insecure module for forked libp2p-pubsub, CI and flaky test updates by @gomisha in #3420
  • [BN2][Testing] Dynamic generation of Helm values.yml by @gomisha in #3488
  • [BN2][Testing] - Validate automation steps for Benchnet2 by @gomisha in #3587
  • [Testing] Use localhost in unit tests to reduce firewall alerts by @peterargue in #3680
  • [Testing] Add verbose envvar and set in CI by @peterargue in #3671
  • [Testing] Fix races in network unittests by @peterargue in #3684
  • [BN2][Testing] Run latest version of Benchnet2 automation code by @gomisha in #3705
  • [BN2][Testing] Generate public-private key pair for Benchnet2 by @gomisha in #3718
  • Shorten bench and make it optional by @janezpodhostnik in #3627
  • [FVM] Bench test fixes by @janezpodhostnik in #3416
  • [FVM] Fix bench test by @janezpodhostnik in #3704

Profiler/Telemetry changes

Util changes

Checkpointing

Rolling upgrade support

🛠 General Node Improvements

Infra and operations

New Contributors

Don't miss a new flow-go release

NewReleases is sending notifications on new releases.