diff --git a/networkconfig/holesky-e2e.go b/networkconfig/holesky-e2e.go index 0e8e060261..f5de84b414 100644 --- a/networkconfig/holesky-e2e.go +++ b/networkconfig/holesky-e2e.go @@ -18,5 +18,6 @@ var HoleskyE2E = NetworkConfig{ RegistryContractAddr: "0x58410bef803ecd7e63b23664c586a6db72daf59c", RegistrySyncOffset: big.NewInt(405579), Bootnodes: []string{}, + GasLimit36Epoch: 0, }, } diff --git a/networkconfig/holesky-stage.go b/networkconfig/holesky-stage.go index 682feb604d..b1081b80e3 100644 --- a/networkconfig/holesky-stage.go +++ b/networkconfig/holesky-stage.go @@ -25,5 +25,6 @@ var HoleskyStage = NetworkConfig{ // Private bootnode: "enr:-Ja4QDRUBjWOvVfGxpxvv3FqaCy3psm7IsKu5ETb1GXiexGYDFppD33t7AHRfmQddoAkBiyb7pt4t7ZN0sNB9CsW4I-GAZGOmChMgmlkgnY0gmlwhAorXxuJc2VjcDI1NmsxoQP_bBE-ZYvaXKBR3dRYMN5K_lZP-q-YsBzDZEtxH_4T_YNzc3YBg3RjcIITioN1ZHCCD6I", }, + GasLimit36Epoch: 0, }, } diff --git a/networkconfig/holesky.go b/networkconfig/holesky.go index 7934182742..013e2bfd5a 100644 --- a/networkconfig/holesky.go +++ b/networkconfig/holesky.go @@ -22,5 +22,6 @@ var Holesky = NetworkConfig{ // SSV Labs "enr:-Ja4QKFD3u5tZob7xukp-JKX9QJMFqqI68cItsE4tBbhsOyDR0M_1UUjb35hbrqvTP3bnXO_LnKh-jNLTeaUqN4xiduGAZKaP_sagmlkgnY0gmlwhDb0fh6Jc2VjcDI1NmsxoQMw_H2anuiqP9NmEaZwbUfdvPFog7PvcKmoVByDa576SINzc3YBg3RjcIITioN1ZHCCD6I", }, + GasLimit36Epoch: 0, }, } diff --git a/networkconfig/hoodi-stage.go b/networkconfig/hoodi-stage.go index b013d11c2c..fffa0d93ed 100644 --- a/networkconfig/hoodi-stage.go +++ b/networkconfig/hoodi-stage.go @@ -22,5 +22,6 @@ var HoodiStage = NetworkConfig{ // SSV Labs "enr:-Ja4QJZcaYfS0GpX-5xREVBa26a-E-QHMFek-EndsJdgM6loIM7pfbJwPDCNK1VzPkUhMjwcTTuNASiHU6X-sjsrxFmGAZWjNu06gmlkgnY0gmlwhErcGnyJc2VjcDI1NmsxoQP_bBE-ZYvaXKBR3dRYMN5K_lZP-q-YsBzDZEtxH_4T_YNzc3YBg3RjcIITioN1ZHCCD6I", }, + GasLimit36Epoch: 0, }, } diff --git a/networkconfig/hoodi.go b/networkconfig/hoodi.go index 24292d2251..f322740237 100644 --- a/networkconfig/hoodi.go +++ b/networkconfig/hoodi.go @@ -22,5 +22,6 @@ var Hoodi = NetworkConfig{ // SSV Labs "enr:-Ja4QIKlyNFuFtTOnVoavqwmpgSJXfhSmhpdSDOUhf5-FBr7bBxQRvG6VrpUvlkr8MtpNNuMAkM33AseduSaOhd9IeWGAZWjRbnvgmlkgnY0gmlwhCNVVTCJc2VjcDI1NmsxoQNTTyiJPoZh502xOZpHSHAfR-94NaXLvi5J4CNHMh2tjoNzc3YBg3RjcIITioN1ZHCCD6I", }, + GasLimit36Epoch: 0, }, } diff --git a/networkconfig/local-testnet.go b/networkconfig/local-testnet.go index 6318ab4ac4..aa7ddc0438 100644 --- a/networkconfig/local-testnet.go +++ b/networkconfig/local-testnet.go @@ -17,5 +17,6 @@ var LocalTestnet = NetworkConfig{ Bootnodes: []string{ "enr:-Li4QLR4Y1VbwiqFYKy6m-WFHRNDjhMDZ_qJwIABu2PY9BHjIYwCKpTvvkVmZhu43Q6zVA29sEUhtz10rQjDJkK3Hd-GAYiGrW2Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhCLdu_SJc2VjcDI1NmsxoQJTcI7GHPw-ZqIflPZYYDK_guurp_gsAFF5Erns3-PAvIN0Y3CCE4mDdWRwgg-h", }, + GasLimit36Epoch: 0, }, } diff --git a/networkconfig/mainnet.go b/networkconfig/mainnet.go index e8ce291a42..826d133efb 100644 --- a/networkconfig/mainnet.go +++ b/networkconfig/mainnet.go @@ -1,8 +1,10 @@ package networkconfig import ( + "math" "math/big" + "github.com/attestantio/go-eth2-client/spec/phase0" spectypes "github.com/ssvlabs/ssv-spec/types" "github.com/ssvlabs/ssv/protocol/v2/blockchain/beacon" @@ -31,5 +33,7 @@ var Mainnet = NetworkConfig{ // CryptoManufaktur "enr:-Li4QH7FwJcL8gJj0zHAITXqghMkG-A5bfWh2-3Q7vosy9D1BS8HZk-1ITuhK_rfzG3v_UtBDI6uNJZWpdcWfrQFCxKGAYnQ1DRCh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLb3g2Jc2VjcDI1NmsxoQKeSDcZWSaY9FC723E9yYX1Li18bswhLNlxBZdLfgOKp4N0Y3CCE4mDdWRwgg-h", }, + // TODO - set proper value for mainnet + GasLimit36Epoch: phase0.Epoch(math.MaxUint64), }, } diff --git a/networkconfig/sepolia.go b/networkconfig/sepolia.go index cc05bfb9d4..8077e67dd1 100644 --- a/networkconfig/sepolia.go +++ b/networkconfig/sepolia.go @@ -22,5 +22,6 @@ var Sepolia = NetworkConfig{ // SSV Labs "enr:-Ja4QIE0Ml0a8Pq9zD-0g9KYGN3jAMPJ0CAP0i16fK-PSHfLeORl-Z5p8odoP1oS5S2E8IsF5jNG7gqTKhjVsHR-Z_CGAZXrnTJrgmlkgnY0gmlwhCOjXGWJc2VjcDI1NmsxoQKCRDQsIdFsJDmu_ZU2H6b2_HRJbuUneDXHLfFkSQH9O4Nzc3YBg3RjcIITioN1ZHCCD6I", }, + GasLimit36Epoch: 0, }, } diff --git a/networkconfig/ssv.go b/networkconfig/ssv.go index 6ae33b78e9..c12809488d 100644 --- a/networkconfig/ssv.go +++ b/networkconfig/ssv.go @@ -3,6 +3,7 @@ package networkconfig import ( "math/big" + "github.com/attestantio/go-eth2-client/spec/phase0" spectypes "github.com/ssvlabs/ssv-spec/types" ) @@ -12,4 +13,7 @@ type SSVConfig struct { RegistryContractAddr string // TODO: ethcommon.Address Bootnodes []string DiscoveryProtocolID [6]byte + // GasLimit36Epoch is an epoch when to upgrade from default gas limit value of 30_000_000 + // to 36_000_000. + GasLimit36Epoch phase0.Epoch } diff --git a/networkconfig/test-network.go b/networkconfig/test-network.go index bed1b4e5f5..3458ef1bba 100644 --- a/networkconfig/test-network.go +++ b/networkconfig/test-network.go @@ -20,5 +20,6 @@ var TestNetwork = NetworkConfig{ Bootnodes: []string{ "enr:-Li4QFIQzamdvTxGJhvcXG_DFmCeyggSffDnllY5DiU47pd_K_1MRnSaJimWtfKJ-MD46jUX9TwgW5Jqe0t4pH41RYWGAYuFnlyth2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhCLdu_SJc2VjcDI1NmsxoQN4v-N9zFYwEqzGPBBX37q24QPFvAVUtokIo1fblIsmTIN0Y3CCE4uDdWRwgg-j", }, + GasLimit36Epoch: 0, }, } diff --git a/protocol/v2/ssv/testing/runner.go b/protocol/v2/ssv/testing/runner.go index 28f93a38b1..3ae0bc3726 100644 --- a/protocol/v2/ssv/testing/runner.go +++ b/protocol/v2/ssv/testing/runner.go @@ -184,7 +184,7 @@ var ConstructBaseRunner = func( net, km, opSigner, - spectypes.DefaultGasLimit, + validator.DefaultGasLimitOld, ) case spectypes.RoleVoluntaryExit: r, err = runner.NewVoluntaryExitRunner( @@ -441,7 +441,7 @@ var ConstructBaseRunnerWithShareMap = func( net, km, opSigner, - spectypes.DefaultGasLimit, + validator.DefaultGasLimitOld, ) case spectypes.RoleVoluntaryExit: r, err = runner.NewVoluntaryExitRunner( diff --git a/protocol/v2/ssv/validator/opts.go b/protocol/v2/ssv/validator/opts.go index 8e3e012d46..5dd3805abe 100644 --- a/protocol/v2/ssv/validator/opts.go +++ b/protocol/v2/ssv/validator/opts.go @@ -19,6 +19,9 @@ import ( const ( DefaultQueueSize = 32 + + DefaultGasLimit = uint64(36_000_000) + DefaultGasLimitOld = uint64(30_000_000) ) // Options represents validator-specific options. @@ -89,8 +92,14 @@ func NewCommonOptions( result.QueueSize = max(result.QueueSize, historySyncBatchSize*2) } + // Set the default GasLimit value if it hasn't been specified already, use 36 or 30 depending + // on the current epoch as compared to when this transition is supposed to happen. if result.GasLimit == 0 { - result.GasLimit = spectypes.DefaultGasLimit + defaultGasLimit := DefaultGasLimit + if result.NetworkConfig.Beacon.EstimatedCurrentEpoch() < result.NetworkConfig.GasLimit36Epoch { + defaultGasLimit = DefaultGasLimitOld + } + result.GasLimit = defaultGasLimit } return result