Hyperledger Cello is a blockchain provision and operation system, which helps manage blockchain networks in an efficient way. 超级账本Cello是一个区块链产品和操作系统,以一种有效的方式帮助管理区块链网络。
- Introduction 介绍
- Main Features 主要特性
- Quick Start 快速开始
- Documentation wendang
- Why named cello? 问什么命名cello?
- Notice 注释
Using Cello, everyone can easily: 使用Cello, 每个人都能够容易的:
- Build up a Blockchain as a Service (BaaS) platform quickly from scratch. 构建区块链网络BaaS平台,快速的.
- 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). 维持一个池运行区块两网络,虚拟网络(比如,虚拟机,vsphere云),容器集群.
- Check the system status, adjust the chain numbers, scale resources... through dashboards. 检查系统状态,调整链数据,伸缩资源... 通过仪表盘。
A typical usage scenario is illustrated as: 典型的应用方案:
Environmental preparation: 环境预准备
- docker how install
- docker-compose how install
- make
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
if you want to set the config through terminal ui, run menuconfig .
# 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 admin/pass
.
- Stop cello service, same as start, need set the
DEPLOY_METHOD
variable.
# 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.
For new users, it is highly recommended to read the tutorial or index first.
And feel free to visit the online documentation for more information. You can also run make doc
to start a local documentation website (Listen at localhost:8000.
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.