HyperLedger Fabric开发(一)-----Fabric词汇表

区块链相关的词汇:

HyperLedger Fabric:一个基于模块化的分布式账本解决方案平台。

区块链

区块链网络的核心是一个分布式账本,记录所有在网络上发生的交易。在区块链中,账本会被所有网络中的参与者复制到本地,且每个参与者都在对账本进行维护协作,因此它是完全去中心化的。除了去中心化,还使用了加密技术,每个区块都有唯一的Hash,即便是通过网络将账本复制到本地应用服务器中,也无法篡改其中的内容。这种不可篡改的特性使得信息具备可追溯的能力,因为所有的参与者在提交信息后都无法改变,都会在区块中留存记录,这也是区块链有时被称作证明系统的原因。为了支持信息更新的一致性,并支持完整的账本功能(包括但不限于交易、查询),区块链网络通过使用智能合约来约束和规范对账本的访问和变更。

背书

背书就是在票据背面签字以表达对信用的加强和支持的意思。区块链中的背书,可以简单的理解为验证交易并声明此交易合法(或不合法)的链中节点。而所谓的背书策略是用来指导背书节点进行正确的背书,背书节点通过背书策略来确定一个交易是否被正确的背书。当一个节点(peer)接收到一个交易时,它会调用与该交易的Chaincode(验证系统)相关的VSCC作为交易确认流程的一部分来确定交易的有效性。显而易见,背书可以理解为让别人提供信誉以及影响力进行支持,让被endorsed(背书)人或者事物提升可信度,更加具有公信力。

共享账本(Shared Ledger)

HyperLedger Fabric的账本系统有两个组件:世界状态(world state)和事务日志(transaction log)。每个参与者都将分类账的副本分配给所属的每个HyperLedger fabric 网络。HyperLedger fabric中的网络参与者都有一份账本的副本,

智能合约(Smart Contracts)

HyperLedger fabric 的智能合约是用Chaincode来实现的,并且被区块链外部应用程序所调用,以此来与账本交互的。在大多数情况下,Chaincode仅与账本的数据库组件(世界状态)(例如查询)交互,而不与交易日志交互。
Anchor Peer - 锚节点
锚节点是通道中能被所有对等节点探测、并能与之进行通信的一种对等节点。通道中的每个成员都有一个(或多个,以防单点故障)锚节点,允许属于不同成员身份的节点来发现通道中存在的其他节点。

Block - 区块
在一个通道上,区块是一组有序交易的集合。区块往往通过密码学手段(Hash值)连接到前导区块。
区块是一组有序的交易集合,在通道中经过加密(哈希加密)后与前序区块连接。

Chain - 链
chain就是block之间以hash连接为结构的交易日志。peer从order service接收交易block,并根据背书策略和并发冲突标记block上的交易是否生效,然后将该block追加到peer文件系统中的hash chain上。

Chaincode - 链码
链码是一个运行在账本上的软件,它可以对资产进行编码,其中的交易指令(或者叫业务逻辑)也可以用来修改资产。

Channel - 通道
通道是构建在“Fabric”网络上的私有区块链,实现了数据的隔离和保密。通道特定的账本在通道中是与所有对等点共享的,并且交易方必须通过该通道的正确验证才能与账本进行交互。通道是由一个“配置块”来定义的。

Commitment - 确认节点
一个通道中的每个节点都会验证至交易的有序区块,然后将区块提交(写或追加)至该通道上账本的每个副本。对等节点也会标记每个区块中的每笔交易的状态是有效或者无效。

Concurrency Control Version Check - 并发控制版本检查(CCVC)
CCVC是保持通道中各对等节点间状态同步的一种方法。对等节点并行的执行交易,在交易提交至账本之前,对等节点会检查交易在执行期间读到的数据是否被修改。如果读取的数据在执行和提交之间被改变,就会引发CCVC冲突,该交易就会在账本中被标记为无效,而且值不会更新到状态数据库中。

Configuration Block - 配置区块
包含为系统链(排序服务)或者通道定义成员和策略的配置数据。对某个通道或每个网络的配置修改(比如,成员离开或加入)都将导致生成一个新的配置区块并追加到适当的链上。这个配置区块会包含创始区块的内容加上增量。

Consensus - 共识
共识是贯穿整个交易流程的广义术语,其用于产生一个对于排序的同意书和确认模块构成区块的交易集的正确性。

Current State - 当前状态
ledger的Current State表示其chain交易log中所有key的最新值。peer会将处理过的block中的每个交易对应的修改value提交到ledger的Current State,由于Current State表示channel所知的所有最新的k-v,所以Current State也被称为World State。Chaincode执行交易的proposal就是针对的Current State。

Dynamic Membership - 动态成员
Fabric支持动态添加-移除members、peers和ordering服务节点,而不会影响整个网络的操作性。当业务关系调整或因各种原因添加-移除实体时,Dynamic Membership至关重要。

Endorsement - 背书
Endorsement是指一个peer执行一个交易并返回YES-NO给生成交易proposal的client app的过程。Chaincode具有相应的Endorsement Policies,其中指定了endorsing peer。

Endorsement Policies - 背书策略
Endorsement Policies定义了依赖于特定Chaincode执行交易的channel上的peer和响应结果(endorsements)的必要组合条件(即返回Yes或No的条件)。Endorsement Policy可指定对于某一Chaincode,可以对于交易背书的最小背书节点数或者最小背书节点百分比。背书策略由背书节点基于应用程序和对抵御不良行为的期望水平来组织管理。在install和instantiate Chaincode(deploy tx)时需要指定背书策略。

Fabric-ca 证书节点
Fabric-ca是默认的证书管理组件,它向网络成员及其用户颁发基于PKI的证书。CA为每个成员颁发一个根证书(rootCert),为每个授权用户颁发一个注册证书(eCert),为每个注册证书颁发大量交易证书(tCerts)。

Genesis Block - 创世区块
Genesis Block是初始化区块链网络或channel的配置区块,也是链上的第一个区块。

Gossip protocol - Gossip协议
Gossip数据传输协议有三项功能:
1.管理peer发现和channel的成员;
2.channel上的所有peer间广播账本数据;
3.channel上的所有peer间同步账本数据。

Initialize - 初始化
一个初始化Chaincode程序的方法。

Install - 安装
将Chaincode放到peer的文件系统的过程

Instantiate - 实例化
启动Chaincode容器的过程

Incoke - 调用
用于调用Chaincode内的函数。Chaincode invoke就是一个交易proposal,然后执行模块化的流程(背书、共识、验证、提交)。Invoke的结构就是一个函数和一个参数数组。

Leading Peer - 主导节点
每一个member在其订阅的channel上可以拥有多个peer,其中每个peer会作为channel的leading peer代表该member与ordering service通信。ordering service将block传递给leading peer,该peer再将此block分发给同一member下的其他peer。

Ledger - 账本
Ledger是个channel的chain和由channel中每个peer维护的数据库。

Member - 成员
拥有网络唯一根证书的合法独立实体。像peer节点和app client这样的网络组件会链接到一个Member。

Membership Service Provider - MSP
MSP是指为client和peer提供证书的系统抽象组件。Client用证书来认证他们的交易;peer用证书认证其交易背书。该接口与系统的交易处理组件密切相关,旨在使已定义的成员身份服务组件以这种方式顺利插入而不会修改系统的交易处理组价的核心。

Membership Services - 成员服务
成员服务在许可的区块链网络上认证、授权和管理身份。在peer和order中运行的成员服务的代码都会认证和授权区块链操作,它是基于PKI的MSP实现。
fabric-ca组件实现了成员服务,来管理身份,特别的,它处理ECert和TCert的颁发和报销。ECert是长期的身份凭证;TCert是短期的身份凭证,是匿名和不可链接的。

Ordering Service - 排序服务或共识服务
将交易排序放入block的节点的集合。ordering service独立于peer流程之外,并以先到先得的方式为网络上所有的channel作交易排序。ordering service支持可插拔实现,目前默认solo(单节点共识)、kafka(分布式队列)和SBFT(简单拜占庭容错)。ordering service是整个网络的公用的binding,包含与每个Member相关的加密材料。

Peer - 节点
一个网路实体,维护ledger并运行Chaincode容器来对ledger执行read和write操作。peer由Member拥有和维护。

Policy - 策略
有背书策略,校验策略,区块提交策略,Chaincode管理策略和网络通道管理策略。

Proposal - 提案
一种针对channel种某peer的背书请求。每个proposal要么Chaincode instantiate要么是Chaincode invoke。

Query - 查询
对于current state中某个key的value的查询请求。

Software Development Kit - SDK
SDK为开发人员提供了一个结构化的库环境,用于编写和测试链码应用程序。SDK完全可以通过标准接口实现配置和扩展、像签名的加密算法、日志框架和state存储这样的组件都可以轻松地实现替换。SDK API使用gRPC进行交易处理,成员服务、节点遍历以及事件处理都是据此与fabric通信。目前SDK支持Node.js、java和Python。

State DataBase - stateDB
为了从Chaincode中高效的读写,Current state数据存储在stateDB中,包括levelDB和couchDB。

Transaction - 交易
Chaincode的invoke或instantiate操作。Incoke是从ledger中请求read-write set;Instantiate是请求在peer上启动Chaincode容器。

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