Skip to content

@ethereumjs/client v0.2.0

Compare
Choose a tag to compare
@holgerd77 holgerd77 released this 09 Nov 09:21
· 1852 commits to master since this release
4a54b3a

Experimental Merge Support

This client release comes with experimental Merge support as specified in EIP-3675 commit 504954e3 and the Engine API v1.0.0-alpha.2. This is the spec snapshot used for the Merge Interop event in Greece which happened in October 2021.

For the courageous there are instructions here on how to connect the EthereumJS client with a Lodestar Eth 2.0 client and produce blocks together. Note that specifications are changing quickly though and a new testnet is already planned, so this is not guaranteed to work.

Merge related work has been done in the following PRs (all pretty extensive):

  • PR #1509 (first Engine API steps, JSON RPC block parameter alignments, HF-by-TD fixes)
  • PR #1512 (continued Engine API, --rpcEngine CLI option, Taunas testnet, temporary eth_getLogs RPC mockup)
  • PR #1530 (dedicated Engine API port, Pithos testnet, Docker)

An Update on Mainnet

The 1,230,833 block consensus bug we had in the v0.1.0 release has been fixed in the VM dependency (see PR #1516 and PR #1524), so sync on mainnet will now continue from this block onwards.

The "Mainnet sync" adventure now comes to a halt though around the Shanghai dDoS attacks mainnet blocks ranging from 2,286,910 to 2,717,576 where we realize that our VM is just not optimized enough to hold through these various edge case scenarios.

We'll take this occasion and do some sustainable performance work on the VM, where everyday developer use cases will likely also benefit. This will realistically take some months time though. See Issue #1536 and related issues if you are interested or want to join the effort.

Other Changes

  • New --helprpc help for CLI to print all available RPC commands, PR #1505
  • New --rpcDebug option to log complete RPC calls on log level debug (i.e. --loglevel=debug), PR #1519
  • Websocket support for the RPC server, PR #1508
  • Allow Geth genesis files with code and storage, PR #1530
  • New --extIP CLI option to set an external RLPx IP, PR #1530
  • Logfile and log rotation support (--logFile, --logLevelFile, --logRotate and --logMaxFiles options), PR #1530
  • New --executeBlocks CLI option to re-run blocks already synced (for debugging purposes), PR #1538
  • Allow baseFeePerGas and terminalTotalDifficulty for Geth genesis files, PR #1509
  • Improved sync stability in certain cases, PR #1543
  • New debug logger for the Fetcher for code debugging, can be run with DEBUG=client:fetcher npm run client:start, PR #1544
  • Sync stabilizing Fetcher improvements, PR #1545
  • Use RLP library exposed by ethereumjs-util dependency (deduplication), PR #1549