53 Commits

Author SHA1 Message Date
czarly
55f16856cf more 2022-11-23 08:34:55 +00:00
czarly
06c87462a6 some tweaks for blast archive 2022-11-23 08:19:21 +00:00
cventastic
894e464af8 add chains network to xdai-archive.yml 2022-11-19 10:36:57 +01:00
cventastic
bac89dcd18 new image tag 2022-11-17 15:59:23 +01:00
cventastic
5c68b48267 change author history 2022-11-17 13:19:23 +01:00
cventastic
12625e82b0 README.md 2022-11-08 21:57:44 +01:00
cventastic
d5049475cd non sustainable sync speed with vmtrace and statediif 2022-11-08 21:47:21 +01:00
cventastic
e1edc72d4e non sustainable sync speed with vmtrace and statediif 2022-11-08 21:29:11 +01:00
cventastic
8e5368e211 non sustainable sync speed with vmtrace and statediif 2022-11-08 21:26:38 +01:00
cventastic
8063a81d4d comment pokt-lt-3.
tight storage
2022-11-06 13:20:12 +01:00
cventastic
564d265a91 comment pokt-lt-3.
tight storage
2022-11-06 13:20:00 +01:00
cventastic
fce36dc430 migrate 2022-11-06 13:13:38 +01:00
cventastic
91dcdc706b migrate 2022-11-06 13:12:54 +01:00
cventastic
e9195f2c1a less peers, speed not good 2022-11-05 12:27:10 +01:00
cventastic
ee1707bf0f add more peers for speed? 2022-11-04 22:44:59 +01:00
cventastic
c9ae74831e add more peers for speed? 2022-11-04 21:12:52 +01:00
cventastic
b81e637fcf edit 2022-11-04 20:12:39 +01:00
cventastic
4d4b9060c6 new seeds 2022-11-04 10:31:06 +01:00
cventastic
03ce92bfc1 meh 2022-11-03 09:32:57 +01:00
cventastic
b2de047014 meh 2022-11-03 09:31:21 +01:00
cventastic
2b6e1020aa meh 2022-11-03 09:30:14 +01:00
cventastic
208fcfbf53 xdai-archive.yml
tracestore flags not working via environment
2022-11-03 09:29:18 +01:00
cventastic
4f282a205a xdai-archive.yml
try new trace flags per environment
2022-11-03 09:18:24 +01:00
cventastic
8f5a05c6a9 close ports 🤦 2022-11-01 11:48:30 +01:00
cventastic
015670c2ce new image in hopes of fixing trace call performance 2022-11-01 10:55:02 +01:00
cventastic
ff8791e6fc renamed 2022-11-01 10:40:00 +01:00
cventastic
e4056bc0c3 not only readme but really add xdai-archive.yml 2022-11-01 10:34:10 +01:00
cventastic
c7656c6fd8 add xdai archive 2022-11-01 10:33:37 +01:00
cventastic
a6bc330a97 new pokt version 2022-10-27 02:02:55 +02:00
cventastic
e8267ff402 added new POKT version.
removed pocket-de.yml because its possible to use pocket-frontend.yml on hosts with one pocket container
2022-10-26 15:33:34 +02:00
cventastic
078b88cd16 added torrent download/upload limits 2022-10-26 14:59:04 +02:00
cventastic
1b228c0c35 correct image tag 2022-10-24 09:47:03 +02:00
cventastic
6db5e213eb specify goerli label 2022-10-24 09:45:05 +02:00
cventastic
6011dac0ce add --reconstruct-historic-states 2022-10-24 09:44:00 +02:00
cventastic
edb8d2bfc5 older version cause open issues for new one 2022-10-21 21:10:35 +02:00
cventastic
e33d3a5d85 path? 2022-10-21 21:05:37 +02:00
cventastic
c894badf77 lighthouse prater 2022-10-21 20:55:23 +02:00
cventastic
971e5ee6f9 add new version 2022-10-21 20:34:21 +02:00
cventastic
6211f15994 add new version 2022-10-21 20:33:22 +02:00
cventastic
eba55b0098 add erigon-goerli.yml 2022-10-21 20:08:39 +02:00
cventastic
97f3bb4644 add erigon-goerli.yml 2022-10-21 20:07:55 +02:00
cventastic
ac25454915 fix bootstrap folders 2022-10-20 10:28:34 +02:00
cventastic
a59dbb66dc add torrent.upload/download.rate to erigon in entrypoint.sh 2022-10-19 14:39:11 +02:00
cventastic
80cc6ce977 fix traefik flags for erigon-polygon.yml 2022-10-19 14:22:40 +02:00
cventastic
5e3263dec3 added flags to erigon in entrypoint.sh
rename volume in erigon-polygon.yml
2022-10-19 14:16:05 +02:00
cventastic
aab7c74474 Merge branch 'main' of github.com:cventastic/POKT_DOKT 2022-10-19 12:50:58 +02:00
czarly
a12453aa1d fix 2022-10-19 14:02:31 +04:00
czarly
adfff835d1 fix 2022-10-19 13:47:55 +04:00
czarly
4fdba5f39a fix 2022-10-19 13:41:34 +04:00
czarly
5a89240a61 fix 2022-10-19 13:33:49 +04:00
czarly
4b40259c93 fix 2022-10-19 13:33:02 +04:00
czarly
79e58187f1 route dshackle via traefik and add prometheus scraping 2022-10-19 13:29:55 +04:00
czarly
cca28c35a7 added dshackle confgured with free node providers for ethereum 2022-10-19 13:20:24 +04:00
24 changed files with 689 additions and 99 deletions

