Skip to content

Releases: ethereumjs/ethereumjs-monorepo

@ethereumjs/rlp v5.0.1

02 Nov 08:37
c6d8b39
Compare
Choose a tag to compare
  • Fixes the RLP CLI, PR #3007

@ethereumjs/genesis v0.2.0

02 Nov 09:13
c6d8b39
Compare
Choose a tag to compare

Holesky Testnet Support

This release comes with full support for the Holesky public Ethereum testnet replacing the Goerli test network.

Other Changes

  • Package CI integration, PR #3098

@ethereumjs/evm v2.1.0

02 Nov 09:18
c6d8b39
Compare
Choose a tag to compare

New EVM Profiler / EVM Performance

This releases ships with a completely new dedicated EVM profiler (❤️ to Jochem for the integration) to measure how the different opcode implementations are doing, see PR #2988, #3011, #3013 and #3041.

See the new dedicated README section for a detailed usage instruction.

We were already able to do various performance related improvements using this tool (and we hope that you will be too) 🤩:

  • Substantial stack optimizations (PUSH and POPn +30-40%, DUP +40%), PR #3000
  • JUMPDEST optimizations, PR #3000
  • Various EVM interpreter optimizations (overall 7-15% performance gain), PR #2996
  • Memory optimizations (MLOAD and MSTORE + 10-20%), PR #3032
  • Reused BigInts cache, PR #3034 and #3050
  • EXP opcode optimizations (real-world 3x gain, not attack resistant), PR #3034

EIP-7516 BLOBBASEFEE Opcode

This release supports EIP-7516 with a new BLOBBASEFEE opcode added to and scheduled for the Dencun HF, see PR #3035 and #3068. The opcode returns the value of the blob base-fee of the current block it is executing in.

Dencun devnet-11 Compatibility

This release contains various fixes and spec updates related to the Dencun (Deneb/Cancun) HF and is now compatible with the specs as used in devnet-11 (October 2023).

  • Update EIP-4788: do not use precompile anymore but use the pre-deployed bytecode, PR #2955

Other Changes

  • Add missing debug dependency types, PR #3072

@ethereumjs/ethash v3.0.1

02 Nov 09:10
c6d8b39
Compare
Choose a tag to compare
  • Performance: Cache often used BigInt constants, PR #3050

@ethereumjs/devp2p v6.0.1

02 Nov 08:59
c6d8b39
Compare
Choose a tag to compare
  • Kademlia bucket add fix, PR #2957
  • Performance: only create DEBUG msgs if debugging, PR #2958
  • Pin scanf dependency (fixes broken types), PR #3060
  • Minimal RLPx test suite, PR #3126

@ethereumjs/common v4.1.0

02 Nov 08:42
c6d8b39
Compare
Choose a tag to compare

Holesky Testnet Support

This release comes with full support for the Holesky public Ethereum testnet replacing the Goerli test network.

EIP-7516 BLOBBASEFEE Opcode

This release supports EIP-7516 with a new BLOBBASEFEE opcode added to and scheduled for the Dencun HF, see PR #3035 and #3068. The opcode returns the value of the blob base-fee of the current block it is executing in.

Dencun devnet-11 Compatibility

This release contains various fixes and spec updates related to the Dencun (Deneb/Cancun) HF and is now compatible with the specs as used in devnet-11 (October 2023).

  • Update EIP-4788: do not use precompile anymore but use the pre-deployed bytecode, PR #2955
  • Small Cancun-related fixes, PR #3099

Bugfixes

  • Updates and fixes along Geth genesis file parsing, PR #2961
  • Handle forkHash on timestamp == genesis timestamp, PR #2959

Other Changes

  • Performance: Cache Parameter Values + activated EIPs for current Hardfork, PR #2994

@ethereumjs/client v0.9.0

02 Nov 09:39
c6d8b39
Compare
Choose a tag to compare

This client release now syncs with the new Holesky and Dencun devnet-11 test networks and comes with improved sync performance, a revamped post-Merge client UX experience and various beacon sync related fixes and robustness improvements.

Holesky Testnet Support

This client release now fully supports running the new Holesky public Ethereum testnet replacing the Goerli test network, see , PR #2982 and some following PRs.

The following command starts an EthereumJS client on Holesky:

ethereumjs --network=holesky --rpc --rpcEngine

