Releases: algorand/go-algorand
Algorand 2.8.0
Highlights
This is a maintenance release focused around many test improvements and other optimizations. Additionally there are some added improvements, such as:
- Local private network devMode for rapid transaction testing
- Improved support for non-utf-8 data in asset parameter name, unit name, and url fields, through the addition of base64 fields
- Support for CentOS 8 Stream in RPM
- Changes to support future AVM 1.0
Changes
- REST API
- New Feature - add handling for non-utf 8 asset names
- Enhancements
- Use byte format for asset b64 fields
- Use dashes in v2 API.
- Bug Fix - initialize past side effects with correct length during dryrun requests
- TEAL
- New Features
- Selector pseudo-op in support of ABI
- vFuture: creator access and app_params_get
- Enhancements
- Infrastructure to check AVM stack manipulation opcodes better
- Specs and unit test to avoid forgetting in the future
- Bug Fixes
- Addressing panic in assembler
- Minor change to rename helper function in Extract ops
- New Features
- Catchup
- Enhancement - avoid requesting unsupported blocks by the ensure digest catchup path
- Bug Fixes
- Fixes to peer selector and TestBasicCatchpointCatchup
- Fix potential nil dereferencing
- Ledger
- Enhancements
- Lruaccts write speedup
- optimize txtail memory consumption
- Enhancements
- Network
- Enhancement - reduce unneeded contention around checking the peers connectivity
- Node
- New Feature - add initial devMode support
- Bug Fixes
- Allow to parse ipv6 localhost "[::]:4601"
- Fix regex for matching charset of valid DNS hosts, add test
- Logging
- Enhancement - re-use host ID if present
- Tests
- Enhancements
- Add enums to player permutation tests
- Add ledger coverage for onlineacct roundlru txtail
- Implement hello circleci yaml
- Improve TestMetricSegment test reliability
- Restore TestPeriodicSync and TestBasicCatchpointCatchup tests.
- Added benchmark to lruAccounts write function
- Enable TestPartkeyOnlyRewards on macos
- Add unit tests for ledger BlockQueue
- Enable previously disabled TestConfigMigrate unit test
- Enable unit tests on travis mac build
- Improve lruaccts benchmark
- Improve msgp codec testing
- Improve testing of alloc bounded slices
- Make TestPeersDownloadFailed and TestHistoricData predictable
- Move extra page test to e2e_subs
- Move travis_retry to skip rebuilding
- Remove deprecated transaction pool e2e tests
- Use periodicSyncLogger for cleaner test runs
- Bug Fixes
- Avoid division by zero during TestBasicCatchpointWriter
- Fix 10 minute timeout in travis
- Fix and enable TestNewAccountCanGoOnlineAndParticipate
- Build: fix travis nightly build failure
- Fix random failure in TestWebsocketNetworkPrioLimit
- Fix random failures in TestPeriodicSync
- Avoid running TestAgreementSynchronous10 on nightly build
- Ensure deploy_linux_version generates a linux/amd64 binaries for algonet usage
- Fix gotestsum install
- Fix telemetry unit tests
- Lookup in no-GOPATH locations for packages in gocodec testing
- Enhancements
- Other
- New Features
- Add Fedora support into install_linux_deps.sh
- Test conditional slack alert for build status
- Use golangci-lint
- Enhancements
- Update Github engineering template
- Replace yum-cron with dnf-automatic to support centos 8
- Run misspell linter with -w flag
- Specify truncated division is used in TEAL in documentation
- Typos, grammar, inconsistencies
- Bug Fixes
- Add missing txna allowed args to doc and langspec
- Fix darwin-arm64 builds
- Fix docker repo update
- New Features
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 2.8.0
Highlights
This is a maintenance release focused around many test improvements and other optimizations. Additionally there are some added improvements, such as:
- Local private network devMode for rapid transaction testing
- Improved support for non-utf-8 data in asset parameter name, unit name, and url fields, through the addition of base64 fields
- Support for CentOS 8 Stream in RPM
- Changes to support future AVM 1.0
Changes
- REST API
- New Feature - add handling for non-utf 8 asset names
- Enhancements
- Use byte format for asset b64 fields
- Use dashes in v2 API.
- Bug Fix - initialize past side effects with correct length during dryrun requests
- TEAL
- Enhancements
- Infrastructure to check AVM stack manipulation opcodes better
- Bug Fixes
- Addressing panic in assembler
- Minor change to rename helper function in Extract ops
- Enhancements
- Catchup
- Enhancement - avoid requesting unsupported blocks by the ensure digest catchup path
- Bug Fixes
- Fixes to peer selector and TestBasicCatchpointCatchup
- Fix potential nil dereferencing
- Ledger
- Enhancements
- Lruaccts write speedup
- optimize txtail memory consumption
- Enhancements
- Network
- Enhancement - reduce unneeded contention around checking the peers connectivity
- Node
- New Feature - add initial devMode support
- Bug Fixes
- Allow to parse ipv6 localhost "[::]:4601"
- Fix regex for matching charset of valid DNS hosts, add test
- Logging
- Enhancement - re-use host ID if present
- Tests
- Enhancements
- Add enums to player permutation tests
- Add ledger coverage for onlineacct roundlru txtail
- Implement hello circleci yaml
- Improve TestMetricSegment test reliability
- Restore TestPeriodicSync and TestBasicCatchpointCatchup tests.
- Added benchmark to lruAccounts write function
- Enable TestPartkeyOnlyRewards on macos
- Add unit tests for ledger BlockQueue
- Enable previously disabled TestConfigMigrate unit test
- Enable unit tests on travis mac build
- Improve lruaccts benchmark
- Improve msgp codec testing
- Improve testing of alloc bounded slices
- Make TestPeersDownloadFailed and TestHistoricData predictable
- Move extra page test to e2e_subs
- Move travis_retry to skip rebuilding
- Remove deprecated transaction pool e2e tests
- Use periodicSyncLogger for cleaner test runs
- Bug Fixes
- Avoid division by zero during TestBasicCatchpointWriter
- Fix 10 minute timeout in travis
- Fix and enable TestNewAccountCanGoOnlineAndParticipate
- Build: fix travis nightly build failure
- Fix random failure in TestWebsocketNetworkPrioLimit
- Fix random failures in TestPeriodicSync
- Avoid running TestAgreementSynchronous10 on nightly build
- Ensure deploy_linux_version generates a linux/amd64 binaries for algonet usage
- Fix gotestsum install
- Fix telemetry unit tests
- Lookup in no-GOPATH locations for packages in gocodec testing
- Enhancements
- Other
- New Features
- Add Fedora support into install_linux_deps.sh
- Test conditional slack alert for build status
- Use golangci-lint
- Enhancements
- Update Github engineering template
- Replace yum-cron with dnf-automatic to support centos 8
- Run misspell linter with -w flag
- Specify truncated division is used in TEAL in documentation
- Typos, grammar, inconsistencies
- Bug Fixes
- Add missing txna allowed args to doc and langspec
- Fix darwin-arm64 builds
- Fix docker repo update
- New Features
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand 2.7.1
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/65b4ab3266c52c56a0fa7d591754887d68faad0a
Spec PR: #2286
Highlights
This release represents a major milestone in smart contract functionality, as well as serves as a vote for the future of governance on chain.
In this release:
- Governance vote - see https://algorand.foundation/news/algorand-governance-referendum
- Algorand Virtual Machine (AVM) v0.9
- Control Flow
- New OpCodes: callsub, retsub
- Allow backward jumps or indirect jumps
- Dynamic cost accounting
- Opcodes: Math related
- New OpCodes: shl, shr, divmodw, exp, expw, sqrt, log2
- Byteslice arithmetic
- Contract-to-contract composability - allow contracts to share scratch space in a transaction group
- Createable IDs in gtxns (they are not really deterministic, but rather new app/asset idx are available for subsequent apps within a transaction group)
- Increased Program Limits
- Ability to pay for extra pages
- Pool fees - as long as fees in a covered in a gtxn, allow 0 fee txns
- Increase ASA URL size from 32 bytes to 96 bytes (better IPFS support for NFTs)
- Combine clear and approval limits
- Combine schema key/value sizes
- Optimize int/byte constant in assembly
- Control Flow
- Participation key registration improvements (e.g. check valid ranges)
- Miscellaneous optimizations and test improvements
Changes
- AVM
- New Features
- Control flow (callsub, retsub; backward/indirect jumps; dynamic cost accounting)
- New math opcodes (shl, shr, divmodw, exp, expw, sqrt, log2) and byteslice-oriented math
- Add ability to pay for more program space
- Allow future app call transactions to read the scratch space of previous transactions in the same transaction group for contract to contract composability
- Combine Clear and Approval Program size limits
- Combine app state key/value size limits
- Expose creatable IDs to AVM code within the same group
- Pool fees in a transaction group and allow one user to pay all fees
- Enhancements
- Allow AVM code to access a max number of foreign refs
- Increase ASA URL size from 32 bytes to 96 bytes to support NFTs with longer IPFS URLs
- Optimize constant assembly
- Regularize access to "foreign" references
- Bug Fix - check setbyte length properly
- New Features
- REST API
- New Feature - add the AppsTotalExtraPages account field to the response returned by the /v2/accounts/{addr} endpoint
- Enhancement - make account endpoint produce deterministic JSON
- Bug Fix - make extra-program-pages and apps-total-extra-pages optional in order to do not exposing them before the protocol switch
- Agreement
- Bug Fix - bug fix for proposal for a future round failing to be relayed
- Catchup
- Enhancement - catchup: speedup initial node DNS bootstrap time
- Goal
- Bug Fix - clean up
goal wallet new
output
- Bug Fix - clean up
- Network
- Enhancement - start network only after handlers registration is complete
- Bug Fix - fix go vet error for string(int) conversion in TestWebsocketNetworkCancel
- Node
- Enhancement - improve fresh node startup time
- Bug Fix - ensure stopping a node always stops KMD
- Tools
- Enhancements - deprecate auction code
- Improve carpenter by adding timestamp
- Tests
- New Feature - integrate with codecov.io to attach coverage reports to PRs
- Enhancements
- Add PeerSelector and Catchup service tests
- Add missing test for universalFetcher.go
- Bandwidth stats for cluster tests
- Disable compact certs and auction tests
- Disable goal expect tests
- Improve AVM tests
- Improve TestRewardUnitThreshold predicate
- Increase catchupaccessor code coverage
- Temporarily disable TestBasicCatchpointCatchup test and reset timeouts
- Temporarily disable TestPeriodicSync test
- Use gotestsum instead of logfilter for test formatting
- e2e sub assets-app speedup
- sectok e2e faster
- Bug Fixes
- Fix asynchronous startup case for rekey upgrade test
- Fix bug in TestApplicationsUpgradeOverREST
- Fix data race accessing messagesOfInterest during network shutdown
- Fix random TestAccountInformationV2 test failures by refreshing wallet handle
- Fix random failure in TestConsensusVersion
- Fixing a bug in eval and TestOnSwitchToUnSupportedProtocol
- Protocol upgrade tests - AgreementFilterTimeout was not set correctly
- Fix TestRekeyUpgrade when round=0
- Other
- New Feature - initial support for building CentOS Stream 8 RPM (still need publishing work)
- Enhancements
- Add mention of install_buildtools.sh to README
- Fix docker builds after refactor: skip
make deps
- Modify build_release to match build_pr and remove ARM Deploy
- Re-enable gofmt check during travis build
- Refactor code generation verification
- Remove ci-deps and update GOPROXY in Dockerfiles
- Use minimal travis container since we install go ourselves
- Bug Fixes
- Fix incorrect gaid and gaids docs
- Fix nightly test genesis file issue
- If the branch is rel/nightly set channel to nightly
- Fix crash that should be a clean error report for using
substring
wrong
Known Issues
- Programs up to 2kb can be updated, while programs between 2kb and 8kb can not.
- The
dryrun
REST API endpoint fails for requests containing multiple transactions.
Additional Resources
Algorand BetaNet 2.7.1
Highlights
This is a minor fix to ensure consistency in algod and indexer outputs before the protocol switch.
Summary
- REST API
- Bug Fix - make extra-program-pages and apps-total-extra-pages optional in order to do not exposing them before the protocol switch.
Protocol Upgrade
This release does not contain a protocol upgrade.
Additional Resources
Algorand BetaNet 2.7.0
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/65b4ab3266c52c56a0fa7d591754887d68faad0a
Spec PR: #2286
Highlights
This release represents a major milestone in smart contract functionality, as well as serves as a vote for the future of governance on chain.
In this release:
- Governance vote - see https://algorand.foundation/news/algorand-governance-referendum
- Algorand Virtual Machine (AVM) v0.9
- Control Flow
- New OpCodes: callsub, retsub
- Allow backward jumps or indirect jumps
- Dynamic cost accounting
- Opcodes: Math related
- New OpCodes: shl, shr, divmodw, exp, expw, sqrt, log2
- Byteslice arithmetic
- Contract-to-contract composability - allow contracts to share scratch space in a transaction group
- Createable IDs in gtxns (they are not really deterministic, but rather new app/asset idx are available for subsequent apps within a transaction group)
- Increased Program Limits
- Ability to pay for extra pages
- Pool fees - as long as fees in a covered in a gtxn, allow 0 fee txns
- Increase ASA URL size from 32 bytes to 96 bytes (better IPFS support for NFTs)
- Combine clear and approval limits
- Combine schema key/value sizes
- Optimize int/byte constant in assembly
- Control Flow
- Participation key registration improvements (e.g. check valid ranges)
- Miscellaneous optimizations and test improvements
Changes
- AVM
- New Features
- Control flow (callsub, retsub; backward/indirect jumps; dynamic cost accounting)
- New math opcodes (shl, shr, divmodw, exp, expw, sqrt, log2) and byteslice-oriented math
- Add ability to pay for more program space
- Allow future app call transactions to read the scratch space of previous transactions in the same transaction group for contract to contract composability
- Combine Clear and Approval Program size limits
- Combine app state key/value size limits
- Expose creatable IDs to AVM code within the same group
- Pool fees in a transaction group and allow one user to pay all fees
- Enhancements
- Allow AVM code to access a max number of foreign refs
- Increase ASA URL size from 32 bytes to 96 bytes to support NFTs with longer IPFS URLs
- Optimize constant assembly
- Regularize access to "foreign" references
- Bug Fix - check setbyte length properly
- New Features
- REST API
- New Feature - add the AppsTotalExtraPages account field to the response returned by the /v2/accounts/{addr} endpoint
- Enhancement - make account endpoint produce deterministic JSON
- Agreement
- Bug Fix - bug fix for proposal for a future round failing to be relayed
- Catchup
- Enhancement - catchup: speedup initial node DNS bootstrap time
- Goal
- Bug Fix - clean up
goal wallet new
output
- Bug Fix - clean up
- Network
- Enhancement - start network only after handlers registration is complete
- Bug Fix - fix go vet error for string(int) conversion in TestWebsocketNetworkCancel
- Node
- Enhancement - improve fresh node startup time
- Bug Fix - ensure stopping a node always stops KMD
- Tools
- Enhancements - deprecate auction code
- Improve carpenter by adding timestamp
- Tests
- New Feature - integrate with codecov.io to attach coverage reports to PRs
- Enhancements
- Add PeerSelector and Catchup service tests
- Add missing test for universalFetcher.go
- Bandwidth stats for cluster tests
- Disable compact certs and auction tests
- Disable goal expect tests
- Improve AVM tests
- Improve TestRewardUnitThreshold predicate
- Increase catchupaccessor code coverage
- Temporarily disable TestBasicCatchpointCatchup test and reset timeouts
- Temporarily disable TestPeriodicSync test
- Use gotestsum instead of logfilter for test formatting
- e2e sub assets-app speedup
- sectok e2e faster
- Bug Fixes
- Fix asynchronous startup case for rekey upgrade test
- Fix bug in TestApplicationsUpgradeOverREST
- Fix data race accessing messagesOfInterest during network shutdown
- Fix random TestAccountInformationV2 test failures by refreshing wallet handle
- Fix random failure in TestConsensusVersion
- Fixing a bug in eval and TestOnSwitchToUnSupportedProtocol
- Protocol upgrade tests - AgreementFilterTimeout was not set correctly
- Fix TestRekeyUpgrade when round=0
- Other
- New Feature - initial support for building CentOS Stream 8 RPM (still need publishing work)
- Enhancements
- Add mention of install_buildtools.sh to README
- Fix docker builds after refactor: skip
make deps
- Modify build_release to match build_pr and remove ARM Deploy
- Re-enable gofmt check during travis build
- Refactor code generation verification
- Remove ci-deps and update GOPROXY in Dockerfiles
- Use minimal travis container since we install go ourselves
- Bug Fixes
- Fix incorrect gaid and gaids docs
- Fix nightly test genesis file issue
- If the branch is rel/nightly set channel to nightly
- Fix crash that should be a clean error report for using
substring
wrong
Additional Resources
Algorand 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 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.