channel.addPeer() 和 channel.joinPeer() 之间的区别

Difference between channel.addPeer() and channel.joinPeer()

我正在研究 Hyperledger Fabric 和来自 Hyperledger fabric 样本的 运行ning 样本。 我有 运行 个 BYFN 网络 http://hyperledger-fabric.readthedocs.io/en/release-1.0/build_network.html

而且我能够使用 Fabric Java SDK 访问节点、调用和查询链代码。

我使用 channel.addPeer() 函数和初始化将节点添加到频道。

频道 class 中还有一个方法 joinPeer() 。

我想知道channel.addPeer()channel.joinPeer()[=13的区别=]

谢谢

当您加入同行时,您实际上更新了 'channel'。 但是,当您添加对等点时,您基本上只是在更新 'channel object' 的本地副本,并假设对等点已经 'joined'.

如果您查看 'joinPeer' 方法,您会发现它调用了 'addPeer',并且它从随机排序器获取创世块。 另一方面,addPeer 更新一些内部地图。

有了足够的心理体操,它就开始有意义了。

源代码: https://github.com/hyperledger/fabric-sdk-java/blob/f11f197852d4596d2ab6e4c88eb4fe861d3765c4/src/main/java/org/hyperledger/fabric/sdk/Channel.java#L837