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

一、HyperLeger简介

1、HyperLeger简介

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

2、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社区组织结构如下:
HyperLeger Fabric开发(一)——HyperLeger简介
Hyperledger社区目前主要是三驾马车领导的结构:
Technical Steering Committee (技术委员会)负责技术相关的工作,下设多个工作组,具体带动各个项目和方向的发展。
Governing Board(管理董事会)负责社区组织的整体决策,由Hyperledger会员中推选出代表。
Linux Foundation(Linux基金会)负责基金管理,协助Hyperledger社区在Linux基金会的支持下发展。
Linux 基金会和Hyperledger 社区十分重视项目在大中华区的应用和落地情况,并希望能为开发者们贡献开源社区提供便利。因此,Hyperledger首任执行董事Brian Behlendorf于2016年12月1日提议成立 大中华区技术工作组(TWG-China),并得到TSC成员们的一致支持和通过。
大中华区技术工作组的Wiki首页地址:
https://wiki.hyperledger.org/groups/tsc/technical-working-group-china
大中华区技术工作组的主要职责包括:
A、带领和引导大中华区的技术开发相关活动,包括贡献代码、文档、项目提案等。
B、推动技术相关的交流,促进会员企业之间的合作和实践案例的落地。
C、通过邮件列表、RocketChat、论坛等方式促进社区开发者们的技术交流。
D、协助举办社区活动,包括Meetup、***松、Hackfest、技术分享、培训等。
目前,工作组由来自IBM、甲骨文、万达、华为、百度等Hyperledger成员企业的数十名技术专家组成,并得到了来自社区的众多志愿者的支持。工作组的各项会议和活动内容都是开放的,可以在Wiki首页上找到相关参与方式。

3、Hyperledger顶级项目

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

二、Hyperledger开发工具

1、Linux Foundation ID

Hyperledger项目受到 Linux 基金会的支持,采用Linux Foundatio ID(LF ID)作为社区唯一的ID。
个人申请ID完全免费,可以到https://identity.linuxfoundation.org/ 进行注册。
用户使用LF ID即可访问到包括Jira、Gerrit、RocketChat 等社区的开发工具。

2、Jira任务和进度管理

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

3、Gerrit代码仓库和Review管理

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

4、RocketChat在线沟通

HyperLeger Fabric开发(一)——HyperLeger简介
除了邮件列表外,社区也为开发者们提供了在线沟通的渠道RocketChat。
RocketChat 是一款功能十分强大的在线沟通软件,支持多媒体消息、附件、提醒、搜索等功能,虽然是开源软件,但在体验上可以跟商业软件Slack媲美。支持包括网页、桌面端、移动端等多种客户端。
Hyperledger社区采用 chat.hyperledger.org 作为服务器。用户直接使用自己的LF ID登录该网站,即可访问。然后可以自行添加感兴趣项目的频道。
用户也可以下载RocketChat客户端,添加chat.hyperledger.org作为服务器即可访问社区内的频道,跟广大开发者进行在线交流。
通常,每个项目都有一个同名的频道作为主频道,例如#Fabric、#Cello等。同时各个工作组也往往有自己的频道,例如大中华区技术工作组的频道为#twg-china。