Skip to content

Releases: algorand/go-algorand

Algorand BetaNet 2.6.0

21 May 15:36
34f7106
Compare
Choose a tag to compare

GitHub Logo

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

  1. 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
  2. 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
  3. 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.
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. Transactions
    • Enhancement
      • Transaction Sync: Optimize bloom filter memory allocations
    • Bug Fix
      • txpool: Fix incorrect datatype checking in recomputeBlockEvaluator
  10. 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
  11. 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
  12. 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

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

Algorand 2.5.6

28 Apr 17:35
219b78d
Compare
Choose a tag to compare

GitHub Logo

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

  1. General
    • Bug Fix - Fix accessing int64 atomic variables on arm32 which was causing a panic on startup on ARM32
  2. 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

Additional Resources

Algorand BetaNet 2.5.6

27 Apr 05:22
1fa7e2e
Compare
Choose a tag to compare

GitHub Logo

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

  1. General
    • Bug Fix - Fix accessing int64 atomic variables on arm32 which was causing a panic on startup on ARM32
  2. 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

Additional Resources

Algorand 2.5.5

20 Apr 14:44
304815d
Compare
Choose a tag to compare

GitHub Logo

This release will NOT require a protocol upgrade.

Changes

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

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