Releases: algorand/go-algorand
Algorand BetaNet 2.5.5
Highlights
An optimization to propagate block proposals early caused latencies to occasionally occur. This release reverts that change.
Changes
- Agreement
- Bug Fix - roll back early proposal propagation changes
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand v2.5.4
Protocol Upgrade
This release will require a protocol upgrade.
This release contains a consensus protocol upgrade, which implements the following spec:
https://github.com/algorandfoundation/specs/tree/ac2255d586c4474d4ebcf3809acccb59b7ef34ff
Highlights
Support for TEAL 3
- Added support for the following new opcodes:
- assert
- min_balance
- getbit
- setbit
- getbyte
- setbyte
- swap
- select
- dig
- stxn
- stxna
- pushbytes
- pushint
- Added support for the following txn fields:
- ForeignAssets
- NumForeignAssets
- ForeignApps
- NumForeignApps
- GlobalStateInts
- GlobalStateByteslices
- LocalStateInts
- LocalStateByteslices
- Added support for new global field:
- CreatorAddress
This release also contains performance improvements as well as lays the groundwork for future features.
- Re-factoring and re-organization of code to improve performance
- Minor improvement to memory utilization on relays
- Initial groundwork for future compact certificate support
- Pre-requisite work for co-chain support
- Core block archiver support
- Added AssetClosingAmount to ApplyData
Changelog
- Agreement
- New Feature - add a Merkle commitment to transactions in block header
- Enhancement - propagate block proposals before transaction validation
- Bug Fixes
- Fix initial rewards rate calculation for new networks
- Increase pending proposals queue
- FilterTimeout is using binary ConsensusCurrentVersion instead of current protocol version
- Ledger
- New Features
- Add asset close to amount field to transaction
- Top-level compact certificate support
- Enhancements
- Trim StateDelta fields before storing
- Improve memory allocations in cloneAssetHoldings and cloneAssetParams
- Precise calculation of paysetHint for block eval
- App refactoring
- Change block header to allow for multiple compact certs in the future
- Implement base round account caching
- Improve speed of BlockEvaluator eval() by pre-fetching account data, decreasing latency at various points during block accounting
- Move ledger.dbPair to db.Pair
- Remove all cow.mods usages outside of cow type
- Replace accountDelta by basics.AccountData in ledger
- Restructure ledger package: ledger/ledgercore
- Switch from map of modified accounts to an array
- Drop support for old-style Merkle txn root commitment
- Faster computation of transaction ID and length
- More precise CompactCertWeightThreshold
- Speed up merklearray
- Bug Fixes
- Fix for empty local state key value map assignment
- Fix ClearState program applying when it errs
- Ensure loading of a merkle trie deferred page during commit
- New Features
- Network
- New Feature - add core networking support for archivers
- Enhancements
- Improve network package error handling
- Move peer.PrepareURL to net.SubstituteGenesisID
- Optimize LimitedReaderSlurper memory utilization to improve relay memory usage
- Adjust the network outgoing buffer sizes
- Network: refactor broadcastThread
- Remove the network v1 fetcher via websocket connections
- Deprecate support of reverse catchup protocol ( part 2 )
- Deprecate support of reverse catchup protocol ( part 3 )
- Teal
- New Feature - TEAL 3 support (see Highlights)
- Bug Fix - copy byteslices that will be modified by opcode
- REST API
- Bug Fix - fix omitempty for AssetCloseAmount
- Catchup
- Enhancement - implement peer selector logic for catchup
- Config
- Enhancement - create new consensus upgrade for AssetCloseAmount
- Goal
- Enhancement - better missing argument error message for "goal asset destroy"
- Bug Fixes
- Avoid creating invalid consensus.json file
- Fix insufficient fee error message formatting
- Node
- Bug Fix: Fix node panicing during shutdown
- Logging
- Enhancement - do not use deadlock.Mutex in logging
- Bug Fixes
- Handle #pragma errors more like all others
- Prevent misleading agreement error message
- Tools
- Enhancements
- add appeal to kindness to dispenser to help prevent abuse
- Implement a transaction load generator
- Added Repeat configuration flag to support single invocation of load generator
- Support large integers in tealdbg
- Bug Fixes
- Improvements/bugfixes for tealdbg to improve Chrome DevTools support
- Fix tealdbg Accounts array
- Enhancements
- Tests
- Enhancements
- Put some unicode in an AsssetName to help test Indexer
- Improve the reliability of the TestApplicationsUpgradeOverGossip e2e test by using a specific historical protocols and avoiding dynamically modifying current and/or future protocols.
- Remove GOPATH dependencies in integration tests
- Remove data directory from start/stop network expect tests
- Add BenchmarkWritingRandomBalancesDisk
- Add BenchmarkVariableTransactionMessageBlockSizes
- Add e2e test with some interesting state for Indexer tests.
- Improve TestAccountsCanSendMoney e2e test
- Indexer state test for keys creation/deletion
- Add a non-utf8 Note test
- Asset-close test case to tickle indexer
- Close after rekey test data
- Non-utf8 app value keys for test
- Testing: make e2e_client_runner more robust
- Tests for the compactcert package
- Bug Fixes
- Adjust timeouts in assets-app.sh/sectok-app.sh tests
- Fix regression in BenchmarkReadingAllBalancesRAM and BenchmarkReadingAllBalancesDisk
- Enhancements
- Other
- New Feature - systemd - run algod as a user service
- Enhancements
- Build - fix deprecation warning on sortition compilation
- Build - new recipe for Devnet network
- Use msgp 1.1.47
- Clarify account status meaning in code-comment
- Integrate package signing into CI pipeline
- Make github templates friendlier
- Add comment details on format of Transaction for kmd
- Bug Fixes
- Upgrade the websocket library to use version 1.4.2
- Pipeline - move check_golang_version check to fix deploying in travis
- Pipeline - remove jq from check golang version script to fix deploy jobs in Travis
- Fix few minor log string formatting
- Fix few minor typos
Additional Resources
Algorand BetaNet 2.5.4
Highlights
Bug fix release
- Fast catchup on TestNet was erroring using new code
- Other miscellaneous fixes
Changelog
- Ledger
- Bug Fixes
- Fix for empty local state key value map assignment
- Fix ClearState program applying when it errs
- Ensure loading of a merkle trie deferred page during commit
- Bug Fixes
- Node
- Bug Fix: Fix node panicing during shutdown
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 2.5.3
Highlights
Memory optimizations to reduce resource consumption.
Changelog
- Network
- Enhancement - Adjust the network outgoing buffer sizes
- Ledger
- Enhancements
- Trim StateDelta fields before storing
- Improve memory allocations in cloneAssetHoldings and cloneAssetParams
- Precise calculation of paysetHint for block eval
- Enhancements
- Other
- Bug Fix - Upgrade the websocket library to use version 1.4.2
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 2.5.2
Highlights
Bug fix for TEAL3 - setbyte and setbit were not copying values.
Changelog
- Teal
- Bug Fix - copy byteslices that will be modified by opcode
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet v2.5.1
Highlights
Support for TEAL 3
- Added support for the following new opcodes:
- assert
- min_balance
- getbit
- setbit
- getbyte
- setbyte
- swap
- select
- dig
- stxn
- stxna
- pushbytes
- pushint
- Added support for the following txn fields:
- ForeignAssets
- NumForeignAssets
- ForeignApps
- NumForeignApps
- GlobalStateInts
- GlobalStateByteslices
- LocalStateInts
- LocalStateByteslices
- Added support for new global field:
- CreatorAddress
Also includes Merkle root transaction hash and initial rewards calculation fix.
This release will require a protocol upgrade.
Changelog
- TEAL
- New Feature - TEAL 3 support (see Highlights)
- Agreement
- New Feature - add a Merkle commitment to transactions in block header
- Bug Fix - fix initial rewards rate calculation for new networks
- Network
- Enhancement
- Network: refactor broadcastThread
- Remove the network v1 fetcher via websocket connections
- Deprecate support of reverse catchup protocol ( part 2 )
- Deprecate support of reverse catchup protocol ( part 3 )
- Enhancement
- Logging
- Bug Fixes
- Handle #pragma errors more like all others
- Prevent misleading agreement error message
- Bug Fixes
- Tools
- Enhancement - add appeal to kindness to dispenser to help prevent abuse
- Tests
- Enhancements
- Put some unicode in an AsssetName to help test Indexer
- Improve the reliability of the TestApplicationsUpgradeOverGossip e2e test by using a specific historical protocols and avoiding dynamically modifying current and/or future protocols.
- Remove GOPATH dependencies in integration tests
- Remove data directory from start/stop network expect tests
- Enhancements
- Other
- Enhancements
- Clarify account status meaning in code-comment
- Fix few minor typos
- Integrate package signing into CI pipeline
- Make github templates friendlier
- Add comment details on format of Transaction for kmd
- Enhancements
Protocol Upgrade
This release contains a consensus protocol upgrade, which implements the following spec:
https://github.com/algorandfoundation/specs/tree/ac2255d586c4474d4ebcf3809acccb59b7ef34ff
Additional Resources
Algorand BetaNet v2.5.0
Highlights
This release contains performance improvements as well as lays the groundwork for future features.
- Re-factoring and re-organization of code to improve performance
- Minor improvement to memory utilization on relays
- Initial groundwork for future compact certificate support
- Pre-requisite work for co-chain support
- Core block archiver support
- Added AssetClosingAmount to ApplyData
This release will require a protocol upgrade.
Known Issues
- You may receive an error about being "unable to retrieve consensus version" on startup. This will fall back to the correct state and is harmless.
Changelog
- Agreement
- Enhancement - propagate block proposals before transaction validation
- Bug Fixes
- Increase pending proposals queue
- FilterTimeout is using binary ConsensusCurrentVersion instead of current protocol version
- REST API
- Bug Fix - fix omitempty for AssetCloseAmount
- Catchup
- Enhancement - implement peer selector logic for catchup
- Config
- Enhancement - create new consensus upgrade for AssetCloseAmount
- Network
- New Feature - add core networking support for archivers
- Enhancements
- Improve network package error handling
- Move peer.PrepareURL to net.SubstituteGenesisID
- Optimize LimitedReaderSlurper memory utilization to improve relay memory usage
- Ledger
- New Features
- Add asset close to amount field to transaction
- Top-level compact certificate support
- Enhancements
- App refactoring
- Change block header to allow for multiple compact certs in the future
- Implement base round account caching
- Improve speed of BlockEvaluator eval() by pre-fetching account data, decreasing latency at various points during block accounting
- Move ledger.dbPair to db.Pair
- Remove all cow.mods usages outside of cow type
- Replace accountDelta by basics.AccountData in ledger
- Restructure ledger package: ledger/ledgercore
- Switch from map of modified accounts to an array
- Drop support for old-style Merkle txn root commitment
- Faster computation of transaction ID and length
- More precise CompactCertWeightThreshold
- Speed up merklearray
- New Features
- Goal
- Enhancement - better missing argument error message for "goal asset destroy"
- Bug Fixes
- Avoid creating invalid consensus.json file
- Fix insufficient fee error message formatting
- General
- Enhancement - use msgp 1.1.47
- Bug Fix - fix few minor log string formatting
- Logging
- Enhancement - do not use deadlock.Mutex in logging
- Tests
- Enhancements
- Add BenchmarkWritingRandomBalancesDisk
- Add BenchmarkVariableTransactionMessageBlockSizes
- Add e2e test with some interesting state for Indexer tests.
- Improve TestAccountsCanSendMoney e2e test
- Indexer state test for keys creation/deletion
- Add a non-utf8 Note test
- Asset-close test case to tickle indexer
- Close after rekey test data
- Non-utf8 app value keys for test
- Testing: make e2e_client_runner more robust
- Tests for the compactcert package
- Bug Fixes
- Adjust timeouts in assets-app.sh/sectok-app.sh tests
- Fix regression in BenchmarkReadingAllBalancesRAM and BenchmarkReadingAllBalancesDisk
- Enhancements
- Tools
- Enhancements
- Implement a transaction load generator
- Added Repeat configuration flag to support single invocation of load generator
- Support large integers in tealdbg
- Bug Fixes
- Improvements/bugfixes for tealdbg to improve Chrome DevTools support
- Fix tealdbg Accounts array
- Enhancements
- Other
- New Feature - systemd - run algod as a user service
- Enhancements
- Build - fix deprecation warning on sortition compilation
- Build - new recipe for Devnet network
- Bug Fixes
- Pipeline - move check_golang_version check to fix deploying in travis
- Pipeline - remove jq from check golang version script to fix deploy jobs in Travis
Protocol Upgrade
This release contains a consensus protocol upgrade, which implements the following spec:
https://github.com/algorandfoundation/specs/tree/bea19289bf41217d2c0af30522fa222ef1366466
Additional Resources
Algorand v2.4.1
Summary
Highlights
Primarily enhancements and fixes to Fast Catchup and DNSSEC, but other logging improvements, miscellaneous optimizations, and other fixes as well. This release also fixes an issue with telemetry configuration being set incorrectly, in a bug that was introduced in 2.3.0.
Changelog
- General
- Bug Fix - fix return code testing & fix data directory cloning
- Catchup
- New Feature - add the ability to disable catchup in config file
- Bug Fixes
- Clear roundDigest when fast catchup is switching off
- Fix catchup concurrently from a single host
- Incorrect block download retry accounting during fast catchup
- Config
- Bug Fixes
- Fix DNSBootstrapArray returning empty strings
- Read from global logging config if data dir not provided
- Fix regression to loadTelemetryConfig introduced in 2.3.0
- Goal
- Enhancements
- Generate error on
goal clerk group
on signed transaction - Pass transaction groups correctly to logicsig evaluator
- Generate error on
- Enhancements
- KMD
- Enhancement - better kmd permission error message
- Ledger
- Enhancement - parallelize proposal transactions signature verification
- Bug Fix - fix in memory database bug revealed by TestFullCatchpointWriter
- Create a unified transaction verification cache
- Small transaction pool rebuild & assembly optimizations
- Compact accounts deltas before persisting to disk
- Convert the catchpointWriting from a channel to an atomic variable
- Refactor account updates consistency checking
- Logging
- Enhancements
- Improve agreement cadaver & crash database error handling
- Improve error logging of elastic search telemetry module
- Improve node error code checking
- Enhancements
- Network
- Enhancements
- Add explicit error for stale network message writes
- Use OS and fallback DNS servers in DNSSEC resolver
- Get system DNS on Windows
- Bug Fix - add f.Close() return code testing in SystemConfig()
- Bug Fix - fix network peers list memory leak
- Code style fixes DNSSEC client
- Enhancements
- Tools
- Enhancements
- Create configuration file using config.Local data structure
- Show all errors, not just the first, when compiling TEAL
- Allow catchpointdump to download a single catchpoint from a specified relay
- Update catchpointdump utility to have progress bars
- Enhancements
- Tests & Benchmarks
- Benchmarks
- Add payset benchmarks
- Benchmark account db random reads and BlockEvaluator
- Enhancements
- Add travis_retry to build and test commands in case of random failures
- Disable cadaver for mainnet model
- Disable cadaver for mainnet model, include config overrides this time
- Improve catchpoint catchup expect test by not compiling on the fly
- Remove code quality checking on integration tests builds
- Set CadaverSizeTarget to 0 for Scenario testing
- Bug Fixes
- Fix a race in arm test in algoh startup and algod.* files creation
- Fix arm64 failures running TestAlgohWithExpect
- Fix miscellaneous bugs in goalAsset expect test
- Fix random limit order test
- Fix various bugs in expect tests
- Wait for EOF on StartNetwork/StopNetwork and test status correctly
- Benchmarks
- Other
- Enhancements
- Add transaction evaluation distribution metrics
- Check minimal go version 1.14 prior the build
- Pipeline - clean up environmental variable usage to simplify building
- Run gofmt against source code
- Update go files to have license range of 2021
- Use go tooling to get version from go.mod instead of parsing
- Bug Fixes
- Pipeline - fix download location when signing build assets
- Pipeline - fix releases-page task
- Pipeline - minimal bug fixes for latest package deployment
- Pipeline - move check_golang_version check to fix travis builds
- Enhancements
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.4.1
Highlights
This release is primarily to fix an issue with telemetry configuration being set incorrectly, in a bug that was introduced in 2.3.0.
Changes
- Config
- Bug Fixes
- Read from global logging config if data dir not provided
- Fix regression to loadTelemetryConfig introduced in 2.3.0
- Bug Fixes
- Other
- Bug Fix - move check_golang_version check to fix travis builds
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.4.0
Highlights
Primarily enhancements and fixes to Fast Catchup and DNSSEC, but other logging improvements, miscellaneous optimizations, and other fixes as well.
Changelog
- General
- Bug Fix - fix return code testing & fix data directory cloning
- Catchup
- New Feature - add the ability to disable catchup in config file
- Bug Fixes
- Clear roundDigest when fast catchup is switching off
- Fix catchup concurrently from a single host
- Incorrect block download retry accounting during fast catchup
- Config
- Bug Fix - fix DNSBootstrapArray returning empty strings
- Goal
- Enhancements
- Generate error on
goal clerk group
on signed transaction - Pass transaction groups correctly to logicsig evaluator
- Generate error on
- Enhancements
- KMD
- Enhancement - better kmd permission error message
- Ledger
- Enhancement - parallelize proposal transactions signature verification
- Bug Fix - fix in memory database bug revealed by TestFullCatchpointWriter
- Create a unified transaction verification cache
- Small transaction pool rebuild & assembly optimizations
- Compact accounts deltas before persisting to disk
- Convert the catchpointWriting from a channel to an atomic variable
- Refactor account updates consistency checking
- Logging
- Enhancements
- Improve agreement cadaver & crash database error handling
- Improve error logging of elastic search telemetry module
- Improve node error code checking
- Enhancements
- Network
- Enhancements
- Add explicit error for stale network message writes
- Use OS and fallback DNS servers in DNSSEC resolver
- Get system DNS on Windows
- Bug Fix - add f.Close() return code testing in SystemConfig()
- Bug Fix - fix network peers list memory leak
- Code style fixes DNSSEC client
- Enhancements
- Tools
- Enhancements
- Create configuration file using config.Local data structure
- Show all errors, not just the first, when compiling TEAL
- Allow catchpointdump to download a single catchpoint from a specified relay
- Update catchpointdump utility to have progress bars
- Enhancements
- Tests & Benchmarks
- Benchmarks
- Add payset benchmarks
- Benchmark account db random reads and BlockEvaluator
- Enhancements
- Add travis_retry to build and test commands in case of random failures
- Disable cadaver for mainnet model
- Disable cadaver for mainnet model, include config overrides this time
- Improve catchpoint catchup expect test by not compiling on the fly
- Remove code quality checking on integration tests builds
- Set CadaverSizeTarget to 0 for Scenario testing
- Bug Fixes
- Fix a race in arm test in algoh startup and algod.* files creation
- Fix arm64 failures running TestAlgohWithExpect
- Fix miscellaneous bugs in goalAsset expect test
- Fix random limit order test
- Fix various bugs in expect tests
- Wait for EOF on StartNetwork/StopNetwork and test status correctly
- Benchmarks
- Other
- Enhancements
- Add transaction evaluation distribution metrics
- Check minimal go version 1.14 prior the build
- Pipeline - clean up environmental variable usage to simplify building
- Run gofmt against source code
- Update go files to have license range of 2021
- Use go tooling to get version from go.mod instead of parsing
- Bug Fixes
- Pipeline - fix download location when signing build assets
- Pipeline - fix releases-page task
- Pipeline - minimal bug fixes for latest package deployment
- Enhancements
Protocol Upgrade
This release does not contain a consensus protocol upgrade.