Compare commits
228 Commits
harmony-va
...
bsc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96c90dee4b | ||
|
|
121c44446c | ||
|
|
6785eec7c6 | ||
|
|
a5aacfd4d9 | ||
|
|
3859c921ac | ||
|
|
7b0dae1272 | ||
|
|
34d27c0bfb | ||
|
|
5f3f9cd471 | ||
|
|
82fee8d3d6 | ||
|
|
f610486fcb | ||
|
|
367fe7e355 | ||
|
|
1f6e128144 | ||
|
|
bfe6db1eda | ||
|
|
ee90c39c29 | ||
|
|
f960e2a87c | ||
|
|
d6264c93bd | ||
|
|
2c8788a373 | ||
|
|
1c81b55c1b | ||
|
|
b202565599 | ||
|
|
68d4f07d67 | ||
|
|
51c432ae78 | ||
|
|
34ad7988b4 | ||
|
|
3eda933c49 | ||
|
|
91f49a9fef | ||
|
|
6bd308e0f9 | ||
|
|
4d129c0e46 | ||
|
|
c1b3cc99ad | ||
|
|
79ab34fc17 | ||
|
|
b3dd63d00a | ||
|
|
d9369f4f9a | ||
|
|
42f9a262c9 | ||
|
|
f83ed0170f | ||
|
|
a27a6be96f | ||
|
|
6296e14282 | ||
|
|
14483ea8a2 | ||
|
|
d8d5c6e436 | ||
|
|
b359aec426 | ||
|
|
05f4e2acb7 | ||
|
|
e21e48b8eb | ||
|
|
a734ac1171 | ||
|
|
4f422e48a1 | ||
|
|
1331b184d5 | ||
|
|
ff3e1b47c8 | ||
|
|
2cf4bac577 | ||
|
|
d29348e5fc | ||
|
|
b9c9379ba1 | ||
|
|
893ec05e73 | ||
|
|
67b0026430 | ||
|
|
4608233b1e | ||
|
|
05f67d7e59 | ||
|
|
c81945a6eb | ||
|
|
127fcd1d6f | ||
|
|
888251469f | ||
|
|
d3b529bc58 | ||
|
|
dac6a5c0eb | ||
|
|
05554dedbf | ||
|
|
b71bbcd45d | ||
|
|
83ef8d47ad | ||
|
|
32e474347f | ||
|
|
47667f1aeb | ||
|
|
297dd6dddb | ||
|
|
126daf767f | ||
|
|
6093e279ea | ||
|
|
7df451b58c | ||
|
|
25cf170ed6 | ||
|
|
7eb466e383 | ||
|
|
59cdc5eba2 | ||
|
|
7f25960c5a | ||
|
|
e6098398c6 | ||
|
|
d27fc8d269 | ||
|
|
7ea656b6c2 | ||
|
|
1d272cdc75 | ||
|
|
1713f8b759 | ||
|
|
3c8c624c10 | ||
|
|
6b18040473 | ||
|
|
4bff8010e6 | ||
|
|
c99af9a7ca | ||
|
|
ed8188db80 | ||
|
|
f311c54be4 | ||
|
|
4cd11a6c79 | ||
|
|
c5a77a8e3a | ||
|
|
2f4178daba | ||
|
|
69770762f3 | ||
|
|
b9ab440ef4 | ||
|
|
5639cf70b3 | ||
|
|
749e9ccc22 | ||
|
|
9718b6645e | ||
|
|
cc926af991 | ||
|
|
db7e7a51b5 | ||
|
|
3f3e19a675 | ||
|
|
a4faf06b74 | ||
|
|
1b14565870 | ||
|
|
2b24b182c8 | ||
|
|
019e9db840 | ||
|
|
91cec100f9 | ||
|
|
06a09c9dfb | ||
|
|
fbf7c7406d | ||
|
|
3bccfa038e | ||
|
|
e07f2359dd | ||
|
|
54558d6e5a | ||
|
|
b1dfc66c5f | ||
|
|
d61180a5cd | ||
|
|
23ee7b3fe4 | ||
|
|
be9a775de5 | ||
|
|
e5fd725e3e | ||
|
|
258e67da0b | ||
|
|
93c4f95ac8 | ||
|
|
099f6347c7 | ||
|
|
478b9bba91 | ||
|
|
4af8f8fb51 | ||
|
|
5cb05a7a2c | ||
|
|
d807c66150 | ||
|
|
b3b08b22b3 | ||
|
|
ccedf8d7e7 | ||
|
|
d56b59e47a | ||
|
|
e896bc69be | ||
|
|
8ec9a3156b | ||
|
|
ded282998c | ||
|
|
86b739b61b | ||
|
|
3c51faa5d4 | ||
|
|
2076f71dd5 | ||
|
|
af666cbdd7 | ||
|
|
340e443f0e | ||
|
|
30b0fa26be | ||
|
|
5073933208 | ||
|
|
7c0b95e47f | ||
|
|
6206373f04 | ||
|
|
da9569ba97 | ||
|
|
d2fd3e8a2e | ||
|
|
6e8be0bee5 | ||
|
|
1ec1148786 | ||
|
|
5e63e8589b | ||
|
|
4904b09f8c | ||
|
|
9202948739 | ||
|
|
c57a8396c9 | ||
|
|
8dcae76a80 | ||
|
|
33c9df931c | ||
|
|
39ed18953e | ||
|
|
43c8ca8872 | ||
|
|
df007ec024 | ||
|
|
70bd91277b | ||
|
|
c5cbde2d42 | ||
|
|
8cb58bc0cf | ||
|
|
591f305077 | ||
|
|
d4dd7c1049 | ||
|
|
324f92294f | ||
|
|
472b208ad3 | ||
|
|
a711631f84 | ||
|
|
f5a7bf912e | ||
|
|
d202032ee1 | ||
|
|
f20640c36e | ||
|
|
496136edeb | ||
|
|
351246021b | ||
|
|
9120c4b029 | ||
|
|
b1e7d3b6b5 | ||
|
|
901694f4a6 | ||
|
|
62edb08bd6 | ||
|
|
eacf6535b2 | ||
|
|
6491889c1b | ||
|
|
aeb6e72139 | ||
|
|
a521e0c258 | ||
|
|
e12f2267f5 | ||
|
|
44f277b77d | ||
|
|
510f7db452 | ||
|
|
012c6b6c9e | ||
|
|
a28bacd70d | ||
|
|
7200666d17 | ||
|
|
2d51371e40 | ||
|
|
baa59c67b9 | ||
|
|
0d0e15ee22 | ||
|
|
79599d9ae6 | ||
|
|
6e41db128a | ||
|
|
59addb79f4 | ||
|
|
bf367928ec | ||
|
|
7638132e52 | ||
|
|
2b6bc0909f | ||
|
|
e632c866b0 | ||
|
|
82093d60e8 | ||
|
|
d05a5e51ed | ||
|
|
5e10b5b69f | ||
|
|
cedc18d11d | ||
|
|
81b375a398 | ||
|
|
e55eb4b439 | ||
|
|
a2a0d2ba8b | ||
|
|
763ce51530 | ||
|
|
47d2863f1e | ||
|
|
c69a6bf08b | ||
|
|
84236b8de7 | ||
|
|
c36e81aaeb | ||
|
|
2b3cb73b48 | ||
|
|
4c05514207 | ||
|
|
1210ec6cf8 | ||
|
|
7050872fc8 | ||
|
|
c0ea42376d | ||
|
|
3788c55941 | ||
|
|
e8d7fe3c0d | ||
|
|
0c6a55b773 | ||
|
|
751f3db3cb | ||
|
|
ba1b091257 | ||
|
|
619b8245cd | ||
|
|
0747c10839 | ||
|
|
cf195e161d | ||
|
|
27392854d4 | ||
|
|
a0f6ed6dc5 | ||
|
|
8865df89e5 | ||
|
|
f43985edb9 | ||
|
|
e901b88030 | ||
|
|
a407f96e11 | ||
|
|
2c03e48d48 | ||
|
|
a932bd8e3b | ||
|
|
3b25d87098 | ||
|
|
a732bac611 | ||
|
|
2607864a10 | ||
|
|
9d5f4298c3 | ||
|
|
d32a161681 | ||
|
|
53753a8c8c | ||
|
|
723979e176 | ||
|
|
565a765c71 | ||
|
|
050d82021c | ||
|
|
605321e12c | ||
|
|
1afae2e6e6 | ||
|
|
59a7c17436 | ||
|
|
32478b158f | ||
|
|
8b00b96450 | ||
|
|
ea10406e71 | ||
|
|
a418d0e1e2 | ||
|
|
b7e2f76e58 | ||
|
|
7c1e67b70d |
22
README.md
22
README.md
@@ -1,20 +1,4 @@
|
|||||||
Place val.key and val.pass into ./harmony/keyfiles
|
### Docs
|
||||||
|
|
||||||
```
|
[Pocket Validator](README_POKT.md) </br>
|
||||||
docker-compose up -d
|
[Harmony Validator](harmony/README_HARMONY.md)
|
||||||
```
|
|
||||||
Check if Bootstrap is working.
|
|
||||||
```
|
|
||||||
docker logs -f pokt_dokt_harmony-mainnet_1
|
|
||||||
```
|
|
||||||
Logs are at:
|
|
||||||
```
|
|
||||||
harmony/log
|
|
||||||
```
|
|
||||||
|
|
||||||
HARMONY QUERY
|
|
||||||
```
|
|
||||||
curl --location --request POST 'https://$DOMAIN/' --header 'Content-Type: application/json' --data-raw '{"jsonrpc": "2.0", "method": "hmy_latestHeader", "params": [], "id": 1}'
|
|
||||||
```
|
|
||||||
|
|
||||||
[HMY CLI Flags](https://docs.harmony.one/home/network/validators/node-setup/installing-updating/installing-node/using-binary#option-2-setup-using-flag-parsing)
|
|
||||||
76
README_POKT.md
Normal file
76
README_POKT.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
Tested on Ubuntu 20.04.3 LTS
|
||||||
|
|
||||||
|
#### Prerequisites:
|
||||||
|
docker <br />
|
||||||
|
docker-compose <br />
|
||||||
|
DNS A-Record pointing to your server <br />
|
||||||
|
Wireguard-Server: Paste wireguard wg0.conf from wireguard-server to wireguard/config/wg0.conf <br />
|
||||||
|
.env File inside POKT-DOKT with secrets <br />
|
||||||
|
|
||||||
|
#### Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/cventastic/POKT_DOKT.git
|
||||||
|
cd POKT_DOKT
|
||||||
|
git reset --hard origin/main && git pull && ./util/prepare.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
# EXAMPLES
|
||||||
|
|
||||||
|
Start POKT in relay mode:
|
||||||
|
```
|
||||||
|
command: pocket start --simulateRelay
|
||||||
|
```
|
||||||
|
If you want to activly relay. You also have to Stake! <br />
|
||||||
|
Testnet-Faucet: (https://faucet.pokt.network/) <br />
|
||||||
|
How to stake: https://docs.pokt.network/home/paths/node-runner#stake-the-validator <br />
|
||||||
|
|
||||||
|
POKT QUERY for simulate-relay mode:
|
||||||
|
```
|
||||||
|
Pockt-Testnet:
|
||||||
|
curl -X POST --data '{"relay_network_id":"0002","payload":{"data":"{}","method":"POST","path":"v1/query/height","headers":{}}}' http://localhost:8082/v1/client/sim
|
||||||
|
Pocket-Mainnet:
|
||||||
|
curl -X POST --data '{"relay_network_id":"0001","payload":{"data":"{}","method":"POST","path":"v1/query/height","headers":{}}}' http://localhost:8081/v1/client/sim
|
||||||
|
```
|
||||||
|
|
||||||
|
GETH QUERY (from whitelisted servers e.g pokt-test) for simulate-relay mode:
|
||||||
|
```
|
||||||
|
Pocket-Testnet:
|
||||||
|
curl -X POST --data '{"relay_network_id":"0020","payload":{"data":"{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBalance\",\"params\":[\"0x1a8c807a6E4F624fCab01FEBf76a541d31B8345A\", \"latest\"],\"id\":1}","method":"POST","path":"","headers":{}}}' http://127.0.0.1:8082/v1/client/sim
|
||||||
|
curl -v -X POST --data '{"relay_network_id":"0020","payload":{"data":"{\"jsonrpc\":\"2.0\",\"method\":\"eth_syncing\",\"params\":[],\"id\":1}","method":"POST","path":"","headers":{}}}' http://127.0.0.1:8082/v1/client/sim
|
||||||
|
Pocket-Mainnet:
|
||||||
|
curl -X POST --data '{"relay_network_id":"0021","payload":{"data":"{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBalance\",\"params\":[\"0x1a8c807a6E4F624fCab01FEBf76a541d31B8345A\", \"latest\"],\"id\":1}","method":"POST","path":"","headers":{}}}' http://127.0.0.1:8081/v1/client/sim
|
||||||
|
curl -v -X POST --data '{"relay_network_id":"0021","payload":{"data":"{\"jsonrpc\":\"2.0\",\"method\":\"eth_syncing\",\"params\":[],\"id\":1}","method":"POST","path":"","headers":{}}}' http://127.0.0.1:8081/v1/client/sim
|
||||||
|
```
|
||||||
|
|
||||||
|
STANDARD GETH QUERY (from whitelistet server)
|
||||||
|
```
|
||||||
|
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' https://$RPCNODE/goerli
|
||||||
|
```
|
||||||
|
|
||||||
|
# SSL
|
||||||
|
I you want to test SSL comment in:
|
||||||
|
```
|
||||||
|
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||||
|
```
|
||||||
|
Check if there is a file here /traefic/letsencrypt/acme.json if yes, you have to delete it. <br />
|
||||||
|
Otherwise traefik will not issue the certificate for an existing domain. <br />
|
||||||
|
|
||||||
|
#### TODO !!!!
|
||||||
|
Bootstrapping from Snapshots <br />
|
||||||
|
Link-Timezone into containers.
|
||||||
|
|
||||||
|
AVALANCHE:
|
||||||
|
- Archive?
|
||||||
|
- Monitoring https://docs.avax.network/build/tools/dashboards/README
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
#### Monitoring
|
||||||
|
Telegram get group ids the bot is in:
|
||||||
|
```curl -X POST https://api.telegram.org/bot$TELEGRAM_API_TOKEN/getUpdates```
|
||||||
|
There has to be an event in the channel for the bot to get updates
|
||||||
|
|
||||||
|
### neue NODE
|
||||||
|
.env
|
||||||
|
rpc-timeout
|
||||||
|
whitelist
|
||||||
7
bootstrap_skript/pokt_mainnet.sh
Executable file
7
bootstrap_skript/pokt_mainnet.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if [ ! -f /home/app/.pocket/setupdone ]
|
||||||
|
then
|
||||||
|
mkdir -p /home/app/.pocket/data
|
||||||
|
echo "wget -q -O - '$POCKET_SNAPSHOT' | tar -xv -C /home/app/.pocket/data/"
|
||||||
|
wget -q -O - $POCKET_SNAPSHOT | tar -xv -C /home/app/.pocket/data/ && touch /home/app/.pocket/setupdone
|
||||||
|
fi
|
||||||
50
chains/chains_mainnet.json
Normal file
50
chains/chains_mainnet.json
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "0001",
|
||||||
|
"url": "http://haproxy/pokt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0004",
|
||||||
|
"url": "http://haproxy/bsc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0005",
|
||||||
|
"url": "http://haproxy/fuse"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0009",
|
||||||
|
"url": "http://haproxy/polygon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0021",
|
||||||
|
"url": "http://haproxy/mainnet"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0022",
|
||||||
|
"url": "http://haproxy/erigon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0023",
|
||||||
|
"url": "http://haproxy/ropsten"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0025",
|
||||||
|
"url": "http://haproxy/rinkeby"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0026",
|
||||||
|
"url": "http://haproxy/goerli"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0027",
|
||||||
|
"url": "http://haproxy/xdai"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0028",
|
||||||
|
"url": "http://haproxy/erigon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0040",
|
||||||
|
"url": "http://haproxy/harmony"
|
||||||
|
}
|
||||||
|
]
|
||||||
18
chains/chains_testnet.json
Normal file
18
chains/chains_testnet.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "0020",
|
||||||
|
"url": "http://haproxy/goerli"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0022",
|
||||||
|
"url": "http://haproxy/rinkeby"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0023",
|
||||||
|
"url": "http://haproxy/ropsten"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0002",
|
||||||
|
"url": "http://haproxy/pokttest"
|
||||||
|
}
|
||||||
|
]
|
||||||
434
docker-compose-rpc.yml
Normal file
434
docker-compose-rpc.yml
Normal file
@@ -0,0 +1,434 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
traefik:
|
||||||
|
image: traefik:latest
|
||||||
|
container_name: traefik
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
- "127.0.0.1:8080:8080"
|
||||||
|
command:
|
||||||
|
- "--api=true"
|
||||||
|
- "--api.insecure=true"
|
||||||
|
- "--api.dashboard=true"
|
||||||
|
- "--log.level=DEBUG"
|
||||||
|
- "--providers.docker=true"
|
||||||
|
- "--providers.docker.exposedbydefault=false"
|
||||||
|
- "--entrypoints.websecure.address=:443"
|
||||||
|
- "--entryPoints.metrics.address=:8082"
|
||||||
|
- "--metrics.prometheus.entryPoint=metrics"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||||||
|
# TESTING
|
||||||
|
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.email=$MAIL"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||||
|
volumes:
|
||||||
|
- "./traefik/letsencrypt:/letsencrypt"
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
|
||||||
|
### NODES
|
||||||
|
geth-goerli:
|
||||||
|
image: ethereum/client-go:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "6060"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- geth-goerli:/.goerli
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--goerli --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .goerli --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.geth-goerli-stripprefix.stripprefix.prefixes=/goerli"
|
||||||
|
- "traefik.http.services.geth-goerli.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.geth-goerli.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.geth-goerli.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.geth-goerli.rule=Host(`$DOMAIN`) && PathPrefix(`/goerli`)"
|
||||||
|
- "traefik.http.routers.geth-goerli.middlewares=geth-goerli-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
geth-rinkeby:
|
||||||
|
image: ethereum/client-go:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "6060"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- geth-rinkeby:/.rinkeby
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--rinkeby --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .rinkeby --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.geth-rinkeby-stripprefix.stripprefix.prefixes=/rinkeby"
|
||||||
|
- "traefik.http.services.geth-rinkeby.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.rule=Host(`$DOMAIN`) && PathPrefix(`/rinkeby`)"
|
||||||
|
- "traefik.http.routers.geth-rinkeby.middlewares=geth-rinkeby-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
geth-ropsten:
|
||||||
|
image: ethereum/client-go:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "6060"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- geth-ropsten:/.ropsten
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--ropsten --http --http.api eth,net --http.addr 0.0.0.0 --http.port 8545 --http.vhosts=* --syncmode full --datadir .ropsten --verbosity 3 --metrics.addr 0.0.0.0 --pprof.addr 0.0.0.0"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.geth-ropsten-stripprefix.stripprefix.prefixes=/ropsten"
|
||||||
|
- "traefik.http.services.geth-ropsten.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.geth-ropsten.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.geth-ropsten.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.geth-ropsten.rule=Host(`$DOMAIN`) && PathPrefix(`/ropsten`)"
|
||||||
|
- "traefik.http.routers.geth-ropsten.middlewares=geth-ropsten-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
xdai:
|
||||||
|
image: nethermind/nethermind:latest
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "40444"
|
||||||
|
ports:
|
||||||
|
- "40444:40444"
|
||||||
|
- "40444:40444/udp"
|
||||||
|
volumes:
|
||||||
|
- xdai:/nethermind_db/xdai
|
||||||
|
- ./xdai/xdai.cfg:/xdai.cfg
|
||||||
|
- ./xdai/xdai.json:/xdai.json
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--config /xdai.cfg"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.xdai-stripprefix.stripprefix.prefixes=/xdai"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.services.xdai.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.xdai.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.xdai.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.xdai.rule=Host(`$DOMAIN`) && PathPrefix(`/xdai`)"
|
||||||
|
- "traefik.http.routers.xdai.middlewares=xdai-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
harmony-mainnet:
|
||||||
|
build: ./harmony/build
|
||||||
|
command: bash -c "/harmony.sh && /binary --log.dir /harmony/log --run explorer --run.shard 0 --dns.zone t.hmny.io --http.ip 0.0.0.0 --datadir /harmony"
|
||||||
|
sysctls:
|
||||||
|
net.core.somaxconn: 1024
|
||||||
|
# net.core.netdev_max_backlog: 65536
|
||||||
|
net.ipv4.tcp_tw_reuse: 1
|
||||||
|
net.ipv4.tcp_rmem: 4096 65536 16777216
|
||||||
|
net.ipv4.tcp_wmem: 4096 65536 16777216
|
||||||
|
# net.ipv4.tcp_mem: 65536 131072 262144
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 65535
|
||||||
|
hard: 65535
|
||||||
|
expose:
|
||||||
|
- "9500"
|
||||||
|
- "9000"
|
||||||
|
- "6000"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- harmony:/harmony/
|
||||||
|
- ./harmony/log:/harmony/log
|
||||||
|
- ./bootstrap_skript/harmony.sh:/harmony.sh
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.harmony-mainnet-stripprefix.stripprefix.prefixes=/harmony"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.services.harmony-mainnet.loadbalancer.server.port=9500"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/harmony`)"
|
||||||
|
- "traefik.http.routers.harmony-mainnet.middlewares=harmony-mainnet-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
erigon-trace:
|
||||||
|
image: thorax/erigon
|
||||||
|
expose:
|
||||||
|
- "30303"
|
||||||
|
- "30304"
|
||||||
|
- "9090"
|
||||||
|
volumes:
|
||||||
|
- erigon-trace:/home/erigon/.local/share/erigon
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: erigon --chain mainnet --metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --private.api.addr=0.0.0.0:9090 --pprof --pprof.addr=0.0.0.0 --pprof.port=6061
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
rpcdaemon:
|
||||||
|
image: thorax/erigon:latest
|
||||||
|
command: rpcdaemon --datadir=/home/erigon/.local/share/erigon --private.api.addr=erigon-trace:9090 --txpool.api.addr=erigon-trace:9090 --http.addr=0.0.0.0 --http.vhosts=* --http.corsdomain=* --http.api=eth,erigon,web3,net,debug,trace,txpool --ws
|
||||||
|
pid: service:erigon-trace # Use erigon's PID namespace. It's required to open Erigon's DB from another process (RPCDaemon local-mode)
|
||||||
|
volumes:
|
||||||
|
- erigon-trace:/home/erigon/.local/share/erigon
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- "erigon-trace"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.rpcdaemon-stripprefix.stripprefix.prefixes=/erigon"
|
||||||
|
- "traefik.http.services.rpcdaemon.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.rpcdaemon.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.rpcdaemon.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.rpcdaemon.rule=Host(`$DOMAIN`) && PathPrefix(`/erigon`)"
|
||||||
|
- "traefik.http.routers.rpcdaemon.middlewares=rpcdaemon-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
avalanche:
|
||||||
|
image: avaplatform/avalanchego
|
||||||
|
expose:
|
||||||
|
- "9650"
|
||||||
|
- "9651"
|
||||||
|
ports:
|
||||||
|
- "9651:9651/tcp"
|
||||||
|
- "9651:9651/udp"
|
||||||
|
volumes:
|
||||||
|
- avalanche:/root/.avalanchego
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "/avalanchego/build/avalanchego --http-host="
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.avalanche-stripprefix.stripprefix.prefixes=/avalanche"
|
||||||
|
- "traefik.http.services.avalanche.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.avalanche.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.avalanche.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.avalanche.rule=Host(`$DOMAIN`) && PathPrefix(`/avalanche`)"
|
||||||
|
- "traefik.http.routers.avalanche.middlewares=avalanche-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
pocket-testnet:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8082:8081"
|
||||||
|
- "26657:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 8081
|
||||||
|
command: pocket start --seeds=$POCKET_TEST_SEEDS --testnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POCKET_CORE_KEY_TEST
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE_TEST
|
||||||
|
volumes:
|
||||||
|
- ./chains/chains_testnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- pocket-testnet:/home/app/.pocket
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.pocket-testnet-stripprefix.stripprefix.prefixes=/pokttest"
|
||||||
|
- "traefik.http.services.pocket-testnet.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-testnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-testnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-testnet.rule=Host(`$DOMAIN`) && PathPrefix(`/pokttest`)"
|
||||||
|
- "traefik.http.routers.pocket-testnet.middlewares=pocket-testnet-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
pocket-mainnet:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8081:8081"
|
||||||
|
- "26656:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 8081
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POCKET_CORE_KEY
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-mainnet:/home/app/.pocket
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.pocket-mainnet-stripprefix.stripprefix.prefixes=/pokt"
|
||||||
|
- "traefik.http.services.pocket-mainner.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/pokt`)"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.middlewares=pocket-mainnet-stripprefix, ipwhitelist"
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
fusenetstat:
|
||||||
|
image: fusenet/netstat:1.0.0
|
||||||
|
command: "--instance-name 0xeb5Ca1d019e9D8b9aa9C47991993C84d1062628d --role node --parity-version 2.0.1 --fuseapp-version 1.0.0 --netstats-version 1.0.0"
|
||||||
|
network_mode: "service:fusenet"
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- fusenet
|
||||||
|
|
||||||
|
# wants udp and tcp port bindings on 30303
|
||||||
|
fusenet:
|
||||||
|
image: fusenet/node:2.0.1
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "8546"
|
||||||
|
- "30303"
|
||||||
|
environment:
|
||||||
|
- HOME=/home/parity
|
||||||
|
- PARITY_HOME_DIR=/home/parity/.local/share/io.parity.ethereum
|
||||||
|
- PARITY_CONFIG_FILE_CHAIN=/home/parity/.local/share/io.parity.ethereum/spec.json
|
||||||
|
- PARITY_CONFIG_FILE_BOOTNODES=/home/parity/.local/share/io.parity.ethereum/bootnodes.txt
|
||||||
|
- PARITY_CONFIG_FILE_TEMPLATE=/home/parity/.local/share/io.parity.ethereum/config_template.toml
|
||||||
|
- PARITY_DATA_DIR=/home/parity/.local/share/io.parity.ethereum/chains
|
||||||
|
- PARITY_BIN=/usr/local/bin/parity
|
||||||
|
- PARITY_WRAPPER_SCRIPT=/home/parity/parity_wrapper.sh
|
||||||
|
volumes:
|
||||||
|
- /root/fusenet/database:/data
|
||||||
|
- /root/fusenet/config:/config/custom
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command: "--role node --parity-args --no-warp --node-key 0xeb5Ca1d019e9D8b9aa9C47991993C84d1062628d --jsonrpc-threads 1 --jsonrpc-server-threads 4"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.fuse-stripprefix.stripprefix.prefixes=/fuse"
|
||||||
|
- "traefik.http.services.fuse.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.fuse.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.fuse.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.fuse.rule=Host(`$DOMAIN`) && PathPrefix(`/fuse`)"
|
||||||
|
- "traefik.http.routers.fuse.middlewares=fuse-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
|
||||||
|
### WIREGUARD
|
||||||
|
|
||||||
|
wireguard:
|
||||||
|
image: lscr.io/linuxserver/wireguard
|
||||||
|
container_name: wireguard
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
- PUID=$PUID
|
||||||
|
- PGID=$PGID
|
||||||
|
volumes:
|
||||||
|
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
# Expose prometheus port
|
||||||
|
expose:
|
||||||
|
- 9090
|
||||||
|
ports:
|
||||||
|
- $SERVERPORT:$SERVERPORT/udp
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
|
||||||
|
### MONITORING
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:v2.30.3
|
||||||
|
container_name: prometheus
|
||||||
|
volumes:
|
||||||
|
- ./prometheus/prometheus-rpc.yml:/etc/prometheus/prometheus.yml
|
||||||
|
- prometheus_data:/prometheus
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--storage.tsdb.retention.time=200h'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
depends_on:
|
||||||
|
- wireguard
|
||||||
|
|
||||||
|
nodeexporter:
|
||||||
|
image: prom/node-exporter:v1.2.2
|
||||||
|
container_name: nodeexporter
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /:/rootfs:ro
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
command:
|
||||||
|
- '--path.procfs=/host/proc'
|
||||||
|
- '--path.rootfs=/rootfs'
|
||||||
|
- '--path.sysfs=/host/sys'
|
||||||
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9100
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- /dev/kmsg:/dev/kmsg
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker:/var/lib/docker:ro
|
||||||
|
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
### VOLUMES
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
xdai:
|
||||||
|
harmony:
|
||||||
|
geth-goerli:
|
||||||
|
geth-rinkeby:
|
||||||
|
geth-ropsten:
|
||||||
|
erigon-trace:
|
||||||
|
avalanche:
|
||||||
|
pocket-testnet:
|
||||||
|
pocket-mainnet:
|
||||||
|
prometheus_data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
chains:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.0.1/27
|
||||||
29
docker-compose.bsc.yml
Normal file
29
docker-compose.bsc.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
binance-smart-chain:
|
||||||
|
image: dysnix/bsc
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
- "8546"
|
||||||
|
- "30303"
|
||||||
|
volumes:
|
||||||
|
- /root/bsc-datadir/server1/data-seed:/datadir
|
||||||
|
- /root/bsc-config/config.toml:/config.toml
|
||||||
|
command: "--cache 18000 --rpc --rpcaddr=\"0.0.0.0\" --rpc.allow-unprotected-txs --txlookuplimit 0 --syncmode snap --config /config.toml --datadir /datadir"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||||
|
- "traefik.http.middlewares.bsc-stripprefix.stripprefix.prefixes=/bsc"
|
||||||
|
- "traefik.http.services.bsc.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.bsc.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.bsc.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.bsc.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc`)"
|
||||||
|
- "traefik.http.routers.bsc.middlewares=avalanche-stripprefix, ipwhitelist"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
20
docker-compose.haproxy.yml
Normal file
20
docker-compose.haproxy.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
@@ -3,7 +3,7 @@ version: '3.1'
|
|||||||
services:
|
services:
|
||||||
harmony-mainnet:
|
harmony-mainnet:
|
||||||
build: ./harmony/build
|
build: ./harmony/build
|
||||||
command: bash -c "/harmony.sh && /binary -c /harmony.conf --log.dir /harmony/log --run.shard 1 --dns.zone t.hmny.io --http.ip 0.0.0.0 --datadir /harmony"
|
command: bash -c "/harmony.sh && /binary --log.dir /harmony/log --run.shard 1 --dns.zone t.hmny.io --http.ip 0.0.0.0 --datadir /harmony"
|
||||||
sysctls:
|
sysctls:
|
||||||
net.core.somaxconn: 1024
|
net.core.somaxconn: 1024
|
||||||
# net.core.netdev_max_backlog: 65536
|
# net.core.netdev_max_backlog: 65536
|
||||||
@@ -28,7 +28,6 @@ services:
|
|||||||
- harmony_data:/harmony/
|
- harmony_data:/harmony/
|
||||||
- ./harmony/keyfiles:/.hmy/blskeys
|
- ./harmony/keyfiles:/.hmy/blskeys
|
||||||
- ./harmony/log:/harmony/log
|
- ./harmony/log:/harmony/log
|
||||||
- ./harmony/harmony.conf:/harmony.conf
|
|
||||||
- ./bootstrap_skript/harmony.sh:/harmony.sh
|
- ./bootstrap_skript/harmony.sh:/harmony.sh
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
|||||||
96
docker-compose.mon-client.yml
Normal file
96
docker-compose.mon-client.yml
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
### WIREGUARD
|
||||||
|
|
||||||
|
wireguard:
|
||||||
|
image: lscr.io/linuxserver/wireguard
|
||||||
|
container_name: wireguard
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "ping", "-c", "1", "10.13.13.1" ]
|
||||||
|
timeout: 10s
|
||||||
|
interval: 5s
|
||||||
|
retries: 3
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
- PUID=$PUID
|
||||||
|
- PGID=$PGID
|
||||||
|
volumes:
|
||||||
|
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
# Expose prometheus port
|
||||||
|
expose:
|
||||||
|
- 9090
|
||||||
|
ports:
|
||||||
|
- $SERVERPORT:$SERVERPORT/udp
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
|
||||||
|
### MONITORING
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:v2.30.3
|
||||||
|
container_name: prometheus
|
||||||
|
volumes:
|
||||||
|
- ./prometheus:/etc/prometheus
|
||||||
|
- prometheus_data:/prometheus
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--storage.tsdb.retention.time=200h'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
depends_on:
|
||||||
|
- wireguard
|
||||||
|
|
||||||
|
nodeexporter:
|
||||||
|
image: prom/node-exporter:v1.2.2
|
||||||
|
container_name: nodeexporter
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /:/rootfs:ro
|
||||||
|
command:
|
||||||
|
- '--path.procfs=/host/proc'
|
||||||
|
- '--path.rootfs=/rootfs'
|
||||||
|
- '--path.sysfs=/host/sys'
|
||||||
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9100
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- /dev/kmsg:/dev/kmsg
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker:/var/lib/docker:ro
|
||||||
|
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
### VOLUMES
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
prometheus_data:
|
||||||
|
|
||||||
54
docker-compose.mon-server.yml
Normal file
54
docker-compose.mon-server.yml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
version: "3.1"
|
||||||
|
services:
|
||||||
|
wireguard:
|
||||||
|
image: lscr.io/linuxserver/wireguard
|
||||||
|
container_name: wireguard
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
- PUID=$PUID
|
||||||
|
- PGID=$PGID
|
||||||
|
- TZ=Europe/London
|
||||||
|
- SERVERURL=$SERVERURL
|
||||||
|
- SERVERPORT=$SERVERPORT
|
||||||
|
- PEERS=$PEERS
|
||||||
|
- PEERDNS=none
|
||||||
|
- ALLOWEDIPS=$ALLOWEDIPS
|
||||||
|
- INTERNAL_SUBNET=$INTERNAL_SUBNET
|
||||||
|
volumes:
|
||||||
|
- ./wireguard/config:/config
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
ports:
|
||||||
|
- $SERVERPORT:$SERVERPORT/udp
|
||||||
|
- 127.0.0.1:3000:3000
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
- net.ipv4.ip_forward=1
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana:8.3.3
|
||||||
|
container_name: grafana
|
||||||
|
volumes:
|
||||||
|
- grafana_data:/var/lib/grafana
|
||||||
|
- ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
|
||||||
|
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
|
||||||
|
environment:
|
||||||
|
- GF_SECURITY_ADMIN_USER=$ADMIN
|
||||||
|
- GF_SECURITY_ADMIN_PASSWORD=$PASSWORD
|
||||||
|
- GF_USERS_ALLOW_SIGN_UP=false
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
|
||||||
|
# DEBUG container wireguard
|
||||||
|
# alpine:
|
||||||
|
#image: alpine
|
||||||
|
#command: sleep infinity
|
||||||
|
#network_mode: "service:wireguard"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
grafana_data:
|
||||||
104
docker-compose.monitoring.yml
Normal file
104
docker-compose.monitoring.yml
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
### WIREGUARD
|
||||||
|
|
||||||
|
wireguard:
|
||||||
|
image: lscr.io/linuxserver/wireguard
|
||||||
|
container_name: wireguard
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "ping", "-c", "1", "10.13.13.1" ]
|
||||||
|
timeout: 10s
|
||||||
|
interval: 5s
|
||||||
|
retries: 3
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
volumes:
|
||||||
|
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
# Expose prometheus port
|
||||||
|
expose:
|
||||||
|
- 9090
|
||||||
|
ports:
|
||||||
|
- 51820:51820/udp
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
|
||||||
|
### MONITORING
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:v2.30.3
|
||||||
|
container_name: prometheus
|
||||||
|
volumes:
|
||||||
|
- ./prometheus/prometheus.autodiscover.yml:/etc/prometheus/prometheus.yml:ro
|
||||||
|
- prometheus_data:/prometheus:rw
|
||||||
|
- prometheus-docker-sd:/prometheus-docker-sd:ro
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--storage.tsdb.retention.time=200h'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
depends_on:
|
||||||
|
- wireguard
|
||||||
|
|
||||||
|
prometheus-docker-sd:
|
||||||
|
image: "stucky/prometheus-docker-sd:latest"
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- prometheus-docker-sd:/prometheus-docker-sd:rw
|
||||||
|
|
||||||
|
nodeexporter:
|
||||||
|
image: prom/node-exporter:v1.2.2
|
||||||
|
container_name: nodeexporter
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /:/rootfs:ro
|
||||||
|
command:
|
||||||
|
- '--path.procfs=/host/proc'
|
||||||
|
- '--path.rootfs=/rootfs'
|
||||||
|
- '--path.sysfs=/host/sys'
|
||||||
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9100
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- /dev/kmsg:/dev/kmsg
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker:/var/lib/docker:ro
|
||||||
|
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
### VOLUMES
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
prometheus_data:
|
||||||
|
prometheus-docker-sd:
|
||||||
186
docker-compose.pokt-fr-1.yml
Normal file
186
docker-compose.pokt-fr-1.yml
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
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"
|
||||||
|
|
||||||
|
### WIREGUARD
|
||||||
|
wireguard:
|
||||||
|
image: lscr.io/linuxserver/wireguard
|
||||||
|
container_name: wireguard
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
- PUID=$PUID
|
||||||
|
- PGID=$PGID
|
||||||
|
volumes:
|
||||||
|
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
# Expose prometheus port
|
||||||
|
expose:
|
||||||
|
- 9090
|
||||||
|
ports:
|
||||||
|
- $SERVERPORT:$SERVERPORT/udp
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
### MONITORING
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:v2.30.3
|
||||||
|
container_name: prometheus
|
||||||
|
volumes:
|
||||||
|
- ./prometheus:/etc/prometheus
|
||||||
|
- prometheus_data:/prometheus
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--storage.tsdb.retention.time=200h'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
depends_on:
|
||||||
|
- wireguard
|
||||||
|
|
||||||
|
nodeexporter:
|
||||||
|
image: prom/node-exporter:v1.2.2
|
||||||
|
container_name: nodeexporter
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /:/rootfs:ro
|
||||||
|
command:
|
||||||
|
- '--path.procfs=/host/proc'
|
||||||
|
- '--path.rootfs=/rootfs'
|
||||||
|
- '--path.sysfs=/host/sys'
|
||||||
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9100
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- /dev/kmsg:/dev/kmsg
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker:/var/lib/docker:ro
|
||||||
|
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
pushgateway:
|
||||||
|
image: prom/pushgateway:v1.4.2
|
||||||
|
container_name: pushgateway
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9091
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
### POKT
|
||||||
|
pocket-fr-1:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8081:8081"
|
||||||
|
- "26656:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 26660
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POKT_FR_1_POCKET_CORE_KEY
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POKT_FR_1_POCKET_CORE_PASSPHRASE
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-mainnet:/home/app/.pocket
|
||||||
|
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_FR_1_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||||
|
|
||||||
|
pocket-fr-2:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8082:8081"
|
||||||
|
- "26657:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 26660
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POKT_FR_2_POCKET_CORE_KEY
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POKT_FR_2_POCKET_CORE_PASSPHRASE
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-fr-2:/home/app/.pocket
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.pocket-fr-2.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-fr-2.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-fr-2.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-fr-2.rule=Host(`$POKT_FR_2_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||||
|
|
||||||
|
### VOLUMES
|
||||||
|
volumes:
|
||||||
|
pocket-mainnet:
|
||||||
|
pocket-fr-2:
|
||||||
|
prometheus_data:
|
||||||
246
docker-compose.pokt-lt-1.yml
Normal file
246
docker-compose.pokt-lt-1.yml
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
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"
|
||||||
|
|
||||||
|
### WIREGUARD
|
||||||
|
wireguard:
|
||||||
|
image: lscr.io/linuxserver/wireguard
|
||||||
|
container_name: wireguard
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
- PUID=$PUID
|
||||||
|
- PGID=$PGID
|
||||||
|
volumes:
|
||||||
|
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
# Expose prometheus port
|
||||||
|
expose:
|
||||||
|
- 9090
|
||||||
|
ports:
|
||||||
|
- $SERVERPORT:$SERVERPORT/udp
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
### MONITORING
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:v2.30.3
|
||||||
|
container_name: prometheus
|
||||||
|
volumes:
|
||||||
|
- ./prometheus/prometheus-lt-1.yml:/etc/prometheus/prometheus.yml
|
||||||
|
- prometheus_data:/prometheus
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--storage.tsdb.retention.time=200h'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
depends_on:
|
||||||
|
- wireguard
|
||||||
|
|
||||||
|
nodeexporter:
|
||||||
|
image: prom/node-exporter:v1.2.2
|
||||||
|
container_name: nodeexporter
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /:/rootfs:ro
|
||||||
|
command:
|
||||||
|
- '--path.procfs=/host/proc'
|
||||||
|
- '--path.rootfs=/rootfs'
|
||||||
|
- '--path.sysfs=/host/sys'
|
||||||
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9100
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- /dev/kmsg:/dev/kmsg
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker:/var/lib/docker:ro
|
||||||
|
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
pushgateway:
|
||||||
|
image: prom/pushgateway:v1.4.2
|
||||||
|
container_name: pushgateway
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9091
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
### POKT
|
||||||
|
pocket-lt-1:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8081:8081"
|
||||||
|
- "26656:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 26660
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POKT_LT_1_POCKET_CORE_KEY
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POKT_LT_1_POCKET_CORE_PASSPHRASE
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-lt-1:/home/app/.pocket
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.pocket-lt-1.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-lt-1.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-lt-1.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-lt-1.rule=Host(`$POKT_LT_1_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||||
|
|
||||||
|
pocket-lt-2:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8082:8081"
|
||||||
|
- "26657:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 26660
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POKT_LT_2_POCKET_CORE_KEY
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POKT_LT_2_POCKET_CORE_PASSPHRASE
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-lt-2:/home/app/.pocket
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.pocket-lt-2.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-lt-2.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-lt-2.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-lt-2.rule=Host(`$POKT_LT_2_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||||
|
|
||||||
|
pocket-lt-3:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8083:8081"
|
||||||
|
- "26658:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 26660
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#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:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-lt-3:/home/app/.pocket
|
||||||
|
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}`)"
|
||||||
|
|
||||||
|
pocket-lt-4:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8084:8081"
|
||||||
|
- "26659:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 26660
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POKT_LT_4_POCKET_CORE_KEY
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POKT_LT_4_POCKET_CORE_PASSPHRASE
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- pocket-lt-4:/home/app/.pocket
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.pocket-lt-4.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-lt-4.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-lt-4.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-lt-4.rule=Host(`$POKT_LT_4_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||||
|
|
||||||
|
### VOLUMES
|
||||||
|
volumes:
|
||||||
|
pocket-lt-1:
|
||||||
|
pocket-lt-2:
|
||||||
|
pocket-lt-3:
|
||||||
|
pocket-lt-4:
|
||||||
|
prometheus_data:
|
||||||
168
docker-compose.pokt-test.yml
Normal file
168
docker-compose.pokt-test.yml
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
traefik:
|
||||||
|
image: traefik:latest
|
||||||
|
container_name: traefik
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
- "127.0.0.1:8080:8080"
|
||||||
|
command:
|
||||||
|
- "--api=true"
|
||||||
|
- "--api.insecure=true"
|
||||||
|
- "--api.dashboard=true"
|
||||||
|
- "--log.level=DEBUG"
|
||||||
|
- "--providers.docker=true"
|
||||||
|
- "--providers.docker.exposedbydefault=false"
|
||||||
|
- "--entrypoints.websecure.address=:443"
|
||||||
|
- "--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"
|
||||||
|
|
||||||
|
pocket-testnet:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8081:8081"
|
||||||
|
- "26656:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: pocket start --seeds=$POCKET_TEST_SEEDS --testnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_CORE_KEY=$POCKET_CORE_KEY_TEST
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE_TEST
|
||||||
|
volumes:
|
||||||
|
- ./chains/chains_testnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- pocket-testnet:/home/app/.pocket
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.pocket-testnet.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-testnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-testnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-testnet.rule=Host(`$TEST_DOMAIN_1`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||||
|
|
||||||
|
pocket-mainnet:
|
||||||
|
image: poktnetwork/pocket-core:stagenet-latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8082:8081"
|
||||||
|
- "26657:26656"
|
||||||
|
expose:
|
||||||
|
- 26656
|
||||||
|
- 8081
|
||||||
|
- 8083
|
||||||
|
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||||
|
#command: pocket start --simulateRelay
|
||||||
|
environment:
|
||||||
|
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||||
|
- POCKET_CORE_KEY=$POCKET_CORE_KEY_MAINNET
|
||||||
|
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE_MAINNET
|
||||||
|
volumes:
|
||||||
|
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||||
|
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||||
|
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||||
|
- pocket-mainnet:/home/app/.pocket
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.pocket-mainnet.loadbalancer.server.port=8081"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.pocket-mainnet.rule=Host(`$TEST_DOMAIN_2`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||||
|
|
||||||
|
### MONITORING
|
||||||
|
### WIREGUARD
|
||||||
|
wireguard:
|
||||||
|
image: lscr.io/linuxserver/wireguard
|
||||||
|
container_name: wireguard
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
- PUID=$PUID
|
||||||
|
- PGID=$PGID
|
||||||
|
volumes:
|
||||||
|
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||||
|
- /lib/modules:/lib/modules
|
||||||
|
# Expose prometheus port
|
||||||
|
expose:
|
||||||
|
- 9090
|
||||||
|
ports:
|
||||||
|
- $SERVERPORT:$SERVERPORT/udp
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:v2.30.3
|
||||||
|
container_name: prometheus
|
||||||
|
volumes:
|
||||||
|
- ./prometheus:/etc/prometheus
|
||||||
|
- prometheus_data:/prometheus
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--storage.tsdb.retention.time=200h'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
depends_on:
|
||||||
|
- wireguard
|
||||||
|
|
||||||
|
nodeexporter:
|
||||||
|
image: prom/node-exporter:v1.2.2
|
||||||
|
container_name: nodeexporter
|
||||||
|
volumes:
|
||||||
|
- /proc:/host/proc:ro
|
||||||
|
- /sys:/host/sys:ro
|
||||||
|
- /:/rootfs:ro
|
||||||
|
command:
|
||||||
|
- '--path.procfs=/host/proc'
|
||||||
|
- '--path.rootfs=/rootfs'
|
||||||
|
- '--path.sysfs=/host/sys'
|
||||||
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 9100
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- /dev/kmsg:/dev/kmsg
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:ro
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker:/var/lib/docker:ro
|
||||||
|
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
|
labels:
|
||||||
|
org.label-schema.group: "monitoring"
|
||||||
|
|
||||||
|
### VOLUMES
|
||||||
|
volumes:
|
||||||
|
pocket-testnet:
|
||||||
|
pocket-mainnet:
|
||||||
|
prometheus_data:
|
||||||
|
|
||||||
46
docker-compose.traefik.yml
Normal file
46
docker-compose.traefik.yml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
traefik:
|
||||||
|
image: traefik:latest
|
||||||
|
container_name: traefik
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "8082"
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
- "127.0.0.1:8080:8080"
|
||||||
|
command:
|
||||||
|
- "--api=true"
|
||||||
|
- "--api.insecure=true"
|
||||||
|
- "--api.dashboard=true"
|
||||||
|
- "--log.level=DEBUG"
|
||||||
|
- "--providers.docker=true"
|
||||||
|
- "--providers.docker.exposedbydefault=false"
|
||||||
|
- "--entrypoints.websecure.address=:443"
|
||||||
|
- "--entryPoints.metrics.address=:8082"
|
||||||
|
- "--metrics.prometheus.entryPoint=metrics"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||||||
|
# TESTING
|
||||||
|
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.email=$MAIL"
|
||||||
|
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||||
|
volumes:
|
||||||
|
- "./traefik/letsencrypt:/letsencrypt"
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
#labels:
|
||||||
|
# - "traefik.enable=true"
|
||||||
|
# - "prometheus-scrape.enabled=true"
|
||||||
|
# - "prometheus-scrape.port=8082"
|
||||||
|
# - "prometheus-scrape.job_name=traefik"
|
||||||
|
|
||||||
|
|
||||||
|
networks:
|
||||||
|
chains:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.0.1/27
|
||||||
104
grafana/provisioning/dashboards/basic/Overview.json
Normal file
104
grafana/provisioning/dashboards/basic/Overview.json
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
{
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": "-- Grafana --",
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations & Alerts",
|
||||||
|
"target": {
|
||||||
|
"limit": 100,
|
||||||
|
"matchAny": false,
|
||||||
|
"tags": [],
|
||||||
|
"type": "dashboard"
|
||||||
|
},
|
||||||
|
"type": "dashboard"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": 13,
|
||||||
|
"links": [],
|
||||||
|
"liveNow": false,
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"gridPos": {
|
||||||
|
"h": 1,
|
||||||
|
"w": 24,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 6,
|
||||||
|
"title": "Row title",
|
||||||
|
"type": "row"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"gridPos": {
|
||||||
|
"h": 11,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"options": {
|
||||||
|
"alertName": "",
|
||||||
|
"dashboardAlerts": false,
|
||||||
|
"folder": {
|
||||||
|
"id": 1,
|
||||||
|
"title": "Monitoring Services"
|
||||||
|
},
|
||||||
|
"maxItems": 20,
|
||||||
|
"showInstances": false,
|
||||||
|
"sortOrder": 1,
|
||||||
|
"stateFilter": {
|
||||||
|
"firing": true,
|
||||||
|
"inactive": true,
|
||||||
|
"pending": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Alerts",
|
||||||
|
"type": "alertlist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"gridPos": {
|
||||||
|
"h": 11,
|
||||||
|
"w": 12,
|
||||||
|
"x": 12,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 4,
|
||||||
|
"options": {
|
||||||
|
"maxItems": 10,
|
||||||
|
"query": "",
|
||||||
|
"showHeadings": false,
|
||||||
|
"showRecentlyViewed": false,
|
||||||
|
"showSearch": true,
|
||||||
|
"showStarred": false,
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"pluginVersion": "8.3.3",
|
||||||
|
"title": "Panel Title",
|
||||||
|
"type": "dashlist"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schemaVersion": 34,
|
||||||
|
"style": "dark",
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-6h",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "",
|
||||||
|
"title": "Overview",
|
||||||
|
"uid": "_tGw-fJnz",
|
||||||
|
"version": 5,
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
||||||
1434
grafana/provisioning/dashboards/basic/chain-dash.json
Normal file
1434
grafana/provisioning/dashboards/basic/chain-dash.json
Normal file
File diff suppressed because it is too large
Load Diff
3238
grafana/provisioning/dashboards/basic/mon-dash.json
Normal file
3238
grafana/provisioning/dashboards/basic/mon-dash.json
Normal file
File diff suppressed because it is too large
Load Diff
14116
grafana/provisioning/dashboards/basic/node-dash.json
Normal file
14116
grafana/provisioning/dashboards/basic/node-dash.json
Normal file
File diff suppressed because it is too large
Load Diff
1469
grafana/provisioning/dashboards/basic/pokt-dash.json
Normal file
1469
grafana/provisioning/dashboards/basic/pokt-dash.json
Normal file
File diff suppressed because it is too large
Load Diff
684
grafana/provisioning/dashboards/basic/traefik-dash.json
Normal file
684
grafana/provisioning/dashboards/basic/traefik-dash.json
Normal file
@@ -0,0 +1,684 @@
|
|||||||
|
{
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": "-- Grafana --",
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations & Alerts",
|
||||||
|
"target": {
|
||||||
|
"limit": 100,
|
||||||
|
"matchAny": false,
|
||||||
|
"tags": [],
|
||||||
|
"type": "dashboard"
|
||||||
|
},
|
||||||
|
"type": "dashboard"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": 10,
|
||||||
|
"links": [],
|
||||||
|
"liveNow": false,
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "bars",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 8,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 7,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "right"
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "rate(traefik_service_requests_total{instance=\"traefik:8082\",service=\"pocket-fr-1@docker\"}[1m]) * 100",
|
||||||
|
"hide": false,
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "{{ code }}",
|
||||||
|
"refId": "B"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Requests POKT-FR-1",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 8,
|
||||||
|
"x": 8,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 8,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "right"
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "rate(traefik_service_requests_total{instance=\"traefik:8082\",service=\"pocket-fr-2@docker\"}[1m]) * 100",
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "{{ code }}",
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Requests POKT-FR-2",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 8,
|
||||||
|
"x": 16,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 6,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom"
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "rate(traefik_service_requests_tls_total{instance=\"traefik:8082\",service=~\"pocket-fr-1@docker|pocket-fr-2@docker\"}[1m]) * 100",
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "{{ tls_cipher }}",
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Requests SSL",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 8,
|
||||||
|
"x": 0,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom"
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "traefik_service_open_connections{instance=\"traefik:8082\",service=~\"pocket-fr-1@docker|pocket-fr-2@docker\"}",
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "{{ method }} {{ service }}",
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Connections",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 8,
|
||||||
|
"x": 8,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 4,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom"
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "rate(traefik_service_request_duration_seconds_count{instance=\"traefik:8082\",service=~\"pocket-fr-1@docker|pocket-fr-2@docker\"}[1m])",
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "{{ code }} {{ method }} {{ service }}",
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Request duration",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 8,
|
||||||
|
"x": 16,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 3,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom"
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "histogram_quantile(0.9, sum by (le) (rate(traefik_service_request_duration_seconds_bucket{instance=\"traefik:8082\",service=~\"pocket-fr-1@docker|pocket-fr-2@docker\"}[1m])))",
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "",
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Request duration",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 6,
|
||||||
|
"w": 8,
|
||||||
|
"x": 0,
|
||||||
|
"y": 16
|
||||||
|
},
|
||||||
|
"id": 5,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom"
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "8.3.3",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "sum(increase(traefik_service_request_duration_seconds_sum{instance=\"traefik:8082\",service=~\"pocket-fr-2@docker\"}[1m])) by (method)",
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "pokt-fr-1 {{ method }}",
|
||||||
|
"refId": "A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P00A23F4F516FCA75"
|
||||||
|
},
|
||||||
|
"exemplar": true,
|
||||||
|
"expr": "sum(increase(traefik_service_request_duration_seconds_sum{instance=\"traefik:8082\",service=~\"pocket-fr-1@docker\"}[1m])) by (method)",
|
||||||
|
"hide": false,
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "pokt-fr-1 {{ method }}",
|
||||||
|
"refId": "B"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Sum Request",
|
||||||
|
"type": "timeseries"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"refresh": "",
|
||||||
|
"schemaVersion": 34,
|
||||||
|
"style": "dark",
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-7d",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "",
|
||||||
|
"title": "traefik",
|
||||||
|
"uid": "eE3572Jnk",
|
||||||
|
"version": 17,
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
||||||
13
grafana/provisioning/dashboards/dashboard.yml
Normal file
13
grafana/provisioning/dashboards/dashboard.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
providers:
|
||||||
|
- name: 'basic'
|
||||||
|
orgId: 1
|
||||||
|
folder: 'basic'
|
||||||
|
type: file
|
||||||
|
disableDeletion: false
|
||||||
|
editable: true
|
||||||
|
allowUiUpdates: true
|
||||||
|
options:
|
||||||
|
path: /etc/grafana/provisioning/dashboards
|
||||||
|
foldersFromFilesStructure: true
|
||||||
74
grafana/provisioning/datasources/datasources.yml
Normal file
74
grafana/provisioning/datasources/datasources.yml
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
datasources:
|
||||||
|
- name: rpc-de-01
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.4:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
|
|
||||||
|
- name: rpc-de-02
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.6:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
|
|
||||||
|
- name: rpc-fi-01
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.5:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
|
|
||||||
|
- name: rpc-fi-01
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.5:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
|
|
||||||
|
- name: pokt-fr-1
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.10:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
|
|
||||||
|
- name: pokt-lt-1
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.3:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
|
|
||||||
|
- name: harmony-fr-1
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.11:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
|
|
||||||
|
- name: moonbeam-lt-01
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://10.13.13.2:9090
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
editable: true
|
||||||
7
haproxy/Dockerfile
Normal file
7
haproxy/Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
FROM haproxy:alpine
|
||||||
|
|
||||||
|
USER root
|
||||||
|
RUN apk add --no-cache curl bash jq
|
||||||
|
USER haproxy
|
||||||
|
|
||||||
|
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]
|
||||||
25
haproxy/avalanche-healthcheck.sh
Normal file
25
haproxy/avalanche-healthcheck.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' http://$RIP:$RPT/avalanche 2>/dev/null | jq '.result' -r | grep -q false
|
||||||
|
exit1=$?
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' http://$RIP:$RPT/avalanche 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
25
haproxy/erigon-healthcheck.sh
Normal file
25
haproxy/erigon-healthcheck.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' http://$RIP:$RPT/erigon 2>/dev/null | jq '.result' -r | grep -q false
|
||||||
|
exit1=$?
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' http://$RIP:$RPT/erigon 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
25
haproxy/ethereum-healthcheck.sh
Executable file
25
haproxy/ethereum-healthcheck.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | jq '.result' -r | grep -q false
|
||||||
|
exit1=$?
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
25
haproxy/geth-healthcheck.sh
Normal file
25
haproxy/geth-healthcheck.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' http://$RIP:$RPT/geth 2>/dev/null | jq '.result' -r | grep -q false
|
||||||
|
exit1=$?
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' http://$RIP:$RPT/geth 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
25
haproxy/goerli-healthcheck.sh
Normal file
25
haproxy/goerli-healthcheck.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' http://$RIP:$RPT/goerli 2>/dev/null | jq '.result' -r | grep -q false
|
||||||
|
exit1=$?
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' http://$RIP:$RPT/goerli 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
25
haproxy/polygon-healthcheck.sh
Executable file
25
haproxy/polygon-healthcheck.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
our_blockheight=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | printf "%d" $(jq '.result' -r))
|
||||||
|
pokt_blockheight=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params": [],"id":1}' https://poly-rpc.gateway.pokt.network 2>/dev/null | printf "%d" $(jq '.result' -r))
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$our_blockheight" -lt "$pokt_blockheight - 10" ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
25
haproxy/rinkeby-healthcheck.sh
Normal file
25
haproxy/rinkeby-healthcheck.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' http://$RIP:$RPT/rinkeby 2>/dev/null | jq '.result' -r | grep -q false
|
||||||
|
exit1=$?
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' http://$RIP:$RPT/rinkeby 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
25
haproxy/ropsten-healthcheck.sh
Normal file
25
haproxy/ropsten-healthcheck.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 = Virtual Service IP (VIP)
|
||||||
|
# $2 = Virtual Service Port (VPT)
|
||||||
|
# $3 = Real Server IP (RIP)
|
||||||
|
# $4 = Real Server Port (RPT)
|
||||||
|
# $5 = Check Source IP
|
||||||
|
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
VIP=$1
|
||||||
|
VPT=$2
|
||||||
|
RIP=$3
|
||||||
|
RPT=$4
|
||||||
|
# RPT=8545
|
||||||
|
|
||||||
|
# Run curl with appropriate options
|
||||||
|
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' http://$RIP:$RPT/ropsten 2>/dev/null | jq '.result' -r | grep -q false
|
||||||
|
exit1=$?
|
||||||
|
|
||||||
|
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' http://$RIP:$RPT/ropsten 2>/dev/null | jq '.result' -r)
|
||||||
|
|
||||||
|
# If any of the above tests failed, then exit 1.
|
||||||
|
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||||
|
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||||
|
exit 0
|
||||||
19
harmony/README_HARMONY.md
Normal file
19
harmony/README_HARMONY.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Place validator.key and validator.pass into ./keyfiles
|
||||||
|
```
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
Check if Bootstrap is working.
|
||||||
|
```
|
||||||
|
docker logs -f pokt_dokt_harmony-mainnet_1
|
||||||
|
```
|
||||||
|
Logs are at:
|
||||||
|
```
|
||||||
|
harmony/log
|
||||||
|
```
|
||||||
|
|
||||||
|
HARMONY QUERY
|
||||||
|
```
|
||||||
|
curl --location --request POST 'https://$DOMAIN/' --header 'Content-Type: application/json' --data-raw '{"jsonrpc": "2.0", "method": "hmy_latestHeader", "params": [], "id": 1}'
|
||||||
|
```
|
||||||
|
|
||||||
|
[HMY CLI Flags](https://docs.harmony.one/home/network/validators/node-setup/installing-updating/installing-node/using-binary#option-2-setup-using-flag-parsing)
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
Version = "2.5.0"
|
|
||||||
|
|
||||||
[BLSKeys]
|
|
||||||
KMSConfigFile = ""
|
|
||||||
KMSConfigSrcType = "shared"
|
|
||||||
KMSEnabled = false
|
|
||||||
KeyDir = "./.hmy/blskeys"
|
|
||||||
KeyFiles = []
|
|
||||||
MaxKeys = 10
|
|
||||||
PassEnabled = true
|
|
||||||
PassFile = ""
|
|
||||||
PassSrcType = "auto"
|
|
||||||
SavePassphrase = false
|
|
||||||
|
|
||||||
[DNSSync]
|
|
||||||
Client = true
|
|
||||||
LegacySyncing = false
|
|
||||||
Port = 6000
|
|
||||||
Server = true
|
|
||||||
ServerPort = 6000
|
|
||||||
Zone = "t.hmny.io"
|
|
||||||
|
|
||||||
[General]
|
|
||||||
DataDir = "./"
|
|
||||||
EnablePruneBeaconChain = true
|
|
||||||
IsArchival = false
|
|
||||||
IsBackup = false
|
|
||||||
IsBeaconArchival = false
|
|
||||||
IsOffline = false
|
|
||||||
NoStaking = false
|
|
||||||
NodeType = "validator"
|
|
||||||
ShardID = -1
|
|
||||||
|
|
||||||
[HTTP]
|
|
||||||
AuthPort = 9501
|
|
||||||
Enabled = true
|
|
||||||
IP = "127.0.0.1"
|
|
||||||
Port = 9500
|
|
||||||
RosettaEnabled = false
|
|
||||||
RosettaPort = 9700
|
|
||||||
|
|
||||||
[Log]
|
|
||||||
FileName = "harmony.log"
|
|
||||||
Folder = "./latest"
|
|
||||||
RotateCount = 0
|
|
||||||
RotateMaxAge = 0
|
|
||||||
RotateSize = 100
|
|
||||||
Verbosity = 3
|
|
||||||
|
|
||||||
[Log.VerbosePrints]
|
|
||||||
Config = true
|
|
||||||
|
|
||||||
[Network]
|
|
||||||
BootNodes = ["/dnsaddr/bootstrap.t.hmny.io"]
|
|
||||||
NetworkType = "mainnet"
|
|
||||||
|
|
||||||
[P2P]
|
|
||||||
DiscConcurrency = 0
|
|
||||||
IP = "0.0.0.0"
|
|
||||||
KeyFile = "./.hmykey"
|
|
||||||
MaxConnsPerIP = 10
|
|
||||||
Port = 9000
|
|
||||||
|
|
||||||
[Pprof]
|
|
||||||
Enabled = false
|
|
||||||
Folder = "./profiles"
|
|
||||||
ListenAddr = "127.0.0.1:6060"
|
|
||||||
ProfileDebugValues = [0]
|
|
||||||
ProfileIntervals = [600]
|
|
||||||
ProfileNames = []
|
|
||||||
|
|
||||||
[RPCOpt]
|
|
||||||
DebugEnabled = false
|
|
||||||
RateLimterEnabled = true
|
|
||||||
RequestsPerSecond = 1000
|
|
||||||
|
|
||||||
[Sync]
|
|
||||||
Concurrency = 6
|
|
||||||
DiscBatch = 8
|
|
||||||
DiscHardLowCap = 6
|
|
||||||
DiscHighCap = 128
|
|
||||||
DiscSoftLowCap = 8
|
|
||||||
Downloader = false
|
|
||||||
Enabled = false
|
|
||||||
InitStreams = 8
|
|
||||||
MinPeers = 6
|
|
||||||
|
|
||||||
[TxPool]
|
|
||||||
BlacklistFile = "./.hmy/blacklist.txt"
|
|
||||||
|
|
||||||
[WS]
|
|
||||||
AuthPort = 9801
|
|
||||||
Enabled = true
|
|
||||||
IP = "127.0.0.1"
|
|
||||||
Port = 9800
|
|
||||||
156
pokt/config.json
Normal file
156
pokt/config.json
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
{
|
||||||
|
"tendermint_config": {
|
||||||
|
"RootDir": "/home/app/.pocket",
|
||||||
|
"ProxyApp": "tcp://127.0.0.1:26658",
|
||||||
|
"Moniker": "stakesquid",
|
||||||
|
"FastSyncMode": true,
|
||||||
|
"DBBackend": "goleveldb",
|
||||||
|
"LevelDBOptions": {
|
||||||
|
"block_cache_capacity": 83886,
|
||||||
|
"block_cache_evict_removed": false,
|
||||||
|
"block_size": 4096,
|
||||||
|
"disable_buffer_pool": true,
|
||||||
|
"open_files_cache_capacity": -1,
|
||||||
|
"write_buffer": 838860
|
||||||
|
},
|
||||||
|
"DBPath": "data",
|
||||||
|
"LogLevel": "*:info, *:error",
|
||||||
|
"LogFormat": "plain",
|
||||||
|
"Genesis": "config/genesis.json",
|
||||||
|
"PrivValidatorKey": "priv_val_key.json",
|
||||||
|
"PrivValidatorState": "priv_val_state.json",
|
||||||
|
"PrivValidatorListenAddr": "",
|
||||||
|
"NodeKey": "node_key.json",
|
||||||
|
"ABCI": "socket",
|
||||||
|
"ProfListenAddress": "",
|
||||||
|
"FilterPeers": false,
|
||||||
|
"RPC": {
|
||||||
|
"RootDir": "/home/app/.pocket",
|
||||||
|
"ListenAddress": "tcp://127.0.0.1:26657",
|
||||||
|
"CORSAllowedOrigins": [],
|
||||||
|
"CORSAllowedMethods": [
|
||||||
|
"HEAD",
|
||||||
|
"GET",
|
||||||
|
"POST"
|
||||||
|
],
|
||||||
|
"CORSAllowedHeaders": [
|
||||||
|
"Origin",
|
||||||
|
"Accept",
|
||||||
|
"Content-Type",
|
||||||
|
"X-Requested-With",
|
||||||
|
"X-Server-Time"
|
||||||
|
],
|
||||||
|
"GRPCListenAddress": "",
|
||||||
|
"GRPCMaxOpenConnections": 2500,
|
||||||
|
"Unsafe": false,
|
||||||
|
"MaxOpenConnections": 2500,
|
||||||
|
"MaxSubscriptionClients": 100,
|
||||||
|
"MaxSubscriptionsPerClient": 5,
|
||||||
|
"TimeoutBroadcastTxCommit": 10000000000,
|
||||||
|
"MaxBodyBytes": 1000000,
|
||||||
|
"MaxHeaderBytes": 1048576,
|
||||||
|
"TLSCertFile": "",
|
||||||
|
"TLSKeyFile": ""
|
||||||
|
},
|
||||||
|
"P2P": {
|
||||||
|
"RootDir": "/home/app/.pocket",
|
||||||
|
"ListenAddress": "tcp://0.0.0.0:26656",
|
||||||
|
"ExternalAddress": "",
|
||||||
|
"Seeds": "",
|
||||||
|
"PersistentPeers": "",
|
||||||
|
"UPNP": false,
|
||||||
|
"AddrBook": "config/addrbook.json",
|
||||||
|
"AddrBookStrict": false,
|
||||||
|
"MaxNumInboundPeers": 14,
|
||||||
|
"MaxNumOutboundPeers": 7,
|
||||||
|
"UnconditionalPeerIDs": "",
|
||||||
|
"PersistentPeersMaxDialPeriod": 0,
|
||||||
|
"FlushThrottleTimeout": 100000000,
|
||||||
|
"MaxPacketMsgPayloadSize": 1024,
|
||||||
|
"SendRate": 5120000,
|
||||||
|
"RecvRate": 5120000,
|
||||||
|
"PexReactor": true,
|
||||||
|
"SeedMode": false,
|
||||||
|
"PrivatePeerIDs": "",
|
||||||
|
"AllowDuplicateIP": true,
|
||||||
|
"HandshakeTimeout": 20000000000,
|
||||||
|
"DialTimeout": 3000000000,
|
||||||
|
"TestDialFail": false,
|
||||||
|
"TestFuzz": false,
|
||||||
|
"TestFuzzConfig": {
|
||||||
|
"Mode": 0,
|
||||||
|
"MaxDelay": 3000000000,
|
||||||
|
"ProbDropRW": 0.2,
|
||||||
|
"ProbDropConn": 0,
|
||||||
|
"ProbSleep": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Mempool": {
|
||||||
|
"RootDir": "/home/app/.pocket",
|
||||||
|
"Recheck": true,
|
||||||
|
"Broadcast": true,
|
||||||
|
"WalPath": "",
|
||||||
|
"Size": 9000,
|
||||||
|
"MaxTxsBytes": 1073741824,
|
||||||
|
"CacheSize": 9000,
|
||||||
|
"MaxTxBytes": 1048576
|
||||||
|
},
|
||||||
|
"FastSync": {
|
||||||
|
"Version": "v1"
|
||||||
|
},
|
||||||
|
"Consensus": {
|
||||||
|
"RootDir": "/home/app/.pocket",
|
||||||
|
"WalPath": "data/cs.wal/wal",
|
||||||
|
"TimeoutPropose": 120000000000,
|
||||||
|
"TimeoutProposeDelta": 10000000000,
|
||||||
|
"TimeoutPrevote": 60000000000,
|
||||||
|
"TimeoutPrevoteDelta": 10000000000,
|
||||||
|
"TimeoutPrecommit": 60000000000,
|
||||||
|
"TimeoutPrecommitDelta": 10000000000,
|
||||||
|
"TimeoutCommit": 780000000000,
|
||||||
|
"SkipTimeoutCommit": false,
|
||||||
|
"CreateEmptyBlocks": true,
|
||||||
|
"CreateEmptyBlocksInterval": 900000000000,
|
||||||
|
"PeerGossipSleepDuration": 30000000000,
|
||||||
|
"PeerQueryMaj23SleepDuration": 20000000000
|
||||||
|
},
|
||||||
|
"TxIndex": {
|
||||||
|
"Indexer": "kv",
|
||||||
|
"IndexKeys": "tx.hash,tx.height,message.sender,transfer.recipient",
|
||||||
|
"IndexAllKeys": false
|
||||||
|
},
|
||||||
|
"Instrumentation": {
|
||||||
|
"Prometheus": true,
|
||||||
|
"PrometheusListenAddr": ":26660",
|
||||||
|
"MaxOpenConnections": 3,
|
||||||
|
"Namespace": "tendermint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pocket_config": {
|
||||||
|
"data_dir": "/home/app/.pocket",
|
||||||
|
"genesis_file": "genesis.json",
|
||||||
|
"chains_name": "chains.json",
|
||||||
|
"session_db_name": "session",
|
||||||
|
"evidence_db_name": "pocket_evidence",
|
||||||
|
"tendermint_uri": "tcp://localhost:26657",
|
||||||
|
"keybase_name": "pocket-keybase",
|
||||||
|
"rpc_port": "8081",
|
||||||
|
"client_block_sync_allowance": 10,
|
||||||
|
"max_evidence_cache_entries": 500,
|
||||||
|
"max_session_cache_entries": 500,
|
||||||
|
"json_sort_relay_responses": true,
|
||||||
|
"remote_cli_url": "http://localhost:8081",
|
||||||
|
"user_agent": "",
|
||||||
|
"validator_cache_size": 10000,
|
||||||
|
"application_cache_size": 10000,
|
||||||
|
"rpc_timeout": 60000,
|
||||||
|
"pocket_prometheus_port": "8083",
|
||||||
|
"prometheus_max_open_files": 3,
|
||||||
|
"max_claim_age_for_proof_retry": 32,
|
||||||
|
"proof_prevalidation": false,
|
||||||
|
"ctx_cache_size": 20,
|
||||||
|
"abci_logging": false,
|
||||||
|
"show_relay_errors": true,
|
||||||
|
"disable_tx_events": true
|
||||||
|
}
|
||||||
|
}
|
||||||
75
prometheus/prometheus-lt-1.yml
Normal file
75
prometheus/prometheus-lt-1.yml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
global:
|
||||||
|
scrape_interval: 15s
|
||||||
|
evaluation_interval: 15s
|
||||||
|
|
||||||
|
# Attach these labels to any time series or alerts when communicating with
|
||||||
|
# external systems (federation, remote storage, Alertmanager).
|
||||||
|
external_labels:
|
||||||
|
monitor: 'docker-host-alpha'
|
||||||
|
|
||||||
|
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
|
||||||
|
rule_files:
|
||||||
|
- "alert.rules"
|
||||||
|
|
||||||
|
# A scrape configuration containing exactly one endpoint to scrape.
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: 'nodeexporter'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['nodeexporter:9100']
|
||||||
|
|
||||||
|
- job_name: 'cadvisor'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['cadvisor:8080']
|
||||||
|
|
||||||
|
- job_name: 'prometheus'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['localhost:9090']
|
||||||
|
|
||||||
|
- job_name: 'pushgateway'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pushgateway:9091']
|
||||||
|
|
||||||
|
- job_name: 'haproxy'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['haproxy:8404']
|
||||||
|
|
||||||
|
- job_name: 'pocket-lt-1'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pocket-lt-1:8083']
|
||||||
|
- targets: ['pocket-lt-1:26660']
|
||||||
|
|
||||||
|
- job_name: 'pocket-lt-2'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pocket-lt-2:8083']
|
||||||
|
- targets: ['pocket-lt-2:26660']
|
||||||
|
|
||||||
|
- job_name: 'pocket-lt-3'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pocket-lt-3:8083']
|
||||||
|
- targets: ['pocket-lt-3:26660']
|
||||||
|
|
||||||
|
- job_name: 'pocket-lt-4'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pocket-lt-4:8083']
|
||||||
|
- targets: ['pocket-lt-4:26660']
|
||||||
|
|
||||||
|
- job_name: 'traefik'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['traefik:8082']
|
||||||
85
prometheus/prometheus-rpc.yml
Normal file
85
prometheus/prometheus-rpc.yml
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
global:
|
||||||
|
scrape_interval: 15s
|
||||||
|
evaluation_interval: 15s
|
||||||
|
|
||||||
|
# Attach these labels to any time series or alerts when communicating with
|
||||||
|
# external systems (federation, remote storage, Alertmanager).
|
||||||
|
external_labels:
|
||||||
|
monitor: 'docker-host-alpha'
|
||||||
|
|
||||||
|
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
|
||||||
|
rule_files:
|
||||||
|
- "alert.rules"
|
||||||
|
|
||||||
|
# A scrape configuration containing exactly one endpoint to scrape.
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: 'nodeexporter'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['nodeexporter:9100']
|
||||||
|
|
||||||
|
- job_name: 'cadvisor'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['cadvisor:8080']
|
||||||
|
|
||||||
|
- job_name: 'prometheus'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['localhost:9090']
|
||||||
|
|
||||||
|
- job_name: 'pushgateway'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pushgateway:9091']
|
||||||
|
|
||||||
|
- job_name: 'traefik'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['traefik:8082']
|
||||||
|
|
||||||
|
- job_name: 'geth-mainnet'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['geth-mainnet:6060']
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: [__address__]
|
||||||
|
action: replace
|
||||||
|
regex: (.*)
|
||||||
|
replacement: $1
|
||||||
|
target_label: geth_mainnet
|
||||||
|
|
||||||
|
- job_name: 'geth-goerli'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['geth-goerli:6060']
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: [__address__]
|
||||||
|
action: replace
|
||||||
|
regex: (.*)
|
||||||
|
replacement: $1
|
||||||
|
target_label: geth_goerli
|
||||||
|
|
||||||
|
- job_name: 'geth-rinkeby'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['geth-rinkeby:6060']
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: [__address__]
|
||||||
|
action: replace
|
||||||
|
regex: (.*)
|
||||||
|
replacement: $1
|
||||||
|
target_label: geth_rinkeby
|
||||||
|
|
||||||
|
- job_name: 'geth-ropsten'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['geth-ropsten:6060']
|
||||||
|
relabel_configs:
|
||||||
|
- source_labels: [__address__]
|
||||||
|
action: replace
|
||||||
|
regex: (.*)
|
||||||
|
replacement: $1
|
||||||
|
target_label: geth_ropsten
|
||||||
34
prometheus/prometheus.autodiscover.yml
Normal file
34
prometheus/prometheus.autodiscover.yml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
global:
|
||||||
|
scrape_interval: 15s
|
||||||
|
evaluation_interval: 15s
|
||||||
|
|
||||||
|
# Attach these labels to any time series or alerts when communicating with
|
||||||
|
# external systems (federation, remote storage, Alertmanager).
|
||||||
|
external_labels:
|
||||||
|
monitor: 'docker-host-alpha'
|
||||||
|
|
||||||
|
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
|
||||||
|
rule_files:
|
||||||
|
- "alert.rules"
|
||||||
|
|
||||||
|
# A scrape configuration containing exactly one endpoint to scrape.
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: 'nodeexporter'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['nodeexporter:9100']
|
||||||
|
|
||||||
|
- job_name: 'cadvisor'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['cadvisor:8080']
|
||||||
|
|
||||||
|
- job_name: 'prometheus'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['localhost:9090']
|
||||||
|
|
||||||
|
- job_name: 'service_discovery'
|
||||||
|
file_sd_configs:
|
||||||
|
- files:
|
||||||
|
- '/prometheus-docker-sd/docker-targets.json'
|
||||||
55
prometheus/prometheus.yml
Normal file
55
prometheus/prometheus.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
global:
|
||||||
|
scrape_interval: 15s
|
||||||
|
evaluation_interval: 15s
|
||||||
|
|
||||||
|
# Attach these labels to any time series or alerts when communicating with
|
||||||
|
# external systems (federation, remote storage, Alertmanager).
|
||||||
|
external_labels:
|
||||||
|
monitor: 'docker-host-alpha'
|
||||||
|
|
||||||
|
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
|
||||||
|
rule_files:
|
||||||
|
- "alert.rules"
|
||||||
|
|
||||||
|
# A scrape configuration containing exactly one endpoint to scrape.
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: 'nodeexporter'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['nodeexporter:9100']
|
||||||
|
|
||||||
|
- job_name: 'cadvisor'
|
||||||
|
scrape_interval: 5s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['cadvisor:8080']
|
||||||
|
|
||||||
|
- job_name: 'prometheus'
|
||||||
|
scrape_interval: 10s
|
||||||
|
static_configs:
|
||||||
|
- targets: ['localhost:9090']
|
||||||
|
|
||||||
|
- job_name: 'pushgateway'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pushgateway:9091']
|
||||||
|
|
||||||
|
- job_name: 'pocket-fr-1'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pocket-fr-1:8083']
|
||||||
|
- targets: ['pocket-fr-1:26660']
|
||||||
|
|
||||||
|
- job_name: 'pocket-fr-2'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['pocket-fr-2:8083']
|
||||||
|
- targets: ['pocket-fr-2:26660']
|
||||||
|
|
||||||
|
- job_name: 'traefik'
|
||||||
|
scrape_interval: 10s
|
||||||
|
honor_labels: true
|
||||||
|
static_configs:
|
||||||
|
- targets: ['traefik:8082']
|
||||||
0
traefik/letsencrypt/.skel
Normal file
0
traefik/letsencrypt/.skel
Normal file
18
util/prepare.sh
Executable file
18
util/prepare.sh
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source .env
|
||||||
|
export DOMAIN=$RPC_DOMAIN
|
||||||
|
|
||||||
|
chown -R root:root chains bootstrap_skript
|
||||||
|
|
||||||
|
originalfile="chains/chains_mainnet.json"
|
||||||
|
tmpfile=$(mktemp)
|
||||||
|
cp --attributes-only --preserve $originalfile $tmpfile
|
||||||
|
cat $originalfile | envsubst > $tmpfile && mv $tmpfile $originalfile
|
||||||
|
|
||||||
|
originalfile="chains/chains_testnet.json"
|
||||||
|
tmpfile=$(mktemp)
|
||||||
|
cp --attributes-only --preserve $originalfile $tmpfile
|
||||||
|
cat $originalfile | envsubst > $tmpfile && mv $tmpfile $originalfile
|
||||||
|
|
||||||
|
chown -R 1005:1001 chains bootstrap_skript pokt
|
||||||
22
util/relay.sh
Normal file
22
util/relay.sh
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Only geth right now
|
||||||
|
declare -A chain_arr
|
||||||
|
chain_arr[goerli]="0026"
|
||||||
|
chain_arr[rinkeby]="0025"
|
||||||
|
chain_arr[ropsten]="0023"
|
||||||
|
chain_arr[mainnet]="0021"
|
||||||
|
chain_arr[harmony]="040"
|
||||||
|
chain_arr[xdai]="0027"
|
||||||
|
chain_arr[erigon-archival-trace]="0028"
|
||||||
|
chain_arr[erigon-mainnet]="0021"
|
||||||
|
chain_arr[erigon-archive]="0022"
|
||||||
|
|
||||||
|
for i in ${!chain_arr[@]}; do
|
||||||
|
echo curl ${i} ${chain_arr[${i}]}
|
||||||
|
curl -s -X POST --data '{"relay_network_id":"'${chain_arr[${i}]}'","payload":{"data":"{\"jsonrpc\":\"2.0\",\"method\":\"eth_syncing\",\"params\":[],\"id\":1}","method":"POST","path":"","headers":{}}}' http://127.0.0.1:8081/v1/client/sim | awk "{print $2}"
|
||||||
|
done
|
||||||
|
|
||||||
|
POKT="0001"
|
||||||
|
curl -X POST --data '{"relay_network_id":"'$POKT'","payload":{"data":"{}","method":"POST","path":"v1/query/height","headers":{}}}' http://localhost:8081/v1/client/sim
|
||||||
|
echo \n
|
||||||
16
util/test_relay.sh
Normal file
16
util/test_relay.sh
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Only geth right now
|
||||||
|
declare -A chain_arr
|
||||||
|
chain_arr[goerli]="0020"
|
||||||
|
chain_arr[rinkeby]="0022"
|
||||||
|
chain_arr[ropsten]="0023"
|
||||||
|
|
||||||
|
for i in ${!chain_arr[@]}; do
|
||||||
|
echo curl ${i} ${chain_arr[${i}]}
|
||||||
|
curl -s -X POST --data '{"relay_network_id":"'${chain_arr[${i}]}'","payload":{"data":"{\"jsonrpc\":\"2.0\",\"method\":\"eth_syncing\",\"params\":[],\"id\":1}","method":"POST","path":"","headers":{}}}' http://127.0.0.1:8081/v1/client/sim | awk "{print $2}"
|
||||||
|
done
|
||||||
|
|
||||||
|
POKT="0002"
|
||||||
|
curl -X POST --data '{"relay_network_id":"'$POKT'","payload":{"data":"{}","method":"POST","path":"v1/query/height","headers":{}}}' http://localhost:8081/v1/client/sim
|
||||||
|
echo \n
|
||||||
61
xdai/xdai.cfg
Normal file
61
xdai/xdai.cfg
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"Init": {
|
||||||
|
"WebSocketsEnabled": false,
|
||||||
|
"StoreReceipts": true,
|
||||||
|
"IsMining": false,
|
||||||
|
"ChainSpecPath": "/xdai.json",
|
||||||
|
"GenesisHash": "0x4f1dd23188aab3a76b463e4af801b52b1248ef073c648cbdc4c9333d3da79756",
|
||||||
|
"BaseDbPath": "/nethermind_db/xdai",
|
||||||
|
"LogFileName": "xdai.logs.txt",
|
||||||
|
"MemoryHint": 768000000
|
||||||
|
},
|
||||||
|
"Network": {
|
||||||
|
"DiscoveryPort": 40444,
|
||||||
|
"P2PPort": 40444
|
||||||
|
},
|
||||||
|
"TxPool": {
|
||||||
|
"Size": 2048
|
||||||
|
},
|
||||||
|
"JsonRpc": {
|
||||||
|
"Enabled": true,
|
||||||
|
"Timeout": 20000,
|
||||||
|
"Host": "0.0.0.0",
|
||||||
|
"Port": 8545,
|
||||||
|
"WebSocketsPort": 8546
|
||||||
|
},
|
||||||
|
"Db": {
|
||||||
|
"CacheIndexAndFilterBlocks": false
|
||||||
|
},
|
||||||
|
"Sync": {
|
||||||
|
"FastSync": true,
|
||||||
|
"PivotNumber": 18110000,
|
||||||
|
"PivotHash": "0xb06aa318f3968e3ec3ee9a5d67562bc6a470cacb76497d433f31da65f6abdf80",
|
||||||
|
"PivotTotalDifficulty": "6162513664938195573321714140589322309123831870",
|
||||||
|
"FastBlocks": true,
|
||||||
|
"UseGethLimitsInFastBlocks": false,
|
||||||
|
"FastSyncCatchUpHeightDelta": 10000000000
|
||||||
|
},
|
||||||
|
"EthStats": {
|
||||||
|
"Enabled": false,
|
||||||
|
"Server": "ws://localhost:3000/api",
|
||||||
|
"Name": "Nethermind xDai",
|
||||||
|
"Secret": "secret",
|
||||||
|
"Contact": "hello@nethermind.io"
|
||||||
|
},
|
||||||
|
"Metrics": {
|
||||||
|
"NodeName": "xDai",
|
||||||
|
"Enabled": false,
|
||||||
|
"PushGatewayUrl": "http://localhost:9091/metrics",
|
||||||
|
"IntervalSeconds": 5
|
||||||
|
},
|
||||||
|
"Aura": {
|
||||||
|
"ForceSealing": true
|
||||||
|
},
|
||||||
|
"Bloom": {
|
||||||
|
"IndexLevelBucketSizes": [
|
||||||
|
16,
|
||||||
|
16,
|
||||||
|
16
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
282
xdai/xdai.json
Normal file
282
xdai/xdai.json
Normal file
@@ -0,0 +1,282 @@
|
|||||||
|
{
|
||||||
|
"name": "DaiChain",
|
||||||
|
"engine": {
|
||||||
|
"authorityRound": {
|
||||||
|
"params": {
|
||||||
|
"stepDuration": 5,
|
||||||
|
"blockReward": "0x0",
|
||||||
|
"maximumUncleCountTransition": 0,
|
||||||
|
"maximumUncleCount": 0,
|
||||||
|
"validators": {
|
||||||
|
"multi": {
|
||||||
|
"0": {
|
||||||
|
"list": [
|
||||||
|
"0xcace5b3c29211740e595850e80478416ee77ca21"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"1300": {
|
||||||
|
"safeContract": "0x22e1229a2c5b95a60983b5577f745a603284f535"
|
||||||
|
},
|
||||||
|
"9186425": {
|
||||||
|
"contract": "0xB87BE9f7196F2AE084Ca1DE6af5264292976e013"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"blockRewardContractAddress": "0x867305d19606aadba405ce534e303d0e225f9556",
|
||||||
|
"blockRewardContractTransition": 1310,
|
||||||
|
"blockRewardContractTransitions": {
|
||||||
|
"9186425": "0x481c034c6d9441db23Ea48De68BCAe812C5d39bA"
|
||||||
|
},
|
||||||
|
"randomnessContractAddress": {
|
||||||
|
"9186425": "0x5870b0527DeDB1cFBD9534343Feda1a41Ce47766"
|
||||||
|
},
|
||||||
|
"posdaoTransition": 9186425
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"params": {
|
||||||
|
"gasLimitBoundDivisor": "0x400",
|
||||||
|
"maximumExtraDataSize": "0x20",
|
||||||
|
"minGasLimit": "0x1388",
|
||||||
|
"networkID": "100",
|
||||||
|
"eip140Transition": "0x0",
|
||||||
|
"eip211Transition": "0x0",
|
||||||
|
"eip214Transition": "0x0",
|
||||||
|
"eip658Transition": "0x0",
|
||||||
|
"eip145Transition": 1604400,
|
||||||
|
"eip1014Transition": 1604400,
|
||||||
|
"eip1052Transition": 1604400,
|
||||||
|
"eip1283Transition": 1604400,
|
||||||
|
"eip1283DisableTransition": 2508800,
|
||||||
|
"eip152Transition": 7298030,
|
||||||
|
"eip1108Transition": 7298030,
|
||||||
|
"eip1283ReenableTransition": 7298030,
|
||||||
|
"eip1344Transition": 7298030,
|
||||||
|
"eip1706Transition": 7298030,
|
||||||
|
"eip1884Transition": 7298030,
|
||||||
|
"eip2028Transition": 7298030,
|
||||||
|
"eip2565Transition": 16101500,
|
||||||
|
"eip2929Transition": 16101500,
|
||||||
|
"eip2930Transition": 16101500,
|
||||||
|
"eip3198Transition": 19040000,
|
||||||
|
"eip3529Transition": 19040000,
|
||||||
|
"eip3541Transition": 19040000,
|
||||||
|
"eip1559Transition": 19040000,
|
||||||
|
"eip1559BaseFeeMaxChangeDenominator": "0x8",
|
||||||
|
"eip1559ElasticityMultiplier": "0x2",
|
||||||
|
"eip1559BaseFeeInitialValue": "0x3b9aca00",
|
||||||
|
"eip1559FeeCollector": "0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92",
|
||||||
|
"eip1559FeeCollectorTransition": 19040000,
|
||||||
|
"registrar": "0x6B53721D4f2Fb9514B85f5C49b197D857e36Cf03",
|
||||||
|
"transactionPermissionContract": "0x7Dd7032AA75A37ea0b150f57F899119C7379A78b",
|
||||||
|
"transactionPermissionContractTransition": 9186425
|
||||||
|
},
|
||||||
|
"genesis": {
|
||||||
|
"seal": {
|
||||||
|
"authorityRound": {
|
||||||
|
"step": "0x0",
|
||||||
|
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"difficulty": "0x20000",
|
||||||
|
"gasLimit": "0x989680"
|
||||||
|
},
|
||||||
|
"nodes": [
|
||||||
|
"enode://a20c13b1712d32028a277958346a5c29350e8a3e32d40de43a62cb35baa99f96f274960591e46be5a643be7ee77a15d6a4963170460156a77abcf500f0ba0ff0@104.237.150.151:30303",
|
||||||
|
"enode://f372b16932a4ee5b6be947556bcca1cf57e498267dd78a7a643a87514a0a5ef4f112cb6934aab5775d3e8940ba535e8f53dfa704e162a72970de61e6ef9fd9aa@45.79.158.26:30303",
|
||||||
|
"enode://fe9720c93e6335b8cacffa10df594c8c166208fa4be8dcb9275788e54111ae88899022fa9c358f2d0029ee57c2223a7fbc97eb06b294422d35ef796a49d87bff@94.237.98.201:30303",
|
||||||
|
"enode://6d12181aa8527251dd8f9d37a2ff7eadb46f2a90c69f2282352ac7889b105d6b5787a532facee656b29599ee1ee51eb5b1eb01d2a17190e32a6cbe6dfc996828@45.79.158.8:30303",
|
||||||
|
"enode://389a625160876776946bfea5a6ce4f4c761bd2062cf8e45e510da77595399ee50a802060868d9bf4580431fc2248cadc9ce61826b3513e090bd1cdd4ce11a9d8@161.97.172.191:30303",
|
||||||
|
"enode://d086bfbe0d15e841e403695c151920459261dd5d5f259858b32727e2bc64d92f48bdad3cc0120703dbb0e2abd2f51c0459cff517bfa16e683ca27018d82a6dcf@66.175.215.67:30303",
|
||||||
|
"enode://540a0bc258ba93e6fafc238f49eca0a2032b5d40b79c077dc9b9a304fd636af4167b638eb0f80aa455f5da1cf49b76c881f651ed301a1e28d6855a8a3fbe21a0@167.71.174.1:30303",
|
||||||
|
"enode://1ceea9d3fb22247edf85102f1e78cd31c2f330ace6ac2789c82766a232d56d7c3c1b2aeb504f2f761de754da22e7dfc5bdde3b00b8b98d1d003f6dd81612f8b3@66.175.211.178:30303",
|
||||||
|
"enode://4175e9ffd9ac9819c9c596a60b7748cc1c1846cf7e8db47ee97f8aa57e42e8cb3dad4201726498d34af94505b2c1429f9d3a508594c521080e8cd1a3fa24a3d5@37.120.245.155:30303",
|
||||||
|
"enode://b5eba653df9c583238ea238ca7cadf5d2746f1b4da81a8cfb2c1b600f62fe37df000fa5b5292059f74faa6bbf5af01b3b81f99284a1fbd5c0971d74db7dc4a34@66.175.213.149:30303",
|
||||||
|
"enode://2a8b64e96da7e67e525f04a157a0016b886dfb2d02553501abd0326b7b061aace7e92ad87c1225dc7d261b05e7886391552c812b386451597bff4b040eb43bec@173.212.236.163:30303",
|
||||||
|
"enode://5f187ae73b07db889c91e8955619b1e6b799696a4b7aab306f7c500a2ec4c7f66dfbea8ac28bde65100653a2fe84b96f2079aed2d61871e06b5a1e32c0f021af@45.79.150.105:30303",
|
||||||
|
"enode://22e442bf7b7fa9bb5960344ef5aa907b920a931bce83e14620b0378318b7eb73753f7245f0a8252590a71ad9568bcfbb9e5f03bd88ab3feb9c1096227bb8704a@168.119.136.44:30303",
|
||||||
|
"enode://ef98bc3c9195b9f27312ac646edb6d0096b04c983f93864c30b8f2b20c699ec974a7066cfae090832679e497d23655e0e315a2c96da4a27d75cc4693e6335bba@192.155.90.129:30303",
|
||||||
|
"enode://de1ab49beedda656976a8fcb01f91ebdb474178fd46e5ce87cf22f0eb90bc3a6721d619ec90c4a6453770a2c24a4bdbc4ef8b8111ffd49f491eb84016a3842d6@54.217.41.94:30303",
|
||||||
|
"enode://ba04a77c7c8ac0fdd325de91536c33bce3b71095de563aafc72e6ac4111ebf093570c7bdba48b06cc83b0af5596f72fc32563547160e067fcb45a1786b8f7150@45.56.105.53:30303",
|
||||||
|
"enode://56510b2d296000427e56eb0016d8454998c16347ec2c4ffed84cb82a996707de40ca2b9ea13c8796b4230b4c19ce46f844720ded93135d710b7bbc7352a061d3@50.35.89.213:30304",
|
||||||
|
"enode://a68b3f3f58ea56dcc70450d371bf0b83363d74cbfdb5f982be00536ae3168aa679c7e7e93bd9ffe34b59527173d73e0ebed0a105c095af2ee16bd1cc66103c80@69.164.215.62:30303",
|
||||||
|
"enode://e8c7a0db430429bb374c981438c0dbd95e565088a483388aa46d8377a3bd62f02cd83d7e2c7e5fc77606141bfef29d23d4285a7c1d9b7e743cf3029314506df7@80.240.16.221:30303",
|
||||||
|
"enode://80c8f6f27f80ba91830002a8ca64771f6baf440fd134e88fbecae3a67c8bc58722d624cecbd6439e1a2d28fbd0297d489fdaa40b10c2f3e07fee1913d52b3e30@45.79.185.92:30303",
|
||||||
|
"enode://da2449aaba873c40c6daf764de55f4b9eae24c4738daec893ef95b6ada96463c6b9624f8e376e1073d21dd820c5bb361e14575121b09bbd7735b6b556ee1b768@67.205.176.117:30303",
|
||||||
|
"enode://481e43a8e30cdfecfe3159dde960d9e65347c3e8c64dcedea87922df875e4d47a813f53c012920b6754e43cde47302cdfb120fd409b6aa2b47c48e391494c7f5@173.255.233.100:30303",
|
||||||
|
"enode://90b0a0e74a9a1ad258531b4ceec25587d8b52ff2cfb36206a34bf6ba1a8d21b2abd20da13260102508a2ac67afbeb2d2ab7a5e9d6bea3bce845cd81e655585cc@45.77.110.159:30303",
|
||||||
|
"enode://6012c883efeee664847a48784459980176a22f31bc98c2aae30011ad7ef0b44011364a0a9ae5eb056db1f052cf3556757bd97485677bbaf1781b131e43204971@69.164.222.63:30303",
|
||||||
|
"enode://5bc43a57273eb4012b59ce268f986cbeeb5f0f878aa25e3d2d71d9b7ff64029a9dd25a84303f80820a78d83ff3a2c570988d0fc68a17d355a98c20c0784aa14d@8.9.5.108:30303",
|
||||||
|
"enode://89e046a4f10c64265941789b2e3be900adf5132ced13756aeea126cf59b516445ed8053b600aa764860f1aad552f4f4f3b4250c59b3b8a84ead3d3527c005606@172.104.24.215:30303",
|
||||||
|
"enode://ab7f6c633ba2dc54795dfd2c739ba7d964f499541c0b8d8ba9d275bd3df1b789470a21a921a469fa515a3dfccc96a434a3fd016a169d88d0043fc6744f34288e@67.205.180.17:30303",
|
||||||
|
"enode://6674773f7aac78d5527fa90c847dcbca198de4081306406a8fec5c15f7a2e141362344041291dd10d0aafa7706a3d8f21a08b6f6834a5b1aab9cccd8ca35ccee@143.110.226.15:30303",
|
||||||
|
"enode://0caa2d84aef00d0bc5de6cf9db3e736da245d882ec8f91e201b3e1635960e62cbb2f8bfc57e679ff3e1d53da2773e31df624a56b2f457ecb51d09fdf9970c86b@167.99.4.175:30303",
|
||||||
|
"enode://7aa4c137b1ec078f2df3c17552e23c7213662819132821ed3aaa42f0212cb889dbb21211f9c5912c68fce577ab7fc99b0a47c0cb469ec0ad29c0acd9ce297659@45.33.84.107:30303",
|
||||||
|
"enode://e026b1a68e8a19106d14effc0df66050c494e10a6b8a4e9f6fd196d95306d7062d129a8c9510ffdbeaf3fe0154b884c116a0e77aec876c368e507de3420fba05@149.28.32.225:30303",
|
||||||
|
"enode://0a978bd436b850f61e31778fbbeb3e0182f91bb98a30c073674c741c182611e71842333c098d3db5108f06cd589c3a8341172e34be0421fa66d82f0dd83d8ae1@51.81.244.170:30303",
|
||||||
|
"enode://75f05df1e5a3094ed2c9df36f122b95852206c52288f777982503946d5b273c7ffd8bb06ad60a0df7a31510906d4090c7bd5fd9bcb04a5b4ac1825a2b7212f32@45.63.18.245:30303"
|
||||||
|
],
|
||||||
|
"accounts": {
|
||||||
|
"0x0000000000000000000000000000000000000005": {
|
||||||
|
"builtin": {
|
||||||
|
"name": "modexp",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"modexp": {
|
||||||
|
"divisor": 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000006": {
|
||||||
|
"builtin": {
|
||||||
|
"name": "alt_bn128_add",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"alt_bn128_const_operations": {
|
||||||
|
"price": 500
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"7298030": {
|
||||||
|
"info": "Istanbul HF",
|
||||||
|
"price": {
|
||||||
|
"alt_bn128_const_operations": {
|
||||||
|
"price": 150
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000007": {
|
||||||
|
"builtin": {
|
||||||
|
"name": "alt_bn128_mul",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"alt_bn128_const_operations": {
|
||||||
|
"price": 40000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"7298030": {
|
||||||
|
"info": "Istanbul HF",
|
||||||
|
"price": {
|
||||||
|
"alt_bn128_const_operations": {
|
||||||
|
"price": 6000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000008": {
|
||||||
|
"builtin": {
|
||||||
|
"name": "alt_bn128_pairing",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"alt_bn128_pairing": {
|
||||||
|
"base": 100000,
|
||||||
|
"pair": 80000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"7298030": {
|
||||||
|
"info": "Istanbul HF",
|
||||||
|
"price": {
|
||||||
|
"alt_bn128_pairing": {
|
||||||
|
"base": 45000,
|
||||||
|
"pair": 34000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000009": {
|
||||||
|
"builtin": {
|
||||||
|
"name": "blake2_f",
|
||||||
|
"pricing": {
|
||||||
|
"7298030": {
|
||||||
|
"info": "Istanbul HF",
|
||||||
|
"price": {
|
||||||
|
"blake2_f": {
|
||||||
|
"gas_per_round": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000001": {
|
||||||
|
"balance": "1",
|
||||||
|
"builtin": {
|
||||||
|
"name": "ecrecover",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"linear": {
|
||||||
|
"base": 3000,
|
||||||
|
"word": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000002": {
|
||||||
|
"balance": "1",
|
||||||
|
"builtin": {
|
||||||
|
"name": "sha256",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"linear": {
|
||||||
|
"base": 60,
|
||||||
|
"word": 12
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000003": {
|
||||||
|
"balance": "1",
|
||||||
|
"builtin": {
|
||||||
|
"name": "ripemd160",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"linear": {
|
||||||
|
"base": 600,
|
||||||
|
"word": 120
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x0000000000000000000000000000000000000004": {
|
||||||
|
"balance": "1",
|
||||||
|
"builtin": {
|
||||||
|
"name": "identity",
|
||||||
|
"pricing": {
|
||||||
|
"0": {
|
||||||
|
"price": {
|
||||||
|
"linear": {
|
||||||
|
"base": 15,
|
||||||
|
"word": 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user