diff --git a/consensus/misc/eip4844/eip4844.go b/consensus/misc/eip4844/eip4844.go index e14d12956137..3fb00909d39c 100644 --- a/consensus/misc/eip4844/eip4844.go +++ b/consensus/misc/eip4844/eip4844.go @@ -73,8 +73,6 @@ func latestBlobConfig(cfg *params.ChainConfig, time uint64) *BlobConfig { bc = s.BPO2 case cfg.IsBPO1(london, time) && s.BPO1 != nil: bc = s.BPO1 - case cfg.IsOsaka(london, time) && s.Osaka != nil: - bc = s.Osaka case cfg.IsPrague(london, time) && s.Prague != nil: bc = s.Prague case cfg.IsCancun(london, time) && s.Cancun != nil: diff --git a/consensus/misc/eip4844/eip4844_test.go b/consensus/misc/eip4844/eip4844_test.go index 35934370afea..4aa49c9cb167 100644 --- a/consensus/misc/eip4844/eip4844_test.go +++ b/consensus/misc/eip4844/eip4844_test.go @@ -120,7 +120,6 @@ func TestCalcBlobFeePostOsaka(t *testing.T) { BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: ¶ms.BlobConfig{ Target: 9, Max: 14, @@ -191,7 +190,7 @@ func TestFakeExponential(t *testing.T) { func TestCalcExcessBlobGasEIP7918(t *testing.T) { var ( cfg = params.MergedTestChainConfig - targetBlobs = cfg.BlobScheduleConfig.Osaka.Target + targetBlobs = cfg.BlobScheduleConfig.Prague.Target blobGasTarget = uint64(targetBlobs) * params.BlobTxBlobGasPerBlob ) diff --git a/core/genesis_test.go b/core/genesis_test.go index a41dfce5783e..0e12090c1594 100644 --- a/core/genesis_test.go +++ b/core/genesis_test.go @@ -293,8 +293,6 @@ func TestVerkleGenesisCommit(t *testing.T) { BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, - Verkle: params.DefaultPragueBlobConfig, }, } diff --git a/core/txpool/blobpool/blobpool_test.go b/core/txpool/blobpool/blobpool_test.go index f0f00c805589..f1c62ed693ea 100644 --- a/core/txpool/blobpool/blobpool_test.go +++ b/core/txpool/blobpool/blobpool_test.go @@ -1234,11 +1234,6 @@ func TestBillyMigration(t *testing.T) { Max: maxBlobs, UpdateFraction: params.DefaultCancunBlobConfig.UpdateFraction, }, - Osaka: ¶ms.BlobConfig{ - Target: maxBlobs / 2, - Max: maxBlobs, - UpdateFraction: params.DefaultCancunBlobConfig.UpdateFraction, - }, }, } chain := &testBlockChain{ diff --git a/core/verkle_witness_test.go b/core/verkle_witness_test.go index ca0c928c3c36..daa20ab88b3a 100644 --- a/core/verkle_witness_test.go +++ b/core/verkle_witness_test.go @@ -61,7 +61,7 @@ var ( TerminalTotalDifficulty: common.Big0, EnableVerkleAtGenesis: true, BlobScheduleConfig: ¶ms.BlobScheduleConfig{ - Verkle: params.DefaultPragueBlobConfig, + Prague: params.DefaultPragueBlobConfig, }, // TODO uncomment when proof generation is merged // ProofInBlocks: true, @@ -85,7 +85,7 @@ var ( TerminalTotalDifficulty: common.Big0, EnableVerkleAtGenesis: true, BlobScheduleConfig: ¶ms.BlobScheduleConfig{ - Verkle: params.DefaultPragueBlobConfig, + Prague: params.DefaultPragueBlobConfig, }, } ) diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index d7cf47468c48..500dc3c11ff6 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -1213,7 +1213,7 @@ func (api *BlockChainAPI) Config(ctx context.Context) (*configResponse, error) { forkid := forkid.NewID(c, types.NewBlockWithHeader(genesis), ^uint64(0), t).Hash return &config{ ActivationTime: activationTime, - BlobSchedule: c.BlobConfig(c.LatestFork(t)), + BlobSchedule: c.BlobConfig(t), ChainId: (*hexutil.Big)(c.ChainID), ForkId: forkid[:], Precompiles: precompiles, diff --git a/params/config.go b/params/config.go index 06288575ae0c..60e06c647a7c 100644 --- a/params/config.go +++ b/params/config.go @@ -99,7 +99,6 @@ var ( BlobScheduleConfig: &BlobScheduleConfig{ Cancun: DefaultCancunBlobConfig, Prague: DefaultPragueBlobConfig, - Osaka: DefaultOsakaBlobConfig, BPO1: DefaultBPO1BlobConfig, BPO2: DefaultBPO2BlobConfig, }, @@ -135,7 +134,6 @@ var ( BlobScheduleConfig: &BlobScheduleConfig{ Cancun: DefaultCancunBlobConfig, Prague: DefaultPragueBlobConfig, - Osaka: DefaultOsakaBlobConfig, BPO1: DefaultBPO1BlobConfig, BPO2: DefaultBPO2BlobConfig, }, @@ -171,7 +169,6 @@ var ( BlobScheduleConfig: &BlobScheduleConfig{ Cancun: DefaultCancunBlobConfig, Prague: DefaultPragueBlobConfig, - Osaka: DefaultOsakaBlobConfig, BPO1: DefaultBPO1BlobConfig, BPO2: DefaultBPO2BlobConfig, }, @@ -229,7 +226,6 @@ var ( BlobScheduleConfig: &BlobScheduleConfig{ Cancun: DefaultCancunBlobConfig, Prague: DefaultPragueBlobConfig, - Osaka: DefaultOsakaBlobConfig, }, } @@ -324,7 +320,6 @@ var ( BlobScheduleConfig: &BlobScheduleConfig{ Cancun: DefaultCancunBlobConfig, Prague: DefaultPragueBlobConfig, - Osaka: DefaultOsakaBlobConfig, }, } @@ -373,12 +368,6 @@ var ( Max: 9, UpdateFraction: 5007716, } - // DefaultOsakaBlobConfig is the default blob configuration for the Osaka fork. - DefaultOsakaBlobConfig = &BlobConfig{ - Target: 6, - Max: 9, - UpdateFraction: 5007716, - } // DefaultBPO1BlobConfig is the default blob configuration for the BPO1 fork. DefaultBPO1BlobConfig = &BlobConfig{ Target: 10, @@ -407,7 +396,6 @@ var ( DefaultBlobSchedule = &BlobScheduleConfig{ Cancun: DefaultCancunBlobConfig, Prague: DefaultPragueBlobConfig, - Osaka: DefaultOsakaBlobConfig, } ) @@ -664,7 +652,7 @@ func (c *ChainConfig) Description() string { banner += fmt.Sprintf(" - Prague: @%-10v blob: (%s)\n", *c.PragueTime, c.BlobScheduleConfig.Prague) } if c.OsakaTime != nil { - banner += fmt.Sprintf(" - Osaka: @%-10v blob: (%s)\n", *c.OsakaTime, c.BlobScheduleConfig.Osaka) + banner += fmt.Sprintf(" - Osaka: @%-10v\n", *c.OsakaTime) } if c.BPO1Time != nil { banner += fmt.Sprintf(" - BPO1: @%-10v blob: (%s)\n", *c.BPO1Time, c.BlobScheduleConfig.BPO1) @@ -682,10 +670,10 @@ func (c *ChainConfig) Description() string { banner += fmt.Sprintf(" - BPO5: @%-10v blob: (%s)\n", *c.BPO5Time, c.BlobScheduleConfig.BPO5) } if c.AmsterdamTime != nil { - banner += fmt.Sprintf(" - Amsterdam: @%-10v blob: (%s)\n", *c.AmsterdamTime, c.BlobScheduleConfig.Amsterdam) + banner += fmt.Sprintf(" - Amsterdam: @%-10v\n", *c.AmsterdamTime) } if c.VerkleTime != nil { - banner += fmt.Sprintf(" - Verkle: @%-10v blob: (%s)\n", *c.VerkleTime, c.BlobScheduleConfig.Verkle) + banner += fmt.Sprintf(" - Verkle: @%-10v\n", *c.VerkleTime) } banner += fmt.Sprintf("\nAll fork specifications can be found at https://ethereum.github.io/execution-specs/src/ethereum/forks/\n") return banner @@ -708,16 +696,13 @@ func (bc *BlobConfig) String() string { // BlobScheduleConfig determines target and max number of blobs allow per fork. type BlobScheduleConfig struct { - Cancun *BlobConfig `json:"cancun,omitempty"` - Prague *BlobConfig `json:"prague,omitempty"` - Osaka *BlobConfig `json:"osaka,omitempty"` - Verkle *BlobConfig `json:"verkle,omitempty"` - BPO1 *BlobConfig `json:"bpo1,omitempty"` - BPO2 *BlobConfig `json:"bpo2,omitempty"` - BPO3 *BlobConfig `json:"bpo3,omitempty"` - BPO4 *BlobConfig `json:"bpo4,omitempty"` - BPO5 *BlobConfig `json:"bpo5,omitempty"` - Amsterdam *BlobConfig `json:"amsterdam,omitempty"` + Cancun *BlobConfig `json:"cancun,omitempty"` + Prague *BlobConfig `json:"prague,omitempty"` + BPO1 *BlobConfig `json:"bpo1,omitempty"` + BPO2 *BlobConfig `json:"bpo2,omitempty"` + BPO3 *BlobConfig `json:"bpo3,omitempty"` + BPO4 *BlobConfig `json:"bpo4,omitempty"` + BPO5 *BlobConfig `json:"bpo5,omitempty"` } // IsHomestead returns whether num is either equal to the homestead block or greater. @@ -982,7 +967,7 @@ func (c *ChainConfig) CheckConfigForkOrder() error { } } - // Check that all forks with blobs explicitly define the blob schedule configuration. + // Check that all defined BPOs have valid configurations bsc := c.BlobScheduleConfig if bsc == nil { bsc = new(BlobScheduleConfig) @@ -994,13 +979,11 @@ func (c *ChainConfig) CheckConfigForkOrder() error { }{ {name: "cancun", timestamp: c.CancunTime, config: bsc.Cancun}, {name: "prague", timestamp: c.PragueTime, config: bsc.Prague}, - {name: "osaka", timestamp: c.OsakaTime, config: bsc.Osaka}, {name: "bpo1", timestamp: c.BPO1Time, config: bsc.BPO1}, {name: "bpo2", timestamp: c.BPO2Time, config: bsc.BPO2}, {name: "bpo3", timestamp: c.BPO3Time, config: bsc.BPO3}, {name: "bpo4", timestamp: c.BPO4Time, config: bsc.BPO4}, {name: "bpo5", timestamp: c.BPO5Time, config: bsc.BPO5}, - {name: "amsterdam", timestamp: c.AmsterdamTime, config: bsc.Amsterdam}, } { if cur.config != nil { if err := cur.config.validate(); err != nil { @@ -1008,9 +991,9 @@ func (c *ChainConfig) CheckConfigForkOrder() error { } } if cur.timestamp != nil { - // If the fork is configured, a blob schedule must be defined for it. + // If cancun/prague or BPO is configured, a blob schedule must be defined if cur.config == nil { - return fmt.Errorf("invalid chain configuration: missing entry for fork %q in blobSchedule", cur.name) + return fmt.Errorf("invalid chain configuration: missing entry for fork/bpo %q in blobSchedule", cur.name) } } } @@ -1140,16 +1123,6 @@ func (c *ChainConfig) LatestFork(time uint64) forks.Fork { switch { case c.IsAmsterdam(london, time): return forks.Amsterdam - case c.IsBPO5(london, time): - return forks.BPO5 - case c.IsBPO4(london, time): - return forks.BPO4 - case c.IsBPO3(london, time): - return forks.BPO3 - case c.IsBPO2(london, time): - return forks.BPO2 - case c.IsBPO1(london, time): - return forks.BPO1 case c.IsOsaka(london, time): return forks.Osaka case c.IsPrague(london, time): @@ -1163,24 +1136,22 @@ func (c *ChainConfig) LatestFork(time uint64) forks.Fork { } } -// BlobConfig returns the blob config associated with the provided fork. -func (c *ChainConfig) BlobConfig(fork forks.Fork) *BlobConfig { - switch fork { - case forks.BPO5: +// BlobConfig returns the blob config associated with the provided timestamp. +func (c *ChainConfig) BlobConfig(ts uint64) *BlobConfig { + switch { + case isTimestampForked(c.BPO5Time, ts): return c.BlobScheduleConfig.BPO5 - case forks.BPO4: + case isTimestampForked(c.BPO4Time, ts): return c.BlobScheduleConfig.BPO4 - case forks.BPO3: + case isTimestampForked(c.BPO3Time, ts): return c.BlobScheduleConfig.BPO3 - case forks.BPO2: + case isTimestampForked(c.BPO2Time, ts): return c.BlobScheduleConfig.BPO2 - case forks.BPO1: + case isTimestampForked(c.BPO1Time, ts): return c.BlobScheduleConfig.BPO1 - case forks.Osaka: - return c.BlobScheduleConfig.Osaka - case forks.Prague: + case isTimestampForked(c.PragueTime, ts): return c.BlobScheduleConfig.Prague - case forks.Cancun: + case isTimestampForked(c.CancunTime, ts): return c.BlobScheduleConfig.Cancun default: return nil @@ -1211,6 +1182,8 @@ func (c *ChainConfig) ActiveSystemContracts(time uint64) map[string]common.Addre // the fork isn't defined or isn't a time-based fork. func (c *ChainConfig) Timestamp(fork forks.Fork) *uint64 { switch { + case fork == forks.Amsterdam: + return c.AmsterdamTime case fork == forks.BPO5: return c.BPO5Time case fork == forks.BPO4: diff --git a/tests/init.go b/tests/init.go index 705e929ae9d7..c8b9c7b714d0 100644 --- a/tests/init.go +++ b/tests/init.go @@ -434,7 +434,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, }, }, "PragueToOsakaAtTime15k": { @@ -461,7 +460,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, }, }, "BPO1": { @@ -489,7 +487,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, }, }, @@ -518,7 +515,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, }, }, @@ -548,7 +544,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, BPO2: bpo2BlobConfig, }, @@ -579,7 +574,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, BPO2: bpo2BlobConfig, }, @@ -611,7 +605,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, BPO2: bpo2BlobConfig, BPO3: params.DefaultBPO3BlobConfig, @@ -644,7 +637,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, BPO2: bpo2BlobConfig, BPO3: params.DefaultBPO3BlobConfig, @@ -678,7 +670,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, BPO2: bpo2BlobConfig, BPO3: params.DefaultBPO3BlobConfig, @@ -713,7 +704,6 @@ var Forks = map[string]*params.ChainConfig{ BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, - Osaka: params.DefaultOsakaBlobConfig, BPO1: bpo1BlobConfig, BPO2: bpo2BlobConfig, BPO3: params.DefaultBPO3BlobConfig,