diff --git a/kurtosis/op-service/eth/config.go b/kurtosis/op-service/eth/config.go index badcf39..9d0df0d 100644 --- a/kurtosis/op-service/eth/config.go +++ b/kurtosis/op-service/eth/config.go @@ -1,9 +1,16 @@ package eth import ( + "context" + "encoding/json" + "log/slog" + "math/big" + "net/http" + + "github.com/ethereum-optimism/optimism/op-service/client" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/params" - "math/big" ) // L1ChainConfigByChainID returns the chain config for the given chain ID, @@ -20,6 +27,7 @@ func L1ChainConfigByChainID(chainID ChainID) *params.ChainConfig { case ChainIDFromBig(params.HoodiChainConfig.ChainID): return params.HoodiChainConfig default: + genesisTimestamp := getGenesis() return ¶ms.ChainConfig{ ChainID: chainID.ToBig(), HomesteadBlock: big.NewInt(0), @@ -43,14 +51,36 @@ func L1ChainConfigByChainID(chainID ChainID) *params.ChainConfig { PragueTime: newUint64(0), OsakaTime: newUint64(0), BPO1Time: newUint64(0), - DepositContractAddress: common.HexToAddress("0x00000000219ab540356cbb839cbe05303d7705fa"), + // 2 epoch * 8 slot * 6 seconds + BPO2Time: newUint64(genesisTimestamp + 2*8*6), + DepositContractAddress: common.HexToAddress("0x00000000219ab540356cbb839cbe05303d7705fa"), BlobScheduleConfig: ¶ms.BlobScheduleConfig{ Cancun: params.DefaultCancunBlobConfig, Prague: params.DefaultPragueBlobConfig, Osaka: params.DefaultOsakaBlobConfig, BPO1: params.DefaultBPO1BlobConfig, + BPO2: params.DefaultBPO2BlobConfig, }, } } } + func newUint64(val uint64) *uint64 { return &val } + +func getGenesis() uint64 { + logger := log.NewLogger(slog.Default().Handler()) + cl := client.NewBasicHTTPClient("http://cl-1-lodestar-geth:4000", logger) + headers := http.Header{} + headers.Add("Accept", "application/json") + + var genesisResp APIGenesisResponse + resp, err := cl.Get(context.Background(), "eth/v1/beacon/genesis", nil, headers) + if err != nil { + panic(err) + } + defer resp.Body.Close() + if err = json.NewDecoder(resp.Body).Decode(&genesisResp); err != nil { + panic(err) + } + return uint64(genesisResp.Data.GenesisTime) +} diff --git a/kurtosis/simple.yaml b/kurtosis/simple.yaml index c43edc1..aa3f7bd 100644 --- a/kurtosis/simple.yaml +++ b/kurtosis/simple.yaml @@ -8,7 +8,7 @@ optimism_package: node0: el: type: op-geth - image: "" + image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101603.1" log_level: "" extra_env_vars: {} extra_labels: {} @@ -85,9 +85,9 @@ ethereum_package: bpo_1_epoch: 0 bpo_1_max_blobs: 15 bpo_1_target_blobs: 10 - #bpo_2_epoch: 0 # required to be bigger than bpo_1_epoch - #bpo_2_max_blobs: 21 - #bpo_2_target_blobs: 14 + bpo_2_epoch: 2 # required to be bigger than bpo_1_epoch + bpo_2_max_blobs: 21 + bpo_2_target_blobs: 14 genesis_delay: 5 additional_preloaded_contracts: | {