mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-22 20:56:42 +00:00
core: inherit prior fork blob schedule when overriding amsterdam
--override.amsterdam onto a pre-amsterdam config left blobSchedule.amsterdam unset, which CheckConfigForkOrder rejects. Inherit the most recent preceding fork's blob params (Amsterdam/EIP-7928 doesn't change blob parameters).
This commit is contained in:
parent
037881aa8a
commit
d826ffad51
1 changed files with 24 additions and 0 deletions
|
|
@ -294,6 +294,14 @@ func (o *ChainOverrides) apply(cfg *params.ChainConfig) error {
|
|||
}
|
||||
if o.OverrideAmsterdam != nil {
|
||||
cfg.AmsterdamTime = o.OverrideAmsterdam
|
||||
// Amsterdam (EIP-7928 BAL) doesn't change blob parameters. When the
|
||||
// bundled config has no amsterdam blobSchedule entry yet, inherit the
|
||||
// most recent preceding fork's so CheckConfigForkOrder validates.
|
||||
if cfg.BlobScheduleConfig != nil && cfg.BlobScheduleConfig.Amsterdam == nil {
|
||||
if prev := latestBlobConfig(cfg.BlobScheduleConfig); prev != nil {
|
||||
cfg.BlobScheduleConfig.Amsterdam = prev
|
||||
}
|
||||
}
|
||||
}
|
||||
if o.OverrideBPO1 != nil {
|
||||
cfg.BPO1Time = o.OverrideBPO1
|
||||
|
|
@ -307,6 +315,22 @@ func (o *ChainOverrides) apply(cfg *params.ChainConfig) error {
|
|||
return cfg.CheckConfigForkOrder()
|
||||
}
|
||||
|
||||
// latestBlobConfig returns the blob configuration of the most recent fork
|
||||
// defined in bs (scanning newest-first, excluding Amsterdam/UBT), or nil if none
|
||||
// is set. Used to give a newly-overridden fork sensible blob parameters.
|
||||
func latestBlobConfig(bs *params.BlobScheduleConfig) *params.BlobConfig {
|
||||
for _, c := range []*params.BlobConfig{
|
||||
bs.BPO5, bs.BPO4, bs.BPO3, bs.BPO2, bs.BPO1,
|
||||
bs.Osaka, bs.Prague, bs.Cancun,
|
||||
} {
|
||||
if c != nil {
|
||||
return c
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetupGenesisBlock writes or updates the genesis block in db.
|
||||
// The block that will be used is:
|
||||
//
|
||||
|
|
|
|||
Loading…
Reference in a new issue