TestNet and MainNet Update: 3.10.0

Overview

What's New

  • Fix for excess warning logging related to fetching stateproof secrets
  • REST API changes:
    • Add GetBlockHash API to algod v2
    • Return a 404 instead of a 500 when /v2/blocks/{round} fails due to a missing block
  • Miscellaneous other small fixes
  • Test improvements

Changelog

New Features

  • AVM: Add Semicolon Parsing (#4363)
  • REST API: Add GetBlockHash API to algod v2 (#4580)

Enhancements

  • Alphanet: merge build changes and consensus params (#4431)
  • Batchverifier: Rename and unexport local functions in verify/txn (#4578)
  • Build: Remove mac_amd64 from our default triggered builds. (#4397)
  • Build: adding valid_nightly_branch var to upload_binaries step (#4459)
  • Catchpoint: Optimize catchpoint (#4254)
  • Ci: Ensure algod_expect_test.go tests run by avoiding double partitioning (#4421)
  • Ci: Expose configuration to ignore parent E2E expect test runner invocations (#4422)
  • Ci: Four missing partiontest calls. And minor doc update. (#4394)
  • Ci: Increase parallelism without changing resource_class for faster builds (#4448)
  • Ci: Re-introduce build_nightly workflow to persist artifacts for upload_binaries (#4457)
  • Ci: Speed up CircleCI by folding build workflow downstream (#4426)
  • Ci: make windows build faster (#4443)
  • Ci: optimize caches used by CircleCI and GHA (#4461)
  • Ci: use GHA for codegen_verification (#4412)
  • Cicd: Macos11 support (#4399)
  • Cicd: Reordering circleci config (#4564)
  • Codec: new TxHandler byte decoder (#4266)
  • E2e Tests: tag e2e test data with commit hash (#4481)
  • Lint: Update linter version (#4434)
  • Lint: fix linter errors and update CI to require passing (#4241)
  • Lint: ioutil is deprecated, I have the power of search and replace (#4440)
  • Metrics: network tag filtering test (#4526)
  • Performance: Update two transaction verification benchmarks (#4552)
  • Performance: block validation benchmark (#4522)
  • Quality: Switch from golint to golangci-lint. (#4418)
  • REST API: Return a 404 when a block is not found. (#4479)
  • Stateproof: always set StateProofNextRound in metric (#4475)
  • Telemetry: add BlockAcceptedEventDetails.ReceivedAt to complement ValidatedAt (#4583)
  • Telemetry: add StartupEventDetails.Overrides (#4563)
  • Telemetry: Count and report the number of duplicate proposals and MsgDigestSkipTag messages received (#4605)
  • Tests: Bump py-algorand-sdk to v1.17.0 (#4530)
  • Tests: Get rid of references and uses of go lint and go vet (#4444)
  • Tests: add debug output to e2e_basic_start_stop (#4396)
  • Tests: add timestamps to some expect common operations (#4437)
  • Tests: benchmark assemble / transaction pool's uses of recomputeBlockEvaluator (#3138)
  • Tests: betanet-2 extended recipe (#4572)
  • Tests: fix TestAttestorsChange (#4510)
  • Tests: improve logging in expect tests (#4405)
  • Tests: ledger reload accessing txtail history (#4473)
  • Tests: script improvements for recent testing (#4474)
  • Tests: skip db concurrent Read/Write tests if test.short is set (#4533)
  • Tests: stop network before reading logs (#4429)
  • Tools: netgoal generate add -X, --non-participating-nodes int (#4574)
  • Tools: pingpong improvements (#4294)
  • Tools: tool to dump blocks to directory (#4595)
  • Typo Fix: "Transcation" to "Transaction" (#4248)

Bugfixes

  • AVM: Handle Teal programs with manual constant blocks better (#4442)
  • Algod: changed state proof message to no longer be embedded (#4395)
  • Algod: fix nil deref while fetching stateproof secrets (#4554)
  • Bugfix: download more block to recover old state proofs (#4392)
  • Catchpoint: fix peer ranking (#4535)
  • Catchup: increase HTTPFetcher fetcherMaxBlockBytes for larger block size (#4569)
  • Cicd: Fixing golangci-lint and github action (#4483)
  • E2e Tests: remove unused e2e artifact (#4487)
  • Ledger: Initialize the accountUpdatesLedgerEvaluator properly (#4456)
  • Ledger: do not shadow db error in account lookup (#4425)
  • Ledger: extend catchpoint blocks lookback (#4463)
  • Ledger: fix TestCatchpointReadDatabaseOverflowSingleAccount (#4579)
  • Ledger: fix accounts cache ordering (#4611)
  • Ledger: fix catchpoint test (#4480)
  • Ledger: fix txtail restoring from catchpoints (#4460)
  • Ledger: fix typo in evalbench_test.go (#4450)
  • Loadgenerator: correctly handle AccountMnemonicList (#4454)
  • State Proofs: update state proof totals calculation (#4445)
  • Stateproofs: Make SP e2e tests easier for arm. (#4402)
  • Tech Debt: Remove unused/empty algod API spec (#4420)
  • Tests: Acquire locks when logging start and stop. (#4408)
  • Tests: Add logging to libgoal fixture on failure (#4384)
  • Tests: Convert goal app info expect test to e2e (#4449)
  • Tests: Fix restClientFixture test flaking (#4484)
  • Tests: Fix voterTracker tests (#4441)
  • Tests: TestSlowPeerDisconnect less flakey (#4453)
  • Tests: deprecate TestAsyncRecord (#4407)
  • Tests: deterministic rand seed for stable unit test (#4447)
  • Tests: fix TestBasicCatchpointCatchup (#4390)
  • Tests: fix logged panics in reproducible labels test (#4446)
  • Tests: fix method name after typo correction (#4561)
  • Tests: fix network metrics race condition in tests (#4529)
  • Tests: fix top online warning in TestAcctUpdatesCachesInitialization (#4451)
  • Tests: stabilize TestAssetCreateWaitRestartDelete (#4400)
  • Tests: wait until new block is committed to BlockQueue (#4381)
  • Tools: pingpong nil fix (#4558)
  • Updater: cleanup key.pub (#4513)

Protocol Upgrade

This release does not contain a protocol upgrade.


NOTE
vFuture changes are not yet available in MainNet or TestNet but can be used in private networks.

New Features

  • AVM: Switch opcode (#4458)
  • AVM: frame pointers (#4319)

Additional Resources

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