Then start a corresponding CL client (e.g. Lodestar with checkpoint sync towards https://lodestar-holesky.chainsafe.io), also see client README.

Dencun devnet-11 Compatibility

Another testnet to be run with this client: Dencun devnet-11, which is one of the last and eventually the very last testnet before running the Dencun hardfork on the official testnet.

Following spec updates included:

  • Update EIP-4788: do not use precompile anymore but use the pre-deployed bytecode, PR #2955
  • Additional EIP-4788 updates (address + modulus), PR #3068
  • Update the beacon block root contract address, PR #3003
  • Fix newPayloadV2 having PayloadV3 params, PR #2954
  • Include parent beacon block root for proposal payload uniquness, PR #2967
  • Fixes for new engine api method validations for hive pr-834, PR #2973
  • Track and respond to invalid blocks in engine api and other hive engine-cancun fixes, PR #3077
  • Make the newpayload execution of big blocks non blocking, PR #3076
  • Hive Cancun fixes, PR #3099

See devnet-11 EthPandaOps GitHub repository for instructions on how to run the testnet.

Sync and EVM/VM (Execution) Performance

This client release integrates with the EthereumJS EVM v2.1.0 (see EVM CHANGELOG for details) which comes with significant performance improvements for various opcodes as well as overall EVM execution.

Furthermore the data model for saving the state has been optimized to improve storage DB read performance, see PR #3023 and PR #3067.

Both changes together should increase client sync performance by 30% or more.

Important: The new db model is not backwards-compatible with existing client databases. Use the new --prefixStorageTrieKeys (set it to false) and --useStringValueTrieDB (set it to true) flags to preserve the old DB behavior.

New Post-Merge UX Experience

We have gone through the complete post-Merge beacon sync process and reworked the client output along, see PR #3085 and some follow-up PRs. It is now substantially easier to follow the different stages of the sync process (backfilling, forwardfilling & execution, following the chain) and track the overall sync progress. Holesky with its newly initialized state is a great testbed to see the new client capabilities in practice! 🤩

Block/Tx Profiling

The client can be now leveraged as a tool for block and/or tx profiling by using the new --vmProfileBlocks and --vmProfileTxs options, see PR #3042. This gives details into the EVM/VM execution performance for specific blocks. See profiler related EVM README section for further details.

Discovery Improvements

A new more fine-tuned discovery discV4 mechanism has been integrated along PR #3120. This should now make it substantially easier to find new peers especially on smaller networks like the devnet-11 and related Dencun test networks. Additionally the --bootnodes option has been expanded to now also take bootnode.txt files for easier loading of bootnodes.

Skeleton/Beacon Sync Reworks and Fixes

  • Some skeleton improvements from observations on devnet syncs, PR #3014
  • Decouple skeleton from beacon sync, PR #3028
  • Fix canonical reset of the chain by the skeleton, PR #3078
  • Skeleton reorg head fixes, PR #3085
  • Fixes regarding beacon sync, vmexecution and further log improvs, PR #3094
  • Various rebase and sync related improvements along PR #3031

Other Features

  • Add eth_coinbase RPC method, PR #3079
  • Add Option to Return Actual Caught Error Message and Stack Trace when RPC Call Fails, PR #3059
  • More fine-grained --rpcDebug option (enable/disable specific RPC module logs), PRs #3102 and #3127

Other Changes and Fixes

  • Properly handle errors in storageRangeAt RPC method, PR #2952
  • Fix TxPool not being started along FCU, PR #3100
  • Fix initialization order when blocks are preloaded, PR #2979
  • Add error handling for async errors in client, PR #2984
  • Deactivate storage/account caches for cache size 0, PR #3012
  • Rewrites block fetcher sync() without the async-promise-generator api, PR #3030
  • Clean up CLI arg passing, PR #3036
  • Docker related updates, PR #3065
  • Use same Cache Setup for normal and executeBlocks-triggered Execution, PR #3063
  • Simplify client transports, breaking: removed --transports, PR #3069
  • Experimental SNAP sync integration (larger announcement later on, but feel free to already experiment with it using the --snap option)! 😆), PR #3031
  • Guard against rpc port collisions, PR #3083
  • Change execution stats intervals, PR #3106
  • pendingBlock fix if FCU is called with withdrawals=null pre-cancun, PR #3119
  • Handle an edge case in newpayload block execution, PR #3131

@ethereumjs/blockchain v7.0.1

02 Nov 09:16
c6d8b39
Compare
Choose a tag to compare

Dencun devnet-11 Compatibility

This release contains various fixes and spec updates related to the Dencun (Deneb/Cancun) HF and is now compatible with the specs as used in devnet-11 (October 2023).

  • Update peer dependency for kzg module to use the official trusted setup for mainnet, PR #3107

Other Changes

  • New getIteratorHeadSafe() method which returns undefined if the provided head is not found. This differs from getIteratorHead, which returns the genesis block in case if the provided head is not found, PR #3099

@ethereumjs/block v5.0.1

02 Nov 09:08
c6d8b39
Compare
Choose a tag to compare

Dencun devnet-11 Compatibility

This release contains various fixes and spec updates related to the Dencun (Deneb/Cancun) HF and is now compatible with the specs as used in devnet-11 (October 2023).

  • Update peer dependency for kzg module to use the official trusted setup for mainnet, PR #3107

@ethereumjs/wallet v2.0.0

09 Aug 11:54
c47d2c7
Compare
Choose a tag to compare

Final release version from the breaking release round from Summer 2023 on the EthereumJS libraries, thanks to the whole team for this amazing accomplishment! ❤️ 🥳

See RC1 release notes for the main change description.