zuiyingong 2017-03-19
Transactor(事务处理器):区块链网络中的一个节点,它使用SDK或API提交来自客户端的transaction(事务/交易)。
Transaction(事务/交易):为了执行区块链网络上的函数,transactor发出的请求。事务有三种类型:deploy(部署)、invoke(调用)、query(查询),通过fabric的API合约中的chaincode功能来实现。
Ledger(账本):一个由密码连接的块的序列,包含了事务和world state。
World state(世界状态):在事务执行chaincodes时用于存储chaincodes状态的键—值数据库。
Chaincode(链码):为特定类型的网络事务编码规则的嵌入式逻辑。开发者编写chaincode应用程序并将其部署到网络上。终端用户通过与网络节点交互的客户端应用程序调用chaincode。
Validating peer(验证节点):运行共识协议的网络节点,它们验证事务和维护账本。通过验证的节点以块为单位添加到账本上。如果一个事务未能达成共识,那么它将从块中清除,也就不会被写到账本上。一个验证节点(VP)有权部署、调用和查询链码。
Non-validating peer(非验证节点):作为代理的网络节点,将Transactor与验证节点连接起来。非验证节点(NVP)将调用请求转发到其相连的验证节点。它还承载(host)事务流服务器和REST服务。
Consensus(共识/一致性):保持区块链网络事务(部署和调用)顺序的协议。通过实施一致性协议,验证节点们共同工作来批准事务。一致性算法确保共享账本上法定数量的节点对事务顺序达成一致。通过解决此顺序中的任何差异,一致性算法确保所有节点在相同的区块链账本上进行操作。
Permissioned network(权限网络):一个区块链网络,其中每个节点需要在网络上维持一个成员身份,每个节点只能访问其权限允许的事务。
Overview:区块链是一种特定类型的网络,网络成员能够跟踪和交换数字资产。共享账本包含所有网络事务的单个记录,并被复制到所有网络成员。链码应用程序包含自动执行的合约和通过SDK或API与网络交互的客户端应用程序。
两个或多个交易方作为区块链网络的成员,隐含地约定管理交易的智能合约(例如,一旦收到资产“a”就交付资产“b”)。一旦部署到区块链上,合约中的函数就能被调用(即事务可以被触发)。调用由一个领导(leading)节点排序,被广播到验证节点以达成共识。经过验证之后,交易被执行,并以块的形式记录到账本上。然后账本被复制到网络中的所有节点。一旦添加到账本上,交易永远不能更改或删除;撤销或更改已批准(approved)事务的唯一方法是提交后续的事务。
Network:一个区块链网络具有如下特征:
Shared ledger:共享账本是区块链网络上真相的唯一来源,或者说是已验证交易的整个历史记录。节点之间关于共享账本的任何分歧都通过共识协议来解决。账本具有如下属性:
图1是一个区块链网络示例,其特征在于分布式的、去中心化的点对点对等架构,和管理用户角色和权限的认证机构:
图1 授权的区块链网络:数据流和网络访问由成员角色管理
A:一个Blockchain User提交一个事务到Permissioned Blockchain网络。这个事务可以是部署、调用或查询,通过使用SDK的客户端应用程序或直接直接通过REST API发出。
B:监管机构和审计师可以访问可信商业网络,如美国过票市场上的SEC(美国证券委员会)。
C:一个Blockchain Network Operator管理成员权限,例如Regulator(B)注册为“审计者”,将Blockchain User(A)注册为 “客户端”。审计员可以被限制为查询事务,而客户端可以被授权部署,调用和查询某些类型的链码。
D:一个Blockchain Developer编写链码(智能合约),客户端应用程序调用智能合约。Blockchain Developer可以通过REST接口将链码直接部署到网络上。为了在链码中包含来自Traditional Data source的证书(credentials),开发者可以使用带外(out-of-band)连接来访问数据(G)。
E:Blockchain User通过一个对等节点连接到网络上。在处理交易之前,节点从证书颁发机构(CA)检索用户的注册和事务证书。用户拥有这些证书才能在授权网络上进行交易。
F:想要驱动链码的用户需要在Traditional Data source(G)上验证其证书。为了确认用户的授权,链码可以通过Traditional Processing platform 使用带外连接到这些数据。