diff --git a/packages/client/archive/libp2p/net/package.json.browser.deps b/packages/client/archive/libp2p/net/package.json.browser.deps index a5a633c591b..286c43f04c0 100644 --- a/packages/client/archive/libp2p/net/package.json.browser.deps +++ b/packages/client/archive/libp2p/net/package.json.browser.deps @@ -68,7 +68,7 @@ "@ethereumjs/trie": "6.0.1", "@ethereumjs/tx": "5.1.0", "@ethereumjs/util": "9.0.1", - "@ethereumjs/vm": "7.0.0", + "@ethereumjs/vm": "7.1.0", "abstract-level": "^1.0.3", "body-parser": "^1.19.2", "c-kzg": "^2.1.0", diff --git a/packages/client/package.json b/packages/client/package.json index b3e5196a246..415856f963f 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -68,7 +68,7 @@ "@ethereumjs/trie": "6.0.1", "@ethereumjs/tx": "5.1.0", "@ethereumjs/util": "9.0.1", - "@ethereumjs/vm": "7.0.0", + "@ethereumjs/vm": "7.1.0", "abstract-level": "^1.0.3", "body-parser": "^1.19.2", "c-kzg": "^2.1.2", diff --git a/packages/statemanager/CHANGELOG.md b/packages/statemanager/CHANGELOG.md index 878a1e42c44..5fbab14620c 100644 --- a/packages/statemanager/CHANGELOG.md +++ b/packages/statemanager/CHANGELOG.md @@ -26,7 +26,7 @@ While this option is deactivated by default it is recommended for most use cases ### Other Changes -- Allow for users to decide if to either downlevel caches or not on `shallowCopy()` by adding a new `downlevelCaches` parameter (default: `true`), PR [#3063](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3063) +- Allow for users to decide if to either downlevel (so: adopt them for a short-lived scenario) caches or not on `shallowCopy()` by adding a new `downlevelCaches` parameter (default: `true`), PR [#3063](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3063) - Return zero values for `getProof()` as `0x0`, PR [#3038](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3038) - Deactivate storage/account caches for cache size 0, PR [#3012](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3012) diff --git a/packages/vm/CHANGELOG.md b/packages/vm/CHANGELOG.md index 422631defa8..e377c569978 100644 --- a/packages/vm/CHANGELOG.md +++ b/packages/vm/CHANGELOG.md @@ -6,6 +6,41 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) (modification: no type change headlines) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## 7.1.0 - 2023-10-26 + +### 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](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2988), [#3011](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3011), [#3013](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3013) and [#3041](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3041). + +Most of profiling is taking place in the EVM (so: the dedicated opcode profiling), see the respective [README section](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/evm/README.md#profiling-the-evm) for usage instructions and the EVM v2.1.0 [CHANGELOG](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/evm/CHANGELOG.md) 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](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/vm/DEVELOPER.md) docs for usage instructions. + +### EIP-7516 BLOBBASEFEE Opcode + +This release supports [EIP-7516](https://eips.ethereum.org/EIPS/eip-7516) with a new `BLOBBASEFEE` opcode added to and scheduled for the Dencun HF, see PR [#3035](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3035) and [#3068](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3068). The opcode returns the value of the blob base-fee of the current block it is executing in. + +### Dencun devnet-10 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-10](https://github.com/ethpandaops/dencun-testnet) (October 2023). + +- Update `EIP-4788`: do not use precompile anymore but use the pre-deployed bytecode, PR [#2955](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2955) +- Additional `EIP-4788` updates (address + modulus), PR [#3068](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3068) +- Update the beacon block root contract address, PR [#3003](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3003) + +## Bugfixes + +- Fix block builder `london` HF transition, PR [#3039](https://github.com/ethereumjs/ethereumjs-monorepo/pull/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 new `downlevelCaches` parameter (default: `true`), PR [#3063](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3063) +- Update ethereum tests to 12.3, PR [#2971](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2971) +- Update ethereum tests to 12.4, PR [3052](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3052) +- Reactivate selected slow tests, PR [#2991](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2991) + ## 7.0.0 - 2023-08-09 Final release version from the breaking release round from Summer 2023 on the EthereumJS libraries, thanks to the whole team for this amazing accomplishment! ❤️ 🥳 diff --git a/packages/vm/DEVELOPER.md b/packages/vm/DEVELOPER.md index 4b0ecd0a4fd..aa1b7182987 100644 --- a/packages/vm/DEVELOPER.md +++ b/packages/vm/DEVELOPER.md @@ -106,6 +106,12 @@ It is also possible to only run the tests from the skip lists: `ts-node ./test/tester --state --runSkipped=SLOW` +#### Profiling Tests + +Test runs can be profiled using the new EVM/VM profiling functionality by using the `--profile` option for test runs: + +`ts-node ./test/tester --state --test='CreateCollisionToEmpty' --data=0 --gas=1 --value=0 --profile` + ### CI Test Integration Tests and checks are run in CI using [Github Actions](https://github.com/ethereumjs/ethereumjs-monorepo/actions). The configuration can be found in `.github/workflows`. diff --git a/packages/vm/package.json b/packages/vm/package.json index 4da4353b827..07302f9dfeb 100644 --- a/packages/vm/package.json +++ b/packages/vm/package.json @@ -1,6 +1,6 @@ { "name": "@ethereumjs/vm", - "version": "7.0.0", + "version": "7.1.0", "description": "An Ethereum VM implementation", "keywords": [ "ethereum",