From ce43e3061c3feab3ba3c8a693633f03d321c18e3 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Sat, 28 Jan 2023 00:49:46 -0600 Subject: [PATCH 1/8] Add a pod for generating geth data as quickly as possible. Former-commit-id: e8bdb205c7faa89c583b0652fac1801d0177a3c1 --- .../compose/docker-compose-datanet-eth.yml | 68 +++++++++++++ app/data/config/datanet-eth/datanet-eth.env | 23 +++++ .../cerc-datanet-eth-geth/build.sh | 15 +++ .../cerc-datanet-eth-geth/build/Dockerfile | 27 +++++ .../cerc-datanet-eth-geth/build/build.sh | 6 ++ .../build/genesis/Makefile | 13 +++ .../build/genesis/accounts/import_keys.sh | 17 ++++ .../build/genesis/accounts/mnemonic_to_csv.py | 17 ++++ .../build/genesis/el/build_el.sh | 55 +++++++++++ .../build/genesis/el/el-config.yaml | 31 ++++++ .../cerc-datanet-eth-geth/build/run-el.sh | 99 +++++++++++++++++++ .../cerc-datanet-eth-geth/el-config.yaml | 31 ++++++ .../genesis/el/build_el.sh | 21 +++- app/data/container-image-list.txt | 1 + app/data/pod-list.txt | 1 + 15 files changed, 423 insertions(+), 2 deletions(-) create mode 100644 app/data/compose/docker-compose-datanet-eth.yml create mode 100644 app/data/config/datanet-eth/datanet-eth.env create mode 100755 app/data/container-build/cerc-datanet-eth-geth/build.sh create mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile create mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/build.sh create mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/genesis/Makefile create mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/import_keys.sh create mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py create mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh create mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/el-config.yaml create mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh create mode 100644 app/data/container-build/cerc-datanet-eth-geth/el-config.yaml diff --git a/app/data/compose/docker-compose-datanet-eth.yml b/app/data/compose/docker-compose-datanet-eth.yml new file mode 100644 index 00000000..a90b15a0 --- /dev/null +++ b/app/data/compose/docker-compose-datanet-eth.yml @@ -0,0 +1,68 @@ +version: '3.7' + +services: + datanet-eth-bootnode-geth: + hostname: datanet-eth-bootnode-geth + env_file: + - ../config/datanet-eth/datanet-eth.env + environment: + RUN_BOOTNODE: "true" + image: cerc/datanet-eth-geth:local + ports: + - "9898" + - "30303" + + datanet-eth-geth-1: + hostname: datanet-eth-geth-1 + cap_add: + - SYS_PTRACE + environment: + CERC_REMOTE_DEBUG: "true" + CERC_RUN_STATEDIFF: "detect" + CERC_STATEDIFF_DB_NODE_ID: 1 + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + env_file: + - ../config/datanet-eth/datanet-eth.env + image: cerc/datanet-eth-geth:local + healthcheck: + test: ["CMD", "nc", "-v", "localhost", "8545"] + interval: 30s + timeout: 10s + retries: 10 + start_period: 3s + depends_on: + - datanet-eth-bootnode-geth + ports: + - "8545" + - "40000" + - "6060" + + datanet-eth-geth-2: + hostname: datanet-eth-geth-2 + healthcheck: + test: ["CMD", "nc", "-v", "localhost", "8545"] + interval: 30s + timeout: 10s + retries: 10 + start_period: 3s + env_file: + - ../config/datanet-eth/datanet-eth.env + image: cerc/datanet-eth-geth:local + depends_on: + - datanet-eth-bootnode-geth + + datanet-tx-spammer: + restart: always + image: cerc/tx-spammer:local + environment: + ACCOUNTS_CSV_URL: http://datanet-eth-bootnode-geth:9898/accounts.csv + ETH_HTTP_PATH: http://datanet-eth-geth-1:8545 + LOG_LEVEL: info + SPAMMER_COMMAND: autoSend + ETH_CALL_FREQ: 0 + ETH_SEND_FREQ: 0 + depends_on: + datanet-eth-bootnode-geth: + condition: service_started + datanet-eth-geth-1: + condition: service_healthy diff --git a/app/data/config/datanet-eth/datanet-eth.env b/app/data/config/datanet-eth/datanet-eth.env new file mode 100644 index 00000000..ee454287 --- /dev/null +++ b/app/data/config/datanet-eth/datanet-eth.env @@ -0,0 +1,23 @@ +# The password used to access test accounts (eg, via personal_unlockAccount). The password is the same for all accounts. +ACCOUNT_PASSWORD=secret1212 + +# ENODE of the geth bootnode. +BOOTNODE_KEY="b0ac22adcad37213c7c565810a50f1772291e7b0ce53fb73e7ec2a3c75bc13b5" +ENODE="enode://af22c29c316ad069cf48a09a4ad5cf04a251b411e45098888d114c6dd7f489a13786620d5953738762afa13711d4ffb3b19aa5de772d8af72f851f7e9c5b164a@datanet-eth-bootnode-geth:30303" + +# JWT shared by geth and lighthouse for authentication. +JWT="0x6cdcac3501046a08e186730dd8bd136cfaf0fdc1fc955f6e15ad3068c0ff2af0" + +# URL to download the ENR of the lighthouse bootnode (generated at first start). +ENR_URL="http://datanet-eth-bootnode-lighthouse:3000/bootnode/enr.dat" + +# DB connection settings for statediffing (see docker-compose-db.yml) +CERC_STATEDIFF_DB_HOST="datanet-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=23 +CERC_STATEDIFF_DB_LOG_STATEMENTS="false" + +CERC_GETH_VMODULE="statediff/*=5,rpc/*=5" diff --git a/app/data/container-build/cerc-datanet-eth-geth/build.sh b/app/data/container-build/cerc-datanet-eth-geth/build.sh new file mode 100755 index 00000000..ced6f0bb --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +#Build cerc/datanet-eth-geth + +set +e +set+x + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +rm -rf $SCRIPT_DIR/build +cp -rp $SCRIPT_DIR/../cerc-fixturenet-eth-geth $SCRIPT_DIR/build + +cp -f $SCRIPT_DIR/el-config.yaml $SCRIPT_DIR/build/genesis/el/el-config.yaml + +docker build -t cerc/datanet-eth-geth:local ${SCRIPT_DIR}/build diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile b/app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile new file mode 100644 index 00000000..51dbbcd4 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile @@ -0,0 +1,27 @@ +FROM skylenet/ethereum-genesis-generator@sha256:210353ce7c898686bc5092f16c61220a76d357f51eff9c451e9ad1b9ad03d4d3 AS ethgen + +# Using the same golang image as used to build geth: https://github.com/cerc-io/go-ethereum/blob/HEAD/Dockerfile +FROM golang:1.18-alpine as delve +RUN go install github.com/go-delve/delve/cmd/dlv@latest + +FROM cerc/go-ethereum:local as geth + +FROM alpine:latest +RUN apk add --no-cache python3 python3-dev py3-pip curl wget jq build-base gettext libintl openssl bash bind-tools postgresql-client + +COPY --from=delve /go/bin/dlv /usr/local/bin/ +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 -r requirements.txt + +COPY genesis /opt/testnet +COPY run-el.sh /opt/testnet/run.sh + +RUN cd /opt/testnet && make genesis-el + +COPY --from=geth /usr/local/bin/geth /usr/local/bin/ +RUN geth init /opt/testnet/build/el/geth.json && rm -f ~/.ethereum/geth/nodekey + +ENTRYPOINT ["/opt/testnet/run.sh"] diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/build.sh b/app/data/container-build/cerc-datanet-eth-geth/build/build.sh new file mode 100755 index 00000000..b06044c7 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/build.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +# Build cerc/fixturenet-eth-geth + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +docker build -t cerc/fixturenet-eth-geth:local -f ${SCRIPT_DIR}/Dockerfile $SCRIPT_DIR diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/Makefile b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/Makefile new file mode 100644 index 00000000..a1eef575 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/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/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/import_keys.sh b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/import_keys.sh new file mode 100755 index 00000000..719b9f59 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/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 --password .pw.$$ .key.$$ + rm -f .pw.$$ .key.$$ +done diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py new file mode 100644 index 00000000..365c3775 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py @@ -0,0 +1,17 @@ +from web3.auto import w3 +import json +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/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh new file mode 100755 index 00000000..d52892b8 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh @@ -0,0 +1,55 @@ +#!/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 }'` +capped_maximum_difficulty=`cat $tmp_dir/genesis-config.yaml | grep capped_maximum_difficulty | awk '{ print $2 }'` + +python3 ../accounts/mnemonic_to_csv.py $tmp_dir/genesis-config.yaml > ../build/el/accounts.csv + +python3 /apps/el-gen/genesis_geth.py $tmp_dir/genesis-config.yaml | \ + 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" > ../build/el/geth.json + +if [ -n "$ttd" ]; then + cat ../build/el/geth.json | jq ".config.terminalTotalDifficulty=$ttd" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +else + cat ../build/el/geth.json | jq "del(.config.terminalTotalDifficulty)" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +fi + +if [ -n "$capped_maximum_difficulty" ]; then + cat ../build/el/geth.json | jq ".config.cappedMaximumDifficulty=$capped_maximum_difficulty" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +else + cat ../build/el/geth.json | jq "del(.config.cappedMaximumDifficulty)" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +fi diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/el-config.yaml b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/el-config.yaml new file mode 100644 index 00000000..cb45c936 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/el-config.yaml @@ -0,0 +1,31 @@ +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 +capped_maximum_difficulty: 1 +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/app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh b/app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh new file mode 100755 index 00000000..3aa0eaf3 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + set -x +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' | awk '{print $2}'` + +HOME_DIR=`pwd` +cd /opt/testnet/build/el +python3 -m http.server 9898 & +cd $HOME_DIR + +START_CMD="geth" +if [ "true" == "$CERC_REMOTE_DEBUG" ] && [ -x "/usr/local/bin/dlv" ]; then + START_CMD="/usr/local/bin/dlv --listen=:40000 --headless=true --api-version=2 --accept-multiclient exec /usr/local/bin/geth --continue --" +fi + +if [ "true" == "$RUN_BOOTNODE" ]; then + $START_CMD \ + --nodekeyhex="${BOOTNODE_KEY}" \ + --nodiscover \ + --ipcdisable \ + --networkid=${NETWORK_ID} \ + --netrestrict="${NETRESTRICT}" +else + cd /opt/testnet/accounts + ./import_keys.sh + + 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 + while [ $ready -eq 0 ]; do + echo "Waiting for statediff DB..." + 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" ] && [ $result -ge $CERC_STATEDIFF_DB_GOOSE_MIN_VER ]; then + echo "DB ready..." + ready=1 + fi + done + STATEDIFF_OPTS="--statediff=true \ + --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.waitforsync=true \ + --statediff.writing=true" + fi + + $START_CMD \ + --bootnodes="${ENODE}" \ + --allow-insecure-unlock \ + --http \ + --http.addr="0.0.0.0" \ + --http.vhosts="*" \ + --http.api="eth,web3,net,admin,personal,debug,statediff" \ + --http.corsdomain="*" \ + --authrpc.addr="0.0.0.0" \ + --authrpc.vhosts="*" \ + --authrpc.jwtsecret="/opt/testnet/build/el/jwtsecret" \ + --networkid="${NETWORK_ID}" \ + --netrestrict="${NETRESTRICT}" \ + --gcmode archive \ + --txlookuplimit=0 \ + --cache.preimages \ + --syncmode=full \ + --mine \ + --miner.threads=1 \ + --metrics \ + --metrics.addr="0.0.0.0" \ + --verbosity=${CERC_GETH_VERBOSITY:-3} \ + --vmodule="${CERC_GETH_VMODULE:-statediff/*=5}" \ + --miner.etherbase="${ETHERBASE}" ${STATEDIFF_OPTS} +fi diff --git a/app/data/container-build/cerc-datanet-eth-geth/el-config.yaml b/app/data/container-build/cerc-datanet-eth-geth/el-config.yaml new file mode 100644 index 00000000..cb45c936 --- /dev/null +++ b/app/data/container-build/cerc-datanet-eth-geth/el-config.yaml @@ -0,0 +1,31 @@ +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 +capped_maximum_difficulty: 1 +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/app/data/container-build/cerc-fixturenet-eth-geth/genesis/el/build_el.sh b/app/data/container-build/cerc-fixturenet-eth-geth/genesis/el/build_el.sh index 76b43daf..d52892b8 100755 --- a/app/data/container-build/cerc-fixturenet-eth-geth/genesis/el/build_el.sh +++ b/app/data/container-build/cerc-fixturenet-eth-geth/genesis/el/build_el.sh @@ -21,9 +21,11 @@ istanbul_block=`cat $tmp_dir/genesis-config.yaml | grep istanbul_block | awk '{ 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 }'` +capped_maximum_difficulty=`cat $tmp_dir/genesis-config.yaml | grep capped_maximum_difficulty | awk '{ print $2 }'` + +python3 ../accounts/mnemonic_to_csv.py $tmp_dir/genesis-config.yaml > ../build/el/accounts.csv 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" | \ @@ -35,4 +37,19 @@ python3 /apps/el-gen/genesis_geth.py $tmp_dir/genesis-config.yaml | \ jq ".config.berlinBlock=$berlin_block" | \ jq ".config.londonBlock=$london_block" | \ jq ".config.mergeForkBlock=$merge_fork_block" > ../build/el/geth.json -python3 ../accounts/mnemonic_to_csv.py $tmp_dir/genesis-config.yaml > ../build/el/accounts.csv + +if [ -n "$ttd" ]; then + cat ../build/el/geth.json | jq ".config.terminalTotalDifficulty=$ttd" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +else + cat ../build/el/geth.json | jq "del(.config.terminalTotalDifficulty)" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +fi + +if [ -n "$capped_maximum_difficulty" ]; then + cat ../build/el/geth.json | jq ".config.cappedMaximumDifficulty=$capped_maximum_difficulty" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +else + cat ../build/el/geth.json | jq "del(.config.cappedMaximumDifficulty)" > ../build/el/geth.json.jq + mv ../build/el/geth.json.jq ../build/el/geth.json +fi diff --git a/app/data/container-image-list.txt b/app/data/container-image-list.txt index f22b4543..c9d6b7c0 100644 --- a/app/data/container-image-list.txt +++ b/app/data/container-image-list.txt @@ -11,6 +11,7 @@ cerc/ipld-eth-beacon-indexer cerc/ipld-eth-server cerc/laconicd cerc/laconic-registry-cli +cerc/datanet-eth-geth cerc/fixturenet-eth-geth cerc/fixturenet-eth-lighthouse cerc/watcher-mobymask diff --git a/app/data/pod-list.txt b/app/data/pod-list.txt index 64dd0412..7d05aef5 100644 --- a/app/data/pod-list.txt +++ b/app/data/pod-list.txt @@ -8,6 +8,7 @@ ipld-eth-server lighthouse laconicd fixturenet-laconicd +datanet-eth fixturenet-eth fixturenet-eth-metrics watcher-mobymask -- 2.45.2 From 22077dedc8979816298a242fae28e256125a0e51 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Sat, 28 Jan 2023 00:51:11 -0600 Subject: [PATCH 2/8] Remove generated files. Former-commit-id: d0c506af881fee53f174f6d8380c1e2b36cdc3d6 --- .../cerc-datanet-eth-geth/build/Dockerfile | 27 ----- .../cerc-datanet-eth-geth/build/build.sh | 6 -- .../build/genesis/Makefile | 13 --- .../build/genesis/accounts/import_keys.sh | 17 ---- .../build/genesis/accounts/mnemonic_to_csv.py | 17 ---- .../build/genesis/el/build_el.sh | 55 ----------- .../build/genesis/el/el-config.yaml | 31 ------ .../cerc-datanet-eth-geth/build/run-el.sh | 99 ------------------- 8 files changed, 265 deletions(-) delete mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile delete mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/build.sh delete mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/genesis/Makefile delete mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/import_keys.sh delete mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py delete mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh delete mode 100644 app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/el-config.yaml delete mode 100755 app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile b/app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile deleted file mode 100644 index 51dbbcd4..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM skylenet/ethereum-genesis-generator@sha256:210353ce7c898686bc5092f16c61220a76d357f51eff9c451e9ad1b9ad03d4d3 AS ethgen - -# Using the same golang image as used to build geth: https://github.com/cerc-io/go-ethereum/blob/HEAD/Dockerfile -FROM golang:1.18-alpine as delve -RUN go install github.com/go-delve/delve/cmd/dlv@latest - -FROM cerc/go-ethereum:local as geth - -FROM alpine:latest -RUN apk add --no-cache python3 python3-dev py3-pip curl wget jq build-base gettext libintl openssl bash bind-tools postgresql-client - -COPY --from=delve /go/bin/dlv /usr/local/bin/ -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 -r requirements.txt - -COPY genesis /opt/testnet -COPY run-el.sh /opt/testnet/run.sh - -RUN cd /opt/testnet && make genesis-el - -COPY --from=geth /usr/local/bin/geth /usr/local/bin/ -RUN geth init /opt/testnet/build/el/geth.json && rm -f ~/.ethereum/geth/nodekey - -ENTRYPOINT ["/opt/testnet/run.sh"] diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/build.sh b/app/data/container-build/cerc-datanet-eth-geth/build/build.sh deleted file mode 100755 index b06044c7..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/build.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -# Build cerc/fixturenet-eth-geth - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -docker build -t cerc/fixturenet-eth-geth:local -f ${SCRIPT_DIR}/Dockerfile $SCRIPT_DIR diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/Makefile b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/Makefile deleted file mode 100644 index a1eef575..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/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/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/import_keys.sh b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/import_keys.sh deleted file mode 100755 index 719b9f59..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/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 --password .pw.$$ .key.$$ - rm -f .pw.$$ .key.$$ -done diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py deleted file mode 100644 index 365c3775..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/accounts/mnemonic_to_csv.py +++ /dev/null @@ -1,17 +0,0 @@ -from web3.auto import w3 -import json -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/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh deleted file mode 100755 index d52892b8..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/build_el.sh +++ /dev/null @@ -1,55 +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 }'` -capped_maximum_difficulty=`cat $tmp_dir/genesis-config.yaml | grep capped_maximum_difficulty | awk '{ print $2 }'` - -python3 ../accounts/mnemonic_to_csv.py $tmp_dir/genesis-config.yaml > ../build/el/accounts.csv - -python3 /apps/el-gen/genesis_geth.py $tmp_dir/genesis-config.yaml | \ - 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" > ../build/el/geth.json - -if [ -n "$ttd" ]; then - cat ../build/el/geth.json | jq ".config.terminalTotalDifficulty=$ttd" > ../build/el/geth.json.jq - mv ../build/el/geth.json.jq ../build/el/geth.json -else - cat ../build/el/geth.json | jq "del(.config.terminalTotalDifficulty)" > ../build/el/geth.json.jq - mv ../build/el/geth.json.jq ../build/el/geth.json -fi - -if [ -n "$capped_maximum_difficulty" ]; then - cat ../build/el/geth.json | jq ".config.cappedMaximumDifficulty=$capped_maximum_difficulty" > ../build/el/geth.json.jq - mv ../build/el/geth.json.jq ../build/el/geth.json -else - cat ../build/el/geth.json | jq "del(.config.cappedMaximumDifficulty)" > ../build/el/geth.json.jq - mv ../build/el/geth.json.jq ../build/el/geth.json -fi diff --git a/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/el-config.yaml b/app/data/container-build/cerc-datanet-eth-geth/build/genesis/el/el-config.yaml deleted file mode 100644 index cb45c936..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/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 -capped_maximum_difficulty: 1 -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/app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh b/app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh deleted file mode 100755 index 3aa0eaf3..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/build/run-el.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash - -if [ -n "$CERC_SCRIPT_DEBUG" ]; then - set -x -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' | awk '{print $2}'` - -HOME_DIR=`pwd` -cd /opt/testnet/build/el -python3 -m http.server 9898 & -cd $HOME_DIR - -START_CMD="geth" -if [ "true" == "$CERC_REMOTE_DEBUG" ] && [ -x "/usr/local/bin/dlv" ]; then - START_CMD="/usr/local/bin/dlv --listen=:40000 --headless=true --api-version=2 --accept-multiclient exec /usr/local/bin/geth --continue --" -fi - -if [ "true" == "$RUN_BOOTNODE" ]; then - $START_CMD \ - --nodekeyhex="${BOOTNODE_KEY}" \ - --nodiscover \ - --ipcdisable \ - --networkid=${NETWORK_ID} \ - --netrestrict="${NETRESTRICT}" -else - cd /opt/testnet/accounts - ./import_keys.sh - - 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 - while [ $ready -eq 0 ]; do - echo "Waiting for statediff DB..." - 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" ] && [ $result -ge $CERC_STATEDIFF_DB_GOOSE_MIN_VER ]; then - echo "DB ready..." - ready=1 - fi - done - STATEDIFF_OPTS="--statediff=true \ - --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.waitforsync=true \ - --statediff.writing=true" - fi - - $START_CMD \ - --bootnodes="${ENODE}" \ - --allow-insecure-unlock \ - --http \ - --http.addr="0.0.0.0" \ - --http.vhosts="*" \ - --http.api="eth,web3,net,admin,personal,debug,statediff" \ - --http.corsdomain="*" \ - --authrpc.addr="0.0.0.0" \ - --authrpc.vhosts="*" \ - --authrpc.jwtsecret="/opt/testnet/build/el/jwtsecret" \ - --networkid="${NETWORK_ID}" \ - --netrestrict="${NETRESTRICT}" \ - --gcmode archive \ - --txlookuplimit=0 \ - --cache.preimages \ - --syncmode=full \ - --mine \ - --miner.threads=1 \ - --metrics \ - --metrics.addr="0.0.0.0" \ - --verbosity=${CERC_GETH_VERBOSITY:-3} \ - --vmodule="${CERC_GETH_VMODULE:-statediff/*=5}" \ - --miner.etherbase="${ETHERBASE}" ${STATEDIFF_OPTS} -fi -- 2.45.2 From da3636bc17746d7051ca8c8e69b6d0d5c7396e61 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Sat, 28 Jan 2023 00:54:48 -0600 Subject: [PATCH 3/8] Fix typo Former-commit-id: 34413ea2607ead60df6905992b29808828d60448 --- app/data/container-build/cerc-datanet-eth-geth/build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/data/container-build/cerc-datanet-eth-geth/build.sh b/app/data/container-build/cerc-datanet-eth-geth/build.sh index ced6f0bb..b36c54be 100755 --- a/app/data/container-build/cerc-datanet-eth-geth/build.sh +++ b/app/data/container-build/cerc-datanet-eth-geth/build.sh @@ -2,8 +2,7 @@ # #Build cerc/datanet-eth-geth -set +e -set+x +set -e SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) @@ -13,3 +12,5 @@ cp -rp $SCRIPT_DIR/../cerc-fixturenet-eth-geth $SCRIPT_DIR/build cp -f $SCRIPT_DIR/el-config.yaml $SCRIPT_DIR/build/genesis/el/el-config.yaml docker build -t cerc/datanet-eth-geth:local ${SCRIPT_DIR}/build + +rm -rf $SCRIPT_DIR/build -- 2.45.2 From 97592b0fca930314b95a019d787b241cd0c3e8a6 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Mon, 30 Jan 2023 11:08:27 -0600 Subject: [PATCH 4/8] Remove unneeded env Former-commit-id: a3880de4cde7b5fdd43cd953a7c4b198cc445573 --- app/data/config/datanet-eth/datanet-eth.env | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/app/data/config/datanet-eth/datanet-eth.env b/app/data/config/datanet-eth/datanet-eth.env index ee454287..3d3b5a6a 100644 --- a/app/data/config/datanet-eth/datanet-eth.env +++ b/app/data/config/datanet-eth/datanet-eth.env @@ -5,19 +5,5 @@ ACCOUNT_PASSWORD=secret1212 BOOTNODE_KEY="b0ac22adcad37213c7c565810a50f1772291e7b0ce53fb73e7ec2a3c75bc13b5" ENODE="enode://af22c29c316ad069cf48a09a4ad5cf04a251b411e45098888d114c6dd7f489a13786620d5953738762afa13711d4ffb3b19aa5de772d8af72f851f7e9c5b164a@datanet-eth-bootnode-geth:30303" -# JWT shared by geth and lighthouse for authentication. -JWT="0x6cdcac3501046a08e186730dd8bd136cfaf0fdc1fc955f6e15ad3068c0ff2af0" - -# URL to download the ENR of the lighthouse bootnode (generated at first start). -ENR_URL="http://datanet-eth-bootnode-lighthouse:3000/bootnode/enr.dat" - -# DB connection settings for statediffing (see docker-compose-db.yml) -CERC_STATEDIFF_DB_HOST="datanet-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=23 -CERC_STATEDIFF_DB_LOG_STATEMENTS="false" - -CERC_GETH_VMODULE="statediff/*=5,rpc/*=5" +# JWT is required by the startup script, but won't be used without lighthouse. +JWT="0x6cdcac3501046a08e186730dd8bd136cfaf0fdc1fc955f6e15ad3068c0ff2af0" \ No newline at end of file -- 2.45.2 From cecc7a12742b4a93a42e0ba2b9509592ee3dafc7 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Mon, 30 Jan 2023 11:09:05 -0600 Subject: [PATCH 5/8] EOL Former-commit-id: 5f09e42422e5c458919925de751be93e028d05ba --- app/data/config/datanet-eth/datanet-eth.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/data/config/datanet-eth/datanet-eth.env b/app/data/config/datanet-eth/datanet-eth.env index 3d3b5a6a..72c402b1 100644 --- a/app/data/config/datanet-eth/datanet-eth.env +++ b/app/data/config/datanet-eth/datanet-eth.env @@ -6,4 +6,4 @@ BOOTNODE_KEY="b0ac22adcad37213c7c565810a50f1772291e7b0ce53fb73e7ec2a3c75bc13b5" ENODE="enode://af22c29c316ad069cf48a09a4ad5cf04a251b411e45098888d114c6dd7f489a13786620d5953738762afa13711d4ffb3b19aa5de772d8af72f851f7e9c5b164a@datanet-eth-bootnode-geth:30303" # JWT is required by the startup script, but won't be used without lighthouse. -JWT="0x6cdcac3501046a08e186730dd8bd136cfaf0fdc1fc955f6e15ad3068c0ff2af0" \ No newline at end of file +JWT="0x6cdcac3501046a08e186730dd8bd136cfaf0fdc1fc955f6e15ad3068c0ff2af0" -- 2.45.2 From c0455e3e0b172584db9bd78167023d45a7d59d08 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Mon, 30 Jan 2023 11:20:23 -0600 Subject: [PATCH 6/8] Simplify build. Former-commit-id: 3a80606d6c20751fa12c911fc965380b49086710 --- .../compose/docker-compose-datanet-eth.yml | 5 ++- .../cerc-datanet-eth-geth/build.sh | 2 +- .../cerc-datanet-eth-geth/el-config.yaml | 31 ------------------- 3 files changed, 3 insertions(+), 35 deletions(-) delete mode 100644 app/data/container-build/cerc-datanet-eth-geth/el-config.yaml diff --git a/app/data/compose/docker-compose-datanet-eth.yml b/app/data/compose/docker-compose-datanet-eth.yml index a90b15a0..4d0dc6ac 100644 --- a/app/data/compose/docker-compose-datanet-eth.yml +++ b/app/data/compose/docker-compose-datanet-eth.yml @@ -17,10 +17,9 @@ services: cap_add: - SYS_PTRACE environment: - CERC_REMOTE_DEBUG: "true" - CERC_RUN_STATEDIFF: "detect" + CERC_REMOTE_DEBUG: "false" + CERC_RUN_STATEDIFF: "false" CERC_STATEDIFF_DB_NODE_ID: 1 - CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} env_file: - ../config/datanet-eth/datanet-eth.env image: cerc/datanet-eth-geth:local diff --git a/app/data/container-build/cerc-datanet-eth-geth/build.sh b/app/data/container-build/cerc-datanet-eth-geth/build.sh index b36c54be..02c7031f 100755 --- a/app/data/container-build/cerc-datanet-eth-geth/build.sh +++ b/app/data/container-build/cerc-datanet-eth-geth/build.sh @@ -9,7 +9,7 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) rm -rf $SCRIPT_DIR/build cp -rp $SCRIPT_DIR/../cerc-fixturenet-eth-geth $SCRIPT_DIR/build -cp -f $SCRIPT_DIR/el-config.yaml $SCRIPT_DIR/build/genesis/el/el-config.yaml +sed -i '' 's/^terminal_total_difficulty.*$/capped_maximum_difficulty: 1/' $SCRIPT_DIR/build/genesis/el/el-config.yaml docker build -t cerc/datanet-eth-geth:local ${SCRIPT_DIR}/build diff --git a/app/data/container-build/cerc-datanet-eth-geth/el-config.yaml b/app/data/container-build/cerc-datanet-eth-geth/el-config.yaml deleted file mode 100644 index cb45c936..00000000 --- a/app/data/container-build/cerc-datanet-eth-geth/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 -capped_maximum_difficulty: 1 -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 -- 2.45.2 From 2e5eee022393fcfa0d54f079ef5eebb821191371 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Mon, 30 Jan 2023 11:23:45 -0600 Subject: [PATCH 7/8] Add comments. Former-commit-id: a3a60b76959056ba9cc40f0de3a8bd9a2ee2e17e --- app/data/container-build/cerc-datanet-eth-geth/build.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/data/container-build/cerc-datanet-eth-geth/build.sh b/app/data/container-build/cerc-datanet-eth-geth/build.sh index 02c7031f..19820938 100755 --- a/app/data/container-build/cerc-datanet-eth-geth/build.sh +++ b/app/data/container-build/cerc-datanet-eth-geth/build.sh @@ -6,10 +6,17 @@ set -e SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +# Make sure the "build" directory is empty. rm -rf $SCRIPT_DIR/build + +# Copy the fixture-net scripts and config. cp -rp $SCRIPT_DIR/../cerc-fixturenet-eth-geth $SCRIPT_DIR/build -sed -i '' 's/^terminal_total_difficulty.*$/capped_maximum_difficulty: 1/' $SCRIPT_DIR/build/genesis/el/el-config.yaml +# Then remove terminal_total_difficulty and replace it with capped_maximum_difficulty. +# This has two effects: +# (1) Disables the Merge (so all we need is geth, not lighthouse). +# (2) Maintains a fast block rate, since the difficulty will never exceed the capped value. +sed -i '' 's/^terminal_total_difficulty:.*$/capped_maximum_difficulty: 1/' $SCRIPT_DIR/build/genesis/el/el-config.yaml docker build -t cerc/datanet-eth-geth:local ${SCRIPT_DIR}/build -- 2.45.2 From d4c4cc1ed0351c133f367faac26ff58fa013202a Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Mon, 30 Jan 2023 11:24:56 -0600 Subject: [PATCH 8/8] Add comments. Former-commit-id: 46f00e1d485661b6328b8ca6911a81455a346f6a --- app/data/container-build/cerc-datanet-eth-geth/build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/data/container-build/cerc-datanet-eth-geth/build.sh b/app/data/container-build/cerc-datanet-eth-geth/build.sh index 19820938..31996ac4 100755 --- a/app/data/container-build/cerc-datanet-eth-geth/build.sh +++ b/app/data/container-build/cerc-datanet-eth-geth/build.sh @@ -18,6 +18,8 @@ cp -rp $SCRIPT_DIR/../cerc-fixturenet-eth-geth $SCRIPT_DIR/build # (2) Maintains a fast block rate, since the difficulty will never exceed the capped value. sed -i '' 's/^terminal_total_difficulty:.*$/capped_maximum_difficulty: 1/' $SCRIPT_DIR/build/genesis/el/el-config.yaml +# Build the image. docker build -t cerc/datanet-eth-geth:local ${SCRIPT_DIR}/build +# Clean up the "build" directory. rm -rf $SCRIPT_DIR/build -- 2.45.2