48 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
cventastic
115916a9f9 added libgcc and libstdc++ to polygon-erigon alpine container 2022-10-19 12:38:04 +02:00
cventastic
9cf3c5b71e replace bor with erigon for archive 2022-10-19 12:21:22 +02:00
15 changed files with 455 additions and 102 deletions

View File

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

View File

@@ -7,6 +7,7 @@ services:
restart: unless-stopped
volumes:
- ./dshackle/config:/etc/dshackle # This should hold all your yaml files
- ./dshackle/logs:/logs
expose:
- 8080 # /eth
- 8081 # /metrics
@@ -16,6 +17,7 @@ services:
- chains
ports:
- "127.0.0.1:8082:8082" # healthcheck
- "127.0.0.1:8545:8080"
environment:
- ALCHEMY_KEY=${ALCHEMY_KEY}
- ANYBLOCK_KEY=${ANYBLOCK_KEY}
@@ -34,13 +36,13 @@ services:
- "prometheus-scrape.job_name=dshackle"
- "prometheus-scrape.metrics_path=/metrics"
- "traefik.enable=true"
- "traefik.http.middlewares.dshackle-stripprefix.stripprefix.prefixes=/dshackle"
# - "traefik.http.middlewares.shackle-replacepath.replacepath.path=/eth"
- "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(`/dshackle`)"
# - "traefik.http.routers.dshackle.middlewares=dshackle-stripprefix, dshackle-replacepath, ipwhitelist"
- "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:

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

@@ -37,6 +37,11 @@ proxy:
- id: eth
blockchain: ethereum
accessLog:
enabled: true
include-messages: true
filename: /logs/access_log.jsonl
cluster:
defaults:
- chains:
@@ -49,16 +54,19 @@ cluster:
#- "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"
#- "alchemy.yaml"
#- "anyblock.yaml"
#- "chainstack.yaml"
#- "coinbase.yaml"
- "infura.yaml"
- "quicknode.yaml"
- "rivet.yaml"
#- "quicknode.yaml"
#- "rivet.yaml"
# Public Nodes
- "cloudflare.yaml"
- "avado.yaml"
- "ankr.yaml"
#- "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"

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:

34
erigon-polygon.yml Normal file
View File

@@ -0,0 +1,34 @@
version: '3.1'
services:
erigon-polygon:
build:
args:
ERIGON_VERSION: v0.0.3
context: ./polygon/erigon
dockerfile: Dockerfile
environment:
- SNAPSHOT_URL=https://matic-blockchain-snapshots.s3-accelerate.amazonaws.com/matic-mainnet/erigon-archive-snapshot-2022-10-12.tar.gz
- BOOTSTRAP=1
volumes:
- "polygon-archive_data:/datadir"
ports:
- "40303:40303"
- "40303:40303/udp"
depends_on:
- heimdallr
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.erigon-polygon-stripprefix.stripprefix.prefixes=/polygon-archive"
- "traefik.http.services.erigon-polygon.loadbalancer.server.port=8545"
- "traefik.http.routers.erigon-polygon.entrypoints=websecure"
- "traefik.http.routers.erigon-polygon.tls.certresolver=myresolver"
- "traefik.http.routers.erigon-polygon.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-archive`)"
- "traefik.http.routers.erigon-polygon.middlewares=erigon-polygon-stripprefix, ipwhitelist"
networks:
- chains
volumes:
polygon-archive_data:

View File

@@ -16,6 +16,8 @@ services:
erigon --chain mainnet
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090
--torrent.upload.rate="1250mb"
--torrent.download.rate="1250mb"
--pprof
--pprof.addr=0.0.0.0
--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.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:
build: haproxy
@@ -115,3 +143,5 @@ volumes:
pocket-lt-1-addrbook:
pocket-lt-2:
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 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
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"]

31
polygon/erigon/Dockerfile Normal file
View File

@@ -0,0 +1,31 @@
# Build Bor in a stock Go builder container
FROM golang:1.19-alpine as builder
# Install packages we need
RUN apk add --no-cache make g++ gcc musl-dev linux-headers git
# Grab ERIGON_VERSION from Build Args
ARG ERIGON_VERSION
# Clone the repo to that folder
RUN git clone --recurse-submodules -j8 https://github.com/maticnetwork/erigon.git
# change into repo
WORKDIR ./erigon
# checkout version
RUN git checkout ${ERIGON_VERSION}
# Build Bor
RUN make erigon
# Pull Bor into a second stage deploy alpine container
FROM alpine:latest
RUN apk add --no-cache ca-certificates curl jq libstdc++ libgcc
COPY --from=builder /go/erigon/build/bin/erigon /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" ]

View File

@@ -0,0 +1,37 @@
#!/bin/sh
# exit script on any error
set -e
# Set Bor Home Directory
ERIGON_HOME=/datadir
if [ "${BOOTSTRAP}" == 1 ] && [ -n "${SNAPSHOT_URL}" ] && [ ! -f "${ERIGON_HOME}/bootstrapped" ];
then
echo "downloading snapshot from ${SNAPSHOT_URL}"
mkdir -p ${ERIGON_HOME}
wget --tries=0 -O - "${SNAPSHOT_URL}" | tar -xz -C ${ERIGON_HOME} && touch ${ERIGON_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
# add snap.keepblocks=true as mentioned on https://snapshot.polygon.technology/
exec erigon \
--chain=bor-mainnet \
--bor.heimdall=http://heimdallr:1317 \
--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 \
--snapshots="true" \
--torrent.upload.rate="1250mb" --torrent.download.rate="1250mb" \
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060 \
--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: