#!/bin/bash <<COMMENT Used by Whiteblock for simulated network testing. Based upon: https://github.com/whiteblock/dockerfiles/blob/a31b412d32d0384de12aa8392e43bac32837b6bc/ethereum/interop-example/launch/start.sh Here's an example script used for testing: ./whiteblock_start.sh \ --identity=55c7fc76505ddeb6cf750b1f9f43d6d12c1a53b77ada018a390d7592a7f36dbck \ --peers=/ip4/192.168.0.1/tcp/9000 \ --validator-keys=/tmp/keygen_10_validators.yaml \ --gen-state=/tmp/genesis.ssz \ --port=9008 The example script was run in the target/release directory of lighthouse. The following change was made to this script: YAML_KEY_FILE="/tmp/keygen_10_validators.yaml" COMMENT # Flags IDENTITY="" PEERS="" YAML_KEY_FILE="/tmp/keygen_10_validators.yaml" GEN_STATE="" PORT="8000" # Constants BEACON_LOG_FILE="/tmp/beacon.log" VALIDATOR_LOG_FILE="/tmp/validator.log" usage() { echo "--identity=<hex prepresentation of the priv key for libp2p>" echo "--peers=<peer>" echo "--validator-keys=<path to /launch/keys.yaml>" echo "--gen-state=<path to /launch/state.ssz>" echo "--port=<port>" } while [ "$1" != "" ]; do PARAM=`echo $1 | awk -F= '{print $1}'` VALUE=`echo $1 | sed 's/^[^=]*=//g'` case $PARAM in --identity) IDENTITY=$VALUE ;; --peers) PEERS+=",$VALUE" ;; --validator-keys) VALIDATOR_KEYS=$VALUE ;; --gen-state) GEN_STATE=$VALUE ;; --port) PORT=$VALUE ;; --help) usage exit ;; *) echo "ERROR: unknown parameter \"$PARAM\"" usage exit 1 ;; esac shift done ./lighthouse \ --logfile $BEACON_LOG_FILE \ beacon \ --p2p-priv-key $IDENTITY \ --libp2p-addresses $PEERS \ --port $PORT \ testnet \ --force \ file \ ssz \ $GEN_STATE \ & \ ./lighthouse \ --logfile $VALIDATOR_LOG_FILE \ validator \ testnet \ --bootstrap \ interop-yaml \ $YAML_KEY_FILE \ trap 'trap - SIGTERM && kill 0' SIGINT SIGTERM EXIT