如何查看您连接的网络地图?

时间:2018-02-06 14:55:44

标签: networking corda

我使用cordapp示例设置了三个节点。这三个节点位于单独的机器上。我试图连接三个,但找不到合适的测试,将证明所有三个节点都连接。

发布一个 主要问题是我无法证明partyA节点已连接到正确的网络映射。 (在这一点的背面,如果聚会节点未连接到网络映射,是否会出现测试失败? - 这将帮助我证明两个节点(网络映射和聚会)是最小连接的。)

第2期 此外,我试图从partyA向partyB发送交易。 我得到的错误是

No matching constructor found:
- [int, Party]: Could not parse as a command: Could not find a Party with name C=US,L=New York,O=PartyB
 at [Source: N/A; line: -1, column: -1]

我改变了什么 唯一的变化是partyA / partyB的node.conf文件,它们包含以下行:

networkMapService {
    address="<controller-ip>:10002"
    legalName="O=Controller,L=London,C=GB"
}

更新 通过这里的文档阅读我发现If null, or missing the node is declaring itself as the NetworkMapService host. - 暗示问题一的解决方案,但是我仍然无法找到证明节点已经提交到网络地图的方法;无论是本身还是其他。

1 个答案:

答案 0 :(得分:0)

检查您是否连接到正确的网络映射的一种方法是编写连接到节点的RPC客户端并调用CordaRPCOps.wellKnownPartyFromX500Name以检查它是否与其他一方在同一网络映射中。例如:

val partyBX500Name = CordaX500Name.parse(partyBName)
val partyB = rpcProxy.wellKnownPartyFromX500Name(partyBX500Name)

您可以在此处查看示例:https://github.com/joeldudleyr3/ping-pong/blob/master/src/main/kotlin/com/pingpong/Client.kt

或者,您可以按如下方式打印网络上所有节点的名称:

val networkMapSnapshot = proxy.networkMapSnapshot()
val nodeNames = networkMapSnapshot
                    .flatMap { it.legalIdentities }
                    .map { it.name }