TestNet and MainNet Update: 3.12.2

MainNet and TestNet have been updated to 3.12.2 today, Wed Nov 30, 2022 12:00PM EST (5:00PM UTC).

IMPORTANT
This release requires a protocol upgrade.
This release contains a consensus protocol upgrade, which implements the following spec: GitHub - algorandfoundation/specs at 44fa607d6051730f5264526bf3c108d51f0eadb6
IMPORTANT
The keys used to sign the release packages have been renewed.
See the instructions below on how to update for a specific system

What's New

  • AVM: box storage is now available. Apps can create an unlimited number of boxes for storing unstructured data.
  • AVM: switch, match, and frame pointer opcodes are now available. These enable more efficient TEAL programs in terms of program length and computation.
  • Bugfixes related to catchpoints, performance enhancements, and additional logging.

Changelog

New Features

  • AVM: match, pushints, and pushbytess opcodes (#4645)
  • AVM: Add support for Boxes (#4149)
  • Catchpoint Dump Utility: catchpointdump now supports tar.gz (#4743)

Enhancements

  • API: bump max size of teal source and dryrun (#4633)
  • Perf Test: Transaction group handle/verify (#4652)
  • Consensus: v36 upgrade (#4722)
  • Lint: enable go vet printf format arg checks for logging (#4679)
  • Logging: demote LeaseInLedgerError from warn to info level (#4685)
  • Netgoal: Update netgoal generate flags and variables (#4656)
  • Performance: Agreement state serialization using msgp (#4644)
  • Performance: don't create child cow in TestTransactionGroup (#4706)
  • Prefetcher: enable prefetcher for assets and apps (#4352)
  • Tests: 20221012 improvements (#4639)
  • Tools: Allow specification of Reward Pool Account Balance in Genesis (#4643)
  • API: Update oapi-codegen version to v1.12.0 of our fork (#4707)
  • Accountdb: add migration 8 for resetting accounthashes on betanet (#4822)
  • Algod: Consolidate models (#4714)
  • Algod: Delete v1 usage from client and remove V2 prefix from APIs (#4767)
  • Algod: Migrate internal uses of v1 algod API to v2 (#4684)
  • Alphanet: update vAlpha5 to point to v36 (#4729)
  • Catchpoints: Enrich catchpoint generation and status with KV metadata (#4808)
  • Ci: Notify when CircleCI build failures for master and rel branches only (#4789)
  • Ci: Notify when GHA workflow fails on master (#4791)
  • Docs: Update SECURITY.md (#4782)
  • Goal: Add URL to goal asset info. (#4731)
  • Metrics: add TransactionGroupTxSyncHandled (#4815)
  • Metrics: split out /Transaction/AssembleBlock metrics (#4795)
  • Netgoal: start with at least 20GB RootStorage (#4779)
  • Performance: turn cache misses during assembly into cache hits during eval (#4617)
  • Performance: Don't preallocate rarely used maps in MakeStateDelta (#4715)
  • Tech Debt: Reduce number of dependencies. (#4750)
  • Telemetry: add TCP RTT info collection (#4745)
  • Tests: Squelch macOS accept incoming network connections notifications (#4814)
  • Tests: large generated accountdb cluster test (#4772)
  • Tests: Fix txid-string comparison (#4792)
  • Tests: Move box test artifacts to a temp directory (#4771)
  • Tests: Lint for unparallelized tests without explicit reason (#4746)
  • Tools: update catchpointdump 'database' and 'database check' commands to handle staging tables and KVs (#4802)
  • Txhandler: add more metric (#4786)

Bugfixes

  • AVM: fix early eval exits for Debugger (#4719)
  • Bug-fix: Blank Import Needs Commenting for Indexer's Lint (#4720)
  • Bug-fix: return v2 spec from swagger endpoint (#4697)
  • Catchpoint: actualize limit constants and fix txtail table init (#4703)
  • Devops: update docker container for docker hub (#4723)
  • Dispenser: add input validation (#4713)
  • Network: align duplicateFilterCount to prevent panic on 32-bit platforms (#4702)
  • Catchpoints: Add the kv hashes into the trie (#4812)
  • Ci: Fix GHA failure notification trigger condition (#4810)
  • Cow: always process KvMods to add OldData to mods when building StateDeltas (#4804)
  • Daemon: pool error messages and old txn expiration (#4755)
  • Goal: Change asset commands to use AccountAssetInformation (#4758)
  • Tests: Fix resolver test endpoint (#4784)
  • Tests: Fix types in assertions and change to using libgoal client when getting PendingTransaction information (#4754)
  • Tests: disable TestWebsocketNetworkTelemetryTCP on CI (#4827)
  • Txhandler: service does not restart after node catching up (#4809)
  • Txsyncer: service does not start after node catching up (#4768)

Activations (previously in vFuture)

  • AVM: Switch opcode (#4458)

Additional Resources

How to Update Signing Key

Debian/Ubuntu

curl -o - https://releases.algorand.com/key.pub | sudo tee /etc/apt/trusted.gpg.d/algorand.asc

RHEL/RPM

curl -O https://releases.algorand.com/rpm/rpm_algorand.pub
sudo rpmkeys --import rpm_algorand.pub

Additional Resources

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