github algorand/go-algorand v2.5.0-beta
Algorand BetaNet v2.5.0

3 years ago

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

Don't miss a new go-algorand release

NewReleases is sending notifications on new releases.