View File

@@ -1,8 +1,20 @@
### Docs ### Docs
.envs:
xdai:
```
XDAI_RPC_URL=http://xdai-archive:8545
PUBLIC_IP=
TARGET_PEERS=80
```
TODO: TODO:
```
auto-generate .jwtsecret for beacon-execution connection auto-generate .jwtsecret for beacon-execution connection
Fix wireguard chains network for pocket-frontends Fix wireguard chains network for pocket-frontends
```
[Pocket Validator](README_POKT.md) </br> [Pocket Validator](README_POKT.md) </br>

62
dshackle.yml Normal file
View File

@@ -0,0 +1,62 @@
version: '3.1'
services:
dshackle:
image: emeraldpay/dshackle:0.13.1
restart: unless-stopped
volumes:
- ./dshackle/config:/etc/dshackle # This should hold all your yaml files
- ./dshackle/logs:/logs
expose:
- 8080 # /eth
- 8081 # /metrics
- 8082 # healthcheck
- 2449 # grpc
networks:
- chains
ports:
- "127.0.0.1:8082:8082" # healthcheck
- "127.0.0.1:8545:8080"
environment:
- ALCHEMY_KEY=${ALCHEMY_KEY}
- ANYBLOCK_KEY=${ANYBLOCK_KEY}
- CHAINSTACK_NODE=${CHAINSTACK_NODE}
- CHAINSTACK_USERNAME=${CHAINSTACK_USERNAME}
- CHAINSTACK_PASSWORD=${CHAINSTACK_PASSWORD}
- COINBASE_USERNAME=${COINBASE_USERNAME}
- COINBASE_PASSWORD=${COINBASE_PASSWORD}
- INFURA_KEY=${INFURA_KEY}
- RIVET_KEY=${RIVET_KEY}
- QUICKNODE_HTTP=${QUICKNODE_HTTP}
- QUICKNODE_WSS=${QUICKNODE_WSS}
labels:
- "prometheus-scrape.enabled=true"
- "prometheus-scrape.port=8081"
- "prometheus-scrape.job_name=dshackle"
- "prometheus-scrape.metrics_path=/metrics"
- "traefik.enable=true"
- "traefik.http.middlewares.dshackle-stripprefix.stripprefix.prefixes=/eth-archive"
- "traefik.http.middlewares.shackle-replacepath.replacepath.path=/eth"
- "traefik.http.services.dshackle.loadbalancer.server.port=8080"
- "traefik.http.routers.dshackle.entrypoints=websecure"
- "traefik.http.routers.dshackle.tls.certresolver=myresolver"
- "traefik.http.routers.dshackle.rule=Host(`$DOMAIN`) && PathPrefix(`/eth-archive`)"
- "traefik.http.routers.dshackle.middlewares=dshackle-stripprefix, dshackle-replacepath, ipwhitelist"
- "traefik.http.routers.dshackle.middlewares=dshackle-stripprefix, ipwhitelist"
redis:
image: healthcheck/redis:alpine
restart: unless-stopped
networks:
- chains
environment:
- REDIS_RAM=${REDIS_RAM}
command:
- "redis-server"
- "--maxmemory ${REDIS_RAM}"
- "--maxmemory-policy allkeys-lru"
- '--save ""'

View File

@@ -0,0 +1,41 @@
upstreams:
- id: alchemy
chain: ethereum
role: fallback
priority: 90
options:
disable-validation: false
validate-peers: false
validate-syncing: true
methods:
enabled:
# Manually Enabled
- name: alchemy_getAssetTransfers
- name: alchemy_getTokenAllowance
- name: alchemy_getTokenBalances
- name: alchemy_getTokenMetadata
- name: eth_getFilterChanges
- name: eth_getFilterLogs
- name: eth_maxPriorityFeePerGas
- name: eth_newBlockFilter
- name: eth_newFilter
- name: eth_newPendingTransactionFilter
- name: eth_subscribe
- name: eth_uninstallFilter
- name: eth_unsubscribe
- name: trace_block
- name: trace_call
- name: trace_callMany
- name: trace_filter
- name: trace_get
- name: trace_rawTransaction
- name: trace_replayBlockTransactions
- name: trace_replayTransaction
- name: trace_transaction
connection:
ethereum:
rpc:
url: "https://eth-mainnet.alchemyapi.io/v2/${ALCHEMY_KEY}"
ws:
url: "wss://eth-mainnet.ws.alchemyapi.io/v2/${ALCHEMY_KEY}"

14
dshackle/config/ankr.yaml Normal file
View File

@@ -0,0 +1,14 @@
upstreams:
- id: ankr
chain: ethereum
role: fallback
priority: 80
options:
disable-validation: false
validate-peers: false
validate-syncing: true
connection:
ethereum:
rpc:
url: "https://rpc.ankr.com/eth"

View File

@@ -0,0 +1,14 @@
upstreams:
- id: anyblock
chain: ethereum
role: fallback
priority: 70
options:
disable-validation: false
validate-peers: false
validate-syncing: true
connection:
ethereum:
rpc:
url: "https://api.anyblock.tools/ethereum/ethereum/mainnet/rpc/${ANYBLOCK_KEY}"

View File

@@ -0,0 +1,14 @@
upstreams:
- id: avado
chain: ethereum
role: fallback
priority: 60
options:
disable-validation: false
validate-peers: false
validate-syncing: true
connection:
ethereum:
rpc:
url: "https://mainnet.eth.cloud.ava.do"

View File

@@ -0,0 +1,22 @@
upstreams:
- id: chainstack
chain: ethereum
role: fallback
priority: 50
options:
disable-validation: false
validate-peers: false
validate-syncing: true
connection:
ethereum:
rpc:
url: "https://${CHAINSTACK_NODE}.p2pify.com"
basic-auth:
username: ${CHAINSTACK_USERNAME}
password: ${CHAINSTACK_PASSWORD}
ws:
url: "wss://ws-${CHAINSTACK_NODE}.p2pify.com"
basic-auth:
username: ${CHAINSTACK_USERNAME}
password: ${CHAINSTACK_PASSWORD}

View File

@@ -0,0 +1,14 @@
upstreams:
- id: cloudflare
chain: ethereum
role: fallback
priority: 40
options:
disable-validation: false
validate-peers: false
validate-syncing: true
connection:
ethereum:
rpc:
url: "https://cloudflare-eth.com"

View File

@@ -0,0 +1,31 @@
upstreams:
- id: coinbase
chain: ethereum
role: secondary
priority: 30
labels:
provider: geth
archive: false
options:
disable-validation: false
validate-peers: false
validate-syncing: true
methods:
enabled:
# Manually Enabled
- name: coinbaseCloud_getBalances
- name: coinbaseCloud_getSingleBalance
- name: coinbaseCloud_getTokenAllowances
- name: coinbaseCloud_getTransactionByHash
- name: coinbaseCloud_getTransactionsByAddress
- name: coinbaseCloud_getTokenTransfersByAddress
- name: coinbaseCloud_getTokenMetadata
- name: coinbaseCloud_getTokenStandardEvents
connection:
ethereum:
rpc:
url: "https://mainnet.ethereum.coinbasecloud.net"
basic-auth:
username: ${COINBASE_USERNAME}
password: ${COINBASE_PASSWORD}

View File

@@ -0,0 +1,27 @@
upstreams:
- id: de-1-erigon
chain: ethereum
labels:
provider: stakesquid-de-1-erigon
priority: 100
methods:
enabled:
# Manually Enabled
- name: trace_block
- name: trace_call
- name: trace_callMany
- name: trace_filter
- name: trace_get
- name: trace_transaction
disabled:
- name: eth_chainId
- name: eth_chainID
- name: eth_chainid
connection:
ethereum:
rpc:
url: "https://rpc-de-1.stakesquid.eu/erigon"
ws:
frameSize: 20Mb
msgSize: 50Mb
url: "wss://rpc-de-1.stakesquid.eu/erigon"

View File

@@ -0,0 +1,44 @@
upstreams:
- id: de-4-mainnet
chain: ethereum
labels:
provider: stakesquid-de-4-mainnet
priority: 120
methods:
enabled:
# Manually Enabled
- name: eth_chainid
- name: eth_chainId
- name: eth_chainID
disabled:
- name: eth_blockNumber
- name: eth_call
- name: eth_estimateGas
- name: eth_feeHistory
- name: eth_gasPrice
- name: eth_getBalance
- name: eth_getBlockByHash
- name: eth_getBlockByNumber
- name: eth_getBlockTransactionCountByHash
- name: eth_getBlockTransactionCountByNumber
- name: eth_getCode
- name: eth_getLogs
- name: eth_getStorageAt
- name: eth_getTransactionByBlockHashAndIndex
- name: eth_getTransactionByBlockNumberAndIndex
- name: eth_getTransactionByHash
- name: eth_getTransactionCount
- name: eth_getTransactionReceipt
- name: eth_getUncleByBlockHashAndIndex
- name: eth_getUncleByBlockNumberAndIndex
- name: eth_getUncleCountByBlockHash
- name: eth_getUncleCountByBlockNumber
- name: eth_sendRawTransaction
connection:
ethereum:
rpc:
url: "https://rpc-de-4.stakesquid.eu/mainnet"
ws:
frameSize: 20Mb
msgSize: 50Mb
url: "wss://rpc-de-4.stakesquid.eu/mainnet"

