@ethereumjs/vm v7.1.0
New EVM/VM Profiler
This releases ships with a completely new dedicated EVM/VM profiler (❤️ to Jochem for the integration) to measure how the different opcode implementations are doing, see PR #2988, #3011, #3013 and #3041.
Most of profiling is taking place in the EVM (so: the dedicated opcode profiling), see the respective README section for usage instructions and the EVM v2.1.0 CHANGELOG for latest performance gains.
The VM adds to the profiler (see new profiler
option) by adding output within the tx or block scope along runTx()
or runBlock()
runs (committing state, block rewards,...).
The VM profiler addition now also allows for running blockchain or state tests with the profiler activated, e.g. to benchmark certain extreme-case or attack scenarios, see DEVELOPER docs for usage instructions (see PR #3115).
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 - Additional
EIP-4788
updates (address + modulus), PR #3068 - Update the beacon block root contract address, PR #3003
Bugfixes
- Fix block builder
london
HF transition, PR #3039
Other Changes
- Allow for users to decide if to either downlevel (so: adopt them for a short-lived scenario) state caches or not on
shallowCopy()
by adding a newdownlevelCaches
parameter (default:true
), PR #3063 - Update ethereum tests to 12.3, PR #2971
- Update ethereum tests to 12.4, PR #3052
- Reactivate selected slow tests, PR #2991
- Better error message for
runTx()
gasLimit
check to avoid confusion with EIP1559 base fee, PR #3118