diff --git a/.gitmodules b/.gitmodules index 348dffdb3..216f76996 100644 --- a/.gitmodules +++ b/.gitmodules @@ -197,3 +197,6 @@ path = vendor/merge-testnets url = https://github.com/eth-clients/merge-testnets.git branch = main +[submodule "vendor/gnosis-chain-configs"] + path = vendor/gnosis-chain-configs + url = https://github.com/zah/gnosis-chain-configs.git diff --git a/Makefile b/Makefile index ba54a0a27..97311ff32 100644 --- a/Makefile +++ b/Makefile @@ -589,11 +589,7 @@ clean-sepolia: ### Gnosis chain binary ### -# TODO The constants overrides below should not be necessary if we restore -# the support for compiling with custom const presets. -# See the prepared preset file in media/gnosis/preset.yaml -# -# The `-d:gnosisChainBinary` override can be removed if the web3 library +# TODO The `-d:gnosisChainBinary` override can be removed if the web3 library # gains support for multiple "Chain Profiles" that consist of a set of # consensus object (such as blocks and transactions) that are specific # to the chain. @@ -604,11 +600,8 @@ gnosis-build gnosis-chain-build: | build deps beacon_chain/nimbus_beacon_node.nim \ $(NIM_PARAMS) \ -d:gnosisChainBinary \ + -d:const_preset=gnosis \ -d:has_genesis_detection \ - -d:SLOTS_PER_EPOCH=16 \ - -d:SECONDS_PER_SLOT=5 \ - -d:BASE_REWARD_FACTOR=25 \ - -d:EPOCHS_PER_SYNC_COMMITTEE_PERIOD=512 \ && \ echo -e $(BUILD_END_MSG) "build/nimbus_beacon_node_gnosis" diff --git a/beacon_chain/conf.nim b/beacon_chain/conf.nim index 7c5b66bd0..00f3e5932 100644 --- a/beacon_chain/conf.nim +++ b/beacon_chain/conf.nim @@ -1265,7 +1265,7 @@ proc loadEth2Network*( eth2Network: Option[string] ): Eth2NetworkMetadata {.raises: [Defect, IOError].} = const defaultName = - when defined(gnosisChainBinary) and const_preset == "mainnet": + when const_preset == "gnosis": "gnosis" elif const_preset == "mainnet": "mainnet" @@ -1276,7 +1276,7 @@ proc loadEth2Network*( if eth2Network.isSome: getMetadataForNetwork(eth2Network.get) else: - when defined(gnosisChainBinary) and const_preset == "mainnet": + when const_preset == "gnosis": gnosisMetadata elif const_preset == "mainnet": mainnetMetadata diff --git a/beacon_chain/networking/eth2_network.nim b/beacon_chain/networking/eth2_network.nim index 01de68125..1edbf8d93 100644 --- a/beacon_chain/networking/eth2_network.nim +++ b/beacon_chain/networking/eth2_network.nim @@ -1867,14 +1867,16 @@ proc startListening*(node: Eth2Node) {.async.} = if node.discoveryEnabled: try: node.discovery.open() - except CatchableError: - fatal "Failed to start discovery service. UDP port may be already in use" + except CatchableError as err: + fatal "Failed to start discovery service. UDP port may be already in use", + err = err.msg quit 1 try: await node.switch.start() - except CatchableError: - fatal "Failed to start LibP2P transport. TCP port may be already in use" + except CatchableError as err: + fatal "Failed to start LibP2P transport. TCP port may be already in use", + err = err.msg quit 1 proc peerPingerHeartbeat(node: Eth2Node): Future[void] {.gcsafe.} diff --git a/beacon_chain/networking/network_metadata.nim b/beacon_chain/networking/network_metadata.nim index 29a65f1d8..e931172bb 100644 --- a/beacon_chain/networking/network_metadata.nim +++ b/beacon_chain/networking/network_metadata.nim @@ -213,11 +213,11 @@ template mergeTestnet(path: string, eth1Network: Eth1Network): Eth2NetworkMetada loadCompileTimeNetworkMetadata(mergeTestnetsDir & "/" & path, some eth1Network) -when defined(gnosisChainBinary) and const_preset == "mainnet": +when const_preset == "gnosis": const gnosisMetadata* = loadCompileTimeNetworkMetadata( currentSourcePath.parentDir.replace('\\', '/') & - "/../../media/gnosis") + "/../../vendor/gnosis-chain-configs/mainnet") static: checkForkConsistency(gnosisMetadata.cfg) doAssert gnosisMetadata.cfg.CAPELLA_FORK_EPOCH == FAR_FUTURE_EPOCH @@ -252,7 +252,7 @@ proc getMetadataForNetwork*( warn "Ropsten is unsupported; https://blog.ethereum.org/2022/11/30/ropsten-shutdown-announcement suggests migrating to Goerli or Sepolia" let metadata = - when defined(gnosisChainBinary) and const_preset == "mainnet": + when const_preset == "gnosis": case toLowerAscii(networkName) of "gnosis": gnosisMetadata @@ -298,10 +298,9 @@ proc getRuntimeConfig*( return getMetadataForNetwork(eth2Network.get).cfg when const_preset == "mainnet": - when defined(gnosisChainBinary): - gnosisMetadata.cfg - else: - mainnetMetadata.cfg + mainnetMetadata.cfg + elif const_preset == "gnosis": + gnosisMetadata.cfg else: # This is a non-standard build (i.e. minimal), and the function was most # likely executed in a test. The best we can do is return a fully default diff --git a/beacon_chain/spec/presets.nim b/beacon_chain/spec/presets.nim index 9d17eb88b..06e01ecb5 100644 --- a/beacon_chain/spec/presets.nim +++ b/beacon_chain/spec/presets.nim @@ -205,6 +205,113 @@ when const_preset == "mainnet": DEPOSIT_CONTRACT_ADDRESS: default(Eth1Address) ) +elif const_preset == "gnosis": + import ./presets/gnosis + export gnosis + + # TODO Move this to RuntimeConfig + const SECONDS_PER_SLOT* {.intdefine.}: uint64 = 5 + + # The default run-time config specifies the default configuration values + # that will be used if a particular run-time config is missing specific + # confugration values (which will be then taken from this config object). + # It mostly matches the gnosis config with the exception of few properties + # such as `CONFIG_NAME`, `TERMINAL_TOTAL_DIFFICULTY`, `*_FORK_EPOCH`, etc + # which must be effectively overriden in all network (including mainnet). + const defaultRuntimeConfig* = RuntimeConfig( + # Mainnet config + + # Extends the mainnet preset + PRESET_BASE: "gnosis", + + # Free-form short name of the network that this configuration applies to - known + # canonical network names include: + # * 'mainnet' - there can be only one + # * 'prater' - testnet + # * 'ropsten' - testnet + # * 'sepolia' - testnet + # Must match the regex: [a-z0-9\-] + CONFIG_NAME: "", + + # Transition + # --------------------------------------------------------------- + # TBD, 2**256-2**10 is a placeholder + TERMINAL_TOTAL_DIFFICULTY: + u256"115792089237316195423570985008687907853269984665640564039457584007913129638912", + # By default, don't use these params + TERMINAL_BLOCK_HASH: BlockHash.fromHex( + "0x0000000000000000000000000000000000000000000000000000000000000000"), + # TODO TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: Epoch(uint64.high), + + # Genesis + # --------------------------------------------------------------- + # `2**14` (= 16,384) + MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 4096, + # Dec 1, 2020, 12pm UTC + MIN_GENESIS_TIME: 1638968400, + # Mainnet initial fork version, recommend altering for testnets + GENESIS_FORK_VERSION: Version [byte 0x00, 0x00, 0x00, 0x64], + # 604800 seconds (7 days) + GENESIS_DELAY: 604800, + + # Forking + # --------------------------------------------------------------- + # Some forks are disabled for now: + # - These may be re-assigned to another fork-version later + # - Temporarily set to max uint64 value: 2**64 - 1 + + # Altair + ALTAIR_FORK_VERSION: Version [byte 0x01, 0x00, 0x00, 0x64], + ALTAIR_FORK_EPOCH: FAR_FUTURE_EPOCH, + # Bellatrix + BELLATRIX_FORK_VERSION: Version [byte 0x02, 0x00, 0x00, 0x64], + BELLATRIX_FORK_EPOCH: FAR_FUTURE_EPOCH, + # Capella + CAPELLA_FORK_VERSION: Version [byte 0x03, 0x00, 0x00, 0x64], + CAPELLA_FORK_EPOCH: FAR_FUTURE_EPOCH, + # eip4844 + EIP4844_FORK_VERSION: Version [byte 0x04, 0x00, 0x00, 0x64], + EIP4844_FORK_EPOCH: FAR_FUTURE_EPOCH, + # Sharding + SHARDING_FORK_VERSION: Version [byte 0x05, 0x00, 0x00, 0x64], + SHARDING_FORK_EPOCH: FAR_FUTURE_EPOCH, + + # Time parameters + # --------------------------------------------------------------- + # 12 seconds + # TODO SECONDS_PER_SLOT: 12, + # 14 (estimate from Eth1 mainnet) + SECONDS_PER_ETH1_BLOCK: 5, + # 2**8 (= 256) epochs ~27 hours + MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256, + # 2**8 (= 256) epochs ~27 hours + SHARD_COMMITTEE_PERIOD: 256, + # 2**11 (= 2,048) Eth1 blocks ~8 hours + ETH1_FOLLOW_DISTANCE: 2048, + + + # Validator cycle + # --------------------------------------------------------------- + # 2**2 (= 4) + INACTIVITY_SCORE_BIAS: 4, + # 2**4 (= 16) + INACTIVITY_SCORE_RECOVERY_RATE: 16, + # 2**4 * 10**9 (= 16,000,000,000) Gwei + EJECTION_BALANCE: 16000000000'u64, + # 2**2 (= 4) + MIN_PER_EPOCH_CHURN_LIMIT: 4, + # 2**16 (= 65,536) + CHURN_LIMIT_QUOTIENT: 4096, + + + # Deposit contract + # --------------------------------------------------------------- + # Gnosis PoW Mainnet + DEPOSIT_CHAIN_ID: 100, + DEPOSIT_NETWORK_ID: 100, + DEPOSIT_CONTRACT_ADDRESS: default(Eth1Address) + ) + elif const_preset == "minimal": import ./presets/minimal export minimal diff --git a/beacon_chain/spec/presets/gnosis.nim b/beacon_chain/spec/presets/gnosis.nim new file mode 100644 index 000000000..9f8576156 --- /dev/null +++ b/beacon_chain/spec/presets/gnosis.nim @@ -0,0 +1,4 @@ +import + ./gnosis/[altair_preset, bellatrix_preset, capella_preset, eip4844_preset, phase0_preset] + +export altair_preset, bellatrix_preset, capella_preset, eip4844_preset, phase0_preset diff --git a/beacon_chain/spec/presets/gnosis/altair_preset.nim b/beacon_chain/spec/presets/gnosis/altair_preset.nim new file mode 100644 index 000000000..b191ae27d --- /dev/null +++ b/beacon_chain/spec/presets/gnosis/altair_preset.nim @@ -0,0 +1,27 @@ +# Mainnet preset - Altair +# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/presets/mainnet/altair.yaml +const + # Updated penalty values + # --------------------------------------------------------------- + # 3 * 2**24 (= 50,331,648) + INACTIVITY_PENALTY_QUOTIENT_ALTAIR*: uint64 = 50331648 + # 2**6 (= 64) + MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR*: uint64 = 64 + # 2 + PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR*: uint64 = 2 + + + # Sync committee + # --------------------------------------------------------------- + # 2**9 (= 512) + SYNC_COMMITTEE_SIZE* = 512 + # 2**8 (= 256) + EPOCHS_PER_SYNC_COMMITTEE_PERIOD* {.intdefine.}: uint64 = 512 + + + # Sync protocol + # --------------------------------------------------------------- + # 1 + MIN_SYNC_COMMITTEE_PARTICIPANTS* = 1 + # SLOTS_PER_EPOCH * EPOCHS_PER_SYNC_COMMITTEE_PERIOD (= 32 * 256) + UPDATE_TIMEOUT*: uint64 = 8192 diff --git a/beacon_chain/spec/presets/gnosis/bellatrix_preset.nim b/beacon_chain/spec/presets/gnosis/bellatrix_preset.nim new file mode 100644 index 000000000..6189841f3 --- /dev/null +++ b/beacon_chain/spec/presets/gnosis/bellatrix_preset.nim @@ -0,0 +1,23 @@ +# Mainnet preset - Bellatrix +# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/presets/mainnet/bellatrix.yaml +const + # Updated penalty values + # --------------------------------------------------------------- + # 2**24 (= 16,777,216) + INACTIVITY_PENALTY_QUOTIENT_BELLATRIX*: uint64 = 16777216 + # 2**5 (= 32) + MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX*: uint64 = 32 + # 3 + PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX*: uint64 = 3 + + + # Execution + # --------------------------------------------------------------- + # 2**30 (= 1,073,741,824) + MAX_BYTES_PER_TRANSACTION* = 1073741824 + # 2**20 (= 1,048,576) + MAX_TRANSACTIONS_PER_PAYLOAD* = 1048576 + # 2**8 (= 256) + BYTES_PER_LOGS_BLOOM* = 256 + # 2**5 (= 32) + MAX_EXTRA_DATA_BYTES* = 32 diff --git a/beacon_chain/spec/presets/gnosis/capella_preset.nim b/beacon_chain/spec/presets/gnosis/capella_preset.nim new file mode 100644 index 000000000..075624f7b --- /dev/null +++ b/beacon_chain/spec/presets/gnosis/capella_preset.nim @@ -0,0 +1,19 @@ +# Mainnet preset - Capella +# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/presets/mainnet/capella.yaml +const + # Max operations per block + # --------------------------------------------------------------- + # 2**4 (= 16) + MAX_BLS_TO_EXECUTION_CHANGES* = 16 + + + # Execution + # --------------------------------------------------------------- + # 2**4 (= 16) withdrawals + MAX_WITHDRAWALS_PER_PAYLOAD* = 16 + + + # Withdrawals processing + # --------------------------------------------------------------- + # 2**14 (= 16384) validators + MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP* = 16384 diff --git a/beacon_chain/spec/presets/gnosis/eip4844_preset.nim b/beacon_chain/spec/presets/gnosis/eip4844_preset.nim new file mode 100644 index 000000000..faf90c0e1 --- /dev/null +++ b/beacon_chain/spec/presets/gnosis/eip4844_preset.nim @@ -0,0 +1,7 @@ +# Mainnet preset - EIP-4844 +# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/presets/mainnet/eip4844.yaml +const + # `uint64(4096)` + FIELD_ELEMENTS_PER_BLOB*: uint64 = 4096 + # `uint64(2**2)` (= 4) + MAX_BLOBS_PER_BLOCK*: uint64 = 4 diff --git a/beacon_chain/spec/presets/gnosis/phase0_preset.nim b/beacon_chain/spec/presets/gnosis/phase0_preset.nim new file mode 100644 index 000000000..1cd29332c --- /dev/null +++ b/beacon_chain/spec/presets/gnosis/phase0_preset.nim @@ -0,0 +1,97 @@ +# Mainnet preset - Phase0 +# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/presets/mainnet/phase0.yaml + +const + # + # Misc + # --------------------------------------------------------------- + # 2**6 (= 64) + MAX_COMMITTEES_PER_SLOT* {.intdefine.}: uint64 = 64 + # 2**7 (= 128) + TARGET_COMMITTEE_SIZE*: uint64 = 128 + # 2**11 (= 2,048) + MAX_VALIDATORS_PER_COMMITTEE*: uint64 = 2048 + # See issue 563 + SHUFFLE_ROUND_COUNT*: uint64 = 90 + # 4 + HYSTERESIS_QUOTIENT*: uint64 = 4 + # 1 (minus 0.25) + HYSTERESIS_DOWNWARD_MULTIPLIER*: uint64 = 1 + # 5 (plus 1.25) + HYSTERESIS_UPWARD_MULTIPLIER*: uint64 = 5 + + + # Fork Choice + # --------------------------------------------------------------- + # 2**3 (= 8) + SAFE_SLOTS_TO_UPDATE_JUSTIFIED*: uint64 = 8 + + + # Gwei values + # --------------------------------------------------------------- + # 2**0 * 10**9 (= 1,000,000,000) Gwei + MIN_DEPOSIT_AMOUNT*: uint64 = 1000000000 + # 2**5 * 10**9 (= 32,000,000,000) Gwei + MAX_EFFECTIVE_BALANCE*: uint64 = 32000000000'u64 + # 2**0 * 10**9 (= 1,000,000,000) Gwei + EFFECTIVE_BALANCE_INCREMENT*: uint64 = 1000000000 + + + # Time parameters + # --------------------------------------------------------------- + # 2**0 (= 1) slots 12 seconds + MIN_ATTESTATION_INCLUSION_DELAY*: uint64 = 1 + # 2**5 (= 32) slots 6.4 minutes + SLOTS_PER_EPOCH* {.intdefine.}: uint64 = 16 + # 2**0 (= 1) epochs 6.4 minutes + MIN_SEED_LOOKAHEAD*: uint64 = 1 + # 2**2 (= 4) epochs 25.6 minutes + MAX_SEED_LOOKAHEAD*: uint64 = 4 + # 2**6 (= 64) epochs ~6.8 hours + EPOCHS_PER_ETH1_VOTING_PERIOD*: uint64 = 64 + # 2**13 (= 8,192) slots ~27 hours + SLOTS_PER_HISTORICAL_ROOT*: uint64 = 8192 + # 2**2 (= 4) epochs 25.6 minutes + MIN_EPOCHS_TO_INACTIVITY_PENALTY*: uint64 = 4 + + + # State list lengths + # --------------------------------------------------------------- + # 2**16 (= 65,536) epochs ~0.8 years + EPOCHS_PER_HISTORICAL_VECTOR*: uint64 = 65536 + # 2**13 (= 8,192) epochs ~36 days + EPOCHS_PER_SLASHINGS_VECTOR*: uint64 = 8192 + # 2**24 (= 16,777,216) historical roots, ~26,131 years + HISTORICAL_ROOTS_LIMIT*: uint64 = 16777216 + # 2**40 (= 1,099,511,627,776) validator spots + VALIDATOR_REGISTRY_LIMIT*: uint64 = 1099511627776'u64 + + + # Reward and penalty quotients + # --------------------------------------------------------------- + # 2**6 (= 64) + BASE_REWARD_FACTOR* {.intdefine.}: uint64 = 25 + # 2**9 (= 512) + WHISTLEBLOWER_REWARD_QUOTIENT*: uint64 = 512 + # 2**3 (= 8) + PROPOSER_REWARD_QUOTIENT*: uint64 = 8 + # 2**26 (= 67,108,864) + INACTIVITY_PENALTY_QUOTIENT*: uint64 = 67108864 + # 2**7 (= 128) (lower safety margin at Phase 0 genesis) + MIN_SLASHING_PENALTY_QUOTIENT*: uint64 = 128 + # 1 (lower safety margin at Phase 0 genesis) + PROPORTIONAL_SLASHING_MULTIPLIER*: uint64 = 1 + + + # Max operations per block + # --------------------------------------------------------------- + # 2**4 (= 16) + MAX_PROPOSER_SLASHINGS*: uint64 = 16 + # 2**1 (= 2) + MAX_ATTESTER_SLASHINGS*: uint64 = 2 + # 2**7 (= 128) + MAX_ATTESTATIONS*: uint64 = 128 + # 2**4 (= 16) + MAX_DEPOSITS*: uint64 = 16 + # 2**4 (= 16) + MAX_VOLUNTARY_EXITS*: uint64 = 16 diff --git a/media/gnosis/boot_enr.yaml b/media/gnosis/boot_enr.yaml deleted file mode 100644 index 31ca6eccf..000000000 --- a/media/gnosis/boot_enr.yaml +++ /dev/null @@ -1,8 +0,0 @@ -- enr:-Ly4QMU1y81COwm1VZgxGF4_eZ21ub9-GHF6dXZ29aEJ0oZpcV2Rysw-viaEKfpcpu9ZarILJLxFZjcKOjE0Sybs3MQBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhANLnx-Jc2VjcDI1NmsxoQKoaYT8I-wf2I_f_ii6EgoSSXj5T3bhiDyW-7ZLsY3T64hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA -- enr:-Ly4QBf76jLiCA_pDXoZjhyRbuwzFOscFY-MIKkPnmHPQbvaKhIDZutfe38G9ibzgQP0RKrTo3vcWOy4hf_8wOZ-U5MBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhBLGgjaJc2VjcDI1NmsxoQLGeo0Q4lDvxIjHjnkAqEuETTaFIjsNrEcSpdDhcHXWFYhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA -- enr:-Ly4QLjZUWdqUO_RwyDqCAccIK5-MbLRD6A2c7oBuVbBgBnWDkEf0UKJVAaJqi2pO101WVQQLYSnYgz1Q3pRhYdrlFoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhANA8sSJc2VjcDI1NmsxoQK4TC_EK1jSs0VVPUpOjIo1rhJmff2SLBPFOWSXMwdLVYhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA -- enr:-Ly4QKwX2rTFtKWKQHSGQFhquxsxL1jewO8JB1MG-jgHqAZVFWxnb3yMoQqnYSV1bk25-_jiLuhIulxar3RBWXEDm6EBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhAN-qZeJc2VjcDI1NmsxoQI7EPGMpecl0QofLp4Wy_lYNCCChUFEH6kY7k-oBGkPFIhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA -- enr:-Ly4QPoChSQTleJROee1-k-4HOEgKqL9kLksE-tEiVqcY9kwF9V53aBg-MruD7Yx4Aks3LAeJpKXAS4ntMrIdqvQYc8Ch2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhGsWBHiJc2VjcDI1NmsxoQKwGQrwOSBJB_DtQOkFZVAY4YQfMAbUVxFpL5WgrzEddYhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA -- enr:-Ly4QBbaKRSX4SncCOxTTL611Kxlz-zYFrIn-k_63jGIPK_wbvFghVUHJICPCxufgTX5h79jvgfPr-2hEEQEdziGQ5MCh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhAMazo6Jc2VjcDI1NmsxoQKt-kbM9isuWp8djhyEq6-4MLv1Sy7dOXeMOMdPgwu9LohzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA -- enr:-Ly4QKJ5BzgFyJ6BaTlGY0C8ROzl508U3GA6qxdG5Gn2hxdke6nQO187pYlLvhp82Dez4PQn436Fts1F0WAm-_5l2LACh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhA-YLVKJc2VjcDI1NmsxoQI8_Lvr6p_TkcAu8KorKacfUEnoOon0tdO0qWhriPdBP4hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA -- enr:-Ly4QJMtoiX2bPnVbiQOJCLbtUlqdqZk7kCJQln_W1bp1vOHcxWowE-iMXkKC4_uOb0o73wAW71WYi80Dlsg-7a5wiICh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhDbP3KmJc2VjcDI1NmsxoQNvcfKYUqcemLFlpKxl7JcQJwQ3L9unYL44gY2aEiRnI4hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA diff --git a/media/gnosis/config.yaml b/media/gnosis/config.yaml deleted file mode 100644 index 5b542ed1c..000000000 --- a/media/gnosis/config.yaml +++ /dev/null @@ -1,71 +0,0 @@ -# TODO: -# Re-implement the support for custom const presets and load the Gnosis -# const preset properly. Right now, we cannot set this because it will -# result in failures to load the config. -# PRESET_BASE: gnosis -PRESET_BASE: mainnet - -CONFIG_NAME: gnosis - -# Transition -# --------------------------------------------------------------- -# Estimated on Dec 5, 2022 -TERMINAL_TOTAL_DIFFICULTY: 8626000000000000000000058750000000000000000000 - -# Misc -# --------------------------------------------------------------- -# 2**2 (= 4) -MIN_PER_EPOCH_CHURN_LIMIT: 4 -# 2**12 (= 4096) -CHURN_LIMIT_QUOTIENT: 4096 -# `2**12` (= 4096) -MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 4096 -# Dec 08, 2021, 13:00 UTC -MIN_GENESIS_TIME: 1638968400 - -# Validator -# --------------------------------------------------------------- -# 2**10 (= 1024) ~1.4 hour -ETH1_FOLLOW_DISTANCE: 1024 -# 6 (estimate from xDai mainnet) -SECONDS_PER_ETH1_BLOCK: 6 - -# Deposit contract -# --------------------------------------------------------------- -# xDai Mainnet -DEPOSIT_CHAIN_ID: 100 -DEPOSIT_NETWORK_ID: 100 -# GBC deposit contract on xDai Mainnet -DEPOSIT_CONTRACT_ADDRESS: 0x0B98057eA310F4d31F2a452B414647007d1645d9 - -# Gwei values -# --------------------------------------------------------------- -# 2**4 * 10**9 (= 16,000,000,000) Gwei -EJECTION_BALANCE: 16000000000 - -# Initial values -# --------------------------------------------------------------- -# GBC area code -GENESIS_FORK_VERSION: 0x00000064 - -# Time parameters -# --------------------------------------------------------------- -# Customized for GBC: ~1 hour -GENESIS_DELAY: 6000 -# 5 seconds -SECONDS_PER_SLOT: 5 -# 2**8 (= 256) epochs ~8 hours -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -# 2**8 (= 256) epochs ~8 hours -SHARD_COMMITTEE_PERIOD: 256 - -ALTAIR_FORK_VERSION: 0x01000064 -ALTAIR_FORK_EPOCH: 512 - -BELLATRIX_FORK_VERSION: 0x02000064 -BELLATRIX_FORK_EPOCH: 385536 - -INACTIVITY_SCORE_BIAS: 4 -# 2**4 (= 16) -INACTIVITY_SCORE_RECOVERY_RATE: 16 - diff --git a/media/gnosis/deposit_contract_block.txt b/media/gnosis/deposit_contract_block.txt deleted file mode 100644 index 0071371e2..000000000 --- a/media/gnosis/deposit_contract_block.txt +++ /dev/null @@ -1 +0,0 @@ -19469077 diff --git a/media/gnosis/deposit_contract_block_hash.txt b/media/gnosis/deposit_contract_block_hash.txt deleted file mode 100644 index facf4b233..000000000 --- a/media/gnosis/deposit_contract_block_hash.txt +++ /dev/null @@ -1 +0,0 @@ -0x1f4c7aeb763dd18921f4bc597c8da86f35184fac0bb0a7100f8808b698537ba9 diff --git a/media/gnosis/preset.yaml b/media/gnosis/preset.yaml deleted file mode 100644 index c267a7e3a..000000000 --- a/media/gnosis/preset.yaml +++ /dev/null @@ -1,17 +0,0 @@ -PRESET_NAME: gnosis -PRESET_BASE: mainnet - -# Time parameters -# --------------------------------------------------------------- -# 2**4 (= 16) slots 1.87 minutes -SLOTS_PER_EPOCH: 16 - -# Reward and penalty quotients -# --------------------------------------------------------------- -BASE_REWARD_FACTOR: 25 - -# Sync committee -# --------------------------------------------------------------- -# assert EPOCHS_PER_SYNC_COMMITTEE_PERIOD * SLOTS_PER_EPOCH <= SLOTS_PER_HISTORICAL_ROOT -EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 512 - diff --git a/vendor/gnosis-chain-configs b/vendor/gnosis-chain-configs new file mode 160000 index 000000000..7109da331 --- /dev/null +++ b/vendor/gnosis-chain-configs @@ -0,0 +1 @@ +Subproject commit 7109da331bc6aec0d17dacdc9214163b86cd4f24