本文主要对Hyperledger Fabric中的英文资料进行翻译和整理,原英文文档地址为:https://github.com/hyperledger/fabric/blob/release-1.2/docs/source/peers/peers.md
对等体(peers)
1.1对等体
区块链网络主要由一组对等节点(或简称为对等节点)组成。对等体是网络的基本要素,因为他们主持分类账和智能合约。回想一下,分类账可以不可避免地记录智能合约(或链码)生成的所有交易。智能合约和分类帐分别用于封装网络中的共享进程和共享信息。对等体的这些方面使他们成为了解Hyperledger Fabric网络的良好起点。
![图1-1含有三个对等体节点的区块链网络](https://i-blog.csdnimg.cn/blog_migrate/55ce0aa7617b0bc9571ab882abff58cd.png)
注意:图中的上下位置,表示访问顺序,在每个对等体上,智能合约S1可以访问分类账L1
区块链网络的其他元素当然很重要:分类帐和智能合约,订购者(orders),政策(policies),渠道(channels),应用程序(applications),组织(organizations),身份(identities)和成员资格(membership),您可以在它们的专门章节中阅读更多相关信息。本节重点介绍对等体及其与Hyperledger Fabric网络中其他元素的关系。
区块链网络由对等节点组成,每个对等节点可以保存分类账的副本和智能合约的副本。如图1-1所示,网络N由对等体P1,P2和P3组成,每个对等体保持它们自己的分布式分类帐L1的实例。 P1,P2和P3使用相同的链码S1来访问其分布式分类帐的副本。
对等体(peers)可以被创建,启动,停止,重新配置甚至被删除。它们公开了一组API,使管理员和应用程序能够与他们提供的服务进行交互。我们将在本节中详细了解这些服务。
术语:Hyperledger Fabric采用一种称为链码(chaincode)的技术概念,实现智能合约,它只是一段用支持的编程语言编写的,访问分类账的代码。在本主题中,我们通常使用术语链代码,但如果您更习惯智能合约,请随意将其作为智能合约阅读。
1.2分类账(Ledgers)和链码(Chaincode)
让我们更详细地看一下一个对等体(peer)。我们可以看到这个对等体,可以托管(host)分类帐和链代码。更准确地说,对等体实际上托管分类帐和链代码的实例。请注意,这在Fabric网络中,有意的提供了冗余,从而为了避免单点故障。我们将在本节后面详细了解区块链网络的分布式和去中心化。
![](https://i-blog.csdnimg.cn/blog_migrate/5472c63062ab53f2c089dffef46bc6fc.png)
对等体托管分类帐实例和链代码实例。如图1-2所示,P1承载分类帐L1的实例和链代码S1的实例。在单个对等体上可以托管多个分类帐和链代码。
由于一个对等体是分类帐和链代码的主机,所以如果应用程序(application)和管理员(administrator)想访问这些资源,必须与对等体进行交互。这就是为什么对等体(peers)被认为是Hyperledger Fabric网络最基本的构建块,当一个对等体首次被创建的时候,它既没有分类账,也没有链码。接下来我们将看到如何在对等体上创建分类帐(Ledger)以及如何安装链代码(chaincode)。
1.2.1多个分类账(Multiple Ledgers)
对等体能够托管多个分类帐,这在系统的灵活设计上很有用。最简单的配置就是让单个对等体管理单个分类帐,但对于对等体来说,当需要的时候,一个对等体托管两个或者两个以上也是绝对合适的。
![](https://i-blog.csdnimg.cn/blog_migrate/76086c66966c44f9860bf9f0603d7efb.png)
托管多个分类帐的对等体。对等体托管一个或多个分类帐,每个分类帐具有零个或多个适用于它们的链代码。如图1-3所示,我们可以看到对等体P1托管分类账L1和L2。使用链码S1访问分类帐L1。另一方面,可以使用链码S1和S2访问分类账 L2。
尽管对等体