forked from cerc-io/stack-orchestrator
3f79c2b811
* Use mounted volumes for data in geth nodes
* Use mounted volumes for data in lighthouse nodes
* Avoid resetting genesis time in a lighthouse node on restart
* Mount parent datadir for lighthouse nodes
* Trap signals on shutdown and clean up in lighthouse nodes
* Allow stalled sync in lighthouse beacon nodes
* Gracefully shutdown geth nodes
* Add clean up instructions
* Gracefully shutdown lighthouse boot node
Former-commit-id: 3130af1615
46 lines
1.2 KiB
Bash
Executable File
46 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# See: https://github.com/sigp/lighthouse/blob/stable/scripts/local_testnet/bootnode.sh
|
|
#
|
|
# Starts a bootnode from the generated enr.
|
|
#
|
|
|
|
set -Eeuo pipefail
|
|
|
|
source ./vars.env
|
|
|
|
DEBUG_LEVEL=${1:-info}
|
|
|
|
echo "Starting bootnode"
|
|
|
|
if [ ! -f "$DATADIR/bootnode/enr.dat" ]; then
|
|
echo "Generating bootnode enr"
|
|
lcli \
|
|
generate-bootnode-enr \
|
|
--ip $ENR_IP \
|
|
--udp-port $BOOTNODE_PORT \
|
|
--tcp-port $BOOTNODE_PORT \
|
|
--genesis-fork-version $GENESIS_FORK_VERSION \
|
|
--output-dir $DATADIR/bootnode-temp
|
|
|
|
# Output ENR to a temp dir and mv as "lcli generate-bootnode-enr" will not overwrite an empty dir (mounted volume)
|
|
mkdir -p $DATADIR/bootnode
|
|
mv $DATADIR/bootnode-temp/* $DATADIR/bootnode
|
|
rm -r $DATADIR/bootnode-temp
|
|
|
|
echo "Generated bootnode enr"
|
|
else
|
|
echo "Found existing bootnode enr"
|
|
fi
|
|
|
|
bootnode_enr=`cat $DATADIR/bootnode/enr.dat`
|
|
echo "- $bootnode_enr" > $TESTNET_DIR/boot_enr.yaml
|
|
echo "Written bootnode enr to $TESTNET_DIR/boot_enr.yaml"
|
|
|
|
exec lighthouse boot_node \
|
|
--testnet-dir $TESTNET_DIR \
|
|
--port $BOOTNODE_PORT \
|
|
--listen-address 0.0.0.0 \
|
|
--disable-packet-filter \
|
|
--network-dir $DATADIR/bootnode \
|