Skip to content

Latest commit

 

History

History
216 lines (151 loc) · 7.25 KB

README.md

File metadata and controls

216 lines (151 loc) · 7.25 KB

Join the kichain-t-4

This guide will provide instructions to join the the current KiChain testnet with Chain ID kichain-t-4.

Veteran mode

  1. Go vesion 1.19
  2. Ki-tools: https://github.com/KiFoundation/ki-tools.git tag 5.0.0-beta
  3. Genesis: genesis.json
  4. Persistent peers: peers.txt
  5. Seeds: seeds.txt
  6. Min gas price: 0.025utki

Detailed steps

Use provided binary

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

Compile from source

Install GO

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

Install Ki-tools

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
...

Set up your node directory and start your node

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 block 4351400, and then switch to the 3.0.0-beta version.
  • buidl and run kid 3.0.0-beta version, up until the block 6108800, and then switch to the 4.0.0-beta version.
  • buidl and run kid 4.0.0-beta version, up until the block 8785795, and then switch to the 5.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

Create your validator

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.

OPTIONAL: make your validator identifiable on Keybase

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.

Validate your new 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.