Skip to content

Commit c16323d

Browse files
committed
Update
1 parent e6409d8 commit c16323d

File tree

2 files changed

+44
-22
lines changed

2 files changed

+44
-22
lines changed

.vscode/settings.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"vscode-extension",
66
".git/objects",
77
".vscode",
8-
".vscode-insiders",
9-
"README.md"
8+
".vscode-insiders"
109
]
1110
}

README.md

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
1. Extendable to most Tendermint-based chains
66
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
99

1010
## TL/DR
1111

@@ -15,16 +15,29 @@ You run one playbook and set up a node.
1515
ansible-playbook main.yml -e "target=juno_main"
1616
```
1717

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+
1820
## Node deployment (Validator, Backup and Relayer)
1921

2022
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).
2123

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/<prime number> pruning, and Relayer node has kv indexer and 40000/2000/<prime number> pruning. We will force these setting on you unless you fork the code.
30+
31+
#### Host Variables
32+
2233
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:
2334

2435
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.
2637
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.
2738

39+
#### Other Variables
40+
2841
Besides the above host variables, you will also specify the following `all` variables in the inventory file:
2942

3043
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
3952
1. `node_name`: This is your node name for the config.toml file.
4053
1. `log_name`: This is the server name for the promtail service.
4154

55+
#### Ready? Go!
56+
4257
One you understand the setup, please first copy it to your own inventory file so you can customize it to suit your needs:
4358

4459
```bash
@@ -53,12 +68,10 @@ ansible-playbook main.yml -e "target=HOST_NAME"
5368

5469
## Playbooks
5570

56-
Playbooks are:
57-
5871
| Playbook | Description |
5972
| ------------------------------- | ----------------------------------------------------------------------------------- |
6073
| `main.yml` | The main playbook to set up a node |
61-
| `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 |
6275
| `support_cosmos_exporter.yml ` | Set up Cosmos Exporter configuration (assuming Cosmos Exporter already installed) |
6376
| `support_public_endpoints.yml ` | Set up Nginx reverse proxy for public PRC/ API |
6477
| `support_snapshot.yml ` | Install snapshot script and a cron job |
@@ -67,28 +80,38 @@ Playbooks are:
6780
| `relayer_juno.yml ` | Set up Polkachu's Hermes config for Juno Hub |
6881
| `relayer_osmosis.yml ` | Set up Polkachu's Hermes config for Osmosis Hub |
6982

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
8184

85+
- Agoric
8286
- Akash
83-
- BitCanna
87+
- Asset Mantle
88+
- Axelar
89+
- Bitcanna
90+
- Cerberus
91+
- Certik
8492
- Chihuahua
8593
- Comdex
86-
- Cerberus
8794
- Evmos
95+
- Fetch
96+
- Galaxy (galaxyd is the name for this repo because galaxy is a reserved word in Ansible)
97+
- Gravity Bridge
8898
- Juno
8999
- Kava
90100
- KiChain
101+
- Konstellation
102+
- Meme
91103
- Osmosis
92104
- Sifchain
93-
- Terra
105+
- Sommelier
106+
- Stargaze
94107
- 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.
112+
113+
| Chain | Issue | Solution |
114+
| --------- | --------------------------------------- | ------------------------------------------------------------------------------------ |
115+
| Axelar | Some extra lines at the end of app.toml | Delete extra lines and adjust some settings these extra lines are supposed to change |
116+
| Injective | Some extra lines at the end of app.toml | Delete extra lines and adjust some settings these extra lines are supposed to change |
117+
| Fetch | State-sync is not supported | Adjust the state-sync setting |

0 commit comments

Comments
 (0)