Releases: algorand/go-algorand
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.
Additional Resources
Algorand v2.0.6
Changes
- Network
- Phonebook refactoring
- Support DNSSEC for SRV records lookup
- Add Message Of Interest support for network library
- Active node disconnection
- Add rate limited transport for all the outgoing connections
- Add support for multiple network protocols
- Agreement
- Change Ensure digest to run asynchronously
- Security fix
- Catchup
- Move fetcher client into the catchup
- Goal
- Support older kernels for locking files
- tealsign allows you to easily sign data to be verified by the ed25519verify TEAL opcode
- Ledger
- Actively scan for ledger devices
- Normalize name across platforms
- Improved error handling
- Other
- Add configurable consensus protocol support
- Tunable upgrade window
- Bug fix - t.Parallel was getting called multiple times in the same test
- Add e2e test for upgrading from v21 to v22
- Fix TestStoppedCatchupOnUnsupported test bug
- Misc other bug fixes
Protocol Upgrade
This release contains a consensus protocol upgrade, which implements the following spec:
https://github.com/algorandfoundation/specs/tree/e5f565421d720c6f75cdd186f7098495caf9101f
Additional Resources
Algorand BetaNet v2.0.13
Changes
-
Other
- Add e2e test for upgrading from v21 to v22
- Fix TestStoppedCatchupOnUnsupported test bug
- Misc other bug fixes
Protocol Upgrade
This release contains a consensus protocol upgrade, which implements the following spec:
https://github.com/algorandfoundation/specs/tree/e5f565421d720c6f75cdd186f7098495caf9101f
Additional Resources
Additional Resources
Algorand BetaNet v2.0.12
Changes
- Network
- Phonebook refactoring
- Support DNSSEC for SRV records lookup
- Add Message Of Interest support for network library
- Active node disconnection
- Add rate limited transport for all the outgoing connections
- Add support for multiple network protocols
- Agreement
- Change Ensure digest to run asynchronously
- Security fix
- Catchup
- Move fetcher client into the catchup
- Goal
- Support older kernels for locking files
- tealsign allows you to easily sign data to be verified by the ed25519verify TEAL opcode
- Ledger
- Actively scan for ledger devices
- Normalize name across platforms
- Improved error handling
- Other
- Add configurable consensus protocol support
- Tunable upgrade window
- Bug fix - t.Parallel was getting called multiple times in the same test
Protocol Upgrade
This release contains a consensus protocol upgrade, which implements the following spec:
https://github.com/algorandfoundation/specs/tree/57016b942f6d97e6d4c0688b373bb0a2fc85a1a2
Additional Resources
Algorand v2.0.5
Changes
-
Performance
- Provide explicit msgpack encoder/decoders to improve overall performance
-
Misc
- Improve existing build automation and tooling
Protocol Upgrade
This release does not contain a consensus protocol upgrade.
Additional Resources
Algorand BetaNet v2.0.11
Changes
-
Performance
- Provide explicit msgpack encoder/decoders to improve overall performance
-
Misc
- Improve existing build automation and tooling
Protocol Upgrade
This release does not contain a consensus protocol upgrade.