Skip to content

Releases: algorand/go-algorand

Algorand 4.0.2

19 Feb 15:06
6b94028
Compare
Choose a tag to compare

GitHub Logo

Overview

This release is a follow-up to v4.0.1. It fixes an occasional issue with catchpoint file consistency. Additionally, a change to requesting block headers from the API was included, to fix issues generating downstream SDKs.

What's New

  • Update to catchpoint generation
  • Move block header requests to block endpoint and make cert and paysets optional
  • Devmode: zero out ProposerPayout when Proposer not set

Changelog

Enhancements

  • Build: upgrade minimum MacOS version to 13 (#6223)
  • Catchpoints: log ledger download failures (#6227)
  • Comments: Correct deadline comment issue#6201 (#6241)
  • Db: Remove AtomicContextWithRetryClearFn, rename to AtomicContext (#6231)
  • P2p: exclude self from GetPeers results (#6132)
  • Refactor: using slices.Contains to simplify the code (#6234)
  • Tests: add catchpoint downloading/parsing to e2e catchup tests (#6224)

Bugfixes

  • API: Block Header API Revamp (#6248)
  • API: Explicitly set the x-algorand-format for BlockHeaderResponse to 'Bloc… (#6247)
  • Catchpoints: add accountsRound check against R-320 horizon values to catchpointFileWriter (#6240)
  • Devmode: Zero out ProposerPayout when Proposer is not set (which i… (#6239)
  • Tests: Don't fail for heartbeat in same block as proposal (#6229)
  • Tests: Moar unflaky (#6228)
  • Catchpoints: move logic in readDatabaseStep to reusable catchpointOnlineAccountsIterWrapper (#6253)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand BetaNet 4.0.2

14 Feb 21:23
d94b696
Compare
Choose a tag to compare

GitHub Logo

Overview

This release is a follow-up to v4.0.1. It fixes an occasional issue with catchpoint file consistency. Additionally, a change to requesting block headers from the API was included, to fix issues generating downstream SDKs.

What's New

  • Update to catchpoint generation
  • Move block header requests to block endpoint and make cert and paysets optional
  • Devmode: zero out ProposerPayout when Proposer not set

Changelog

Enhancements

  • Build: upgrade minimum MacOS version to 13 (#6223)
  • Catchpoints: log ledger download failures (#6227)
  • Comments: Correct deadline comment issue#6201 (#6241)
  • Db: Remove AtomicContextWithRetryClearFn, rename to AtomicContext (#6231)
  • P2p: exclude self from GetPeers results (#6132)
  • Refactor: using slices.Contains to simplify the code (#6234)
  • Tests: add catchpoint downloading/parsing to e2e catchup tests (#6224)

Bugfixes

  • API: Block Header API Revamp (#6248)
  • API: Explicitly set the x-algorand-format for BlockHeaderResponse to 'Bloc… (#6247)
  • Catchpoints: add accountsRound check against R-320 horizon values to catchpointFileWriter (#6240)
  • Devmode: Zero out ProposerPayout when Proposer is not set (which i… (#6239)
  • Tests: Don't fail for heartbeat in same block as proposal (#6229)
  • Tests: Moar unflaky (#6228)
  • Catchpoints: move logic in readDatabaseStep to reusable catchpointOnlineAccountsIterWrapper (#6253)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand 4.0.1

15 Jan 16:22
63d271c
Compare
Choose a tag to compare

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

Algorand BetaNet 4.0.1

10 Jan 14:09
fdf5711
Compare
Choose a tag to compare

GitHub Logo

Overview

This release includes some minor bug fixes and updates.

What's New

  • Fix for rare issue in catchpoint file generation
  • Network fix for race condition in peer handling
  • Other minor updates

Changelog

Enhancements

  • Chore: Update license copyright to 2025 (#6215)
  • Tests: Move WaitForConfirmedTxn down into clients (#6218)

Bugfixes

  • 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)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand BetaNet 4.0.0

23 Dec 15:47
e77a367
Compare
Choose a tag to compare

GitHub Logo

Overview

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

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

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)

Bugfixes

  • Doc: voter balance version fix (#6205)
  • Ledger: add callback to clear state between commitRound retries (#6190)

Other

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

Additional Resources

Algorand 3.27.0

26 Nov 15:41
f54f099
Compare
Choose a tag to compare

GitHub Logo

Overview

This release provides performance improvements and network stability, as well as includes other enhancements and upgrades. Note that the AVM changes while present in the codebase, are in fact 'consensus-gated'; they will be available upon the next consensus upgrade.

Important Note: For performance reasons, we no longer report extra details for failed app transactions by default. This was useful if you were debugging a smart contract, but also had a significant processing performance impact. This behavior is still available if you use the developer API by setting EnableDeveloperAPI: true.

What's New

  • New block header API endpoint (to support reward-related queries)
  • Improve performance and optimize networking
  • Upgrade golang to 1.23

Changelog

Enhancements

  • API: New algod endpoint /v2/block/{round}/header omits transactions and cert from response (#6163)
  • API: MaxTealSourceBytes to 512 kb (#6068)
  • API: Add support for Private Network Access header preflight requests (#6089)
  • AVM: Implement lsig size pooling (#6057)
  • Build: Upgrade to Golang 1.23 (#6169)
  • Build: Add automake to linux dependencies (#6138)
  • Consensus: For Devnet and Betanet, support custom network upgrade delay (#6148)
  • Docs: Update README.md to be more concise (#6099)
  • P2p: upgrade libp2p (#6142)
  • Performance: do not report extra details for failed app txns (#6171)
  • Tools: heapWatch metrics imported into Prometheus/Grafana (#6147)
  • Tools: add support for developing in OpenSUSE Tumbleweed (#6153)

Bugfixes

  • AVM: Only update the bytec disassembleState for bytecblock opcodes (#6154)
  • Ci: remove homebrew autoupdate deactivation from CircleCI (#6135)
  • Network: handle p2p to ws messages propagation (#6156)
  • Network: fix misplaced p2p received TX metric (#6144)
  • Tests: Fix MaxConnectionsPerIP setting in agreement/gossip tests (#6173)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand BetaNet 3.27.0

21 Nov 21:12
d1fbc97
Compare
Choose a tag to compare

GitHub Logo

Overview

This release provides performance improvements and network stability, as well as includes other enhancements and upgrades.

What's New

  • New block header API endpoint (to support reward-related queries)
  • Improve performance and optimize networking
  • Upgrade golang to 1.23

Changelog

Enhancements

  • API: New algod endpoint /v2/block/{round}/header omits transactions and cert from response (#6163)
  • API: MaxTealSourceBytes to 512 kb (#6068)
  • API: Add support for Private Network Access header preflight requests (#6089)
  • AVM: Implement lsig size pooling (#6057)
  • Build: Upgrade to Golang 1.23 (#6169)
  • Build: Add automake to linux dependencies (#6138)
  • Consensus: For Devnet and Betanet, support custom network upgrade delay (#6148)
  • Docs: Update README.md to be more concise (#6099)
  • P2p: upgrade libp2p (#6142)
  • Performance: do not report extra details for failed app txns (#6171)
  • Tools: heapWatch metrics imported into Prometheus/Grafana (#6147)
  • Tools: add support for developing in OpenSUSE Tumbleweed (#6153)

Bugfixes

  • AVM: Only update the bytec disassembleState for bytecblock opcodes (#6154)
  • Ci: remove homebrew autoupdate deactivation from CircleCI (#6135)
  • Network: handle p2p to ws messages propagation (#6156)
  • Network: fix misplaced p2p received TX metric (#6144)
  • Tests: Fix MaxConnectionsPerIP setting in agreement/gossip tests (#6173)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand 3.26.0

02 Oct 14:34
0d10b24
Compare
Choose a tag to compare

GitHub Logo

Overview

This release adds experimental support for libp2p networking, a major advance for Algorand decentralization. We would like to emphasize that this support is in preview mode only, and not recommended for production use cases yet.

What's New

  • libp2p networking support (experimental preview)
  • AVM enhancements
  • Mac OS X universal binary

Changelog

New Features

  • Network: p2p traffic exchange for algorand node (#5939)

Enhancements

  • AVM: Derive looser, but more principled, checks of txn max size (#6114)
  • AVM: Provide access to some more block header values (#6107)
  • AVM: Expose relevant incentive constants (#6025)
  • Algons: expose error for dnsaddr command (#6121)
  • Build: add universal Mac make target (#6023)
  • Ci: update nightly builds to use universal mac update (#6071)
  • Cicd: remove mac AMD64 support from circleci (#6036)
  • Cmd: Add goal node subcommand to generate peer private key (#6078)
  • Config: use P2PHybridIncomingConnectionsLimit only for hybrid mode (#6103)
  • Config: Expose merged configuration for easier debugging (#6049)
  • Config: Add warning if EndpointAddress and NetAddress ports are equal (#6006)
  • Config: Add GoMemLimit config option and use with 10-node test (#5975)
  • Docs: p2p package overview (#6096)
  • Installer: add support for algoh to systemd installs (#6102)
  • Logging: change transaction pool re-evaluation message from warn to info (#6047)
  • Metrics: collect total netdev sent/received bytes (#6108)
  • Metrics: Add algod version to metrics (#6003)
  • Netgoal: allow unknown template tokens (#6091)
  • Network: remove ws net proto 2.1 (#6081)
  • Network: use http.ResponseController instead of GetHTTPRequestConnection (#6044)
  • Network: Allow short-lived connections to query /status endpoint when at full capacity (#6009)
  • P2p: store private keys as PKCS#8 ASN.1 DER PEM (#6119)
  • P2p: Add algod_network_p2p_* traffic metrics (#6105)
  • P2p: get rid of interface{} from PeerStore methods (#6101)
  • P2p: handle txns in pubsub validator (#6070)
  • P2p: do not advertise private and non-routable addresses (#6092)
  • P2p: support EnableGossipService in p2p streams (#6073)
  • P2p: hybrid node net identity for connection deduplication (#6035)
  • P2p: Introduce profiles for hybridRelay, hybridArchival, and hybridClient. (#6062)
  • P2p: Disable circuit relaying via libp2p.NoListenAddrs (#6064)
  • REST API: make RawTransactionAsync developer API (#6069)
  • Scripts: allow metrics filtering by labels in metrics_viz.py (#6125)
  • Tests: set pprof labels for goroutines that use the same code for different cases (#4350)
  • Tests: preserve logs on LibGoalFixture failure (#6030)

Bugfixes

  • Algod: fix telemetry lookup if phonebook is used (#6061)
  • Catchup: skip logging err for catchup cancellation (#6053)
  • Catchup: do not loop forever if there is no peers (#6037)
  • Ci: fix mac universal rebuild for nightlies (#6084)
  • Ci: update to CentOS Stream 9 and start integrating universal target (#6080)
  • Ci: increase artifact upload timeout (#6050)
  • Cicd: fix broken ci-build target (#6087)
  • Config: ensure both ws and p2p net running the same mode in hybrid (#6130)
  • Ledger: restore block listeners on reloadLedger (#6041)
  • Legacy Docker: pin ubuntu version (#6028)
  • Network: fix outgoing HTTP rate limiting (#6118)
  • Network: fix publicKeyIdentTracker data race in hybrid mode (#6110)
  • Node: clear new p2p net handlers on fast catchup (#6127)
  • Node: close ledger and part keys on node shutdown (#6039)
  • P2p: reuse existing libp2p.Host for http clients (#6129)
  • P2p: make sure p2p http server runs on all interfaces (#6123)
  • P2p: do not register closing peer (#6086)
  • P2p: fix connection deduplication in hybrid mode (#6082)
  • REST API: Fix LedgerStateDelta JSON encoding (#6106)
  • REST API: Fix to Disable API authentication (#6067)
  • Simulate: fix signers (#5942)
  • Tests: fix expect tests and add EOF linter (#6122)
  • Tests: fix a race in TestP2PwsStreamHandlerDedup (#6116)
  • Tests: fix e2e subs goal-partkey-commands (#6095)
  • Tests: fix flushing in TestVotersReloadFromDiskAfterOneStateProofCommitted (#6090)
  • Tests: fix concurrent accout commits in TestLedgerVerifiesOldStateProofs (#6060)
  • Tests: fix TestVotersReloadFromDiskAfterOneStateProofCommitted (#6024)
  • Txhandler: fix TestTxHandlerAppRateLimiter (#6075)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand BetaNet 3.26.0

24 Sep 14:30
c44aba5
Compare
Choose a tag to compare

GitHub Logo

Overview

This release adds experimental support for libp2p networking, a major advance for Algorand decentralization. We would like to emphasize that this support is in preview mode only, and not recommended for production use cases yet.

What's New

  • libp2p networking support (experimental preview)
  • AVM enhancements
  • Mac OS X universal binary

Changelog

New Features

  • Network: p2p traffic exchange for algorand node (#5939)

Enhancements

  • AVM: Derive looser, but more principled, checks of txn max size (#6114)
  • AVM: Provide access to some more block header values (#6107)
  • AVM: Expose relevant incentive constants (#6025)
  • Algons: expose error for dnsaddr command (#6121)
  • Build: add universal Mac make target (#6023)
  • Ci: update nightly builds to use universal mac update (#6071)
  • Cicd: remove mac AMD64 support from circleci (#6036)
  • Cmd: Add goal node subcommand to generate peer private key (#6078)
  • Config: use P2PHybridIncomingConnectionsLimit only for hybrid mode (#6103)
  • Config: Expose merged configuration for easier debugging (#6049)
  • Config: Add warning if EndpointAddress and NetAddress ports are equal (#6006)
  • Config: Add GoMemLimit config option and use with 10-node test (#5975)
  • Docs: p2p package overview (#6096)
  • Installer: add support for algoh to systemd installs (#6102)
  • Logging: change transaction pool re-evaluation message from warn to info (#6047)
  • Metrics: collect total netdev sent/received bytes (#6108)
  • Metrics: Add algod version to metrics (#6003)
  • Netgoal: allow unknown template tokens (#6091)
  • Network: remove ws net proto 2.1 (#6081)
  • Network: use http.ResponseController instead of GetHTTPRequestConnection (#6044)
  • Network: Allow short-lived connections to query /status endpoint when at full capacity (#6009)
  • P2p: store private keys as PKCS#8 ASN.1 DER PEM (#6119)
  • P2p: Add algod_network_p2p_* traffic metrics (#6105)
  • P2p: get rid of interface{} from PeerStore methods (#6101)
  • P2p: handle txns in pubsub validator (#6070)
  • P2p: do not advertise private and non-routable addresses (#6092)
  • P2p: support EnableGossipService in p2p streams (#6073)
  • P2p: hybrid node net identity for connection deduplication (#6035)
  • P2p: Introduce profiles for hybridRelay, hybridArchival, and hybridClient. (#6062)
  • P2p: Disable circuit relaying via libp2p.NoListenAddrs (#6064)
  • REST API: make RawTransactionAsync developer API (#6069)
  • Scripts: allow metrics filtering by labels in metrics_viz.py (#6125)
  • Tests: set pprof labels for goroutines that use the same code for different cases (#4350)
  • Tests: preserve logs on LibGoalFixture failure (#6030)

Bugfixes

  • Algod: fix telemetry lookup if phonebook is used (#6061)
  • Catchup: skip logging err for catchup cancellation (#6053)
  • Catchup: do not loop forever if there is no peers (#6037)
  • Ci: fix mac universal rebuild for nightlies (#6084)
  • Ci: update to CentOS Stream 9 and start integrating universal target (#6080)
  • Ci: increase artifact upload timeout (#6050)
  • Cicd: fix broken ci-build target (#6087)
  • Config: ensure both ws and p2p net running the same mode in hybrid (#6130)
  • Ledger: restore block listeners on reloadLedger (#6041)
  • Legacy Docker: pin ubuntu version (#6028)
  • Network: fix outgoing HTTP rate limiting (#6118)
  • Network: fix publicKeyIdentTracker data race in hybrid mode (#6110)
  • Node: clear new p2p net handlers on fast catchup (#6127)
  • Node: close ledger and part keys on node shutdown (#6039)
  • P2p: reuse existing libp2p.Host for http clients (#6129)
  • P2p: make sure p2p http server runs on all interfaces (#6123)
  • P2p: do not register closing peer (#6086)
  • P2p: fix connection deduplication in hybrid mode (#6082)
  • REST API: Fix LedgerStateDelta JSON encoding (#6106)
  • REST API: Fix to Disable API authentication (#6067)
  • Simulate: fix signers (#5942)
  • Tests: fix expect tests and add EOF linter (#6122)
  • Tests: fix a race in TestP2PwsStreamHandlerDedup (#6116)
  • Tests: fix e2e subs goal-partkey-commands (#6095)
  • Tests: fix flushing in TestVotersReloadFromDiskAfterOneStateProofCommitted (#6090)
  • Tests: fix concurrent accout commits in TestLedgerVerifiesOldStateProofs (#6060)
  • Tests: fix TestVotersReloadFromDiskAfterOneStateProofCommitted (#6024)
  • Txhandler: fix TestTxHandlerAppRateLimiter (#6075)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand 3.25.0

17 Jun 14:50
9855f57
Compare
Choose a tag to compare

GitHub Logo

Overview

What's New

  • Network optimization - fixes for ERL resources management
  • Performance enhancement - add expired stake cache to reduce db lookups
  • Miscellaneous debugging improvements
  • Other bug fixes, test improvements, and optimizations

Changelog

New Features

  • REST API: /debug/settings/pprof admin endpoint for debugging (#6018)

Enhancements

  • AVM: incentive opcodes (#5984)
  • Agreement: log current player state for VoteBroadcast and ProposalBroadcast events (#6007)
  • Build: bump golang.org/x/net from 0.17.0 to 0.23.0 (#5979)
  • Ci: upgrade github checkout action to v4 (#6010)
  • Cicd: Update to switch e2e_expect to large (#6004)
  • Ledger: introduce expired stake cache (#6014)
  • Metrics: Add TagCounterFiltered metrics for handler calls (#6013)
  • Typos: Correct some spelling mistakes (#6001)

Bugfixes

  • Cicd: update OS support in test release script (#6012)
  • Logger: fix data race in tests (#5999)
  • Tests: set communication timeout in kmd.init_wallet_handle (#6021)
  • Tests: Fix flakey htlc test (#6017)
  • Tests: Fix e2e kmd timeout (#6016)
  • Tests: Fix flakey ECDSA testing (#6005)
  • Tools: Fix Cloudflare SRV update utility after API change (#6020)
  • Txhandler: fixes to ERL resources management (#6019)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources