You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+43-20Lines changed: 43 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,8 @@
4
4
5
5
1. Extendable to most Tendermint-based chains
6
6
1. Support both mainnet and testnet
7
-
1. Stable playbooks and roles; Customisable variables
8
-
1. Support essential functions (snapshot, state-sync, public RPC/API endpoints and Cosmos Exporter) through seperate playbooks
7
+
1. Stable playbooks and roles; Customizable variables
8
+
1. Support essential functions (snapshot, state-sync, public RPC/API endpoints and Cosmos Exporter) through separate playbooks
9
9
10
10
## TL/DR
11
11
@@ -15,16 +15,29 @@ You run one playbook and set up a node.
15
15
ansible-playbook main.yml -e "target=juno_main"
16
16
```
17
17
18
+
Because we try our best to support the latest node version, it is not recommended for you to sync from Block 1. Rather, please [state-sync](https://polkachu.com/state_sync) or start from a [snapshot](https://polkachu.com/tendermint_snapshots).
19
+
18
20
## Node deployment (Validator, Backup and Relayer)
19
21
20
22
For every network where we run a validator on mainnet, we run 3 nodes (Validator, Backup and Relayer). The details of our 3-node infrastructure are documented [here](https://polkachu.com/blogs/holy-trinity-a-system-approach-to-tendermint-based-chain-validation).
21
23
24
+
#### Opinionated Configuration
25
+
26
+
We have 2 strong opinions about the node configuration:
27
+
28
+
1. Each network will have its custom port prefix. This is to prevent port collision if you run multiple nodes on the same server (we do so for Backup Node and Relayer Node). For example, Juno's custom port prefix is 26 and that of Osmosis is 25. Since it is rather arbitrary, we are going to force the same convention on you unless you fork the code.
29
+
1. Each type of node will have its setting based on Polkachu's "best practice". For example, the main node (Validator) has null indexer, and 100/0/<primenumber> pruning, and Relayer node has kv indexer and 40000/2000/<primenumber> pruning. We will force these setting on you unless you fork the code.
30
+
31
+
#### Host Variables
32
+
22
33
Take a look at the `inventory.sample` file. You will see an example `juno` group with 3 different hosts: `juno_main`, `juno_backup`, and `juno_relayer`. Each host will have the following variables:
23
34
24
35
1.`ansible_host`: Required. The IP address of the server.
25
-
1.`type`: Required. It can be `main`, `backup` and `realyer` (also `test` if you are adventurous). Each is opinionated in its configuration settings.
36
+
1.`type`: Required. It can be `main`, `backup` and `relayer` (also `test` if you are adventurous). Each is opinionated in its configuration settings.
26
37
1.`prepare`: Optional. If unset, it is default to true. If `false`, it will skip setups of firewall, go, cosmovisor, node exporter, promtail, etc. The reason for the `false` option is because we run many backup/relayer nodes on the same server with setup done already.
27
38
39
+
#### Other Variables
40
+
28
41
Besides the above host variables, you will also specify the following `all` variables in the inventory file:
29
42
30
43
1.`ansible_user`: The sample file assumes `ubuntu`, but feel free to use other user name. This user need sudo privilege.
@@ -39,6 +52,8 @@ Besides the above host variables, you will also specify the following `all` vari
39
52
1.`node_name`: This is your node name for the config.toml file.
40
53
1.`log_name`: This is the server name for the promtail service.
41
54
55
+
#### Ready? Go!
56
+
42
57
One you understand the setup, please first copy it to your own inventory file so you can customize it to suit your needs:
|`prepare.yml`| Prepare the server with node_exporter, promtail, go, cosmovisor, and firewall rules |
74
+
|`prepare.yml`| Prepare the server with node exporter, promtail, go, cosmovisor, and firewall rules |
62
75
|`support_cosmos_exporter.yml `| Set up Cosmos Exporter configuration (assuming Cosmos Exporter already installed) |
63
76
|`support_public_endpoints.yml `| Set up Nginx reverse proxy for public PRC/ API |
64
77
|`support_snapshot.yml `| Install snapshot script and a cron job |
@@ -67,28 +80,38 @@ Playbooks are:
67
80
|`relayer_juno.yml `| Set up Polkachu's Hermes config for Juno Hub |
68
81
|`relayer_osmosis.yml `| Set up Polkachu's Hermes config for Osmosis Hub |
69
82
70
-
# Pay attention
71
-
72
-
Some anomaly in the injective app file. Clean up the end in the app toml file
73
-
74
-
Some anomaly in the axelar config or app file. Forgot which one it is
75
-
76
-
Some anomaly in fetch becasue statesync is not supported
77
-
78
-
Kill polkadex 4, 5
79
-
80
-
This repo is to set up the Cosmos-based node. It currently support:
83
+
## Supported Networks
81
84
85
+
- Agoric
82
86
- Akash
83
-
- BitCanna
87
+
- Asset Mantle
88
+
- Axelar
89
+
- Bitcanna
90
+
- Cerberus
91
+
- Certik
84
92
- Chihuahua
85
93
- Comdex
86
-
- Cerberus
87
94
- Evmos
95
+
- Fetch
96
+
- Galaxy (galaxyd is the name for this repo because galaxy is a reserved word in Ansible)
97
+
- Gravity Bridge
88
98
- Juno
89
99
- Kava
90
100
- KiChain
101
+
- Konstellation
102
+
- Meme
91
103
- Osmosis
92
104
- Sifchain
93
-
- Terra
105
+
- Sommelier
106
+
- Stargaze
94
107
- Umee
108
+
109
+
## Known Issue
110
+
111
+
Because this repo tries to accommodate as many Tendermint-based chains as possible, it cannot adapt to all edge cases. Here are some known issues and how to resolve them.
0 commit comments