Skip to content

scroll-v5.1.10

Compare
Choose a tag to compare
@Thegaram Thegaram released this 04 Jan 15:57
· 196 commits to develop since this release
scroll-v5.1.10
5b7079b

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 and scroll_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 inniting environment 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