View File

@@ -0,0 +1,72 @@
host: 0.0.0.0
port: 2449
tls:
enabled: false
monitoring:
enabled: true
jvm: false
extended: false
prometheus:
enabled: true
bind: 0.0.0.0
port: 8081
path: /metrics
health:
port: 8082
host: 0.0.0.0
path: /health
blockchains:
- chain: ethereum
min-available: 1
cache:
redis:
enabled: true
host: redis
password: ""
proxy:
host: 0.0.0.0
port: 8080
tls:
enabled: false
routes:
- id: eth
blockchain: ethereum
accessLog:
enabled: true
include-messages: true
filename: /logs/access_log.jsonl
cluster:
defaults:
- chains:
- ethereum
options:
min-peers: 10
include:
# Private Nodes
#- "besu.yaml"
#- "geth.yaml"
#- "nethermind.yaml"
#- "erigon.yaml"
- "de-1-erigon.yaml"
- "fi-1-erigon.yaml"
#- "de-4-mainnet.yaml"
# Freemium Nodes
#- "alchemy.yaml"
#- "anyblock.yaml"
#- "chainstack.yaml"
#- "coinbase.yaml"
- "infura.yaml"
#- "quicknode.yaml"
#- "rivet.yaml"
# Public Nodes
#- "cloudflare.yaml"
#- "avado.yaml"
#- "ankr.yaml"

View File

@@ -0,0 +1,27 @@
upstreams:
- id: fi-1-erigon
chain: ethereum
labels:
provider: stakesquid-fi-1-erigon
priority: 100
methods:
enabled:
# Manually Enabled
- name: trace_block
- name: trace_call
- name: trace_callMany
- name: trace_filter
- name: trace_get
- name: trace_transaction
disabled:
- name: eth_chainId
- name: eth_chainID
- name: eth_chainid
connection:
ethereum:
rpc:
url: "https://rpc-fi-1.stakesquid.eu/erigon"
ws:
frameSize: 20Mb
msgSize: 50Mb
url: "wss://rpc-fi-1.stakesquid.eu/erigon"

View File

@@ -0,0 +1,16 @@
upstreams:
- id: infura
chain: ethereum
role: fallback
priority: 20
options:
disable-validation: false
validate-peers: false
validate-syncing: true
connection:
ethereum:
rpc:
url: "https://mainnet.infura.io/v3/${INFURA_KEY}"
ws:
url: "wss://mainnet.infura.io/ws/v3/${INFURA_KEY}"

View File

@@ -0,0 +1,29 @@
upstreams:
- id: quicknode
chain: ethereum
role: fallback
priority: 140
options:
disable-validation: false
validate-peers: false
validate-syncing: true
methods:
enabled:
# Manually Enabled
- name: qn_broadcastRawTransaction
- name: qn_fetchNFTCollectionDetails
- name: qn_fetchNFTs
- name: qn_fetchNFTsByCollection
- name: qn_getTokenMetadataByContractAddress
- name: qn_getTokenMetadataBySymbol
- name: qn_getTransfersByNFT
- name: qn_getWalletTokenBalance
- name: qn_getWalletTokenTransactions
- name: qn_verifyNFTsOwner
connection:
ethereum:
rpc:
url: "${QUICKNODE_HTTP}"
ws:
url: "${QUICKNODE_WSS}"

View File

@@ -0,0 +1,16 @@
upstreams:
- id: rivet
chain: ethereum
role: fallback
priority: 10
options:
disable-validation: false
validate-peers: false
validate-syncing: true
connection:
ethereum:
rpc:
url: "https://${RIVET_KEY}.eth.rpc.rivet.cloud"
ws:
url: "wss://${RIVET_KEY}.eth.ws.rivet.cloud"

98
erigon-goerli.yml Normal file
View File

