超级帐本(Hyperledger)

1. Hyperledger 项目

        Hyperledger 下有两类项目:第一类是区块链框架项目;第二类是支持这些区块链的相关工具或模块。

        在 Hyperledger 框架下,目前有 5 个区块链框架项目:Fabric、Sawtooth Lake、Iroha、Burrow 和 Indy。

        在模块类下,则有 Hyperledger Cello、Hyperledger Composer、Hyperledger Explorer 和 Hyperledger Quilt。

        Hyperledger 项目目前有 200 多个成员组织,并且有许多非常活跃的贡献者,在全球范围内定期定期组织聚会和演讲。

1.1 Fabric

        Fabric 是 IBM 和区块链创业公司 DAH(Digital Asset Holdings) 提出的一个区块链项目。该区块链框架旨在为开发具有模块化架构的区块链解决方案提供基础。它基于可插拔的架构,可以根据需要将各种组件 (例如共识引擎和成员资格服务) 插入系统。它还利用容器技术,该技术用于在隔离你的封闭环境中运行智能合约。目前,它的状态是活跃的,这是第一个经历从孵化到活跃状态的项目。

注意:

        Fabric 的源代码可从以下网址获得:

        https://github.com/hyperledger/fabric

1.2 Sawtooth Lake

        Sawtooth Lake (锯齿湖)是 Intel 公司于 2016 年 4 月提出的一个区块链项目,其一些关键创新着眼于帐本与交易的脱钩、跨多个业务领域的灵活使用,以及可插入的共识。

        对于这里所谓的脱钩  (Decoupling,也称为解耦),更精确的解释是,通过使用称为交易族(Transaction Families) 的新概念将交易与共识层脱钩。

        交易族不是使用单独的帐本来耦合交易,它提供了更大的灵活性、更丰富的语义以及业务逻辑的开放式设计。交易遵循交易族中定义的模式和结构。

        Intel 公司推出的一些创新元素包括缩写为 PoET 的新颖共识算法,即消逝时间量证明(Proof of Elapsed Time), 该算法利用英特尔软件保护扩展(Intel Software Guard Extensions, Intel SGX) 提供的可信执行环境(Trusted Execution Environment,TEE) 来提供安全而随机的领导者选举处理。它还支持许可和无许可设置。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/sawtooth-core

1.3 Iroha

        Iroha 由 Soramitsu、Hitachi、NTT Data 和 Colu 于 2016 年 9 月 贡献。 Iroha 的目标是建立可重用组件的库,用户可以选择在基于 Hyperledger 的分布式帐本上运行它们。

        Iroha 的主要目标是通过提供用 C++ 编写的可重用组件 (重点是移动开发) 来补充其他 Hyperledger 项目。该项目还提出了一种称为 Sumeragi 的新型共识算法,该算法是基于链的拜占庭容错共识算法。

注意:

该项目的源代码可以从以下网址获得:

https://github.com/hyperledger/iroha

        Iroha 已提出和使用各种库,其中包括但不限于数字签名库(ed25519)、SHA-3 哈希库、交易序列化库、P2P 库、API 服务器库、iOS 库、Android 库 和 JavaScript 库。

1.4 Burrow

        Burrow 项目当前处于孵化状态。Hyperledger Burrow 由 Monax 公司贡献,Monax 公司开发了一个业务的区块链开发和部署平台。

        Hyperledger Burrow 引入了模块区区块链平台和基于以太坊虚拟机的智能合约执行环境。Burrow 使用权益证明、拜占庭容错 Tendermint 共识机制,其结果就是,Burrow 提供了高吞吐量和交易的不可改变性。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/burrow

1.5 Indy

        该项目正在 Hyperledger 下进行孵化。Indy 是为建立去中心化身份而开发的分布式帐本。它提供了可用于构建基于区块链的数字身份的工具、实用程序和模块。这些身份可以跨多个区块链、域和应用程序使用。

        Indy 拥有自己的分布式帐本,并使用冗余拜占庭容错(Redundant Byzantine Fault Tolerance, RBFT) 达成共识。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/indy-node

 1.6 Explorer

        该项目旨在为 Hyperledger Fabric 构建一个区块链浏览器,可用于查看和查询来自区块链的交易、区块和关联数据,它还提供网络信息以及与链代码进行交互的能力。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/blockchain-explorer

        当前还有若干正在 Hyperledger 下孵化的其他项目,这些项目旨在提供工具和实用程序来支持区块链网络。

1.7 Cello

        Cello 的目的是允许轻松部署区块链,这将提供一种允许 “作为一种服务" 部署区块链服务的能力。目前,该项目处于孵化阶段。

注意:

该项目的源代码可以从以下网址获得:

