Deploy Kusama Validator

Deploy Kusama Node

The following manifest describes Kusama node that syncs Kusama relay chain network: kusama, in archive mode pruning: false, and uses Parity Polkadot client:

By default, Validator nodes are in archive mode, but Kotal requires that node explicitly mark the node as archive node by setting pruning: false.

kusama.yaml
apiVersion: polkadot.kotal.io/v1alpha1
kind: Node
metadata:
  name: kusama-node
spec:
  network: kusama
  pruning: false

Apply kusama.yaml manifest:

kubectl apply -f kusama.yaml

Kotal operator will notice your kusama-node and will create all the necessary pods, persistent volumes, services, configmaps, and secrets neccessary.

You can fetch the deployed Polkadot Node using:

kubectl get nodes.polkadot

It will return an output similar to the following:

NAME             NETWORK     VALIDATOR
kusama-node      kusama      fasle

Fetch Node Logs

Get the pods that has been created by Kotal for the node:

It will return an output similar to the following:

Get the logs of the running node:

It will return node logs similar to the following:

Enable Validator

Once the node is fully synced, enable validator by updating the node with validator: true:

Apply the updated kusama.yaml Node manifest:

Fetch the deployed Polkadot Node using:

It will return an output similar to the following:

Note that validator has changed from false to true.

Remaining Steps

The remainig steps in setting up a validator are:

  • Bonding KSM

  • Generating Session Keys

  • Setting Session Keys by signing and submitting an extrinsic

  • Relax 🏝️

These steps are documented in Polkadot Wiki.

We will cover next how to generate a session key.

Generating Session Key

Session key can be generated by calling author_rotateKeys JSON-RPC method.

Forward localhost:9933 calls to the node pod because rpcPort: 9933:

9933 is the default HTTP JSON-RPC server listening port, can be changed by setting node .spec.rpcPort

In another terminal window call author_rotateKeys JSON-RPC method to get a new session key:

You will get JSON result similar to the following:

You can set the sesison key as documented in Polkadot Wiki.

Finally you can delete the node by:

Kubernetes garbage collector will delete all the resources that has been created by Kotal Polkadot Node controller.

Last updated

Was this helpful?