This guide will provide instructions to join the the current KiChain testnet with Chain ID kichain-t-4
.
- Go vesion
1.19
- Ki-tools: https://github.com/KiFoundation/ki-tools.git tag
5.0.0-beta
- Genesis:
genesis.json
- Persistent peers:
peers.txt
- Seeds:
seeds.txt
- Min gas price:
0.025utki
Use the provided builds or build the new client yourself. A full how-to guide can be found in this dedicated tutorial.
We provide static binary releases with verifiable checksums. We encourage validators to build these binaries themselves using our dedicated tutorial and check the resulting checksum.
# Download new binary (amd64 version, please adapt if you use an arm arch)
wget <https://github.com/KiFoundation/ki-tools/releases/download/5.0.0-beta/kid-testnet-5.0.0-beta-linux-amd64>
mv kid-testnet-5.0.0-beta-linux-amd64 kid
chmod +x kid
The client version should be:
./kid version --long
# name: kitools
# server_name: kid
# version: Testnet-5.0.0-beta
# commit: 7d1b4892ee59a091a40131394898fa00a68533d8
# build_tags: netgo ledger muslc,
# go: go version go1.19.7 linux/amd64
The binary checksum should be:
# check shasum - should be 5ed5a3e553a0c38da7261709a2fe15c201079c5cca6bb75915f367d93806aa42
sha256sum ./kid
The current version of ki-tools
requires Go 1.19+
. To install it, download and unzip the archive file as follows:
wget https://dl.google.com/go/go1.19.7.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.19.7.linux-amd64.tar.gz
Then export the Go paths:
mkdir -p $HOME/go/bin
PATH=$PATH:/usr/local/go/bin
echo "export PATH=$PATH:$(go env GOPATH)/bin" >> ~/.bash_profile
source ~/.bash_profile
To test the Go installation, use the version command to check the downloaded version as follows :
go version
which should output
go version go1.19.7 linux/amd64
Fetch and install the current Testnet ki-tools
version.
git clone https://github.com/KiFoundation/ki-tools.git
cd ki-tools
git checkout 5.0.0-beta
make build-testnet
cp build/kid $HOME/go/bin/
Check ki-tools
version
kid version --long --log_level info
This should output
name: kitools
server_name: kid
version: Testnet-5.0.0-beta
commit: 7d1b4892ee59a091a40131394898fa00a68533d8
build_tags: netgo ledger,
go: go version go1.19.7 linux/amd64
...
Initiate the needed configuration files using the unsafe-reset-all
command:
kid tendermint unsafe-reset-all --home ~/.kid
Curl the genesis file to the ~/.kid/config/
folder:
curl https://raw.githubusercontent.com/KiFoundation/ki-networks/v0.1/Testnet/kichain-t-4/genesis.json > ~/.kid/config/genesis.json
The hash of the genesis file can be computed as follows:
jq -S -c -M '' ~/.kid/config/genesis.json | shasum -a 256
83e8d8b9b883f1d478fb8d9f0e32c138904d0cbc30e939fa0490f988fd0b78d7
In the file config.toml
that can be found in the ~/.kid/config/
directory, make sure to add the provided seed and the community peers found in seed.txt
and peers.txt
by filling the seeds
and persistent_peers
fields resp.
Make sure to set your minimum-gas-prices
to 0.025utki
in app.toml
.
To get started, you might need to sync the data. To do so, you can ask a fellow validator for a snapshot containing data+wasm folders.
You can also sync from the chain start. For this you will need to:
- build and run kid
2.0.0-testnet
version, up until the block4351400
, and then switch to the3.0.0-beta
version. - buidl and run kid
3.0.0-beta
version, up until the block6108800
, and then switch to the4.0.0-beta
version. - buidl and run kid
4.0.0-beta
version, up until the block8785795
, and then switch to the5.0.0-beta
version.
More information on the v3 upgrade here More information on the v4 upgrade here More information on the v5 upgrade here
Your node is now ready to be started. If you've started the node with a service you can simply start the service. Otherwise, use the following command:
kid start --home ~/.kid/ &> ~/.kilogs/ki-node.log &
This command will start the block synchronization process where your node retrieves the current state of the blockchain from the other nodes. The process output is redirected to the ki-node.log
log file. It can be visualized as follows:
tail -f ~/.kilogs/ki-node.log
Note: You will need to wait for the end of the synchronization process before proceeding to the validator creation.
Create the validator wallet. Do not forget to save the mnemonic.
kid keys add <WALLET_NAME> --home ~/.kid/
Fund the wallet by asking for test token TKIs
in the dedicated discord channel.
Create your validator using the following transaction:
kid tx staking create-validator \
--commission-max-change-rate=0.1 \
--commission-max-rate=0.1 \
--commission-rate=0.1 \
--min-self-delegation=1 \
--amount=1000000utki \
--pubkey `kid tendermint show-validator --home ~/.kid/` \
--moniker=<YOUR_MONIKER> \
--chain-id=kichain-t-4 \
--gas-prices="0.025utki" \
--from=<WALLET_NAME>
The <YOUR_MONIKER> is the name you want to give to your validator.
/!\ It's not the same as the moniker
parameter in the config.toml
configuration file. Even if they have the same name, they do not represent the same thing.
To make your validator more identifiable and to attach additional information to it (e.g., a website), you can use an editing transaction as follow :
kid tx staking edit-validator \
--identity=<YOUR_KEYBASE_ID> \
--website="<YOUR_WEBSITE>" \
--details="<YOUR_DESCRIPTION>"\
--chain-id=kichain-t-4 \
--from=<WALLET_NAME> \
--gas-prices=0.025utki
This will refer to an existing Keybase account and use its associated information (e.g. avatar image) as meta data for you validator.
Go to the list of the kichain testnet validators and when you see your validator with the <YOUR_MONIKER> name in the list, you are all good.