直接来自:使用Fabric的测试网络 — hyperledger-fabricdocs master 文档
进行的本地测试
Hyperledger fabric测试网络
1、进入如下测试文件夹(这里是我的路径,需要修改,最后进入到fabric-samples/test-network并且找到network.sh文件就行)
cd root@ubuntufabrc-virtual-machine:/home/ubuntufabrc/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network#
2、查看帮助文档(看不看都行,看了也不一定能看懂)
cd fabric-samples/test-network ./network.sh -h
3、删除之前创建的网络和节点(这个得删)
./network.sh down
4、建立网络和节点并运行
./network.sh up
5、测试网络包括两个对等节点、一个测试节点,还有一个我不知道是什么的节点(= =),如图,后面三个,peer node start是对等节点、orderer是排序节点
测试网络的组成部分
这里我们需要看一下正在执行的容器,应该能看到network.sh创建的三个节点,也就是上面那个图的节点,但是上面那个图是建立之后自动显示的,这里有指定的显示命令。
docker ps -a
会看到这个,和上面那个是一样的。
原文档解释:与Fabric网络互动的每个节点和用户都必须属于一个网络成员的组织。 Fabric网络成员的所有组织通常称为联盟(consortium)。 测试网络有两个联盟成员,Org1和Org2。 该网络还包括一个维护网络排序服务的排序组织。
联盟链的基本概念就不用说了,
排序节点的意义参考:Fabric v2.0 源码解析——排序节点(Orderer)运行机制fabric orderer节点cactusblossom的博客-CSDN博客
Peer 节点 是任何Fabric网络的基本组件。 对等节点存储区块链账本并在进行交易之前对其进行验证。 同行运行包含业务用于管理区块链账本的智能合约上的业务逻辑。
网络中的每个对等方都必须属于该联盟的成员。 在测试网络里,每个组织各自运营一个对等节点,peer0.org1.example.com
和peer0.org2.example.com
.
原文:每个Fabric网络还包括一个排序服务。 虽然对等节点验证交易并将交易块添加到区块链账本,他们不决定交易顺序或包含他们进入新的区块。 在分布式网络上,对等点可能运行得很远彼此之间没有什么共同点,并且对何时创建事务没有共同的看法。 在交易顺序上达成共识是一个代价高昂的过程,为同伴增加开销。
(我的理解是排序服务用来对交易顺序和对新区块生成进行排序)
排序服务允许对等节点专注于验证交易并将它们提交到账本。 排序节点从客户那里收到认可的交易后,他们就交易顺序达成共识,然后添加区块。 这些区块之后被分配给添加这些区块到账本的对等节点。 排序节点还可以操作定义Fabric网络的功能的系统通道,例如如何制作块以及节点可以使用的Fabric版本。 系统通道定义了哪个组织是该联盟的成员。
该示例网络使用一个单节点Raft排序服务,该服务由排序组织运行。 您可以看到在您机器上正在运行的排序节点orderer.example.com
。 虽然测试网络仅使用单节点排序服务,一个真实的网络将有多个排序节点,由一个或多个多个排序者组织操作。 不同的排序节点将使用Raft共识算法达成跨交易顺序的共识网络。
创建一个通道
接下来我们创建一个通道。
现在我们的机器上正在运行对等节点和排序节点, 我们可以使用脚本创建用于在Org1和Org2之间进行交易的Fabric通道。 通道是特定网络成员之间的专用通信层。通道只能由被邀请加入通道的组织使用,并且对网络的其他成员不可见。 每个通道都有一个单独的区块链账本。被邀请的组织“加入”他们的对等节点来存储其通道账本并验证交易。
这条命令创建了org1和org2之间的名为“mychannel”的通道,如果你想自定义名称的话往后看。
./network.sh createChannel
创建成功如下图
创建自定义名称的通道,或创建多个通道。
./network.sh createChannel -c channel1 ./network.sh createChannel -c channel2
还可以在网络建立的时候直接建立通道
./network.sh up createChannel