Skip to content

Releases: algorand/go-algorand

Algorand BetaNet 2.5.5

20 Apr 14:21
fbd32c8
Compare
Choose a tag to compare

GitHub Logo

Highlights

An optimization to propagate block proposals early caused latencies to occasionally occur. This release reverts that change.

Changes

  1. 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

12 Apr 19:27
7cd7aef
Compare
Choose a tag to compare

GitHub Logo

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

  1. 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
  2. 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
  3. 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 )
  4. Teal
    • New Feature - TEAL 3 support (see Highlights)
    • Bug Fix - copy byteslices that will be modified by opcode
  5. REST API
    • Bug Fix - fix omitempty for AssetCloseAmount
  6. Catchup
    • Enhancement - implement peer selector logic for catchup
  7. Config
    • Enhancement - create new consensus upgrade for AssetCloseAmount
  8. 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
  9. Node
    • Bug Fix: Fix node panicing during shutdown
  10. Logging
    • Enhancement - do not use deadlock.Mutex in logging
    • Bug Fixes
      • Handle #pragma errors more like all others
      • Prevent misleading agreement error message
  11. 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
  12. 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
  13. 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

09 Apr 19:30
7f7082d
Compare
Choose a tag to compare

GitHub Logo

Highlights

Bug fix release

  • Fast catchup on TestNet was erroring using new code
  • Other miscellaneous fixes

Changelog

  1. 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
  2. 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

29 Mar 18:44
656f3ad
Compare
Choose a tag to compare

GitHub Logo

Highlights

Memory optimizations to reduce resource consumption.

Changelog

  1. Network
    • Enhancement - Adjust the network outgoing buffer sizes
  2. Ledger
    • Enhancements
      • Trim StateDelta fields before storing
      • Improve memory allocations in cloneAssetHoldings and cloneAssetParams
      • Precise calculation of paysetHint for block eval
  3. 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

20 Mar 19:51
43373ba
Compare
Choose a tag to compare

GitHub Logo

Highlights

Bug fix for TEAL3 - setbyte and setbit were not copying values.

Changelog

  1. 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

11 Mar 18:48
aa02b68
Compare
Choose a tag to compare

GitHub Logo

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

  1. TEAL
    • New Feature - TEAL 3 support (see Highlights)
  2. Agreement
    • New Feature - add a Merkle commitment to transactions in block header
    • Bug Fix - fix initial rewards rate calculation for new networks
  3. 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 )
  4. Logging
    • Bug Fixes
      • Handle #pragma errors more like all others
      • Prevent misleading agreement error message
  5. Tools
    • Enhancement - add appeal to kindness to dispenser to help prevent abuse
  6. 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
  7. 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

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

08 Feb 17:43
71b5895
Compare
Choose a tag to compare

GitHub Logo

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

  1. Agreement
    • Enhancement - propagate block proposals before transaction validation
    • Bug Fixes
      • Increase pending proposals queue
      • FilterTimeout is using binary ConsensusCurrentVersion instead of current protocol version
  2. REST API
    • Bug Fix - fix omitempty for AssetCloseAmount
  3. Catchup
    • Enhancement - implement peer selector logic for catchup
  4. Config
    • Enhancement - create new consensus upgrade for AssetCloseAmount
  5. 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
  6. 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
  7. 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
  8. General
    • Enhancement - use msgp 1.1.47
    • Bug Fix - fix few minor log string formatting
  9. Logging
    • Enhancement - do not use deadlock.Mutex in logging
  10. 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
  11. 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
  12. 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

27 Jan 16:11
573a34c
Compare
Choose a tag to compare

Summary

GitHub Logo

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

  1. General
    • Bug Fix - fix return code testing & fix data directory cloning
  2. 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
  3. 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
  4. Goal
    • Enhancements
      • Generate error on goal clerk group on signed transaction
      • Pass transaction groups correctly to logicsig evaluator
  5. KMD
    • Enhancement - better kmd permission error message
  6. 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
  7. Logging
    • Enhancements
      • Improve agreement cadaver & crash database error handling
      • Improve error logging of elastic search telemetry module
      • Improve node error code checking
  8. 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
  9. 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
  10. 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
  11. 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

Protocol Upgrade

This release does not contain a consensus protocol upgrade.

Additional Resources

Algorand BetaNet v2.4.1

21 Jan 20:17
7e8a395
Compare
Choose a tag to compare

GitHub Logo

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

  1. Config
    • Bug Fixes
      • Read from global logging config if data dir not provided
      • Fix regression to loadTelemetryConfig introduced in 2.3.0
  2. 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

19 Jan 15:30
7594a3f
Compare
Choose a tag to compare

GitHub Logo

Highlights

Primarily enhancements and fixes to Fast Catchup and DNSSEC, but other logging improvements, miscellaneous optimizations, and other fixes as well.

Changelog

  1. General
    • Bug Fix - fix return code testing & fix data directory cloning
  2. 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
  3. Config
    • Bug Fix - fix DNSBootstrapArray returning empty strings
  4. Goal
    • Enhancements
      • Generate error on goal clerk group on signed transaction
      • Pass transaction groups correctly to logicsig evaluator
  5. KMD
    • Enhancement - better kmd permission error message
  6. 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
  7. Logging
    • Enhancements
      • Improve agreement cadaver & crash database error handling
      • Improve error logging of elastic search telemetry module
      • Improve node error code checking
  8. 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
  9. 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
  10. 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
  11. 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

Protocol Upgrade

This release does not contain a consensus protocol upgrade.

Additional Resources