@@ -0,0 +1,98 @@
version: '3.1'
services:
erigon-trace:
image: thorax/erigon:v2022.10.01
expose:
- "30303"
- "30304"
- "9090"
volumes:
- erigon-trace:/home/erigon/.local/share/erigon
- .jwtsecret:/jwtsecret
networks:
- chains
command: >
erigon --chain goerli
--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
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--snapshots=true
--torrent.download.rate=1250mb
--torrent.upload.rate=1250mb
restart: unless-stopped
stop_grace_period: 1m
labels:
- "prometheus-scrape.enabled=true"
- "prometheus-scrape.port=6060"
- "prometheus-scrape.job_name=erigon"
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
rpcdaemon:
image: thorax/erigon:v2022.10.01
command: >
rpcdaemon --datadir=/home/erigon/.local/share/erigon/goerli
--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.rpcdaemon-stripprefix.stripprefix.prefixes=/erigon-goerli"
- "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-goerli`)"
- "traefik.http.routers.rpcdaemon.middlewares=rpcdaemon-stripprefix, ipwhitelist"
lighthouse:
image: sigp/lighthouse:latest-modern
ports:
- "9000:9000"
- "127.0.0.1:5052:5052"
volumes:
- .jwtsecret:/jwtsecret
- lighthouse_data:/root/.lighthouse
command: >
lighthouse beacon_node
--network prater
--reconstruct-historic-states
--execution-endpoint http://erigon-trace:8551
--execution-jwt /jwtsecret
--http
--http-address=0.0.0.0
restart: unless-stopped
stop_grace_period: 1m
networks:
- chains
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.lighthouse-stripprefix.stripprefix.prefixes=/lighthouse"
- "traefik.http.services.lighthouse.loadbalancer.server.port=5052"
- "traefik.http.routers.lighthouse.entrypoints=websecure"
- "traefik.http.routers.lighthouse.tls.certresolver=myresolver"
- "traefik.http.routers.lighthouse.rule=Host(`$DOMAIN`) && PathPrefix(`/lighthouse`)"
- "traefik.http.routers.lighthouse.middlewares=lighthouse-stripprefix, ipwhitelist"
volumes:
erigon-trace:
lighthouse_data:

View File

@@ -11,7 +11,7 @@ services:
- SNAPSHOT_URL=https://matic-blockchain-snapshots.s3-accelerate.amazonaws.com/matic-mainnet/erigon-archive-snapshot-2022-10-12.tar.gz - SNAPSHOT_URL=https://matic-blockchain-snapshots.s3-accelerate.amazonaws.com/matic-mainnet/erigon-archive-snapshot-2022-10-12.tar.gz
- BOOTSTRAP=1 - BOOTSTRAP=1
volumes: volumes:
- "bor-archive_data:/datadir" - "polygon-archive_data:/datadir"
ports: ports:
- "40303:40303" - "40303:40303"
- "40303:40303/udp" - "40303:40303/udp"
@@ -21,14 +21,14 @@ services:
stop_grace_period: 1m stop_grace_period: 1m
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.middlewares.bor-stripprefix.stripprefix.prefixes=/polygon-archive" - "traefik.http.middlewares.erigon-polygon-stripprefix.stripprefix.prefixes=/polygon-archive"
- "traefik.http.services.bor.loadbalancer.server.port=8545" - "traefik.http.services.erigon-polygon.loadbalancer.server.port=8545"
- "traefik.http.routers.bor.entrypoints=websecure" - "traefik.http.routers.erigon-polygon.entrypoints=websecure"
- "traefik.http.routers.bor.tls.certresolver=myresolver" - "traefik.http.routers.erigon-polygon.tls.certresolver=myresolver"
- "traefik.http.routers.bor.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-archive`)" - "traefik.http.routers.erigon-polygon.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-archive`)"
- "traefik.http.routers.bor.middlewares=bor-stripprefix, ipwhitelist" - "traefik.http.routers.erigon-polygon.middlewares=erigon-polygon-stripprefix, ipwhitelist"
networks: networks:
- chains - chains
volumes: volumes:
bor-archive_data: polygon-archive_data:

View File

@@ -16,6 +16,8 @@ services:
erigon --chain mainnet erigon --chain mainnet
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090 --private.api.addr=0.0.0.0:9090
--torrent.upload.rate="1250mb"
--torrent.download.rate="1250mb"
--pprof --pprof
--pprof.addr=0.0.0.0 --pprof.addr=0.0.0.0
--pprof.port=6061 --pprof.port=6061

View File

@@ -1,86 +0,0 @@
version: '3.1'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: always
ports:
- "443:443"
- "127.0.0.1:8080:8080"
expose:
- "8082"
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"
labels:
- "traefik.enable=true"
### POKT
pocket-de-1:
build: pokt
ports:
- "127.0.0.1:8081:8081"
- "26656:26656"
expose:
- 26656
- 26660
- 8081
- 8083
#command: pocket start --simulateRelay
environment:
- POCKET_CORE_KEY=$POKT_DE_1_POCKET_CORE_KEY
- POCKET_CORE_PASSPHRASE=$POKT_DE_1_POCKET_CORE_PASSPHRASE
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
volumes:
- pocket-de-1:/home/app/.pocket/data
- pocket-de-1-addrbook:/home/app/.pocket/addrbook
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.services.pocket-fr-1.loadbalancer.server.port=8081"
- "traefik.http.routers.pocket-fr-1.entrypoints=websecure"
- "traefik.http.routers.pocket-fr-1.tls.certresolver=myresolver"
- "traefik.http.routers.pocket-fr-1.rule=Host(`$POKT_DE_1_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
- "prometheus-scrape.enabled=true"
- "prometheus-scrape.port=8083"
- "prometheus-scrape.job_name=pocket-de-1"
haproxy:
build: haproxy
volumes:
- ./haproxy:/usr/local/etc/haproxy
expose:
- "8404"
- "80"
ports:
- "127.0.0.1:80:80"
restart: always
labels:
- "prometheus-scrape.enabled=true"
- "prometheus-scrape.port=8404"
- "prometheus-scrape.job_name=haproxy"
- "prometheus-scrape.metrics_path=/metrics"
### VOLUMES
volumes:
pocket-de-1:
pocket-de-1-addrbook:

