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

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

一、HyperLeger简介

1、HyperLeger简介

Hyperledger(超级账本)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其它的例如制造、银行、保险、物联网等行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。
Hyperledger是一个联合项目,超级账本由面向不同目的和场景的子项目构成,包括10个项目,其中区块链框架类项目5个:Fabric,Sawtooth,Iroha,Burrow和Indy;区块链工具类项目5个:Cello,Composer,Explorer,Caliper和Quilt。

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社区组织结构如下:

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的北向接口是一系列的通用区块链接口,包含和后端区块链系统交互的各种操作(例如安装智能合约,调用智能合约,查询账本状态等)。

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任务和进度管理


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

3、Gerrit代码仓库和Review管理


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

4、RocketChat在线沟通


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

原文地址:http://blog.51cto.com/9291927/2306906

时间: 2024-11-10 17:46:48

HyperLeger Fabric开发(一)——HyperLeger简介的相关文章

HyperLeger Fabric开发(三)——HyperLeger Fabric架构

HyperLeger Fabric开发(三)--HyperLeger Fabric架构 一.HyperLeger Fabric架构简介 1.通道简介 商业应用的一个重要的需求是私密×××易,为此Fabric设计了通道(Channel)来提供成员之间的隐私保护.通道是部分网络成员之间拥有独立的通信渠道,在通道中发送的交易只有属于通道的成员才可见,因此通道可以看作是Fabric的网络中部分成员的私有通信子网.通道由排序服务管理.在创建通道的时候,需要定义通道的成员和组织.锚节点(anchor pee

HyperLeger Fabric开发(五)——HyperLeger Fabric账本存储

HyperLeger Fabric开发(五)--HyperLeger Fabric账本存储 一.HyperLeger Fabric账本简介 Fabric里的数据以分布式账本的形式存储.账本由一系列有顺序和防篡改的记录组成,记录包含着数据的全部状态改变.账本中的数据项以键值对的形式存放,账本中所有的键值对构成了账本的状态,也称为世界状态(World State).?每个通道中有唯一的账本,由通道中所有成员共同维护着账本,每个记账节点上都保存了所属通道的账本的一个副本,因而是分布式账本.对账本的访问

HyperLeger Fabric开发(六)——HyperLeger Fabric智能合约(链码)

HyperLeger Fabric开发(六)--HyperLeger Fabric智能合约(ChainCode) 一.链码(Chaincode)简介 1.链码简介 在Fabric中,智能合约也称为链码(chaincode),分为用户链码和系统链码.系统链码用来实现系统层面的功能,包括系统的配置,用户链码的部署.升级,用户交易的签名和验证策略等:用户链码用于实现用户的应用功能,开发者编写链码应用程序并将其部署到区块链网络上,终端用户通过与网络节点交互的客户端应用程序调用链码.链码被编译成一个独立的

HyperLeger Fabric开发(七)——HyperLeger Fabric链码开发

HyperLeger Fabric开发(七)--HyperLeger Fabric链码开发 一.链码开发模式 1.链码开发模式简介 Fabric的链码开发调试比较繁琐.在不使用链码开发模式的情况下,链码不能在本地测试,必须部署到docker,install和instantiate后,Peer节点会在新的容器中启动链码.但只能通过docker logs查看链码日志,通过打印日志的方式进行链码调试.如果对链码进行了修改,需要重新开始上述流程.为了简化Fabric链码开发的调试过程,Fabric引入了

HyperLeger Fabric开发(八)——HyperLeger Fabric链码开发测试

HyperLeger Fabric开发(八)--HyperLeger Fabric链码开发测试 一.链码实例 SACC项目链码实例如下: package main import ( "fmt" "github.com/hyperledger/fabric/core/chaincode/shim" "github.com/hyperledger/fabric/protos/peer" ) // SimpleAsset implements a si

HyperLeger Fabric开发(九)——HyperLeger Fabric部署实战(单机)

HyperLeger Fabric开发(九)--HyperLeger Fabric部署实战(单机) 系统环境:RHEL 7.3操作系统Fabric release 1.3 一.crypto-config.yaml文件 1.Orderer节点组织 (1)单节点 OrdererOrgs: - Name: Orderer Domain: example.com Specs: - Hostname: orderer (2)多节点 OrdererOrgs: ??- Name: Orderer ????Do

HyperLeger Fabric开发(二)——HyperLeger Fabric入门

HyperLeger Fabric开发(二)--HyperLeger Fabric入门 本文使用RHEL 7.3 workstation版本操作系统. 一.HyperLeger Fabric环境部署 1.Go语言开发环境部署 (1)Go语言环境安装Go语言环境安装包下载地址:https://golang.org/dl/https://golang.google.cn/dl/将下载的源码包解压至/usr/local目录sudo tar -C /usr/local -xzf go1.10.1.lin

HyperLeger Fabric开发(四)——HyperLeger Fabric共识机制

HyperLeger Fabric开发(四)--HyperLeger Fabric共识机制 一.Fabric共识过程 1.Fabric共识过程 Fabric区块链的网络节点本质上是互相复制的状态机,节点之间需要保持相同的账本状态.为了实现分布式节点的一致性,各个节点需要通过共识过程,对账本状态的变化达成一致性的认同.Fabric区块链的共识过程包括3个阶段:背书.排序和校验. 2.背书 在背书(endorsement)阶段中,背书节点对客户端发来的交易提案进行合法性校验,然后模拟执行链码得到交易

HyperLeger Fabric开发(十)——资产交易平台实例

HyperLeger Fabric开发(十)--资产交易平台实例 一.资产交易平台需求分析 1.资产交易平台的功能 A.用户开户.销户功能B.资产登记,即资产上链,资产绑定到用户C.资产转让,即资产所有权的变更D.查询功能,包括用户查询.资产查询.资产历史变更查询 2.业务实体 A.用户,属性包括名字.标识.资产列表.B.资产,属性包括名字.标识.特殊属性列表C.资产变更记录,属性包括资产标识.资产源所有者.资产变更后所有者 3.交互方法 A.用户注册,参数包括用户名称.用户标识B.销户,参数包