术语很重要,以便全部Hyperledger Fabric用户和开发人员都赞成每一个特定术语的含义,例如,什么是智能合约。文档将根据须要引用术语表,但若是你愿意,能够随意阅读整个内容;这颇有启发性!数据库
由八卦使用以确保不一样组织中的对等点彼此了解。segmentfault
当提交包含对锚点更新的配置块时,对等点会联系到锚点并从中了解锚点已知的全部对等点。一旦来自每一个组织的至少一个对等点已经联系了锚点,锚点就会了解通道中的每一个对等点。因为八卦通信是连续的,而且由于对等点老是要求被告知他们不知道的任何对等点的存在,能够为通道创建共同的成员资格观点。网络
例如,假设咱们在通道中有三个组织 — A、B、C和一个单独的为组织C定义的锚点 - peer0.orgC,当peer1.orgA(来自组织A)联系peer0.orgC时,它会告诉它关于peer0.orgA,并且,稍后peer1.orgB联系peer0.orgC,后者会告诉前者关于peer0.orgA。从那时起,组织A和B将开始直接交换成员资格信息,而无需peer0.orgC的任何帮助。并发
因为跨组织的通讯依赖于八卦以便工做,所以必须在通道配置中定义至少一个锚点,强烈建议每一个组织都提供本身的一组锚点,以实现高可用性和冗余。工具
ACL或访问控制列表,将对特定对等点资源(例如系统链码API或事件服务)的访问权限关联到策略(指定须要多少和什么类型的组织或角色类型)。ACL是通道配置的一部分,所以它存在于通道的配置块中,并可以使用标准配置更新机制进行更新。区块链
ACL被格式化为键值对列表,其中键标识咱们但愿控制其访问权限的资源,而且该值标识容许访问它的通道策略(组)。例如,lscc/GetDeploymentSpec: /Channel/Application/Readers
定义对生命周期链码GetDeploymentSpec
API(资源)的访问可由知足/Channel/Application/Readers
策略的身份访问。开发工具
configtx.yaml
文件中提供了一组默认ACL,configtxgen使用该文件来构建通道配置。能够在configtx.yaml
的顶级“Application”部分中设置默认值,也能够在“Profiles”部分中按每一个配置文件覆盖默认值。加密
区块包含一组有序的交易,它以加密方式连接到前一个区块,而后连接到后续区块,这种区块链中的第一个区块称为创世区块,区块由排序系统建立,并由对等点验证。spa
区块B1连接到区块B0,区块B2连接到区块B1。日志
分类账的链是一个交易日志,结构为哈希连接的交易区块,对等点从排序服务接收交易区块,根据承认策略和并发冲突将区块的交易标记为有效或无效,并将区块附加到对等点的文件系统上的哈希链。
区块链B包含区块0,1,2。
请参阅智能合约。
通道是私有区块链覆盖,容许数据隔离和机密性,一个特定于通道的分类账在通道中的对等点之间共享,而且交易方必须正确地认证到通道,以便与其进行交互,通道由配置区块定义。
通道C链接应用程序A1,对等点P2和排序服务O1。
通道上的每一个对等点验证有序的交易区块,而后将区块提交(写入/附加)到其通道分类帐的副本,对等点还将每一个区块中的每一个交易标记为有效或无效。
并发控制版本检查是一种跨通道上的对等点保持状态同步的方法。对等点并行执行交易,在提交到分类帐以前,对等点检查执行时读取的数据未更改,若是为交易读取的数据在执行时间和提交时间之间发生了变化,而后发生了并发控制版本检查违规,而且交易在分类账上标记为无效,而且状态数据库中的值不会更新。
包含定义系统链(排序服务)或通道的成员和策略的配置数据,对通道或整个网络的任何配置修改(例如,离开或加入的成员)将致使将新配置区块附加到适当的链,该区块将包含创世块的内容加上delta。
整个交易流的更普遍的术语,用于生成顺序协议并确认构成区块的交易集合的正确性。
联盟是区块链网络上的非定序组织的集合,这些是组建和加入通道以及拥有对等点的组织,虽然区块链网络能够有多个联盟,大多数区块链网络只有一个联盟。在通道建立时,添加到通道的全部组织必须是联盟的一部分,可是,未在联盟中定义的组织可能会添加到现有通道。
请参阅世界状态
Hyperledger Fabric支持添加/删除成员、对等点和排序服务节点,而不会影响整个网络的可操做性,当业务关系调整而且出于各类缘由须要添加/删除实体时,动态成员资格相当重要。
请参阅组织。
一个已定义的将交易排序到一个块中的节点集合,排序服务独立于对等点进程,并以先到先服务的方式为网络上的全部通道排序交易,排序服务旨在支持超越开箱即用的SOLO和Kafka变种的可插拔实现,排序服务是整个网络的通用绑定;它包含与每一个成员关联的加密身份资料。
维护分类账并运行链码容器以便对分类账执行读/写操做的网络实体,对等点由成员拥有和维护。
一个对等点,‘P’。
策略是由数字身份的属性组成的表达式,例如:Org1.Peer OR Org2.Peer
。它们用于限制对区块链网络上的资源的访问,例如,他们决定谁能够读取或写入到通道,或谁能够经过ACL使用特定的链码API,在引导排序服务或建立通道以前,能够在configtx.yaml
中定义策略,或者能够在通道上实例化链码时指定它们,示例configtx.yaml
中提供了一组默认策略,适用于大多数网络。
针对通道上特定对等点的承认请求,每一个提案都是实例化或调用(读/写)请求。
智能合约就是代码 - 由区块链网络外部的客户端应用程序调用 - 管理对世界状态中一组键值对的访问和修改。在Hyperledger Fabric中,智能合约被称为链码,智能合约链码安装在对等节点上并实例化为一个或多个通道。
当前状态数据存储在状态数据库中,用于从链码进行有效的读取和查询,支持的数据库包括levelDB和couchDB。
调用或实例化提交给排序、验证和提交的结果。调用是从分类账读取/写入数据的请求,实例化是一个启动和初始化通道链码的请求。应用程序客户端收集来自承认的对等点的调用或实例化响应,并将结果和承认打包到提交给排序、验证和提交的交易中。
一个交易,'T'。
也被称为“当前状态”,世界状态是HyperLedger Fabric分类帐的一个组件,世界状态表示链交易日志中包含的全部键的最新值,链码针对世界状态数据执行交易提案,由于世界状态提供对这些键的最新值的直接访问,而不是经过遍历整个交易日志来计算它们。每当键的值发生变化时(例如,当汽车的全部权 - “键” - 从一个全部者转移到另外一个全部者 - “值”)或添加新键时,世界状态就会改变(一辆车被创造出来)。所以,世界状态对交易流相当重要,由于必须知道键值对的当前状态才能改变它,对等点将处理块中包含的每一个有效交易的最新值提交到分类账世界状态。
世界状态,'W'。