diff --git a/erigon-gnosis.yml b/erigon-gnosis.yml index 576e1fe6..6b6dc4d9 100644 --- a/erigon-gnosis.yml +++ b/erigon-gnosis.yml @@ -1,64 +1,68 @@ -version: '3.1' - -services: - - erigon-gnosis: +version: '3.1' + +services: + + erigon-gnosis: image: thorax/erigon:v2.48.1 user: root - volumes: + volumes: - "gnosis-archive_data:/datadir" - .jwtsecret:/jwtsecret - expose: + expose: - "20947" - "9090" - - "8545" - - "8551" - ports: - - "20947:20947" + - "8545" + - "8551" + ports: + - "20947:20947" - "20947:20947/udp" restart: unless-stopped command: --chain=gnosis --authrpc.addr=0.0.0.0 --authrpc.vhosts=* --authrpc.jwtsecret=/jwtsecret --http --http.addr=0.0.0.0 --http.port=8545 --http.compression --http.vhosts='*' --http.corsdomain='*' --http.api=eth,debug,net,trace,web3,erigon --ws --ws.compression --rpc.gascap=300000000 --metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --bodies.cache=5G --rpc.batch.limit=200000 --batchSize=2048MB --port=20947 --datadir=/datadir --ethash.dagdir=/datadir/ethash --rpc.returndata.limit=1000000 - stop_grace_period: 1m - labels: + stop_grace_period: 1m + labels: - "prometheus-scrape.enabled=true" - - "prometheus-scrape.port=6060" - - "prometheus-scrape.job_name=erigon" + - "prometheus-scrape.port=6060" + - "prometheus-scrape.job_name=erigon" - "prometheus-scrape.metrics_path=/debug/metrics/prometheus" - - "traefik.enable=true" + - "traefik.enable=true" - "traefik.http.middlewares.erigon-gnosis-stripprefix.stripprefix.prefixes=/gnosis-archive" - - "traefik.http.services.erigon-gnosis.loadbalancer.server.port=8545" + - "traefik.http.services.erigon-gnosis.loadbalancer.server.port=8545" - "traefik.http.routers.erigon-gnosis.entrypoints=websecure" - "traefik.http.routers.erigon-gnosis.tls.certresolver=myresolver" - "traefik.http.routers.erigon-gnosis.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-archive`)" - "traefik.http.routers.erigon-gnosis.middlewares=erigon-gnosis-stripprefix, ipwhitelist" - networks: - - chains + networks: + - chains logging: options: max-file: '1' compress: 'false' driver: local - - nimbus-gnosis: + +nimbus-gnosis: build: - context: ./nimbus - args: - UPSTREAM_VERSION: v23.8.0 + context: ./gnosis/nimbus restart: unless-stopped stop_grace_period: 1m - environment: - NETWORK: gnosis - LOG_TYPE: INFO - P2P_TCP_PORT: 20419 - P2P_UDP_PORT: 20419 - CHECKPOINT_SYNC_URL: "https://checkpoint.gnosischain.com/" - EXTRA_OPTS: "" - FEE_RECIPIENT_ADDRESS: "" - EXECUTION_ENDPOINT: "http://erigon-gnosis:8551" + user: root volumes: - - nimbus-gnosis:/home/user/nimbus-eth2/build/data - - .jwtsecret:/jwt.hex + - nimbus-gnosis:/data + - .jwtsecret:/jwt:ro + environment: + CHECKPOINT_SYNC_URL: "https://checkpoint.gnosischain.com/" + command: | + --data-dir=/data + --web3-url=http://erigon-gnosis:8551 + --jwt-secret=/jwt + --light-client-data-serve=true + --light-client-data-import-mode=full + --tcp-port=20419 + --udp-port=20419 + --rest + --rest-address=0.0.0.0 + --network=gnosis + --history=prune networks: - chains ports: @@ -84,4 +88,4 @@ services: volumes: gnosis-archive_data: - nimbus-gnosis: + nimbus-gnosis: diff --git a/gnosis/nimbus/Dockerfile b/gnosis/nimbus/Dockerfile new file mode 100644 index 00000000..969982db --- /dev/null +++ b/gnosis/nimbus/Dockerfile @@ -0,0 +1,5 @@ +FROM ghcr.io/gnosischain/gnosis-nimbus-eth2:latest + +COPY entrypoint.sh /usr/bin/entrypoint.sh + +ENTRYPOINT ["/usr/bin/entrypoint.sh"] \ No newline at end of file diff --git a/gnosis/nimbus/entrypoint.sh b/gnosis/nimbus/entrypoint.sh new file mode 100755 index 00000000..56218087 --- /dev/null +++ b/gnosis/nimbus/entrypoint.sh @@ -0,0 +1,17 @@ +FROM ghcr.io/gnosischain/gnosis-nimbus-eth2:latest + +COPY entrypoint.sh /usr/bin/entrypoint.sh + +ENTRYPOINT ["/usr/bin/entrypoint.sh"]root@rpc-fi-1 ~/rpc # cat gnosis/nimbus/entrypoint.sh +#!/bin/bash + +# Run checkpoint sync script if provided +[[ -n $CHECKPOINT_SYNC_URL ]] && + /home/user/nimbus_beacon_node trustedNodeSync \ + --network=gnosis \ + --trusted-node-url=${CHECKPOINT_SYNC_URL} \ + --backfill=false \ + --data-dir=/data + + +exec -c /home/user/nimbus_beacon_node $@ diff --git a/nimbus/entrypoint.sh b/nimbus/entrypoint.sh index d883299a..14b2dac2 100755 --- a/nimbus/entrypoint.sh +++ b/nimbus/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/bash -NETWORK="${{NETWORK}" +NETWORK="${NETWORK}" VALIDATOR_PORT=3500 DATA_DIR="/home/user/nimbus-eth2/build/data" @@ -18,8 +18,7 @@ HTTP_ENGINE=${EXECUTION_ENDPOINT} --trusted-node-url=${CHECKPOINT_SYNC_URL} \ --backfill=false \ --data-dir=//home/user/nimbus-eth2/build/data - -exec -c /home/user/nimbus_beacon_node \ +exec -c /home/user/nimbus-eth2/build/nimbus_beacon_node \ --network=${NETWORK} \ --data-dir=${DATA_DIR} \ --tcp-port=$P2P_TCP_PORT \ diff --git a/show-db-size.sh b/show-db-size.sh index 55c4ad5e..c0ddabb7 100755 --- a/show-db-size.sh +++ b/show-db-size.sh @@ -1,5 +1,6 @@ #!/bin/bash +date df -h / | awk 'NR==2 {print "Total: " $2, "Free: " $4}' find /var/lib/docker/volumes -maxdepth 1 -type d -name 'rpc_*' -exec du -sh {} \; | sort -rh | awk '{cmd="basename "$2; cmd | getline dir; close(cmd); sub(/^rpc_/, "", dir); print $1, dir}'