From 034a28710e11632b15ed105aaf755d2c586c6812 Mon Sep 17 00:00:00 2001 From: Preston Van Loon Date: Wed, 17 Mar 2021 09:14:07 -0500 Subject: [PATCH] Add Prater config (#8613) * Add Prater config * Register flag everywhere * gofmt * Apply suggestions from code review Co-authored-by: terence tsao * Update shared/params/testnet_prater_config.go Co-authored-by: terence tsao Co-authored-by: Raul Jordan Co-authored-by: terence tsao --- cmd/validator/accounts/accounts.go | 5 +++ .../slashing-protection.go | 1 + cmd/validator/wallet/wallet.go | 3 ++ shared/featureconfig/config.go | 6 +++ shared/featureconfig/flags.go | 8 ++++ shared/params/BUILD.bazel | 2 + shared/params/testnet_prater_config.go | 37 +++++++++++++++++++ shared/params/values.go | 2 + 8 files changed, 64 insertions(+) create mode 100644 shared/params/testnet_prater_config.go diff --git a/cmd/validator/accounts/accounts.go b/cmd/validator/accounts/accounts.go index 52602c3cd9..05da6f1a3a 100644 --- a/cmd/validator/accounts/accounts.go +++ b/cmd/validator/accounts/accounts.go @@ -30,6 +30,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -64,6 +65,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -95,6 +97,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -123,6 +126,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -157,6 +161,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { diff --git a/cmd/validator/slashing-protection/slashing-protection.go b/cmd/validator/slashing-protection/slashing-protection.go index 7754d69148..230ea91745 100644 --- a/cmd/validator/slashing-protection/slashing-protection.go +++ b/cmd/validator/slashing-protection/slashing-protection.go @@ -42,6 +42,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { diff --git a/cmd/validator/wallet/wallet.go b/cmd/validator/wallet/wallet.go index 40c290dce1..8702cfb88d 100644 --- a/cmd/validator/wallet/wallet.go +++ b/cmd/validator/wallet/wallet.go @@ -36,6 +36,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -66,6 +67,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { @@ -95,6 +97,7 @@ var Commands = &cli.Command{ featureconfig.Mainnet, featureconfig.PyrmontTestnet, featureconfig.ToledoTestnet, + featureconfig.PraterTestnet, cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { diff --git a/shared/featureconfig/config.go b/shared/featureconfig/config.go index 710f25d04f..17d96d3291 100644 --- a/shared/featureconfig/config.go +++ b/shared/featureconfig/config.go @@ -121,6 +121,12 @@ func configureTestnet(ctx *cli.Context, cfg *Flags) { params.UsePyrmontConfig() params.UsePyrmontNetworkConfig() cfg.PyrmontTestnet = true + } else if ctx.Bool(PraterTestnet.Name) { + log.Warn("Running on the Prater Testnet") + params.UsePraterConfig() + params.UsePraterNetworkConfig() + // TODO(8612): Define bootstrap nodes. + log.Error("No bootnodes are defined by default for Prater") } else { log.Warn("Running on ETH2 Mainnet") params.UseMainnetConfig() diff --git a/shared/featureconfig/flags.go b/shared/featureconfig/flags.go index 6711f8b209..1b3b50ab6f 100644 --- a/shared/featureconfig/flags.go +++ b/shared/featureconfig/flags.go @@ -17,6 +17,11 @@ var ( Name: "pyrmont", Usage: "This defines the flag through which we can run on the Pyrmont Multiclient Testnet", } + // PraterTestnet flag for the multiclient eth2 testnet. + PraterTestnet = &cli.BoolFlag{ + Name: "prater", + Usage: "Run Prysm configured for the Prater test network", + } // Mainnet flag for easier tooling, no-op Mainnet = &cli.BoolFlag{ Value: true, @@ -131,6 +136,7 @@ var ValidatorFlags = append(deprecatedFlags, []cli.Flag{ disableAttestingHistoryDBCache, ToledoTestnet, PyrmontTestnet, + PraterTestnet, Mainnet, disableAccountsV2, disableBlst, @@ -143,6 +149,7 @@ var SlasherFlags = append(deprecatedFlags, []cli.Flag{ disableLookbackFlag, ToledoTestnet, PyrmontTestnet, + PraterTestnet, Mainnet, }...) @@ -158,6 +165,7 @@ var BeaconChainFlags = append(deprecatedFlags, []cli.Flag{ attestationAggregationStrategy, ToledoTestnet, PyrmontTestnet, + PraterTestnet, Mainnet, disableBlst, enablePeerScorer, diff --git a/shared/params/BUILD.bazel b/shared/params/BUILD.bazel index fd9abccfc1..40768716e1 100644 --- a/shared/params/BUILD.bazel +++ b/shared/params/BUILD.bazel @@ -13,6 +13,7 @@ go_library( "minimal_config.go", "network_config.go", "testnet_e2e_config.go", + "testnet_prater_config.go", "testnet_pyrmont_config.go", "testnet_toledo_config.go", "testutils.go", @@ -22,6 +23,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//shared/bytesutil:go_default_library", + "@com_github_ethereum_go_ethereum//params:go_default_library", "@com_github_mohae_deepcopy//:go_default_library", "@com_github_prysmaticlabs_eth2_types//:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", diff --git a/shared/params/testnet_prater_config.go b/shared/params/testnet_prater_config.go new file mode 100644 index 0000000000..0a657c571a --- /dev/null +++ b/shared/params/testnet_prater_config.go @@ -0,0 +1,37 @@ +package params + +import ( + eth1Params "github.com/ethereum/go-ethereum/params" +) + +// UsePraterNetworkConfig uses the Prater specific +// network config. +func UsePraterNetworkConfig() { + cfg := BeaconNetworkConfig().Copy() + cfg.ContractDeploymentBlock = 4367322 + cfg.BootstrapNodes = []string{ + // TODO(8612): Define bootstrap nodes. + } + OverrideBeaconNetworkConfig(cfg) +} + +// UsePraterConfig sets the main beacon chain +// config for Prater. +func UsePraterConfig() { + beaconConfig = PraterConfig() +} + +// PraterConfig defines the config for the +// Prater testnet. +func PraterConfig() *BeaconChainConfig { + cfg := MainnetConfig().Copy() + cfg.MinGenesisTime = 1614588812 + cfg.GenesisDelay = 1919188 + cfg.ConfigName = ConfigNames[Prater] + cfg.GenesisForkVersion = []byte{0x00, 0x00, 0x10, 0x20} + cfg.SecondsPerETH1Block = 14 + cfg.DepositChainID = eth1Params.GoerliChainConfig.ChainID.Uint64() + cfg.DepositNetworkID = eth1Params.GoerliChainConfig.ChainID.Uint64() + cfg.DepositContractAddress = "0xff50ed3d0ec03ac01d4c79aad74928bff48a7b2b" + return cfg +} diff --git a/shared/params/values.go b/shared/params/values.go index d64032b891..4f35bde4de 100644 --- a/shared/params/values.go +++ b/shared/params/values.go @@ -5,6 +5,7 @@ const ( EndToEnd Pyrmont Toledo + Prater ) // ConfigNames provides network configuration names. @@ -13,6 +14,7 @@ var ConfigNames = map[configName]string{ EndToEnd: "end-to-end", Pyrmont: "pyrmont", Toledo: "toledo", + Prater: "prater", } type configName = int