This is an attempt at the first IBC testnet. The goal here is to have multiple independent actors each spin up their own chain. Once this is done all the participants in the testnet should be able to connect to each other's chains. Ideally this testnet runs for around a week in initial preperation for Game of Zones. To spin up a single node chain the bootstrapping proceedure looks like the following:
NOTE: Your RPC port needs to be routable by other testnet participants. You will need to manage configuration on your cloud provider, but also be sure to change the default RPC listen in your
~/.gaiad/config/config.toml
:
##### rpc server configuration options #####
[rpc]
# TCP or UNIX socket address for the RPC server to listen on
laddr = "tcp://0.0.0.0:26657"
# install golang https://golang.org/doc/install and setup gopath
# install gaia from the fedekunze/ibc branch
git clone https://github.com/cosmos/gaia
cd gaia && git checkout fedekunze/ibc
make install
# Once gaia is installed create a new chain-id
gaiad init {{ .Moniker }} --chain-id {{ .Unique.Chain-ID }}
# Create a couple of accounts on your chain
# NOTE: If you can add other testnet participant wallets to the genesis this will allow
# them to more easily create transactions (required for connections on IBC) on your chain
gaiacli keys add validator-key
gaiacli keys add faucet
gaiad add-genesis-account validator-key 100000000stake,100000000validatortoken
gaiad add-genesis-account faucet 100000000stake,100000000faucettoken
# for other participants, see addresses in the telegram channel:
# gaiad add-genesis-account {{ .TestnetAccount }} 1000000stake
# Create your gentx, collect the gentxs and start the chain:
gaiad gentx --name validator-key
gaiad collect-gentxs
# Change the RPC listener to `tcp://0.0.0.0:26657`
sed -i '' 's#"tcp://127.0.0.1:26657"#"tcp://0.0.0.0:26657"#g' ~/.gaiad/config/config.toml
# Note its pretty easy to setup systemd to manage this: https://cosmos.network/docs/cosmos-hub/validators/validator-setup.html#problem-2-my-gaiad-crashes-because-of-too-many-open-files
gaiad start
Once you have the chain started you will need to share the following information for other users to connect to your chain via IBC. There is a spreadsheet to do so:
- RPC endpoint for your chain (
http://{{ .IP }}:26657
) --chain-id
for your chain- Users may need some tokens on your chain depending on
--min-fees
, use the faucet account to fund those user's accounts or include them in your genesis file.
Once your chain is setup you should be able to connect to the TBD
chain. The following is the necessary information:
- RPC Endpoint:
http://TBD:26657
--chain-id
:TBD
- Ping
jackzampolin
on telegram if you need funds on theTBD
chain.
This gist also includes a couple of scripts to help setup the necessary connections and then send funds. First configure connect.sh
with the details for the two chains you would like to use
Telegram coordination channel link: https://t.me/joinchat/IYdbxRRFYIkj9FR99X3-BA
Is the code in connect.sh OK?