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: docs/docs/consumer-development/onboarding.md
+52-13
Original file line number
Diff line number
Diff line change
@@ -4,14 +4,14 @@ title: Onboarding Checklist
4
4
---
5
5
# Consumer Onboarding Checklist
6
6
7
-
The following checklists will aid in onboarding a new consumer chain to interchain security.
7
+
The following checklists will aid in onboarding a new consumer chain to Interchain Security.
8
8
9
9
Additionally, you can check the [testnet repo](https://github.com/cosmos/testnets/blob/master/interchain-security/CONSUMER_LAUNCH_GUIDE.md) for a comprehensive guide on preparing and launching consumer chains.
10
10
11
11
## 1. Complete testing & integration
12
12
13
13
-[ ] test integration with gaia
14
-
-[ ] test your protocol with supported relayer versions (minimum hermes 1.4.1)
14
+
-[ ] test your protocol with supported relayer versions (minimum hermes 1.10.2)
15
15
-[ ] reach out to the ICS team if you are facing issues
16
16
17
17
## 2. Create an Onboarding Repository
@@ -20,11 +20,10 @@ To help validators and other node runners onboard onto your chain, please prepar
20
20
21
21
This should include (at minimum):
22
22
23
-
-[ ] genesis.json without CCV data (before the proposal passes)
24
-
-[ ] genesis.json with CCV data (after spawn time passes). Check if CCV data needs to be transformed (see [Transform Consumer Genesis](./consumer-genesis-transformation.md))
23
+
-[ ] genesis.json without the consumer module genesis (before the spawn time passes). **Make sure the genesis time is within the trusting period (i.e., one day before launch time or shorter).**
24
+
-[ ] genesis.json with the consumer module genesis (after the spawn time passes). Check if the consumer module genesis needs to be transformed (see [Transform Consumer Genesis](./consumer-genesis-transformation.md))
25
25
-[ ] information about relevant seed/peer nodes you are running
26
26
-[ ] relayer information (compatible versions)
27
-
-[ ] copy of your governance proposal (as JSON)
28
27
-[ ] a script showing how to start your chain and connect to peers (optional)
29
28
-[ ] take feedback from other developers, validators and community regarding your onboarding repo and make improvements where applicable
30
29
@@ -35,8 +34,8 @@ Example of such a repository can be found [here](https://github.com/hyphacoop/ic
35
34
Before you start your chain, you need to submit a `MsgCreateConsumer` message that generates and returns back the
36
35
`consumerId` that should be used in any upcoming interactions by the consumer chain or the validators that interact
37
36
with your chain.
38
-
Additionally, you need to decider whether your chain should be an Opt-In chain or a Top N chain (see [Partial Set Security](../features/partial-set-security.md))
39
-
and act accordingly (see [Permissionless ICS](../features/permissionless.md).
37
+
Additionally, you need to decide whether your chain should be an Opt-In chain or a Top N chain (see [Partial Set Security](../features/partial-set-security.md))
38
+
and act accordingly (see [Permissionless ICS](../features/permissionless.md)).
40
39
41
40
If you create a Top N chain through, please consider allowing at least a day between your proposal passing and the chain spawn time.
42
41
This will allow the validators, other node operators and the community to prepare for the chain launch.
@@ -57,9 +56,9 @@ Example of initialization parameters:
57
56
// ConsumerInitializationParameters provided in MsgCreateConsumer or MsgUpdateConsumer
58
57
{
59
58
// Initial height of new consumer chain.
60
-
// For a completely new chain, this will be {0,1}.
59
+
// For a completely new chain, this will be {1,1}.
61
60
"initial_height": {
62
-
"revision_height":0,
61
+
"revision_height":1,
63
62
"revision_number":1,
64
63
},
65
64
// Hash of the consumer chain genesis state without the consumer CCV module genesis params.
@@ -120,9 +119,9 @@ Example of power-shaping parameters:
120
119
"validator_set_cap":0,
121
120
// Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate
// Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain.
125
-
"denylist": [],
124
+
"denylist": ["cosmosvalcons..."],
126
125
// Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain.
127
126
"min_stake":0,
128
127
// Corresponds to whether inactive validators are allowed to validate the consumer chain.
@@ -138,13 +137,53 @@ Example of allowlisted reward denoms:
138
137
}
139
138
```
140
139
140
+
:::caution
141
+
For opt-in consumer chains, make sure that at least one validator opts in before the spawn time elapses.
142
+
Otherwise the launch process will be aborted and the spawn time needs to be updated by submitting a `MsgUpdateConsumer` message.
143
+
:::
144
+
141
145
## 4. Launch
142
146
143
147
The consumer chain starts after at least 66.67% of its voting power comes online.
144
148
Note that this means 66.67% of the voting power in the *consumer* validator set, which will be comprised of all validators that either opted in to the chain or are part of the top N% of the provider chain (and are thus automatically opted in).
145
149
The consumer chain is considered interchain secured once the appropriate CCV channels are established and the first validator set update is propagated from the provider to the consumer
146
150
147
-
-[ ] provide a repo with onboarding instructions for validators (it should already be listed in the proposal)
148
-
-[ ] genesis.json with ccv data populated (MUST contain the initial validator set)
151
+
-[ ] provide a repo with onboarding instructions for validators
152
+
-[ ] genesis.json with the consumer module section populated (MUST contain the initial validator set)
149
153
-[ ] maintenance & emergency contact info (relevant discord, telegram, slack or other communication channels)
150
154
-[ ] have a block explorer in place to track chain activity & health
155
+
156
+
### Establish CCV channel
157
+
158
+
Once the consumer chain is launched, the CCV channel needs to be established. The following instructions are setting both the connection and channel using Hermes:
159
+
160
+
```bash
161
+
#!/bin/bash
162
+
163
+
# CONSUMER_CLIENT_ID is created on CONSUMER upon genesis
164
+
CONSUMER_CLIENT_ID="<consumer-client-id>"
165
+
CONSUMER_CHAIN_ID="<consumer-chain-id>"
166
+
167
+
# PROVIDER_CLIENT_ID is created on PROVIDER upon CONSUMER spawn time: gaiad q provider list-consumer-chains
0 commit comments