2024-04-25 12:23:30 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2024-05-31 18:07:20 +00:00
|
|
|
# See https://github.com/sigp/lighthouse/scripts/local_testnet/setup.sh
|
2024-04-25 12:23:30 +00:00
|
|
|
#
|
|
|
|
# Deploys the deposit contract and makes deposits for $VALIDATOR_COUNT insecure deterministic validators.
|
|
|
|
# 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
|
|
|
|
|
|
|
|
rm -rf $DATADIR
|
|
|
|
mkdir -p $DATADIR
|
|
|
|
|
|
|
|
NOW=`date +%s`
|
|
|
|
GENESIS_TIME=`expr $NOW + $GENESIS_DELAY`
|
|
|
|
|
|
|
|
echo "Creating testnet ..."
|
|
|
|
echo "(Note: errors of the form 'WARN: Scrypt parameters are too weak...' below can be safely ignored)"
|
|
|
|
lcli \
|
|
|
|
new-testnet \
|
|
|
|
--spec $SPEC_PRESET \
|
2024-05-01 22:26:22 +00:00
|
|
|
--testnet-dir $TESTNET_DIR \
|
2024-05-31 18:07:20 +00:00
|
|
|
--deposit-contract-address $ETH1_DEPOSIT_CONTRACT_ADDRESS \
|
2024-04-25 12:23:30 +00:00
|
|
|
--min-genesis-active-validator-count $GENESIS_VALIDATOR_COUNT \
|
|
|
|
--validator-count $VALIDATOR_COUNT \
|
|
|
|
--min-genesis-time $GENESIS_TIME \
|
|
|
|
--genesis-delay $GENESIS_DELAY \
|
|
|
|
--genesis-fork-version $GENESIS_FORK_VERSION \
|
|
|
|
--altair-fork-epoch $ALTAIR_FORK_EPOCH \
|
2024-05-31 18:07:20 +00:00
|
|
|
--bellatrix-fork-epoch $BELLATRIX_FORK_EPOCH \
|
|
|
|
--capella-fork-epoch $CAPELLA_FORK_EPOCH \
|
|
|
|
--deneb-fork-epoch $DENEB_FORK_EPOCH \
|
2024-04-25 12:23:30 +00:00
|
|
|
--eth1-id $ETH1_CHAIN_ID \
|
|
|
|
--eth1-block-hash $ETH1_BLOCK_HASH \
|
|
|
|
--eth1-follow-distance 1 \
|
|
|
|
--seconds-per-slot $SECONDS_PER_SLOT \
|
|
|
|
--seconds-per-eth1-block $SECONDS_PER_ETH1_BLOCK \
|
2024-05-31 18:07:20 +00:00
|
|
|
--interop-genesis-state \
|
2024-04-25 12:23:30 +00:00
|
|
|
--force
|
|
|
|
|
2024-08-05 14:06:43 +00:00
|
|
|
# Patch the spec with settings not supported by lcli
|
|
|
|
sed -i "/^SHARD_COMMITTEE_PERIOD:/s/:.*/: $SHARD_COMMITTEE_PERIOD/" $TESTNET_DIR/config.yaml
|
|
|
|
sed -i "/^MIN_VALIDATOR_WITHDRAWABILITY_DELAY:/s/:.*/: $MIN_VALIDATOR_WITHDRAWABILITY_DELAY/" $TESTNET_DIR/config.yaml
|
|
|
|
sed -i "/^MAX_SEED_LOOKAHEAD:/s/:.*/: $MAX_SEED_LOOKAHEAD/" $TESTNET_DIR/config.yaml
|
|
|
|
|
2024-05-31 18:07:20 +00:00
|
|
|
echo Specification and genesis.ssz generated at $TESTNET_DIR.
|
2024-04-25 12:23:30 +00:00
|
|
|
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.
|