Releases: algorand/go-algorand
Algorand BetaNet 2.6.0
Highlights
- Increased Test Coverage: including adding NFT support for pingpong
- Logging: reduced verbosity
- TEAL: TEAL 3 Refactoring and new features in tealdbg
- Catchup and Catchpoint enhancements
- BugFixes: Update.sh script, GOPROXY, REST API, Nil Check, KMD for Windows, netgoal
Changelog
- General/Other
- New Feature
- Add support for Arch Linux
- Enhancement
- Expand /metrics to show per-message-tag stats on number of messages and amount of bytes moved.
- Cache docker images in Travis and re-load them
- Copy database files generation in create_and_deploy_recipe.sh to nodes
- Improve handling of ledger falling behind agreement
- Report algod panic in algoh
- BlockService will redirect when it does not have the round
- Efficiency Improvement: Avoid compact cert validation on non-validate/non-generate path
- BugFix
- Fix bug with updater not restarting services with systemctl
- Update GOPROXY: Deal with deprecated gocenter.io GOPROXY
- Pipeline - don't reset CHANNEL if defined
- skip printing the logs when program is in terminated state.
- nil check fix
- Push docker tag to betanet
- Fix requestNonce alignment on arm32
- rollback config v17 into v16
- Fixes for KMD on Windows
- New Feature
- Teal
- Enhancement
- Cleanup and re-factor of TEAL 3 code
- adding extra docs for pushbytes and pushint
- Tealdbg:
- Check compile and dryrun programs against consensus limits
- Better support for TEAL 3 in tealdbg
- Allow tealdbg to listen on specified address
- Removes program version assumption
- Enhancement
- REST API
- Bug Fix
- Add swagger response annotations so a valid swagger doc gets generated
- Fix parameter check in abort procedure
- Fixes for pending transaction endpoint
- Return an empty string instead of null when making a proof for transaction with no siblings.
- Bug Fix
- Tests
- Enhancement
- algofix - Allow struct field to be sync.Mutex if tagged algofix:"allow sync.Mutex"
- Add DisableLocalhostConnectionRateLimit configuration option
- Fix/improve kmd speed in test
- Add pingpong mode to create NFTs for testing
- script to watch algod heap
- Improve TestCompactCerts error testing
- Bandwidth watch
- Unit test demonstrating high memory consumption
- Catchup: Add deep block validation support
- Add performance metrics for account updates
- Add tests for ledger/compactcert.go
- test coverage for ledger/eval.go funcs
- Filter out verbosed output from automated testing
- Bug Fix
- Fix parameter check in abort procedure
- Fix testing bug : avoid datarace on a node crash during e2e test
- logfilter: exit with non-zero when test fails
- Node Controller: delete pid file on killing process
- Fix node shutdown on the wrong node directory
- Enhancement
- Catchup and Catchpoint
- Enhancement
- Support for catching up from http or ws fetchers
- Reduce memory utilization during accounts update init by reconstructing balances db from blocks
- Extend catchpointdump utility to verify merkle trie
- Fine tune catchup peer selection logic
- Add cross-verify for genesis.json hash
- Bug Fix
- catchpoint: truncate output file
- Enhancement
- Ledger
- Enhancement
- Preload account data in parallel on the evaluator
- Improve ConsensusVersion error messages
- Disable minimum balance check when not validating or generating
- Split committed round range by consensus protocol version
- Bug Fix
- Fix consensus version to flush correctly
- Enhancement
- Network
- Enhancement
- Improve ConsensusVersion error messages
- Add peer functions to network interface to associate data with a peer to be garbage collected when peer goes away
- Add networking infrastructure for cancelling sends
- Enhancement
- Goal
- Enhancement
- Add comments to disassembly of constant load lines to show constant
- add support for a single node private network
- Improve waitForCommit logic
- Refactor waitForCommit
- Bug Fix
- Fix goal node restart message when node already started
- Enhancement
- Transactions
- Enhancement
- Transaction Sync: Optimize bloom filter memory allocations
- Bug Fix
- txpool: Fix incorrect datatype checking in recomputeBlockEvaluator
- Enhancement
- Logger
- Enhancement
- Make deadlockLogger thread-safe
- Reduce verbosity of logged messages
- Print out intermediate decoding errors
- logfilter: provide proper handling for panicking unit tests
- Bug Fix
- logfilter bug when running test without -v
- Enhancement
- netgoal
- Enhancement
- Add pre-generated network support
- Bug Fix
- Fix insufficient account with preloaded db files
- Resolve netgoal errors when bootstrap files are missing
- Fixup small amounts of float64 roundoff
- Enhancement
- Participation Keys
- Enhancement
- Refactor participation keys management
- Add support for overlapping participation keys
- Ensure the participation key database is being correctly closed after being installed
- Add ParticipationKeysRefreshInterval to the node config
- Enhancement
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand 2.5.6
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/d050b3cade6d5c664df8bd729bf219f179812595
Please note that the consensus upgrade window for this release is 60,000 rounds, instead of 140,000. This means that once approved, the upgrade will take effect in a shorter time frame than a week.
Changes
- General
- Bug Fix - Fix accessing int64 atomic variables on arm32 which was causing a panic on startup on ARM32
- Ledger
- Bug Fixes
- Ensure local delta does not have entries with empty key-value stores
- Prevent storing empty accounts in DB after opting out from an app
- DB data migration for empty accounts
- compatibility mode for account index calculation in eval delta
- Bug Fixes
Additional Resources
Algorand BetaNet 2.5.6
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/d050b3cade6d5c664df8bd729bf219f179812595
Changes
- General
- Bug Fix - Fix accessing int64 atomic variables on arm32 which was causing a panic on startup on ARM32
- Ledger
- Bug Fixes
- Ensure local delta does not have entries with empty key-value stores
- Prevent storing empty accounts in DB after opting out from an app
- DB data migration for empty accounts
- compatibility mode for account index calculation in eval delta
- Bug Fixes
Additional Resources
Algorand 2.5.5
This release will NOT require a protocol upgrade.
Changes
- Bug Fix - proposal propagation logic to reduce occasional block latency increase.
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
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