Hyperledger Fabric v1.4(LTS) 系列(2) - 简介

译文目录:
Hyperledger Fabric v1.4(LTS) 系列译文总目录

  • Introduction
  • What’s new in v1.4
  • Release notes
  • Key Concepts
  • Getting Started
  • Developing Applications
  • Tutorials
  • Operation Guides
  • Commands Reference
  • Architecture Reference
  • FAQ

Introduction

In general terms, a blockchain is an immutable transaction ledger, maintained within a distributed network of peer nodes. These nodes each maintain a copy of the ledger by applying transactions that have been validated by a consensus protocol, grouped into blocks that include a hash that bind each block to the preceding block.
一般来说,区块链是不可篡改的交易账本,通过对等节点构成的分布式网络维护。这些节点通过把由共识协议验证后的事务应用到本地来维护一个分类账副本,这些事务被打包到一个个块中,每个块中都绑定了其前一个块的哈希值。

**译注:
这是所有区块链的共同结构,也是所谓链的核心定义。对这里不太懂的朋友可以参看 wikipedia上该词条的附图。

还可以自行搜索一些 默克树 Merkle Tree 的概念。
**

The first and most widely recognized application of blockchain is the Bitcoin cryptocurrency, though others have followed in its footsteps. Ethereum, an alternative cryptocurrency, took a different approach, integrating many of the same characteristics as Bitcoin but adding smart contracts to create a platform for distributed applications. Bitcoin and Ethereum fall into a class of blockchain that we would classify as public permissionless blockchain technology. Basically, these are public networks, open to anyone, where participants interact anonymously.
尽管有众多模仿者,区块链的第一个也是最广为认可的应用当之无愧是[比特币]。另一种加密货币,以太坊,采用了不同的实现方式,整合了许多与比特币相同的特征,但通过添加智能合约构建了一个分布式应用平台。比特币和以太坊属于同一类区块链,我们称之为为公开无限制的区块链技术。大体上,这些都是公开网络,对任何人开放,参与者可以匿名互动。

*译注:
以太坊被称为区块链2.0,当然后边还有众多号称是区块链3.0的各种应用,但1.0时代的比特币,2.0时代的以太坊的地位,是得到广泛认可的。
*

As the popularity of Bitcoin, Ethereum and a few other derivative technologies grew, interest in applying the underlying technology of the blockchain, distributed ledger and distributed application platform to more innovative enterprise use cases also grew. However, many enterprise use cases require performance characteristics that the permissionless blockchain technologies are unable (presently) to deliver. In addition, in many use cases, the identity of the participants is a hard requirement, such as in the case of financial transactions where Know-Your-Customer (KYC) and Anti-Money Laundering (AML) regulations must be followed.
随着比特币、以太坊的流行以及其他一些衍生技术的发展,人们对将区块链、分布式账本和分布式应用平台的底层技术应用于更具创新性的企业场景的兴趣也与日俱增。然而,许多企业用例需要无权限区块链技术(目前)无法提供的性能特征。此外,在许多用例中,参与者的身份是一个很难满足的要求,例如在金融交易中,必须遵守了解客户(KYC)和反洗钱(AML)法规。

译注:
Permissionless的公链设计无法满足企业场景的应用。Fabric的设计引入了权限和准入的设计,更好满足企业场景的需求。

For enterprise use, we need to consider the following requirements:

  • Participants must be identified/identifiable
  • Networks need to be permissioned
  • High transaction throughput performance
  • Low latency of transaction confirmation
  • Privacy and confidentiality of transactions and data pertaining to business transactions

对于企业场景,我们需要考虑以下需求:

  • 参与者身份必须被识别/可识别
  • 网络需要
  • 高事务吞吐量性能
  • 事务确认延迟低
  • 与商业交易有关的交易和数据的隐私和保密