https://github.com/hyperledger/cello

 1.8 Composer

        该实用程序允许以一种业务语言描述业务流程,同时抽象出低级智能合约开发的细节,从而使区块链解决方案的开发更加容易。

注意:

        该项目的源代码可以从以下网址获得:

        https://hyperledger.github.io/composer/

1.9 Quit

        该实用程序实现了 Interledger 协议,Interledger 协议促进了不同分布式和非分布式帐本网络之间的互操作性。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/quilt

2. Hyperledger 即协议

        Hyperledger 旨在构建由行业用例驱动的新区块链平台。由于社区对 Hyperledger 项目做出许多贡献,因此 Hyperledger 区块链平台正在演变为业务交易协议。

        与仅解决特定类型的行业或要求的早期区块链解决方案相比,Hyperledger 也正在发展成为可以用作构建区块链平台的参考规范。

3. 参考架构

        Hyperledger 发布了一份白皮书,该白皮书提供了一种参考架构,可以用作构建许可分布式帐本的指南。参考架构由形成业务区块链的各种组件组成,下图显示了这些高级组件。

原文 译文
Hyperledger APIs,SDKs,CLI Hyperledger 应用程序编程接口(API)、软件开发工具包(SDK)、命令行接口(CLI)
IDENTITY 身份
POLICY 策略
BLOCKCHAIN 区块链
TRANSACTIONS 交易
SMART CONTRACTS  智能合约
Identity Services 身份服务
Ledger Identities 帐本身份
Resource Identities 资源身份
Policy Services 策略身份
Configuration 配置
Access Control 访问控制
Privacy 策略
Blockchain Services 区块链服务
Consensus Manager 共识管理器
Distributed Ledger 分布式帐本
P2P Protocol P2P 协议
Ledger Storage 帐本存储
Smart Contract Services 智能合约服务
Secure Container 安全容器
Registry 注册
Life Cycle 生命周期
Event Stream 事件流
Hyperledger Services Hyperledger服务

        在上图中,可以看到 5 个提供各种服务的顶级组件。现在我们就来探讨一下这些组件。

        首先是 Identity (身份),它将在成员资格服务下提供授权、标识和身份验证服务。

        其次是 Policy (策略)组件,它将提供策略服务。

        再次是 Blockchain ( 区块链 )和 Transaction (交易),其中包括分布式帐本、排序服务、网络协议以及背书(Endorsement) 和验证服务。该帐本只能通过区块链网络参与者之间的共识来更新。

        最后是 Smart Contract (智能合约)。该层可以在 Hyperledger 中提供链码(Chaincode) 服务,并利用安全容器技术托管智能合约。

 一般来说,从组件的角度来看,Hyperledger 包含以下元素:

  • 共识层:这些服务负责促进区块链网络上参与者之间的协议流程。需要达成共识以确保交易的顺序和状态在区块链网络中得到验证和同意。
  • 智能合约层:这些服务负责根据用户要求实现业务逻辑。根据驻留在区块链上的智能合约中定义的逻辑来处理交易。
  • 通信层:该层负责区块链网络上节点之间的消息传输和交换。
  • 安全和加密层:这些服务负责提供一种功能,以允许各种加密算法或模块提供隐私、机密性和不可否认性服务。
  • 数据存储:该层提供使用不同的数据存储来存储帐本状态的功能。这意味着数据存储也是可插入的,并允许使用任何数据库后端。
  • 策略服务:这组服务提供了管理区块链网络所需的不同策略的能力,它包括背书政策和共识政策。
  • API 和 SDK :该层允许客户端和应用程序与区块链进行交互。SDK 用于提供在链上部署和执行链码、查询区块和监视事件的机制。

4. Hyperledger Fabric 的要求和设计目标

        区块链服务有一定的要求。上述参考架构将由 Hyperledger 项目参与者提出的需求和要求驱动,并且是在研究了行业用例之后的结果。从工业用例的研究中,可以得出若干需求分类,在以下各节中将分别进行讨论。

4.1 模块化方法

        Hyperledger 的主要需求是模块化结构。作为跨行业结构(区块链),它将在许多业务场景中使用。因此,与存储、策略、链码、访问控制、共识和许多其他区块链服务相关的功能应模块化且可插入。该规范建议模块应即插即用,并且用户应该能够轻松地删除和添加满足业务要求的其他模块。

4.2 隐私性和机密性

        隐私性和机密性要求是最关键的因素之一。由于传统的区块链是无须许可的,因此,在像 Hyperledger Fabric 这样的许可模型中,最重要的一点是:网络上的交易仅对那些被允许查看的人可见。

猜你喜欢

转载自blog.csdn.net/canglonghacker/article/details/142039982