Skip to content

Releases: algorand/go-algorand

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

Algorand BetaNet 3.25.0

12 Jun 15:02
26362ad
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

  • 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

20 May 14:30
5c2cf06
Compare
Choose a tag to compare

GitHub Logo

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 with su (#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

13 May 15:47
5466548
Compare
Choose a tag to compare

GitHub Logo

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 with su (#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

20 Mar 14:31
34171a9
Compare
Choose a tag to compare

GitHub Logo

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

16 Mar 20:27
5604f7f
Compare
Choose a tag to compare

GitHub Logo

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