91a7f51ab0
## Issue Addressed N/A ## Proposed Changes Modifies the local testnet scripts to start a network with genesis validators embedded into the genesis state. This allows us to start a local testnet without the need for deploying a deposit contract or depositing validators pre-genesis. This also enables us to start a local test network at any fork we want without going through fork transitions. Also adds scripts to start multiple geth clients and peer them with each other and peer the geth clients with beacon nodes to start a post merge local testnet. ## Additional info Adds a new lcli command `mnemonics-validators` that generates validator directories derived from a given mnemonic. Adds a new `derived-genesis-state` option to the `lcli new-testnet` command to generate a genesis state populated with validators derived from a mnemonic.
52 lines
1.4 KiB
Bash
Executable File
52 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#
|
|
# Produces a testnet specification and a genesis state where the genesis time
|
|
# is now + $GENESIS_DELAY.
|
|
#
|
|
# Generates datadirs for multiple validator keys according to the
|
|
# $VALIDATOR_COUNT and $BN_COUNT variables.
|
|
#
|
|
|
|
set -o nounset -o errexit -o pipefail
|
|
|
|
source ./vars.env
|
|
|
|
|
|
NOW=`date +%s`
|
|
GENESIS_TIME=`expr $NOW + $GENESIS_DELAY`
|
|
|
|
lcli \
|
|
new-testnet \
|
|
--spec $SPEC_PRESET \
|
|
--deposit-contract-address $DEPOSIT_CONTRACT_ADDRESS \
|
|
--testnet-dir $TESTNET_DIR \
|
|
--min-genesis-active-validator-count $GENESIS_VALIDATOR_COUNT \
|
|
--min-genesis-time $GENESIS_TIME \
|
|
--genesis-delay $GENESIS_DELAY \
|
|
--genesis-fork-version $GENESIS_FORK_VERSION \
|
|
--altair-fork-epoch $ALTAIR_FORK_EPOCH \
|
|
--bellatrix-fork-epoch $BELLATRIX_FORK_EPOCH \
|
|
--capella-fork-epoch $CAPELLA_FORK_EPOCH \
|
|
--ttd $TTD \
|
|
--eth1-block-hash $ETH1_BLOCK_HASH \
|
|
--eth1-id $CHAIN_ID \
|
|
--eth1-follow-distance 1 \
|
|
--seconds-per-slot $SECONDS_PER_SLOT \
|
|
--seconds-per-eth1-block $SECONDS_PER_ETH1_BLOCK \
|
|
--proposer-score-boost "$PROPOSER_SCORE_BOOST" \
|
|
--validator-count $GENESIS_VALIDATOR_COUNT \
|
|
--interop-genesis-state \
|
|
--force
|
|
|
|
echo Specification and genesis.ssz generated at $TESTNET_DIR.
|
|
echo "Generating $VALIDATOR_COUNT validators concurrently... (this may take a while)"
|
|
|
|
lcli \
|
|
insecure-validators \
|
|
--count $VALIDATOR_COUNT \
|
|
--base-dir $DATADIR \
|
|
--node-count $BN_COUNT
|
|
|
|
echo Validators generated with keystore passwords at $DATADIR.
|