View File

@@ -92,6 +92,34 @@ services:
- "prometheus-scrape.port=8083" - "prometheus-scrape.port=8083"
- "prometheus-scrape.job_name=pocket-lt-2" - "prometheus-scrape.job_name=pocket-lt-2"
# pocket-lt-3:
# build: pokt
# ports:
# - "127.0.0.1:8082:8081"
# - "26657:26656"
# expose:
# - 26656
# - 26660
# - 8081
# - 8083
# #command: pocket start --simulateRelay
# environment:
# - POCKET_CORE_KEY=$POKT_LT_3_POCKET_CORE_KEY
# - POCKET_CORE_PASSPHRASE=$POKT_LT_3_POCKET_CORE_PASSPHRASE
# - POCKET_SNAPSHOT=$POCKET_SNAPSHOT
# volumes:
# - pocket-lt-3:/home/app/.pocket/data
# - pocket-lt-3-addrbook:/home/app/.pocket/addrbook
# restart: unless-stopped
# labels:
# - "traefik.enable=true"
# - "traefik.http.services.pocket-lt-3.loadbalancer.server.port=8081"
# - "traefik.http.routers.pocket-lt-3.entrypoints=websecure"
# - "traefik.http.routers.pocket-lt-3.tls.certresolver=myresolver"
# - "traefik.http.routers.pocket-lt-3.rule=Host(`$POKT_LT_3_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
# - "prometheus-scrape.enabled=true"
# - "prometheus-scrape.port=8083"
# - "prometheus-scrape.job_name=pocket-lt-3"
haproxy: haproxy:
build: haproxy build: haproxy
@@ -115,3 +143,5 @@ volumes:
pocket-lt-1-addrbook: pocket-lt-1-addrbook:
pocket-lt-2: pocket-lt-2:
pocket-lt-2-addrbook: pocket-lt-2-addrbook:
# pocket-lt-3:
# pocket-lt-3-addrbook:

View File

