# TestNet and MainNet Update: 3.0.1

**URL:** <https://forum.algorand.co/t/testnet-and-mainnet-update-3-0-1/4402>\
**Category:** Announcements\
**Tags:** testnet, mainnet\
**Created:** [September 29, 2021, 2:53pm UTC](https://forum.algorand.co/t/testnet-and-mainnet-update-3-0-1/4402 "2021-09-29T14:53:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![devops-service](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/devops-service/32/2205_2.png) [@devops-service](https://forum.algorand.co/u/devops-service)\
**Post date:** [September 29, 2021, 2:53pm UTC](https://forum.algorand.co/t/testnet-and-mainnet-update-3-0-1/4402/1 "2021-09-29T14:53:29Z")

</div>

MainNet and TestNet have been updated to 3.0.1 today, Wed Sep 29th, 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.

 ![GitHub Logo](https://us1.discourse-cdn.com/flex016/uploads/algorand/original/1X/fcd756bba61094f9e8774e43ec402e311aeea50e.jpeg)

| **IMPORTANT**  
**This release requires a protocol upgrade.**   
 This release contains a consensus protocol upgrade, which implements the following spec: [GitHub - algorandfoundation/specs at bc36005dbd776e6d1eaf0c560619bb183215645c](https://github.com/algorandfoundation/specs/tree/bc36005dbd776e6d1eaf0c560619bb183215645c) |
| --- |

# Highlights

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)
- Debugging for itxn programs and include a bugfix for dryrun crashes.

# Changes

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

  - Fixed

3. TEAL
  - Added
    - Enable debugging itxn programs (#2900)

  - Fixed
    - Fix dryrun crash on rewards calculation (#2894)

4. Ledger
  - Added
    - Add ledger.GetBlockAddresses() (#2872)

  - Changed
    - Fix overriding consensus parameters in evaluator. (#2811)
    - Simplify `startEvaluator()` (#2812)

5. Network
  - Fixed
    - Fix ParseHostOrURL and enable expect tests (#2772)

6. Tools
  - Changed
    - Improve error message in update.sh when updater is corrupt (#2766)
    - Netgoal - add account balance range (#2771)

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

- [Algorand Forum](https://forum.algorand.co)
- [Developer Documentation](https://developer.algorand.org)

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:

> **[Install a node - Algorand Developer Portal](https://developer.algorand.org/docs/run-a-node/setup/install/#updating-node)**
>
> Algorand Developer Docs, SDKs, REST APIs, CLI tools, ecosystem projects, metrics dashboard and sample code, how-tos, and news from the Algorand developer community
