Releases: scroll-tech/go-ethereum
scroll-v5.7.25
Overview
This is a maintenance release, including various minor fixes and improvements.
This release also fixes incorrect base fee estimation in various RPC APIs. We recommend that all RPC node operators gradually upgrade their nodes to this version.
Compatibility
This release is fully backward-compatible.
What's Changed
- feat(tx-pool): fast reject known skipped txs by @colinlyguo in #1004
- feat: add more logs to investigate tx broadcast issue by @0xmountaintop in #1005
- feat: add more metrics to investigate tx broadcast issue by @0xmountaintop in #1007
- fix(metrics): fix tx broadcast investigation metrics by @0xmountaintop in #1010
- fix(metrics): fix tx broadcast investigation metrics again by @0xmountaintop in #1012
- feat: implement and integrate counter-based CCC by @omerfirmak in #982
- feat(txpool): add more logs to
runReorg
by @0xmountaintop in #1019 - fix: disable headCCCCheck for follower nodes by @omerfirmak in #1021
- feat: double check ancestor RowConsumption before committing by @omerfirmak in #1022
- feat: add miner idle metric by @omerfirmak in #1023
- fix: nil-check curRc by @omerfirmak in #1024
- fix: skip ccc.ErrUnknown txns immediately by @omerfirmak in #1027
- feat(rpc): add getTxByTxTrace api, used for ccc testing & debugging by @lispc in #1026
- fix: increase keccak usage safety buffer by @omerfirmak in #1028
- fix: ignore RC check if force committing by @omerfirmak in #1029
- fix: properly handle wrapped retryable errors by @omerfirmak in #1030
- fix: reuse timestamp for blocks failing CCC by @omerfirmak in #1031
- refactor: eliminate double re-execution in AsyncChecker by @omerfirmak in #1036
- feat: allow removing txns from pool via CLI/RPC by @omerfirmak in #1041
- feat(scroll-worker): add nil consumption block metrics by @colinlyguo in #1033
- feat: allow triggering one-off CCC on a block by @omerfirmak in #1043
- feat(tx-pool): fast reject transactions that cannot fit into a block by @colinlyguo in #1042
- fix: remove a duplicated cmd in Dockerfile.mockccc by @colinlyguo in #1048
- fix: make reorg mode explicit by @omerfirmak in #1049
- fix: avoid committing empty blocks after the deadline by @omerfirmak in #1051
- fix: initialize pending block with an empty block by @omerfirmak in #1052
- feat: allow changing L1 synced height via admin RPC/CLI by @colinlyguo in #1044
- feat: update L2 base fee formula by @Thegaram in #1053
- fix: account for tx subcircuit confidence factor by @omerfirmak in #1065
- fix: TestValidateTxBlockSize by @omerfirmak in #1067
- add debugging tool to l2geth images by @sbaizet-ledger in #1066
- fix(api): change gas_price to use pending block by @yiweichi in #1082
New Contributors
Full Changelog: scroll-v5.7.0...scroll-v5.7.25
scroll-v5.7.0
Overview
This is a mandatory release for nodes running with rollup verification enabled. For other nodes, this is a recommended release.
This is a small follow-up release after the recent Darwin upgrade. This release embeds the fork timestamps for DarwinV2 for Scroll mainnet and Scroll Sepolia.
- DarwinV2 on Scroll mainnet: timestamp
1725264000
(Mon 02 September 8am UTC). - DarwinV2 on Scroll Sepolia: timestamp
1724832000
(Wed 28 August 8am UTC).
Compatibility
Similar to the previous release, this upgrade does not change Scroll's state transition function, so it is backward compatible. However, the format of the batch data committed to Ethereum changes. As a result, nodes that enabled rollup verification (--rollup.verify
) must upgrade to be able to follow the chain.
To follow the DarwinV2 upgrade, simply upgrade your node and run it with the --scroll
or --scroll-sepolia
flag respectively. If you do not use these flags, then you must update your genesis.json
file and reimport it using geth init genesis.json
:
- Add
"darwinV2Time": 1725264000
for Scroll mainnet. - Add
"darwinV2Time": 1724832000
for Scroll Sepolia.
What's Changed
- fix: enable correct string encoding of new opcodes by @lispc in #815
- refactor: rename CCC package for less repetition by @omerfirmak in #967
- Fix typo README by @oksanaphmn in #979
- refactor: remove unused unconfirmed.go by @omerfirmak in #972
- feat: allow calculating diffs between two row consumptions by @omerfirmak in #980
- calculate tx the lifecycle duration by @georgehao in #839
- feat(metrics): calculate the real pending tx by @georgehao in #983
- feat: add darwinv2 in genesis config by @colinlyguo in #993
- feat(rollup-verifier): codecv4 by @colinlyguo in #991
- feat: backport flatCallTracer by @draganm in #895
- feat: async ccc checker by @omerfirmak in #996
- fix(rollup-verifier): delete committed batch meta when reverting a batch by @colinlyguo in #1000
- feat: schedule DarwinV2 by @Thegaram in #1002
New Contributors
- @oksanaphmn made their first contribution in #979
- @draganm made their first contribution in #895
Full Changelog: scroll-v5.6.0...scroll-v5.7.0
scroll-v5.6.0
Overview
This is a mandatory release for nodes running with rollup verification enabled. For other nodes, this is a recommended release.
We recommend that all node operators subscribe to release notifications on this repository.
This release introduces timestamp-based upgrades and embeds the Darwin upgrade timestamp for Scroll mainnet and Scroll Sepolia.
- Darwin on Scroll mainnet: timestamp
1724227200
(Wed 21st August 8am UTC). - Darwin on Scroll Sepolia: timestamp
1723622400
(Wed 14th August 8am UTC).
This release also includes additional robustness and compatibility improvements.
Compatibility
The Darwin upgrade does not change Scroll's state transition function, so this upgrade is backward compatible. However, the format of the batch data committed to Ethereum changes. As a result, nodes that enabled rollup verification (--rollup.verify
) must upgrade to be able to follow the chain.
To follow the Darwin upgrade, simply upgrade your node and run it with the --scroll
or --scroll-sepolia
flag respectively. If you do not use these flags, then you must update your genesis.json
file and reimport it using geth init genesis.json
:
- Add
"darwinTime": 1724227200
for Scroll mainnet. - Add
"darwinTime": 1723622400
for Scroll Sepolia.
Note for RPC Node Operators
We recommend that RPC node operators configure the following flag:
--gpo.congestionthreshold=500
This configuration allows nodes to provide more accurate fee estimates.
What's Changed
- feat: make descartes a timestamp based fork by @omerfirmak in #852
- fix: add missing CA certificates to Dockerfile.mockccc by @jonastheis in #861
- feat: rename next upgrade to Darwin by @Thegaram in #863
- feat(rollup_sync_service): handle multiple batches in
FinalizeBatch
event by @amoylan2 in #865 - feat: update to ccc v0.11.4 by @Thegaram in #872
- fix(CI): remove libzktrie.so by @colinlyguo in #878
- feat: Configure l2geth Docker pipeline to push latest tag by @NazariiDenha in #831
- fix(p2p): re-enable ENRUpdater by @HAOYUatHZ in #869
- fix(signer): update
LatestSigner
logic by @HAOYUatHZ in #880 - fix: scroll greeting message by @omerfirmak in #885
- feat: add codecv3 for darwin batches by @amoylan2 in #866
- feat: update L2 base fee formula by @Thegaram in #891
- fix(GPO): min suggested tip cap if there's congestion to avoid filtering through
DefaultIgnorePrice
by @jonastheis in #883 - feat(txpool): StatsWithMinBaseFee by @jonastheis in #884
- fix: return early as expected when engine.Prepare fails by @omerfirmak in #886
- fix(tracing): fix error handling in
fillBlockTrace
by @HAOYUatHZ in #890 - feat(txpool): use GasFeeCapIntCmp to check min fee by @Thegaram in #901
- fix(rollup-verifier): decode commitBatchWithBlobProof calldata by @colinlyguo in #896
- refactor(trace): clean outdated fields by @lispc in #842
- fix(l2geth-verifier): only check last batch of the bundle by @colinlyguo in #904
- fix(verifier): nil panic due to batch write by @colinlyguo in #911
- fix(miner,rpc): fix
updateSnapshot
by @HAOYUatHZ in #916 - fix: log Rust trace parsing error by @Thegaram in #918
- feat(libzkp):unbounded depth serde json by @georgehao in #920
- fix: treat JSON errors as CCC error by @omerfirmak in #922
- feat: defer txpool reorg until worker fetches txns for the next block by @omerfirmak in #905
- feat(clique): allow shadowforking a clique network by @omerfirmak in #828
- refactor: reduce number of heap allocations in tracing by @omerfirmak in #952
- feat: update L2 base fee formula by @HAOYUatHZ in #951
- Revert "refactor: reduce number of heap allocations in tracing (#952)" by @omerfirmak in #959
- feat: schedule Darwin hard fork by @Thegaram in #963
Full Changelog: scroll-v5.5.0...scroll-v5.6.0
scroll-v5.5.0
Overview
This is a mandatory release for Scroll mainnet nodes.
This release updates the embedded Scroll mainnet fork height for the upcoming Curie upgrade.
- Curie on Scroll mainnet: Block #7096836, estimated upgrade time: Wed 3rd July 8am UTC.
This release also includes additional robustness and compatibility improvements.
Compatibility
This release updates the embedded hard fork block height for Scroll mainnet. 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
flag.
If you do not use the --scroll
flag, then you must upgrade your genesis.json
file to "curieBlock": 7096836
and reimport it using geth init genesis.json
. In this case, upgrading to this release is optional but recommended.
For Scroll Sepolia nodes, upgrading to this version is optional.
What's Changed
- feat: introduce encode stage by @omerfirmak in #822
- fix(txpool): compare gas tip cap instead of effective gas tip cap by @Thegaram in #825
- refactor: remove unused storage traces by @omerfirmak in #819
- refactor: cleanup scroll_worker.go by @omerfirmak in #823
- ci: Support arm64 dedicated workflow by @sbaizet-ledger in #840
- fix(traces): deletion proof apply wrong storage value from structLogger by @noel2004 in #838
- fix: update l1 db entry for curie transition block by @Thegaram in #835
- fix: free rust traces that never make it to CCC by @omerfirmak in #844
- fix: do not attempt to free nil rust trace by @omerfirmak in #845
- Support arm64 dedicated workflow by @sbaizet-ledger in #841
- feat: delay Scroll mainnet Curie block by 6 days by @Thegaram in #850
Full Changelog: scroll-v5.4.2...scroll-v5.5.0
scroll-v5.4.2
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
scroll-v5.3.0
Overview
This is a mandatory release for Scroll mainnet nodes.
This release embeds the Scroll mainnet fork height for Bernoulli, scheduled to go live at block 5220340 (within a few hours after Mon Apr 29 02:00 am UTC). The Bernoulli hard fork upgrade contains the following changes:
- Enable SHA-256 precompile.
- Use EIP-4844 blobs for Data Availability (not part of
l2geth
).
Compatibility
This release introduces a hard fork upgrade on Scroll mainnet. Nodes that are not upgraded will be unable to follow the network after the hard fork block.
To follow the Bernoulli upgrade on Scroll mainnet, simply upgrade your node and run it with the --scroll
flag. If you do not use this flag but provide a custom genesis file instead, then you must add "bernoulliBlock": 5220340
to the fork list in genesis.json
.
Please refer to this document for further notes on compatibility.
What's Changed
- fix(rollup-verifier): hardcode genesis codec version as codecv0 and sync codecv1 implementation by @colinlyguo in #699
- feat: add more state_transition, worker, and tracing metrics by @georgehao in #700
- CI: build image which supports arm64 platform by @sbaizet-ledger in #702
- Ci add support for arm64 platform by @sbaizet-ledger in #703
- fix(ci): fix version bot by @HAOYUatHZ in #705
- feat(worker): add a commit tx failed metric by @colinlyguo in #704
- feat(worker): seal block early if we're over target block time by @Thegaram in #706
- feat: add block time metric by @Thegaram in #707
- feat: enable Bernoulli upgrade on Scroll mainnet by @Thegaram in #710
New Contributors
- @sbaizet-ledger made their first contribution in #702
Full Changelog: scroll-v5.2.0...scroll-v5.3.0
scroll-v5.2.0
Overview
This release embeds the Scroll Sepolia testnet fork height for Bernoulli, scheduled to go live at block 3747132 (within a few hours after Mon Apr 15 02:30 am UTC). The Bernoulli hard fork upgrade contains the following changes:
- Enable SHA-256 precompile.
- Use EIP-4844 blobs for Data Availability (not part of
l2geth
).
Additionally, this release contains new features and important robustness improvements. This release aims to fix a long-standing bug #592 that would lead to database corruption in rare cases when the L1 endpoint would become temporarily unavailable. When this happens, the best recourse is to re-sync the node. To avoid this, it is recommended to upgrade to this release.
For nodes running on Scroll Sepolia, upgrading is mandatory. On Scroll mainnet, upgrading is optional but recommended.
Compatibility
This release introduces a hard fork upgrade on the Scroll Sepolia testnet. Nodes that are not upgraded will be unable to follow the testnet after the hard fork block.
To follow the Bernoulli upgrade on Scroll Sepolia, simply upgrade your node and run it with the --scroll-sepolia
flag. If you do not use this flag but provide a custom genesis file instead, then you must add "bernoulliBlock": 3747132
to the fork list in genesis.json
.
Please refer to this document for further notes on compatibility.
Notable changes
- #679 and #682 aim to fix a long-standing bug #592 that would lead to database corruption in some rare cases.
- #627 fixes an issue where unexecutable transactions would in certain cases be kept in the transaction pool.
- #636 aims to fix building l2geth on Windows systems.
- #688 enables the Bernoulli hard fork on Scroll Sepolia.
What's Changed
- fix(txpool): revert duplicated l1 data fee check by @colinlyguo in #612
- fix(receipt): L1 message type tx RLP decoding by @colinlyguo in #616
- feat: add mux tracer for native call tracer and native prestate tracers by @HAOYUatHZ in #615
- docs: update README.md by @crzrh in #593
- fix(ethclient): support new cancun fields in header by @colinlyguo in #623
- feat(transactions): support blob tx only in encoding/decoding by @colinlyguo in #626
- ci: fix goimports lint in CI by @Thegaram in #628
- feat: setup configuration for upcoming hard fork and re-enable sha256 precompile by @NazariiDenha in #562
- fix(rollup sync service): remove syscall.Kill by @colinlyguo in #636
- ci: fix blocktraces submodule url by @qezz in #632
- feat: add metric to evm call by @georgehao in #646
- feat: add transactions len metrics of block processer by @georgehao in #650
- fix(txJSON): L1 message type MarshalJSON by @colinlyguo in #630
- feat(ethclient): export
GetTxBlockTraceOnTopOfBlock
&GetNumSkippedTransactions
&GetSkippedTransactionHashes
&GetSkippedTransaction
by @HAOYUatHZ in #644 - feat: re-enable EIP-1559 in Banach hard fork by @Thegaram in #634
- feat(ethclient & gethclient): support blob transaction by @colinlyguo in #661
- chore(docker): make sure the libzkp directory is clean by @omerfirmak in #664
- chore(libzkp): upgrade to v0.9.10, optimize ccc for follower&chunking by @lispc in #676
- fix: ensure L1 messages are stored in db consistently by @Thegaram in #679
- feat: update upcoming fork names by @Thegaram in #680
- fix(zktrie): fix
NewZktrieDatabase
by @HAOYUatHZ in #638 - fix(sync-service): only add queue index when message index is not zero by @colinlyguo in #682
- fix: Check L1DataFee in txpool promoteExecutables and demoteUnexecutables by @vyzo in #627
- feat: add metrics to block validation by @Thegaram in #677
- fix(tracing): disable storage for block_traces by @HAOYUatHZ in #684
- ci: add bump_version bot by @HAOYUatHZ in #538
- feat(rollup-verifier): support codecv1 by @colinlyguo in #678
- fix(state): fix
iterativeDump.OnAccount
by @HAOYUatHZ in #649 - fix(txpool): rollback false optimization by @georgehao in #694
- chore(libzkp): upgrade to v0.9.13, support next hard fork transition by @lispc in #693
- feat(sepolia): enable Bernoulli hard fork by @Thegaram in #688
New Contributors
- @crzrh made their first contribution in #593
- @qezz made their first contribution in #632
- @omerfirmak made their first contribution in #664
Full Changelog: scroll-v5.1.10...scroll-v5.2.0
scroll-v5.1.10
Overview
This release contains new features and robustness improvements.
For nodes running on Scroll mainnet and Scroll Sepolia, upgrading is optional but recommended.
Compatibility
This version is compatible with the previous release scroll-v5.0.0.
If you run your node with the --scroll
or --scroll-sepolia
flag, you do not need to change anything. If you use a custom genesis.json
configuration, you will need to add scroll.l1Config.scrollChainAddress
(see here for Scroll mainnet and here for Scroll Sepolia).
Rollup Verification
#515 adds additional verification by syncing finalized batch data from L1 and comparing it with the node's local ledger. This ensures that the node's local data matches the data committed to L1. This check is optional; to enable it, simply add the --rollup.verify
flag when starting your node.
Note: There is an initial catch-up phase when you first enable this feature on a node, as the node needs to sync all finalized batches from L1. This initial sync happens in the background, it does not prevent the node from syncing the L2 ledger or from serving queries. During this period, it is expected to see increased L1 RPC load (on the node specified through the --l1.endpoint
flag), as well as higher CPU and memory load.
#548 enables the "finalized"
tag on a number of APIs. This tag is only supported when rollup verification is enabled (--rollup.verify
flag, see above). eth_getBlockByNumber("finalized", false)
will return the latest L2 block that is finalized on L1.
An L2 block is considered finalized when all of the following hold: (1) the block has been published to L1 (as part of a batch), (2) the state root after the execution of the batch has been published to L1 along with a correct validity proof (see the relevant contract code), and (3) the transaction that submitted the validity proof to L1 is considered finalized by L1 consensus.
Other Notable Features
- #537 fixes a bug where it was impossible to call
eth_estimateGas
with a sender account with zero balance. - #548 adds new APIs
scroll_syncStatus
andscroll_estimateL1DataFee
. - #564 and #561 change the Scroll tracing API. If you rely on this API, please consult the Scroll team.
What's Changed
- fix(libzkp): upgrade to use prover
v0.9.7
by @silathdiir in #535 - refactor(tracing): refactor
wrappedProof
by @HAOYUatHZ in #536 - fix (libzkp): free Rust CString by
from_raw
(potential memory leak) by @silathdiir in #539 - fix: eth_estimateGas error in zero balance address by @colinlyguo in #537
- feat(rollup): sync finalized batches from L1 by @colinlyguo in #515
- perf(miner): reduce rawdb calls for getting
StartL1QueueIndex
when innitingenvironment
by @GDdark in #550 - feat(rpc): add scroll_* rollup APIs by @colinlyguo in #548
- Add metrics around block commit, block traces, and CCC by @vyzo in #552
- refactor(evm): Remove duplicate defined variables by @GDdark in #559
- fix(worker): prioritize overflow tx as first tx in next block by @Thegaram in #563
- feat: add
scroll_getTxBlockTraceOnTopOfBlock
API by @HAOYUatHZ in #558 - feat (
libzkp-v0.9.8
): recordStorageDetail even when LogConfig.DisableStorage == true by @lispc in #564 - fix(tracing): fix
getTxResult
returned error format by @HAOYUatHZ in #561 - feat(rollup): add fallback if TransactionByHash fails in getting commitBatch calldata by @colinlyguo in #601
- feat: improve balance check by @HAOYUatHZ in #607
- feat: remove instead of pop insufficient-funds tx by @HAOYUatHZ in #608
- fix(tx-pool): consider L1 data fee in validateTx by @colinlyguo in #609
New Contributors
Full Changelog: scroll-v5.0.0...scroll-v5.1.10
scroll-v5.0.0
Overview
This release contains numerous robustness improvements.
Compatibility
This version is compatible with the previous release scroll-v4.3.51.
Notable Features
- The node now supports the
--rpc.getlogs.maxrange
option to limit the block range accepted by theeth_getLogs
API. Example usage:--rpc.getlogs.maxrange 5000
.
What's Changed
- fix: update libzkp to use scroll-prover
v0.7.5
by @silathdiir in #484 - feat: store skipped transactions in local db by @Thegaram in #467
- feat(miner): consider l1msg in txCount by @HAOYUatHZ in #486
- docs(ccc): add more logs for skipping msg by @HAOYUatHZ in #490
- fix(miner): fix repeatedly processing dropped txs in a new block by @HAOYUatHZ in #491
- chore(ccc): v0.7.6: fix: if rws reaches limit, stop early by @lispc in #495
- fix(modexp): disallow len of 0x8000000000000000000000000000000000000000000… by @lispc in #496
- feat(metrics): add skipped txs metrics for miner by @Lawliet-Chan in #494
- fix(trace): more consistent invalid opcode trace by @lispc in #487
- fix(trace): fix memory trace size by @lispc in #497
- fix(trace): record account proof for ErrContractAddressCollision by @lispc in #488
- feat(api/rawdb): allow storing traces for skipped txs by @HAOYUatHZ in #500
- refactor(ccc): throw error instead of panic for recognized errors by @Lawliet-Chan in #499
- fix: libzkp
v0.8.1
by @silathdiir in #502 - fix(libzkp): upgrade to
v0.8.2
by @silathdiir in #504 - fix(rawdb, api): fix
rawdb.writeSkippedTransaction
&api.GetSkippedTransaction
by @HAOYUatHZ in #503 - fix (libzkp): check tx num when CCC ErrUnknown error occurred by @silathdiir in #505
- fix(ccc): fix CCC build errors by @Thegaram in #506
- fix(trace): use correct roots in trace of block with one transaction by @Thegaram in #508
- p2p: limit ping requests from a single peer by @iczc in #510
- fix(sdk): accept blocks where coinbase is null (e.g. pending block) by @mask-pp in #509
- fix(worker): check gas limit before running ccc by @Thegaram in #511
- fix(libzkp): upgrade to use prover
v0.9.0
by @silathdiir in #513 - fix(libzkp): upgrade to use prover
v0.9.1
by @silathdiir in #517 - refactor(worker): order L1 messages by queue index by @Thegaram in #512
- fix(libzkp): upgrade libzkp to
v0.9.2
(fix ccc panic CodeNotFound) by @silathdiir in #520 - feat: use light_mode = false for block ccc by @lispc in #519
- fix(ccc): revert light mode by @Thegaram in #524
- fix(worker): short-circuit l1 message iteration by @Thegaram in #525
- feat: add metrics in L1 message iterator by @Thegaram in #527
- feat: configure max block range for eth_getLogs by @NazariiDenha in #521
- Revert "feat: configure max block range for eth_getLogs (#521)" by @Thegaram in #528
- fix(libzkp): upgrade libzkp to
v0.9.4
and add cccSetLightMode
by @silathdiir in #522 - fix: re-enable CCC light mode by @Thegaram in #530
- fix(libzkp): upgrade libzkp to
v0.9.5
by @silathdiir in #531 - Fix/config fix small bug and set default maxBlockRange to -1 to not use it by @NazariiDenha in #529
- fix: use non-overlapping DB prefix for L1 messages by @Thegaram in #532
- feat: add new configuration by @Thegaram in #526
- feat: update network configuration by @Thegaram in #533
Full Changelog: scroll-v4.3.51...scroll-v5.0.0
scroll-v4.3.51
Overview
scroll-v4.3.51
fixes a block validation corner case and addresses some performance issues.
What's Changed
- refactor(trace): wrap the core routine in
CreateTraceEnv
by @noel2004 in #460 - fix: free raw result returned from CCC by @Thegaram in #477
- fix: use correct CGo syntax for Free by @Thegaram in #478
- fix the bug when calculating l2TxCount. by @mask-pp in #479
- fix: exclude L1 message from block payload size validation by @Thegaram in #476
- fix: update row estimation with scroll-prover
v0.7.2
by @silathdiir in #475 - refactor: simplify ccc revert to snapshot by @iczc in #480
- feat: use --gcmode=archive and --cache.noprefetch=true by default by @Thegaram in #482
- feat(sdk): support compressed response by @mask-pp in #469
- fix: disable pruning and prefetch if not flags are provided by @Thegaram in #483
Full Changelog: scroll-v4.3.43...scroll-v4.3.51