Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

My Blog

从此烟雨落金城,一人撑伞两人行。

区块链网络

概念上描述组织以区块链网络的形式进行合作。

概念:区块链网络是一个为应用程序提供账本及智能合约服务的技术基础设施。

多个组织作为一个联盟形成一个网络,权限是由网络最初配置的时候联盟定义的规则实现。

实例网络

network.structure

R4 被分配作为网络的初始者,它有权设置网络的初始版本。

网络是根据在网络配置 NC4 中指定的规则来进行管理

整个网络由组织 R1 和 R4 管理。

通道 C1 是根据在通道配置 CC1 中指定的规则来管理

排序服务 O4 作为这个网络 N 的一个网络管理员节点,并且使用系统通道。

每个组织都有一个首选的 CA。

创建网络

network.creation

排序服务 O4 由一个单独的节点组成,是根据一个网络配置 NC4 来进行配置

证书颁发机构 CA4 被用来向管理员和组织 R4 的网络节点分配身份信息。

在定义 网络 N 的时候,第一件事情就是定义一个 排序服务

证书颁发机构

CA4,它会被用来给管理者和网络节点颁发证书。

CA 颁发的证书也可以用来为交易提供签名,来表明一个组织对交易的结果进行背书。

每个组织会有一个 CA。

成员服务提供者

将证书同成员组织进行匹配。

NC4使用MSP来分配在网络资源上的特殊权利。

个人理解:

CA用来证明某一个成员属于那个组织,属于组织层面。

MSP表明某个成员在组织里的定位(如组织内的权限等),属于成员(组织内的成员)层面

X.509 证书被用于客户端应用的交易提案和智能合约的交易响应,来对交易进行数字签名。

添加网络管理员

network.admins

使组织 R1 也成为了管理员。

R1 和 R4 在网络配置中便具有了相同的权限。

证书颁发机构 CA1 也被添加进来了,他用来标识 R1 组织的用户。

定义联盟

network.consortium

定义联盟 X1

联盟的定义被存储在了网络配置 NC4

为联盟创建通道

network.channel

联盟 X1 为 R1 和 R2 创建的的通道 C1。

通道通过通道配置 CC1 来进行管理

通道 C1 为联盟 X1 提供了一个私有的通信机制。

CC1 包含了赋予 R1 和 R2 在通道 C1 上的权利的规则。

被排序服务使用的特殊的系统通道

节点和账本

新增了两个组件,称作 Peer 节点 P1 和账本实例 L1。

network.peersledger

物理上 P1 会存储账本 L1 的副本。

P1 和 O4 可以使用通道 C1 来进行通信。

Peer 节点是存储区块链账本副本的网络组件。

L1 会被物理地存储在 P1 上,但是 逻辑上 是存储在通道 C1 上。

CA1 颁发的 X.509 身份信息,它将 P1 和组织 R1 关联了起来。

使用排序 O4将P1 加入通道C1。

通道配置 CC1 来决定 P1 在这个通道中的权限。

个人理解:

CA1将P1和R1连接起来。O4将P1和C1连接起来。

CA1:信息验证,CC1权限控制。

app和chaincode

network.appsmartcontract

智能合约 S5 被安装在了 P1 上。

组织 R1 中的客户端应用 A1 可以通过 Peer 节点 P1 使用 S5 来访问账本。

应用 A1 能够使用通道 C1 来连接指定的网络资源。

所有的访问都是由一个称为智能合约链码 S5 的特殊程序来管理的。

智能合约被用来帮助生成被分发到网络中每个节点的交易。

智能合约必须被安装,然后在通道中被定义

作用:智能合约定义了交易逻辑,它控制了在世界状态中包含的一个业务对象的生命周期。

智能合约—>打包—>链码

链码部署到一个区块链网络中。

智能合约:管理交易。 链码:管理着智能合约应该如何被打包部署。

安装链码包

组织 R1 中的管理员把S5安装到节点 P1 上。

定义链码

链码安装在组织的 Peer 节点上。在一个通道范围内被管理和维护的。

每个组织需要批准一个链码定义,一系列参数来定义在一个通道中链码应该被如何使用。

管理员 R1 必须要批准 S5 的链码定义。

需要有效数量的组织来批准一个链码的定义(默认为大多数)。

R1 的管理员->提交 S5 的链码定义->通道 C1

定义提交后,S5 就可以被客户端应用 A1 调用了。

实际上是定义并提交了智能合约的接口到通道,而不是安装了智能合约的实现

安装智能合约展示了我们是如何将它物理地存储在 Peer 节点上,实例化智能合约展示了我们是如何将它逻辑地存储在通道中。

背书策略

链码定义提供的信息中最重要的部分就是背书策略

它描述了在交易被其他的组织接受并存储在他们的账本副本上之前,哪些组织必须要同意此交易。

只有当 R1 和 R2 对交易进行背书之后,交易才能够被接受并存储到账本 L1 中。

调用智能合约

客户端应用是通过发送交易提案给智能合约背书策略所指定的 Peer 的节点方式来调用智能合约的。

  1. 交易的提案会作为智能合约的输入
  2. 智能合约会使用它来生成一个背书交易响应
  3. Peer 节点返回给客户端应用

完成网络

将组织 R2 的基础设施添加到网络中。

network.grow

生成并接受交易

Peer 节点

  1. 存储智能合约; 节点只有在安装了智能合约之后才能够运行
  2. 不存; 可以通过连接到通道来获取一个智能合约的接口信息。

带有智能合约的 Peer 节点:帮助生成交易。

所有的 Peer 节点:可以验证接受或者拒绝交易存入他们的账本 L1 的副本中。

只有安装了智能合约的 Peer 节点才能够参与交易背书的流程。

Peer 节点的类型

  • 提交节点:每个 Peer 节点都是一个提交节点。接收生成的区块,提交到 Peer 节点的账本副本中。
  • 背书节点:安装了智能合约的 Peer 节点都可以作为一个背书节点。智能合约必须要被客户端应用使用,来生成一个被签名的交易响应。

Peer 节点的角色

  • 主节点:负责将交易从排序节点分发到该组织中其他的提交节点。
  • 锚节点:锚节点能够帮助很多不同的跨组织间的通信。

一般都会有一个主节点,至少一个背书节点和一个提交节点。

gossip 协议,可以容纳大量的 Peer 节点来支持这样的拓扑。

评论