Releases: algorand/go-algorand
Algorand 3.26.0
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
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
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
Algorand BetaNet 3.25.0
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
- 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.
NOTE
vFuture changes are not yet available in MainNet or TestNet but can be used in private networks.
- AVM: incentive opcodes (#5984)
Additional Resources
Algorand 3.24.0
Overview
This release provides important enhancements and bug fixes to improve ease of use and stability.
Important Note
This release includes a migration, which may take a few minutes to complete. Due to the impact, we recommend applying this update progressively if running multiple nodes, to avoid large periods of concurrent inaccessibility.
What's New
- Golang 1.21 support
- Experimental full assets for account endpoint API support
- Full logs for block support
- Fix for log rotation when cold dirs are used
Changelog
Enhancements
- API: Experimental full assets for account endpoint. (#5948)
- API: blocks/{round}/logs endpoint (#5865)
- Build: Go 1.21 Support (#5994)
- Build: support SWAGGER_CONVERTER_API override (#5968)
- Build: bump golang.org/x/crypto from 0.14.0 to 0.17.0 (#5877)
- Crypto: convert BatchVerifier to interface (#5988)
- Docker: Remove usage of
gosu
and replace withsu
(#5951) - Metrics: support labeled gauges (#5956)
- Node: remove unused node GetTransaction and ListTxns methods (#5983)
- Scripts: update buildnumber to use timezone-aware datetime (#5971)
- Tests: Stabilize nightly tests. (#5992)
- Tests: Fix flakey incentive e2e tests (#5986)
- Tests: Allow go e2e tests to easily test multiple consensus versions (#5981)
- Tests: Thread testing.T through so we panic less (#5938)
- Tools: Revert "feat: add support to display mnemonic discreetly for
algokey generate
" (#5974)
Bugfixes
- Catchpoint: fix data files deletion in hot/cold dirs scenario (#5963)
- Tests: Fix
AccountsUpdateSchemaTest
ignoring error bug (#5985) - Utils: Renaming files across devices (#5977)
Protocol Upgrade
This release does not contain a protocol upgrade.
NOTE
vFuture changes are not yet available in MainNet or TestNet but can be used in private networks.
- Incentives: Suspend "absentee" accounts that don't propose. (#5757)
Additional Resources
Algorand BetaNet 3.24.0
Overview
This release provides important enhancements and bug fixes to improve ease of use and stability.
Important Note
This release includes a migration, which may take a few minutes to complete.
What's New
- Golang 1.21 support
- Experimental full assets for account endpoint API support
- Full logs for block support
- Fix for log rotation when cold dirs are used
Changelog
Enhancements
- API: Experimental full assets for account endpoint. (#5948)
- API: blocks/{round}/logs endpoint (#5865)
- Build: Go 1.21 Support (#5994)
- Build: support SWAGGER_CONVERTER_API override (#5968)
- Build: bump golang.org/x/crypto from 0.14.0 to 0.17.0 (#5877)
- Crypto: convert BatchVerifier to interface (#5988)
- Docker: Remove usage of
gosu
and replace withsu
(#5951) - Metrics: support labeled gauges (#5956)
- Node: remove unused node GetTransaction and ListTxns methods (#5983)
- Scripts: update buildnumber to use timezone-aware datetime (#5971)
- Tests: Stabilize nightly tests. (#5992)
- Tests: Fix flakey incentive e2e tests (#5986)
- Tests: Allow go e2e tests to easily test multiple consensus versions (#5981)
- Tests: Thread testing.T through so we panic less (#5938)
- Tools: Revert "feat: add support to display mnemonic discreetly for
algokey generate
" (#5974)
Bugfixes
- Catchpoint: fix data files deletion in hot/cold dirs scenario (#5963)
- Tests: Fix
AccountsUpdateSchemaTest
ignoring error bug (#5985) - Utils: Renaming files across devices (#5977)
Protocol Upgrade
This release does not contain a protocol upgrade.
NOTE
vFuture changes are not yet available in MainNet or TestNet but can be used in private networks.
- Incentives: Suspend "absentee" accounts that don't propose. (#5757)
Additional Resources
Algorand 3.23.1
Overview
This release is focused on providing the necessary software functionality for non-archival relays on the network. It includes promoting archival nodes to first class citizens that can be resolved as their own class of nodes.
What's New
- Full support for non-archival relay nodes
- SRV record resolution of dedicated archival nodes
Changelog
New Features
- Network: Class-based Peer Selector (#5937)
Enhancements
- Archival Support: Remove configurable support for catching up from "archivers" (#5920)
- Blocks: Bump min to save based on catchpoint support (#5927)
- Build: upgrade to go 1.20.14 (#5949)
- Docker: Bump debian version in algod container (#5955)
- Feat: add support to display mnemonic discreetly for
algokey generate
(#5886) - Netgoal: Use --last-part-key-round when generating a goalnet template (#5912)
- Network: Penalize peer/class rankings when peer does not have catchpoint (#5959)
- Network: Support simple liveness check via http on gossip server port. (#5944)
- Network: Archival node DNS Resolution (#5940)
Bugfixes
- Cicd: fix package signing issues (#5934)
- Network: use network context for DNS operations in readFromSRV (#5936)
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 3.23.1
Overview
This release fixes an issue where peers were not ranked for performance serving catchpoints.
Changelog
Enhancements
- Docker: Bump debian version in algod container (#5955)
Bugfixes
- Network: Penalize peer/class rankings when peer does not have catchpoint (#5959)
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 3.23.0
Overview
This release is focused on providing the necessary software functionality for non-archival relays on the network. It includes promoting archival nodes to first class citizens that can be resolved as their own class of nodes.
What's New
- Full support for non-archival relay nodes
- SRV record resolution of dedicated archival nodes
Changelog
New Features
- Network: Class-based Peer Selector (#5937)
Enhancements
- Archival Support: Remove configurable support for catching up from "archivers" (#5920)
- Blocks: Bump min to save based on catchpoint support (#5927)
- Feat: add support to display mnemonic discreetly for
algokey generate
(#5886) - Netgoal: Use --last-part-key-round when generating a goalnet template (#5912)
- Network: Support simple liveness check via http on gossip server port. (#5944)
- Network: Archival node DNS Resolution (#5940)
- Build: Upgrade to Go 1.20.14
Bugfixes
- Cicd: fix package signing issues (#5934)
- Network: use network context for DNS operations in readFromSRV (#5936)
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand 3.22.1
Overview
Please apply this upgrade at your earliest convenience.
Changelog
Bug Fix
- AVM: Consider the current auth addr for each inner txn
Protocol Upgrade
This release does not contain a protocol upgrade.