29 grudnia 2021

Ethereum full node - docker

Composer stack

version: '3'
services:
  etherium:
    mem_limit: 8g
    stop_grace_period: 2m
    stop_signal: SIGINT
    container_name: ETH_node
    restart: unless-stopped
    image: ethereum/client-go
    ports: [8545:8545, 8547:8547, 30303:30303]
    entrypoint: 'geth --datadir "/data" --syncmode "full" --http --http.addr 0.0.0.0 --cache 4048 --maxpeers 50' 
    volumes:
      - /external_data/ETH:/data
    security_opt: [no-new-privileges:true]
    
    
  eth-exporter:
    image: hunterlong/gethexporter
    container_name: ETH_exporter
    restart: unless-stopped
    ports: [9090:9090]
    environment:
      GETH: "http://192.168.30.43:8545"
      DELAY: 3000

Bardzo ważna jest linia stop_grace_period: 2m oraz stop_signal: SIGINT, powoduje ona, że po wydaniu komendy stop kontener będzie miał 5minut na zapisanie danych i zakończenie pracy.

Grafana dashboard

BTC Grafana

Zdalne wywołanie RPC

geth --exec "new Date(eth.getBlock(eth.blockNumber).timestamp*1e3)" attach http://192.168.30.43:8545