From 99ea065389d70b08dcdc1d2060aa0b6f4ab97d10 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Fri, 31 May 2024 18:07:20 +0000 Subject: [PATCH] Use geth v1.14 (#7) Co-authored-by: David Boreham Reviewed-on: https://git.vdb.to/cerc-io/fixturenet-eth-stacks/pulls/7 --- .../compose/docker-compose-fixturenet-eth.yml | 2 - .../config/fixturenet-eth/fixturenet-eth.env | 15 ++---- .../Dockerfile | 17 +++--- .../build.sh | 8 +++ .../genesis/Makefile | 0 .../genesis/accounts/import_keys.sh | 0 .../genesis/accounts/mnemonic_to_csv.py | 0 .../genesis/el/build_el.sh | 16 ++++++ .../genesis/el/el-config.yaml | 24 ++------- .../build.sh | 8 --- .../genesis/el/build_el.sh | 40 -------------- .../cerc-fixturenet-eth-geth/Dockerfile | 4 +- .../cerc-fixturenet-eth-geth/run-el.sh | 4 +- .../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/README.md | 54 ------------------- .../stacks/fixturenet-eth/stack.yml | 2 +- 23 files changed, 68 insertions(+), 181 deletions(-) rename stack-orchestrator/container-build/{cerc-fixturenet-eth-genesis-premerge => cerc-fixturenet-eth-genesis-postmerge}/Dockerfile (51%) create mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/build.sh rename stack-orchestrator/container-build/{cerc-fixturenet-eth-genesis-premerge => cerc-fixturenet-eth-genesis-postmerge}/genesis/Makefile (100%) rename stack-orchestrator/container-build/{cerc-fixturenet-eth-genesis-premerge => cerc-fixturenet-eth-genesis-postmerge}/genesis/accounts/import_keys.sh (100%) rename stack-orchestrator/container-build/{cerc-fixturenet-eth-genesis-premerge => cerc-fixturenet-eth-genesis-postmerge}/genesis/accounts/mnemonic_to_csv.py (100%) create mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/build_el.sh rename stack-orchestrator/container-build/{cerc-fixturenet-eth-genesis-premerge => cerc-fixturenet-eth-genesis-postmerge}/genesis/el/el-config.yaml (55%) delete mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/build.sh delete mode 100755 stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/build_el.sh diff --git a/stack-orchestrator/compose/docker-compose-fixturenet-eth.yml b/stack-orchestrator/compose/docker-compose-fixturenet-eth.yml index bd25c52..40eacbd 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 2bf489a..9943882 100644 --- a/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env +++ b/stack-orchestrator/config/fixturenet-eth/fixturenet-eth.env @@ -11,15 +11,8 @@ 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="rpc/*=5" +CERC_GETH_VERBOSITY=${CERC_GETH_VERBOSITY:-3} -CERC_GETH_VMODULE="statediff/*=5,rpc/*=5" -CERC_GETH_VERBOSITY=${CERC_GETH_VERBOSITY:-3} \ No newline at end of file +# 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-postmerge/Dockerfile similarity index 51% rename from stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/Dockerfile rename to stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/Dockerfile index 4fa8d0f..870e8c9 100644 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/Dockerfile +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/Dockerfile @@ -1,26 +1,23 @@ -FROM skylenet/ethereum-genesis-generator@sha256:210353ce7c898686bc5092f16c61220a76d357f51eff9c451e9ad1b9ad03d4d3 AS ethgen +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 - -COPY genesis /opt/genesis +RUN apk add --no-cache python3 py3-pip make bash envsubst jq # 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 "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 -RUN apk add --no-cache make bash envsubst jq +COPY genesis /opt/genesis 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 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-premerge/genesis/Makefile b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/Makefile similarity index 100% rename from stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/Makefile rename to stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/Makefile 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-postmerge/genesis/accounts/import_keys.sh similarity index 100% rename from stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/import_keys.sh rename to stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/import_keys.sh 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-postmerge/genesis/accounts/mnemonic_to_csv.py similarity index 100% rename from stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/accounts/mnemonic_to_csv.py rename to stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/accounts/mnemonic_to_csv.py 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-premerge/genesis/el/el-config.yaml b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/el-config.yaml similarity index 55% rename from stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/el-config.yaml rename to stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/el-config.yaml index 8bcb0fa..a3bfb11 100644 --- a/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-premerge/genesis/el/el-config.yaml +++ b/stack-orchestrator/container-build/cerc-fixturenet-eth-genesis-postmerge/genesis/el/el-config.yaml @@ -10,22 +10,8 @@ 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 +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 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/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-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..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 @@ -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}" @@ -74,12 +74,12 @@ 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}" \ --miner.etherbase="${ETHERBASE}" \ + ${OTHER_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..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 @@ -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:-info} 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/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: 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: