前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hyperledger Fabric BaaS设计方案

Hyperledger Fabric BaaS设计方案

作者头像
Zeal
发布2020-11-11 17:09:54
1.9K0
发布2020-11-11 17:09:54
举报
文章被收录于专栏:Hyperledger实践

1. 基于Hyperledger Cello

Cello的定位是为Fabric提供一个BaaS平台,使用Web UI方便的管理区块链网络,节点和链码。

理想丰满,希望兼容K8s,swarm等多容器,提供了安装网络,简单监控,安装链码,调用等基本功能,可惜bugs一堆,又得兼顾Fabric快速迭代的版本。

还有一点,以docker为例,实际Work Node使用remote docker访问模式,需要在Master的管理平台手工输入所有的worker node ip和端口,有些维护成本,相当于是master主动连接worker Node进行管理,实际运维场景下的网络和存储的扩展,隔离和兼容等很多细节可能还要考虑和解决。

只是说这个项目暂时成熟度还不高,不过一旦成型,对于很多异构的容器,物理机等环境可能会是个不错的选择(开发成本高,短期内指望不上)。

2. 基于Kubernetes管理Fabric

Kubernetes天生便于管理容器,良好的兼容docker,结合Kubernetes API也很方便和别的运维系统打通整合。

(1) 自建区块链(单租户)

Kubernetes可以简单使用Flannel网络(一种overlay覆盖网络,把请求TCP在另一网络虚拟路由中重新封包转发)把Fabric网络连通和隔离,基于NFS实现PV/PVC存储用于peer state DB/ledger保存, orderer,ca等信息持久化。

(2) 多租户区块链

多租户需要各自的网络和存储要隔离,简单的可以使用calico虚拟路由直接iptable转发和配置ACL实现不同区块链网络的隔离, 存储基本也是NFS实现的PV/PVC

这里顺带提供个小福利,kubernetes安装很是噩梦, master初始化时需下载gci.io镜像都在google那的,基本都只能从阿里云手工下镜像手工docker pull, 这里提供一个自用的镜像

#!/bin/bash

set -e

# Check version in https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/

# Search "Running kubeadm without an internet connection"

# For running kubeadm without an internet connection you have to pre-pull the required master images for the version of choice:

KUBE_VERSION=v1.11.3

KUBE_PAUSE_VERSION=3.1

ETCD_VERSION=3.2.18

CORE_DNS_VERSION=1.1.3

GCR_URL=k8s.gcr.io

#ALIYUN_URL=registry.cn-shenzhen.aliyuncs.com/cookcodeblog

ALIYUN_URL=registry.cn-shenzhen.aliyuncs.com/zealot

# When test v1.11.0, I found Kubernetes depends on both pause-amd64:3.1 and pause:3.1

images=(kube-proxy-amd64:${KUBE_VERSION}

kube-scheduler-amd64:${KUBE_VERSION}

kube-controller-manager-amd64:${KUBE_VERSION}

kube-apiserver-amd64:${KUBE_VERSION}

pause-amd64:${KUBE_PAUSE_VERSION}

pause:${KUBE_PAUSE_VERSION}

etcd-amd64:${ETCD_VERSION}

coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do

docker pull ALIYUN_URL/imageName

docker tag ALIYUN_URL/imageName GCR_URL/imageName

docker rmi ALIYUN_URL/imageName

done

docker images

当然也额外有一些被墙的k8s镜像,有需要也单独私信我构建。

https://github.com/zealzeng/docker-library

要实现这么个BaaS自然要人力物力,做个web ui通过kubernet API管理orderer, peer等,再考虑节点扩容,各种区块链更新维护等。基本开发运维一体,刚学会docker-compose的yaml语法,又得学kubernetes的yaml语法。

还有一个比较麻烦的东西, 官方的连接Fabric的SDK正式release的只有Java和Nodejs, 官方通用的Fabric Rest也不健全, 如果用其它语言采访Fabric Peer也是麻烦。

路漫漫兮上下求索, cu very soon.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hyperledger实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档