Skip to content

Releases: algorand/go-algorand

Algorand BetaNet 3.22.1

05 Mar 21:27
eb702d4
Compare
Choose a tag to compare

GitHub Logo

Overview

This is a backport of v3.22.1-stable to beta. 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.


Additional Resources

Algorand 3.22.0

05 Feb 15:30
6b50897
Compare
Choose a tag to compare

GitHub Logo

Overview

This release includes networking optimization improvements, as well as starts laying the groundwork for non-archival relays.

Note: in this release, NetAddress will no longer automatically mark a node as archival, so if you were relying solely on NetAddress for this, you should also set Archival: true in your configuration before applying the upgrade. This is a rare configuration, but if you only had NetAddress set, this release will progressively delete blocks from your database until the node only has recent blocks (probably over multiple days while staying caught up to the chain). The sqlite database will not reclaim this disk automatically, so you may want to run a vacuum after it's complete by shutting down the node and running: sqlite3 data/mainnet-v1.0/ledger.block.sqlite "VACUUM"

If you intend to become non-archival (formerly as an archival node), your best path forward is a fresh install.

What's New

  • New archival node profile and changes to NetAddress defaults
  • Networking optimizations

Changelog

Enhancements

  • API: optimize /transactions/pending/{txid} endpoint (#5891)
  • API: Make maps the right size from the start (#5906)
  • AVM: Add a lot of type annotations to opcodes (#5902)
  • AVM: report structure txn failure info (#5875)
  • AVM: Require every global field to get tested (#5864)
  • Algocfg: Introduce new archival node algocfg profile. (#5893)
  • Blockdb: bound max deleted blocks per blockdb sync (#5910)
  • Chore: Update testing to use current python SDK. (#5861)
  • Config: Archival mode is no longer automatically enabled when netAddress is s… (#5904)
  • Docs: Updates to SECURITY.md (#5907)
  • Docs: Eliminate a unicode character that causes trouble in doc generation (#5866)
  • Network: Like #5906, but for messageFilter, optimize cache mem and speed (#5913)
  • Txhandler: kick in ARL at 1/2 of a base backlog capacity (#5873)

Bugfixes

  • AVM: Don't treat any as constant int in loads, stores (#5884)
  • Dryrun: Improve assembler error reporting (#5889)
  • Txhandler: fix ARL triggering without ERL (#5872)

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: Adding sumhash and falcon_verify (#5599)

Additional Resources

Algorand BetaNet 3.22.0

29 Jan 15:53
7a0cd10
Compare
Choose a tag to compare

GitHub Logo

Overview

This release includes networking optimization improvements, as well as starts laying the groundwork for non-archival relays.

Note: in this release, NetAddress will no longer automatically mark a node as archival, so if you were relying solely on NetAddress for this, you should also set Archival: true in your configuration before applying the upgrade. This is a rare configuration, but if you only had NetAddress set, this release will progressively delete blocks from your database until the node only has recent blocks (probably over multiple days while staying caught up to the chain). The sqlite database will not reclaim this disk automatically, so you may want to run a vacuum after it's complete by shutting down the node and running: sqlite3 data/mainnet-v1.0/ledger.block.sqlite "VACUUM"

If you intend to become non-archival (formerly as an archival node), your best path forward is a fresh install.

What's New

  • New archival node profile and changes to NetAddress defaults
  • Networking optimizations

Changelog

Enhancements

  • API: optimize /transactions/pending/{txid} endpoint (#5891)
  • API: Make maps the right size from the start (#5906)
  • AVM: Add a lot of type annotations to opcodes (#5902)
  • AVM: report structure txn failure info (#5875)
  • AVM: Require every global field to get tested (#5864)
  • Algocfg: Introduce new archival node algocfg profile. (#5893)
  • Blockdb: bound max deleted blocks per blockdb sync (#5910)
  • Chore: Update testing to use current python SDK. (#5861)
  • Config: Archival mode is no longer automatically enabled when netAddress is s… (#5904)
  • Docs: Updates to SECURITY.md (#5907)
  • Docs: Eliminate a unicode character that causes trouble in doc generation (#5866)
  • Network: Like #5906, but for messageFilter, optimize cache mem and speed (#5913)
  • Txhandler: kick in ARL at 1/2 of a base backlog capacity (#5873)

Bugfixes

  • AVM: Don't treat any as constant int in loads, stores (#5884)
  • Dryrun: Improve assembler error reporting (#5889)
  • Txhandler: fix ARL triggering without ERL (#5872)

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: Adding sumhash and falcon_verify (#5599)

Additional Resources

Algorand 3.21.0

09 Jan 15:30
2c32825
Compare
Choose a tag to compare

GitHub Logo

IMPORTANT
This release requires a protocol upgrade.
This release contains a consensus protocol upgrade, which implements the following spec: https://github.com/algorandfoundation/specs/tree/925a46433742afb0b51bb939354bd907fa88bf95

Overview

This release introduces dynamic round times, as well as additional AVM opcodes. This release contains a consensus upgrade, and will require upgrades of conduit/indexer as well.

What's New

  • Dynamic round times, which as configured will have the effect of shortening average round times
  • AVM: Elliptic curve opcodes on pairing friendly curves.
  • AVM: Opcode costs of LogicSigs is pooled across a transaction group.
  • AVM: Additional opcodes box_splice and box_resize

Changelog

Enhancements

  • AVM: Add global GenesisHash (#5858)
  • AVM: Add box_splice and box_resize opcodes (#5750)
  • Consensus: Enable dynamic round times in vfuture. (#5860)
  • Docs: participation key lifecycle. (#5847)
  • Network: fixes to public address support (#5851)
  • Round Times: Period 0 deadline timeout (#5850)
  • Round Times: Set minimum dynamic filter timeout to 2500ms. (#5853)
  • Tests: wait longer in TestTotalWeightChanges for larger nightly test network (#5841)

Bugfixes

  • Network: Use peer address after proxy fix for app rate limiter if available (#5848)
  • Simulate: Properly handle failing clear state programs (#5842)

Additional Resources

Algorand BetaNet 3.21.0

20 Dec 16:03
9c4f707
Compare
Choose a tag to compare

GitHub Logo

IMPORTANT
This release requires a protocol upgrade.
This release contains a consensus protocol upgrade, which implements the following spec: https://github.com/algorandfoundation/specs/tree/925a46433742afb0b51bb939354bd907fa88bf95

Overview

This release introduces dynamic round times, as well as additional AVM opcodes. This release contains a consensus upgrade, and will require upgrades of conduit/indexer as well.

What's New

  • Dynamic round times, which as configured will have the effect of shortening average round times
  • AVM: Elliptic curve opcodes on pairing friendly curves.
  • AVM: Opcode costs of LogicSigs is pooled across a transaction group.
  • AVM: Additional opcodes box_splice and box_resize

Changelog

Enhancements

  • AVM: Add global GenesisHash (#5858)
  • AVM: Add box_splice and box_resize opcodes (#5750)
  • Consensus: Enable dynamic round times in vfuture. (#5860)
  • Docs: participation key lifecycle. (#5847)
  • Network: fixes to public address support (#5851)
  • Round Times: Period 0 deadline timeout (#5850)
  • Round Times: Set minimum dynamic filter timeout to 2500ms. (#5853)
  • Tests: wait longer in TestTotalWeightChanges for larger nightly test network (#5841)

Bugfixes

  • Network: Use peer address after proxy fix for app rate limiter if available (#5848)
  • Simulate: Properly handle failing clear state programs (#5842)

Additional Resources

Algorand 3.20.1

07 Dec 15:32
6a6a15d
Compare
Choose a tag to compare

GitHub Logo

Overview

An endpoint to generate participation keys, network optimization, and other enhancements around catchpoints and catchup are included in this release.

Both the crash and state proof databases now default to the 'hot' data directory.

What's New

  • Participation key generation endpoint: a requested feature to allow the ability to generate API keys from the REST endpoint, provided you have the admin token.

Changelog

New Features

  • API: Add participation key generation endpoint to algod API (#5781)
  • Txhandler: applications rate limiter (#5734)

Enhancements

  • API: minor style improvements in keygen code. (#5786)
  • AVM: preserve line/column for assembler warnings (#5796)
  • AVM: Reorganize the crypto opcodes a bit to simplify incentive work (#5787)
  • Algocfg: Add print option to algocfg. (#5824)
  • Build: bump github.com/consensys/gnark-crypto from 0.12.0 to 0.12.1 (#5822)
  • Catchpoint: store certs with blocks during catchpoint restore (#5798)
  • Catchup: increase followLatestBackoff to 100ms (#5838)
  • Catchup: use specialized backoff behavior for follower mode (#5836)
  • Catchup: Dynamic parallel catchup (#5802)
  • Catchup: fetchAndWrite/fetchRound quit early on errNoBlockForRound (#5809)
  • Catchup: Provide more information to client when requested block not available (#5819)
  • Cgo: Properly manage memory passing from cgo to go on Batch Verifiers (#5700)
  • Chore: Cut out some useless allocations when computing payset commitments (#5840)
  • Chore: Remove one allocate per hash by using generics. (#5829)
  • Cleanup: Use Go 1.19 atomic types (#5792)
  • Config: add EnableGossipService option (#5832)
  • Config: move crash and stateproof DB defaults to hot dir (#5817)
  • Config: Update description for IncomingConnectionsLimit (#5789)
  • Docs: Add comment to initConsensusProtocols. (#5791)
  • Follower: update follower node error messages. (#5797)
  • Ledger: support WaitWithCancel for unsuccessful WaitForBlock API calls (#5814)
  • State Proofs: add block hash to LightBlockHeader (#5663)

Bugfixes

  • Catchup: Fix empty cert if ledger already has a block (#5846)
  • Catchup: pause catchup if ledger lagging behind (#5794)
  • Cicd: Fix RPM repository updating (#5790)
  • Ledger: make catchpoint generation backward compatible (#5598)
  • Tests: Fix flaky TestAccountSelected test (#5788)

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.

  • State Proofs: add block hash to LightBlockHeader (#5663)

Additional Resources

Algorand BetaNet 3.20.1

04 Dec 15:40
14c0d8d
Compare
Choose a tag to compare

GitHub Logo

Overview

Optimizations and a bug fix for catchup.

Changelog

Enhancements

  • Cgo: Properly manage memory passing from cgo to go on Batch Verifiers (#5700)
  • Chore: Cut out some useless allocations when computing payset commitments (#5840)
  • Chore: Remove one allocate per hash by using generics. (#5829)
  • Config: add EnableGossipService option (#5832)

Bug Fix

  • Catchup: Fix empty cert if ledger already has a block (#5846)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources


NOTE
vFuture changes are not yet available in MainNet or TestNet but can be used in private networks.

  • State Proofs: add block hash to LightBlockHeader (#5663)

Algorand BetaNet 3.20.0

20 Nov 15:57
c724cd3
Compare
Choose a tag to compare

GitHub Logo

Overview

An endpoint to generate participation keys, network optimization, and other enhancements around catchpoints and catchup are included in this release.

Both the crash and state proof databases now default to the 'hot' data directory.

What's New

  • Participation key generation endpoint: a requested feature to allow the ability to generate API keys from the REST endpoint, provided you have the admin token.

Changelog

New Features

  • API: Add participation key generation endpoint to algod API (#5781)
  • Statetrie: nibbles (#5759)

Enhancements

  • Txhandler: applications rate limiter (#5734)

Enhancements

  • Algocfg: Add print option to algocfg. (#5824)
  • API: minor style improvements in keygen code. (#5786)
  • AVM: preserve line/column for assembler warnings (#5796)
  • AVM: Reorganize the crypto opcodes a bit to simplify incentive work (#5787)
  • Build: bump github.com/consensys/gnark-crypto from 0.12.0 to 0.12.1 (#5822)
  • Catchpoint: store certs with blocks during catchpoint restore (#5798)
  • Catchup: Dynamic parallel catchup (#5802)
  • Catchup: fetchAndWrite/fetchRound quit early on errNoBlockForRound (#5809)
  • Catchup: Increase followLatestBackoff to 100ms (#5838)
  • Catchup: Provide more information to client when requested block not available (#5819)
  • Catchup: use specialized backoff behavior for follower mode (#5836)
  • Cleanup: Use Go 1.19 atomic types (#5792)
  • Config: move crash and stateproof DB defaults to hot dir (#5817)
  • Config: Update description for IncomingConnectionsLimit (#5789)
  • Docs: Add comment to initConsensusProtocols. (#5791)
  • Feature: Catchup Eval Stake Exception Round Handling (#5795)
  • Follower: update follower node error messages. (#5797)
  • Ledger: support WaitWithCancel for unsuccessful WaitForBlock API calls (#5814)
  • Tools: improve heapwatch chart drawing scripts (#5801)

Bugfixes

  • Catchup: pause catchup if ledger lagging behind (#5794)
  • Cicd: Fix RPM repository updating (#5790)
  • Ledger: make catchpoint generation backward compatible (#5598)
  • Ledger: rollback vetting historical stateproof blocks (#5830)
  • Tests: Fix flaky TestAccountSelected test (#5788)

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand 3.19.0

25 Oct 14:32
7037cb3
Compare
Choose a tag to compare

GitHub Logo

Overview

In this release we add support for hot and cold data directories for algod, enhance the simulate endpoint by returning app initial states, and speed up starting up private networks by allowing pre-generation of keys. Backend support for future features are also included - stay tuned!

What's New

  • Hot/Cold data directories: Support for specifying different destinations for data instead of just a single data directory
  • Pre-generated private network keys: Speed launching new private networks for development by re-using pre-generated keys
  • Simulate: Return application initial states accessed during simulation
  • Config: Add MaxBlockHistoryLookback option

Changelog

New Features

  • Algod: Hot/Cold Data Directories and Resource Paths (#5614)
  • Docker: Support pregenerated keys in docker private networks (#5735)
  • Network: add P2PNetwork implementation (#5640)
  • Simulate: Return application initial states accessed during simulation (#5686)

Enhancements

  • API: StartFastCatchup initialize parameter (#5752)
  • AVM: Generate langspec for each version (#5629)
  • Build: bump golang.org/x/net from 0.12.0 to 0.17.0 (#5779)
  • Build: bump github.com/consensys/gnark-crypto from 0.11.2 to 0.12.0 (#5774)
  • Chore: Refactor catchpoint tracking logic into config (#5725)
  • Chore: Put the three doc strings about each op together (#5708)
  • Config: Add MaxBlockHistoryLookback option (#5749)
  • Devops: update releases page GPG key mentions (#5742)
  • Docs: Update node config comments so that they can be used for doc generation. (#5729)
  • Dynamic-lambda: continue tracking the best proposal even after freezing (#5701)
  • Encoding: eliminate unnecessary allocations (#5655)
  • Feature: Disable EnableBlockServiceFallbackToArchiver by default. (#5706)
  • Goal: Add initialize option to 'goal node catchup'. (#5754)
  • Goal: Add export and import options for genesis files during network creation (#5672)
  • P2p: Make p2p listen address configurable via config.NetAddress (#5721)
  • P2p: Return non-loopback multiaddr from Address() if available (#5716)
  • P2p: peerstore backed phonebook (#5710)
  • Perf: upgrade go-deadlock (#5760)
  • Performance: dynamic lambda (#5654)
  • Simulate: Enable on follower node & allow specifying starting round (#5685)
  • Teal: Report columns in TEAL source maps (#5776)
  • Tests: Fix flaky tealdbg unit test (#5768)
  • Tests: Remove flaky persistent peers test from wsNetwork (#5772)
  • Tests: Address flakiness with TestMergePrimarySecondaryRelayAddressListsPartialOverlap (#5758)
  • Tests: update TestCatchupOverGossip to be less parallel and use sub-tests (#5731)
  • Tools: Block Generator - allow exporting to files (#5714)

Bugfixes

  • AVM: Cleanly handle broken switch/match programs (#5782)
  • Catchpoints: check EnableCatchupFromArchiveServers for ledgerFetcher (#5783)
  • Ci: fix scripts/create_and_deploy_recipe.sh build (#5764)
  • CICD: Fix RPM repository updating (#5790)
  • Devops: fix releases page links (#5746)
  • Docker: Do not disable telemetry if logging.config is present. (#5769)
  • Docker: Do not catchup if already initialized. (#5756)
  • Docker: Update docker config with node_exporter path. (#5762)
  • Revert "ledger: Close the ledger at node shutdown" (#5705)
  • Scripts(configure_dev): conditional tap homebrew (#5573)
  • Specs: Change spec generation for Foundation to handle _v*.md (#5751)
  • Tests: Fix simulate start round flaky test (#5748)
  • Tools: better heap data rendering (#5761)
  • Windows: Fix GC (#5745)

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.


Additional Resources

Algorand BetaNet 3.19.0

18 Oct 15:15
27d967d
Compare
Choose a tag to compare

GitHub Logo

Overview

In this release we add support for hot and cold data directories for algod, enhance the simulate endpoint by returning app initial states, and speed up starting up private networks by allowing pre-generation of keys. Backend support for future features are also included - stay tuned!

What's New

  • Hot/Cold data directories: Support for specifying different destinations for data instead of just a single data directory
  • Pre-generated private network keys: Speed launching new private networks for development by re-using pre-generated keys
  • Simulate: Return application initial states accessed during simulation

Changelog

New Features

  • Algod: Hot/Cold Data Directories and Resource Paths (#5614)
  • Docker: Support pregenerated keys in docker private networks (#5735)
  • Network: add P2PNetwork implementation (#5640)
  • Simulate: Return application initial states accessed during simulation (#5686)

Enhancements

  • API: StartFastCatchup initialize parameter (#5752)
  • AVM: Generate langspec for each version (#5629)
  • Build: bump golang.org/x/net from 0.12.0 to 0.17.0 (#5779)
  • Build: bump github.com/consensys/gnark-crypto from 0.11.2 to 0.12.0 (#5774)
  • Chore: Refactor catchpoint tracking logic into config (#5725)
  • Chore: Put the three doc strings about each op together (#5708)
  • Config: Add MaxBlockHistoryLookback option (#5749)
  • Devops: update releases page GPG key mentions (#5742)
  • Docs: Update node config comments so that they can be used for doc generation. (#5729)
  • Dynamic-lambda: continue tracking the best proposal even after freezing (#5701)
  • Encoding: eliminate unnecessary allocations (#5655)
  • Feature: Disable EnableBlockServiceFallbackToArchiver by default. (#5706)
  • Goal: Add initialize option to 'goal node catchup'. (#5754)
  • Goal: Add export and import options for genesis files during network creation (#5672)
  • P2p: Make p2p listen address configurable via config.NetAddress (#5721)
  • P2p: Return non-loopback multiaddr from Address() if available (#5716)
  • P2p: peerstore backed phonebook (#5710)
  • Perf: upgrade go-deadlock (#5760)
  • Performance: dynamic lambda (#5654)
  • Simulate: Enable on follower node & allow specifying starting round (#5685)
  • Teal: Report columns in TEAL source maps (#5776)
  • Tests: Fix flaky tealdbg unit test (#5768)
  • Tests: Remove flaky persistent peers test from wsNetwork (#5772)
  • Tests: Address flakiness with TestMergePrimarySecondaryRelayAddressListsPartialOverlap (#5758)
  • Tests: update TestCatchupOverGossip to be less parallel and use sub-tests (#5731)
  • Tools: Block Generator - allow exporting to files (#5714)

Bugfixes

  • AVM: Cleanly handle broken switch/match programs (#5782)
  • Catchpoints: check EnableCatchupFromArchiveServers for ledgerFetcher (#5783)
  • Ci: fix scripts/create_and_deploy_recipe.sh build (#5764)
  • Devops: fix releases page links (#5746)
  • Docker: Do not disable telemetry if logging.config is present. (#5769)
  • Docker: Do not catchup if already initialized. (#5756)
  • Docker: Update docker config with node_exporter path. (#5762)
  • Revert "ledger: Close the ledger at node shutdown" (#5705)
  • Scripts(configure_dev): conditional tap homebrew (#5573)
  • Specs: Change spec generation for Foundation to handle _v*.md (#5751)
  • Tests: Fix simulate start round flaky test (#5748)
  • Tools: better heap data rendering (#5761)
  • Windows: Fix GC (#5745)

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.

Additional Resources