@@ -1,4 +1,4 @@
FROM poktnetwork/pocket-core:RC-0.9.1.1 FROM poktnetwork/pocket-core:RC-0.9.1.3
COPY --chown=1005:1001 config.json /home/app/.pocket/config/config.json COPY --chown=1005:1001 config.json /home/app/.pocket/config/config.json
COPY --chown=1005:1001 chains.json /home/app/.pocket/config/chains.json COPY --chown=1005:1001 chains.json /home/app/.pocket/config/chains.json
@@ -8,6 +8,6 @@ RUN mkdir /home/app/.pocket/data
RUN chown -R 1005:1001 /home/app/.pocket/data RUN chown -R 1005:1001 /home/app/.pocket/data
ENV POCKET_MAIN_SEEDS=361b1936d3fbe516628ebd6a503920fc4fc0f6a7@seed.pokt.rivet.cloud:26656,03b74fa3c68356bb40d58ecc10129479b159a145@seed1.mainnet.pokt.network:20656,64c91701ea98440bc3674fdb9a99311461cdfd6f@seed2.mainnet.pokt.network:21656,0057ee693f3ce332c4ffcb499ede024c586ae37b@seed3.mainnet.pokt.network:22856,9fd99b89947c6af57cd0269ad01ecb99960177cd@seed4.mainnet.pokt.network:23856,1243026603e9073507a3157bc4de99da74a078fc@seed5.mainnet.pokt.network:24856,6282b55feaff460bb35820363f1eb26237cf5ac3@seed6.mainnet.pokt.network:25856,3640ee055889befbc912dd7d3ed27d6791139395@seed7.mainnet.pokt.network:26856,1951cded4489bf51af56f3dbdd6df55c1a952b1a@seed8.mainnet.pokt.network:27856,a5f4a4cd88db9fd5def1574a0bffef3c6f354a76@seed9.mainnet.pokt.network:28856,d4039bd71d48def9f9f61f670c098b8956e52a08@seed10.mainnet.pokt.network:29856,5c133f07ed296bb9e21e3e42d5f26e0f7d2b2832@poktseed100.chainflow.io:26656 ENV POCKET_MAIN_SEEDS=03b74fa3c68356bb40d58ecc10129479b159a145@seed1.mainnet.pokt.network:20656,64c91701ea98440bc3674fdb9a99311461cdfd6f@seed2.mainnet.pokt.network:21656,0057ee693f3ce332c4ffcb499ede024c586ae37b@seed3.mainnet.pokt.network:22856,9fd99b89947c6af57cd0269ad01ecb99960177cd@seed4.mainnet.pokt.network:23856,f2a4d0ec9d50ea61db18452d191687c899c3ca42@seed5.mainnet.pokt.network:24856,f2a9705924e8d0e11fed60484da2c3d22f7daba8@seed6.mainnet.pokt.network:25856,582177fd65dd03806eeaa2e21c9049e653672c7e@seed7.mainnet.pokt.network:26856,2ea0b13ab823986cfb44292add51ce8677b899ad@seed8.mainnet.pokt.network:27856,a5f4a4cd88db9fd5def1574a0bffef3c6f354a76@seed9.mainnet.pokt.network:28856,d4039bd71d48def9f9f61f670c098b8956e52a08@seed10.mainnet.pokt.network:29856,5c133f07ed296bb9e21e3e42d5f26e0f7d2b2832@poktseed100.chainflow.io:26656,361b1936d3fbe516628ebd6a503920fc4fc0f6a7@seed.pokt.rivet.cloud:26656
CMD ["bash", "/home/app/.pocket/bootstrap.sh", "&&", "pocket", "start", "--seeds", "361b1936d3fbe516628ebd6a503920fc4fc0f6a7@seed.pokt.rivet.cloud:26656,03b74fa3c68356bb40d58ecc10129479b159a145@seed1.mainnet.pokt.network:20656,64c91701ea98440bc3674fdb9a99311461cdfd6f@seed2.mainnet.pokt.network:21656,0057ee693f3ce332c4ffcb499ede024c586ae37b@seed3.mainnet.pokt.network:22856,9fd99b89947c6af57cd0269ad01ecb99960177cd@seed4.mainnet.pokt.network:23856,1243026603e9073507a3157bc4de99da74a078fc@seed5.mainnet.pokt.network:24856,6282b55feaff460bb35820363f1eb26237cf5ac3@seed6.mainnet.pokt.network:25856,3640ee055889befbc912dd7d3ed27d6791139395@seed7.mainnet.pokt.network:26856,1951cded4489bf51af56f3dbdd6df55c1a952b1a@seed8.mainnet.pokt.network:27856,a5f4a4cd88db9fd5def1574a0bffef3c6f354a76@seed9.mainnet.pokt.network:28856,d4039bd71d48def9f9f61f670c098b8956e52a08@seed10.mainnet.pokt.network:29856,5c133f07ed296bb9e21e3e42d5f26e0f7d2b2832@poktseed100.chainflow.io:26656", "--mainnet"] CMD ["bash", "/home/app/.pocket/bootstrap.sh", "&&", "pocket", "start", "--seeds", "03b74fa3c68356bb40d58ecc10129479b159a145@seed1.mainnet.pokt.network:20656,64c91701ea98440bc3674fdb9a99311461cdfd6f@seed2.mainnet.pokt.network:21656,0057ee693f3ce332c4ffcb499ede024c586ae37b@seed3.mainnet.pokt.network:22856,9fd99b89947c6af57cd0269ad01ecb99960177cd@seed4.mainnet.pokt.network:23856,f2a4d0ec9d50ea61db18452d191687c899c3ca42@seed5.mainnet.pokt.network:24856,f2a9705924e8d0e11fed60484da2c3d22f7daba8@seed6.mainnet.pokt.network:25856,582177fd65dd03806eeaa2e21c9049e653672c7e@seed7.mainnet.pokt.network:26856,2ea0b13ab823986cfb44292add51ce8677b899ad@seed8.mainnet.pokt.network:27856,a5f4a4cd88db9fd5def1574a0bffef3c6f354a76@seed9.mainnet.pokt.network:28856,d4039bd71d48def9f9f61f670c098b8956e52a08@seed10.mainnet.pokt.network:29856,5c133f07ed296bb9e21e3e42d5f26e0f7d2b2832@poktseed100.chainflow.io:26656,361b1936d3fbe516628ebd6a503920fc4fc0f6a7@seed.pokt.rivet.cloud:26656", "--mainnet"]

View File

