Releases: algorand/go-algorand
Algorand 4.4.1
Overview
This release includes key updates to relay networking performance, stateful vote compression, and an upgrade to Golang 1.25 along with several bug fixes and test improvements.
Changelog
Enhancements
- AVM: sha512 opcode, txn commitments, (#6424)
- Build: use Go 1.25 (#6468)
- Build(deps): bump github.com/quic-go/quic-go from 0.48.2 to 0.49.1 (#6464)
- Ci: migrate to golangci-lint v2 (#6473)
- Cmds: Allow Arrays To Be Marked ": b64" (#6436)
- Config: add EnableBatchVerification option (#6454)
- Crypto: add go-based BatchVerifier implementation (#6440)
- Eval: call WellFormed from eval.transaction (#6450)
- Eval: Make counts and maxCounts simple values, not pointers (#6442)
- Network: add VP message type for stateful vote compression (#6466)
- Network: wsnet with p2p backup meshing strategy (#6391)
- Network: dynamic vote compression (#6351)
- Network: simplify UnicastPeer interface (#6452)
- Tests: Cover all wellFormed asset errors and small 0 axfer e2e test (#6417)
- Tests: Use NearZeros to make simple Equal() tests (#6458)
- Tests: expect tests for pingpong (#6427)
- Transactions: remove redundant arg from VerifiedTransactionCache (#6444)
Bugfixes
- Agreement: Fix for missing votes telemetry with logging level less than info (#6447)
- Build(deps): bump github.com/consensys/gnark-crypto from 0.12.1 to 0.18.1 (#6478)
- Ci: enable error-handling linters and fix a few bugs (#6479)
- Db: fix db.Initialize() sqlite3 error checking, add errortype linter (#6477)
- Network: call erlIPClient.m.Unlock() before calling OnClose() (#6451)
- Network: don't send VP in MOI messages if unsupported by remote peer (#6484)
- Pingpong: fix regression when making app calls (#6425)
- Teal: Fix panic when checking macro names containing non-ASCII runes (#6461)
- Tests: fix logging after TestP2PHTTPHandler finishes (#6469)
- Tests: fix flaky e2e multisig tests (#6475)
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 4.4.1
Overview
This release includes key updates to relay networking performance, stateful vote compression, and an upgrade to Golang 1.25 along with several bug fixes and test improvements.
Changelog
Enhancements
- AVM: sha512 opcode, txn commitments, (#6424)
- Build: use Go 1.25 (#6468)
- Build(deps): bump github.com/quic-go/quic-go from 0.48.2 to 0.49.1 (#6464)
- Ci: migrate to golangci-lint v2 (#6473)
- Cmds: Allow Arrays To Be Marked ": b64" (#6436)
- Config: add EnableBatchVerification option (#6454)
- Crypto: add go-based BatchVerifier implementation (#6440)
- Eval: call WellFormed from eval.transaction (#6450)
- Eval: Make counts and maxCounts simple values, not pointers (#6442)
- Network: add VP message type for stateful vote compression (#6466)
- Network: wsnet with p2p backup meshing strategy (#6391)
- Network: dynamic vote compression (#6351)
- Network: simplify UnicastPeer interface (#6452)
- Tests: Cover all wellFormed asset errors and small 0 axfer e2e test (#6417)
- Tests: Use NearZeros to make simple Equal() tests (#6458)
- Tests: expect tests for pingpong (#6427)
- Transactions: remove redundant arg from VerifiedTransactionCache (#6444)
Bugfixes
- Agreement: Fix for missing votes telemetry with logging level less than info (#6447)
- Build(deps): bump github.com/consensys/gnark-crypto from 0.12.1 to 0.18.1 (#6478)
- Ci: enable error-handling linters and fix a few bugs (#6479)
- Db: fix db.Initialize() sqlite3 error checking, add errortype linter (#6477)
- Network: call erlIPClient.m.Unlock() before calling OnClose() (#6451)
- Network: don't send VP in MOI messages if unsupported by remote peer (#6484)
- Pingpong: fix regression when making app calls (#6425)
- Teal: Fix panic when checking macro names containing non-ASCII runes (#6461)
- Tests: fix logging after TestP2PHTTPHandler finishes (#6469)
- Tests: fix flaky e2e multisig tests (#6475)
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand 4.3.0
Overview
This consensus upgrade release enhances post-quantum resiliency in Algorand block headers, enables several notable AVM usability improvements, and makes various security/reliability enhancements.
What's New
- Adds SHA-512 hashing to the block header
- Introduces txn.Access list for access to more resources
- Adds App Versioning, introduced in #6283 which allows callers to validate the specific version of the app they are transacting with.
- Adds the
falcon_verifyopcode - The format for multisigs on logic signatures has been updated
- Custom block followers will need to check both 'msig' and 'lmsig' when evaluating if a logic signature struct is empty
- SDK users will need to update their SDKs following the upgrade to restore full logic signature creation support
Protocol Upgrade
This release contains a protocol upgrade.
Note: The consensus upgrade will require conduit and indexer runners to upgrade to avoid stalling. You can find the compatible releases of these here:
- https://github.com/algorand/conduit/releases/tag/v1.9.0
- https://github.com/algorand/indexer/releases/tag/v3.9.0
Changelog
Enhancements
- AVM: Prepare for falcon_verify in v12 (#6416)
- AVM: Allow access to boxes for apps made in the same group without explicit boxrefs (#6309)
- Apps: txn.Access list for access to more resources (#6286)
- Build: .gitignore .claude (#6409)
- Chore: Remove an unneeded consensus flag to simplify work on big programs (#6392)
- Ci: build Go cache on master merges (#6408)
- Ci: some improvements for faster PR builds (#6397)
- Consensus: Consensus version v41 upgrade. (#6422)
- Docs: v12 docs (#6418)
- Goal: add '--txid' flag for displaying TxID with 'goal clerk inspect' (#6401)
- Logic: add LogicSig.LMsig field (#6419)
- Tests: fix TestStateProofLogging (#6421)
- Txn: move/add asset txn validation into their own wellFormed methods (#6396)
Bugfixes
- Goal: minor text fix (#6404)
- Network: fix mesher stopping logic (#6406)
- Node: print repeating error to the node log (#6403)
Additional Resources
Algorand BetaNet 4.3.0
Overview
This consensus upgrade release makes enhances post-quantum resiliency in Algorand block headers, enables several notable AVM usability improvements, and makes various security/reliability enhancements.
What's New
- Enables SHA-512 hashing to the block header
- Introduces txn.Access list for access to more resources
- Enables the
falcon_verifyopcode - The format for multisigs on logic signatures has been updated
- Custom block followers will need to check both 'msig' and 'lmsig' when evaluating if a logic signature struct is empty
- SDK users will need to update their SDKs following the upgrade to restore full logic signature creation support
Protocol Upgrade
This release contains a protocol upgrade.
Note: The consensus upgrade will require conduit and indexer runners to upgrade to avoid stalling. You can find pre-release versions of these for the beta release here:
- https://github.com/algorand/conduit/releases/tag/v1.9.0-rc1
- https://github.com/algorand/indexer/releases/tag/v3.9.0-rc1
Changelog
Enhancements
- AVM: Prepare for falcon_verify in v12 (#6416)
- AVM: Allow access to boxes for apps made in the same group without explicit boxrefs (#6309)
- Apps: txn.Access list for access to more resources (#6286)
- Build: .gitignore .claude (#6409)
- Chore: Remove an unneeded consensus flag to simplify work on big programs (#6392)
- Ci: build Go cache on master merges (#6408)
- Ci: some improvements for faster PR builds (#6397)
- Consensus: Consensus version v41 upgrade. (#6422)
- Docs: v12 docs (#6418)
- Goal: add '--txid' flag for displaying TxID with 'goal clerk inspect' (#6401)
- Logic: add LogicSig.LMsig field (#6419)
- Tests: fix TestStateProofLogging (#6421)
- Txn: move/add asset txn validation into their own wellFormed methods (#6396)
Bugfixes
- Goal: minor text fix (#6404)
- Network: fix mesher stopping logic (#6406)
- Node: print repeating error to the node log (#6403)
Additional Resources
Algorand 4.2.1
Overview
This release is in preparation for general P2P support roll out. In this initial phase, you can opt-in by setting EnableP2PHybridMode: true in your configuration .
What's New
- Several Reliability/Performance improvements to bring Hybrid P2P support to GA
- Privacy protection when making P2P connections
- Relay-relay network connection prioritization
- Updates of CentOS/Darwin build targets
- Logging that explicitly lays out what specific configurations are being 'auto-migrated'
Changelog
New Features
- Cicd: GitHub Actions workflows for nightly and PR tests (#6346)
Enhancements
- API: Avoid downstream generated type changes for pre-existing TransactionP… (#6375)
- Build: Use latest oapi-codegen instead of fork. (#6306)
- Build(deps): bump github.com/getkin/kin-openapi from 0.107.0 to 0.131.0 (#6326)
- Build(deps): bump github.com/pion/interceptor from 0.1.37 to 0.1.39 (#6362)
- Chore: Remove code that was need only during consensus update (#6371)
- Chore: Move allocbounds (#6324)
- Ci: add test result uploads and refactor nightly config (#6372)
- Cicd: switch nightly uploads to GitHub Actions (#6360)
- Config: reorg to allow use of basics (#6325)
- Crypto: add SHA-512 hashes (#6339)
- Dev: add auto-generated CLAUDE.md file (#6379)
- Libgoal: bump defaultKMDTimeoutSecs (#6353)
- Logging: log configuration migration messages (#6384)
- Network: disable pubsub PX for hybrid relays (#6385)
- Network: refactor networking mesh maintaining code (#6374)
- Network: do not use telemetry id for p2p nets (#6381)
- Network: add "uncompressed bytes by tag" metric (#6334)
- Network: enable vote compression for P2PNetwork (#6331)
- Node: fallback to ws or p2p on hybrid misconfiguration (#6376)
- Node Exporter: update binaries with new golang build and add arm64 support (#6387)
- Ops: Bump ubuntu and centos versions for building and testing (#6378)
- Refactor: use maps.Copy for cleaner map handling (#6373)
- Refactor: use slices.Contains to simplify code (#6357)
- Refactor: use the built-in max/min to simplify the code (#6338)
- Syntax: Use "type X" syntax instead of "type ( .... )" (#6364)
- Tests: test vFuture, so we are exercising branch512 (#6365)
Bugfixes
- API: Revert boxes pagination (#6343)
- API: Update 'value' in API Box type to be optional (reflecting updated get… (#6333)
- Agreement: fix mainLoop vs Shutdown race (#6349)
- Ci: run PR tests on release PRs (#6390)
- Cicd: fix short test flag and up parallelism (#6370)
- Cicd: fix upload and make e2e_subs_nightly required (#6369)
- Cicd: add missing AWS credential configuration to e2e_subs (#6368)
- Cicd: fix uploading testdata in nightlies (#6367)
- Cicd: fix upload and slack failure For GitHub Actions and update badges (#6366)
- Config: update diagcfg to properly set globalDir (#6394)
- Dev: fix darwin universal targets (#6383)
- Network: count received traffic before decompression (#6330)
- P2p: ignore initial no peers error in capabilities advertisement (#6310)
- Tests: fix flaky TestLedgerBlockHeaders UpgradeState check (#6382)
- Tests: waitFor was badly broken (#6359)
- Tests: be under 1A, not equal (#6335)
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 4.2.1
Overview
This patch release fixes a bug which inadvertently broke the behavior of the diagcfg utility, which is used to configure telemetry.
What's New
- Fix
diagcfgto properly set globalDir
Changelog
Bugfixes
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 4.2.0
Overview
This release is in preparation for general P2P support roll out. In this initial phase, you can opt-in by setting EnableP2PHybridMode: true in your configuration .
What's New
- Several Reliability/Performance improvements to bring Hybrid P2P support to GA
- Privacy protection when making P2P connections
- Relay-relay network connection prioritization
- Updates of CentOS/Darwin build targets
- Logging that explicitly lays out what specific configurations are being 'auto-migrated'
Changelog
New Features
- Cicd: GitHub Actions workflows for nightly and PR tests (#6346)
Enhancements
- API: Avoid downstream generated type changes for pre-existing TransactionP… (#6375)
- Build: Use latest oapi-codegen instead of fork. (#6306)
- Build(deps): bump github.com/getkin/kin-openapi from 0.107.0 to 0.131.0 (#6326)
- Build(deps): bump github.com/pion/interceptor from 0.1.37 to 0.1.39 (#6362)
- Chore: Remove code that was need only during consensus update (#6371)
- Chore: Move allocbounds (#6324)
- Ci: add test result uploads and refactor nightly config (#6372)
- Cicd: switch nightly uploads to GitHub Actions (#6360)
- Config: reorg to allow use of basics (#6325)
- Crypto: add SHA-512 hashes (#6339)
- Dev: add auto-generated CLAUDE.md file (#6379)
- Libgoal: bump defaultKMDTimeoutSecs (#6353)
- Logging: log configuration migration messages (#6384)
- Network: disable pubsub PX for hybrid relays (#6385)
- Network: refactor networking mesh maintaining code (#6374)
- Network: do not use telemetry id for p2p nets (#6381)
- Network: add "uncompressed bytes by tag" metric (#6334)
- Network: enable vote compression for P2PNetwork (#6331)
- Node: fallback to ws or p2p on hybrid misconfiguration (#6376)
- Node Exporter: update binaries with new golang build and add arm64 support (#6387)
- Ops: Bump ubuntu and centos versions for building and testing (#6378)
- Refactor: use maps.Copy for cleaner map handling (#6373)
- Refactor: use slices.Contains to simplify code (#6357)
- Refactor: use the built-in max/min to simplify the code (#6338)
- Syntax: Use "type X" syntax instead of "type ( .... )" (#6364)
- Tests: test vFuture, so we are exercising branch512 (#6365)
Bugfixes
- API: Revert boxes pagination (#6343)
- API: Update 'value' in API Box type to be optional (reflecting updated get… (#6333)
- Agreement: fix mainLoop vs Shutdown race (#6349)
- Cicd: fix short test flag and up parallelism (#6370)
- Cicd: fix upload and make e2e_subs_nightly required (#6369)
- Cicd: add missing AWS credential configuration to e2e_subs (#6368)
- Cicd: fix uploading testdata in nightlies (#6367)
- Cicd: fix upload and slack failure For GitHub Actions and update badges (#6366)
- Dev: fix darwin universal targets (#6383)
- Network: count received traffic before decompression (#6330)
- P2p: ignore initial no peers error in capabilities advertisement (#6310)
- Tests: fix flaky TestLedgerBlockHeaders UpgradeState check (#6382)
- Tests: waitFor was badly broken (#6359)
- Tests: be under 1A, not equal (#6335)
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand 4.1.2
Algorand BetaNet 4.1.2
Algorand 4.1.1
Overview
This release includes several improvements for P2P networking, API enhancements, as well as bandwidth optimizations and further fixes.
What's New
- Network/Traffic optimizations
- Improvements to P2P networking
Changelog
New Features
- Build: Add preliminary RISC-V (riscv64) build support (#6285)
- Catchpointdump: support p2p nodes (#6266)
- Network: stateless vote compression (#6276)
Enhancements
- API: Enable gzip middleware and test for it (#6284)
- API: box paging (#6279)
- Algod: Add static EnableTelemetry retry (#6183)
- Apps: Add an auto incrementing Version field to apps (#6283)
- Build: stop duplicate library LDFLAGS warning (#6268)
- Build(deps): bump golang.org/x/net from 0.33.0 to 0.36.0 (#6275)
- Build(deps): bump jinja2 from 3.1.5 to 3.1.6 in /test/heapwatch (#6271)
- Ci: fix some linter advice for old code (#6315)
- Config: Add TELEMETRY_URL support for telemetry configuration (#6237)
- Goal: Improve logicsig with signer support for clerk send (#6180)
- Goal: non-interactive wallet creation with "wallet new --unencrypted --no-display-seed" (#6160)
- Goal: added "wallet rename" (#6161)
- Kmd: upgrade karalabe/usb to karalabe/hid (#6282)
- Network: remove GossipNode.BroadcastArray (#6281)
- Network: allow multi-role phonebook entries (#6131)
- Network: tiny speedup, less allocation (#6246)
- Network: enable vote compression for P2PNetwork (#6331)
- Node Exporter: update dependencies and add darwin universal support (#6280)
- P2p: reduce severity of failed capabilities advertisement (#6318)
- P2p: peer metainfo support (#6312)
- P2p: fan in incoming txns into backlog worker (#6126)
- Performance: Node benchmarking utility (#6198)
- REST API: genesis endpoint schema definition (#6157)
- Tests: Remove sd.Valid() (#6323)
- Tests: Wait for the box list to be for the commit round (#6294)
- Tools: rotate algoh logs (#6291)
- Txhandler: Use Ip Address Instead Of Ip: port pair (#6176)
- Txn: Refactor some stateless checks on transactions (#6287)
- Util: only set rlimit if needed (#6289)
Bugfixes
- API: Use integer and uint64 to better express the genesis schema (#6311)
- Catchpoint: handle loadFromDisk/recoverFromCrash during first stage correctly (#6290)
- Catchup: improve classBasedPeerSelector on small peer sets (#6277)
- Devops: fix golang version handling in bash scripts (#6288)
- Ledger: fix duplicate empty rows for suspended accounts (#6314)
- Ledger: fix exceeding offline rows in online accounts table (#6295)
- Network: close p2p conn in CloseWithoutFlush (#6308)
- Network: count received traffic before decompression (#6330)
- Network: fix peerstore Get/Put races (#6261)
- P2p: fix DHT FindPeer internal buffer size (#6299)
- P2p: fix http RoundTripper (#6267)
- Txhandler: do not drop accepted mgs (#6257)
- Util: implement GetTotalMemory for mac and windows (#6272)
Protocol Upgrade
This release does not contain a protocol upgrade.
