TestNet and MainNet Update: 2.6.0

MainNet and TestNet have been updated to 2.6.0 today, Wed May 26, 2021 10:30 AM EDT (14:30 UTC)

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 you are having issues with your automatic updates, a fix has been added for this in the 2.6.0 version.


  • 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


  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

    • 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

Test Plan

Standard release testing.

Verify reduced memory usage in higher traffic round processing.

To update your current version, run the following goal command:

./update.sh -c stable -i -d <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 yet,
you can follow the instructions here:

I am having trouble with updating my Testnet. I ran:

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

But I got the following error.

-bash: ./update.sh: No such file or directory

I also tried switching my genesis files to run on another net, but my node is still connecting to testnet-v1.0. I’d appreciate any suggestions or advice, thanks!

The ./update.sh ... command assumes that you installed the software using the steps from Install a Node - Algorand Developer Portal.
Furthermore, this command needs to be run from the folder containing the update.sh script.

If you are using the Debian/Ubuntu package, please follow Install a Node - Algorand Developer Portal

1 Like

The update.sh was in my node directory. When I ran:

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

from the node directory, the script successfully deployed. Thanks @fabrice !