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 |
---|---|---|---|
Ethereum | Deploy ethereum nodes | ethereum.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 |
Ethereum 2.0 | Deploy validator and beacon chain nodes | ethereum2.kotal.io/v1alpha1 | alpha |
Algorand | Deploy 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) |
---|---|
Ethereum | Hyperledger Besu, Go-Ethereum, Open Ethereum |
Ethereum 2.0 | Teku, Prysm, Lighthouse, Nimbus |
Filecoin | Lotus |
IFPS | go-ipfs, ipfs-cluster-service |
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.4/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