Skip to content

Commit 1e81c18

Browse files
yperbasismh0lt
authored andcommitted
Schedule Fusaka on Ethereum mainnet (#17734)
on December 3, 2025, 09:49:11pm UTC BPO1 December 9, 2025, 02:21:11pm UTC BPO2 January 7, 2026, 01:01:11am UTC See https://notes.ethereum.org/@bbusa/fusaka-bpo-timeline, ethereum/consensus-specs#4689 and eth-clients/mainnet#11. `DefaultOsakaBlobConfig` was removed because it's the same as `DefaultPragueBlobConfig`, so there's no need to set it explicitly.
1 parent 9a1fb73 commit 1e81c18

6 files changed

Lines changed: 24 additions & 15 deletions

File tree

cl/clparams/config.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -866,7 +866,7 @@ var MainnetBeaconConfig BeaconChainConfig = BeaconChainConfig{
866866
ElectraForkVersion: 0x05000000,
867867
ElectraForkEpoch: 364032,
868868
FuluForkVersion: 0x06000000,
869-
FuluForkEpoch: math.MaxUint64,
869+
FuluForkEpoch: 411392,
870870

871871
// New values introduced in Altair hard fork 1.
872872
// Participation flag indices.
@@ -958,7 +958,10 @@ var MainnetBeaconConfig BeaconChainConfig = BeaconChainConfig{
958958
// Fulu
959959
ValidatorCustodyRequirement: 8,
960960
BalancePerAdditionalCustodyGroup: 32_000_000_000,
961-
BlobSchedule: []BlobParameters{},
961+
BlobSchedule: []BlobParameters{
962+
{412672, 15},
963+
{419072, 21},
964+
},
962965
}
963966

964967
func mainnetConfig() BeaconChainConfig {
@@ -1117,6 +1120,7 @@ func gnosisConfig() BeaconChainConfig {
11171120
cfg.MaxPerEpochActivationExitChurnLimit = 64_000_000_000
11181121
cfg.MaxRequestBlobSidecarsElectra = 256
11191122
cfg.MaxPendingPartialsPerWithdrawalsSweep = 6
1123+
cfg.BlobSchedule = []BlobParameters{}
11201124
cfg.InitializeForkSchedule()
11211125
return cfg
11221126
}
@@ -1161,6 +1165,7 @@ func chiadoConfig() BeaconChainConfig {
11611165
cfg.MaxPerEpochActivationChurnLimit = 2
11621166
cfg.MaxPerEpochActivationExitChurnLimit = 64_000_000_000
11631167
cfg.MaxRequestBlobSidecarsElectra = 256
1168+
cfg.BlobSchedule = []BlobParameters{}
11641169
cfg.InitializeForkSchedule()
11651170
return cfg
11661171
}

cl/utils/eth_clock/ethereum_clock_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func TestGetForkDigests(t *testing.T) {
3737
clock := NewEthereumClock(0, common.Hash{}, &clparams.MainnetBeaconConfig)
3838
currDigest, err := clock.CurrentForkDigest()
3939
require.NoError(t, err)
40-
require.Equal(t, common.Bytes4{0xc8, 0xb9, 0xe6, 0xac}, currDigest)
40+
require.Equal(t, common.Bytes4{0x0b, 0x15, 0x44, 0xdc}, currDigest)
4141
nextDigest, err := clock.NextForkDigest()
4242
require.NoError(t, err)
4343
lastFork, err := clock.LastFork()

execution/chain/chain_config.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,9 +380,6 @@ func (c *Config) GetBlobConfig(time uint64) *params.BlobConfig {
380380
if c.PragueTime != nil {
381381
c.parsedBlobSchedule[c.PragueTime.Uint64()] = &params.DefaultPragueBlobConfig
382382
}
383-
if c.OsakaTime != nil {
384-
c.parsedBlobSchedule[c.OsakaTime.Uint64()] = &params.DefaultOsakaBlobConfig
385-
}
386383

387384
// Override with supplied values
388385
val, ok := c.BlobSchedule["cancun"]

execution/chain/params/protocol.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,3 @@ var DefaultPragueBlobConfig = BlobConfig{
255255
Max: 9,
256256
BaseFeeUpdateFraction: 5007716,
257257
}
258-
259-
var DefaultOsakaBlobConfig = BlobConfig{
260-
Target: 6,
261-
Max: 9,
262-
BaseFeeUpdateFraction: 5007716,
263-
}

execution/chain/spec/chainspecs/mainnet.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
"shanghaiTime": 1681338455,
2222
"cancunTime": 1710338135,
2323
"pragueTime": 1746612311,
24+
"osakaTime": 1764798551,
25+
"bpo1Time": 1765290071,
26+
"bpo2Time": 1767747671,
2427
"blobSchedule": {
2528
"cancun": {
2629
"target": 3,
@@ -31,6 +34,16 @@
3134
"target": 6,
3235
"max": 9,
3336
"baseFeeUpdateFraction": 5007716
37+
},
38+
"bpo1": {
39+
"target": 10,
40+
"max": 15,
41+
"baseFeeUpdateFraction": 8346193
42+
},
43+
"bpo2": {
44+
"target": 14,
45+
"max": 21,
46+
"baseFeeUpdateFraction": 11684671
3447
}
3548
},
3649
"depositContractAddress": "0x00000000219ab540356cBB839Cbe05303d7705Fa",

p2p/forkid/forkid_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ func TestCreation(t *testing.T) {
7777
{17034870, 1681338479, ID{Hash: ChecksumToBytes(0xdce96c2d), Activation: 1681338455, Next: 1710338135}}, // First Shanghai block
7878
{19426586, 1710338123, ID{Hash: ChecksumToBytes(0xdce96c2d), Activation: 1681338455, Next: 1710338135}}, // Last Shanghai block
7979
{19426587, 1710338135, ID{Hash: ChecksumToBytes(0x9f3d2254), Activation: 1710338135, Next: 1746612311}}, // First Cancun block
80-
{22432453, 1746612299, ID{Hash: ChecksumToBytes(0x9f3d2254), Activation: 1710338135, Next: 1746612311}}, // Last Cancun block (approx.)
81-
{22432454, 1746612311, ID{Hash: ChecksumToBytes(0xc376cf8b), Activation: 1746612311, Next: 0}}, // First Prague block (approx.)
82-
{30000000, 1900000000, ID{Hash: ChecksumToBytes(0xc376cf8b), Activation: 1746612311, Next: 0}}, // Future Prague block (mock)
80+
{22431083, 1746612299, ID{Hash: ChecksumToBytes(0x9f3d2254), Activation: 1710338135, Next: 1746612311}}, // Last Cancun block
81+
{22431084, 1746612311, ID{Hash: ChecksumToBytes(0xc376cf8b), Activation: 1746612311, Next: 1764798551}}, // First Prague block
82+
{30000000, 1900000000, ID{Hash: ChecksumToBytes(0x07c9462e), Activation: 1767747671, Next: 0}}, // Future block (mock)
8383
},
8484
},
8585
{

0 commit comments

Comments
 (0)