@@ -10,8 +10,8 @@ ERIGON_HOME=/datadir
if [ "${BOOTSTRAP}" == 1 ] && [ -n "${SNAPSHOT_URL}" ] && [ ! -f "${ERIGON_HOME}/bootstrapped" ]; if [ "${BOOTSTRAP}" == 1 ] && [ -n "${SNAPSHOT_URL}" ] && [ ! -f "${ERIGON_HOME}/bootstrapped" ];
then then
echo "downloading snapshot from ${SNAPSHOT_URL}" echo "downloading snapshot from ${SNAPSHOT_URL}"
mkdir -p ${ERIGON_HOME}/bor/chaindata mkdir -p ${ERIGON_HOME}
wget --tries=0 -O - "${SNAPSHOT_URL}" | tar -xz -C ${ERIGON_HOME}/bor/chaindata && touch ${ERIGON_HOME}/bootstrapped wget --tries=0 -O - "${SNAPSHOT_URL}" | tar -xz -C ${ERIGON_HOME} && touch ${ERIGON_HOME}/bootstrapped
fi fi
READY=$(curl -s http://heimdalld:26657/status | jq '.result.sync_info.catching_up') READY=$(curl -s http://heimdalld:26657/status | jq '.result.sync_info.catching_up')
@@ -28,6 +28,10 @@ exec erigon \
--chain=bor-mainnet \ --chain=bor-mainnet \
--bor.heimdall=http://heimdallr:1317 \ --bor.heimdall=http://heimdallr:1317 \
--datadir=${ERIGON_HOME} \ --datadir=${ERIGON_HOME} \
--http --http.addr="0.0.0.0" --http.port="8545" --http.compression --http.vhosts="*" --http.corsdomain="*" --http.api="eth,debug,net,trace,web3,erigon,bor" \
--ws --ws.compression \
--snap.keepblocks=true \ --snap.keepblocks=true \
--snapshots="true" \
--torrent.upload.rate="1250mb" --torrent.download.rate="1250mb" \
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060 \ --metrics --metrics.addr=0.0.0.0 --metrics.port=6060 \
--pprof --pprof.addr=0.0.0.0 --pprof.port=6061 --pprof --pprof.addr=0.0.0.0 --pprof.port=6061

87
xdai-archive.yml Normal file
View File

@@ -0,0 +1,87 @@
version: '3.1'
# Client https://github.com/NethermindEth/nethermind
# Nethermind container as in https://github.com/gnosischain/documentation/blob/a46e0964c7e4f75bed0ff02f7ae157c4417f60bd/docs/node/execution-layer-validator.md#setup-as-archive-node
# Beaconchain container as in https://github.com/gnosischain/lighthouse-launch
services:
xdai-archive:
hostname: xdai-archive
container_name: xdai-archive
image: nethermindeth/nethermind:trace-db
restart: always
stop_grace_period: 1m
command: '--JsonRpc.Enabled true --JsonRpc.Host 0.0.0.0 --Metrics.Enabled true --TraceStore.Enabled true --TraceStore.BlocksToKeep 0 --TraceStore.TraceTypes Trace,Rewards'
ports:
- '30303:30303/tcp' # p2p
- '30303:30303/udp' # p2p
- '127.0.0.1:8545:8545'
- '127.0.0.1:9091:9091'
networks:
- chains
volumes:
- nethermind_db:/nethermind/nethermind_db
- nethermind_keystore:/nethermind/keystore
- nethermind_logs:/nethermind/logs
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- NETHERMIND_CONFIG=xdai_archive
- NETHERMIND_JSONRPCCONFIG_ENGINEENABLEDMODULES=[Eth,AccountAbstraction,Subscribe,TxPool,Web3,Personal,Proof,Net,Parity,Health,Trace]
- NETHERMIND_METRICSCONFIG_EXPOSEPORT=9091
- NETHERMIND_NETWORKCONFIG_MAXACTIVEPEERS=150
logging:
options:
max-size: "1000m"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.xdai-archive-stripprefix.stripprefix.prefixes=/xdai-archive"
- "traefik.http.services.xdai-archive.loadbalancer.server.port=8545"
- "traefik.http.routers.xdai-archive.entrypoints=websecure"
- "traefik.http.routers.xdai-archive.tls.certresolver=myresolver"
- "traefik.http.routers.xdai-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/xdai-archive`)"
- "traefik.http.routers.xdai-archive.middlewares=xdai-archive-stripprefix, ipwhitelist"
xdai-beacon:
image: sigp/lighthouse:v3.2.1
hostname: lighthouse-xdai
restart: always
stop_grace_period: 1m
command: |
lighthouse beacon_node
--network gnosis
--checkpoint-sync-url https://rpc-gbc.gnosischain.com/
--discovery-port 12000
--port 13000
--eth1-endpoints $XDAI_RPC_URL
--datadir /home/.eth2/beaconchaindata
--http-address 0.0.0.0
--http
--enr-address $PUBLIC_IP
--enr-udp-port 12000
--target-peers $TARGET_PEERS
--metrics
--metrics-address 0.0.0.0
--metrics-allow-origin *
--debug-level info
ports:
# HTTPPORT
# - 5052
# P2P
- '12000:12000/udp'
- '13000:13000'
networks:
- chains
volumes:
- lighthouse_xdai:/home/.eth2/beaconchaindata
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "1"
volumes:
nethermind_db:
nethermind_keystore:
nethermind_logs:
lighthouse_xdai: