228 Commits

Author SHA1 Message Date
cventastic
96c90dee4b only touch setupdone for pokt bootstrap if tar command succeeds 2022-04-14 18:40:18 +02:00
cventastic
121c44446c add old snapshot 2022-04-14 18:34:43 +02:00
cventastic
6785eec7c6 use different ports 2022-04-14 18:20:24 +02:00
cventastic
a5aacfd4d9 add bootstrap... 2022-04-14 18:18:20 +02:00
cventastic
3859c921ac add mainnet volume 2022-04-14 18:10:46 +02:00
cventastic
7b0dae1272 moved volumes from env to volumes :/ 2022-04-14 18:07:39 +02:00
cventastic
34d27c0bfb pokt-test preparation for beta-update 2022-04-14 18:06:13 +02:00
cventastic
5f3f9cd471 pokt-test preparation for beta-update 2022-04-14 17:57:22 +02:00
cventastic
82fee8d3d6 wrong handling of variables 2022-04-07 13:47:41 +02:00
cventastic
f610486fcb missing space 2022-04-07 13:42:11 +02:00
cventastic
367fe7e355 deleted example config, added polygon healthcheck 2022-04-07 13:37:54 +02:00
cventastic
1f6e128144 added bsc
removed merge notation in prometheus-lt-1.yml
2022-03-31 13:09:45 +02:00
cventastic
bfe6db1eda put timeout from 30 to 60s 2022-03-25 11:41:38 +01:00
cventastic
ee90c39c29 changed erigon for geth on another backend 2022-03-25 11:35:41 +01:00
cventastic
f960e2a87c added polygon 2022-03-24 17:01:12 +01:00
czarly
d6264c93bd merge 2022-02-13 21:50:23 +00:00
czarly
2c8788a373 combined haproxy with the lt config 2022-02-13 21:44:05 +00:00
Your Name
1c81b55c1b missing haproxy config 2022-02-13 21:32:07 +01:00
Your Name
b202565599 missing haproxy config 2022-02-13 21:32:07 +01:00
Your Name
68d4f07d67 refactor the compose files in modules and start to generate prometheus scrape targets. added haproxy. 2022-02-13 20:49:01 +01:00
Your Name
51c432ae78 refactor the compose files in modules and start to generate prometheus scrape targets. added haproxy. 2022-02-13 20:49:01 +01:00
cventastic
34ad7988b4 added healthcheck to mon-client 2022-02-11 11:34:30 +01:00
cventastic
3eda933c49 added healthcheck wireguard 2022-02-11 11:30:31 +01:00
cventastic
91f49a9fef add datasource rpc-de-02 2022-02-11 11:02:38 +01:00
cventastic
6bd308e0f9 removed blank line ropsten-healthcheck.sh
removed Authentication, not available anymore. using whitelist now...
2022-02-10 09:49:53 +01:00
cventastic
4d129c0e46 removed space in filename.... 2022-02-10 09:40:17 +01:00
cventastic
c1b3cc99ad re-add haproxy 2022-02-10 09:33:05 +01:00
cventastic
79ab34fc17 cant put network in 2022-02-03 17:36:26 +01:00
cventastic
b3dd63d00a added networks. dont check this out on rpc-de-1 xD 2022-02-03 17:34:10 +01:00
cventastic
d9369f4f9a added datasource for pokt 2022-01-30 10:19:33 +01:00
cventastic
42f9a262c9 🤦 2022-01-30 10:11:31 +01:00
cventastic
f83ed0170f changed names added. pokt-lt-1 metrics 2022-01-30 10:05:30 +01:00
cventastic
a27a6be96f changed names. added datasources 2022-01-30 09:33:44 +01:00
cventastic
6296e14282 i already established thats not working... forgot it for rpc. 2022-01-30 09:07:27 +01:00
cventastic
14483ea8a2 geth-mainnet doesnt exist anymore. forgot to delete volume 2022-01-30 08:54:59 +01:00
cventastic
d8d5c6e436 no bsc here 2022-01-30 08:27:14 +01:00
cventastic
b359aec426 changed harmony volume name for style reasons 2022-01-30 08:16:38 +01:00
cventastic
05f4e2acb7 wrong env 2022-01-30 05:11:48 +01:00
cventastic
e21e48b8eb use bigger and better nodeexporter dashboard. 2022-01-27 20:42:22 +01:00
cventastic
a734ac1171 doesnt seem to work 2022-01-27 20:07:38 +01:00
cventastic
4f422e48a1 changed port... double usage... 2022-01-27 19:57:28 +01:00
cventastic
1331b184d5 wrong volume name 2022-01-27 19:50:07 +01:00
cventastic
ff3e1b47c8 added 4 lithuanian pokt nodes.
we will have to use --scale if that goes on in this speed.
because docker-files don't scale.
added docker-compose.pokt-lt-01.yml
2022-01-27 18:59:13 +01:00
cventastic
2cf4bac577 dont need pushgateway atm maybe later.. 2022-01-27 18:09:15 +01:00
cventastic
d29348e5fc dont need pushgateway atm maybe later.. 2022-01-27 15:55:48 +01:00
cventastic
b9c9379ba1 added harmony-rpc bootstrap 2022-01-27 03:05:40 +01:00
cventastic
893ec05e73 add metrics port for prometheus 2022-01-25 17:13:43 +01:00
cventastic
67b0026430 add tcp ports for harmony to outside world 2022-01-25 17:08:29 +01:00
cventastic
4608233b1e added hmy cli tool 2022-01-25 16:06:44 +01:00
cventastic
05f67d7e59 we dont need geth-mainnet anymore 2022-01-25 13:55:09 +01:00
cventastic
c81945a6eb update README_POKT.md 2022-01-25 13:10:22 +01:00
cventastic
127fcd1d6f no bash just shell 2022-01-24 12:04:45 +01:00
cventastic
888251469f new dashboards 2022-01-24 11:03:31 +01:00
cventastic
d3b529bc58 new dashboards 2022-01-24 11:03:08 +01:00
cventastic
dac6a5c0eb Docs say: --prometheus enable HTTP / Prometheus requests (default true) 2022-01-24 10:36:27 +01:00
cventastic
05554dedbf fix underscore 2022-01-24 10:29:43 +01:00
cventastic
b71bbcd45d add prometheus_harmony.yml 2022-01-24 10:25:36 +01:00
cventastic
83ef8d47ad fix harmony.sh RUN command
update README_HARMONY.md
enable prometheus for harmony.sh
2022-01-24 10:25:02 +01:00
cventastic
32e474347f 🤦 2022-01-24 09:45:46 +01:00
cventastic
47667f1aeb bootstrap debugging 2022-01-24 08:47:48 +01:00
cventastic
297dd6dddb bootstrap debugging 2022-01-24 08:38:31 +01:00
cventastic
126daf767f create folders 2022-01-24 08:34:51 +01:00
cventastic
6093e279ea uncomment download in harmony.sh after manual move 2022-01-24 08:30:11 +01:00
cventastic
7df451b58c uncomment download in harmony.sh after manual move 2022-01-24 08:24:15 +01:00
cventastic
25cf170ed6 fix bootstrap skript harmony.sh. fix volumes of harmony docker file 2022-01-24 08:20:32 +01:00
cventastic
7eb466e383 fix README_POKT.md 2022-01-23 22:44:18 +01:00
cventastic
59cdc5eba2 added pokt/config.json to prepare.sh 2022-01-23 21:15:18 +01:00
cventastic
7f25960c5a added pokt config with metrics enabled... 2022-01-23 21:11:11 +01:00
cventastic
e6098398c6 added tendermint metrics 2022-01-23 19:46:34 +01:00
cventastic
d27fc8d269 update README.md 2022-01-23 16:58:18 +01:00
cventastic
7ea656b6c2 cat/EOF doesnt like to be inside if statement 2022-01-23 16:53:34 +01:00
cventastic
1d272cdc75 forgot to add script 2022-01-23 16:47:36 +01:00
cventastic
1713f8b759 added bootstrap to harmony 2022-01-23 16:47:08 +01:00
cventastic
3c8c624c10 shard 1 and no persisten bootnodes, let harmony choose 2022-01-23 15:13:45 +01:00
cventastic
6b18040473 remove comment 2022-01-23 14:07:38 +01:00
cventastic
4bff8010e6 added harmony validator compose-file 2022-01-23 13:34:01 +01:00
cventastic
c99af9a7ca hide query path. good i found out before someone else did :O 2022-01-22 09:41:33 +01:00
cventastic
ed8188db80 why everyone does their own regexp 2022-01-22 09:29:02 +01:00
cventastic
f311c54be4 syn 2022-01-22 08:26:08 +01:00
cventastic
4cd11a6c79 fix ) 2022-01-22 08:03:22 +01:00
cventastic
c5a77a8e3a hide query path 2022-01-22 07:50:29 +01:00
cventastic
2f4178daba sort chains, update readme, rename mon-compose files 2022-01-19 00:26:36 +01:00
cventastic
69770762f3 fix prometheus.yml 2022-01-15 03:11:32 +01:00
cventastic
b9ab440ef4 traefik metrics 2022-01-13 23:48:12 +01:00
cventastic
5639cf70b3 added metrics for traefik 2022-01-13 23:38:40 +01:00
cventastic
749e9ccc22 fix variable name 2022-01-13 23:12:33 +01:00
cventastic
9718b6645e Merge branch 'main' of github.com:cventastic/POKT_DOKT 2022-01-13 23:07:53 +01:00
cventastic
cc926af991 added traefik metrics and more chains 2022-01-13 23:07:39 +01:00
Sebastian
db7e7a51b5 open avalanche ports and revert version pinning 2022-01-13 19:53:02 +01:00
Sebastian
3f3e19a675 open avalanche ports and revert version pinning 2022-01-13 19:51:18 +01:00
Sebastian
a4faf06b74 open avalanche ports and revert version pinning 2022-01-13 19:50:33 +01:00
Sebastian
1b14565870 Merge branch 'main' of github.com:cventastic/POKT_DOKT into main 2022-01-13 19:32:15 +01:00
Sebastian
2b24b182c8 pin avax version 2022-01-13 19:32:08 +01:00
cventastic
019e9db840 fix env 2022-01-13 18:38:59 +01:00
cventastic
91cec100f9 added scond pokt node 2022-01-13 18:27:01 +01:00
cventastic
06a09c9dfb second node on iokula 2022-01-13 18:21:09 +01:00
cventastic
fbf7c7406d added pokt monitoring for earnings. work in progress 2022-01-13 17:33:27 +01:00
cventastic
3bccfa038e not working 2022-01-12 19:19:42 +01:00
cventastic
e07f2359dd fix script 2022-01-12 19:06:08 +01:00
cventastic
54558d6e5a add erigon, simple stupid alarming 2022-01-12 19:00:12 +01:00
cventastic
b1dfc66c5f new xdai.json 2022-01-12 17:09:20 +01:00
Sebastian
d61180a5cd fix 2022-01-12 14:53:24 +01:00
Sebastian
23ee7b3fe4 added fuse 2022-01-12 14:38:45 +01:00
Sebastian
be9a775de5 added bsc to the compose file 2022-01-12 14:01:46 +01:00
Sebastian
e5fd725e3e fix avalanche volume mount point 2022-01-12 08:26:11 +01:00
cventastic
258e67da0b updated readme 2022-01-11 15:04:19 +01:00
cventastic
93c4f95ac8 fix harmony test 2022-01-11 15:00:52 +01:00
cventastic
099f6347c7 added harmony 2022-01-11 14:57:37 +01:00
cventastic
478b9bba91 funzt nicht 2022-01-11 11:02:43 +01:00
cventastic
4af8f8fb51 added filebased logging 2022-01-11 10:59:15 +01:00
cventastic
5cb05a7a2c wg0.conf file needs some other kind of deployment, maybe ansible? 2022-01-11 10:42:34 +01:00
cventastic
d807c66150 added harmony to relay 2022-01-11 10:37:43 +01:00
cventastic
b3b08b22b3 add wg0.conf otherwise a folder gets created?! 2022-01-10 16:02:31 +01:00
cventastic
ccedf8d7e7 added iokula pokt node 2022-01-10 15:53:11 +01:00
cventastic
d56b59e47a removed fuse 2022-01-10 12:07:04 +01:00
cventastic
e896bc69be add harmony example rpc request 2022-01-10 12:00:16 +01:00
cventastic
8ec9a3156b added correct datadir to hrmny 2022-01-05 11:57:59 +01:00
cventastic
ded282998c update readme, update testnet-relay domain variable 2022-01-04 17:02:10 +01:00
cventastic
86b739b61b grafana new version for alerting 2022-01-03 16:45:19 +01:00
cventastic
3c51faa5d4 added variable, deleted redundant stuff 2022-01-03 14:10:18 +01:00
cventastic
2076f71dd5 added to dashboards 2022-01-03 13:48:09 +01:00
cventastic
af666cbdd7 datasource needed. variable not working as expected :O 2022-01-03 13:24:22 +01:00
cventastic
340e443f0e Merge branch 'main' of github.com:cventastic/POKT_DOKT 2022-01-03 13:17:08 +01:00
cventastic
30b0fa26be leave datasource empty for variable 2022-01-03 13:17:01 +01:00
Sebastian
5073933208 Merge branch 'main' of github.com:cventastic/POKT_DOKT into main 2022-01-03 13:08:55 +01:00
Sebastian
7c0b95e47f add fuse network 2022-01-03 13:08:49 +01:00
cventastic
6206373f04 edited datasource 2022-01-03 12:59:39 +01:00
cventastic
da9569ba97 test old files 2022-01-03 12:54:11 +01:00
cventastic
d2fd3e8a2e newline for yml 2022-01-03 12:47:57 +01:00
cventastic
6e8be0bee5 Merge branch 'main' of github.com:cventastic/POKT_DOKT 2022-01-03 12:33:07 +01:00
cventastic
1ec1148786 deleted redundant grafana dashboard 2022-01-03 12:33:03 +01:00
Sebastian
5e63e8589b Merge branch 'main' of github.com:cventastic/POKT_DOKT into main 2022-01-03 12:32:07 +01:00
Sebastian
4904b09f8c make xdai p2p sync port available 2022-01-03 12:32:00 +01:00
cventastic
9202948739 specific path not working 2022-01-03 12:29:51 +01:00
cventastic
c57a8396c9 try out specific path 2022-01-03 12:27:45 +01:00
Sebastian
8dcae76a80 Merge branch 'main' of github.com:cventastic/POKT_DOKT into main 2022-01-03 12:26:28 +01:00
Sebastian
33c9df931c add xdai 2022-01-03 12:26:21 +01:00
cventastic
39ed18953e updated readme 2022-01-03 12:07:44 +01:00
cventastic
43c8ca8872 Merge branch 'main' of github.com:cventastic/POKT_DOKT 2022-01-03 12:03:35 +01:00
cventastic
df007ec024 added pokt-de-1 to monitoring 2022-01-03 12:03:20 +01:00
Sebastian
70bd91277b remove the kernel options that do not work 2022-01-03 11:59:51 +01:00
Sebastian
c5cbde2d42 Merge branch 'main' of github.com:cventastic/POKT_DOKT into main 2022-01-03 11:53:37 +01:00
Sebastian
8cb58bc0cf limits to the harmony container 2022-01-03 11:53:33 +01:00
cventastic
591f305077 changed datasource for pokt-test 2022-01-03 11:52:50 +01:00
cventastic
d4dd7c1049 added test-pokt to grafana 2022-01-03 11:41:10 +01:00
cventastic
324f92294f test provider name change 2022-01-03 11:30:40 +01:00
Sebastian
472b208ad3 but now it's done 2022-01-03 11:29:33 +01:00
Sebastian
a711631f84 but now 2022-01-03 11:17:07 +01:00
Sebastian
f5a7bf912e this is it 2022-01-03 11:15:04 +01:00
Sebastian
d202032ee1 Merge branch 'main' of github.com:cventastic/POKT_DOKT into main 2022-01-03 11:07:07 +01:00
Sebastian
f20640c36e yo fix 2022-01-03 11:06:59 +01:00
cventastic
496136edeb Merge branch 'main' of github.com:cventastic/POKT_DOKT 2022-01-03 10:52:53 +01:00
cventastic
351246021b added traefik to pokt-test 2022-01-03 10:52:39 +01:00
Sebastian
9120c4b029 added harmony to the compose file 2022-01-03 10:46:17 +01:00
cventastic
b1e7d3b6b5 remove basicauth 2022-01-03 10:10:35 +01:00
cventastic
901694f4a6 fix typo 2021-12-31 01:13:08 +01:00
cventastic
62edb08bd6 added basic auth 2021-12-31 00:58:14 +01:00
cventastic
eacf6535b2 added traefik 2021-12-30 23:19:47 +01:00
cventastic
6491889c1b ident 2021-12-30 03:32:24 +01:00
cventastic
aeb6e72139 ident 2021-12-30 03:30:57 +01:00
cventastic
a521e0c258 ident 2021-12-30 03:27:23 +01:00
cventastic
e12f2267f5 ident 2021-12-30 03:24:27 +01:00
cventastic
44f277b77d mon 2021-12-30 03:22:09 +01:00
cventastic
510f7db452 mon 2021-12-30 03:19:15 +01:00
cventastic
012c6b6c9e mon 2021-12-30 03:10:26 +01:00
cventastic
a28bacd70d mon 2021-12-30 03:08:26 +01:00
cventastic
7200666d17 mon 2021-12-30 02:27:18 +01:00
cventastic
2d51371e40 mon 2021-12-30 02:24:25 +01:00
cventastic
baa59c67b9 mon 2021-12-30 02:08:35 +01:00
cventastic
0d0e15ee22 mon 2021-12-30 02:04:48 +01:00
cventastic
79599d9ae6 mon 2021-12-30 01:56:02 +01:00
cventastic
6e41db128a mon 2021-12-30 01:37:59 +01:00
cventastic
59addb79f4 mon 2021-12-30 01:11:31 +01:00
cventastic
bf367928ec mon 2021-12-30 01:07:05 +01:00
cventastic
7638132e52 mon 2021-12-30 01:00:10 +01:00
cventastic
2b6bc0909f mon 2021-12-30 00:59:20 +01:00
cventastic
e632c866b0 mon 2021-12-30 00:56:30 +01:00
cventastic
82093d60e8 mon 2021-12-30 00:45:00 +01:00
cventastic
d05a5e51ed mon 2021-12-30 00:37:40 +01:00
cventastic
5e10b5b69f mon 2021-12-30 00:26:38 +01:00
cventastic
cedc18d11d mon 2021-12-30 00:06:31 +01:00
cventastic
81b375a398 added metrics to chains 2021-12-29 23:55:08 +01:00
cventastic
e55eb4b439 mon 2021-12-29 23:08:35 +01:00
cventastic
a2a0d2ba8b mon 2021-12-29 23:02:30 +01:00
cventastic
763ce51530 mon 2021-12-29 22:59:30 +01:00
cventastic
47d2863f1e mon 2021-12-29 22:57:47 +01:00
cventastic
c69a6bf08b mon 2021-12-29 22:38:13 +01:00
cventastic
84236b8de7 sed back file 2021-12-29 21:58:58 +01:00
cventastic
c36e81aaeb mon 2021-12-29 21:58:16 +01:00
cventastic
2b3cb73b48 fix path issue 2021-12-29 20:49:41 +01:00
cventastic
4c05514207 monitoring 2021-12-29 20:37:01 +01:00
cventastic
1210ec6cf8 invisible skeleton dirs :O 2021-12-29 19:09:19 +01:00
cventastic
7050872fc8 whitespaces :O 2021-12-29 19:01:16 +01:00
cventastic
c0ea42376d added pokt query mainnet 2021-12-29 16:51:44 +01:00
cventastic
3788c55941 added pokt query 2021-12-29 16:47:07 +01:00
cventastic
e8d7fe3c0d homogen ports on stake servers 2021-12-29 16:39:02 +01:00
cventastic
0c6a55b773 relay.sh 2021-12-29 16:34:22 +01:00
cventastic
751f3db3cb no traefic for staking node for now 2021-12-29 14:55:04 +01:00
cventastic
ba1b091257 refactor 2021-12-29 14:49:35 +01:00
cventastic
619b8245cd added right shebang 2021-12-29 02:27:32 +01:00
cventastic
0747c10839 put whitelist to services 2021-12-29 01:39:48 +01:00
cventastic
cf195e161d workaround 2021-12-28 17:02:03 +01:00
cventastic
27392854d4 permissions for multiple runs 2021-12-28 16:48:10 +01:00
cventastic
a0f6ed6dc5 added traefik to testnetstaker 2021-12-28 15:55:58 +01:00
cventastic
8865df89e5 update README.md 2021-12-28 15:33:03 +01:00
cventastic
f43985edb9 update README.md 2021-12-28 14:56:02 +01:00
cventastic
e901b88030 no infile substitution 2021-12-28 14:45:41 +01:00
cventastic
a407f96e11 rename 2021-12-28 14:40:24 +01:00
cventastic
2c03e48d48 rename 2021-12-28 14:39:25 +01:00
cventastic
a932bd8e3b changed env to bash 2021-12-28 14:15:15 +01:00
cventastic
3b25d87098 make script executable 2021-12-28 14:14:43 +01:00
cventastic
a732bac611 changed path 2021-12-28 14:12:36 +01:00
cventastic
2607864a10 addded preparation skript 2021-12-28 14:04:11 +01:00
cventastic
9d5f4298c3 added relaychains for mainnet 2021-12-28 13:15:15 +01:00
cventastic
d32a161681 setting relaymode for front nodes 2021-12-28 12:21:52 +01:00
cventastic
53753a8c8c rpc node no relay 2021-12-28 12:14:34 +01:00
cventastic
723979e176 open p2p 2021-12-28 11:45:37 +01:00
cventastic
565a765c71 added new chains for testnet 2021-12-27 12:56:30 +01:00
cventastic
050d82021c whitelist fixed 2021-12-27 12:14:32 +01:00
cventastic
605321e12c ??? 2021-12-27 12:02:48 +01:00
cventastic
1afae2e6e6 reorg middleware 2021-12-27 11:57:45 +01:00
cventastic
59a7c17436 add ip whitelist 2021-12-27 11:45:47 +01:00
cventastic
32478b158f change hostip vs domain 2021-12-27 11:39:23 +01:00
cventastic
8b00b96450 add ip whitelist 2021-12-27 11:36:06 +01:00
cventastic
ea10406e71 add ip whitelist 2021-12-27 11:21:31 +01:00
cventastic
a418d0e1e2 remove more networks 2021-12-27 11:13:17 +01:00
cventastic
b7e2f76e58 Merge pull request #2 from cventastic/split
Split
2021-12-27 10:10:24 +00:00
cventastic
7c1e67b70d Merge pull request #1 from cventastic/split
Split
2021-12-27 09:52:17 +00:00
46 changed files with 23700 additions and 116 deletions

