Summary
v1.9.0 is a pre-release of Taiko's Rollup protocol for the Hekla testnet, with support for the upcoming Ontake fork. Please note that this code has not been audited yet.
Key Protocol Improvements:
- Enhanced L2 EIP-1559 implementation.
- Batched and deterministic block proposal to support transaction preconfirmation.
- Batched block proving that enables aggregation of ZK proofs.
- Calldata support for contract provers.
Features and Improvements Planned but Not Included in This Release:
- Sponsored Transactions
- Cancun EVM Support
- Enhanced Min-Tier Selection
Mandatory Update ⚠️
Key Dates
- Protocol Upgrade: Sep 20th, 2:00 AM UTC (10:00 AM Singapore) — Ensure your software is updated before this time.
- Ontake Fork: Estimated for Sep 24th, 2024, at block height 840,512. The exact time may vary due to block time variability.
Required Software Versions
The versions listed below are the minimum required for the Ontake upgrade. Please note that newer versions may be released, and it's advised to stay updated.
- Taiko BCR Protocol v1.9.0 — If using a ProverSet for block proposals, update to the new implementation.
- taiko-geth v1.8.0
- taiko-client v0.36.0
- simple-taiko-node v1.7.0
- raiko v1.1.0
Failure to upgrade may lead to network disconnection or operational issues. You can revert to previous versions before the fork if necessary, as no database schema changes are involved. This pre-release applies only to the Hekla testnet and is not for mainnet use.
Details
Features
- protocol: add
DevnetTaikoL1
(#17900) (d864cea) - protocol: add
proveBlocks
method toProverSet
(#18025) (36a2ae5) - protocol: add
proveBlocks
to TaikoL1.sol (fe687b3) - protocol: add
TIER_ZKVM_RISC0
tier andHeklaTierProvider
(#17913) (64ed666) - protocol: add a batch proposing block function (#17864) (3649785)
- protocol: add ComposeVerifier, TeeAnyVerifier, and ZkAnyVerifier (ee464ca)
- protocol: add EIP-2612 (permit extension) to bridged ERC20 tokens (#17818) (185ef91)
- protocol: add preconfirmation support based on #17654 (with some renaming) (#14793) (17d67d7)
- protocol: add proposeBlock2 in TaikoL1.sol and approve2 in GuardianProver.sol (17d67d7)
- protocol: add proposer address to getMinTier func (#17919) (d6ea6f3)
- protocol: add SP1 verification support (#17861) (2936312)
- protocol: add withdraw eth function to proverset (#17800) (bb2abc5)
- protocol: adjust gas excess once the gas target has changed (a1e217e)
- protocol: allow a grace period (4h) to defer proof submission to reduce cost (fe687b3)
- protocol: allow any address to withdraw token to the recipient address (#17843) (3d89d24)
- protocol: allow contract proposers to use calldata for DA (17d67d7)
- protocol: allow msg.sender to customize block proposer addresses (#18048) (22055cc)
- protocol: enhance nextTxId logics in DelegateOwner (#17718) (85b2cad)
- protocol: improve L2 basefee calculation (920bd68)
- protocol: introduce risc0 proof (#17877) (bcb57cb)
- protocol: protocol monitors (#18002) (45b2087)
- protocol: relocate L2 base fee parameters to L1 configuration (17d67d7)
- protocol: return verification timestamp in getLastVerifiedBlock (#17868) (1998288)
- protocol: revert removing time as input for L2 base fee calculation (a1e217e)
- protocol: script of
UpgradeRisc0Verifier
(#17949) (fc12e04) - protocol: support backward-compatible batch-proof verification (#17968) (c476aab)
- protocol: update
HeklaTierProvider
to introduce sp1 proof (#18022) (76b6514) - protocol: update
ontakeForkHeight
to Sep 24, 2024 (#18046) (30c9316) - protocol: update Hekla
ontakeForkHeight
(#17983) (8819e3a) - protocol: update Hekla deployment (#17795) (cadaef8)
- protocol: update risc0 verifier contract to release-1.0 (#17776) (2dd30ab)
- protocol: update script of deploying sp1 (#18019) (9464967)
- protocol: use SP1 1.2.0-rc with more proof verification tests (#18001) (f7bcf1d)
Bug Fixes
- protocol: fix
chainId
inHeklaTaikoL1
(#17912) (8f31dd0) - protocol: fix BridgedERC20V2.sol initializer logic (#17823) (d538d99)
- protocol: fix bug in adjustExcess (920bd68)
- protocol: fix tier id conflicts (#18004) (0df1ad4)
- protocol: make sure new instance is not zero address in SgxVerifier (#17918) (d559ce8)
- protocol: reduce MainnetTaikoL1 code size (#17792) (45281b8)
- protocol: use block header's extraData for
basefeeSharingPctg
(#17889) (5f3cbc9)
Chores
- protocol: make two state variables in TaikoL2.sol public and add
adjustExcess
(#17891) (ba21f68) - protocol: move two files to simplify folder structure (#17929) (9dca4fa)
- protocol: re-generate layout files with diff order for comparison with new PR (#18067) (078d336)
- protocol: revert
TAIKO_TOKEN
name changes inDeployOnL1
(#17927) (cf1a15f) - protocol: revert releasing protocol 1.9.0 (#17783) (#18049) (c033810)
Documentation
- protocol: add L2
DelegateOwner
address in Hekla deployment docs (#17925) (fdec8db) - protocol: update
tier_router
with compatibility modifications (#18028) (c43cb0c) - protocol: update hekla change log about
tier_router
(#18023) (11e27d6) - protocol: update hekla change log about sp1 (#18020) (434bf3c)
- protocol: update Hekla deployment (#17845) (d95cc36)
- protocol: update Hekla deployment (#17924) (46a3e00)
- protocol: update Hekla deployments (#17975) (c96627f)
- protocol: update L1 deployment (#17789) (a889f1a)
- protocol: update L1 deployment (#17804) (25ace9b)
- protocol: update L1 deployment (#17812) (5b43df1)
- protocol: update L1 deployment (#17817) (311c948)
- protocol: update mainnet deployment (#17846) (ba6bf94)
- protocol: update mainnet deployment (#17847) (92344df)
- protocol: upgrade sp1 verifier in hekla (#18027) (de27e6e)
Code Refactoring
- protocol: add MainnetGuardianProver (#17805) (6f68316)
- protocol: add MainnetSgxVerifier (#17803) (a4be247)
- protocol: added cached version of the bridge and vaults (#17801) (b70cc57)
- protocol: avoid writing
livenessBond
,proposedAt
, andproposedIn
to storage (17d67d7) - protocol: convert metadata from V2 to V1 only once (#17842) (55ced31)
- protocol: delete packages/protocol/contracts/compiled (#17849) (1fd907c)
- protocol: extract an IBlockHash interface from TaikoL2 (#18045) (bff481e)
- protocol: improve mainnet gas efficiency with addresses cached (#17791) (b12227d)
- protocol: improve MainnetSgxVerifier (#17811) (4e7a421)
- protocol: introduce BlockV2 for client-side compability (#17935) (e46cf29)
- protocol: name address manager param clearer (#17806) (1d5a6ff)
- protocol: refactor TierProvider implementations (ee464ca)
- protocol: remove ProposerAccess for easier composability (#17994) (80176a1)
- protocol: remove the receive function from TaikoL1.sol (#17865) (3542420)
- protocol: remove uncessary init2() from TaikoL2 (#17973) (4e08881)
- protocol: restructure solidity code to match compilation targets (#18059) (adc47f4)
- protocol: simplify mainnet address caching (ee464ca)
- protocol: use npm to manage third-party solidity dependency (#17881) (d524e69)