首页 > 解决方案 > 在 Corda 网络地图中 - 如何以及在哪里调用端点?

问题描述

在Corda 文档的https://docs.corda.net/network-map.html#http-network-map-protocol中。提到,启动时的每个节点都会将其签名的节点信息发布到服务器,这是通过 Rest 端点“/network-map/publish”实现的。有人可以帮助我了解 Corda 何时以及哪个部分击中它吗?那怎么称呼?我应该在哪里了解这一点?

我看到了 Corda 代码 - https://github.com/corda/corda/blob/24fa695ca0ef72fa851abc5b1630d722f32577ec/node/src/main/kotlin/net/corda/node/services/network/NetworkMapClient.kt它具有发布功能。这是照顾它的地方吗?如果是这样,这个函数是如何调用的?

标签: corda

解决方案


当节点启动时,它会调用AbstractNode.start(). 在里面start(),我们看到了这个调用:

val (keyPairs, nodeInfoAndSigned, myNotaryIdentity) = database.transaction {
    updateNodeInfo(identity, identityKeyPair, publish = true)
}

然后在里面AbstractNode.updateNodeInfo(),我们看到:

if (publish && networkMapClient != null) {
    tryPublishNodeInfoAsync(nodeInfoAndSigned.signed, networkMapClient)
}

最后在里面AbstractNode.tryPublishNodeInfoAsync(),我们看到:

networkMapClient.publish(signedNodeInfo)

这是将节点信息发布到网络地图的方法。


推荐阅读