@ethereumjs/client v0.2.0
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
andterminalTotalDifficulty
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 withDEBUG=client:fetcher npm run client:start
, PR #1544 - Sync stabilizing
Fetcher
improvements, PR #1545 - Use
RLP
library exposed byethereumjs-util
dependency (deduplication), PR #1549