电话

15169028800

HyperLeger Fabric开发(一)——HypLeg简介

标签: 软件开发技术介绍 2023-05-10 

  Hyperledger(超级账本)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其它的例如制造、银行、保险、物联网等行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。Hyperledger是一个联合项目,超级账本由面向不同目的和场景的子项目构成,包括10个项目,其中区块链框架类项目5个:Fabric,Sawtooth,Iroha,Burrow和Indy;区块链工具类项目5个:Cello,Composer,Explorer,Caliper和Quilt。Hyperledger的所有项目都遵守Apache v2许可,并约定共同遵守如下的基本原则:C、可持续的演化路线:随着需求的深入和更多的应用场景,不断增加和演化新的项目。Apache v2 许可协议是商业友好的知名开源协议,鼓励代码共享,尊重原作者的著作权,允许对代码进行修改和再发布(作为开源或商业软件)。Hyperledger社区目前拥有超过 200家全球知名企业和机构(大部分均为各自行业的领导者)会员,其中包括40多家来自中国本土的企业,包括Onchain、三一重工、万达科技、华为、百度、腾讯等。以比特币为代表的数字货币提供了区块链技术应用的原型,以太坊为代表的智能合约平台延伸了区块链技术的功能,Hyperledger则通过进一步引入权限控制和安全保障,开拓了区块链技术的全新领域。Hyperledger首次将区块链技术引入到分布式联盟账本的应用场景,为未来基于区块链技术打造高效率的商业网络打下了坚实的基础。Hyperledger项目的出现,实际上宣布区块链技术已经不仅局限在单一应用场景中,也不仅局限在完全开放的公有链模式下,区块链技术已经正式被主流企业市场认可并在实践中采用。同时,Hyperledger中提出和实现了许多创新的设计和理念,包括完备的权限和审查管理、细粒度隐私保护以及可拔插、可扩展的实现框架,对于区块链相关技术和产业的发展都将产生深远的影响。

  Hyperledger社区自成立起就借鉴了众多开源社区组织的经验,形成了技术开发为主体、积极面向应用的体系结构。Hyperledger社区的项目开发工作由技术委员会(Technical Steering Committee,TSC)指导,首任主席由来自IBM开源技术部门的CTO Chris Ferris 担任;管理委员会主席则由来自Digital Asset Holdings的CEO Blythe Masters担任。自2016年5月起,Apache基金会创始人Brian Behlendorf担任超级账本项目的首位执行总监(Executive Director)。Hyperledger社区十分重视大中华地区的应用落地和开发情况,2016年12月,大中华区技术工作组正式成立,负责推动本土社区组织建设和相关的技术发展和应用工作。Hyperledger社区组织结构如下:Hyperledger社区目前主要是三驾马车领导的结构:Technical Steering Committee (技术委员会)负责技术相关的工作,下设多个工作组,具体带动各个项目和方向的发展。Governing Board(管理董事会)负责社区组织的整体决策,由Hyperledger会员中推选出代表。Linux Foundation(Linux基金会)负责基金管理,协助Hyperledger社区在Linux基金会的支持下发展。Linux 基金会和Hyperledger 社区十分重视项目在大中华区的应用和落地情况,并希望能为开发者们贡献开源社区提供便利。因此,Hyperledger首任执行董事Brian Behlendorf于2016年12月1日提议成立 大中华区技术工作组(TWG-China),并得到TSC成员们的一致支持和通过。大中华区技术工作组的Wiki首页地址:大中华区技术工作组的主要职责包括:A、带领和引导大中华区的技术开发相关活动,包括贡献代码、文档、项目提案等。B、推动技术相关的交流,促进会员企业之间的合作和实践案例的落地。C、通过邮件列表、RocketChat、论坛等方式促进社区开发者们的技术交流。D、协助举办社区活动,包括Meetup、***松、Hackfest、技术分享、培训等。目前,工作组由来自IBM、甲骨文、万达、华为、百度等Hyperledger成员企业的数十名技术专家组成,并得到了来自社区的众多志愿者的支持。工作组的各项会议和活动内容都是开放的,可以在Wiki首页上找到相关参与方式。

  Hyperledger所有项目一般都需要经历提案(Proposal)、孵化(Incubation)、活跃(Active)、退出(Deprecated)、终结(End of Life)等5个生命周期。任何希望加入到Hyperledger社区中的项目,必须首先由发起人编写提案。描述项目的目的、范围和开发计划等重要信息,并由技术委员会来进行评审投票,评审通过则可以进入到社区内进行孵化。项目成熟后可以申请进入到活跃状态,发布正式的版本,最后从社区中退出结束。(1)Hyperledger FabricHyperledger Fabric是区块链的基础核心平台,目标是成为面向企业的开发应用和解决方案的分布式账本平台,创新的引入权限管理支持,设计上支持可插拔、可扩展,是首个面向联盟链场景的开源项目,也是最早加入到Hyperledger项目中的顶级项目,由 IBM、DAH等企业于2015年底提交到社区。Hyperledger Fabric基于Go语言实现,包括Fabric、Fabric CA、Fabric SDK(包括Node.Js、Python和Java等语言)和fabric-api等子项目,目前处于活跃状态,已发布1.2正式版本,目前提交次数已经超过10000次,核心代码数超过8万行。Gerrit地址:GitHub地址:(2)Hyperledger SawtoothSawtooth是高度模块化的分布式账本平台,用以创建、部署和运行分布式账本。Sawtooth基于Python语言实现,目前提交次数已经超过7000次,由Intel等企业于2016年4月提交到社区。Sawtooth项目利用Intel芯片的专属功能,支持全新的基于硬件芯片的Proof of Elapsed Time(PoET)共识机制,并支持交易族(Transaction Family),方便用户使用进行快速开发应用。GitHub地址:(3)Hyperledger IrohaHyperledger Iroha是轻量级分布式账本,是一个业务区块链框架,用于简单和容易地并入需要分布式账本技术的基础设施项目。Hyperledger Iroha项目基于C++实现,带有面向Web和Mobile的特性,由Soramitsu等企业于2016 年10月提交到社区,目前提交次数已经超过6000次。GitHub地址:(4)Hyperledger BurrowHyperledger Burrow项目提供了支持以太坊虚拟机的智能合约区块链平台,并支持Proof-of-Stake共识机制(Tendermint)和权限管理,可以提供快速的区块链交易。Hyperledger Burrow的前身为eris-db,基于Go语言实现,目前提交次数已经超过1600次,由Monax、Intel 等企业于2017年4月提交到社区。Hyperledger Burrow提供了一个模块化的、带经过许可的智能合约解释器的区块链客户端,采用了部分以太坊虚拟机(EVM)的技术规范,提供以太坊虚拟机的支持,实现支持高效交易的带权限的区块链平台。GitHub地址:(5)Hyperledger IndyHyperledger Indy致力于打造一个基于区块链和分布式账本技术的数字中心管理平台,支持去中心化,支持跨区块链和跨应用的操作,实现全球化的数字身份管理。Hyperledger Indy项目主要由Python语言开发,包括服务节点、客户端和通用库等,于2017年3月底正式加入到Hyperledger 项目,目前已有超过2000次提交。GitHub地址:(6)Hyperledger ExplorerHyperledger Explorer项目的定位是区块链平台的浏览器,基于Node.js语言实现,提供Web操作界面,由Intel、DTCC、IBM等企业于2016年8月提交到社区。Hyperledger Explorer可以查看、调用、部署或者查询区块、事务和相关数据、网络信息、链码和事务序列以及任何其它保存在账本中的相关信息。Gerrit地址:GitHub地址:(7)Hyperledger CelloHyperledger Cello项目定位为区块链管理平台,同时提供区块链即服务(Blockchain-as-a-Service),实现区块链环境的快速部署以及对区块链平台的运行时管理。Hyperledger Cello可以让区块链应用人员专注到应用开发,而无需关心底层平台的管理和维护。Cello 的主要开发语言为Python和JavaScript等,底层支持包括裸机、虚拟机、容器云(包括Swarm、Kubernetes)等多种基础架构,由IBM的技术团队于2017年1月贡献到社区,目前已经提交超过500次。Gerrit地址:GitHub地址:核心代码:侧重数据分析:(8)Hyperledger ComposerHyperledger Composer是一个协同工具,致力于提供一个Hyperledger Fabric的开发辅助框架,开发人员可以使用Javascript语言定义应用逻辑,再加上资源、参与者、交易等模型和访问规则,生成Hyperledger Fabric支持的链码。Hyperledger Composer项目主要由NodeJs语言开发,由IBM团队于2017年3月底贡献到社区,目前已有超过 5000次提交。GitHub地址:(9)Hyperledger CaliperHyperledger Caliper是一个区块链基准性能测评框架, 允许用户通过一系列预置的用例来测试特定的区块链技术解决方案。Hyperledger Caliper生成的报告将会包含一系列区块链性能指标,如TPS(平均每秒交易数),时延,系统资源占用等。Hyperledger Caliper的测试结果将帮助Hyperledger其它的项目进行开发,同时为用户选择满足特定需求的区块链实现提供参考依据。Hyperledger Caliper的关键组件是适配层,将不同的区块链实现与Caliper框架集成。对每种待测环境(SUT)都会实现一个适配器,其作用是将Caliper的北向接口(NBI)转为为对应区块链实现的协议。Caliper的北向接口是一系列的通用区块链接口,包含和后端区块链系统交互的各种操作(例如安装智能合约,调用智能合约,查询账本状态等)。Hyperledger Caliper项目主要采用NodeJs语言开发,由华为公司于2018年3月贡献至Hyperledger社区,目前已经有超过190次提交。GitHub地址:(10)Hyperledger QuiltHyperledger Quilt是Interledger Protocol (ILP)协议的Java实现,是连接不同账本(ledger)的中间件,用于创建跨账本的交易。Interledger Protocol (ILP)定义了分布式账本与分布式账本之间、传统账本与分布式账本之间的交互过程,是一种支付协议,旨在分布式账本和传统账本之间进行价值转移。Hyperledger Quilt可以将Hyperledger区块链与XRP Ledger,Ethereum,Bitcoin(Lightning),Litecoin,Mojaloop和RippleNet等支持ILP的支付系统连接起来。Hyperledger Quilt项目主要由Java语言开发,由日本NTT Data公司和Ripple于2017年10月贡献至Hyperledger社区,目前已经有超过70次提交。GitHub地址:

  Jira是Atlassian公司开发的一套任务管理和事项跟踪的追踪平台,提供Web操作界面,使用十分方面。Hyperledger社区采用为所有项目开发计划和任务追踪的入口,使用LF ID即可登录。登录后,可以通过最上面的Project菜单来查看某个项目相关的事项,还可以通过Create按钮来快速创建事项(常见的包括task、bug、improvement等)。用户打开事项后可以通过assign按钮分配给自己来领取该事项。事项分为TODO(待处理)、In Process(处理中)、In Review(补丁已提交、待审查)、Done(事项已完成)等多个状态,由事项所有者来进行维护。

  Gerrit 是一个负责代码协同的开源项目,很多企业和团队都使用Gerrit负责代码仓库管理和代码的审阅工作。Gerrit使用十分方便,提供了基于Web的操作界面。Hyperledger社区采用 gerrit.hyperledger.org作为官方的代码仓库,并实时同步代码到hyperledger作为只读的镜像。用户使用自己的LF ID登录后,可以查看所有项目信息,也可以查看自己提交的补丁等信息。每个补丁的页面上会自动追踪修改历史,审阅人可以通过页面进行审阅操作,赞同提交则可以加分,发现问题则注明问题并进行减分。