From c246f706696d83dbedcda553c66601b40c81fe23 Mon Sep 17 00:00:00 2001 From: ron Date: Thu, 14 Dec 2023 14:21:35 +0800 Subject: [PATCH] Improve scripts setting up nodes for production --- web/packages/test/scripts/deploy-ethereum.sh | 1 - web/packages/test/scripts/set-env.sh | 2 ++ web/packages/test/scripts/start-beacon.sh | 23 +++++++++++++++ web/packages/test/scripts/start-goerli.sh | 30 -------------------- web/packages/test/scripts/start-nodes.sh | 28 ++++++++++++++++++ 5 files changed, 53 insertions(+), 31 deletions(-) create mode 100755 web/packages/test/scripts/start-beacon.sh delete mode 100755 web/packages/test/scripts/start-goerli.sh create mode 100755 web/packages/test/scripts/start-nodes.sh diff --git a/web/packages/test/scripts/deploy-ethereum.sh b/web/packages/test/scripts/deploy-ethereum.sh index b4b6ed4f99..f125b4f592 100755 --- a/web/packages/test/scripts/deploy-ethereum.sh +++ b/web/packages/test/scripts/deploy-ethereum.sh @@ -65,7 +65,6 @@ start_lodestar() { timestamp=$(date -d'+10second' +%s) fi - local config_dir="$web_dir/packages/test/config" pushd $root_dir/lodestar ./lodestar dev \ --genesisValidators 8 \ diff --git a/web/packages/test/scripts/set-env.sh b/web/packages/test/scripts/set-env.sh index 7113d3011d..e7b353b307 100755 --- a/web/packages/test/scripts/set-env.sh +++ b/web/packages/test/scripts/set-env.sh @@ -2,6 +2,7 @@ root_dir="$(realpath ../../..)" web_dir="$root_dir/web" lodestar_version="${LODESTAR_VER:-1.12.0}" geth_version="${GETH_VER:-v1.13.5}" +config_dir="$web_dir/packages/test/config" export contract_dir="$root_dir/contracts" test_helpers_dir="$web_dir/packages/test-helpers" relay_dir="$root_dir/relayer" @@ -56,6 +57,7 @@ relaychain_ws_url="${RELAYCHAIN_WS_URL:-ws://127.0.0.1:9944}" relaychain_sudo_seed="${RELAYCHAIN_SUDO_SEED:-//Alice}" skip_relayer="${SKIP_RELAYER:-false}" +reset_ethereum="${RESET_ETHEREUM:-true}" ## Important accounts diff --git a/web/packages/test/scripts/start-beacon.sh b/web/packages/test/scripts/start-beacon.sh new file mode 100755 index 0000000000..fb6bb59cb0 --- /dev/null +++ b/web/packages/test/scripts/start-beacon.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -eu + +source scripts/set-env.sh + +if [ -z "${from_start_services:-}" ]; then + echo "start nodes locally!" + trap kill_all SIGINT SIGTERM EXIT + # set true to clean db and start from a new checkpoint + if [ "$reset_ethereum" == "true" ]; then + echo "db reset!" + rm -rf "$ethereum_data_dir" + fi + read -p "Chain: (goerli/sepolia/mainnet): " chain + if [ "$chain" != "goerli" ] && [ "$chain" != "sepolia" ] && [ "$chain" != "mainnet" ]; then + echo "chain type not allowed" + exit + fi + pushd $root_dir/lodestar + ./lodestar beacon --dataDir="$ethereum_data_dir" --network=$chain --execution.engineMock --eth1=false --rest.namespace="*" --chain.archiveStateEpochFrequency=1 --checkpointSyncUrl=https://beaconstate-$chain.chainsafe.io >"$output_dir/lodestar.log" 2>&1 & + popd + wait +fi diff --git a/web/packages/test/scripts/start-goerli.sh b/web/packages/test/scripts/start-goerli.sh deleted file mode 100755 index 4c3ce677b3..0000000000 --- a/web/packages/test/scripts/start-goerli.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -set -eu - -source scripts/set-env.sh - -deploy_goerli() -{ - echo "Starting execution node" - geth --goerli --datadir="$ethereum_data_dir" --authrpc.addr="127.0.0.1" --http.addr="0.0.0.0" --authrpc.vhosts "*" --http.corsdomain "*" --http --http.api web3,eth,net,engine,admin --ws --ws.api eth,net,web3 --authrpc.jwtsecret config/jwtsecret > "$output_dir/geth.log" 2>&1 & - echo "Waiting for geth API to be ready" - sleep 3 - echo "Starting beacon node" - # explicit config max-old-space-size or will be oom - node --max-old-space-size=4096 ../../node_modules/.pnpm/@chainsafe+lodestar@1.8.0_c-kzg@1.1.3_fastify@3.15.1/node_modules/@chainsafe/lodestar/lib/index.js beacon --dataDir="$ethereum_data_dir" --network=goerli --eth1=true --rest.namespace="*" --jwt-secret=./config/jwtsecret --checkpointSyncUrl=https://sync-goerli.beaconcha.in > "$output_dir/lodestar.log" 2>&1 & - echo "Waiting for beacon node to sync from checkpoint" - sleep 3 - echo "Ethereum started!" -} - -if [ -z "${from_start_services:-}" ]; then - echo "start goerli locally!" - trap kill_all SIGINT SIGTERM EXIT - # change to true to rm data dir and start from a new checkpoint - reinitialize="false" - if [ "$reinitialize" == "true" ]; then - rm -rf "$ethereum_data_dir" - fi - deploy_goerli - wait -fi diff --git a/web/packages/test/scripts/start-nodes.sh b/web/packages/test/scripts/start-nodes.sh new file mode 100755 index 0000000000..deb5fc1d50 --- /dev/null +++ b/web/packages/test/scripts/start-nodes.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -eu + +source scripts/set-env.sh + +if [ -z "${from_start_services:-}" ]; then + echo "start nodes locally!" + trap kill_all SIGINT SIGTERM EXIT + # set true to clean db and start from a new checkpoint + if [ "$reset_ethereum" == "true" ]; then + echo "db reset!" + rm -rf "$ethereum_data_dir" + fi + read -p "Chain: (goerli/sepolia/mainnet): " chain + if [ "$chain" != "goerli" ] && [ "$chain" != "sepolia" ] && [ "$chain" != "mainnet" ]; then + echo "chain type not allowed" + exit + fi + echo "Starting execution node" + geth --$chain --datadir="$ethereum_data_dir" --authrpc.addr="127.0.0.1" --http.addr="0.0.0.0" --authrpc.vhosts "*" --http.corsdomain "*" --http --http.api web3,eth,net,engine,admin --ws --ws.api eth,net,web3 --authrpc.jwtsecret config/jwtsecret >"$output_dir/geth.log" 2>&1 & + echo "Waiting for geth API to be ready" + sleep 5 + echo "Starting beacon node" + pushd $root_dir/lodestar + ./lodestar beacon --dataDir="$ethereum_data_dir" --network=$chain --eth1=true --rest.namespace="*" --jwt-secret=$config_dir/jwtsecret --chain.archiveStateEpochFrequency=1 --checkpointSyncUrl=https://beaconstate-$chain.chainsafe.io >"$output_dir/lodestar.log" 2>&1 & + popd + wait +fi