Gnosis const preset
This commit is contained in:
parent
c01e53e35e
commit
b06502bf65
|
@ -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
|
||||
|
|
11
Makefile
11
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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -1 +0,0 @@
|
|||
19469077
|
|
@ -1 +0,0 @@
|
|||
0x1f4c7aeb763dd18921f4bc597c8da86f35184fac0bb0a7100f8808b698537ba9
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 7109da331bc6aec0d17dacdc9214163b86cd4f24
|
Loading…
Reference in New Issue