Compare commits
53 Commits
erigon-pol
...
blast-ethe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55f16856cf | ||
|
|
06c87462a6 | ||
|
|
894e464af8 | ||
|
|
bac89dcd18 | ||
|
|
5c68b48267 | ||
|
|
12625e82b0 | ||
|
|
d5049475cd | ||
|
|
e1edc72d4e | ||
|
|
8e5368e211 | ||
|
|
8063a81d4d | ||
|
|
564d265a91 | ||
|
|
fce36dc430 | ||
|
|
91dcdc706b | ||
|
|
e9195f2c1a | ||
|
|
ee1707bf0f | ||
|
|
c9ae74831e | ||
|
|
b81e637fcf | ||
|
|
4d4b9060c6 | ||
|
|
03ce92bfc1 | ||
|
|
b2de047014 | ||
|
|
2b6e1020aa | ||
|
|
208fcfbf53 | ||
|
|
4f282a205a | ||
|
|
8f5a05c6a9 | ||
|
|
015670c2ce | ||
|
|
ff8791e6fc | ||
|
|
e4056bc0c3 | ||
|
|
c7656c6fd8 | ||
|
|
a6bc330a97 | ||
|
|
e8267ff402 | ||
|
|
078b88cd16 | ||
|
|
1b228c0c35 | ||
|
|
6db5e213eb | ||
|
|
6011dac0ce | ||
|
|
edb8d2bfc5 | ||
|
|
e33d3a5d85 | ||
|
|
c894badf77 | ||
|
|
971e5ee6f9 | ||
|
|
6211f15994 | ||
|
|
eba55b0098 | ||
|
|
97f3bb4644 | ||
|
|
ac25454915 | ||
|
|
a59dbb66dc | ||
|
|
80cc6ce977 | ||
|
|
5e3263dec3 | ||
|
|
aab7c74474 | ||
|
|
a12453aa1d | ||
|
|
adfff835d1 | ||
|
|
4fdba5f39a | ||
|
|
5a89240a61 | ||
|
|
4b40259c93 | ||
|
|
79e58187f1 | ||
|
|
cca28c35a7 |
12
README.md
12
README.md
@@ -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
62
dshackle.yml
Normal 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 ""'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
41
dshackle/config/alchemy.yaml
Normal file
41
dshackle/config/alchemy.yaml
Normal 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
14
dshackle/config/ankr.yaml
Normal 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"
|
||||||
|
|
||||||
14
dshackle/config/anyblock.yaml
Normal file
14
dshackle/config/anyblock.yaml
Normal 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}"
|
||||||
|
|
||||||
14
dshackle/config/avado.yaml
Normal file
14
dshackle/config/avado.yaml
Normal 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"
|
||||||
|
|
||||||
22
dshackle/config/chainstack.yaml
Normal file
22
dshackle/config/chainstack.yaml
Normal 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}
|
||||||
|
|
||||||
14
dshackle/config/cloudflare.yaml
Normal file
14
dshackle/config/cloudflare.yaml
Normal 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"
|
||||||
|
|
||||||
31
dshackle/config/coinbase.yaml
Normal file
31
dshackle/config/coinbase.yaml
Normal 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}
|
||||||
|
|
||||||
27
dshackle/config/de-1-erigon.yaml
Normal file
27
dshackle/config/de-1-erigon.yaml
Normal 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"
|
||||||
44
dshackle/config/de-4-mainnet.yaml
Normal file
44
dshackle/config/de-4-mainnet.yaml
Normal 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"
|
||||||
72
dshackle/config/dshackle.yaml
Normal file
72
dshackle/config/dshackle.yaml
Normal 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"
|
||||||
|
|
||||||
27
dshackle/config/fi-1-erigon.yaml
Normal file
27
dshackle/config/fi-1-erigon.yaml
Normal 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"
|
||||||
16
dshackle/config/infura.yaml
Normal file
16
dshackle/config/infura.yaml
Normal 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}"
|
||||||
|
|
||||||
29
dshackle/config/quicknode.yaml
Normal file
29
dshackle/config/quicknode.yaml
Normal 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}"
|
||||||
|
|
||||||
16
dshackle/config/rivet.yaml
Normal file
16
dshackle/config/rivet.yaml
Normal 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
98
erigon-goerli.yml
Normal 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:
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
|
||||||
|
|
||||||
@@ -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:
|
||||||
@@ -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"]
|
||||||
|
|||||||
@@ -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
87
xdai-archive.yml
Normal 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:
|
||||||
Reference in New Issue
Block a user