While many early blockchain platforms are currently being adapted for enterprise use, Hyperledger Fabric has been designed for enterprise use from the outset. The following sections describe how Hyperledger Fabric (Fabric) differentiates itself from other blockchain platforms and describes some of the motivation for its architectural decisions.
虽然许多早期的区块链平台目前正在适应企业使用,但Hyperledger结构从一开始就设计用于企业使用。以下各节描述了Hyperledger Fabric(Fabric)如何与其他区块链平台区分开来,并描述了其体系结构决策的一些动机。

Hyperledger Fabric

Hyperledger Fabric is an open source enterprise-grade permissioned distributed ledger technology (DLT) platform, designed for use in enterprise contexts, that delivers some key differentiating capabilities over other popular distributed ledger or blockchain platforms.

Hyperledger Fabric是一个开源的企业级许可分布式账本技术(DLT)平台,设计用于企业环境,它提供了一些关键的与其他流行的分布式账本或区块链平台不同的能力。

One key point of differentiation is that Hyperledger was established under the Linux Foundation, which itself has a long and very successful history of nurturing open source projects under open governance that grow strong sustaining communities and thriving ecosystems. Hyperledger is governed by a diverse technical steering committee, and the Hyperledger Fabric project by a diverse set of maintainers from multiple organizations. It has a development community that has grown to over 35 organizations and nearly 200 developers since its earliest commits.

一个关键的不同点是Hyperledger是在Linux基金会下建立的,其长期以来通过开放治理成功培育开源项目,产出了强大可持续的社区及有着旺盛生命力的生态系统。Hyperledger由一个多元化的技术指导委员会管理,Hyperledger Fabric项目由来自多个组织的不同维护人员组成。它有一个开发社区,自最早的代码提交以来,已经发展超过35个组织和近200个开发人员。

Fabric has a highly modular and configurable architecture, enabling innovation, versatility and optimization for a broad range of industry use cases including banking, finance, insurance, healthcare, human resources, supply chain and even digital music delivery.

Fabric具有高度模块化和可配置的架构,能够为银行、金融、保险、医疗保健、人力资源、供应链甚至数字音乐交付等广泛的行业用例提供创新、多用途和优化的能力。

Fabric is the first distributed ledger platform to support smart contracts authored in general-purpose programming languages such as Java, Go and Node.js, rather than constrained domain-specific languages (DSL). This means that most enterprises already have the skill set needed to develop smart contracts, and no additional training to learn a new language or DSL is needed.

Fabric是第一个支持以通用编程语言(如Java、GO和Node.js)编写智能合约的分布式总帐平台,不限定于特定的领域语言(DSL)。这意味着大多数企业已经具备了开发智能合约所需的技能集,不需要额外培训新语言或DSL。

The Fabric platform is also permissioned, meaning that, unlike with a public permissionless network, the participants are known to each other, rather than anonymous and therefore fully untrusted. This means that while the participants may not fully trust one another (they may, for example, be competitors in the same industry), a network can be operated under a governance model that is built off of what trust does exist between participants, such as a legal agreement or framework for handling disputes.

Fabric平台也是许可制的。这意味着,与不需要许可的公共网络不同,参与者互相都是已知的,而不是匿名因而完全不信任的。这意味着,虽然参与者不能完全信任彼此(例如,他们可能是同一行业的竞争对手),但网络可以在基于参与者之间存在信任的治理模式下运行,例如处理争议的法律协议或框架。

One of the most important of the platform’s differentiators is its support for pluggable consensus protocols that enable the platform to be more effectively customized to fit particular use cases and trust models. For instance, when deployed within a single enterprise, or operated by a trusted authority, fully byzantine fault tolerant consensus might be considered unnecessary and an excessive drag on performance and throughput. In situations such as that, a crash fault-tolerant (CFT) consensus protocol might be more than adequate whereas, in a multi-party, decentralized use case, a more traditional byzantine fault tolerant (BFT) consensus protocol might be required.

