区块链即服务(Blockchain as a Service)是面向企业及开发者的高性能、高可用和高安全的区块链技术平台服务,可以帮助企业和开发人员在云上快速、低成本的创建、部署和管理区块链应用。

Hyperledger Cello 是超级账本项目下面的一个子项目,提供按需部署的功能,可以将区块链部署在各种裸机、虚拟机、容器等环境中。该项目最初由 IBM 发起,目前得到了 Soramitsu, 华为,和 Intel 的赞助。

一. 介绍

使用cello ,每个人都可以轻松地:

  • 从头开始快速构建区块链即服务(BaaS)平台。
  • 立即供应可定制的区块链,例如 Hyperledger 架构网络 v1.0。
  • 在裸机,虚拟云(例如虚拟机,vsphere 云),容器集群(例如 Docker,Swarm,Kubernetes)之上维护运行中的区块链网络池。
  • 通过仪表板检查系统状态,调整链号,扩展资源…。

典型的使用场景如下所示:

基于hyperledger cello的区块链即服务(BaaS) 搭建 | 来唧唧歪歪(Ljjyy.com) - 多读书多实践,勤思考善领悟 - 图1

二. 快速开始

环境准备:

  1. docker 安装指南
  2. docker-compose 安装指南
  3. make cello 服务管理的所有脚本都是用 Makefile 编写的
  4. kubernetes (可选的) 安装指南

如果准备好环境,那么我们就可以开始 cello 服务。

  • 克隆 cello 代码
  1. # git clone https://github.com/hyperledger/cello.git
  2. # cd cello
  • 为 cello 服务构建基本映像(可选,因为当前 dockerhub 映像自动构建尚未准备好,将来您可以忽略此步骤。)

注意事项 :

pip 技巧(加速下载和安装),可以配置下镜像,加速下载和安装。
某些开发包下载过程中会很慢,会出现 timeout 的情况,解决办法:
查找 cello 目录下的,dockerfile、Dockerfile.in 文件,修改语句 RUN pip install -r ,添加镜像。
例如:
修改前:RUN pip install -r /requirements.txt
修改后:RUN pip install -i http://mirrors.aliyun.com/pypi/simple/ –trusted-host > mirrors.aliyun.com -r /requirements.txt

# make docker
  • 启动 cello 服务,默认部署方法是使用 docker-compose,如果您具有 kubernetes 环境,则可以通过将该部署方法更改为 kubernetes DEPLOY_METHOD=k8s make start
#make start

服务启动后,如果使用 docker-compose 方法,则可以看到输出:

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

如果使用 kubernetes 方法进行部署,则输出为:

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

如果您通过 8081 端口访问仪表板,则默认用户名 / 密码为admin/pass

  • 停止 cello 服务与开始一样,需要设置DEPLOY_METHOD变量。
# make stop

三. 主要特点

  • 管理区块链的生命周期,例如自动创建 / 启动 / 停止 / 删除 / 保持健康。
  • 支持定制(例如大小,共识)区块链请求,当前我们主要支持Hyperledger 架构
  • 支持本地 Docker 主机,群集或 Kubernetes 作为工作节点。即将提供更多支持。
  • 支持从裸机服务器到虚拟机的异构体系结构,例如 X86,POWER 和 Z。
  • 通过使用其他组件来扩展监视,日志,运行状况和分析功能。
    https://www.ljjyy.com/archives/2019/12/100626.html