Hyperledger Cello is a blockchain provision and operation system, which helps manage blockchain networks in an efficient way.
Using Cello, everyone can easily:
- Build up a Blockchain as a Service (BaaS) platform quickly from scratch.
- Provision customizable Blockchains instantly, e.g., a Hyperledger fabric network v1.0.
- Maintain a pool of running blockchain networks on top of baremetals, Virtual Clouds (e.g., virtual machines, vsphere Clouds), Container clusters (e.g., Docker, Swarm, Kubernetes).
- Check the system status, adjust the chain numbers, scale resources... through dashboards.
A typical usage scenario is illustrated as:
- docker how install
- docker-compose how install
all script for cello service management is written in Makefile
- kubernetes (
optional) how install
If environment is prepared, then we can start cello service.
- Build essential images for cello service (Optional, because currently the dockerhub image auto build haven't ready, in the future you can ignore this step.)
# make docker
- config variables for service deployment through menuconfig/alldefconfig, then will generate .config file under the project folder.
if you want to use default configuration for service deployment, only need run alldefconfig.
# make alldefconfig
# make menuconfig
- Start cello service, default deployment method is using docker-compose, if you have kubernetes environment,
you can change deployment method to kubernetes through
DEPLOY_METHOD=k8s make start.
# make start
After service started up, if use docker-compose method, you can see output:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ddf938ed927e hyperledger/cello-dashboard "bash -c '/config-ng…" 2 days ago Up 2 days 0.0.0.0:8081->80/tcp cello-dashboard 41ab47784b28 hyperledger/cello-api-engine "/bin/sh -c 'bash /e…" 2 days ago Up 2 days 0.0.0.0:8085->8080/tcp cello-api-engine 073a5f46276e hyperledger/cello-api-engine "bash -c 'celery -A …" 2 days ago Up 2 days cello-api-engine-tasks 54d2c615d7d9 postgres:11.1 "docker-entrypoint.s…" 2 days ago Up 2 days 5432/tcp cello-postgres-server 1e0fc6386891 redis:4.0.13 "docker-entrypoint.s…" 2 days ago Up 2 days 6379/tcp cello-redis
If use kubernetes method to deploy, the output is:
NAME READY UP-TO-DATE AVAILABLE AGE deployment.extensions/api-engine 1/1 1 1 7s deployment.extensions/api-engine-tasks 1/1 1 1 7s deployment.extensions/postgres 1/1 1 1 8s deployment.extensions/redis 1/1 1 1 8s NAME READY STATUS RESTARTS AGE pod/api-engine-5844d7d9d4-zqw9k 1/1 Running 0 7s pod/api-engine-tasks-74484d6f45-jj6p9 1/1 Running 0 7s pod/postgres-774d5cd5f-p5j5l 1/1 Running 0 8s pod/redis-6bf574b8c5-p2dnl 1/1 Running 0 7s NAME HOSTS ADDRESS PORTS AGE ingress.extensions/ingress-api-engine * 80 7s
If you visit the dashboard through 8081 port, the default username/password is
- Stop cello service, same as start, need set the
# make stop
- Manage the lifecycle of blockchains, e.g., create/start/stop/delete/keep health automatically.
- Support customized (e.g., size, consensus) blockchains request, currently we mainly support Hyperledger fabric.
- Support native Docker host, swarm or Kubernetes as the worker nodes. More supports on the way.
- Support heterogeneous architecture, e.g., X86, POWER and Z, from bare-metal servers to virtual machines.
- Extend with monitor, log, health and analytics features by employing additional components.
Documentation, Getting Started and Develop Guideline
Why named Cello?
Can you find anyone better at playing chains? :)
This project is a Hyperledger project in Incubation. It was proposed to the community and documented here, and was approved by Hyperledger TSC at 2017-01-07. Information on what Incubation entails can be found in the Hyperledger Project Lifecycle document.
This work is licensed under a Creative Commons Attribution 4.0 International License.