云计算 频道

如何用K8s实现Fabric区块链即服务的实践

  【IT168 资讯】超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。

  由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其他的例如制造、银行、保险、物联网等无数个其他行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。

  在千呼万唤之后,超级账本Fabric1.0发布了。VMware先进技术中心技术总监张海宁在SACC大会上谈到,Hyperledger Fabric 1.0的特点包括:提供了交易的机密性、权限管理和控制、分离了共识和记账职能、节点数动态伸缩、吞吐量有望提升、可升级的智能合约,以及成员服务的高可用等。一时间,让社区欢呼雀跃。

  然而在激动过后,回归平静之时,人们却往往发现,搭建Fabric平台是个相当披荆斩棘的历程。因为不仅要具备密码学、分布式计算、共识算法等区块链理论基础,而且要熟悉容器、Golang / Node.js 这些企业用户不常用的工程技术,这常常是很多人把区块链放弃在起跑线的原因。

  除此之外,Fabric的应用还面临这几个问题:大量配置文件、繁琐且容易出错、开发人员无法专注于应用开发、基于Fabric身份管理的设计、网络中节点增减的步骤繁多、节点的状态不易监控,节点宕机后需要手动重启。降低使用门槛,提高易用性称为区块链应用落地的首要条件。

用K8s实现Fabric区块链即服务的实践

  当然这些并不能阻挡聪明的开发人员,他们把眼光放到了Kubernetes上,作为目前最主流的云原生应用平台,Kubernetes可以灵活地部署、监控和运维容器应用,基于容器技术开发的Fabric项目,可以很好的结合Kubernetes,实现区块链即服务的能力。

  Kubernetes集群包含一个overlay网络(flannel),容器(Pod)都接入到这个网络。Kubernetes的namespace与Fabric的organization做映射,org通过域名进行区分。

  另外,在 Kubernetes 中,Namespace 是一个很重要的概念,它用于划分不同的虚拟集群,而 Fabric 中 organization 基于证书签发机构划分,把 K8S 的 namespace 与 Fabric 的 organization 对应,既使得 organization 之间相互独立,又充分利用了 K8S 的 DNS 服务,各个 organization 可以通过域名区分。采用 namespace 分隔各个组织的组件,还可实现网络策略来隔离不同组织,实现多租户的能力。

用K8s实现Fabric区块链即服务的实践

  对于生成Pod、namespace配置,每个节点需要相应的配置文件,通过模版自动生成各个节点的配置文件,遍历目录结构修改模板,并把修改后的文件放置到相应的目录下。在启动集群时,按照一定顺序启动,已经生成一套相对完整的启动文件,放置在共享存储NFS上,通过PV和PVC控制容器对文件的访问权限。

  基于Kubernetes容器云平台初步实现BaaS的基础部署步骤。在此之上,增加更多的区块链层运维管理功能,图形化运维界面,使得开发人员投入更多的精力到应用的业务逻辑上。

用K8s实现Fabric区块链即服务的实践

▲更多信息尽在IT168现场报道专题 http://sacc.it168.com/topic2017/

0
相关文章