BetaNet Update: Version 2.2.0

BetaNet will be upgraded to version 2.2.0 on Monday 11/2 at 10:30am EDT.

If you have your node set to automatic updates, you don’t need to do anything. It will automatically update to the newer version whenever that becomes available.

If this is not the case, you can update the binary, but aren’t required to do so.

Summary of Contained Changes in Upgrade:

Highlights

  • Miscellaneous bug fixes
  • Some slight performance optimizations
  • Additional tests and fixes to existing tests
  • Work to implement new packaging pipeline
  • Initial backend support for compact certificate development

Changes

  1. Agreement
    • Enhancements
      • Add consensus-driven agreement filter timeout
      • Vote validation error refactor
      • Deprecate algolambdamsec environment variable
  2. Algod
    • Bug Fix - exit algod with a non-zero in case of a startup error
  3. Catchup
    • Enhancements
      • Minor catchpoint REST handler error code cleanup
      • Improve RestoringFromCatchpointFile benchmark precision
    • Bug Fix - ensure syncStartNS is managed correctly across catchpoint file writing
    • Add detailed error logging in case of failed blocks download
  4. Crypto
    • Enhancement - add more inputs into hashCoin() for better hygiene
  5. General
    • New Features
      • Core crypto primitives for compact certificates
      • Added a transaction type to store compact certificates
    • Bug Fix - modify the error messages for parseIntcblock to distinguish from parseBytecblock
  6. Goal
    • Enhancements
      • Fix inconsistencies in goal asset command
      • Add goal account info command
      • Output error when ‘goal node stop’ is run on invalid/non-existing directory
    • Bug Fix - Avoid printing control characters from goal
  7. Ledger
    • New Feature - commit to Merkle tree of online participants in block header
    • Enhancements
      • Implement tracking of top-N online accounts in the ledger
      • Add metrics for the various ledger components
      • Cache the most recent Seed/Circulation calls to reduce pressure on ledger
      • Remove the Lookup from the ledgerForEvaluator interface
      • Decouple database round and acctupdate round
      • Fix typos in ledger package
      • Optimize listCreatables implementation
      • Repack merkle trie pages before flush
      • Extend account lookup to include validity range
    • Bug Fixes
      • Calculate normalized balance using genesis proto
      • Add syncMu to AlgorandFullNode OnNewBlock
  8. Transaction Pool
    • Bug Fixes
      • Refactor AssembleBlock error
      • Limit txpool size by transaction count rather then transaction groups count
      • Correct the accounting of transactions in checkPendingQueueSize
      • Correctly account for bloom filter binary marshaling size
  9. Network
    • Enhancements
      • Remove expected ReadError events
      • Add ASCII filtering for remote requests logged data
  10. REST API
    • New Feature - new endpoint /genesis.json
    • Enhancements
      • Don’t return an error when requesting the same catchpoint multiple times
      • Add new line characters allowing proper Markdown formatting when docs are generated from this source file
      • REST docs update: /v1/account/{addr}/transactions
    • Bug Fixes
      • Add versions endpoint to spec, fix versions model objects
      • Allow max and assetIndex to be optional
      • Return 404 if v1/transaction/{txid} doesn’t find the txn.
      • Set content type header for health endpoint
  11. Telemetry
    • Bug Fixes
      • Correct Telemetry uploading message reported in node.log
      • Change telemetryConfig from global variable to a member of the logger
  12. Tools
    • Enhancements
      • Added a new recipe for performing network disruption tests.
      • Simplifed dryrunning and debugging group transactions
      • Add support for algorelay deleting unused SRV and DNS entries
      • Add txn.Accounts and txn.ApplicationArgs support to tealdbg
      • Improve goal node start error reporting in case of algod errored
      • Tealdbg: listen for upcoming spinoff connections
      • Netgoal general templates
    • Bug Fixes
      • Improve network template validation
  13. Tests
    • New Feature - performance testing with realilistic network performance
    • Enhancements
      • Add concurrent read and write test from database table
      • Add a unit test to confirm BinaryMarshalLength correctness
      • Added more deb and rpm package tests
      • Coverage tests for ledger/acctupdates
      • Cleanup buggy dead code
      • Implement e2e test for tealdbg
      • Increase code coverage of tealdbg unit tests
      • Tweak the mainnet-model recipe
      • Added auth middleware tests
      • Added debugger coverage test
      • Add a benchmark to test restoring from catchpoint performance
      • Add unit tests for equal functions in teal.go
      • Add a benchmark for writeCatchpointStagingBalances
      • Improve db insertion benchmark - add ordered insertions
      • Add additional ledger tests
      • Updates to support testing TEAL application size
    • Bug Fixes
      • Extend expect timeout when checking account balance
      • Fix random failure in goalNodeTest.exp
      • Fix random failure in goalAppAccountAddressTest.exp
      • Fix unreliable network unit test TestSlowPeerDisconnection
      • Fix data race in TestPing unit test
      • Remove close from eof pattern match to remove error message
      • Test for process return in expect tests
  14. Other
    • New Feature - add support for building native Windows binaries
    • Enhancements
      • Update new issue template
      • Update rpm packaging to allow for more scenarios
      • Update deploy scripts to reflect current deploy strategy
      • Formatting updates with make sanity
      • Added S3_SOURCE env var to specify source of packages for signing
      • Implement mule packaging pipeline
      • Remove devtools binaries from algorand package (rpm)
      • Remove hardcoded dependency package names from package scirpts
      • Fix pathing issue to installer directory in packaging scripts
      • Simplify mule signing task
      • Update mule docs for new pipeline
      • Add support for Windows compilation on travis
      • Remove unused dockerfiles
      • Added package-upload mule task
      • Create mule tasks for aptly, releases page and docker hub images
    • Bug Fixes
      • Remove commas from mule yaml files
      • Revert change to grep recommended by shellcheck
      • Remove Travis token, which is not needed for open source repos
      • Many fixes for implementing new packaging pipeline

Protocol Upgrade

This release does not contain a consensus protocol upgrade.

Additional Resources

To update your current version of BetaNet to 2.2.0, run the following goal command:

./update.sh -c beta -i -d <betanet-data-directory> -n

If you haven’t already done so, we also advise setting up a CRON job to automatically update your algorand networks. If you haven’t done this for BetaNet, you can follow the instructions here:

1 Like