MainNet and TestNet Update: 3.9.2 - Announcements - Algorand
MainNet and TestNet Update: 3.9.2
post by devops-service on Sep 6, 2022
Algorand Inc
| IMPORTANT This release requires a protocol upgrade. This release contains a consensus protocol upgrade, which implements the following spec: GitHub - algorandfoundation/specs at 433d8e9a7274b6fca703d91213e05c7e6a589e69 |
|---|
What’s New
- State Proofs: lightweight, cryptographically provable, portable proofs of Algorand state that let dapps on other blockchains trustlessly verify Algorand transactions, making it safer and easier to develop and use cross-chain products and services.
- Max TPS of 6k
- Larger blocks: ~5x increase in max-block size (from 1MB to 5MiB), allowing up to ~25k transactions per block.
- Shorter round times: ~0.5s reduction in average round times (approaching ~3.9s).
- AVM v7
- On-chain randomness beacons and oracles can now be built by taking advantage of the new
blockandvrf_verifyopcodes. - Unfunded accounts (with 0 microalgo) can now issue transactions as long as their fees are covered by fee pooling in the transaction group.
- App calls are now implicitly given access to the app accounts for the apps specified in the foreign apps array.
- On-chain randomness beacons and oracles can now be built by taking advantage of the new
Changelog
New Features
- Algod: State Proofs ( #4226)
- AVM: randomness support ( #3900)
- AVM: Refactor Pseudo-ops ( #4170)
- AVM: Provide access to large programs in a txn, for read and inner submit ( #4148)
- Goal Network Catchup: automatically fetch catchpoint if not provided ( #4012)
Enhancements
- 320 Rounds: Add logging for new logic ( #4332)
- AVM: Spec updates for v7 ( #4347)
- AVM: Fix crypto benchmarks from bitrot ( #4340)
- AVM: Move elliptic curve math up to v8 so it doesn't get released ( #4282)
- AVM: Consolidate TEAL and AVM versioning ( #4269)
- AVM: Don't parallelize tests that use shared for loop var ( #4253)
- Algod: rename some API operations for clarity ( #4376)
- Ci: Run go vet on the entire repo ( #4312)
- Ci: Add parameter to run Nightly Test ( #4299)
- Cicd: add mac arm64 to integration tests ( #4167)
- Cicd: upgrade xcode on circleci macos executors ( #4188)
- Cicd: remove unused genesis in stash ( #4155)
- Config: set MaxAcctLookback to 4 ( #4296)
- Config: update vFuture consensus and configuration for 5MB blocks ( #4273)
- Consensus: introduce v33, v34 ( #4334)
- Crypto: remove batch verification flag ( #3781)
- Docs: Control the specs generated separately from logic.LogicVersion ( #4361)
- Enhancement: Detect when valid partkeys represent an offline or closed account ( #4030)
- Github-actions: add Not-Yet-Enabled and Skip-Release-Notes labels ( #4196)
- Goal: Allow --signer to send txns from rekeyed accounts ( #4175)
- Goal: Make the -n flag (network name) optional. Get it from template file ( #4159)
- Ledger: restore pointer receivers and args from 4003 ( #4239)
- Ledger: shorter deltas lookback implementation (320 rounds project) ( #4003)
- Loadgenerator: add multiple accounts config option ( #4321)
- Logging: Add a way to inject an external logger. ( #4158)
- Metrics: Don't allocate when invoking the Inc() fastpath ( #4193)
- Network: make txBacklogSize responsive to block size ( #4377)
- Optimization: Use bits package for Muldiv. 266x speedup ( #4210)
- Tests: extended logging on expect test abort ( #4343)
- Tests: cluster scenarios for 2022-07 ( #4331)
- Tests: touch fields_string.go so everything is rebuilt in codegen verification ( #4330)
- Tests: Make e2e subs report individual results better ( #4286)
- Tests: Fix typo in ledger_test.go ( #4297)
- Tests: Support multiple e2e test archives. ( #4284)
- Tests: Fail codegen_verification if dump_genesis.sh is bad ( #4277)
- Tests: use
T.TempDirto create temporary test directory ( #4256) - Tests: fixes to catchpoint e2e tests ( #4236)
- Tests: pingpong fixes and heap watch reporting ( #4069)
- Tools: adapt loadgenerator to cluster testing ( #4324)
- Tools: Fixing updater to accept m1 (Darwin arm64) ( #4099)
Bugfixes
- AVM: Make
txn FirstValidTimeandblockopcode available in logicsigs ( #4371) - Algod: fix issues causing database is locked sqlite error ( #4110)
- Bug Fix: Adds ephemeral Flag and Better Error messages ( #4245)
- Catchup: Download StateProofVotersLookback more amount of blocks if needed ( #4392)
- Catchpointdump: fix downloading logic ( #4171)
- Goal: Fix source map mappings key and use relative line values ( #4198)
- Ledger: fix accountsMu usage ( #4280)
- Ledger: remove txtail from data race test ( #4315)
- Ledger: Initialize the accountUpdatesLedgerEvaluator properly ( #4456)
- Ledger: fix txtail restoring from catchpoints ( #4460)
- Ledger: extend catchpoint blocks lookback ( #4463)
- REST API: Change State Proof message to no longer be embedded ( #4395)
- State Proofs: update state proof totals calculation ( #4445)
- Tests: un-shadow loadgen privateKeys var ( #4380)
- Tests: fix TestAssetValidRounds ( #4351)
- Tests: fix TestAccountsCanSendMoney ( #4354 #4374 #4379)
- Tests: close ledger after TestCatchupUnmatchedCertificate ( #4348)
- Tests: simplify TestWebsocketNetworkMessageOfInterest ( #4341)
- Tests: pass fixture by pointer instead of by value, since it contains a mutex ( #4310)
- Tests: fix TestParticipationDB_Locking ( #4265)
- Tests: make SP e2e tests easier for arm ( #4402)
- Tests: Remove using unreleased semicolon support in AVM test
- Tests: ledger reload accessing txtail history ( #4473)
- Tools: goal logging send fixes ( #4281)
- Txns: Allow "empty" accounts to be Senders if someone else pays ( #4151)
Activations (previously in vFuture)
- AVM: Add bn256 pairing opcodes experimentally ( #4013)
- AVM: base64_decode can decode padded or unpadded encodings ( #4015)
- AVM: Allow immutable access to foreign app accounts ( #3994)
- AVM: Unify inner transaction ID calculation ( #3927)
- AVM: replace opcodes ( #4129)
- AVM: Set proper costs for json_ref ( #4096)
- StateProofs: New block header field - SHA256 merkle root of the transactions ( #3829)
- StateProofs: fix GetProof endpoint response ( #3985)
Additional Resources
To update your current version, run the following goal command:
./update.sh -c stable -i -d <data-directory> -n