Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions consensus/misc/eip4844/eip4844.go
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
3 changes: 1 addition & 2 deletions consensus/misc/eip4844/eip4844_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ func TestCalcBlobFeePostOsaka(t *testing.T) {
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: &params.BlobConfig{
Target: 9,
Max: 14,
Expand Down Expand Up @@ -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
)

Expand Down
2 changes: 0 additions & 2 deletions core/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -293,8 +293,6 @@ func TestVerkleGenesisCommit(t *testing.T) {
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
Verkle: params.DefaultPragueBlobConfig,
},
}

Expand Down
5 changes: 0 additions & 5 deletions core/txpool/blobpool/blobpool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1234,11 +1234,6 @@ func TestBillyMigration(t *testing.T) {
Max: maxBlobs,
UpdateFraction: params.DefaultCancunBlobConfig.UpdateFraction,
},
Osaka: &params.BlobConfig{
Target: maxBlobs / 2,
Max: maxBlobs,
UpdateFraction: params.DefaultCancunBlobConfig.UpdateFraction,
},
},
}
chain := &testBlockChain{
Expand Down
4 changes: 2 additions & 2 deletions core/verkle_witness_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ var (
TerminalTotalDifficulty: common.Big0,
EnableVerkleAtGenesis: true,
BlobScheduleConfig: &params.BlobScheduleConfig{
Verkle: params.DefaultPragueBlobConfig,
Prague: params.DefaultPragueBlobConfig,
},
// TODO uncomment when proof generation is merged
// ProofInBlocks: true,
Expand All @@ -85,7 +85,7 @@ var (
TerminalTotalDifficulty: common.Big0,
EnableVerkleAtGenesis: true,
BlobScheduleConfig: &params.BlobScheduleConfig{
Verkle: params.DefaultPragueBlobConfig,
Prague: params.DefaultPragueBlobConfig,
},
}
)
Expand Down
2 changes: 1 addition & 1 deletion internal/ethapi/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
77 changes: 25 additions & 52 deletions params/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@ var (
BlobScheduleConfig: &BlobScheduleConfig{
Cancun: DefaultCancunBlobConfig,
Prague: DefaultPragueBlobConfig,
Osaka: DefaultOsakaBlobConfig,
BPO1: DefaultBPO1BlobConfig,
BPO2: DefaultBPO2BlobConfig,
},
Expand Down Expand Up @@ -135,7 +134,6 @@ var (
BlobScheduleConfig: &BlobScheduleConfig{
Cancun: DefaultCancunBlobConfig,
Prague: DefaultPragueBlobConfig,
Osaka: DefaultOsakaBlobConfig,
BPO1: DefaultBPO1BlobConfig,
BPO2: DefaultBPO2BlobConfig,
},
Expand Down Expand Up @@ -171,7 +169,6 @@ var (
BlobScheduleConfig: &BlobScheduleConfig{
Cancun: DefaultCancunBlobConfig,
Prague: DefaultPragueBlobConfig,
Osaka: DefaultOsakaBlobConfig,
BPO1: DefaultBPO1BlobConfig,
BPO2: DefaultBPO2BlobConfig,
},
Expand Down Expand Up @@ -229,7 +226,6 @@ var (
BlobScheduleConfig: &BlobScheduleConfig{
Cancun: DefaultCancunBlobConfig,
Prague: DefaultPragueBlobConfig,
Osaka: DefaultOsakaBlobConfig,
},
}

Expand Down Expand Up @@ -324,7 +320,6 @@ var (
BlobScheduleConfig: &BlobScheduleConfig{
Cancun: DefaultCancunBlobConfig,
Prague: DefaultPragueBlobConfig,
Osaka: DefaultOsakaBlobConfig,
},
}

Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -407,7 +396,6 @@ var (
DefaultBlobSchedule = &BlobScheduleConfig{
Cancun: DefaultCancunBlobConfig,
Prague: DefaultPragueBlobConfig,
Osaka: DefaultOsakaBlobConfig,
}
)

Expand Down Expand Up @@ -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)
Expand All @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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)
Expand All @@ -994,23 +979,21 @@ 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 {
return fmt.Errorf("invalid chain configuration in blobSchedule for fork %q: %v", cur.name, err)
}
}
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)
}
}
Comment thread
jwasinger marked this conversation as resolved.
}
Expand Down Expand Up @@ -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):
Expand All @@ -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
Expand Down Expand Up @@ -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:
Expand Down
10 changes: 0 additions & 10 deletions tests/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
},
},
"PragueToOsakaAtTime15k": {
Expand All @@ -461,7 +460,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
},
},
"BPO1": {
Expand Down Expand Up @@ -489,7 +487,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
},
},
Expand Down Expand Up @@ -518,7 +515,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
},
},
Expand Down Expand Up @@ -548,7 +544,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
BPO2: bpo2BlobConfig,
},
Expand Down Expand Up @@ -579,7 +574,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
BPO2: bpo2BlobConfig,
},
Expand Down Expand Up @@ -611,7 +605,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
BPO2: bpo2BlobConfig,
BPO3: params.DefaultBPO3BlobConfig,
Expand Down Expand Up @@ -644,7 +637,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
BPO2: bpo2BlobConfig,
BPO3: params.DefaultBPO3BlobConfig,
Expand Down Expand Up @@ -678,7 +670,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
BPO2: bpo2BlobConfig,
BPO3: params.DefaultBPO3BlobConfig,
Expand Down Expand Up @@ -713,7 +704,6 @@ var Forks = map[string]*params.ChainConfig{
BlobScheduleConfig: &params.BlobScheduleConfig{
Cancun: params.DefaultCancunBlobConfig,
Prague: params.DefaultPragueBlobConfig,
Osaka: params.DefaultOsakaBlobConfig,
BPO1: bpo1BlobConfig,
BPO2: bpo2BlobConfig,
BPO3: params.DefaultBPO3BlobConfig,
Expand Down