Skip to content

Commit 7d5c130

Browse files
authored
Fusaka/Osaka Releases - v10.1.0 (#4150)
* Bump active package versions, update internal dependency versions, create CHANGELOG headers (AI) * Version fixes * Rebuild package-lock.json * Rebuild package-lock.json (npm >= 11.3) * Rebuild package-lock.json * Rebuild package-lock.json * Move to doing a minor release (instead of bugfix) * Rebuild package-lock.json * Update releases dates in CHANGELOG files * Update CHANGELOG entries to correct release versions * Add first round of minor-PR release notes as one liners (AI, proof-read, corrected) * Add EIP-related Osaka release notes (AI, proof-read) * Add BPO release notes (AI, proof-read)
1 parent a857398 commit 7d5c130

31 files changed

+504
-224
lines changed

package-lock.json

Lines changed: 126 additions & 143 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/binarytree/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
(modification: no type change headlines) and this project adheres to
77
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
88

9+
## 10.1.0 - 2025-11-06
10+
11+
Maintenance release, no active changes.
12+
913
## 10.0.0 (EXPERIMENTAL) - 2025-04-29
1014

1115
**Note:** This library is in an **experimental** stage and should not be used in production!

packages/binarytree/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ethereumjs/binarytree",
3-
"version": "10.0.0",
3+
"version": "10.1.0",
44
"description": "Implementation of binary trees as used in Ethereum.",
55
"keywords": ["binary", "tree", "trie", "ethereum"],
66
"homepage": "https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/binarytree#readme",
@@ -54,8 +54,8 @@
5454
"tsc": "../../config/cli/ts-compile.sh"
5555
},
5656
"dependencies": {
57-
"@ethereumjs/rlp": "^10.0.0",
58-
"@ethereumjs/util": "^10.0.0",
57+
"@ethereumjs/rlp": "^10.1.0",
58+
"@ethereumjs/util": "^10.1.0",
5959
"@noble/hashes": "^1.7.2",
6060
"debug": "^4.4.0",
6161
"ethereum-cryptography": "^3.2.0",

packages/block/CHANGELOG.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,64 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
(modification: no type change headlines) and this project adheres to
77
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
88

9+
## 10.1.0 - 2025-11-06
10+
11+
- Some `0n` -> `BIGINT_0` replacements, PR [#4147](https://github.com/ethereumjs/ethereumjs-monorepo/pull/4147)
12+
- Remove Verkle package support, PR [#4145](https://github.com/ethereumjs/ethereumjs-monorepo/pull/4145)
13+
14+
### EIP-7918 - Blob base fee bounded by execution cost
15+
16+
EIP-7918 support has been implemented, which ensures that the blob base fee is bounded by execution cost. The block library now properly calculates `excess_blob_gas` according to the new formula that imposes a reserve price, ensuring the blob fee market functions properly even when execution costs dominate.
17+
18+
### EIP-7934 - RLP Execution Block Size Limit
19+
20+
Support for EIP-7934 has been added, introducing a protocol-level cap on the maximum RLP-encoded block size to 10 MiB (with a 2 MiB margin for beacon block size, resulting in a maximum RLP block size of 8 MiB). The block library now validates that blocks do not exceed this size limit during construction and validation.
21+
22+
```typescript
23+
import { Block } from '@ethereumjs/block'
24+
import { Common, Hardfork, Mainnet } from '@ethereumjs/common'
25+
26+
const common = new Common({ chain: Mainnet, hardfork: Hardfork.Osaka })
27+
28+
// Blocks exceeding 8 MiB RLP size will be rejected
29+
const block = createBlockFromRLP({
30+
// ... block data
31+
}, { common })
32+
33+
// The block size is validated according to EIP-7934
34+
const rlpSize = block.serialize().length
35+
if (rlpSize > 8 * 1024 * 1024) {
36+
// Block exceeds maximum RLP size
37+
}
38+
```
39+
40+
### EIP-7892 - Blob Parameter Only Hardforks
41+
42+
Support for Blob Parameter Only (BPO) hardforks has been implemented according to EIP-7892. BPO hardforks enable rapid scaling of blob capacity by modifying only blob-related parameters (`target`, `max`, and `blobGasPriceUpdateFraction`) without requiring code changes.
43+
44+
The block library now properly handles blob gas calculations and blob base fee updates according to the active BPO hardfork. When processing blocks with BPO1 or BPO2 active, the library uses the updated blob parameters:
45+
46+
- **BPO 1**: Target 10, Max 15 blobs per block
47+
- **BPO 2**: Target 14, Max 21 blobs per block
48+
49+
Blob base fee calculations automatically adjust based on the active BPO hardfork parameters, ensuring proper blob fee market functionality as blob capacity scales.
50+
51+
```typescript
52+
import { Block } from '@ethereumjs/block'
53+
import { Common, Hardfork, Mainnet } from '@ethereumjs/common'
54+
55+
// Block processing with BPO1 active
56+
const common = new Common({ chain: Mainnet, hardfork: Hardfork.Bpo1 })
57+
const block = Block.fromBlockData({
58+
// ... block data with blobs
59+
}, { common })
60+
61+
// Blob gas calculations use BPO1 parameters:
62+
// - Max blobs per block: 15 (instead of 9 in Osaka)
63+
// - Target blobs per block: 10 (instead of 6 in Osaka)
64+
// Blob base fee calculations automatically adjust accordingly
65+
```
66+
967
## 10.0.0 - 2025-04-29
1068

1169
### Overview

packages/block/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ethereumjs/block",
3-
"version": "10.0.0",
3+
"version": "10.1.0",
44
"description": "Provides Block serialization and help functions",
55
"keywords": ["ethereum", "block"],
66
"homepage": "https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/block#readme",
@@ -50,11 +50,11 @@
5050
"tsc": "../../config/cli/ts-compile.sh"
5151
},
5252
"dependencies": {
53-
"@ethereumjs/common": "^10.0.0",
54-
"@ethereumjs/rlp": "^10.0.0",
55-
"@ethereumjs/mpt": "^10.0.0",
56-
"@ethereumjs/tx": "^10.0.0",
57-
"@ethereumjs/util": "^10.0.0",
53+
"@ethereumjs/common": "^10.1.0",
54+
"@ethereumjs/rlp": "^10.1.0",
55+
"@ethereumjs/mpt": "^10.1.0",
56+
"@ethereumjs/tx": "^10.1.0",
57+
"@ethereumjs/util": "^10.1.0",
5858
"ethereum-cryptography": "^3.2.0"
5959
},
6060
"devDependencies": {

packages/blockchain/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
(modification: no type change headlines) and this project adheres to
77
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
88

9+
## 10.1.0 - 2025-11-06
10+
11+
- Remove Verkle package support, PR [#4145](https://github.com/ethereumjs/ethereumjs-monorepo/pull/4145)
12+
913
## 10.0.0 - 2025-04-29
1014

1115
### Overview

packages/blockchain/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ethereumjs/blockchain",
3-
"version": "10.0.0",
3+
"version": "10.1.0",
44
"description": "A module to store and interact with blocks",
55
"keywords": ["ethereum", "blockchain"],
66
"homepage": "https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/blockchain#readme",
@@ -50,11 +50,11 @@
5050
"tsc": "../../config/cli/ts-compile.sh"
5151
},
5252
"dependencies": {
53-
"@ethereumjs/block": "^10.0.0",
54-
"@ethereumjs/common": "^10.0.0",
55-
"@ethereumjs/mpt": "^10.0.0",
56-
"@ethereumjs/rlp": "^10.0.0",
57-
"@ethereumjs/util": "^10.0.0",
53+
"@ethereumjs/block": "^10.1.0",
54+
"@ethereumjs/common": "^10.1.0",
55+
"@ethereumjs/mpt": "^10.1.0",
56+
"@ethereumjs/rlp": "^10.1.0",
57+
"@ethereumjs/util": "^10.1.0",
5858
"debug": "^4.4.0",
5959
"eventemitter3": "^5.0.1",
6060
"lru-cache": "11.0.2"

packages/client/package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,19 @@
5252
"tsc": "../../config/cli/ts-compile.sh"
5353
},
5454
"dependencies": {
55-
"@ethereumjs/block": "10.0.0",
56-
"@ethereumjs/blockchain": "10.0.0",
57-
"@ethereumjs/common": "10.0.0",
55+
"@ethereumjs/block": "10.1.0",
56+
"@ethereumjs/blockchain": "10.1.0",
57+
"@ethereumjs/common": "10.1.0",
5858
"@ethereumjs/devp2p": "10.0.0",
5959
"@ethereumjs/ethash": "10.0.0",
60-
"@ethereumjs/evm": "10.0.0",
61-
"@ethereumjs/genesis": "10.0.0",
62-
"@ethereumjs/mpt": "10.0.0",
63-
"@ethereumjs/rlp": "10.0.0",
64-
"@ethereumjs/statemanager": "10.0.0",
65-
"@ethereumjs/tx": "10.0.0",
66-
"@ethereumjs/util": "10.0.0",
67-
"@ethereumjs/vm": "10.0.0",
60+
"@ethereumjs/evm": "10.1.0",
61+
"@ethereumjs/genesis": "10.1.0",
62+
"@ethereumjs/mpt": "10.1.0",
63+
"@ethereumjs/rlp": "10.1.0",
64+
"@ethereumjs/statemanager": "10.1.0",
65+
"@ethereumjs/tx": "10.1.0",
66+
"@ethereumjs/util": "10.1.0",
67+
"@ethereumjs/vm": "10.1.0",
6868
"@js-sdsl/ordered-map": "^4.4.2",
6969
"@multiformats/multiaddr": "^12.4.0",
7070
"@paulmillr/trusted-setups": "^0.2.0",

packages/common/CHANGELOG.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,68 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
(modification: no type change headlines) and this project adheres to
77
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
88

9+
## 10.1.0 - 2025-11-06
10+
11+
- Improve `paramsCache` updates, PR [#4091](https://github.com/ethereumjs/ethereumjs-monorepo/pull/4091)
12+
- Improve `nextHardforkBlockOrTimestamp` method, PR [#4080](https://github.com/ethereumjs/ethereumjs-monorepo/pull/4080)
13+
- Remove Verkle package support, PR [#4145](https://github.com/ethereumjs/ethereumjs-monorepo/pull/4145)
14+
15+
### EIP-7594 - PeerDAS - Peer Data Availability Sampling
16+
17+
This release adds support for EIP-7594 PeerDAS, which extends EIP-4844 blob transactions with data availability sampling capabilities. The Common library now includes EIP-7594 configuration and activation for the Osaka hardfork, enabling support for PeerDAS blob transactions with cell proofs and network wrapper version 1.
18+
19+
### EIP-7823 - Set upper bounds for MODEXP
20+
21+
EIP-7823 support has been added, introducing an upper bound of 8192 bits (1024 bytes) on each input field (base, exponent, modulus) of the MODEXP precompile. The Common library includes the EIP configuration and activation for Osaka, ensuring MODEXP calls exceeding these limits are properly rejected.
22+
23+
### EIP-7825 - Transaction Gas Limit Cap
24+
25+
Support for EIP-7825 has been implemented, introducing a protocol-level cap of 16,777,216 gas (2^24) for individual transactions. The Common library includes the EIP configuration and activation for Osaka, enabling transaction validation against this gas limit cap.
26+
27+
### EIP-7883 - ModExp Gas Cost Increase
28+
29+
EIP-7883 support has been added, which increases the gas cost of the MODEXP precompile. The Common library includes the EIP configuration and activation for Osaka, ensuring MODEXP operations use the updated pricing algorithm with increased minimum gas cost and adjusted complexity calculations.
30+
31+
### EIP-7918 - Blob base fee bounded by execution cost
32+
33+
EIP-7918 support has been implemented, which imposes that the price of `GAS_PER_BLOB` blob gas is greater than the price of `BLOB_BASE_COST` execution gas. The Common library includes the EIP configuration and activation for Osaka, ensuring proper blob fee market functionality.
34+
35+
### EIP-7934 - RLP Execution Block Size Limit
36+
37+
Support for EIP-7934 has been added, introducing a protocol-level cap on the maximum RLP-encoded block size to 10 MiB (with a 2 MiB margin for beacon block size). The Common library includes the EIP configuration and activation for Osaka, enabling block size validation.
38+
39+
### EIP-7939 - Count leading zeros (CLZ) opcode
40+
41+
EIP-7939 support has been implemented, adding a new opcode `CLZ` (0x1e) that counts the number of leading zero bits in a 256-bit word. The Common library includes the EIP configuration and activation for Osaka, enabling the use of the CLZ opcode in EVM execution.
42+
43+
### EIP-7951 - Precompile for secp256r1 Curve Support
44+
45+
EIP-7951 support has been added, introducing a new precompile at address `0x100` (`P256VERIFY`) for ECDSA signature verification over the secp256r1 curve. The Common library includes the EIP configuration and activation for Osaka, enabling native support for secp256r1 signatures from modern secure hardware devices.
46+
47+
### EIP-7892 - Blob Parameter Only Hardforks
48+
49+
Support for Blob Parameter Only (BPO) hardforks has been implemented according to EIP-7892. BPO hardforks are lightweight protocol upgrades that modify only blob-related parameters (`target`, `max`, and `blobGasPriceUpdateFraction`) without requiring code changes, enabling rapid scaling of blob capacity in response to network demand.
50+
51+
Two BPO hardforks are scheduled alongside Fusaka:
52+
53+
- **BPO 1**: Increases blob target to 10 and max to 15 blobs per block
54+
- **BPO 2**: Further increases blob target to 14 and max to 21 blobs per block
55+
56+
The Common library now includes BPO hardfork definitions and activation timestamps for testnets (Holešky, Sepolia, Hoodi). The `getBlobGasSchedule()` method returns the appropriate blob gas schedule parameters based on the active hardfork, automatically handling BPO transitions.
57+
58+
```typescript
59+
import { Common, Hardfork, Mainnet } from '@ethereumjs/common'
60+
61+
// Common instance with BPO1 active
62+
const common = new Common({ chain: Mainnet, hardfork: Hardfork.Bpo1 })
63+
64+
// Get blob gas schedule parameters
65+
const schedule = common.getBlobGasSchedule()
66+
// schedule.targetBlobGasPerBlock = 1310720 (10 * 131072)
67+
// schedule.maxBlobGasPerBlock = 1966080 (15 * 131072)
68+
// schedule.blobGasPriceUpdateFraction = 8346193
69+
```
70+
971
## 10.0.0 - 2025-04-29
1072

1173
### Overview

packages/common/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ethereumjs/common",
3-
"version": "10.0.0",
3+
"version": "10.1.0",
44
"description": "Resources common to all Ethereum implementations",
55
"keywords": [
66
"ethereum",
@@ -63,7 +63,7 @@
6363
"tsc": "../../config/cli/ts-compile.sh"
6464
},
6565
"dependencies": {
66-
"@ethereumjs/util": "^10.0.0",
66+
"@ethereumjs/util": "^10.1.0",
6767
"eventemitter3": "^5.0.1"
6868
},
6969
"devDependencies": {

0 commit comments

Comments
 (0)