View File

@@ -1,20 +1,4 @@
Place val.key and val.pass into ./harmony/keyfiles
### Docs
```
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)
[Pocket Validator](README_POKT.md) </br>
[Harmony Validator](harmony/README_HARMONY.md)

76
README_POKT.md Normal file
View 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

View 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

View 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"
}
]

View 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
View 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
View 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"

View 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"

View File

@@ -3,7 +3,7 @@ version: '3.1'
services:
harmony-mainnet:
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:
net.core.somaxconn: 1024
# net.core.netdev_max_backlog: 65536
@@ -28,7 +28,6 @@ services:
- harmony_data:/harmony/
- ./harmony/keyfiles:/.hmy/blskeys
- ./harmony/log:/harmony/log
- ./harmony/harmony.conf:/harmony.conf
- ./bootstrap_skript/harmony.sh:/harmony.sh
restart: unless-stopped

View 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:

View 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:

View 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:

View 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:

View 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:

View 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:

View 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

View 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": ""
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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": ""
}

View 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

View 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
View 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"]

View 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

View 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
View 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

View 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

View 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
View 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

View 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

View 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
View 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)

View File

@@ -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
View 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
}
}

View 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']

View 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

View 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
View 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']

View File

18
util/prepare.sh Executable file
View 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
View 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
View 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
View 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
View 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
}
}
}
}
}
}
}
}