Releases: algorand/go-algorand
Algorand v2.1.3
Highlights
- Stateful Smart Contracts: Algorand Smart Contracts (ASC1) offer the foundational attributes of security, scale, and decentralization found in Algorand’s Layer-1 protocol, allowing developers to take advantage of the network’s speed, cost-effectiveness, and simplicity. Enabling complex governed transactions with simplified tools that can build a wide range of applications, and removing the technical barriers that undermine blockchain adoption. Algorand’s Smart Contracts are highly flexible, reliable in that they are executed on a tamper-proof (trustless) network providing the transparency needed, with error-free, immutable, and accurate applications.
- Rekeying Support: Algorand's Rekeying offers a seamless, easier experience for users and custody providers by allowing flexible changes of Private Spending Keys anytime without changing Public Addresses, giving Public address more continuity, and reducing operational overhead with the changes of Private Spending Keys.
- Fast Catchup: Fast Catchup is a new feature and will rapidly update a node using catchpoint snapshots. A new command on goal node is now available for catchup. The entire process should sync a node in minutes rather than hours or days.
- Performance Improvements and Bug Fixes: Note that there is a one time long startup time to re-encode the accounts database, which will take an additional few minutes to complete.
Changes
- General
- New Feature - Stateful Smart Contracts
- Enhancements
- add
txn.ForeignAssets
field - update stateful TEAL docs
- allow substring ops to return an empty string in TEAL
- disallow old TEAL versions for ApplicationCall transactions, disallow groups containing {Apps, RekeyTo} and v0/v1 TEAL
- add
- Bug Fixes
- merketrie prioritization cache
- update the suggested fee mechanism to meet the current transaction pool fee structure (#1376)
- eliminate nil map entries on Merkle trie cache
- Agreement
- Enhancement - remove deprecated proposal LowestOutput
- Bug Fix - prevent warning message for block assembly when catching up
- Catchup
- New Features
- Fast Catchup support
- add CatchpointDump utility
- Enhancements
- move timeout to config and make more restrictive
- expect test for fast catchup
- Bug Fixes
- avoid ledger calls during catchpoint catchup
- handle stopping and aborting in catchpoint catchup service
- fix fast catchup processed/total account values swapped in status line
- slow down catchup while catchpoint file is being written
- New Features
- Config
- New Features
- add optional startup vacuuming for the balances database
- add CatchpointTracking to config file
- Enhancements
- restructure config package to use reflection
- add EnableDeveloperAPI configuration flag (#1109)
- Bug Fix - automatic DNSBootstrapID for BetaNet
- New Features
- Goal
- New Features
- add goal app info for inspecting app properties
- add rekey multisig support for goal
- Enhancements
- make account changeonlinestatus online flag optional
- unify txFilename and outFilename vars usage
- update goal documentation for multi-arg optional commands
- reformat some of the short commands descriptions
- add created/opted in apps to
goal account list
- Bug Fixes
- New Features
- Ledger
- Enhancements
- improve client-side catchpoint catchup performance
- add vacuumming to the database upgrade process
- refactor account update locking
- drop legacy ledger storage
- add reencoding database accounts support
- add blocks header to the header cache
- add comments around the accounts database upgrade procedures
- remove unused GetRoundTxIds from ledgerForEvaluator interface
- optimize accountsUpdateBalances implementation
- optimize accounts totals updates
- improve trie failures warning message formatting
- implement database versioning support
- avoid warning messages on expected long transactions
- Bug Fixes
- fix rare synchronization issue in accountUpdates
- listCreatablesStmt is selecting 3 columns instead of 2
- avoid using encodedAccountsRange and replace with a single query
- extend ledger request timeout
- avoid redundant info message for replacing block 0
- Enhancements
- Network
- Enhancement - improve network connectionPerformanceMonitor performance
- REST API
- Enhancements
- mark the in-body parameter as binary
- merge ApplicationLocalStates and ApplicationLocalState (#1254)
- change constant values of DeltaAction
- add additional type information to teal programs in spec (#1276)
- added 'pretty' parameter to all API endpoints to pretty print the JSON response
- add messagepack to produces list for endpoints which can produce messagepack
- Bug Fixes
- add AuthAddr to accountInformation
- fix StateDelta conversion in Dryrun
- don't include key-value in response if it is null (#1268)
- add missing enum option to tx-type parameter in spec
- base64 encode binary keys/values in json
TealKeyValue
,EvalDeltaKeyValue
model - add eval delta to PendingTransactionByID (#1294)
- do not save loop variable addresses in conversion routines
- Enhancements
- Telemetry & Logging
- Enhancement - algod telemetry config location logging
- Bug Fix - don't override Channel if already set
- Tests
- Enhancements
- unit tests for v2 handler functions (#1111)
- update msgp auto-generated code to add headers
- move unused allBalances function to testing
- FastCatchup - add unit testing for ledgerFetcher
- add e2e teal/compile test
- improve TestConnMonitorStageTiming benchmark performance
- stateful teal expect test
- improve dryrun and tealdbg compatibility
- tealdbg: use round number and latestTimestamp from dryrun-req if available
- add test for when the user does not provide a correct application json
- expect test for goal account dump
- stateful teal test app info
- add a unit test for catchpointWriter
- disable the deadlock detection on TestArchivalCreatables
- add e2e upgrade test for application over REST & Gossip (#1037)
- add documentation for test env vars for running the expect tests
- refactor expect runners by creating a unified expect fixture
- manual testing script for Gossip and TxSync
- add new rekeying tests
- add unit test TestConsensusUpgradeWindow
- enable creatables in ledger tests
- add a fuzzer to the merkletrie cache testing
- add assets and apps to ledger txn validate tests
- e2e test for rekeying before and after upgrade
- unit test for accountsNewRound creatables parameter
- e2e test: create+delete create+clear in 1 tx
- add some minimal documentation for the test directory
- REST API test script for /v2/applications
- added TestListCreatables to test ListAssets and ListApplications
- Bug Fixes
- improve asset support in ping pong utility
- fix sporadic TestCatchupOverGossip e2e test failure(s)
- fixed error verifying recovered wallet in create wallet expect test
- fixed bug in key registration teal test
- fix random catchpoint catchup expect test case
- fix random fails in TestCatchupOverGossip
- fix TestTealCompile
- fix e2e unit test data race
- disable TestArchival unit test on linux-amd64
- remove redundant ledger.close in TestArchivalCreatables
- relax TestLedgerBlockHdrCaching rounds count
- fix exit code race in dryrun expect test
- disable deadlock detection on TestArchivalRestart and TestArchivalCreatables unit tests
- merge issue with TestApplicationsUpgradeOver e2e test
- teal version was incorrect in applications test
- extend timeout for stateful teal test
- fix failing rekey test by keeping account total < 1 algo
- Enhancements
- Tools
- New Features
- Enhancements
- parameter support for dispenser
- allow updater to request any package with 'gettools' subcommand
- fetch balance from indexer for tealdbg
- Bug Fixes
- better algoh parameter tunneling
- fix tealdbg CDT url
- Bug Fix - disable deadlock detection on master
- Other
- New Features
- new Jenkins pipeline implementation
- ability to build docker image for BetaNet
- Enhancements
- run make fmt
- add byteslice checking to the msgp decoder
- update code to take advantage of byteslice allocbounding
- fix contents of hashes file from packaging
- reduce parallel testing in travis
- add support for specifying go version in single place
- remove code for generating releases page
- test build packages on multiple architectures
- add orphan entries to the algorelay check command
- move transact...
- New Features
Algorand BetaNet v2.1.3
Highlights
Performance enhancements and bug fixes.
Changes
- Config
- Enhancement - add CatchpointTracking to config file
- Catchup
- Bug Fixes
- fix fast catchup processed/total account values swapped in status line
- slow down catchup while catchpoint file is being written
- Bug Fixes
- Tools
- Bug Fix - disable deadlock detection on master
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand Betanet v2.1.2
Highlights
Bug fixes and enhancements. Note that there is a one time long startup time to re-encode the accounts database, which will take a few minutes to complete.
Changes
- General
- Bug Fixes
- update the suggested fee mechanism to meet the current transaction pool fee structure (#1376)
- eliminate nil map entries on Merkle trie cache
- Bug Fixes
- Config
- New Feature - add optional startup vacuuming for the balances database
- Ledger
- Enhancements
- improve client-side catchpoint catchup performance
- add vacuumming to the database upgrade process
- Bug Fixes
- listCreatablesStmt is selecting 3 columns instead of 2
- avoid using encodedAccountsRange and replace with a single query
- extend ledger request timeout
- avoid redundant info message for replacing block 0
- Enhancements
- Tools
- Enhancement - fetch balance from indexer for tealdbg
- Tests
- Enhancements
- e2e test: create+delete create+clear in 1 tx
- add some minimal documentation for the test directory
- REST API test script for /v2/applications
- added TestListCreatables to test ListAssets and ListApplications
- Bug Fix - fix failing rekey test by keeping account total < 1 algo
- Enhancements
- Other
- Enhancements
- update mule package deploy to use new agents syntax
- remove go version from Travis file (#1253)
- Bug Fix - fix Makefile to work with Ubuntu 20.04
- Enhancements
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Other Notes
A database migration is included this release, which will add a one-time startup delay of around three minutes. This is for re-encoding of the accounts database, if needed. Note: the database schema will remain compatible with the previous release. Please plan your upgrade accordingly.
Additional Resources
Algorand BetaNet v2.1.1
Highlights
- Fix for memory leak in merkle trie prioritization cache
Changes
- General
- Bug Fix - merketrie prioritization cache
- Agreement
- Bug Fix - prevent warning message for block assembly when catching up
- REST API
- Enhancement - add messagepack to produces list for endpoints which can produce messagepack
- Tools
- New Feature - create a utility to generate the consensus.json file
- Tests
- Enhancements
- add new rekeying tests
- add unit test TestConsensusUpgradeWindow
- enable creatables in ledger tests
- add a fuzzer to the merkletrie cache testing
- add assets and apps to ledger txn validate tests
- e2e test for rekeying before and after upgrade
- unit test for accountsNewRound creatables parameter
- Enhancements
- Other
- Bug Fix - fix package script go version failure
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand v2.0.9
Highlights
A memory leak in the merkle tries implementation resulted in memory pressure at high volume.
Changes
- General
- Bug fix - merketrie prioritization cache
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.1.0
Highlights
- Stateful Smart Contracts: Algorand Smart Contracts (ASC1) offer the foundational attributes of security, scale, and decentralization found in Algorand’s Layer-1 protocol, allowing developers to take advantage of the network’s speed, cost-effectiveness, and simplicity. Enabling complex governed transactions with simplified tools that can build a wide range of applications, and removing the technical barriers that undermine blockchain adoption. Algorand’s Smart Contracts are highly flexible, reliable in that they are executed on a tamper-proof (trustless) network providing the transparency needed, with error-free, immutable, and accurate applications.
- Rekeying Support: Algorand's Rekeying offers a seamless, easier experience for users and custody providers by allowing flexible changes of Private Spending Keys anytime without changing Public Addresses, giving Public address more continuity, and reducing operational overhead with the changes of Private Spending Keys.
- Fast Catchup: Fast Catchup is a new feature and will rapidly update a node using catchpoint snapshots. A new command on goal node is now available for catchup. The entire process should sync a node in minutes rather than hours or days.
Changes
- General
- New Feature - Stateful Smart Contracts
- Enhancements
- add
txn.ForeignAssets
field - update stateful TEAL docs
- allow substring ops to return an empty string in TEAL
- disallow old TEAL versions for ApplicationCall transactions, disallow groups containing {Apps, RekeyTo} and v0/v1 TEAL
- add
- Agreement
- Enhancement - remove deprecated proposal LowestOutput
- Catchup
- New Features
- Fast Catchup support
- add CatchpointDump utility
- Enhancements
- move timeout to config and make more restrictive
- expect test for fast catchup
- Bug Fixes
- avoid ledger calls during catchpoint catchup
- handle stopping and aborting in catchpoint catchup service
- New Features
- Config
- Enhancements
- restructure config package to use reflection
- add EnableDeveloperAPI configuration flag (#1109)
- Bug Fix - automatic DNSBootstrapID for BetaNet
- Enhancements
- Goal
- New Features
- add goal app info for inspecting app properties
- add rekey multisig support for goal
- Enhancements
- make account changeonlinestatus online flag optional
- unify txFilename and outFilename vars usage
- update goal documentation for multi-arg optional commands
- reformat some of the short commands descriptions
- add created/opted in apps to
goal account list
- Bug Fixes
- New Features
- Ledger
- Enhancements
- refactor account update locking
- drop legacy ledger storage
- add reencoding database accounts support
- add blocks header to the header cache
- add comments around the accounts database upgrade procedures
- remove unused GetRoundTxIds from ledgerForEvaluator interface
- optimize accountsUpdateBalances implementation
- optimize accounts totals updates
- improve trie failures warning message formatting
- implement database versioning support
- avoid warning messages on expected long transactions
- Bug Fix - fix rare synchronization issue in accountUpdates
- Enhancements
- Network
- Enhancement - improve network connectionPerformanceMonitor performance
- REST API
- Enhancements
- Bug Fixes
- add AuthAddr to accountInformation
- fix StateDelta conversion in Dryrun
- don't include key-value in response if it is null (#1268)
- add missing enum option to tx-type parameter in spec
- base64 encode binary keys/values in json
TealKeyValue
,EvalDeltaKeyValue
model - add eval delta to PendingTransactionByID (#1294)
- do not save loop variable addresses in conversion routines
- Telemetry & Logging
- Enhancement - algod telemetry config location logging
- Bug Fix - don't override Channel if already set
- Tests
- Enhancements
- unit tests for v2 handler functions (#1111)
- update msgp auto-generated code to add headers
- move unused allBalances function to testing
- FastCatchup - add unit testing for ledgerFetcher
- add e2e teal/compile test
- improve TestConnMonitorStageTiming benchmark performance
- stateful teal expect test
- improve dryrun and tealdbg compatibility
- tealdbg: use round number and latestTimestamp from dryrun-req if available
- add test for when the user does not provide a correct application json
- expect test for goal account dump
- stateful teal test app info
- add a unit test for catchpointWriter
- disable the deadlock detection on TestArchivalCreatables
- add e2e upgrade test for application over REST & Gossip (#1037)
- add documentation for test env vars for running the expect tests
- refactor expect runners by creating a unified expect fixture
- manual testing script for Gossip and TxSync
- Bug Fixes
- improve asset support in ping pong utility
- fix sporadic TestCatchupOverGossip e2e test failure(s)
- fixed error verifying recovered wallet in create wallet expect test
- fixed bug in key registration teal test
- fix random catchpoint catchup expect test case
- fix random fails in TestCatchupOverGossip
- fix TestTealCompile
- fix e2e unit test data race
- disable TestArchival unit test on linux-amd64
- remove redundant ledger.close in TestArchivalCreatables
- relax TestLedgerBlockHdrCaching rounds count
- fix exit code race in dryrun expect test
- disable deadlock detection on TestArchivalRestart and TestArchivalCreatables unit tests
- merge issue with TestApplicationsUpgradeOver e2e test
- teal version was incorrect in applications test
- extend timeout for stateful teal test
- Enhancements
- Tools
- Other
- New Features
- new Jenkins pipeline implementation
- ability to build docker image for BetaNet
- Enhancements
- run make fmt
- add byteslice checking to the msgp decoder
- update code to take advantage of byteslice allocbounding
- fix contents of hashes file from packaging
- reduce parallel testing in travis
- add support for specifying go version in single place
- remove code for generating releases page
- test build packages on multiple architectures
- add orphan entries to the algorelay check command
- move transaction apply methods into their own package
- update go-deadlock to use go modules
- update upgrade path to v24
- remove ignored sudo from Travis file
- Update minor version number
- TEAL: allow empty string literals
- Bug Fixes
- remove unused var in compute_branch_channel.sh
- build packages script typo
- fix incorrect asset error message when trying to overspend an asset
- add license headers to dbgen generated files to fix make generate
- fix path to gpg-fake script
- fix package name
- increase travis builtin vm.max_map_count (#1175)
- only add the latest version to the rpm repository
- fix deploy location for latest rpm package
- add algod client health check to prevent node shutdown due to timeout in healthy node
- update configure dev script to work with ubuntu 20.04 (#1201)
- fix golang version specification to support 1.14
- rename AppStateChage to AppStateChange
- add duplicate check on ephemeral security group and key pair creation for buildhost
- Fix
TxnRoot
for block 0 - ensure
ApplyData.EvalDelta
is clear ifapplyEvalDelta
fails - fix negative "tx surpassed expected deadline" messages
- fix linux arm64 nightly build deploy due to golang install scoping
- TEAL - fix txn and txna assemble and disassemble routines
- TEAL: assembler error on branching behind last instruction
- New Features
Protocol Upgrade
This release contains a consensus protocol upgrade, which implements the following spec:
https://github.com/algorandfoundation/specs/tree/3a83c4c743f8b17adfd73944b4319c25722a6782
Other Notes
A database migration is included this release, which will add a one-time startup delay of 2-10 seconds. This is for re-encoding of the accounts database, if needed. Note: the database schema will remain compatible with the previous release.
Additional Resources
- Algorand Forum
- [Deve...
Algorand v2.0.8
Highlights
A bug in 2.0.7 caused API requests to view pending transactions by account address endpoint to fail.
Changes
- Rest API
- Bug fix - fix route path to use echo parameter notation
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.0.15
Highlights
A bug in 2.0.14 caused API requests to view pending transactions by account address endpoint to fail.
Changes
- Rest API
- Bug fix - fix route path to use echo parameter notation
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand v2.0.7
Highlights
- APIv2: New API functionality for a wider feature set and laying the groundwork for future releases.
- IndexerV2: A new indexer built as a separate binary, that leverages a postgres backend of your choice for faster lookups. This deprecates IndexerV1 support.
- Fast Catchup backend support: We are working on providing functionality for getting a new node up to date in a much faster manner. This release lays the groundwork for this functionality - stay tuned!
Changes
-
Agreement
- Enhancements
- Reduce cadaver failures error levels
- Improve MatchAddress
- Bugfixes
- rare data race condition in processingMonitor
- Enhancements
-
Fast Catchup
- Add backend support for fast catchup
-
Rekeying
- Add backend support for rekeying (pre-release, disabled)
-
REST API
- New Features
- REST APIv2
- TEAL compile endpoint
- Add private endpoints to the algod REST interface
- Enhancement - Refactor Auth to use Middleware
- Bugfixes
- REST API logger middleware formatting has wrong verb
- Limit txn group size when broadcasting raw transactions
- New Features
-
Goal
- New Features
- rekeying basic frontend support
- support goal clerk compile without filesystem
- add
goal protocols
to dump all known protocols as JSON (#909) - algod compile endpoint (pre-release, disabled)
- Enhancements
- Deprecation of IndexerV1
- Implement protocol.EncodeJSONStrict
- Bugfixes
- require one of keyFilename or signerAcct in
goal clerk tealsign
- parameter validation on -p arguments on goal & algod
- require one of keyFilename or signerAcct in
- New Features
-
KMD
- Enhancement - add optional pk argument to KMD's SignTransaction
-
Ledger
- New Feature - Initial backend support for rekeying
- Enhancements
- Rename balrecord.SpendingKey to AuthAddr
- Optimization - only compute TxID once during validated eval
- Optimization - hint payset size in block evaluator
- Bugfix - data race conditions
- Optimization - remove unnecessary call to
getChangedAssetIndices
in acctupdates.go
-
Logging & Telemetry
- Bugfix - Missing algod_telemetry_drops_total event
-
Tests
- New Feature - add e2e bash+goal test for rekeying
- Enhancements
- improve e2e script runner
- Integration of integration tests into build pipeline
- Make license check failure more obvious
- Add support for Raw msgp interfaces on unit tests
- Unfiltered some tests filtered on darwin
- Bugfixes
- timing bug in TestAgreementTime
- Fix e2e test missing runtime package
-
Updater
- New Feature - option to fetch tools
- Enhancement - disable binary backup when running make install
-
Transaction Pool
- Swap EnableAssembleStats with EnableProcessBlockStats
- Encode
SignedTxnInBlock
to measure length, notSignedTxn
- Fix up some documentation for TransactionPool
- Simplify block assembly
-
Other
- New Features
- implement groundwork for new flexible build pipeline
- GOPROXY integration
- Add config option to enable block service over gossip
- Enhancements
- make algorelay handle domain names type conversions
- many improvements to build pipeline
- Updates to pull request template and contributing doc
- Avoid regenerating msgp decoders/encoders dynamically on arm
- Update AMI for ARM buildhost
- Use IsZero instead of comparing an empty struct in transaction.go
- Bugfix
- BetaNet releases pointing to DevNet instead of BetaNet
- New Features
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.0.14
Highlights
- APIv2: New API functionality for a wider feature set and laying the groundwork for future releases.
- IndexerV2: A new indexer built as a separate binary, that leverages a postgres backend of your choice for faster lookups. This deprecates IndexerV1 support.
- Fast Catchup backend support: We are working on providing functionality for getting a new node up to date in a much faster manner. This release lays the groundwork for this functionality - stay tuned!
Changes
-
Agreement
- New Features
- Fast Catchup backend support
- Add backend support for rekeying
- Enhancements
- Reduce cadaver failures error levels
- Improve MatchAddress
- Use IsZero instead of comparing an empty struct in transaction.go
- Simplify block assembly
- Optimization - remove unnecessary call to
getChangedAssetIndices
in acctupdates.go
- Bugfixes
- rare data race condition in processingMonitor
- Swap EnableAssembleStats with EnableProcessBlockStats
- Encode
SignedTxnInBlock
to measure length, notSignedTxn
- Fix up some documentation for TransactionPool
- New Features
-
REST API
- New Features
- REST APIv2
- TEAL compile endpoint
- Add private endpoints to the algod REST interface
- Enhancement - Refactor Auth to use Middleware
- Bugfixes
- REST API logger middleware formatting has wrong verb
- Limit txn group size when broadcasting raw transactions
- New Features
-
Goal
- New Features
- rekeying basic frontend support
- support goal clerk compile without filesystem
- add
goal protocols
to dump all known protocols as JSON (#909) - algod compile endpoint (pre-release, disabled)
- Enhancements
- Deprecation of IndexerV1
- Implement protocol.EncodeJSONStrict
- Bugfixes
- require one of keyFilename or signerAcct in
goal clerk tealsign
- parameter validation on -p arguments on goal & algod
- require one of keyFilename or signerAcct in
- New Features
-
KMD
- Enhancement - add optional pk argument to KMD's SignTransaction
-
Ledger
- New Feature - Initial backend support for rekeying
- Enhancements
- Rename balrecord.SpendingKey to AuthAddr
- Optimization - only compute TxID once during validated eval
- Optimization - hint payset size in block evaluator
- Bugfix - data race conditions
-
Logging
- Bugfix - Missing algod_telemetry_drops_total event
-
Tests
- New Feature - add e2e bash+goal test for rekeying
- Enhancements
- improve e2e script runner
- Integration of integration tests into build pipeline
- Make license check failure more obvious
- Add support for Raw msgp interfaces on unit tests
- Unfiltered some tests filtered on darwin
- Bugfixes
- timing bug in TestAgreementTime
- Fix e2e test missing runtime package
-
Updater
- New Feature - option to fetch tools
- Enhancement - disable binary backup when running make install
-
Other
- New Features
- implement groundwork for new flexible build pipeline
- GOPROXY integration
- Enhancements
- make algorelay handle domain names type conversions
- many improvements to build pipeline
- Updates to pull request template and contributing doc
- Avoid regenerating msgp decoders/encoders dynamically on arm
- Update AMI for ARM buildhost
- Bugfix - BetaNet releases pointing to DevNet instead of BetaNet
- New Features
Protocol Upgrade
This release does not contain a consensus protocol upgrade.