@ethereumjs/client v0.8.0
Permanent Account, Storage and Trie Node Caches
The client now has integrated persistent caches for accounts and storage as well as trie nodes and a lot less trie reads and writes are needed over time, see PR #2630, #2634, #2667 and #2681. This is a quantum leap for client sync and execution performance leading to the ability sync substantially more extensive networks (no: mainnet
not yet 😋).
The new caches are activated by default and stats are provided in regular intervals. Caches can be adopted and resized with the new --accountCache
, --storageCache
and --trieCache
options as well as completely deactivated by setting size to 0
, e.g. with --accountCache=0
.
EIP-4844 Support (Status: Review, 4844-devnet-7, July 2023)
While there might be last-round final tweaks,, EIP-4844 is closing in on its final format with a lot of spec changes during the last 2-3 months still happening.
This release supports EIP-4844 along this snapshot b9a5a11 from the EIP repository with the EIP being in Review
status and features/changes included which made it into 4844-devnet-7.
The following changes are included:
- Add proofs to engine API BlobsBundleV1, PR #2642
- Limit blobs as per the maxDataGasPerBlock for block building, PR #2661
- Add 4844 devnet5 blob post utility, PR #2674
- De-sszify 4844 blob transaction, PR #2708
- Extend newPayloadV3 for blob versioned hashes checks, PR #2716
- Fix double runs of the block execution, PR #2730
- Merge get blobs engine api into
getPayloadV3
, PR #2650 - Update eip4844 blocks/txs to decoupled blobs spec, PR #2567
- Update the kzg validation and replace trusted setup with latest (devnet6), PR #2756
- Fix new payload excessDataGas/4844 validation, PR #2784
- Add
shouldOverrideBuilder
flag forgetPayloadV3
, PR #2891
Other Changes
- Memory logging and memory optimizations, PR #2675 and #2678
- New
--execute
option to activate/deactivate VM execution, PR #2675 - Fix unclean shutdown scenario where SIGINT may come before client fully started, PR #2677
- Fix PeerPool Memory Leak, PR #2752
- Allow to disable transports and/or sync, PR #2668
- Fix
eth_getStorage
RPC method, PR #2646 - Fix
newPayloadV3
engine API validations, PR #2762 - Fixes for block and blob building uncovered in devnet6, PR #2763
- Discard blob txs with missing blobs for block building, PR #2765
- Remove unused
libp2p
transport layer (preserved for future re-introduction if there is demand 🙂), PR #2758 - Optimize engine API
newPayload
block executions, PR #2787 - Improve engine API
newPayload
andforkChoiceUpdated
block executions, PR #2880