张海宁:使用Kubernetes部署超级账本Fabric

2020-03-01 817浏览

  • 1.使用Kubernetes部署超级账本Fabric 7 1 0 2 C C A S 张海宁(Henry Zhang) VMware中国研发现先进技术中心技术总监
  • 2.自我介绍 • • • • • VMware中国研发先进技术中心首席架构师、技术总监 Harbor开源企业级容器Registry项目创始人 Cloud Foundry中国社区最早技术布道师之一 Hyperledger Cello项目贡献者 《区块链技术指南》、《软件定义存储》作者之一 2 C C A S 公众号:亨利笔记 7 1 0 《区块链技术指南》 《软件定义存储》
  • 3.议程 1 超级账本项目概览 2 Kubernetes架构简介 17 3 0 2 C 用Kubernetes部署Fabric C A S 4 总结
  • 4.超级账本项目概览 2 C C A S 7 1 0
  • 5.商用区块链的要求 多方共享数据 访问权限控制 交易具有合适的可见性 交易需认证身份 17 0 2 C C A S 共享账本 隐私性 用代码描述业务 可验证和签名确认 智能合约 多方共同认可交易 满足需求的吞吐量 共识算法 5
  • 6.公有链的不足之处 • 比特币、以太坊等公有链项目,不能满足商用的需求 – – – – – – – 无保密性(Confidentiality) 无法溯源(Provenance) 确认时间长(Slow confirmation) 无最终性(Finality) 吞吐量低(Throughput) 软件许可(license) 极客主导 2 C C A S 7 1 0 • 需要新的解决方案 6
  • 7.超级账本项目 (Hyperledger) • Linux基金会于2015年12月成立超级账本项目 • 30个创始成员 7 1 0 – 科技巨头( IBM、Intel、思科等) – 金融大鳄 (摩根大通、富国银行、荷兰银行等) – 专注区块链的公司( R3,ConsenSys等) 2 C 目前已经超过120个成员C A S 150+ 贡献者 • • • 8000+ commits 7
  • 8.超级账本成员 2 C C A S Premier Member 7 1 0 General Member 8
  • 9.超级账本目标 • • • • 基于区块链的企业级分布式账本技术(DLT) 用于构建各种行业的商业应用平台 模块化、性能和可靠性 提供商业友好的许可(Apache V2.0) 2 C C A S 7 1 0 9
  • 10.区块链项目对比 Hyperledger (Fabric) Bitcoin Ethereum 项目定位 通用联盟链平台 数字货币系统 通用公有链平台 管理方式 Linux基金会 社区 社区(众筹) 货币 无 BTC 比特币 Ether 以太币 挖矿 无 有 有 状态数据方式 键值数据、文档数据 交易数据 帐号数据 共识网络 PBFT等 PoW PoW, PoS 网络 公开或私有 公开 隐私性 有 无 无 智能合约 Go, Java等多种开发语言 无 Solidity 17 0 2 C C A S 公开 10
  • 11.超级账本项目生命周期 • 多个子项目并存 • 每个子项目可有5个阶段 提案 2 C C 孵化 A 活跃 S 7 1 0 弃用 11 终止
  • 12.超级账本子项目 Fabric Burrow 2 C C A S Sawtooth Lake Iroha Indy 7 1 0 Blockchain Explorer Cello Composer 12
  • 13.Fabric • • • • • • 2015年12月开源 主体由IBM的OBC(Open Blockchain)开源代码转化过来 增加了DAH和Blockstream两家公司的代码 项目以Go语言为主 90+贡献者 5000+commits 2 C C A S 7 1 0 13
  • 14.Hyperledger Fabric 1.0 特点 • • • • • • • 提供了交易的机密性 权限管理和控制 分离了共识和记账职能 节点数动态伸缩 吞吐量有望提升 可升级的智能合约(chaincode) 成员服务是高可用 2 C C A S 7 1 0 14
  • 15.供应链场景(1) • 公共链: – 共享公开信息(如商品种类、报价等) • 私有链 – 私密的交易信息(如A购买X的产品) A与X的私链 记录交易: A,B,C,X,Y,Z Z 0 2 C C A S C 公链共享 信息: 17 Y B A,X A X 农场 商店 15
  • 16.供应链场景(2) • 不同群体之间构建不同的私链(和账本) • 互相独立,分别记账 A,E,X 商店 A 17 0 2 C C A S A,D,X 海关 D 运输 E 银行 F A,F,X 农场 X 1 6
  • 17.Fabric v1.0部署方式 身份服务 COP 用户A 用户C 应用 应用 Peer ( Endorser & Committer) 17 0 2 C C A S Peer ( Endorser & Committer) Orderer Orderer Orderer Orderer Peer ( Endorser & Committer) Peer ( Endorser & Committer) 为简明起见,部分箭头未标注 17 应用 用户 B 应用 用户D
  • 18.Kubernetes架构简介 2 C C A S 7 1 0
  • 19.Kubernetes (K8s)项目 • • • • • • 开源的容器管理平台 自动化编排和部署 7 1 自动化扩展 0 2 C 优化资源使用 C A 运维容器化应用 S CaaS,介于PaaS和IaaS之间 19
  • 20.Kubernetes 架构 2 C C A S 7 1 0 20
  • 21.K8s 集群模型 K8s Cluster • 一个或多个主节点 (master) • 一个或多个工作节点(worker) • 命名空间(Namespaces) Worker node 1 2 C C A S – 用于命名分隔资源的逻辑组 7 1 0 Master Worker node 2 Worker node 3 21
  • 22.Pod的概念 • Pod是K8s中一个或多个容器组成的部署单位 • 容器共享一个IP地址和端口空间,互相之间用 localhost访问 • 容器间还共享数据卷Volumes • 有点类似虚拟机中的多个进程 2 C C A S 7 1 0 22
  • 23.Pod部署在K8s中 Pod 1 Container 1 Tools, Libs, SW Pod 2 Container 2 2 C C A S 7 1 0 Tools, Libs, SW Container 1 Container 2 Tools, Libs, SW Tools, Libs, SW Kubernetes 23
  • 24.Kubernetes 的存储:Persistent Volume Claim • 申请 Volume Claim 开发者 • 释放Volume Claim 7 1 0 管理员 • 创建 • 注册PV • 回收PV Administrator Owned Developer Owned 2 C C A S Claim Worker Kubernetes Cluster VSAN VMFS NFS Pool of Persistent Volumes 24 Pod
  • 25.Kubernetes的Services • 服务类型 – ClusterIP – NodePort – LoadBalancer • 服务发现 – DNS – 环境变量 NodeIP:'>IP: