IMPORTANT This release requires a protocol upgrade. This release contains a consensus protocol upgrade, which implements the following spec: https://github.com/algorandfoundation/specs/tree/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 the new
block
andvrf_verify
opcodes. - 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 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 seperately 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.TempDir
to 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 FirstValidTime
andblock
opcode 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)