Commit 8344e384 authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

Merge pull request #4619 from ethereum-optimism/fix/bedrock-genesis-block-magic

op-chain-ops: always use magic for transition/genesis block
parents 87aca45c 0f17177f
...@@ -58,7 +58,6 @@ type DeployConfig struct { ...@@ -58,7 +58,6 @@ type DeployConfig struct {
L1GenesisBlockBaseFeePerGas *hexutil.Big `json:"l1GenesisBlockBaseFeePerGas"` L1GenesisBlockBaseFeePerGas *hexutil.Big `json:"l1GenesisBlockBaseFeePerGas"`
L2GenesisBlockNonce hexutil.Uint64 `json:"l2GenesisBlockNonce"` L2GenesisBlockNonce hexutil.Uint64 `json:"l2GenesisBlockNonce"`
L2GenesisBlockExtraData hexutil.Bytes `json:"l2GenesisBlockExtraData"`
L2GenesisBlockGasLimit hexutil.Uint64 `json:"l2GenesisBlockGasLimit"` L2GenesisBlockGasLimit hexutil.Uint64 `json:"l2GenesisBlockGasLimit"`
L2GenesisBlockDifficulty *hexutil.Big `json:"l2GenesisBlockDifficulty"` L2GenesisBlockDifficulty *hexutil.Big `json:"l2GenesisBlockDifficulty"`
L2GenesisBlockMixHash common.Hash `json:"l2GenesisBlockMixHash"` L2GenesisBlockMixHash common.Hash `json:"l2GenesisBlockMixHash"`
......
...@@ -2,6 +2,7 @@ package genesis ...@@ -2,6 +2,7 @@ package genesis
import ( import (
"errors" "errors"
"fmt"
"math/big" "math/big"
"time" "time"
...@@ -61,10 +62,6 @@ func NewL2Genesis(config *DeployConfig, block *types.Block) (*core.Genesis, erro ...@@ -61,10 +62,6 @@ func NewL2Genesis(config *DeployConfig, block *types.Block) (*core.Genesis, erro
}, },
} }
extraData := config.L2GenesisBlockExtraData
if len(extraData) == 0 {
extraData = common.Hash{}.Bytes()
}
gasLimit := config.L2GenesisBlockGasLimit gasLimit := config.L2GenesisBlockGasLimit
if gasLimit == 0 { if gasLimit == 0 {
gasLimit = defaultL2GasLimit gasLimit = defaultL2GasLimit
...@@ -78,11 +75,16 @@ func NewL2Genesis(config *DeployConfig, block *types.Block) (*core.Genesis, erro ...@@ -78,11 +75,16 @@ func NewL2Genesis(config *DeployConfig, block *types.Block) (*core.Genesis, erro
difficulty = newHexBig(0) difficulty = newHexBig(0)
} }
// Ensure that the extradata is valid
if size := len(BedrockTransitionBlockExtraData); size > 32 {
return nil, fmt.Errorf("transition block extradata too long: %d", size)
}
return &core.Genesis{ return &core.Genesis{
Config: &optimismChainConfig, Config: &optimismChainConfig,
Nonce: uint64(config.L2GenesisBlockNonce), Nonce: uint64(config.L2GenesisBlockNonce),
Timestamp: block.Time(), Timestamp: block.Time(),
ExtraData: extraData, ExtraData: BedrockTransitionBlockExtraData,
GasLimit: uint64(gasLimit), GasLimit: uint64(gasLimit),
Difficulty: difficulty.ToInt(), Difficulty: difficulty.ToInt(),
Mixhash: config.L2GenesisBlockMixHash, Mixhash: config.L2GenesisBlockMixHash,
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
"l1GenesisBlockTimestamp": "0x0", "l1GenesisBlockTimestamp": "0x0",
"l1GenesisBlockBaseFeePerGas": "0x3b9aca00", "l1GenesisBlockBaseFeePerGas": "0x3b9aca00",
"l2GenesisBlockNonce": "0x0", "l2GenesisBlockNonce": "0x0",
"l2GenesisBlockExtraData": "0x",
"l2GenesisBlockGasLimit": "0xe4e1c0", "l2GenesisBlockGasLimit": "0xe4e1c0",
"l2GenesisBlockDifficulty": "0x1", "l2GenesisBlockDifficulty": "0x1",
"l2GenesisBlockMixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "l2GenesisBlockMixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
......
...@@ -89,7 +89,6 @@ func MakeDeployParams(t require.TestingT, tp *TestParams) *DeployParams { ...@@ -89,7 +89,6 @@ func MakeDeployParams(t require.TestingT, tp *TestParams) *DeployParams {
FinalizationPeriodSeconds: 12, FinalizationPeriodSeconds: 12,
L2GenesisBlockNonce: 0, L2GenesisBlockNonce: 0,
L2GenesisBlockExtraData: []byte{},
L2GenesisBlockGasLimit: 15_000_000, L2GenesisBlockGasLimit: 15_000_000,
L2GenesisBlockDifficulty: uint64ToBig(0), L2GenesisBlockDifficulty: uint64ToBig(0),
L2GenesisBlockMixHash: common.Hash{}, L2GenesisBlockMixHash: common.Hash{},
......
...@@ -81,7 +81,6 @@ func DefaultSystemConfig(t *testing.T) SystemConfig { ...@@ -81,7 +81,6 @@ func DefaultSystemConfig(t *testing.T) SystemConfig {
L1GenesisBlockBaseFeePerGas: uint642big(7), L1GenesisBlockBaseFeePerGas: uint642big(7),
L2GenesisBlockNonce: 0, L2GenesisBlockNonce: 0,
L2GenesisBlockExtraData: []byte{},
L2GenesisBlockGasLimit: 8_000_000, L2GenesisBlockGasLimit: 8_000_000,
L2GenesisBlockDifficulty: uint642big(1), L2GenesisBlockDifficulty: uint642big(1),
L2GenesisBlockMixHash: common.Hash{}, L2GenesisBlockMixHash: common.Hash{},
......
...@@ -147,7 +147,6 @@ interface OptionalL1DeployConfig { ...@@ -147,7 +147,6 @@ interface OptionalL1DeployConfig {
*/ */
interface OptionalL2DeployConfig { interface OptionalL2DeployConfig {
l2GenesisBlockNonce: string l2GenesisBlockNonce: string
l2GenesisBlockExtraData: string
l2GenesisBlockGasLimit: string l2GenesisBlockGasLimit: string
l2GenesisBlockDifficulty: string l2GenesisBlockDifficulty: string
l2GenesisBlockMixHash: string l2GenesisBlockMixHash: string
...@@ -283,10 +282,6 @@ export const deployConfigSpec: { ...@@ -283,10 +282,6 @@ export const deployConfigSpec: {
type: 'string', // uint64 type: 'string', // uint64
default: '0x0', default: '0x0',
}, },
l2GenesisBlockExtraData: {
type: 'string', // important: in the case of L2, which uses post-Merge Ethereum rules, this must be <= 32 bytes.
default: ethers.constants.HashZero,
},
l2GenesisBlockGasLimit: { l2GenesisBlockGasLimit: {
type: 'string', type: 'string',
default: ethers.BigNumber.from(15_000_000).toHexString(), default: ethers.BigNumber.from(15_000_000).toHexString(),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment