Add a pod for generating geth data as quickly as possible. #168
67
app/data/compose/docker-compose-datanet-eth.yml
Normal file
67
app/data/compose/docker-compose-datanet-eth.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
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: "false"
|
||||||
|
CERC_RUN_STATEDIFF: "false"
|
||||||
|
CERC_STATEDIFF_DB_NODE_ID: 1
|
||||||
|
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
|
9
app/data/config/datanet-eth/datanet-eth.env
Normal file
9
app/data/config/datanet-eth/datanet-eth.env
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# 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 is required by the startup script, but won't be used without lighthouse.
|
||||||
|
JWT="0x6cdcac3501046a08e186730dd8bd136cfaf0fdc1fc955f6e15ad3068c0ff2af0"
|
25
app/data/container-build/cerc-datanet-eth-geth/build.sh
Executable file
25
app/data/container-build/cerc-datanet-eth-geth/build.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
#Build cerc/datanet-eth-geth
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Build the image.
|
||||||
|
docker build -t cerc/datanet-eth-geth:local ${SCRIPT_DIR}/build
|
||||||
|
|
||||||
|
# Clean up the "build" directory.
|
||||||
|
rm -rf $SCRIPT_DIR/build
|
@ -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 }'`
|
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 }'`
|
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 }'`
|
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 | \
|
python3 /apps/el-gen/genesis_geth.py $tmp_dir/genesis-config.yaml | \
|
||||||
jq ".config.terminalTotalDifficulty=$ttd" | \
|
|
||||||
jq ".config.homesteadBlock=$homestead_block" | \
|
jq ".config.homesteadBlock=$homestead_block" | \
|
||||||
jq ".config.eip150Block=$eip150_block" | \
|
jq ".config.eip150Block=$eip150_block" | \
|
||||||
jq ".config.eip155Block=$eip155_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.berlinBlock=$berlin_block" | \
|
||||||
jq ".config.londonBlock=$london_block" | \
|
jq ".config.londonBlock=$london_block" | \
|
||||||
jq ".config.mergeForkBlock=$merge_fork_block" > ../build/el/geth.json
|
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
|
||||||
|
@ -11,6 +11,7 @@ cerc/ipld-eth-beacon-indexer
|
|||||||
cerc/ipld-eth-server
|
cerc/ipld-eth-server
|
||||||
cerc/laconicd
|
cerc/laconicd
|
||||||
cerc/laconic-registry-cli
|
cerc/laconic-registry-cli
|
||||||
|
cerc/datanet-eth-geth
|
||||||
cerc/fixturenet-eth-geth
|
cerc/fixturenet-eth-geth
|
||||||
cerc/fixturenet-eth-lighthouse
|
cerc/fixturenet-eth-lighthouse
|
||||||
cerc/watcher-mobymask
|
cerc/watcher-mobymask
|
||||||
|
@ -8,6 +8,7 @@ ipld-eth-server
|
|||||||
lighthouse
|
lighthouse
|
||||||
laconicd
|
laconicd
|
||||||
fixturenet-laconicd
|
fixturenet-laconicd
|
||||||
|
datanet-eth
|
||||||
fixturenet-eth
|
fixturenet-eth
|
||||||
fixturenet-eth-metrics
|
fixturenet-eth-metrics
|
||||||
watcher-mobymask
|
watcher-mobymask
|
||||||
|
Loading…
Reference in New Issue
Block a user