Overview
This is a mandatory release for Scroll mainnet and Scroll Sepolia nodes.
This release embeds the Scroll mainnet fork height for the upcoming Curie upgrade.
- Scroll Sepolia testnet: Block #4740239, estimated upgrade time: Mon 17th June 8am UTC.
- Scroll mainnet: Block #6924036, estimated upgrade time: Thu 27th June 8am UTC.
The Curie hard fork upgrade contains the following changes:
- Pack more chunks into each batch and compress blob data using zstd.
- Support EIP-1559 transactions.
- Support the
BASEFEE
,MCOPY
,TLOAD
,TSTORE
opcodes. - More accurate transaction pricing for both execution (gas) fee and L1 data fee.
Other notable changes:
- Significant performance and robustness improvements. In particular, the storage requirements of running an l2geth node on Scroll mainnet are reduced by about 50% (only applicable to newly synced nodes).
- l2geth nodes will no longer automatically configure the
--cache.noprefetch
flag. For now, we recommend that node operators still run their nodes with this flag. - Added support for the
eth_getBlockReceipts
API.
Compatibility
This release introduces a hard fork upgrade on both Scroll mainnet and Scroll Sepolia. Nodes that are not upgraded will be unable to follow the network after the hard fork block.
To follow the Curie upgrade, simply upgrade your node and run it with the --scroll
or --scroll-sepolia
flag, depending on which network you want to join.
If you do not use this flag but provide a custom genesis file instead, then you must add "curieBlock": N
(replace N
with the fork block from the previous section) to the fork list in genesis.json
, and reimport it using geth init genesis.json
.
What's Changed
- chore(dep): upgrade go kzg 4844 by @z2trillion in #718
- feat(zktrie): upgrade to 0.8.2 by @omerfirmak in #715
- perf(poseidon): eliminate heap allocations in poseidon by @omerfirmak in #712
- ci - remove arm64 from supported platform by @sbaizet-ledger in #719
- (feat) core/vm: implement EIP-5656, mcopy opcode by @NazariiDenha in #697
- (feat)core/vm: Add Upgrade #4 fork configuration by @NazariiDenha in #698
- fix(api-backend): disable finalized tag when rollup verify is disabled by @colinlyguo in #722
- (feat)all: add EIP-1153 - transient storage by @NazariiDenha in #721
- docs(miner): rename
circuitCapacityReached
tocircuitCapacityOrBlockTimeReached
by @HAOYUatHZ in #724 - feat(libzkp): ccc v0.10.2 (enable sha256, remove StructLog.stack) by @colinlyguo in #691
- feat(zktrie): bump to v0.8.4 by @omerfirmak in #734
- fix: temporarily disable string encoding for new opcodes by @Thegaram in #737
- metrics: NilTimer should still run the function to be timed (ethereum#27723) by @omerfirmak in #739
- feat(worker): disable enforceTips when fetching pending transactions by @Thegaram in #740
- chore(libzkp): upgrade to v0.10.4 by @lispc in #743
- feat(ccc): reuse a buffer for json encoding by @omerfirmak in #744
- chore(libzkp): upgrade to v0.10.5, speed up by avoiding some unnecessary code hashing by @lispc in #746
- feat(worker): only collect max number of txns that we allow in a block by @omerfirmak in #745
- fix(zktrie): copy trie properly for concurrent access by @omerfirmak in #747
- fix(worker): set default account fetch limit by @Thegaram in #756
- feat(worker): pipeline block building by @omerfirmak in #735
- feat: implement relaxed period in clique by @omerfirmak in #763
- consensus/clique: fix race condition (ethereum#24957) by @omerfirmak in #766
- docs(zktrie): remove an outdated comment by @colinlyguo in #765
- fix: prioritized tx not being cleared after skipping it by @omerfirmak in #764
- feat: sanity check locally built blocks via local consensus engine by @omerfirmak in #767
- feature: keep track of and export total time observed by a timer by @omerfirmak in #772
- fix: make consensus engine wait for a bit before giving up on worker by @omerfirmak in #774
- fix: make sure building of pending blocks don't have any lasting sideaffects by @omerfirmak in #779
- feat: reduce the number of samples in lifetimeTimer by @omerfirmak in #777
- feat: update L1 data fee in Curie hard fork by @Thegaram in #755
- trie: fix two issues in trie iterator (ethereum#24539) by @HAOYUatHZ in #778
- fix: properly release pipeline stages by @omerfirmak in #783
- feat(rollup-sync-service): support codecv2 by @colinlyguo in #726
- fix(ci): make geth by @colinlyguo in #786
- fix: use a named deadline timer in CCC stage by @omerfirmak in #782
- feat(ccc): revert libzkp version back to v0.10.5 by @colinlyguo in #785
- feat: allow non-ccc pipelines by @omerfirmak in #781
- build: fix Dockerfile of mockccc geth by @colinlyguo in #787
- fix: make commit retry logic selective by @omerfirmak in #788
- feat: update gas-oracle contract bytecode by @Thegaram in #792
- fix: use correct encoding for L1 data fee of EIP2718 transactions by @Thegaram in #793
- feat: congestion-aware gas price oracle by @jonastheis in #790
- fix: mockccc geth Dockerfile by @colinlyguo in #797
- feat: turn libscroll_zstd dynamic lib into static by @colinlyguo in #794
- fix(ci): make geth by @colinlyguo in #801
- feat: implement eth_getBlockReceipts by @Thegaram in #796
- refactor(config): refactor some chainConfig by @HAOYUatHZ in #754
- fix: avoid accidentally sharing a tracer between goroutines by @omerfirmak in #768
- feat: implement RIP-7212/EIP-7212 by @jonastheis in #798
- feat: allow trie prefetch by @omerfirmak in #795
- fix: account for the artificially added delay in commit stage by @omerfirmak in #806
- refactor(ccc): allow go side to construct a rust trace from json by @omerfirmak in #807
- fix: bump zktrie to 0.8.4 by @omerfirmak in #809
- Chore: upgrade libzkp v0.10.6 by @lispc in #816
- feat(prometheus): collect timer.Total() by @omerfirmak in #817
- feat: schedule Curie hard fork on Scroll and Scroll Sepolia by @Thegaram in #808
- ci: use go go-1.21 during docker build by @Thegaram in #818
- feat: introduce encode stage by @omerfirmak in #814
- feat: delay Curie fork on mainnet by 1 day by @Thegaram in #821
New Contributors
- @z2trillion made their first contribution in #718
- @jonastheis made their first contribution in #790
Full Changelog: scroll-v5.3.0...scroll-v5.4.2