Releases: algorand/go-algorand
Algorand BetaNet v2.2.0
Highlights
- Miscellaneous bug fixes
- Some slight performance optimizations
- Additional tests and fixes to existing tests
- Work to implement new packaging pipeline
- Initial backend support for compact certificate development
Changes
- Agreement
- Enhancements
- Add consensus-driven agreement filter timeout
- Vote validation error refactor
- Deprecate algolambdamsec environment variable
- Enhancements
- Algod
- Bug Fix - exit algod with a non-zero in case of a startup error
- Catchup
- Enhancements
- Minor catchpoint REST handler error code cleanup
- Improve RestoringFromCatchpointFile benchmark precision
- Bug Fix - ensure syncStartNS is managed correctly across catchpoint file writing
- Add detailed error logging in case of failed blocks download
- Enhancements
- Crypto
- Enhancement - add more inputs into hashCoin() for better hygiene
- General
- New Features
- Core crypto primitives for compact certificates
- Added a transaction type to store compact certificates
- Bug Fix - modify the error messages for parseIntcblock to distinguish from parseBytecblock
- New Features
- Goal
- Enhancements
- Fix inconsistencies in goal asset command
- Add goal account info command
- Output error when 'goal node stop' is run on invalid/non-existing directory
- Bug Fix - Avoid printing control characters from goal
- Enhancements
- Ledger
- New Feature - commit to Merkle tree of online participants in block header
- Enhancements
- Implement tracking of top-N online accounts in the ledger
- Add metrics for the various ledger components
- Cache the most recent Seed/Circulation calls to reduce pressure on ledger
- Remove the Lookup from the ledgerForEvaluator interface
- Decouple database round and acctupdate round
- Fix typos in ledger package
- Optimize listCreatables implementation
- Repack merkle trie pages before flush
- Extend account lookup to include validity range
- Bug Fixes
- Calculate normalized balance using genesis proto
- Add syncMu to AlgorandFullNode OnNewBlock
- Transaction Pool
- Bug Fixes
- Refactor AssembleBlock error
- Limit txpool size by transaction count rather then transaction groups count
- Correct the accounting of transactions in checkPendingQueueSize
- Correctly account for bloom filter binary marshaling size
- Bug Fixes
- Network
- Enhancements
- Remove expected ReadError events
- Add ASCII filtering for remote requests logged data
- Enhancements
- REST API
- New Feature - new endpoint /genesis.json
- Enhancements
- Don't return an error when requesting the same catchpoint multiple times
- Add new line characters allowing proper Markdown formatting when docs are generated from this source file
- REST docs update: /v1/account/{addr}/transactions
- Bug Fixes
- Add versions endpoint to spec, fix versions model objects
- Allow max and assetIndex to be optional
- Return 404 if v1/transaction/{txid} doesn't find the txn.
- Set content type header for health endpoint
- Telemetry
- Bug Fixes
- Correct Telemetry uploading message reported in node.log
- Change telemetryConfig from global variable to a member of the logger
- Bug Fixes
- Tools
- Enhancements
- Added a new recipe for performing network disruption tests.
- Simplifed dryrunning and debugging group transactions
- Add support for algorelay deleting unused SRV and DNS entries
- Add txn.Accounts and txn.ApplicationArgs support to tealdbg
- Improve goal node start error reporting in case of algod errored
- Tealdbg: listen for upcoming spinoff connections
- Netgoal general templates
- Bug Fixes
- Improve network template validation
- Enhancements
- Tests
- New Feature - performance testing with realilistic network performance
- Enhancements
- Add concurrent read and write test from database table
- Add a unit test to confirm BinaryMarshalLength correctness
- Added more deb and rpm package tests
- Coverage tests for ledger/acctupdates
- Cleanup buggy dead code
- Implement e2e test for tealdbg
- Increase code coverage of tealdbg unit tests
- Tweak the mainnet-model recipe
- Added auth middleware tests
- Added debugger coverage test
- Add a benchmark to test restoring from catchpoint performance
- Add unit tests for equal functions in teal.go
- Add a benchmark for writeCatchpointStagingBalances
- Improve db insertion benchmark - add ordered insertions
- Add additional ledger tests
- Updates to support testing TEAL application size
- Bug Fixes
- Extend expect timeout when checking account balance
- Fix random failure in goalNodeTest.exp
- Fix random failure in goalAppAccountAddressTest.exp
- Fix unreliable network unit test TestSlowPeerDisconnection
- Fix data race in TestPing unit test
- Remove close from eof pattern match to remove error message
- Test for process return in expect tests
- Other
- New Feature - add support for building native Windows binaries
- Enhancements
- Update new issue template
- Update rpm packaging to allow for more scenarios
- Update deploy scripts to reflect current deploy strategy
- Formatting updates with make sanity
- Added S3_SOURCE env var to specify source of packages for signing
- Implement mule packaging pipeline
- Remove devtools binaries from algorand package (rpm)
- Remove hardcoded dependency package names from package scirpts
- Fix pathing issue to installer directory in packaging scripts
- Simplify mule signing task
- Update mule docs for new pipeline
- Add support for Windows compilation on travis
- Remove unused dockerfiles
- Added package-upload mule task
- Create mule tasks for aptly, releases page and docker hub images
- Bug Fixes
- Remove commas from mule yaml files
- Revert change to grep recommended by shellcheck
- Remove Travis token, which is not needed for open source repos
- Many fixes for implementing new packaging pipeline
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand v2.1.6
Highlights
Release 2.1.5-stable introduced a bug in our Debian packaging scripts that packaged a TestNet genesis.json file by default instead of the MainNet genesis.json.
This bug only affected Debian package users who installed version 2.1.5-stable, which was available between Monday September 21, 2020 2:30pm EDT and Wednesday September 23, 2020 12:00pm EDT.
If you were affected, release 2.1.6 will resolve the issue. However, all users who installed 2.1.5 are encouraged to
confirm that the right network is being used after the 2.1.6 upgrade.
You can check the Genesis ID using with the following command:
goal node status -d /var/lib/algorand
You can also check the contents of the /var/lib/algorand/genesis.json
file to ensure it matches the correct network's genesis file.
Changes
- Other
- Bug Fixes
- Use DEFAULT_RELEASE_NETWORK genesis file in debian package
- Resolve bad genesis file from 2.1.5 debian install
- Bug Fixes
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.1.6
Highlights
A bug in the algorand debian package would result in the genesis.json for TestNet being applied instead of MainNet. Debian users who upgraded to 2.1.5 should verify that /var/lib/algorand/genesis.json
is pointing to the correct network after upgrading to this version.
Changes
- Other
- Bug Fixes
- Use DEFAULT_RELEASE_NETWORK genesis file in debian package
- Attempt to fix bad genesis file on 2.1.5 debian install
- Bug Fixes
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand v2.1.5
Highlights
- Optimizations to fast catchup - reduce memory usage and improve speed
- Utilities to aid in stateful smart contract development - tealdbg and tealcut
- Split dev utilities into new algorand-devtools package
Changes
- General
- Bug Fix - fix error propagation at two sites
- Enhancements
- Document that app_{local,global}_del have no effect on missing keys
- Improve the memory consumption used by a single node in the Merkle trie implementation
- Agreement
- Enhancement - convert LedgerReader.BalanceRecord into LedgerReader.Lookup
- Catchup
- Enhancement - reduce the database synchronization for the duration of the fast catchup
- Tests
- Bug Fix - reorder permission check for setting contract administrator
- Tools
- New Feature - add tealcut, a tool for splitting a TEAL program around a constant
- Other
- Enhancements
- Allow mule packaging to be done without having to first explicitly call
ci-build
- Create new
algorand-devtools
package - Fix pathing issue to installer directory
- Allow mule packaging to be done without having to first explicitly call
- Enhancements
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.1.5
Highlights
- Optimizations to fast catchup - reduce memory usage and improve speed
- Utilities to aid in stateful smart contract development - tealdbg and tealcut
- Split dev utilities into new algorand-devtools package
Changes
- General
- Bug Fix - fix error propagation at two sites
- Enhancements
- Document that app_{local,global}_del have no effect on missing keys
- Improve the memory consumption used by a single node in the Merkle trie implementation
- Agreement
- Enhancement - convert LedgerReader.BalanceRecord into LedgerReader.Lookup
- Catchup
- Enhancement - reduce the database synchronization for the duration of the fast catchup
- Tests
- Bug Fix - reorder permission check for setting contract administrator
- Tools
- New Feature - add tealcut, a tool for splitting a TEAL program around a constant
- Other
- Enhancements
- Allow mule packaging to be done without having to first explicitly call
ci-build
- Create new
algorand-devtools
package - Fix pathing issue to installer directory
- Allow mule packaging to be done without having to first explicitly call
- Enhancements
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand v2.1.4
Highlights
- Fix for "ran out of time for round" issue
- Fix for ARM32 memory panic
- Other tests and fixes
Changes
- General
- New Feature - add simple support for Merkle trees over dense arrays
- Enhancement - update golang version to latest 1.14.7
- Bug Fixes
- Fix 64bit alignment for feePerByte causing memory panic error on ARM32
- Avoid "ran out of time for round" issue
- Fix accounting bug in page loading
- Config
- Enhancement - update CatchpointInterval config comment
- KMD
- Bug Fix - decrease mutex critical section time in kmd CreateWallet to fix rare deadlock on slow systems (#1402)
- Network
- New Feature - add an API for using MsgOfInterest messages
- Tools
- New Feature - add Rekeying support to pingpong utility
- Tests
- Enhancements
- Add e2e tests for the /v2/assets/{id} endpoint
- Add a test for goal app --app-account flag
- Add expect test that combines teal and stateful teal apps in a single group transaction
- Adding test for parseStringLiteral cases \r and \\
- Enhancements
- Other
- Bug Fixes
- Allow algorand-indexer to be installed alongside other packages
- Exclude "beta" dir from sync to s3
- Dynamically install deb package in legacy pipeline
- check return code of dpkg-query show-format query in apt preinstall script
- Bug Fixes
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.1.4
Highlights
- Fix for "ran out of time for round" issue
- Fix for ARM32 memory panic
- Other tests and fixes
Changes
- General
- New Feature - add simple support for Merkle trees over dense arrays
- Enhancement - update golang version to latest 1.14.7
- Bug Fixes
- Fix 64bit alignment for feePerByte causing memory panic error on ARM32
- Avoid "ran out of time for round" issue
- Fix accounting bug in page loading
- Config
- Enhancement - update CatchpointInterval config comment
- KMD
- Bug Fix - decrease mutex critical section time in kmd CreateWallet to fix rare deadlock on slow systems (#1402)
- Network
- New Feature - add an API for using MsgOfInterest messages
- Tools
- New Feature - add Rekeying support to pingpong utility
- Tests
- Enhancements
- Add e2e tests for the /v2/assets/{id} endpoint
- Add a test for goal app --app-account flag
- Add expect test that combines teal and stateful teal apps in a single group transaction
- Adding test for parseStringLiteral cases \r and \\
- Enhancements
- Other
- Bug Fixes
- Allow algorand-indexer to be installed alongside other packages
- Exclude "beta" dir from sync to s3
- Dynamically install deb package in legacy pipeline
- check return code of dpkg-query show-format query in apt preinstall script
- Bug Fixes
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
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.