BetaNet Update: 3.0.0 - Consensus Upgrade

BetaNet is scheduled to upgrade to version 3.0.0 today, Wed Sept 15, 2021 2:30PM ET (6:30PM UTC). This release does contain a consensus upgrade.

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.

This release requires a protocol upgrade.
This release contains a consensus protocol upgrade, which implements the following spec: GitHub - algorandfoundation/specs at bc36005dbd776e6d1eaf0c560619bb183215645c


This release features the 1.0 version of AVM, extending Algorand’s smart contract capabilities for even greater composability. Highlights in this release include:

  • Application transactions: the ability for smart contracts to execute transactions on directly on chain.
  • App cost pooling: larger contract size, by combining the budgets across an application group.
  • Increased account smart contract limit to 50
  • More smart contract opcodes to improve composability (inner transaction references, verify ECDSA, log, and others)


  1. AVM
    • Added
      • Add GroupID as an accessible global field in AVM (#2838)
      • Add opcodes for dynamically indexing into Txn array fields (#2847)
      • Implement verify ECDSA secp256k1 opcodes (#2852)
      • Introduce itxn to get inner transaction results (#2883)
      • Smart contracts can issue transactions (#2661)
      • loads and stores opcodes that take scratch slot from stack (#2853)
    • Changed
      • Better naming for extract opcodes (#2891)
      • Check if tx_field can be set with tables instead of switch (#2849)
      • Dry run should return opcode cost used (#2746)
      • Ensure that AssetCreator is not used before proto.LogicSigVersion=5 and unify field handling (#2784)
      • Expose nonparticipation txn field in teal (#2823)
      • Increase max app opt ins to 50 (#2750)
      • Make config.MaxLogCalls dependent on some consensus param (#2732)
      • Use math.bits intrinsics to simplify addw/mulw opcodes (#2839)
    • Fixed
      • Ensure disassemble/reassemble cycle works in testProg (#2745)
      • Increase coverage in AVM code and bug fix in account fields of tx_field (#2840)
  2. Goal
    • Changed

      • Display app address in goal app info & show logs are binary in REST API (#2836)
      • Display extra pages in goal info commands (#2763)
    • Fixed

      • Fix enumeration bug with using Ledger Nano S and goal (#2822)
  3. Ledger
    • Added
      • Add ledger.GetBlockAddresses() (#2872)
    • Changed
      • Fix overriding consensus parameters in evaluator. (#2811)
      • Simplify startEvaluator() (#2812)
  4. Network
    • Fixed
      • Fix ParseHostOrURL and enable expect tests (#2772)
  5. Tools
    • Changed
      • Improve error message in when updater is corrupt (#2766)
      • Netgoal - add account balance range (#2771)
  6. Tests
    • Changed
      • Per-client RAM measurement scripts (#2783)
      • Split expect tests into separate circleci group (#2792)
    • Fixed
      • Data race in tests: TestApplicationsUpgradeOverREST race (#2844)
      • Disable deadlock for netgoal (#2785)
      • Fix TestStartAndStop (#2757)
      • Fix auto-gen tests (#2880)
      • Fix goalNodeTest.exp (#2781)
      • Fix issue with checking RUN_EXPECT when listing packages (#2863)
      • Fix partition recovery tests (#2820)
      • Fix pingpong teal test (#2835)
      • Fixed a typo in for integration tests (#2761)
      • Update pingpong transaction sending logic (#2747)
  7. Other
    • Changed
      • Add comments for protocol hash IDs and tags (#2774)
      • Checking CircleCI tests run once and only once (#2749)
      • Fix go vet issues (#2826)
      • Limit the number of buckets in verifiedTransactionCache to 3 (#2775)
      • Remove codegen from travis file (#2768)

Additional Resources

To update to the current version of BetaNet, you can run the following goal command:

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