split up the big files
This commit is contained in:
29
avalanche.yml
Normal file
29
avalanche.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
avalanche:
|
||||||
|
image: avaplatform/avalanchego
|
||||||
|
expose:
|
||||||
|
- "9650"
|
||||||
|
- "9651"
|
||||||
|
ports:
|
||||||
|
- "9651:9651/tcp"
|
||||||
|
- "9651:9651/udp"
|
||||||
|
volumes:
|
||||||
|
- avalanche:/root/.avalanchego
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "/avalanchego/build/avalanchego --http-host="
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.avalanche-stripprefix.stripprefix.prefixes=/avalanche"
|
||||||
|
- "traefik.http.services.avalanche.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.avalanche.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.avalanche.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.avalanche.rule=Host(`$DOMAIN`) && PathPrefix(`/avalanche`)"
|
||||||
|
- "traefik.http.routers.avalanche.middlewares=avalanche-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
avalanche:
|
||||||
30
bsc.yml
Normal file
30
bsc.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
binance-smart-chain:
|
||||||
|
image: dysnix/bsc
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "8546"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- bsc_date:/datadir
|
||||||
|
- ./bsc/config.toml:/config.toml
|
||||||
|
command: "--cache 18000 --rpc --rpcaddr=\"0.0.0.0\" --rpc.allow-unprotected-txs --txlookuplimit 0 --syncmode snap --config /config.toml --datadir /datadir"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.bsc-stripprefix.stripprefix.prefixes=/bsc"
|
||||||
|
- "traefik.http.services.bsc.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.bsc.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.bsc.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.bsc.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc`)"
|
||||||
|
- "traefik.http.routers.bsc.middlewares=avalanche-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
bsc_data:
|
||||||
|
|
||||||
65
bsc/config.toml
Normal file
65
bsc/config.toml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
[Eth]
|
||||||
|
NetworkId = 56
|
||||||
|
NoPruning = false NoPrefetch = false LightPeers = 100
|
||||||
|
UltraLightFraction = 75 TrieTimeout = 100000000000 EnablePreimageRecording = false EWASMInterpreter = "" EVMInterpreter = "" [Eth.Miner] GasFloor = 30000000
|
||||||
|
GasCeil = 40000000
|
||||||
|
GasPrice = 1000000000
|
||||||
|
Recommit = 10000000000
|
||||||
|
Noverify = false
|
||||||
|
|
||||||
|
[Eth.TxPool]
|
||||||
|
Locals = []
|
||||||
|
NoLocals = true
|
||||||
|
Journal = "transactions.rlp"
|
||||||
|
Rejournal = 3600000000000
|
||||||
|
PriceLimit = 1000000000
|
||||||
|
PriceBump = 10
|
||||||
|
AccountSlots = 512
|
||||||
|
GlobalSlots = 10000
|
||||||
|
AccountQueue = 256
|
||||||
|
GlobalQueue = 5000
|
||||||
|
Lifetime = 10800000000000
|
||||||
|
|
||||||
|
[Eth.GPO]
|
||||||
|
Blocks = 20
|
||||||
|
Percentile = 60
|
||||||
|
OracleThreshold = 20
|
||||||
|
|
||||||
|
[Node]
|
||||||
|
IPCPath = "geth.ipc"
|
||||||
|
HTTPHost = "0.0.0.0"
|
||||||
|
NoUSB = true
|
||||||
|
InsecureUnlockAllowed = false
|
||||||
|
HTTPPort = 8545
|
||||||
|
HTTPVirtualHosts = ["*"]
|
||||||
|
HTTPModules = ["eth", "net", "web3", "txpool", "parlia"]
|
||||||
|
WSPort = 8546
|
||||||
|
WSModules = ["net", "web3", "eth"]
|
||||||
|
|
||||||
|
[Node.P2P]
|
||||||
|
MaxPeers = 30
|
||||||
|
NoDiscovery = false
|
||||||
|
BootstrapNodes = ["enode://1cc4534b14cfe351ab740a1418ab944a234ca2f702915eadb7e558a02010cb7c5a8c295a3b56bcefa7701c07752acd5539cb13df2aab8ae2d98934d712611443@52.71.43.172:30311","enode://28b1d16562dac280dac
|
||||||
|
aaf45d54516b85bc6c994252a9825c5cc4e080d3e53446d05f63ba495ea7d44d6c316b54cd92b245c5c328c37da24605c4a93a0d099c4@34.246.65.14:30311","enode://5a7b996048d1b0a07683a949662c87c09b55247ce774aeee10bb886892e586e3c
|
||||||
|
604564393292e38ef43c023ee9981e1f8b335766ec4f0f256e57f8640b079d5@35.73.137.11:30311"]
|
||||||
|
StaticNodes = ["enode://ace8e3b7e96290392a9c6238e005539dd1d1ca7c18aeedd979087789812e0656407e2c4baabcd83b50d583b583aa959ff42e5c95571d76b84995aad722a9a85c@44.198.55.182:30311","enode://1cda8150a6fe7597ce9f9
|
||||||
|
7b9886bc7bda2c3f0b246b509a5783c7dae7e57f831c7288a801ad129d2ffac330494ba75f0f0f62e1d1eba3499feca4ee29c6ae087@3.215.117.86:30311","enode://4b32e474c1aa896c856b916f2feb7af4e49feb6f2ff355896473b44d6723e71a560
|
||||||
|
2a610cc0839654ad2f031e5da6e210d880a4cd977a2ec76e64a95c13f49a3@18.206.147.221:30311","enode://6265fbbf7fc2978900abee29ab1f019ccbccaa22e4e1e07149f3607c7d680a1ba006e7bb5cf8901e26d07cad8140799832caa389fc2fe0e
|
||||||
|
1c6db4fec76946c2e@18.233.226.171:30311","enode://bdbcb42ff17a52af7ac120f23ee86f525ffbd854ce76e54bad858cf741fcd524d0f810be399d437bea939682a919c5af5df31811c43ccc270d04485caf4ddaeb@52.206.226.126:30311","eno
|
||||||
|
de://93a47b4de28dfd716a3de5481a72916f326b7c31c137d72ac12950c61ec3ee143312d903dbfab916ac0d7a92fedad6fc6f646c16ea009ca893089c9c2f64ec83@18.204.55.80:30311","enode://bb851ac2001f47e7c9a5d08a2fafcfe483c5bd028
|
||||||
|
65b3a25901f853cfaec297e1eded6a27f0c0b8fcb59891b6a0846ca92f54e05c1db4b1c9f4dbef5b66062f3@3.88.19.251:30311","enode://d54499eb86df0f28d91906cef4f648360b636f923d58567865b83508fb97d2e95d2ce3e3a594facb73230b9e
|
||||||
|
19172a534ce5af3f528599d0d1e52632438aa864@44.200.226.84:30311","enode://2d55e48679442a9e3ef2a3edf2854dcb289f8162d57dbda1e82e7576b0708e0670befaa7255f5c9fa8389443a7e7b4ff762c9e7fd33ddf9f21ec9562f03e8945@18.2
|
||||||
|
12.135.123:30311","enode://9df97e190f0b82ba7891e0ed556f11f4c1a172c26b2e823e52cfe5722b3df3f1819d2acb87ed0bfeb21fe3aee4ef1ffb8c9227fa7fdf744bfd4f47caad461edf@54.81.89.198:30311"]
|
||||||
|
ListenAddr = ":30311"
|
||||||
|
EnableMsgEvents = false
|
||||||
|
|
||||||
|
[Node.HTTPTimeouts]
|
||||||
|
ReadTimeout = 30000000000
|
||||||
|
WriteTimeout = 30000000000
|
||||||
|
IdleTimeout = 120000000000
|
||||||
|
|
||||||
|
[Node.LogConfig]
|
||||||
|
FilePath = "bsc.log"
|
||||||
|
MaxBytesSize = 10485760
|
||||||
|
Level = "info"
|
||||||
|
FileRoot = ""
|
||||||
@@ -1,434 +0,0 @@
|
|||||||
version: '3.1'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
traefik:
|
|
||||||
image: traefik:latest
|
|
||||||
container_name: traefik
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- "443:443"
|
|
||||||
- "127.0.0.1:8080:8080"
|
|
||||||
command:
|
|
||||||
- "--api=true"
|
|
||||||
- "--api.insecure=true"
|
|
||||||
- "--api.dashboard=true"
|
|
||||||
- "--log.level=DEBUG"
|
|
||||||
- "--providers.docker=true"
|
|
||||||
- "--providers.docker.exposedbydefault=false"
|
|
||||||
- "--entrypoints.websecure.address=:443"
|
|
||||||
- "--entryPoints.metrics.address=:8082"
|
|
||||||
- "--metrics.prometheus.entryPoint=metrics"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
|
||||||
# TESTING
|
|
||||||
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.email=$MAIL"
|
|
||||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
|
||||||
volumes:
|
|
||||||
- "./traefik/letsencrypt:/letsencrypt"
|
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
|
|
||||||
### NODES
|
|
||||||
geth-goerli:
|
|
||||||
image: ethereum/client-go:latest
|
|
||||||
expose:
|
|
||||||
- "8545"
|
|
||||||
- "6060"
|
|
||||||
- "30303"
|
|
||||||
volumes:
|
|
||||||
- geth-goerli:/.goerli
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command: "--goerli --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .goerli --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.geth-goerli-stripprefix.stripprefix.prefixes=/goerli"
|
|
||||||
- "traefik.http.services.geth-goerli.loadbalancer.server.port=8545"
|
|
||||||
- "traefik.http.routers.geth-goerli.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.geth-goerli.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.geth-goerli.rule=Host(`$DOMAIN`) && PathPrefix(`/goerli`)"
|
|
||||||
- "traefik.http.routers.geth-goerli.middlewares=geth-goerli-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
geth-rinkeby:
|
|
||||||
image: ethereum/client-go:latest
|
|
||||||
expose:
|
|
||||||
- "8545"
|
|
||||||
- "6060"
|
|
||||||
- "30303"
|
|
||||||
volumes:
|
|
||||||
- geth-rinkeby:/.rinkeby
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command: "--rinkeby --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .rinkeby --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.geth-rinkeby-stripprefix.stripprefix.prefixes=/rinkeby"
|
|
||||||
- "traefik.http.services.geth-rinkeby.loadbalancer.server.port=8545"
|
|
||||||
- "traefik.http.routers.geth-rinkeby.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.geth-rinkeby.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.geth-rinkeby.rule=Host(`$DOMAIN`) && PathPrefix(`/rinkeby`)"
|
|
||||||
- "traefik.http.routers.geth-rinkeby.middlewares=geth-rinkeby-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
geth-ropsten:
|
|
||||||
image: ethereum/client-go:latest
|
|
||||||
expose:
|
|
||||||
- "8545"
|
|
||||||
- "6060"
|
|
||||||
- "30303"
|
|
||||||
volumes:
|
|
||||||
- geth-ropsten:/.ropsten
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command: "--ropsten --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .ropsten --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.geth-ropsten-stripprefix.stripprefix.prefixes=/ropsten"
|
|
||||||
- "traefik.http.services.geth-ropsten.loadbalancer.server.port=8545"
|
|
||||||
- "traefik.http.routers.geth-ropsten.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.geth-ropsten.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.geth-ropsten.rule=Host(`$DOMAIN`) && PathPrefix(`/ropsten`)"
|
|
||||||
- "traefik.http.routers.geth-ropsten.middlewares=geth-ropsten-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
xdai:
|
|
||||||
image: nethermind/nethermind:latest
|
|
||||||
expose:
|
|
||||||
- "8545"
|
|
||||||
- "40444"
|
|
||||||
ports:
|
|
||||||
- "40444:40444"
|
|
||||||
- "40444:40444/udp"
|
|
||||||
volumes:
|
|
||||||
- xdai:/nethermind_db/xdai
|
|
||||||
- ./xdai/xdai.cfg:/xdai.cfg
|
|
||||||
- ./xdai/xdai.json:/xdai.json
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command: "--config /xdai.cfg"
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.xdai-stripprefix.stripprefix.prefixes=/xdai"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.services.xdai.loadbalancer.server.port=8545"
|
|
||||||
- "traefik.http.routers.xdai.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.xdai.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.xdai.rule=Host(`$DOMAIN`) && PathPrefix(`/xdai`)"
|
|
||||||
- "traefik.http.routers.xdai.middlewares=xdai-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
harmony-mainnet:
|
|
||||||
build: ./harmony/build
|
|
||||||
command: bash -c "/harmony.sh && /binary --log.dir /harmony/log --run explorer --run.shard 0 --dns.zone t.hmny.io --http.ip 0.0.0.0 --datadir /harmony"
|
|
||||||
sysctls:
|
|
||||||
net.core.somaxconn: 1024
|
|
||||||
# net.core.netdev_max_backlog: 65536
|
|
||||||
net.ipv4.tcp_tw_reuse: 1
|
|
||||||
net.ipv4.tcp_rmem: 4096 65536 16777216
|
|
||||||
net.ipv4.tcp_wmem: 4096 65536 16777216
|
|
||||||
# net.ipv4.tcp_mem: 65536 131072 262144
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 65535
|
|
||||||
hard: 65535
|
|
||||||
expose:
|
|
||||||
- "9500"
|
|
||||||
- "9000"
|
|
||||||
- "6000"
|
|
||||||
- "30303"
|
|
||||||
volumes:
|
|
||||||
- harmony:/harmony/
|
|
||||||
- ./harmony/log:/harmony/log
|
|
||||||
- ./bootstrap_skript/harmony.sh:/harmony.sh
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.harmony-mainnet-stripprefix.stripprefix.prefixes=/harmony"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.services.harmony-mainnet.loadbalancer.server.port=9500"
|
|
||||||
- "traefik.http.routers.harmony-mainnet.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.harmony-mainnet.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.harmony-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/harmony`)"
|
|
||||||
- "traefik.http.routers.harmony-mainnet.middlewares=harmony-mainnet-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
erigon-trace:
|
|
||||||
image: thorax/erigon
|
|
||||||
expose:
|
|
||||||
- "30303"
|
|
||||||
- "30304"
|
|
||||||
- "9090"
|
|
||||||
volumes:
|
|
||||||
- erigon-trace:/home/erigon/.local/share/erigon
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command: erigon --chain mainnet --metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --private.api.addr=0.0.0.0:9090 --pprof --pprof.addr=0.0.0.0 --pprof.port=6061
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
rpcdaemon:
|
|
||||||
image: thorax/erigon:latest
|
|
||||||
command: rpcdaemon --datadir=/home/erigon/.local/share/erigon --private.api.addr=erigon-trace:9090 --txpool.api.addr=erigon-trace:9090 --http.addr=0.0.0.0 --http.vhosts=* --http.corsdomain=* --http.api=eth,erigon,web3,net,debug,trace,txpool --ws
|
|
||||||
pid: service:erigon-trace # Use erigon's PID namespace. It's required to open Erigon's DB from another process (RPCDaemon local-mode)
|
|
||||||
volumes:
|
|
||||||
- erigon-trace:/home/erigon/.local/share/erigon
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
expose:
|
|
||||||
- "8545"
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- "erigon-trace"
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.rpcdaemon-stripprefix.stripprefix.prefixes=/erigon"
|
|
||||||
- "traefik.http.services.rpcdaemon.loadbalancer.server.port=8545"
|
|
||||||
- "traefik.http.routers.rpcdaemon.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.rpcdaemon.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.rpcdaemon.rule=Host(`$DOMAIN`) && PathPrefix(`/erigon`)"
|
|
||||||
- "traefik.http.routers.rpcdaemon.middlewares=rpcdaemon-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
avalanche:
|
|
||||||
image: avaplatform/avalanchego
|
|
||||||
expose:
|
|
||||||
- "9650"
|
|
||||||
- "9651"
|
|
||||||
ports:
|
|
||||||
- "9651:9651/tcp"
|
|
||||||
- "9651:9651/udp"
|
|
||||||
volumes:
|
|
||||||
- avalanche:/root/.avalanchego
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command: "/avalanchego/build/avalanchego --http-host="
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.avalanche-stripprefix.stripprefix.prefixes=/avalanche"
|
|
||||||
- "traefik.http.services.avalanche.loadbalancer.server.port=8545"
|
|
||||||
- "traefik.http.routers.avalanche.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.avalanche.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.avalanche.rule=Host(`$DOMAIN`) && PathPrefix(`/avalanche`)"
|
|
||||||
- "traefik.http.routers.avalanche.middlewares=avalanche-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
pocket-testnet:
|
|
||||||
image: poktnetwork/pocket-core:stagenet-latest
|
|
||||||
ports:
|
|
||||||
- "127.0.0.1:8082:8081"
|
|
||||||
- "26657:26656"
|
|
||||||
expose:
|
|
||||||
- 26656
|
|
||||||
- 8081
|
|
||||||
command: pocket start --seeds=$POCKET_TEST_SEEDS --testnet
|
|
||||||
#command: pocket start --simulateRelay
|
|
||||||
environment:
|
|
||||||
- POCKET_CORE_KEY=$POCKET_CORE_KEY_TEST
|
|
||||||
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE_TEST
|
|
||||||
volumes:
|
|
||||||
- ./chains/chains_testnet.json:/home/app/.pocket/config/chains.json
|
|
||||||
- pocket-testnet:/home/app/.pocket
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.pocket-testnet-stripprefix.stripprefix.prefixes=/pokttest"
|
|
||||||
- "traefik.http.services.pocket-testnet.loadbalancer.server.port=8081"
|
|
||||||
- "traefik.http.routers.pocket-testnet.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.pocket-testnet.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.pocket-testnet.rule=Host(`$DOMAIN`) && PathPrefix(`/pokttest`)"
|
|
||||||
- "traefik.http.routers.pocket-testnet.middlewares=pocket-testnet-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
pocket-mainnet:
|
|
||||||
image: poktnetwork/pocket-core:stagenet-latest
|
|
||||||
ports:
|
|
||||||
- "127.0.0.1:8081:8081"
|
|
||||||
- "26656:26656"
|
|
||||||
expose:
|
|
||||||
- 26656
|
|
||||||
- 8081
|
|
||||||
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
|
||||||
#command: pocket start --simulateRelay
|
|
||||||
environment:
|
|
||||||
- POCKET_CORE_KEY=$POCKET_CORE_KEY
|
|
||||||
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE
|
|
||||||
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
|
||||||
volumes:
|
|
||||||
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
|
||||||
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
|
||||||
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
|
||||||
- pocket-mainnet:/home/app/.pocket
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.pocket-mainnet-stripprefix.stripprefix.prefixes=/pokt"
|
|
||||||
- "traefik.http.services.pocket-mainner.loadbalancer.server.port=8081"
|
|
||||||
- "traefik.http.routers.pocket-mainnet.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.pocket-mainnet.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.pocket-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/pokt`)"
|
|
||||||
- "traefik.http.routers.pocket-mainnet.middlewares=pocket-mainnet-stripprefix, ipwhitelist"
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
fusenetstat:
|
|
||||||
image: fusenet/netstat:1.0.0
|
|
||||||
command: "--instance-name 0xeb5Ca1d019e9D8b9aa9C47991993C84d1062628d --role node --parity-version 2.0.1 --fuseapp-version 1.0.0 --netstats-version 1.0.0"
|
|
||||||
network_mode: "service:fusenet"
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- fusenet
|
|
||||||
|
|
||||||
# wants udp and tcp port bindings on 30303
|
|
||||||
fusenet:
|
|
||||||
image: fusenet/node:2.0.1
|
|
||||||
expose:
|
|
||||||
- "8545"
|
|
||||||
- "8546"
|
|
||||||
- "30303"
|
|
||||||
environment:
|
|
||||||
- HOME=/home/parity
|
|
||||||
- PARITY_HOME_DIR=/home/parity/.local/share/io.parity.ethereum
|
|
||||||
- PARITY_CONFIG_FILE_CHAIN=/home/parity/.local/share/io.parity.ethereum/spec.json
|
|
||||||
- PARITY_CONFIG_FILE_BOOTNODES=/home/parity/.local/share/io.parity.ethereum/bootnodes.txt
|
|
||||||
- PARITY_CONFIG_FILE_TEMPLATE=/home/parity/.local/share/io.parity.ethereum/config_template.toml
|
|
||||||
- PARITY_DATA_DIR=/home/parity/.local/share/io.parity.ethereum/chains
|
|
||||||
- PARITY_BIN=/usr/local/bin/parity
|
|
||||||
- PARITY_WRAPPER_SCRIPT=/home/parity/parity_wrapper.sh
|
|
||||||
volumes:
|
|
||||||
- /root/fusenet/database:/data
|
|
||||||
- /root/fusenet/config:/config/custom
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command: "--role node --parity-args --no-warp --node-key 0xeb5Ca1d019e9D8b9aa9C47991993C84d1062628d --jsonrpc-threads 1 --jsonrpc-server-threads 4"
|
|
||||||
restart: unless-stopped
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
|
||||||
- "traefik.http.middlewares.fuse-stripprefix.stripprefix.prefixes=/fuse"
|
|
||||||
- "traefik.http.services.fuse.loadbalancer.server.port=8545"
|
|
||||||
- "traefik.http.routers.fuse.entrypoints=websecure"
|
|
||||||
- "traefik.http.routers.fuse.tls.certresolver=myresolver"
|
|
||||||
- "traefik.http.routers.fuse.rule=Host(`$DOMAIN`) && PathPrefix(`/fuse`)"
|
|
||||||
- "traefik.http.routers.fuse.middlewares=fuse-stripprefix, ipwhitelist"
|
|
||||||
|
|
||||||
|
|
||||||
### WIREGUARD
|
|
||||||
|
|
||||||
wireguard:
|
|
||||||
image: lscr.io/linuxserver/wireguard
|
|
||||||
container_name: wireguard
|
|
||||||
cap_add:
|
|
||||||
- NET_ADMIN
|
|
||||||
- SYS_MODULE
|
|
||||||
environment:
|
|
||||||
- PUID=$PUID
|
|
||||||
- PGID=$PGID
|
|
||||||
volumes:
|
|
||||||
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
|
||||||
- /lib/modules:/lib/modules
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
# Expose prometheus port
|
|
||||||
expose:
|
|
||||||
- 9090
|
|
||||||
ports:
|
|
||||||
- $SERVERPORT:$SERVERPORT/udp
|
|
||||||
sysctls:
|
|
||||||
- net.ipv4.conf.all.src_valid_mark=1
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
|
|
||||||
### MONITORING
|
|
||||||
|
|
||||||
prometheus:
|
|
||||||
image: prom/prometheus:v2.30.3
|
|
||||||
container_name: prometheus
|
|
||||||
volumes:
|
|
||||||
- ./prometheus/prometheus-rpc.yml:/etc/prometheus/prometheus.yml
|
|
||||||
- prometheus_data:/prometheus
|
|
||||||
command:
|
|
||||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
||||||
- '--storage.tsdb.path=/prometheus'
|
|
||||||
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
|
||||||
- '--web.console.templates=/etc/prometheus/consoles'
|
|
||||||
- '--storage.tsdb.retention.time=200h'
|
|
||||||
- '--web.enable-lifecycle'
|
|
||||||
restart: unless-stopped
|
|
||||||
network_mode: "service:wireguard"
|
|
||||||
labels:
|
|
||||||
org.label-schema.group: "monitoring"
|
|
||||||
depends_on:
|
|
||||||
- wireguard
|
|
||||||
|
|
||||||
nodeexporter:
|
|
||||||
image: prom/node-exporter:v1.2.2
|
|
||||||
container_name: nodeexporter
|
|
||||||
volumes:
|
|
||||||
- /proc:/host/proc:ro
|
|
||||||
- /sys:/host/sys:ro
|
|
||||||
- /:/rootfs:ro
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
command:
|
|
||||||
- '--path.procfs=/host/proc'
|
|
||||||
- '--path.rootfs=/rootfs'
|
|
||||||
- '--path.sysfs=/host/sys'
|
|
||||||
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
|
||||||
restart: unless-stopped
|
|
||||||
expose:
|
|
||||||
- 9100
|
|
||||||
labels:
|
|
||||||
org.label-schema.group: "monitoring"
|
|
||||||
|
|
||||||
cadvisor:
|
|
||||||
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
|
||||||
container_name: cadvisor
|
|
||||||
privileged: true
|
|
||||||
devices:
|
|
||||||
- /dev/kmsg:/dev/kmsg
|
|
||||||
volumes:
|
|
||||||
- /:/rootfs:ro
|
|
||||||
- /var/run:/var/run:ro
|
|
||||||
- /sys:/sys:ro
|
|
||||||
- /var/lib/docker:/var/lib/docker:ro
|
|
||||||
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
|
||||||
networks:
|
|
||||||
- chains
|
|
||||||
restart: unless-stopped
|
|
||||||
expose:
|
|
||||||
- 8080
|
|
||||||
labels:
|
|
||||||
org.label-schema.group: "monitoring"
|
|
||||||
|
|
||||||
### VOLUMES
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
xdai:
|
|
||||||
harmony:
|
|
||||||
geth-goerli:
|
|
||||||
geth-rinkeby:
|
|
||||||
geth-ropsten:
|
|
||||||
erigon-trace:
|
|
||||||
avalanche:
|
|
||||||
pocket-testnet:
|
|
||||||
pocket-mainnet:
|
|
||||||
prometheus_data:
|
|
||||||
|
|
||||||
networks:
|
|
||||||
chains:
|
|
||||||
driver: bridge
|
|
||||||
ipam:
|
|
||||||
config:
|
|
||||||
- subnet: 192.168.0.1/27
|
|
||||||
41
erigon.yml
Normal file
41
erigon.yml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
erigon-trace:
|
||||||
|
image: thorax/erigon
|
||||||
|
expose:
|
||||||
|
- "30303"
|
||||||
|
- "30304"
|
||||||
|
- "9090"
|
||||||
|
volumes:
|
||||||
|
- erigon-trace:/home/erigon/.local/share/erigon
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: erigon --chain mainnet --metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --private.api.addr=0.0.0.0:9090 --pprof --pprof.addr=0.0.0.0 --pprof.port=6061
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
rpcdaemon:
|
||||||
|
image: thorax/erigon:latest
|
||||||
|
command: rpcdaemon --datadir=/home/erigon/.local/share/erigon --private.api.addr=erigon-trace:9090 --txpool.api.addr=erigon-trace:9090 --http.addr=0.0.0.0 --http.vhosts=* --http.corsdomain=* --http.api=eth,erigon,web3,net,debug,trace,txpool --ws
|
||||||
|
pid: service:erigon-trace # Use erigon's PID namespace. It's required to open Erigon's DB from another process (RPCDaemon local-mode)
|
||||||
|
volumes:
|
||||||
|
- erigon-trace:/home/erigon/.local/share/erigon
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- "erigon-trace"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.rpcdaemon-stripprefix.stripprefix.prefixes=/erigon"
|
||||||
|
- "traefik.http.services.rpcdaemon.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.rpcdaemon.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.rpcdaemon.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.rpcdaemon.rule=Host(`$DOMAIN`) && PathPrefix(`/erigon`)"
|
||||||
|
- "traefik.http.routers.rpcdaemon.middlewares=rpcdaemon-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
erigon-trace_data:
|
||||||
29
evmos.yml
Normal file
29
evmos.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
evmos:
|
||||||
|
image: tharsishq/evmos:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
ports:
|
||||||
|
- "26657:26657"
|
||||||
|
- "26656:26656"
|
||||||
|
volumes:
|
||||||
|
- evmos_data:/root/.evmosd
|
||||||
|
command: "evmosd start"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.evmos-stripprefix.stripprefix.prefixes=/evmos"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.services.evmos.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.evmos.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.evmos.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.evmos.rule=Host(`$DOMAIN`) && PathPrefix(`/evmos`)"
|
||||||
|
- "traefik.http.routers.evmos.middlewares=evmos-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
evmos_data:
|
||||||
47
fuse.yml
Normal file
47
fuse.yml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
fusenetstat:
|
||||||
|
image: fusenet/netstat:1.0.0
|
||||||
|
command: "--instance-name 0xeb5Ca1d019e9D8b9aa9C47991993C84d1062628d --role node --parity-version 2.0.1 --fuseapp-version 1.0.0 --netstats-version 1.0.0"
|
||||||
|
network_mode: "service:fusenet"
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- fusenet
|
||||||
|
|
||||||
|
# wants udp and tcp port bindings on 30303
|
||||||
|
fusenet:
|
||||||
|
image: fusenet/node:2.0.1
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "8546"
|
||||||
|
- "30303"
|
||||||
|
environment:
|
||||||
|
- HOME=/home/parity
|
||||||
|
- PARITY_HOME_DIR=/home/parity/.local/share/io.parity.ethereum
|
||||||
|
- PARITY_CONFIG_FILE_CHAIN=/home/parity/.local/share/io.parity.ethereum/spec.json
|
||||||
|
- PARITY_CONFIG_FILE_BOOTNODES=/home/parity/.local/share/io.parity.ethereum/bootnodes.txt
|
||||||
|
- PARITY_CONFIG_FILE_TEMPLATE=/home/parity/.local/share/io.parity.ethereum/config_template.toml
|
||||||
|
- PARITY_DATA_DIR=/home/parity/.local/share/io.parity.ethereum/chains
|
||||||
|
- PARITY_BIN=/usr/local/bin/parity
|
||||||
|
- PARITY_WRAPPER_SCRIPT=/home/parity/parity_wrapper.sh
|
||||||
|
volumes:
|
||||||
|
- fusenet_data:/data
|
||||||
|
- fusenet_config:/config/custom
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--role node --parity-args --no-warp --node-key 0xeb5Ca1d019e9D8b9aa9C47991993C84d1062628d --jsonrpc-threads 1 --jsonrpc-server-threads 4"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.fuse-stripprefix.stripprefix.prefixes=/fuse"
|
||||||
|
- "traefik.http.services.fuse.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.fuse.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.fuse.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.fuse.rule=Host(`$DOMAIN`) && PathPrefix(`/fuse`)"
|
||||||
|
- "traefik.http.routers.fuse.middlewares=fuse-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
fusenet_data:
|
||||||
|
fusenet_config:
|
||||||
26
goerli.yml
Normal file
26
goerli.yml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
geth-goerli:
|
||||||
|
image: ethereum/client-go:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "6060"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- geth-goerli:/.goerli
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--goerli --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .goerli --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.geth-goerli-stripprefix.stripprefix.prefixes=/goerli"
|
||||||
|
- "traefik.http.services.geth-goerli.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.geth-goerli.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.geth-goerli.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.geth-goerli.rule=Host(`$DOMAIN`) && PathPrefix(`/goerli`)"
|
||||||
|
- "traefik.http.routers.geth-goerli.middlewares=geth-goerli-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
geth-goerli:
|
||||||
42
harmony.yml
Normal file
42
harmony.yml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
harmony-mainnet:
|
||||||
|
build: ./harmony/build
|
||||||
|
command: bash -c "/harmony.sh && /binary --log.dir /harmony/log --run explorer --run.shard 0 --dns.zone t.hmny.io --http.ip 0.0.0.0 --datadir /harmony"
|
||||||
|
sysctls:
|
||||||
|
net.core.somaxconn: 1024
|
||||||
|
# net.core.netdev_max_backlog: 65536
|
||||||
|
net.ipv4.tcp_tw_reuse: 1
|
||||||
|
net.ipv4.tcp_rmem: 4096 65536 16777216
|
||||||
|
net.ipv4.tcp_wmem: 4096 65536 16777216
|
||||||
|
# net.ipv4.tcp_mem: 65536 131072 262144
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 65535
|
||||||
|
hard: 65535
|
||||||
|
expose:
|
||||||
|
- "9500"
|
||||||
|
- "9000"
|
||||||
|
- "6000"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- harmony:/harmony/
|
||||||
|
- ./harmony/log:/harmony/log
|
||||||
|
- ./bootstrap_skript/harmony.sh:/harmony.sh
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.harmony-mainnet-stripprefix.stripprefix.prefixes=/harmony"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.services.harmony-mainnet.loadbalancer.server.port=9500"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/harmony`)"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.middlewares=harmony-mainnet-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
harmony:
|
||||||
@@ -1,35 +1,6 @@
|
|||||||
version: '3.1'
|
version: '3.1'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
harmony-mainnet:
|
|
||||||
build: ./harmony/build
|
|
||||||
command: bash -c "/harmony.sh && /binary --log.dir /harmony/log --run.shard 1 --dns.zone t.hmny.io --http.ip 0.0.0.0 --datadir /harmony"
|
|
||||||
sysctls:
|
|
||||||
net.core.somaxconn: 1024
|
|
||||||
# net.core.netdev_max_backlog: 65536
|
|
||||||
net.ipv4.tcp_tw_reuse: 1
|
|
||||||
net.ipv4.tcp_rmem: 4096 65536 16777216
|
|
||||||
net.ipv4.tcp_wmem: 4096 65536 16777216
|
|
||||||
# net.ipv4.tcp_mem: 65536 131072 262144
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 65535
|
|
||||||
hard: 65535
|
|
||||||
expose:
|
|
||||||
- "9500"
|
|
||||||
- "9000"
|
|
||||||
- "6000"
|
|
||||||
- "9900"
|
|
||||||
ports:
|
|
||||||
- 9000:9000/tcp
|
|
||||||
- 6000:6000/tcp
|
|
||||||
volumes:
|
|
||||||
- harmony_data:/harmony/
|
|
||||||
- ./harmony/keyfiles:/.hmy/blskeys
|
|
||||||
- ./harmony/log:/harmony/log
|
|
||||||
- ./bootstrap_skript/harmony.sh:/harmony.sh
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
### WIREGUARD
|
### WIREGUARD
|
||||||
|
|
||||||
@@ -66,8 +37,9 @@ services:
|
|||||||
image: prom/prometheus:v2.30.3
|
image: prom/prometheus:v2.30.3
|
||||||
container_name: prometheus
|
container_name: prometheus
|
||||||
volumes:
|
volumes:
|
||||||
- ./prometheus/prometheus-harmony.yml:/etc/prometheus/prometheus.yml
|
- ./prometheus/prometheus.autodiscover.yml:/etc/prometheus/prometheus.yml:ro
|
||||||
- prometheus_data:/prometheus
|
- prometheus_data:/prometheus:rw
|
||||||
|
- prometheus-docker-sd:/prometheus-docker-sd:ro
|
||||||
command:
|
command:
|
||||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
- '--storage.tsdb.path=/prometheus'
|
- '--storage.tsdb.path=/prometheus'
|
||||||
@@ -82,6 +54,13 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- wireguard
|
- wireguard
|
||||||
|
|
||||||
|
prometheus-docker-sd:
|
||||||
|
image: "stucky/prometheus-docker-sd:latest"
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- prometheus-docker-sd:/prometheus-docker-sd:rw
|
||||||
|
|
||||||
nodeexporter:
|
nodeexporter:
|
||||||
image: prom/node-exporter:v1.2.2
|
image: prom/node-exporter:v1.2.2
|
||||||
container_name: nodeexporter
|
container_name: nodeexporter
|
||||||
@@ -121,6 +100,5 @@ services:
|
|||||||
### VOLUMES
|
### VOLUMES
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
harmony_data:
|
|
||||||
prometheus_data:
|
prometheus_data:
|
||||||
|
prometheus-docker-sd:
|
||||||
38
pocket.yml
Normal file
38
pocket.yml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
pocket-mainnet:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
#- "127.0.0.1:8081:8081"
|
||||||
|
- "26656:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 8081
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POCKET_CORE_KEY
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-mainnet:/home/app/.pocket
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.pocket-mainnet-stripprefix.stripprefix.prefixes=/pokt"
|
||||||
|
- "traefik.http.services.pocket-mainner.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/pokt`)"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.middlewares=pocket-mainnet-stripprefix, ipwhitelist"
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pocket-mainnet:
|
||||||
34
polygon-archive.yml
Normal file
34
polygon-archive.yml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
bor:
|
||||||
|
build:
|
||||||
|
args:
|
||||||
|
UPSTREAM_VERSION: v0.2.14
|
||||||
|
context: ./polygon/bor
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
environment:
|
||||||
|
- BOOTSTRAP=0
|
||||||
|
- ARCHIVE=1
|
||||||
|
volumes:
|
||||||
|
- "bor_data:/datadir"
|
||||||
|
ports:
|
||||||
|
- "40303:40303"
|
||||||
|
- "40303:40303/udp"
|
||||||
|
depends_on:
|
||||||
|
- heimdallr
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.bor-stripprefix.stripprefix.prefixes=/polygon-archive"
|
||||||
|
- "traefik.http.services.bor.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.bor.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.bor.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.bor.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-archive`)"
|
||||||
|
- "traefik.http.routers.bor.middlewares=bor-stripprefix, ipwhitelist"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
bor_data:
|
||||||
52
polygon-base.yml
Normal file
52
polygon-base.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
rabbitmq:
|
||||||
|
container_name: rabbitmq
|
||||||
|
image: "rabbitmq:3-alpine"
|
||||||
|
ports:
|
||||||
|
- "5672"
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
heimdalld:
|
||||||
|
build: &ref_0
|
||||||
|
args:
|
||||||
|
UPSTREAM_VERSION: v0.2.7
|
||||||
|
context: ./polygon/heimdall
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
volumes:
|
||||||
|
- "heimdall_data:/root/.heimdalld"
|
||||||
|
ports:
|
||||||
|
- "26656:26656"
|
||||||
|
- "127.0.0.1:26657:26657"
|
||||||
|
depends_on:
|
||||||
|
- rabbitmq
|
||||||
|
- geth-mainnet
|
||||||
|
environment:
|
||||||
|
- MONIKER=StakeSquid
|
||||||
|
- SNAPSHOT_URL=https://matic-blockchain-snapshots.s3-accelerate.amazonaws.com/matic-mainnet/heimdall-snapshot-2022-02-20.tar.gz
|
||||||
|
- BOOTSTRAP=1
|
||||||
|
- "ETH1_RPC_URL=http://geth-mainnet:8545/"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
heimdallr:
|
||||||
|
environment:
|
||||||
|
- REST_SERVER=1
|
||||||
|
- "ETH1_RPC_URL=http://geth-mainnet:8545/"
|
||||||
|
build: *ref_0
|
||||||
|
volumes:
|
||||||
|
- "heimdall_data:/root/.heimdalld"
|
||||||
|
ports:
|
||||||
|
- "1317"
|
||||||
|
depends_on:
|
||||||
|
- heimdalld
|
||||||
|
- geth-mainnet
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
heimdall_data:
|
||||||
35
polygon-fullnode.yml
Normal file
35
polygon-fullnode.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
bor:
|
||||||
|
build:
|
||||||
|
args:
|
||||||
|
UPSTREAM_VERSION: v0.2.14
|
||||||
|
context: ./polygon/bor
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
environment:
|
||||||
|
- SNAPSHOT_URL=https://matic-blockchain-snapshots.s3-accelerate.amazonaws.com/matic-mainnet/bor-fullnode-snapshot-2022-02-20.tar.gz
|
||||||
|
- BOOTSTRAP=1
|
||||||
|
- ARCHIVE=0
|
||||||
|
volumes:
|
||||||
|
- "bor_data:/datadir"
|
||||||
|
ports:
|
||||||
|
- "40303:40303"
|
||||||
|
- "40303:40303/udp"
|
||||||
|
depends_on:
|
||||||
|
- heimdallr
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.bor-stripprefix.stripprefix.prefixes=/polygon"
|
||||||
|
- "traefik.http.services.bor.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.bor.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.bor.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.bor.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon`)"
|
||||||
|
- "traefik.http.routers.bor.middlewares=bor-stripprefix, ipwhitelist"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
bor_data:
|
||||||
28
polygon/bor/Dockerfile
Normal file
28
polygon/bor/Dockerfile
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Build Bor in a stock Go builder container
|
||||||
|
FROM golang:1.16-alpine as builder
|
||||||
|
|
||||||
|
# Install packages we need
|
||||||
|
RUN apk add --no-cache make gcc musl-dev linux-headers git
|
||||||
|
|
||||||
|
# Make a folder to work in
|
||||||
|
RUN mkdir /bor
|
||||||
|
|
||||||
|
# Grab UPSTREAM_VERSION from Build Args
|
||||||
|
ARG UPSTREAM_VERSION
|
||||||
|
|
||||||
|
# Clone the repo to that folder
|
||||||
|
RUN git clone --branch ${UPSTREAM_VERSION} https://github.com/maticnetwork/bor.git /bor
|
||||||
|
|
||||||
|
# Build Bor
|
||||||
|
RUN cd /bor && make bor
|
||||||
|
|
||||||
|
# Pull Bor into a second stage deploy alpine container
|
||||||
|
FROM alpine:latest
|
||||||
|
|
||||||
|
RUN apk add --no-cache ca-certificates curl jq
|
||||||
|
COPY --from=builder /bor/build/bin/bor /usr/local/bin/
|
||||||
|
|
||||||
|
# Set entrypoint
|
||||||
|
COPY ./scripts/entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||||
|
RUN chmod u+x /usr/local/bin/entrypoint.sh
|
||||||
|
ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]
|
||||||
60
polygon/bor/scripts/entrypoint.sh
Executable file
60
polygon/bor/scripts/entrypoint.sh
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# exit script on any error
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Set Bor Home Directory
|
||||||
|
BOR_HOME=/datadir
|
||||||
|
|
||||||
|
# Check for genesis file and download or update it if needed
|
||||||
|
if [ ! -f "${BOR_HOME}/genesis.json" ];
|
||||||
|
then
|
||||||
|
echo "setting up initial configurations"
|
||||||
|
cd ${BOR_HOME}
|
||||||
|
echo "downloading launch genesis file"
|
||||||
|
wget https://raw.githubusercontent.com/maticnetwork/launch/master/mainnet-v1/sentry/sentry/bor/genesis.json
|
||||||
|
echo "initializing bor with genesis file"
|
||||||
|
bor --datadir ${BOR_HOME} init ${BOR_HOME}/genesis.json
|
||||||
|
else
|
||||||
|
# Check if genesis file needs updating
|
||||||
|
cd ${BOR_HOME}
|
||||||
|
GREPSTRING=$(grep londonBlock genesis.json | wc -l) # v0-2-13 Update
|
||||||
|
if [ ${GREPSTRING} == 0 ];
|
||||||
|
then
|
||||||
|
echo "Updating Genesis File"
|
||||||
|
wget https://raw.githubusercontent.com/maticnetwork/launch/master/mainnet-v1/sentry/sentry/bor/genesis.json
|
||||||
|
bor --datadir ${BOR_HOME} init ${BOR_HOME}/genesis.json
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${BOOTSTRAP}" == 1 ] && [ -n "${SNAPSHOT_URL}" ] && [ ! -f "${BOR_HOME}/bootstrapped" ];
|
||||||
|
then
|
||||||
|
echo "downloading snapshot from ${SNAPSHOT_URL}"
|
||||||
|
mkdir -p ${BOR_HOME}/bor/chaindata
|
||||||
|
wget -c "${SNAPSHOT_URL}" -O - | tar -xz -C ${BOR_HOME}/bor/chaindata && touch ${BOR_HOME}/bootstrapped
|
||||||
|
fi
|
||||||
|
|
||||||
|
READY=$(curl -s http://heimdalld:26657/status | jq '.result.sync_info.catching_up')
|
||||||
|
while [[ "${READY}" != "false" ]];
|
||||||
|
do
|
||||||
|
echo "Waiting for heimdalld to catch up."
|
||||||
|
sleep 30
|
||||||
|
READY=$(curl -s heimdalld:26657/status | jq '.result.sync_info.catching_up')
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "${ARCHIVE}" == 1 ];
|
||||||
|
then
|
||||||
|
exec bor --port=40303 --maxpeers=${MAXPEERS:-200} --datadir=/datadir --networkid=137 --syncmode=full --gcmode=archive \
|
||||||
|
--ipcpath ${BOR_HOME}/bor.ipc --bor.heimdall=http://heimdallr:1317 \
|
||||||
|
--txpool.accountslots=16 --txpool.globalslots=131072 --txpool.accountqueue=64 --txpool.globalqueue=131072 \
|
||||||
|
--txpool.lifetime='1h30m0s' --miner.gaslimit=200000000 --miner.gastarget=20000000 --miner.gasprice '30000000000' \
|
||||||
|
--http --http.addr=0.0.0.0 --http.port=8545 --http.api=eth,net,web3,txpool,bor --http.corsdomain="*" --http.vhosts="*" \
|
||||||
|
--ws --ws.addr=0.0.0.0 --ws.port=8545 --ws.api=eth,net,web3,txpool,bor --ws.origins="*"
|
||||||
|
else
|
||||||
|
exec bor --port=40303 --maxpeers=${MAXPEERS:-200} --datadir=/datadir --networkid=137 --syncmode=full \
|
||||||
|
--ipcpath ${BOR_HOME}/bor.ipc --bor.heimdall=http://heimdallr:1317 \
|
||||||
|
--txpool.accountslots=16 --txpool.globalslots=131072 --txpool.accountqueue=64 --txpool.globalqueue=131072 \
|
||||||
|
--txpool.lifetime='1h30m0s' --miner.gaslimit=200000000 --miner.gastarget=20000000 --miner.gasprice '30000000000' \
|
||||||
|
--http --http.addr=0.0.0.0 --http.port=8545 --http.api=eth,net,web3,txpool,bor --http.corsdomain="*" --http.vhosts="*" \
|
||||||
|
--ws --ws.addr=0.0.0.0 --ws.port=8545 --ws.api=eth,net,web3,txpool,bor --ws.origins="*"
|
||||||
|
fi
|
||||||
50
polygon/geth-mainnet.yml
Normal file
50
polygon/geth-mainnet.yml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
geth-mainnet:
|
||||||
|
image: ethereum/client-go:stable
|
||||||
|
expose:
|
||||||
|
# HTTP server / GraphQL API
|
||||||
|
- 8545
|
||||||
|
ports:
|
||||||
|
- "30303:30303"
|
||||||
|
- "30303:30303/udp"
|
||||||
|
command:
|
||||||
|
[
|
||||||
|
# Blockchain sync mode ("snap", "full" or "light")
|
||||||
|
"--syncmode=snap",
|
||||||
|
# Megabytes of memory allocated to internal caching
|
||||||
|
"--cache=8192",
|
||||||
|
# Enable the WS-RPC server
|
||||||
|
"--ws",
|
||||||
|
"--ws.addr=0.0.0.0",
|
||||||
|
# Enable the HTTP-RPC server
|
||||||
|
"--http",
|
||||||
|
"--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",
|
||||||
|
# Ethereum mainnet
|
||||||
|
"--mainnet",
|
||||||
|
# Maximum number of network peers (network disabled if set to 0) (default: 50)
|
||||||
|
"--maxpeers=30"
|
||||||
|
]
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- "geth-mainnet_data:/root/.ethereum"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.mainnet-stripprefix.stripprefix.prefixes=/mainnet"
|
||||||
|
- "traefik.http.services.mainnet.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.mainnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.mainnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/mainnet`)"
|
||||||
|
- "traefik.http.routers.mainnet.middlewares=mainnet-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
geth-mainnet_data:
|
||||||
28
polygon/heimdall/Dockerfile
Normal file
28
polygon/heimdall/Dockerfile
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Build and Install Heimdall in a stock Go builder container
|
||||||
|
FROM golang:1.16-alpine
|
||||||
|
|
||||||
|
# Install packages we need
|
||||||
|
RUN apk add --no-cache make gcc musl-dev linux-headers git
|
||||||
|
|
||||||
|
# create go src directory and clone heimdall
|
||||||
|
RUN mkdir -p /root/heimdall
|
||||||
|
|
||||||
|
# Grab UPSTREAM_VERSION from Build Args
|
||||||
|
ARG UPSTREAM_VERSION
|
||||||
|
|
||||||
|
# Clone hemidall release into folder
|
||||||
|
RUN git clone --branch ${UPSTREAM_VERSION} https://github.com/maticnetwork/heimdall.git /root/heimdall
|
||||||
|
|
||||||
|
# change work directory
|
||||||
|
WORKDIR /root/heimdall
|
||||||
|
|
||||||
|
# GOBIN required for go install
|
||||||
|
ENV GOBIN $GOPATH/bin
|
||||||
|
|
||||||
|
# Make and Install Heimdall
|
||||||
|
RUN make install
|
||||||
|
|
||||||
|
# Set entrypoint
|
||||||
|
COPY ./scripts/entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||||
|
RUN chmod u+x /usr/local/bin/entrypoint.sh
|
||||||
|
ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]
|
||||||
50
polygon/heimdall/scripts/entrypoint.sh
Executable file
50
polygon/heimdall/scripts/entrypoint.sh
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh [1/1829]
|
||||||
|
|
||||||
|
# exit script on any error
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Set Heimdall Home Directory
|
||||||
|
HEIMDALLD_HOME=/root/.heimdalld
|
||||||
|
|
||||||
|
if [ ! -f "$HEIMDALLD_HOME/config/config.toml" ];
|
||||||
|
then
|
||||||
|
echo "setting up initial configurations"
|
||||||
|
heimdalld init
|
||||||
|
cd $HEIMDALLD_HOME/config
|
||||||
|
|
||||||
|
echo "removing autogenerated genesis file"
|
||||||
|
rm genesis.json
|
||||||
|
|
||||||
|
echo "downloading launch genesis file"
|
||||||
|
wget https://raw.githubusercontent.com/maticnetwork/launch/master/mainnet-v1/without-sentry/heimdall/config/genesis.json
|
||||||
|
|
||||||
|
echo "overwriting toml config lines"
|
||||||
|
# config.toml
|
||||||
|
# CORS
|
||||||
|
sed -i "s#^cors_allowed_origins.*#cors_allowed_origins = [\"*\"]#" config.toml
|
||||||
|
# SEEDS
|
||||||
|
sed -i "s#^seeds.*#seeds = \"${BOOTNODES:-"f4f605d60b8ffaaf15240564e58a81103510631c@159.203.9.164:26656,4fb1bc820088764a564d4f66bba1963d47d82329@44.232.55.71:26656"}\"#" config.toml
|
||||||
|
# heimdall-config.toml
|
||||||
|
# BOR
|
||||||
|
sed -i "s#^bor_rpc_url.*#bor_rpc_url = \"http://bor:8545\"#" heimdall-config.toml
|
||||||
|
# ETH1
|
||||||
|
sed -i "s#^eth_rpc_url.*#eth_rpc_url = \"${ETH1_RPC_URL}\"#" heimdall-config.toml
|
||||||
|
# RABBITMQ
|
||||||
|
sed -i "s#^amqp_url.*#amqp_url = \"amqp://guest:guest@rabbitmq:5672\"#" heimdall-config.toml
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${BOOTSTRAP}" == 1 ] && [ -n "${SNAPSHOT_URL}" ] && [ ! -f "$HEIMDALLD_HOME/bootstrapped" ];
|
||||||
|
then
|
||||||
|
echo "downloading snapshot from ${SNAPSHOT_URL}"
|
||||||
|
mkdir -p ${HEIMDALLD_HOME}/data
|
||||||
|
wget -c "${SNAPSHOT_URL}" -O - | tar -xz -C ${HEIMDALLD_HOME}/data && touch ${HEIMDALLD_HOME}/bootstrapped
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$REST_SERVER" ];
|
||||||
|
then
|
||||||
|
EXEC="heimdalld rest-server --chain-id=137 --laddr=tcp://0.0.0.0:1317 --max-open=1000 --node=tcp://heimdalld:26657 --trust-node=true"
|
||||||
|
else
|
||||||
|
EXEC="heimdalld start --moniker=$MONIKER --fast_sync --p2p.laddr=tcp://0.0.0.0:26656 --p2p.upnp=false --pruning=syncable --rpc.laddr=tcp://0.0.0.0:26657 --with-tendermint=true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec ${EXEC}
|
||||||
27
rinkeby.yml
Normal file
27
rinkeby.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
geth-rinkeby:
|
||||||
|
image: ethereum/client-go:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "6060"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- geth-rinkeby:/.rinkeby
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--rinkeby --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .rinkeby --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.geth-rinkeby-stripprefix.stripprefix.prefixes=/rinkeby"
|
||||||
|
- "traefik.http.services.geth-rinkeby.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.rule=Host(`$DOMAIN`) && PathPrefix(`/rinkeby`)"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.middlewares=geth-rinkeby-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
geth-rinkeby:
|
||||||
27
ropsten.yml
Normal file
27
ropsten.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
geth-ropsten:
|
||||||
|
image: ethereum/client-go:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "6060"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- geth-ropsten:/.ropsten
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--ropsten --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .ropsten --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.geth-ropsten-stripprefix.stripprefix.prefixes=/ropsten"
|
||||||
|
- "traefik.http.services.geth-ropsten.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.geth-ropsten.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.geth-ropsten.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.geth-ropsten.rule=Host(`$DOMAIN`) && PathPrefix(`/ropsten`)"
|
||||||
|
- "traefik.http.routers.geth-ropsten.middlewares=geth-ropsten-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
geth-ropsten:
|
||||||
46
rpc-base.yml
Normal file
46
rpc-base.yml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
traefik:
|
||||||
|
image: traefik:latest
|
||||||
|
container_name: traefik
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "8082"
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
- "127.0.0.1:8080:8080"
|
||||||
|
command:
|
||||||
|
- "--api=true"
|
||||||
|
- "--api.insecure=true"
|
||||||
|
- "--api.dashboard=true"
|
||||||
|
- "--log.level=DEBUG"
|
||||||
|
- "--providers.docker=true"
|
||||||
|
- "--providers.docker.exposedbydefault=false"
|
||||||
|
- "--entrypoints.websecure.address=:443"
|
||||||
|
- "--entryPoints.metrics.address=:8082"
|
||||||
|
- "--metrics.prometheus.entryPoint=metrics"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||||||
|
# TESTING
|
||||||
|
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.email=$MAIL"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||||
|
volumes:
|
||||||
|
- "./traefik/letsencrypt:/letsencrypt"
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
#labels:
|
||||||
|
# - "traefik.enable=true"
|
||||||
|
# - "prometheus-scrape.enabled=true"
|
||||||
|
# - "prometheus-scrape.port=8082"
|
||||||
|
# - "prometheus-scrape.job_name=traefik"
|
||||||
|
|
||||||
|
|
||||||
|
networks:
|
||||||
|
chains:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.0.1/27
|
||||||
31
xdai.yml
Normal file
31
xdai.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
xdai:
|
||||||
|
image: nethermind/nethermind:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "40444"
|
||||||
|
ports:
|
||||||
|
- "40444:40444"
|
||||||
|
- "40444:40444/udp"
|
||||||
|
volumes:
|
||||||
|
- xdai:/nethermind_db/xdai
|
||||||
|
- ./xdai/xdai.cfg:/xdai.cfg
|
||||||
|
- ./xdai/xdai.json:/xdai.json
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--config /xdai.cfg"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.xdai-stripprefix.stripprefix.prefixes=/xdai"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.services.xdai.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.xdai.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.xdai.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.xdai.rule=Host(`$DOMAIN`) && PathPrefix(`/xdai`)"
|
||||||
|
- "traefik.http.routers.xdai.middlewares=xdai-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
xdai:
|
||||||
Reference in New Issue
Block a user