For the complete documentation index, see llms.txt. This page is also available as Markdown.

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?