github algorand/go-algorand v4.0.1-stable
Algorand 4.0.1

5 hours ago

GitHub Logo

Overview

This release introduces consensus participation incentives natively in the Algorand Protocol. Specific parameters setting the payout percentages, Min/Max Balance requirements, validator behavior thresholds, and more can be found here.

To learn about the rationale and technical implementation of payouts, suspensions, and heartbeats, check out the dedicated README.

What's New

  • Ability for consensus participants to opt-in to incentives
  • Automatic heartbeat functionality to help well behaving incentive-eligible nodes stay online
  • Mimc opcodes to make it easier to build zero knowledge proof applications on Algorand (#5978)
  • Network fix for race condition in peer handling

Protocol Upgrade

This release contains a protocol upgrade.

Changelog

Enhancements

  • AVM: new teal opcodes for the MiMC hash function to support Zero Knowledge Proofs (#5978)
  • Build(deps): bump golang.org/x/crypto from 0.29.0 to 0.31.0 (#6203)
  • Catchpoints: Add onlineaccounts and onlineroundparamstail tables to snapshot files (#6177)
  • Consensus: Consensus version v40, set major release to 4 and reset minor. (#6207)
  • Eval: Feature/heartbeats (#6189)
  • Refactor: replace experimental maps and slices with stdlib (#6179)
  • Chore: Update license copyright to 2025 (#6215)
  • Tests: Move WaitForConfirmedTxn down into clients (#6218)

Bugfixes

  • Doc: voter balance version fix (#6205)
  • Ledger: add callback to clear state between commitRound retries (#6190)
  • Catchpoints: more support for EnableOnlineAccountCatchpoints (#6214)
  • Network: handle empty wsPeer supplied to transaction handler (#6195)
  • Spec: typos and a payout detail (#6210)
  • Tests: Correct an off by one, and retry instead of fail with bad accounts (#6217)
  • Tests: Minimize flakiness in TestBasicPayouts (#6211)

Other

  • Chore: fix some problematic function names (#6184)
  • Chore: fix some function name in comment (#6192)

Additional Resources

Don't miss a new go-algorand release

NewReleases is sending notifications on new releases.