该平台最重要的不同在于它支持可插拔的共识协议,使得平台能够更有效地定制化以适应特定的用例和信任模型。例如,当部署在单个企业中或由受信任的权威机构操作时,完全拜占庭式的容错共识就是不必要的,且极大拖累性能和吞吐量。在这种情况下,崩溃容错(CFT)共识协议可能会更充分,而在多方参与的去中心化的用例中,可能需要传统的拜占庭容错(BFT)共识协议。

译注:
共识协议也有类似分布式系统CAP原则的特征,CAP原则中,一致性、分区可靠性和可用性不可三者兼得。共识的效率和公平性也同样不可兼得,如果要类似公链如比特币的平等性,就要基于所有节点不可信的前提下设计共识协议,接受分钟级别的共识达成效率。而企业内部的节点间存在一定的信任关系,就可以改变共识算法的设计前提,以提高共识达成的效率,提升企业内区块链应用的效率和吞吐量。

Fabric can leverage consensus protocols that do not require a native cryptocurrency to incent costly mining or to fuel smart contract execution. Avoidance of a cryptocurrency reduces some significant risk/attack vectors, and absence of cryptographic mining operations means that the platform can be deployed with roughly the same operational cost as any other distributed system.

Fabric的共识协议不需要使用内置加密货币来激励昂贵的挖矿或给智能合约执行加油。避免使用加密货币可以减少一些显著的风险或攻击向量,并且没有加密挖矿操作意味着可以以与任何其他分布式系统大致相同的操作成本部署平台。

译注:
这里的mining和fuel,分别指的就是比特币里的挖矿和以太坊Ethereum里执行智能合约时所需要付出的Gas。这些内容后边的其他文章会给大家介绍。

The combination of these differentiating design features makes Fabric one of the better performing platforms available today both in terms of transaction processing and transaction confirmation latency, and it enables privacy and confidentiality of transactions and the smart contracts (what Fabric calls “chaincode”) that implement them.
Let’s explore these differentiating features in more detail.

诸多与众不同的设计特性的组合使Fabric成为当今在事务处理和事务确认延迟方面性能更好的平台之一,它实现了事务以及实现事务的智能合约自身(Fabric中称为“链码”)的隐私和机密性。

让我们更详细地探讨这些差异化特性。

Modularity

Hyperledger Fabric has been specifically architected to have a modular architecture. Whether it is pluggable consensus, pluggable identity management protocols such as LDAP or OpenID Connect, key management protocols or cryptographic libraries, the platform has been designed at its core to be configured to meet the diversity of enterprise use case requirements.

Hyperledger Fabric 被专门设计为模块化的架构。包括可插拔的共识协议,可插拔的身份管理协议,如通过LDAP或OpenID连接、密钥管理或加密库,平台自核心开始都是设计为可通过配置满足企业用例需求的多样性。

At a high level, Fabric is comprised of the following modular components:

  • A pluggable ordering service establishes consensus on the order of transactions and then broadcasts blocks to peers.
  • A pluggable membership service provider is responsible for associating entities in the network with cryptographic identities.
  • An optional peer-to-peer gossip service disseminates the blocks output by ordering service to other peers.
  • Smart contracts (“chaincode”) run within a container environment (e.g. Docker) for isolation. They can be written in standard programming languages but do not have direct access to the ledger state.
  • The ledger can be configured to support a variety of DBMSs.
  • A pluggable endorsement and validation policy enforcement that can be independently configured per application.

自上层看,Fabirc由如下模块化组件构成:

  • 可插拔的排序服务建立对事务顺序的共识,然后将区块广播给网络节点。
  • 可插拔的成员身份服务提供者负责将网络中的实体与加密标识关联起来。
  • 可选的点对点私密沟通服务把区块的输出通过排序服务向其他节点传播。
  • 智能合约(“链码”)在容器环境(如Docker)中运行以进行隔离。它们可以用标准的编程语言编写,但不能直接访问分类帐状态。
  • 分类帐可配置为支持各种DBMS。
  • 一种可插拔的认可和验证策略实施,每个应用程序可以独立配置。

There is fair agreement in the industry that there is no “one blockchain to rule them all”. Hyperledger Fabric can be configured in multiple ways to satisfy the diverse solution requirements for multiple industry use cases.

业界有一个共识,即没有“某个单一区块链会主宰所有”。Hyperledger Fabric 可以通过多种途径配置,以满足多种行业用例的不同方案需求。

Permissioned vs Permissionless Blockchains

In a permissionless blockchain, virtually anyone can participate, and every participant is anonymous. In such a context, there can be no trust other than that the state of the blockchain, prior to a certain depth, is immutable. In order to mitigate this absence of trust, permissionless blockchains typically employ a “mined” native cryptocurrency or transaction fees to provide economic incentive to offset the extraordinary costs of participating in a form of byzantine fault tolerant consensus based on “proof of work” (PoW).

一个没有准入机制的区块链允许任何人参与,且每个参与者都是匿名的。在这样的背景下,除了一定深度之前的区块链的状态是不可变的之外,没有其他信任。为了缓解这种信任缺失,无许可区块链通常使用“开采”的本地加密货币或交易费用来提供经济激励,以抵消基于“工作证明”(POW)的拜占庭容错共识形式参与的额外成本。

译注:
the state of the blockchain, prior to a certain depth.
为什么要专门加一个逗号,强调是prior to a certain depth呢?首先,你需要去看看文章一开始介绍的Merkle Tree的概念,知道区块之间是如何关联起来的。其次,新的区块通过挖矿产生(比特币或以太坊都是采用PoW的共识机制,只能靠挖矿来产生新的区块,而Fabirc等就可以采取PoS等方式,节约计算资源)之后,要主动向邻近节点广播。假设这个新的区块是第N个区块,邻近节点通过哈希计算,认可这个新的区块N并写入到该节点本地。通过这样的广播机制,新的区块最后被全网51%的节点接受后,才可以认为是不可变的结果。广播的过程中,还会有新的区块N+1,N+2产生,同时可能还会有N’产生,以及部分网络节点基于N’挖矿计算得来的N+1’,N+2’。而这些分支最终合并到N的这个分支下,是需要较长的广播时间的。所以,文中强调,只有一定深度之前的区块才可认为是不可变的,即N+M已经产生的时候,N及以前的区块是不可变的。
当然,还有N和N’最终无法达成共识的情况,历史上是发生过的,后边再做详述,大家有兴趣可以搜一下 区块链 分叉。

Permissioned blockchains, on the other hand, operate a blockchain amongst a set of known, identified and often vetted participants operating under a governance model that yields a certain degree of trust. A permissioned blockchain provides a way to secure the interactions among a group of entities that have a common goal but which may not fully trust each other. By relying on the identities of the participants, a permissioned blockchain can use more traditional crash fault tolerant (CFT) or byzantine fault tolerant (BFT) consensus protocols that do not require costly mining.

相反,具备许可机制的区块链,在一组已知的、已验证身份的并常被审查的参与者之间,在产生一定程度信任的治理模型下运行区块链。具备许可机制的区块链提供了一种方法来加密具有共同目标但不完全互信的一组实体之间的交互。依赖于参与者的身份,具备许可机制的区块链可以使用更传统的崩溃容错(CFT)或拜占庭容错(BFT)共识协议,这些协议不需要消耗资源挖矿。

Additionally, in such a permissioned context, the risk of a participant intentionally introducing malicious code through a smart contract is diminished. First, the participants are known to one another and all actions, whether submitting application transactions, modifying the configuration of the network or deploying a smart contract are recorded on the blockchain following an endorsement policy that was established for the network and relevant transaction type. Rather than being completely anonymous, the guilty party can be easily identified and the incident handled in accordance with the terms of the governance model.

此外,在使用许可机制的情况下,参与者通过智能合约引入恶意代码的风险会降低。首先,参与者相互了解,所有的行为,无论是提交应用程序事务、修改网络配置或部署智能合约,都参照为网络和相关交易类型建立的认可策略记录在区块链上。犯罪方完全不能匿名,相反可以很容易地被识别出来,并将该事件按照治理模型的条款处理。

Smart Contracts

A smart contract, or what Fabric calls “chaincode”, functions as a trusted distributed application that gains its security/trust from the blockchain and the underlying consensus among the peers. It is the business logic of a blockchain application.

智能合约或Fabric中的“链码”,作为一个可信的分布式应用程序,通过区块链和节点间的底层共识机制获得其安全/信任。它是区块链应用的业务逻辑。

There are three key points that apply to smart contracts, especially when applied to a platform:

  • many smart contracts run concurrently in the network,
  • they may be deployed dynamically (in many cases by anyone), and
  • application code should be treated as untrusted, potentially even malicious.

智能合约有三个关键点,尤其是应用于平台时:

  • 众多智能合约在网络中同时运行,
  • 它们可以动态部署(多数情况下任何人都可以),并且
  • 应用代码应被视为不可信的,甚至存在潜在恶意可能性。

Most existing smart-contract capable blockchain platforms follow an order-execute architecture in which the consensus protocol:

  • validates and orders transactions then propagates them to all peer nodes,
  • each peer then executes the transactions sequentially.

大多数现有的支持智能合约的区块链平台遵循顺序执行的架构,其中共识协议:

  • 验证和排序事务,然后将它们传播到所有成员节点,
  • 然后每个成员顺序执行事务。

The order-execute architecture can be found in virtually all existing blockchain systems, ranging from public/permissionless platforms such as Ethereum (with PoW-based consensus) to permissioned platforms such as Tendermint, Chain, and Quorum.

事实上,顺序执行架构可以所有现存的区块链系统中找到,从公共/无准入的平台,如Ethereum(基于POW的共识)到采用准入机制的平台如Tendermint、Chain和Quorum。

Smart contracts executing in a blockchain that operates with the order-execute architecture must be deterministic; otherwise, consensus might never be reached. To address the non-determinism issue, many platforms require that the smart contracts be written in a non-standard, or domain-specific language (such as Solidity) so that non-deterministic operations can be eliminated. This hinders wide-spread adoption because it requires developers writing smart contracts to learn a new language and may lead to programming errors.

顺序执行架构下的区块链中执行的智能合约必须具有确定性,否则可能永远无法达成共识。为了解决不确定性问题,许多平台要求智能合约以非标准或特定的领域语言(如solidity编写,以便消除不确定性操作。这阻碍其被广泛采用,因为它要求智能合约开发人员学习新的语言,并可能导致编程错误。

Further, since all transactions are executed sequentially by all nodes, performance and scale is limited. The fact that the smart contract code executes on every node in the system demands that complex measures be taken to protect the overall system from potentially malicious contracts in order to ensure resiliency of the overall system.

进一步的,由于所有事务都是由所有节点顺序执行的,因此限制了性能和规模。因为智能合约代码要在系统中的每个节点上执行,因而需要采取复杂的措施来保护整个系统不受潜在恶意合约的影响,以确保整个系统的存续。

A New Approach

Fabric introduces a new architecture for transactions that we call execute-order-validate. It addresses the resiliency, flexibility, scalability, performance and confidentiality challenges faced by the order-execute model by separating the transaction flow into three steps:

  • execute a transaction and check its correctness, thereby endorsing it,
  • order transactions via a (pluggable) consensus protocol, and
  • validate transactions against an application-specific endorsement policy before committing them to the ledger

Fabric在事务中引入了称为执行-排序-验证的新架构。该架构为解决顺序执行模型所面临的弹性、灵活性、可扩展性、性能和保密性挑战,将事务流分为如下三个步骤:

  • 执行事务并检查其正确性,从而认可它,
  • 通过可插拔的共识协议对事务排序,然后
  • 在将交易提交到账本之前,根据应用的特定背书策略验证交易

译注:
这里第一个步骤的endorse按照上下文,为了便于大家理解,翻译为了认可。在Fabric的架构中,这个步骤的作用主要是验证并对一个事务背书,因此多数情况下应理解为背书。

This design departs radically from the order-execute paradigm in that Fabric executes transactions before reaching final agreement on their order.

这种设计从根本上拆分了顺序执行范式,使得事务可以在按顺序达成最终共识之前执行。

In Fabric, an application-specific endorsement policy specifies which peer nodes, or how many of them, need to vouch for the correct execution of a given smart contract. Thus, each transaction need only be executed (endorsed) by the subset of the peer nodes necessary to satisfy the transaction’s endorsement policy. This allows for parallel execution increasing overall performance and scale of the system. This first phase also eliminates any non-determinism, as inconsistent results can be filtered out before ordering.

在Fabric中,应用特定的背书策略可以指定需要哪些成员节点或其中多少节点以保证特定智能合约的正确执行。因此,每个事务只需要由满足事务的背书策略所必需的节点子集执行(背书)。这使得事务可并行执行来提高系统的整体性能和规模。第一步还消除了任何不确定性,因为不一致的结果可以在排序之前被过滤掉。

Because we have eliminated non-determinism, Fabric is the first blockchain technology that enables use of standard programming languages. In the 1.1.0 release, smart contracts can be written in either Go or Node.js, while there are plans to support other popular languages including Java in subsequent releases.

因为消除了不确定性,Fabric是第一个允许使用标准编程语言的区块链技术。在1.1.0版本中,智能合约可以用Go或Node.js写,后续版本还将支持包括Java在内的其他流行语言。

Privacy and Confidentiality

As we have discussed, in a public, permissionless blockchain network that leverages PoW for its consensus model, transactions are executed on every node. This means that neither can there be confidentiality of the contracts themselves, nor of the transaction data that they process. Every transaction, and the code that implements it, is visible to every node in the network. In this case, we have traded confidentiality of contract and data for byzantine fault tolerant consensus delivered by PoW.
正如我们所讨论的,在一个公共的、无准入机制的区块链网络中,利用PoW作为其共识模型,交易在每个节点上执行。这意味着合约本身无法保密,其处理的交易数据也无法保密。每个事务及实现代码对网络中的每个节点都是可见的。在这种情况下,我们抛弃了合约和数据的保密性,来换取PoW提供的拜占庭容错共识。

This lack of confidentiality can be problematic for many business/enterprise use cases. For example, in a network of supply-chain partners, some consumers might be given preferred rates as a means of either solidifying a relationship, or promoting additional sales. If every participant can see every contract and transaction, it becomes impossible to maintain such business relationships in a completely transparent network – everyone will want the preferred rates!

对于许多业务/企业场景来说,上述机密性的缺失是个问题。例如,在一个供应链网络中,作为巩固关系或促销的一种手段,一些消费者会得到一定折扣。如果每个参与者都能看到每个合约和交易,在一个完全透明的网络中维持这种业务关系就变得不可能了——每个人都会想要优惠!

As a second example, consider the securities industry, where a trader building a position (or disposing of one) would not want her competitors to know of this, or else they will seek to get in on the game, weakening the trader’s gambit.

第二个例子,让我们考虑证券行业,交易者不希望竞争对手知道其建仓或平仓的信息,否则他们将寻机参与,削弱交易者策略效果。

In order to address the lack of privacy and confidentiality for purposes of delivering on enterprise use case requirements, blockchain platforms have adopted a variety of approaches. All have their trade-offs.

为了解决在交付企业用例需求时缺乏隐私和保密性的问题,区块链平台采用了多种方法,各有取舍。

Encrypting data is one approach to providing confidentiality; however, in a permissionless network leveraging PoW for its consensus, the encrypted data is sitting on every node. Given enough time and computational resource, the encryption could be broken. For many enterprise use cases, the risk that their information could become compromised is unacceptable.

加密数据是提供保密性的一种方法;但是,在一个利用PoW达成共识的无准入制网络中,加密数据位于每个节点上。如果有足够的时间和计算资源,数据可能被解密。对于许多企业用例来说,信息泄露的风险是不可接受的。

Zero knowledge proofs (ZKP) are another area of research being explored to address this problem, the trade-off here being that, presently, computing a ZKP requires considerable time and computational resources. Hence, the trade-off in this case is performance for confidentiality.

零知识证明(zero knowledge proof,ZKP)是另一个正在探索解决这个问题的研究领域,它的考虑是,目前计算一个ZKP需要相当长的时间和计算资源。因此,在这种方式是以性能换取保密性。

In a permissioned context that can leverage alternate forms of consensus, one might explore approaches that restrict the distribution of confidential information exclusively to authorized nodes.

在一个可以利用其他形式共识的准入环境中,可以尝试限制机密信息仅分发给授权节点的方法。

Hyperledger Fabric, being a permissioned platform, enables confidentiality through its channel architecture. Basically, participants on a Fabric network can establish a “channel” between the subset of participants that should be granted visibility to a particular set of transactions. Think of this as a network overlay. Thus, only those nodes that participate in a channel have access to the smart contract (chaincode) and data transacted, preserving the privacy and confidentiality of both.

作为一个准入制的平台,Hyperledger Fabric 通过其频道架构实现了保密性。首先,Fabric 网络的参与者可以在参与者子集之间建立一个“频道”,该频道应仅对特定事务集可见。可以把它视为一个overlay网络。这样,只有加入频道的节点才可以访问智能合约(链码)及其处理的数据,从而保护两者的隐私和机密性。

Overlay是相对于Underlay而言,举个例子,以传统的三层网络承载二层的虚拟网络,就是以传统网络为Underlay,在三层协议报文中,封装Overlay层面需要传输的二层数据包,实现虚拟网络二层可达,这个虚拟网络就是Overlay网络。

To improve upon its privacy and confidentiality capabilities, Fabric has added support for private data and is working on zero knowledge proofs (ZKP) available in the future. More on this as it becomes available.

为了提高其隐私和保密能力,Fabric增加了对私有数据的支持,并正在致力于将来提供零知识证明(ZKP),今后会有更多信息。

Pluggable Consensus

The ordering of transactions is delegated to a modular component for consensus that is logically decoupled from the peers that execute transactions and maintain the ledger. Specifically, the ordering service. Since consensus is modular, its implementation can be tailored to the trust assumption of a particular deployment or solution. This modular architecture allows the platform to rely on well-established toolkits for CFT (crash fault-tolerant) or BFT (byzantine fault-tolerant) ordering.

通过一个模块化组件完成事务的排序以达成共识,在逻辑上解耦了执行交易和维护分类账的节点。特别是排序服务。由于共识是模块化的,它的实现可以根据特定部署或解决方案的信任前提进行定制。这种模块化架构允许平台依赖于成熟的工具包来进行CFT(崩溃容错)或BFT(拜占庭容错)排序。

Fabric currently offers two CFT ordering service implementations. The first is based on the etcd library of the Raft protocol. The other is Kafka (which uses Zookeeper internally). For information about currently available ordering services, check out our conceptual documentation about ordering.

Fabric目前提供两种CFT排序服务实现。第一个是基于raft协议的etcd库。另一个是Kafka(内部使用ZooKeeper。有关当前可用排序服务的信息,请查看我们的[有关排序的概念文档](https://hyperledger fabric.readthedocs.io/en/release-1.4/order/ordering_service.html)。

Note also that these are not mutually exclusive. A Fabric network can have multiple ordering services supporting different applications or application requirements.

还要注意,这些不是相互排斥的。一个Fabric网络可以有多个排序服务,以支持不同的应用程序或应用程序需求。

Performance and Scalability

Performance of a blockchain platform can be affected by many variables such as transaction size, block size, network size, as well as limits of the hardware, etc. The Hyperledger community is currently developing a draft set of measures within the Performance and Scale working group, along with a corresponding implementation of a benchmarking framework called Hyperledger Caliper.

区块链平台的性能受到许多变量的影响,如交易大小、块大小、网络规模以及硬件限制等。Hyperledger社区的性能和规模工作组目前正在开发一套[措施草案](https://docs.google.com/document/d/1dq6pqoeih0pcnjseyiw7jvbexdvwh_zrvwkuiog4k0/edit heading=h.t3gztry2ja8i),以及一个称为超级账本卡尺的基准框架的实现。

While that work continues to be developed and should be seen as a definitive measure of blockchain platform performance and scale characteristics, a team from IBM Research has published a peer reviewed paper that evaluated the architecture and performance of Hyperledger Fabric. The paper offers an in-depth discussion of the architecture of Fabric and then reports on the team’s performance evaluation of the platform using a preliminary release of Hyperledger Fabric v1.1.

虽然这项工作仍在继续发展,并应被视为区块链平台性能和规模特征的决定性衡量指标,但IBM Research的一个团队在一篇同行评审论文中评估了Hyperledger结构的架构和性能。该论文对Fabric的体系结构进行了深入的讨论,并使用Hyperledge Fabricv 1.1的早期版本得出了对平台的性能评估报告。

The benchmarking efforts that the research team did yielded a significant number of performance improvements for the Fabric v1.1.0 release that more than doubled the overall performance of the platform from the v1.0.0 release levels.

研究团队所做的基准测试工作为Fabric v1.1.0 版本提供了大量的性能改进,使平台的总体性能比 v1.0.0 版本高出一倍多。

Conclusion

Any serious evaluation of blockchain platforms should include Hyperledger Fabric in its short list.

任何对区块链平台的认真评估都应该在其短名单中包括Hyperledger Fabric。

Combined, the differentiating capabilities of Fabric make it a highly scalable system for permissioned blockchains supporting flexible trust assumptions that enable the platform to support a wide range of industry use cases ranging from government, to finance, to supply-chain logistics, to healthcare and so much more.

结合起来看,Fabric的独特能力使其成为一个高度可扩展,用于支持灵活的信任前提的准入制的区块链,支持从政府、金融、供应链物流、医疗保健等广泛的行业用例。

More importantly, Hyperledger Fabric is the most active of the (currently) ten Hyperledger projects. The community building around the platform is growing steadily, and the innovation delivered with each successive release far out-paces any of the other enterprise blockchain platforms.

更重要的是,Hyperledger Fabric 是当前十个Hyperledger项目中最活跃的。围绕平台的社区建设正在稳步发展,每一次连续发布所带来的创新远远超过其他任何企业区块链平台。

Acknowledgement

The preceding is derived from the peer reviewed “Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains” - Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Ferris, Gennady Laventman, Yacov Manevich, Srinivasan Muralidharan, Chet Murthy, Binh Nguyen, Manish Sethi, Gari Singh, Keith Smith, Alessandro Sorniotti, Chrysoula Stathakopoulou, Marko Vukolic, Sharon Weed Cocco, Jason Yellick

上述内容来源于同行评审的“Hyperledger Fabric:许可区块链的分布式操作系统”—Elli Androulaki、Artem Barger、Vita Bortnikov、Christian Cachin、Konstantinos Christidis、Angelo de Caro、David Enyert、Christopher Ferris、Gennady Laventman、Yacov Manevich,srinivasan muralidharan、chet murthy、binh nguyen、manish sethi、gari singh、keith smith、alessandro sorniotti、chrysoula stathakopoulou、marko vukolic、sharon weed cocco、Jason yellick

你可能感兴趣的:(区块链)