Kotal operator is a cloud agnostic blockchain deployer that makes it super easy to deploy highly-available, self-managing, self-healing blockchain infrastructure (networks, nodes, storage clusters ...) on any cloud.
- Deploy ipfs peers and cluster peers
- Deploy ipfs swarms
- Deploy Ethereum transaction and mining nodes
- Deploy Ethereum 2 beacon and validation nodes
- Deploy private Ethereum networks
- Deploy Filecoin nodes
- Deploy Filecoin backed pinning services (FPS)
Kotal extended kubernetes with custom resources in different API groups.
Group | Description | API Group | Status |
---|---|---|---|
Chainlink | Deploy Chainlink nodes | chainlink.kotal.io/v1alpha1 | alpha |
Ethereum | Deploy private and public network Ethereum nodes | ethereum.kotal.io/v1alpha1 | alpha |
Ethereum 2.0 | Deploy validator and beacon chain nodes | ethereum2.kotal.io/v1alpha1 | alpha |
IPFS | Deploy IPFS peers, cluster peers, and swarms | ipfs.kotal.io/v1alpha1 | alpha |
Filecoin | Deploy Filecoin nodes | filecoin.kotal.io/v1alpha1 | alpha |
Polkadot | Deploy Polkadot nodes and validator nodes | polkadot.kotal.io/v1alpha1 | alpha |
Algorand | Deploy Algorand relay and participation nodes | algorand.kotal.io/v1alpha1 | coming soon 🚀 |
For each protocol, kotal supports at least 1 client (reference client), client can be changed by updating client: ...
specification parameter.
Protocol | Client(s) |
---|---|
Chainlink | Chainlink |
Ethereum | Hyperledger Besu, Go-Ethereum, Nethermind |
Ethereum 2.0 | Teku, Prysm, Lighthouse, Nimbus |
IFPS | go-ipfs, ipfs-cluster-service |
Filecoin | Lotus |
Polkadot | Parity Polkadot |
Kotal requires access to Kubernetes cluster with cert-manager installed.
For development purposes, we recommend KinD (Kubernetes in Docker) to create kubernetes clusters and tear down kubernetes clusters in seconds:
kind create cluster
After the cluster is up and running, install cert-manager:
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
Install kotal custom resources and controllers:
kubectl apply -f https://github.com/kotalco/kotal/releases/download/v0.1-alpha.5/kotal.yaml
Ethereum node using Hyperleger Besu client, joining rinkeby network, and enabling RPC HTTP server:
# ethereum-node.yaml
apiVersion: ethereum.kotal.io/v1alpha1
kind: Node
metadata:
name: ethereum-node
spec:
client: besu
network: rinkeby
rpc: true
kubectl apply -f ethereum-node.yaml
Kotal documentation is available here
TODO
TODO