A simple blockchain implementation on top of kubernetes.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/kubechain
config
examples
pkg
.gitignore
Dockerfile
Gopkg.lock
Gopkg.toml
Makefile
README.md
deployment.yml

README.md

kubechain

kubechain is a small blockchain implementation on top of kubernetes - it includes:

  1. A small implementation of a blockchain - roughly following this series of awesom blog posts.
  2. A set of kubernetes CRDs to manage and interact with you're blockchain. (ala kubectl get blocks) - roughly following Martin Helmlich's awsome blog post as well as kubernetes/sample-controller
  3. A custome controller for controling / updating / computing PoW for each new block presented to the blockchain.

A word of caution: kubechain is currently a work in progress.

Deploying Kubchain:

There are two ways to run and buil kubechain:

  1. Build kubechain from source by running make.
  2. Deploy a kubechain container on a kubernetes cluster using the deployment.yml file. This file contains a k8s Deployment for kubechain which uses the in-cluster configuration to create and monitor the crds.
  3. Build and run in a container using make image followed by docker run nimrodshn/kubechain.

Usage Example:

Simply create a Block CRD in you're k8s cluster:

> cat examples/block.yml
apiVersion: kubechain.com/v1alpha1
kind: Block
metadata:
  name: "example-block"
spec:
  data: "Move one bitcoin from Alice to Bob."

> kubectl create -f examples/block.yml