SEKAI 世界 (せかい) - is a KIRA blockchain application responsible for all on-chain logic such as processing transactions and state transitions. SEKAI is executed by specialized node operators called validators who individually propose new blocks and together agree on the correctness of each new block in accordance with the SEKAI codebase. In short, all logic relevant to the block propagation and networking is handled by Tendermint while all application logic is handled by the SEKAI (sekaid). To learn more about sekaid service see following notion page:
Blockchain Application
Governance Module (ref.)
x/gov module functionalities:
Upgrade Module (ref.)
x/upgrade module functionalities:
Slashing Module (ref.)
x/slashing module functionalities:
Staking Modules (ref.)
x/staking module functionalities:
Tokens Module (ref.)
x/tokens module functionalities:
Installation Process
There currently exist two ways of installing sekaid application, via manual setup or directly from the github repository or by utilizing KIRA Manager (KM) tool.
Manual Setup
# Setup Environment Variables
sudo -s
cat >> /etc/profile << EOL
GOROOT="/usr/local/go"
GOPATH="/home/go"
GOCACHE="/home/go/cache"
GOBIN="/usr/local/go/bin"
SEKAI_SRC="/home/go/src/github.com/kiracore/sekai"
PATH="$PATH:/usr/local/go:/home/go:/usr/local/go/bin:/root/go/bin"
EOL
. "/etc/profile"
# Installing Essential Dependencies
apt-get update -y
apt-get install -y software-properties-common apt-transport-https ca-certificates gnupg curl wget git build-essential \
nghttp2 libnghttp2-dev libssl-dev fakeroot dpkg-dev libcurl4-openssl-dev net-tools jq aptitude zip unzip p7zip-full
GO_VERSION="1.15.11"
( [[ "$(uname -m)" == *"arm"* ]] || [[ "$(uname -m)" == *"aarch"* ]] ) && GOLANG_ARCH="arm64" || GOLANG_ARCH="amd64"
wget https://dl.google.com/go/go$GO_VERSION.linux-$GOLANG_ARCH.tar.gz
tar -C /usr/local -xvf go$GO_VERSION.linux-$GOLANG_ARCH.tar.gz
go version
# Clone KIRA Blockchain Application
git clone "https://github.com/KiraCore/sekai" $SEKAI_SRC
cd $SEKAI_SRC
# If you want to install specific release
git checkout "branch-name"
# Install sekai
make install
# verify that setup process suceeded
sekaid version --long
# If you want to launch a test network (docker required)
make network-start
# If you want to stop & kill the test network (docker required)
make network-stop
Bash
Creating, Deleting & Recovering Accounts
KIRA accounts only exist on-chain and can be queried from the blockchain state if any amount of funds are transferred to the public KIRA address. All KIRA addresses are 44 characters long, Bech32 encoded with a kira prefix, for example: kira1d52rts8wf508uy2sdcx4a0qxjzvqr3dsnesm4w. Accounts are derived from the BIP39 mnemonic words, which must be preserved by the account holder at all times. Losing access to the secret mnemonic or reveling it content will result in permanent and irrecoverable loss of funds.
Commands Examples
Creating Account
# KM
addAccount $ACCOUNT_NAME
# CLI
sekaid keys add $ACCOUNT_NAME --keyring-backend=test --home=$SEKAID_HOME
Bash
Recovering Account from Mnemonic
# KM
recoverAccount $ACCOUNT_NAME "$ACCOUNT_MNEMONIC"
# CLI
yes "$ACCOUNT_MNEMONIC" | sekaid keys add $ACCOUNT_NAME --keyring-backend=test --home=$SEKAID_HOME --recover
Bash
Query Address by Account Name
# KM
showAddress $ACCOUNT_NAME
# CLI
sekaid keys show $ACCOUNT_NAME --keyring-backend=test --output=json --home=$SEKAID_HOME | jq ".address" | xargs
Bash
Delete Account
# KM
deleteAccount $ACCOUNT_NAME
# CLI
sekaid keys delete "$ACCOUNT" --force --yes --keyring-backend=test --home=$SEKAID_HOME --output=json | jq
Bash
Joining Validator Set
To join validator set KIRA account requires PermClaimValidator permission assigned to it by the governance set though a proposal process (mainnet), or by the sudo account (testnet). With the appropriate permission in place a CaimValidator transaction can be sent on-chain signaling that the node is ready to start producing blocks. While claiming seat validator is required to supply globally unique moniker which will uniquely identify his node. The moniker as well as other account related properties are stored in, and can be modified via Identity Registrar.
Commands Examples
Joining Validator Set
# CLI
sekaid tx customstaking claim-validator-seat --moniker="$MONIKER" \
--from "$ACCOUNT" --keyring-backend=test --home=$SEKAID_HOME --chain-id=$NETWORK_NAME --broadcast-mode=async --fees=100ukex --yes --output=json
# KM
# e.g: claimValidatorSeat <account> <moniker> <timeout-seconds>
claimValidatorSeat validator "BOB's NODE" 180
Bash