From acfd3371b23aa37f859379d0f662e89c373a7450 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Thu, 2 May 2024 16:54:20 -0500 Subject: [PATCH 1/5] WIP: Back to v1.14 --- .../Dockerfile | 25 +++++++++++++++++++ .../build.sh | 8 ++++++ .../genesis/Makefile | 13 ++++++++++ .../genesis/accounts/import_keys.sh | 17 +++++++++++++ .../genesis/accounts/mnemonic_to_csv.py | 16 ++++++++++++ .../genesis/el/build_el.sh | 16 ++++++++++++ .../genesis/el/el-config.yaml | 17 +++++++++++++ 7 files changed, 112 insertions(+) create mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/Dockerfile create mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/build.sh create mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/Makefile create mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/import_keys.sh create mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/mnemonic_to_csv.py create mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/build_el.sh create mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/el-config.yaml diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/Dockerfile b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/Dockerfile new file mode 100644 index 0000000..870e8c9 --- /dev/null +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/Dockerfile @@ -0,0 +1,25 @@ +FROM ethpandaops/ethereum-genesis-generator:3.0.0 AS ethgen + +FROM golang:1.20-alpine as builder + +RUN apk add --no-cache python3 py3-pip make bash envsubst jq + +# Install ethereum-genesis-generator tools +COPY --from=ethgen /apps /apps +RUN cd /apps/el-gen && pip3 install --break-system-packages -r requirements.txt +RUN pip3 install --break-system-packages --upgrade "web3==v6.15.1" +RUN pip3 install --break-system-packages --upgrade "typing-extensions" + +# Install tool to generate initial block +RUN go install github.com/cerc-io/eth-dump-genblock@b29516740fc01cf1d1d623acbfd0e9a2b6440a96 + +# Build genesis config +COPY genesis /opt/genesis +RUN cd /opt/genesis && make genesis-el + +# Snag the genesis block info. +RUN eth-dump-genblock /opt/genesis/build/el/geth.json > /opt/genesis/build/el/genesis_block.json + +FROM alpine:latest + +COPY --from=builder /opt/genesis /opt/genesis diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/build.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/build.sh new file mode 100755 index 0000000..2316b97 --- /dev/null +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/build.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# Build cerc/fixturenet-eth-genesis-postmerge + +source ${CERC_CONTAINER_BASE_DIR}/build-base.sh + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +docker build -t cerc/fixturenet-eth-genesis-postmerge:local -f ${SCRIPT_DIR}/Dockerfile ${build_command_args} $SCRIPT_DIR diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/Makefile b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/Makefile new file mode 100644 index 0000000..a1eef57 --- /dev/null +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/Makefile @@ -0,0 +1,13 @@ +.PHONY: build +build: genesis + +.PHONY: genesis +genesis: genesis-el + +.PHONY: genesis-el +genesis-el: + cd el; ./build_el.sh + +.PHONY: clean +clean: + rm -rf build diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/import_keys.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/import_keys.sh new file mode 100755 index 0000000..e8dce0e --- /dev/null +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/import_keys.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +ACCOUNT_PASSWORD=${ACCOUNT_PASSWORD:-secret1212} + +for line in `cat ../build/el/accounts.csv`; do + BIP44_PATH="`echo "$line" | cut -d',' -f1`" + ADDRESS="`echo "$line" | cut -d',' -f2`" + PRIVATE_KEY="`echo "$line" | cut -d',' -f3`" + + echo "$ACCOUNT_PASSWORD" > .pw.$$ + echo "$PRIVATE_KEY" | sed 's/0x//' > .key.$$ + + echo "" + echo "$ADDRESS" + geth account import --datadir=~/ethdata --password .pw.$$ .key.$$ + rm -f .pw.$$ .key.$$ +done diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/mnemonic_to_csv.py b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/mnemonic_to_csv.py new file mode 100644 index 0000000..1e6d10f --- /dev/null +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/mnemonic_to_csv.py @@ -0,0 +1,16 @@ +from web3.auto import w3 +import ruamel.yaml as yaml +import sys + +w3.eth.account.enable_unaudited_hdwallet_features() + +testnet_config_path = "genesis-config.yaml" +if len(sys.argv) > 1: + testnet_config_path = sys.argv[1] + +with open(testnet_config_path) as stream: + data = yaml.safe_load(stream) + +for key, value in data['el_premine'].items(): + acct = w3.eth.account.from_mnemonic(data['mnemonic'], account_path=key, passphrase='') + print("%s,%s,%s" % (key, acct.address, acct.key.hex())) diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/build_el.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/build_el.sh new file mode 100755 index 0000000..d7a0ae1 --- /dev/null +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/build_el.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +set -e + +# See: https://github.com/skylenet/ethereum-genesis-generator/blob/master/entrypoint.sh + +rm -rf ../build/el +mkdir -p ../build/el + +tmp_dir=$(mktemp -d -t ci-XXXXXXXXXX) +envsubst < el-config.yaml > $tmp_dir/genesis-config.yaml + +python3 /apps/el-gen/genesis_geth.py $tmp_dir/genesis-config.yaml | \ + jq 'del(.config.pragueTime)' \ + > ../build/el/geth.json + +python3 ../accounts/mnemonic_to_csv.py $tmp_dir/genesis-config.yaml > ../build/el/accounts.csv diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/el-config.yaml b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/el-config.yaml new file mode 100644 index 0000000..a3bfb11 --- /dev/null +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/el-config.yaml @@ -0,0 +1,17 @@ +mnemonic: "viable ketchup woman library opinion copy rhythm attend rose knock penalty practice photo bundle budget dentist enter round bind holiday useful arch danger lobster" +el_premine: + "m/44'/60'/0'/0/0": 10000000ETH + "m/44'/60'/0'/0/1": 10000000ETH + "m/44'/60'/0'/0/2": 10000000ETH + "m/44'/60'/0'/0/3": 10000000ETH + "m/44'/60'/0'/0/4": 10000000ETH + "m/44'/60'/0'/0/5": 10000000ETH +el_premine_addrs: {} +chain_id: 1212 +deposit_contract_address: "0x1212121212121212121212121212121212121212" +genesis_timestamp: 0 +genesis_delay: 0 +deneb_fork_epoch: 0 +# note: only needed as workaround https://github.com/ethpandaops/ethereum-genesis-generator/pull/105 +electra_fork_epoch: 0 +slot_duration_in_seconds: 3 -- 2.45.2 From 7a37199e5c29bad18d9ae8a0b2b5cdbcf23d2fce Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Thu, 2 May 2024 17:09:39 -0500 Subject: [PATCH 2/5] Switch to geth v1.14 --- .../config/fixturenet-eth/fixturenet-eth.env | 5 +- .../Dockerfile | 28 -------- .../build.sh | 8 --- .../genesis/Makefile | 13 ---- .../genesis/accounts/import_keys.sh | 17 ----- .../genesis/accounts/mnemonic_to_csv.py | 16 ----- .../genesis/el/build_el.sh | 40 ----------- .../genesis/el/el-config.yaml | 31 -------- .../cerc-fixturenet-eth-geth/Dockerfile | 4 +- .../cerc-fixturenet-eth-geth/run-el.sh | 70 +++++++++++++++++-- .../cerc-fixturenet-eth-lighthouse/Dockerfile | 12 ++-- .../genesis/cl/beacon_node.sh | 1 - .../genesis/cl/bootnode.sh | 2 - .../genesis/cl/build_cl.sh | 20 ++---- .../genesis/cl/validator_client.sh | 2 - .../genesis/cl/vars.env | 7 +- .../cerc-lighthouse/Dockerfile | 9 +-- .../container-build/cerc-lighthouse/build.sh | 2 +- .../stacks/fixturenet-eth/stack.yml | 2 +- tests/fixturenet-eth-stack/run-test.sh | 6 +- 20 files changed, 98 insertions(+), 197 deletions(-) delete mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/Dockerfile delete mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/build.sh delete mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/Makefile delete mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/import_keys.sh delete mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/mnemonic_to_csv.py delete mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/build_el.sh delete mode 100644 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/el-config.yaml diff --git a/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env b/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env index 2bf489a..695c8fa 100644 --- a/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env +++ b/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env @@ -22,4 +22,7 @@ CERC_STATEDIFF_DB_LOG_STATEMENTS="${CERC_STATEDIFF_DB_LOG_STATEMENTS:-false}" CERC_STATEDIFF_WORKERS=2 CERC_GETH_VMODULE="statediff/*=5,rpc/*=5" -CERC_GETH_VERBOSITY=${CERC_GETH_VERBOSITY:-3} \ No newline at end of file +CERC_GETH_VERBOSITY=${CERC_GETH_VERBOSITY:-3} + +# Used by Lighthouse +SECONDS_PER_ETH1_BLOCK=${SECONDS_PER_ETH1_BLOCK:-3} diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/Dockerfile b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/Dockerfile deleted file mode 100644 index 4fa8d0f..0000000 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -FROM skylenet/ethereum-genesis-generator@sha256:210353ce7c898686bc5092f16c61220a76d357f51eff9c451e9ad1b9ad03d4d3 AS ethgen - -FROM golang:1.20-alpine as builder - -RUN apk add --no-cache python3 py3-pip - -COPY genesis /opt/genesis - -# Install ethereum-genesis-generator tools -COPY --from=ethgen /usr/local/bin/eth2-testnet-genesis /usr/local/bin/ -COPY --from=ethgen /usr/local/bin/eth2-val-tools /usr/local/bin/ -COPY --from=ethgen /apps /apps -RUN cd /apps/el-gen && pip3 install --break-system-packages -r requirements.txt -# web3==5.24.0 used by el-gen is broken on python 3.11 -RUN pip3 install --break-system-packages --upgrade "web3==6.5.0" -RUN pip3 install --break-system-packages --upgrade "typing-extensions" - -# Build genesis config -RUN apk add --no-cache make bash envsubst jq -RUN cd /opt/genesis && make genesis-el - -# Snag the genesis block info. -RUN go install github.com/cerc-io/eth-dump-genblock@latest -RUN eth-dump-genblock /opt/genesis/build/el/geth.json > /opt/genesis/build/el/genesis_block.json - -FROM alpine:latest - -COPY --from=builder /opt/genesis /opt/genesis diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/build.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/build.sh deleted file mode 100755 index dac3676..0000000 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/build.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -# Build cerc/fixturenet-eth-genesis-premerge - -source ${CERC_CONTAINER_BASE_DIR}/build-base.sh - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -docker build -t cerc/fixturenet-eth-genesis-premerge:local -f ${SCRIPT_DIR}/Dockerfile ${build_command_args} $SCRIPT_DIR diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/Makefile b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/Makefile deleted file mode 100644 index a1eef57..0000000 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -.PHONY: build -build: genesis - -.PHONY: genesis -genesis: genesis-el - -.PHONY: genesis-el -genesis-el: - cd el; ./build_el.sh - -.PHONY: clean -clean: - rm -rf build diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/import_keys.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/import_keys.sh deleted file mode 100755 index e8dce0e..0000000 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/import_keys.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -ACCOUNT_PASSWORD=${ACCOUNT_PASSWORD:-secret1212} - -for line in `cat ../build/el/accounts.csv`; do - BIP44_PATH="`echo "$line" | cut -d',' -f1`" - ADDRESS="`echo "$line" | cut -d',' -f2`" - PRIVATE_KEY="`echo "$line" | cut -d',' -f3`" - - echo "$ACCOUNT_PASSWORD" > .pw.$$ - echo "$PRIVATE_KEY" | sed 's/0x//' > .key.$$ - - echo "" - echo "$ADDRESS" - geth account import --datadir=~/ethdata --password .pw.$$ .key.$$ - rm -f .pw.$$ .key.$$ -done diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/mnemonic_to_csv.py b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/mnemonic_to_csv.py deleted file mode 100644 index 1e6d10f..0000000 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/mnemonic_to_csv.py +++ /dev/null @@ -1,16 +0,0 @@ -from web3.auto import w3 -import ruamel.yaml as yaml -import sys - -w3.eth.account.enable_unaudited_hdwallet_features() - -testnet_config_path = "genesis-config.yaml" -if len(sys.argv) > 1: - testnet_config_path = sys.argv[1] - -with open(testnet_config_path) as stream: - data = yaml.safe_load(stream) - -for key, value in data['el_premine'].items(): - acct = w3.eth.account.from_mnemonic(data['mnemonic'], account_path=key, passphrase='') - print("%s,%s,%s" % (key, acct.address, acct.key.hex())) diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/build_el.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/build_el.sh deleted file mode 100755 index 9ff77fa..0000000 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/build_el.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -set -e - -# See: https://github.com/skylenet/ethereum-genesis-generator/blob/master/entrypoint.sh - -rm -rf ../build/el -mkdir -p ../build/el - -tmp_dir=$(mktemp -d -t ci-XXXXXXXXXX) -envsubst < el-config.yaml > $tmp_dir/genesis-config.yaml - -ttd=`cat $tmp_dir/genesis-config.yaml | grep terminal_total_difficulty | awk '{ print $2 }'` -homestead_block=`cat $tmp_dir/genesis-config.yaml | grep homestead_block | awk '{ print $2 }'` -eip150_block=`cat $tmp_dir/genesis-config.yaml | grep eip150_block | awk '{ print $2 }'` -eip155_block=`cat $tmp_dir/genesis-config.yaml | grep eip155_block | awk '{ print $2 }'` -eip158_block=`cat $tmp_dir/genesis-config.yaml | grep eip158_block | awk '{ print $2 }'` -byzantium_block=`cat $tmp_dir/genesis-config.yaml | grep byzantium_block | awk '{ print $2 }'` -constantinople_block=`cat $tmp_dir/genesis-config.yaml | grep constantinople_block | awk '{ print $2 }'` -petersburg_block=`cat $tmp_dir/genesis-config.yaml | grep petersburg_block | awk '{ print $2 }'` -istanbul_block=`cat $tmp_dir/genesis-config.yaml | grep istanbul_block | awk '{ print $2 }'` -berlin_block=`cat $tmp_dir/genesis-config.yaml | grep berlin_block | awk '{ print $2 }'` -london_block=`cat $tmp_dir/genesis-config.yaml | grep london_block | awk '{ print $2 }'` -merge_fork_block=`cat $tmp_dir/genesis-config.yaml | grep merge_fork_block | awk '{ print $2 }'` - -python3 /apps/el-gen/genesis_geth.py $tmp_dir/genesis-config.yaml | \ - jq ".config.terminalTotalDifficulty=$ttd" | \ - jq ".config.homesteadBlock=$homestead_block" | \ - jq ".config.eip150Block=$eip150_block" | \ - jq ".config.eip155Block=$eip155_block" | \ - jq ".config.eip158Block=$eip158_block" | \ - jq ".config.byzantiumBlock=$byzantium_block" | \ - jq ".config.constantinopleBlock=$constantinople_block" | \ - jq ".config.petersburgBlock=$petersburg_block" | \ - jq ".config.istanbulBlock=$istanbul_block" | \ - jq ".config.berlinBlock=$berlin_block" | \ - jq ".config.londonBlock=$london_block" | \ - jq ".config.mergeForkBlock=$merge_fork_block" | \ - jq ".config.mergeNetsplitBlock=$merge_fork_block" \ - > ../build/el/geth.json -python3 ../accounts/mnemonic_to_csv.py $tmp_dir/genesis-config.yaml > ../build/el/accounts.csv diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/el-config.yaml b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/el-config.yaml deleted file mode 100644 index 8bcb0fa..0000000 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/el-config.yaml +++ /dev/null @@ -1,31 +0,0 @@ -mnemonic: "viable ketchup woman library opinion copy rhythm attend rose knock penalty practice photo bundle budget dentist enter round bind holiday useful arch danger lobster" -el_premine: - "m/44'/60'/0'/0/0": 10000000ETH - "m/44'/60'/0'/0/1": 10000000ETH - "m/44'/60'/0'/0/2": 10000000ETH - "m/44'/60'/0'/0/3": 10000000ETH - "m/44'/60'/0'/0/4": 10000000ETH - "m/44'/60'/0'/0/5": 10000000ETH -el_premine_addrs: {} -chain_id: 1212 -deposit_contract_address: "0x1212121212121212121212121212121212121212" -genesis_timestamp: 0 -terminal_total_difficulty: 1000 -homestead_block: 1 -eip150_block: 1 -eip155_block: 1 -eip158_block: 1 -byzantium_block: 1 -constantinople_block: 1 -petersburg_block: 1 -istanbul_block: 1 -berlin_block: 1 -london_block: 1 -merge_fork_block: 1 - -clique: - enabled: false - signers: - - 36d56343bc308d4ffaac2f793d121aba905fa6cc - - 5e762d4a3847cadaf40a4b0c39574b0ff6698c78 - - 15d7acc1019fdf8ab4f0f7bd31ec1487ecb5a2bd diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/Dockerfile b/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/Dockerfile index e904686..3afb524 100644 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/Dockerfile +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/Dockerfile @@ -1,5 +1,5 @@ -FROM cerc/fixturenet-eth-genesis-premerge:local as fnetgen -FROM ethereum/client-go:release-1.11 as geth +FROM cerc/fixturenet-eth-genesis-postmerge:local as fnetgen +FROM ethereum/client-go:release-1.14 as geth # Using the same golang image as used to build geth: https://github.com/cerc-io/go-ethereum/blob/HEAD/Dockerfile FROM golang:1.21-alpine as delve diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh index be35c8b..f84befd 100755 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh @@ -6,7 +6,7 @@ fi ETHERBASE=`cat /opt/testnet/build/el/accounts.csv | head -1 | cut -d',' -f2` NETWORK_ID=`cat /opt/testnet/el/el-config.yaml | grep 'chain_id' | awk '{ print $2 }'` -NETRESTRICT=`ip addr | grep 'inet ' | grep -v '127.0' | head -1 | awk '{print $2}'` +NETRESTRICT=`ip addr | grep -w inet | grep -v '127.0' | awk '{print $2}'` CERC_ETH_DATADIR="${CERC_ETH_DATADIR:-$HOME/ethdata}" CERC_PLUGINS_DIR="${CERC_PLUGINS_DIR:-/usr/local/lib/plugeth}" @@ -50,6 +50,65 @@ else echo -n "$JWT" > /opt/testnet/build/el/jwtsecret + if [ "$CERC_RUN_STATEDIFF" == "detect" ] && [ -n "$CERC_STATEDIFF_DB_HOST" ]; then + dig_result=$(dig $CERC_STATEDIFF_DB_HOST +short) + dig_status_code=$? + if [[ $dig_status_code = 0 && -n $dig_result ]]; then + echo "Statediff DB at $CERC_STATEDIFF_DB_HOST" + CERC_RUN_STATEDIFF="true" + else + echo "No statediff DB available." + CERC_RUN_STATEDIFF="false" + fi + fi + + STATEDIFF_OPTS="" + if [ "$CERC_RUN_STATEDIFF" == "true" ]; then + ready=0 + echo "Waiting for statediff DB..." + while [ $ready -eq 0 ]; do + sleep 1 + export PGPASSWORD="$CERC_STATEDIFF_DB_PASSWORD" + result=$(psql -h "$CERC_STATEDIFF_DB_HOST" \ + -p "$CERC_STATEDIFF_DB_PORT" \ + -U "$CERC_STATEDIFF_DB_USER" \ + -d "$CERC_STATEDIFF_DB_NAME" \ + -t -c 'select max(version_id) from goose_db_version;' 2>/dev/null | awk '{ print $1 }') + if [ -n "$result" ]; then + echo "DB ready..." + if [ $result -ge $CERC_STATEDIFF_DB_GOOSE_MIN_VER ]; then + ready=1 + else + echo "DB not at required version (want $CERC_STATEDIFF_DB_GOOSE_MIN_VER, have $result)" + fi + fi + done + STATEDIFF_OPTS="--statediff \ + --statediff.db.host=$CERC_STATEDIFF_DB_HOST \ + --statediff.db.name=$CERC_STATEDIFF_DB_NAME \ + --statediff.db.nodeid=$CERC_STATEDIFF_DB_NODE_ID \ + --statediff.db.password=$CERC_STATEDIFF_DB_PASSWORD \ + --statediff.db.port=$CERC_STATEDIFF_DB_PORT \ + --statediff.db.user=$CERC_STATEDIFF_DB_USER \ + --statediff.db.logstatements=${CERC_STATEDIFF_DB_LOG_STATEMENTS:-false} \ + --statediff.db.copyfrom=${CERC_STATEDIFF_DB_COPY_FROM:-true} \ + --statediff.waitforsync=true \ + --statediff.workers=${CERC_STATEDIFF_WORKERS:-1} \ + --statediff.writing=true" + + if [ -d "${CERC_PLUGINS_DIR}" ]; then + # With plugeth, we separate the statediff options by prefixing with ' -- ' + STATEDIFF_OPTS="--pluginsdir "${CERC_PLUGINS_DIR}" -- ${STATEDIFF_OPTS}" + fi + fi + + OTHER_OPTS="" + # miner options were removed in v1.12 + GETH_VERSION=$(geth --version | grep -io '[0-9][0-9a-z.-]*') + if echo -e "$GETH_VERSION\n1.12" | sort -Vc; then + OTHER_OPTS="--miner.threads=1" + fi + $START_CMD \ --datadir="${CERC_ETH_DATADIR}" \ --bootnodes="${ENODE}" \ @@ -57,7 +116,7 @@ else --http \ --http.addr="0.0.0.0" \ --http.vhosts="*" \ - --http.api="${CERC_GETH_HTTP_APIS:-eth,web3,net,admin,personal,debug}" \ + --http.api="${CERC_GETH_HTTP_APIS:-eth,web3,net,admin,personal,debug,statediff}" \ --http.corsdomain="*" \ --authrpc.addr="0.0.0.0" \ --authrpc.vhosts="*" \ @@ -65,7 +124,7 @@ else --ws \ --ws.addr="0.0.0.0" \ --ws.origins="*" \ - --ws.api="${CERC_GETH_WS_APIS:-eth,web3,net,admin,personal,debug}" \ + --ws.api="${CERC_GETH_WS_APIS:-eth,web3,net,admin,personal,debug,statediff}" \ --http.corsdomain="*" \ --networkid="${NETWORK_ID}" \ --netrestrict="${NETRESTRICT}" \ @@ -74,12 +133,13 @@ else --cache.preimages \ --syncmode=full \ --mine \ - --miner.threads=1 \ --metrics \ --metrics.addr="0.0.0.0" \ --verbosity=${CERC_GETH_VERBOSITY:-3} \ - --log.vmodule="${CERC_GETH_VMODULE}" \ + --log.vmodule="${CERC_GETH_VMODULE:-statediff/*=5}" \ --miner.etherbase="${ETHERBASE}" \ + ${OTHER_OPTS} \ + ${STATEDIFF_OPTS} \ & geth_pid=$! diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/Dockerfile b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/Dockerfile index 090c49f..3e91363 100644 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/Dockerfile +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/Dockerfile @@ -1,6 +1,5 @@ FROM cerc/lighthouse-cli:local AS lcli -FROM skylenet/ethereum-genesis-generator@sha256:210353ce7c898686bc5092f16c61220a76d357f51eff9c451e9ad1b9ad03d4d3 AS ethgen -FROM cerc/fixturenet-eth-genesis-premerge:local AS fnetgen +FROM cerc/fixturenet-eth-genesis-postmerge:local AS fnetgen FROM cerc/lighthouse:local @@ -12,16 +11,13 @@ RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-reco && apt-get clean \ && rm -rf /var/lib/apt/lists/* -COPY genesis /opt/testnet -COPY run-cl.sh /opt/testnet/run.sh - COPY --from=lcli /usr/local/bin/lcli /usr/local/bin/lcli -COPY --from=ethgen /usr/local/bin/eth2-testnet-genesis /usr/local/bin/eth2-testnet-genesis -COPY --from=ethgen /usr/local/bin/eth2-val-tools /usr/local/bin/eth2-val-tools -COPY --from=ethgen /apps /apps COPY --from=fnetgen /opt/genesis/el /opt/testnet/el COPY --from=fnetgen /opt/genesis/build/el /opt/testnet/build/el +COPY genesis /opt/testnet +COPY run-cl.sh /opt/testnet/run.sh + RUN cd /opt/testnet && make genesis-cl # Work around some bugs in lcli where the default path is always used. diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/beacon_node.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/beacon_node.sh index 1f90615..7e92f49 100755 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/beacon_node.sh +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/beacon_node.sh @@ -10,7 +10,6 @@ set -Eeuo pipefail source ./vars.env SUBSCRIBE_ALL_SUBNETS= -DEBUG_LEVEL=${DEBUG_LEVEL:-debug} # Get positional arguments data_dir=$DATADIR/node_${NODE_NUMBER} diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/bootnode.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/bootnode.sh index bda3b78..15aee6e 100755 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/bootnode.sh +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/bootnode.sh @@ -9,8 +9,6 @@ set -Eeuo pipefail source ./vars.env -DEBUG_LEVEL=${1:-info} - echo "Starting bootnode" # Clean up existing ENR dir to avoid node connectivity issues on a restart diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/build_cl.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/build_cl.sh index 50b3e4e..5157b38 100755 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/build_cl.sh +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/build_cl.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash +# See https://github.com/sigp/lighthouse/scripts/local_testnet/setup.sh # # 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 @@ -24,23 +25,26 @@ echo "(Note: errors of the form 'WARN: Scrypt parameters are too weak...' below lcli \ new-testnet \ --spec $SPEC_PRESET \ - --deposit-contract-address $ETH1_DEPOSIT_CONTRACT_ADDRESS \ --testnet-dir $TESTNET_DIR \ + --deposit-contract-address $ETH1_DEPOSIT_CONTRACT_ADDRESS \ --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 \ - --bellatrix-fork-epoch $MERGE_FORK_EPOCH \ + --bellatrix-fork-epoch $BELLATRIX_FORK_EPOCH \ + --capella-fork-epoch $CAPELLA_FORK_EPOCH \ + --deneb-fork-epoch $DENEB_FORK_EPOCH \ --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 \ + --interop-genesis-state \ --force -echo Specification generated at $TESTNET_DIR. +echo Specification and genesis.ssz generated at $TESTNET_DIR. echo "Generating $VALIDATOR_COUNT validators concurrently... (this may take a while)" lcli \ @@ -50,13 +54,3 @@ lcli \ --node-count $BN_COUNT echo Validators generated with keystore passwords at $DATADIR. -echo "Building genesis state... (this might take a while)" - -lcli \ - interop-genesis \ - --spec $SPEC_PRESET \ - --genesis-time $GENESIS_TIME \ - --testnet-dir $TESTNET_DIR \ - $GENESIS_VALIDATOR_COUNT - -echo Created genesis state in $TESTNET_DIR diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/validator_client.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/validator_client.sh index 30168f8..2c65e74 100755 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/validator_client.sh +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/validator_client.sh @@ -8,8 +8,6 @@ set -Eeuo pipefail source ./vars.env -DEBUG_LEVEL=info - BUILDER_PROPOSALS= # Get options diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env index 081f8f7..83780b2 100644 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env @@ -25,7 +25,9 @@ BOOTNODE_PORT=${BOOTNODE_PORT:-4242} # Hard fork configuration ALTAIR_FORK_EPOCH=${ALTAIR_FORK_EPOCH:-0} -MERGE_FORK_EPOCH=${MERGE_FORK_EPOCH:-0} +BELLATRIX_FORK_EPOCH=${BELLATRIX_FORK_EPOCH:-0} +CAPELLA_FORK_EPOCH=${CAPELLA_FORK_EPOCH:-0} +DENEB_FORK_EPOCH=${DENEB_FORK_EPOCH:-0} # Spec version (mainnet or minimal) SPEC_PRESET=${SPEC_PRESET:-mainnet} @@ -51,3 +53,6 @@ ETH1_TTD=${ETH1_TTD:-`cat $ETH1_GENESIS_JSON | jq -r '.config.terminalTotalDiffi ETH1_DEPOSIT_CONTRACT_ADDRESS=${ETH1_DEPOSIT_CONTRACT_ADDRESS:-`cat $ETH1_CONFIG_YAML | grep 'deposit_contract_address' | awk '{ print $2 }' | sed 's/"//g'`} ETH1_DEPOSIT_CONTRACT_BLOCK=${ETH1_DEPOSIT_CONTRACT_BLOCK:-0x0} SUGGESTED_FEE_RECIPIENT=`cat ../build/el/accounts.csv | head -1 | cut -d',' -f2` + +# --debug-level +DEBUG_LEVEL=${LIGHTHOUSE_DEBUG_LEVEL:-debug} diff --git a/stack-orchestrator/container-build/cerc-lighthouse/Dockerfile b/stack-orchestrator/container-build/cerc-lighthouse/Dockerfile index a5559f6..de32150 100644 --- a/stack-orchestrator/container-build/cerc-lighthouse/Dockerfile +++ b/stack-orchestrator/container-build/cerc-lighthouse/Dockerfile @@ -1,9 +1,10 @@ -ARG TAG_SUFFIX="-modern" -FROM sigp/lighthouse:v4.3.0${TAG_SUFFIX} +FROM sigp/lighthouse:v5.1.2 -RUN apt-get update; apt-get install bash netcat curl less jq wget -y; +RUN apt-get update && apt-get -y upgrade \ + && apt-get -y install bash netcat curl less jq wget \ + && apt-get clean && rm -rf /var/lib/apt/lists/* -WORKDIR /root/ +WORKDIR /root ADD start-lighthouse.sh . ENTRYPOINT [ "./start-lighthouse.sh" ] diff --git a/stack-orchestrator/container-build/cerc-lighthouse/build.sh b/stack-orchestrator/container-build/cerc-lighthouse/build.sh index cdc9561..2e9cfe3 100755 --- a/stack-orchestrator/container-build/cerc-lighthouse/build.sh +++ b/stack-orchestrator/container-build/cerc-lighthouse/build.sh @@ -6,4 +6,4 @@ source ${CERC_CONTAINER_BASE_DIR}/build-base.sh # See: https://stackoverflow.com/a/246128/1701505 SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -docker build -t cerc/lighthouse:local ${build_command_args} --build-arg TAG_SUFFIX="" ${SCRIPT_DIR} +docker build -t cerc/lighthouse:local ${build_command_args} ${SCRIPT_DIR} diff --git a/stack-orchestrator/stacks/fixturenet-eth/stack.yml b/stack-orchestrator/stacks/fixturenet-eth/stack.yml index e26b3b9..d36a6c9 100644 --- a/stack-orchestrator/stacks/fixturenet-eth/stack.yml +++ b/stack-orchestrator/stacks/fixturenet-eth/stack.yml @@ -6,7 +6,7 @@ repos: containers: - cerc/lighthouse - cerc/lighthouse-cli - - cerc/fixturenet-eth-genesis-premerge + - cerc/fixturenet-eth-genesis-postmerge - cerc/fixturenet-eth-geth - cerc/fixturenet-eth-lighthouse pods: diff --git a/tests/fixturenet-eth-stack/run-test.sh b/tests/fixturenet-eth-stack/run-test.sh index 99ac163..9db9d3f 100755 --- a/tests/fixturenet-eth-stack/run-test.sh +++ b/tests/fixturenet-eth-stack/run-test.sh @@ -69,7 +69,7 @@ initial_block_number=0 while [ "$initial_block_number" -eq 0 ] && [ $elapsed_time -lt $timeout ]; do sleep 10 log_info "Waiting for initial block..." - initial_block_number=$($SO_COMMAND deployment --dir $test_deployment_dir exec foundry "cast block-number") + initial_block_number=$($SO_COMMAND --stack fixturenet-eth deploy exec foundry "cast block-number") current_time=$(date +%s) elapsed_time=$((current_time - start_time)) done @@ -86,7 +86,7 @@ if [[ $initial_block_number -gt 0 ]]; then while [ "$subsequent_block_number" -le $((initial_block_number + 5)) ] && [ $elapsed_time -lt $timeout ]; do sleep 10 log_info "Waiting for five blocks or $timeout seconds..." - subsequent_block_number=$($SO_COMMAND deployment --dir $test_deployment_dir exec foundry "cast block-number") + subsequent_block_number=$($SO_COMMAND --stack fixturenet-eth deploy exec foundry "cast block-number") current_time=$(date +%s) elapsed_time=$((current_time - start_time)) done @@ -106,7 +106,7 @@ if [[ $block_number_difference -gt 1 && $block_number_difference -lt 100 ]]; the else echo "Test failed: block numbers were ${initial_block_number} and ${subsequent_block_number}" echo "Logs from stack:" - $SO_COMMAND deployment --dir $test_deployment_dir logs + $SO_COMMAND --stack fixturenet-eth deploy logs test_result=1 fi $SO_COMMAND deployment --dir $test_deployment_dir stop --delete-volumes -- 2.45.2 From 5db65e76d4f52d43f53badfc11859dcb725671bd Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Thu, 2 May 2024 17:14:25 -0500 Subject: [PATCH 3/5] No statediff --- .../compose/docker-compose-fixturenet-eth.yml | 2 - .../config/fixturenet-eth/fixturenet-eth.env | 12 +--- .../cerc-fixturenet-eth-geth/run-el.sh | 66 +------------------ .../stacks/fixturenet-eth/README.md | 54 --------------- 4 files changed, 4 insertions(+), 130 deletions(-) diff --git a/stack-orchestrator/compose/docker-compose-fixturenet-eth.yml b/stack-orchestrator/compose/docker-compose-fixturenet-eth.yml index 4608a2a..c4ba80d 100644 --- a/stack-orchestrator/compose/docker-compose-fixturenet-eth.yml +++ b/stack-orchestrator/compose/docker-compose-fixturenet-eth.yml @@ -22,8 +22,6 @@ services: - SYS_PTRACE environment: CERC_REMOTE_DEBUG: ${CERC_REMOTE_DEBUG:-true} - CERC_RUN_STATEDIFF: ${CERC_RUN_STATEDIFF:-detect} - CERC_STATEDIFF_DB_NODE_ID: 1 CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} env_file: - ../config/fixturenet-eth/fixturenet-eth.env diff --git a/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env b/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env index 695c8fa..9943882 100644 --- a/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env +++ b/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env @@ -11,17 +11,7 @@ JWT="0x6cdcac3501046a08e186730dd8bd136cfaf0fdc1fc955f6e15ad3068c0ff2af0" # URL to download the ENR of the lighthouse bootnode (generated at first start). ENR_URL="http://fixturenet-eth-bootnode-lighthouse:3000/bootnode/enr.dat" -# DB connection settings for statediffing (see docker-compose-db.yml) -CERC_STATEDIFF_DB_HOST="ipld-eth-db" -CERC_STATEDIFF_DB_PORT=5432 -CERC_STATEDIFF_DB_NAME="cerc_testing" -CERC_STATEDIFF_DB_USER="vdbm" -CERC_STATEDIFF_DB_PASSWORD="password" -CERC_STATEDIFF_DB_GOOSE_MIN_VER=${CERC_STATEDIFF_DB_GOOSE_MIN_VER:-18} -CERC_STATEDIFF_DB_LOG_STATEMENTS="${CERC_STATEDIFF_DB_LOG_STATEMENTS:-false}" -CERC_STATEDIFF_WORKERS=2 - -CERC_GETH_VMODULE="statediff/*=5,rpc/*=5" +CERC_GETH_VMODULE="rpc/*=5" CERC_GETH_VERBOSITY=${CERC_GETH_VERBOSITY:-3} # Used by Lighthouse diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh b/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh index f84befd..d45e144 100755 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-geth/run-el.sh @@ -50,65 +50,6 @@ else echo -n "$JWT" > /opt/testnet/build/el/jwtsecret - if [ "$CERC_RUN_STATEDIFF" == "detect" ] && [ -n "$CERC_STATEDIFF_DB_HOST" ]; then - dig_result=$(dig $CERC_STATEDIFF_DB_HOST +short) - dig_status_code=$? - if [[ $dig_status_code = 0 && -n $dig_result ]]; then - echo "Statediff DB at $CERC_STATEDIFF_DB_HOST" - CERC_RUN_STATEDIFF="true" - else - echo "No statediff DB available." - CERC_RUN_STATEDIFF="false" - fi - fi - - STATEDIFF_OPTS="" - if [ "$CERC_RUN_STATEDIFF" == "true" ]; then - ready=0 - echo "Waiting for statediff DB..." - while [ $ready -eq 0 ]; do - sleep 1 - export PGPASSWORD="$CERC_STATEDIFF_DB_PASSWORD" - result=$(psql -h "$CERC_STATEDIFF_DB_HOST" \ - -p "$CERC_STATEDIFF_DB_PORT" \ - -U "$CERC_STATEDIFF_DB_USER" \ - -d "$CERC_STATEDIFF_DB_NAME" \ - -t -c 'select max(version_id) from goose_db_version;' 2>/dev/null | awk '{ print $1 }') - if [ -n "$result" ]; then - echo "DB ready..." - if [ $result -ge $CERC_STATEDIFF_DB_GOOSE_MIN_VER ]; then - ready=1 - else - echo "DB not at required version (want $CERC_STATEDIFF_DB_GOOSE_MIN_VER, have $result)" - fi - fi - done - STATEDIFF_OPTS="--statediff \ - --statediff.db.host=$CERC_STATEDIFF_DB_HOST \ - --statediff.db.name=$CERC_STATEDIFF_DB_NAME \ - --statediff.db.nodeid=$CERC_STATEDIFF_DB_NODE_ID \ - --statediff.db.password=$CERC_STATEDIFF_DB_PASSWORD \ - --statediff.db.port=$CERC_STATEDIFF_DB_PORT \ - --statediff.db.user=$CERC_STATEDIFF_DB_USER \ - --statediff.db.logstatements=${CERC_STATEDIFF_DB_LOG_STATEMENTS:-false} \ - --statediff.db.copyfrom=${CERC_STATEDIFF_DB_COPY_FROM:-true} \ - --statediff.waitforsync=true \ - --statediff.workers=${CERC_STATEDIFF_WORKERS:-1} \ - --statediff.writing=true" - - if [ -d "${CERC_PLUGINS_DIR}" ]; then - # With plugeth, we separate the statediff options by prefixing with ' -- ' - STATEDIFF_OPTS="--pluginsdir "${CERC_PLUGINS_DIR}" -- ${STATEDIFF_OPTS}" - fi - fi - - OTHER_OPTS="" - # miner options were removed in v1.12 - GETH_VERSION=$(geth --version | grep -io '[0-9][0-9a-z.-]*') - if echo -e "$GETH_VERSION\n1.12" | sort -Vc; then - OTHER_OPTS="--miner.threads=1" - fi - $START_CMD \ --datadir="${CERC_ETH_DATADIR}" \ --bootnodes="${ENODE}" \ @@ -116,7 +57,7 @@ else --http \ --http.addr="0.0.0.0" \ --http.vhosts="*" \ - --http.api="${CERC_GETH_HTTP_APIS:-eth,web3,net,admin,personal,debug,statediff}" \ + --http.api="${CERC_GETH_HTTP_APIS:-eth,web3,net,admin,personal,debug}" \ --http.corsdomain="*" \ --authrpc.addr="0.0.0.0" \ --authrpc.vhosts="*" \ @@ -124,7 +65,7 @@ else --ws \ --ws.addr="0.0.0.0" \ --ws.origins="*" \ - --ws.api="${CERC_GETH_WS_APIS:-eth,web3,net,admin,personal,debug,statediff}" \ + --ws.api="${CERC_GETH_WS_APIS:-eth,web3,net,admin,personal,debug}" \ --http.corsdomain="*" \ --networkid="${NETWORK_ID}" \ --netrestrict="${NETRESTRICT}" \ @@ -136,10 +77,9 @@ else --metrics \ --metrics.addr="0.0.0.0" \ --verbosity=${CERC_GETH_VERBOSITY:-3} \ - --log.vmodule="${CERC_GETH_VMODULE:-statediff/*=5}" \ + --log.vmodule="${CERC_GETH_VMODULE}" \ --miner.etherbase="${ETHERBASE}" \ ${OTHER_OPTS} \ - ${STATEDIFF_OPTS} \ & geth_pid=$! diff --git a/stack-orchestrator/stacks/fixturenet-eth/README.md b/stack-orchestrator/stacks/fixturenet-eth/README.md index 398b8b3..0ee926f 100644 --- a/stack-orchestrator/stacks/fixturenet-eth/README.md +++ b/stack-orchestrator/stacks/fixturenet-eth/README.md @@ -59,60 +59,6 @@ $ laconic-so --stack ~/cerc/fixturenet-eth-stacks/stacks/fixturenet-eth deploy e 3 ``` -## Additional pieces - -Several other containers can used with the basic `fixturenet-eth`: - -* `ipld-eth-db` (enables statediffing) -* `ipld-eth-server` (GQL and Ethereum API server, requires `ipld-eth-db`) -* `ipld-eth-beacon-db` and `ipld-eth-beacon-indexer` (for indexing Beacon chain blocks) -* `eth-probe` (captures eth1 tx gossip) -* `keycloak` (nginx proxy with keycloak auth for API authentication) -* `tx-spammer` (generates and sends automated transactions to the fixturenet) - -It is not necessary to use them all at once, but a complete example follows: - -``` -# Setup -$ laconic-so setup-repositories --include git.vdb.to/cerc-io/go-ethereum,git.vdb.to/cerc-io/ipld-eth-db,git.vdb.to/cerc-io/ipld-eth-server,github.com/cerc-io/ipld-eth-beacon-db,github.com/cerc-io/ipld-eth-beacon-indexer,github.com/cerc-io/eth-probe,git.vdb.to/cerc-io/tx-spammer - -# Build -$ laconic-so build-containers --include cerc/go-ethereum,cerc/lighthouse,cerc/fixturenet-eth-geth,cerc/fixturenet-eth-lighthouse,cerc/ipld-eth-db,cerc/ipld-eth-server,cerc/ipld-eth-beacon-db,cerc/ipld-eth-beacon-indexer,cerc/eth-probe,cerc/keycloak,cerc/tx-spammer - -# Deploy -$ laconic-so deploy-system --include db,fixturenet-eth,ipld-eth-server,ipld-eth-beacon-db,ipld-eth-beacon-indexer,eth-probe,keycloak,tx-spammer up - -# Status - -$ container-build/cerc-fixturenet-eth-lighthouse/scripts/status.sh -Waiting for geth to generate DAG.... done -Waiting for beacon phase0.... done -Waiting for beacon altair.... done -Waiting for beacon bellatrix pre-merge.... done -Waiting for beacon bellatrix merge.... done - -$ docker ps -f 'name=laconic' --format 'table {{.Names}}\t{{.Ports}}' | cut -d'-' -f3- | sort -NAMES PORTS -eth-probe-db-1 0.0.0.0:55849->5432/tcp -eth-probe-mq-1 -eth-probe-probe-1 -fixturenet-eth-bootnode-geth-1 8545-8546/tcp, 30303/udp, 0.0.0.0:55847->9898/tcp, 0.0.0.0:55848->30303/tcp -fixturenet-eth-bootnode-lighthouse-1 -fixturenet-eth-geth-1-1 8546/tcp, 30303/tcp, 30303/udp, 0.0.0.0:55851->8545/tcp -fixturenet-eth-geth-2-1 8545-8546/tcp, 30303/tcp, 30303/udp -fixturenet-eth-lighthouse-1-1 0.0.0.0:55858->8001/tcp -fixturenet-eth-lighthouse-2-1 -ipld-eth-beacon-db-1 127.0.0.1:8076->5432/tcp -ipld-eth-beacon-indexer-1 -ipld-eth-db-1 127.0.0.1:8077->5432/tcp -ipld-eth-server-1 127.0.0.1:8081-8082->8081-8082/tcp -keycloak-1 8443/tcp, 0.0.0.0:55857->8080/tcp -keycloak-db-1 0.0.0.0:55850->5432/tcp -keycloak-nginx-1 0.0.0.0:55859->80/tcp -migrations-1 -tx-spammer-1 -``` - ## Clean up Stop all services running in the background: -- 2.45.2 From 43843e6c0216b3967e6ed90d687e4e883ca3a332 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Thu, 2 May 2024 23:06:10 -0500 Subject: [PATCH 4/5] Fix test script --- tests/fixturenet-eth-stack/run-test.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/fixturenet-eth-stack/run-test.sh b/tests/fixturenet-eth-stack/run-test.sh index 9db9d3f..99ac163 100755 --- a/tests/fixturenet-eth-stack/run-test.sh +++ b/tests/fixturenet-eth-stack/run-test.sh @@ -69,7 +69,7 @@ initial_block_number=0 while [ "$initial_block_number" -eq 0 ] && [ $elapsed_time -lt $timeout ]; do sleep 10 log_info "Waiting for initial block..." - initial_block_number=$($SO_COMMAND --stack fixturenet-eth deploy exec foundry "cast block-number") + initial_block_number=$($SO_COMMAND deployment --dir $test_deployment_dir exec foundry "cast block-number") current_time=$(date +%s) elapsed_time=$((current_time - start_time)) done @@ -86,7 +86,7 @@ if [[ $initial_block_number -gt 0 ]]; then while [ "$subsequent_block_number" -le $((initial_block_number + 5)) ] && [ $elapsed_time -lt $timeout ]; do sleep 10 log_info "Waiting for five blocks or $timeout seconds..." - subsequent_block_number=$($SO_COMMAND --stack fixturenet-eth deploy exec foundry "cast block-number") + subsequent_block_number=$($SO_COMMAND deployment --dir $test_deployment_dir exec foundry "cast block-number") current_time=$(date +%s) elapsed_time=$((current_time - start_time)) done @@ -106,7 +106,7 @@ if [[ $block_number_difference -gt 1 && $block_number_difference -lt 100 ]]; the else echo "Test failed: block numbers were ${initial_block_number} and ${subsequent_block_number}" echo "Logs from stack:" - $SO_COMMAND --stack fixturenet-eth deploy logs + $SO_COMMAND deployment --dir $test_deployment_dir logs test_result=1 fi $SO_COMMAND deployment --dir $test_deployment_dir stop --delete-volumes -- 2.45.2 From 8fbea1cdf379166b00d3f8270d29fcf2c3446a9c Mon Sep 17 00:00:00 2001 From: David Boreham Date: Wed, 22 May 2024 06:21:04 -0600 Subject: [PATCH 5/5] Reduce lighthouse log level to info --- .../cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env index 83780b2..d7eda59 100644 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-lighthouse/genesis/cl/vars.env @@ -55,4 +55,4 @@ ETH1_DEPOSIT_CONTRACT_BLOCK=${ETH1_DEPOSIT_CONTRACT_BLOCK:-0x0} SUGGESTED_FEE_RECIPIENT=`cat ../build/el/accounts.csv | head -1 | cut -d',' -f2` # --debug-level -DEBUG_LEVEL=${LIGHTHOUSE_DEBUG_LEVEL:-debug} +DEBUG_LEVEL=${LIGHTHOUSE_DEBUG_LEVEL:-info} -- 2.45.2