107 lines
5.0 KiB
YAML
107 lines
5.0 KiB
YAML
version: '3.1'
|
|
|
|
services:
|
|
geth-sepolia:
|
|
image: ethereum/client-go:v1.14.3
|
|
expose:
|
|
# HTTP server / GraphQL API
|
|
- 8545
|
|
ports:
|
|
- "49545:49545"
|
|
- "49545:49545/udp"
|
|
command:
|
|
[
|
|
# Blockchain sync mode ("snap", "full" or "light")
|
|
"--syncmode=snap",
|
|
"--state.scheme=path",
|
|
"--db.engine=pebble",
|
|
"--port=49545",
|
|
# Megabytes of memory allocated to internal caching
|
|
"--cache=8192",
|
|
# Enable the WS-RPC server
|
|
"--ws",
|
|
"--ws.api=eth,net,web3,personal,txpool",
|
|
"--ws.port=8545",
|
|
"--ws.addr=0.0.0.0",
|
|
"--ws.origins=*",
|
|
# Enable the HTTP-RPC server
|
|
"--http",
|
|
"--http.api=eth,net,web3,personal,txpool",
|
|
"--http.port=8545",
|
|
"--http.addr=0.0.0.0",
|
|
"--http.vhosts=*",
|
|
# Enable GraphQL on the HTTP-RPC server. Note that GraphQL can only be started if an HTTP server is started as well.
|
|
"--graphql",
|
|
"--graphql.vhosts=*",
|
|
# Enable metrics collection and reporting
|
|
"--metrics",
|
|
"--metrics.addr=0.0.0.0",
|
|
# Ethereum sepolia
|
|
"--sepolia",
|
|
# Maximum number of network peers (network disabled if set to 0) (default: 50)
|
|
"--maxpeers=30",
|
|
# The Merge
|
|
"--authrpc.jwtsecret=/jwtsecret",
|
|
"--authrpc.addr=0.0.0.0",
|
|
"--authrpc.vhosts=*"
|
|
]
|
|
networks:
|
|
- chains
|
|
volumes:
|
|
- "geth-sepolia:/root/.ethereum"
|
|
- "/slowdisk:/slowdisk"
|
|
- ".jwtsecret:/jwtsecret"
|
|
restart: unless-stopped
|
|
stop_grace_period: 1m
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.middlewares.sepolia-stripprefix.stripprefix.prefixes=/sepolia"
|
|
- "traefik.http.services.sepolia.loadbalancer.server.port=8545"
|
|
- "traefik.http.routers.sepolia.entrypoints=websecure"
|
|
- "traefik.http.routers.sepolia.tls.certresolver=myresolver"
|
|
- "traefik.http.routers.sepolia.rule=Host(`$DOMAIN`) && PathPrefix(`/sepolia`)"
|
|
- "traefik.http.routers.sepolia.middlewares=sepolia-stripprefix, ipwhitelist"
|
|
- "prometheus-scrape.enabled=true"
|
|
- "prometheus-scrape.port=6060"
|
|
- "prometheus-scrape.job_name=geth-sepolia"
|
|
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
|
|
|
|
prysm-sepolia:
|
|
image: prysmaticlabs/prysm-beacon-chain:v5.0.3
|
|
ports:
|
|
#- "127.0.0.1:3500:3500"
|
|
- "13000:13000"
|
|
- "12000:12000/udp"
|
|
command:
|
|
[
|
|
"--datadir=/data",
|
|
"--sepolia",
|
|
"--jwt-secret=/jwtsecret",
|
|
"--rpc-host=0.0.0.0",
|
|
"--grpc-gateway-host=0.0.0.0",
|
|
"--monitoring-host=0.0.0.0",
|
|
"--checkpoint-sync-url=https://beaconstate-sepolia.chainsafe.io",
|
|
"--execution-endpoint=http://geth-sepolia:8551",
|
|
"--accept-terms-of-use"
|
|
]
|
|
networks:
|
|
- chains
|
|
volumes:
|
|
- "prysm-sepolia:/data"
|
|
- ".jwtsecret:/jwtsecret"
|
|
restart: unless-stopped
|
|
stop_grace_period: 1m
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.middlewares.prysm-sepolia-stripprefix.stripprefix.prefixes=/prysm-sepolia"
|
|
- "traefik.http.services.prysm-sepolia.loadbalancer.server.port=3500"
|
|
- "traefik.http.routers.prysm-sepolia.entrypoints=websecure"
|
|
- "traefik.http.routers.prysm-sepolia.tls.certresolver=myresolver"
|
|
- "traefik.http.routers.prysm-sepolia.rule=Host(`$DOMAIN`) && PathPrefix(`/prysm-sepolia`)"
|
|
- "traefik.http.routers.prysm-sepolia.middlewares=prysm-sepolia-stripprefix, ipwhitelist"
|
|
|
|
|
|
volumes:
|
|
prysm-sepolia:
|
|
geth-sepolia:
|