首页 > 解决方案 > Corda 节点在首次启动并加入网络时会执行哪些步骤?

问题描述

Corda 节点第一次启动时执行的步骤顺序是什么?

标签: corda

解决方案


从 Corda 3 开始,在第一次启动时,节点会经历四个步骤:

1. 带外获取网络根证书,存放在节点的文件夹下certificates/network-root-truststore.jks

  • 可以使用--network-root-truststore标志覆盖此位置

  • 如果使用门卫,此根证书将用于验证他们提供的证书,以防止中间人攻击

2.设置节点证书

您在这里有两个选择:

  • 2a:通过使用标志启动节点来针对门卫运行节点--initial-registration --network-root-truststore-password <trust store password>(请参阅NodeStartup.registerWithNetwork):

    • 创建一个新的节点密钥库
    • 向证书签名服务提出证书请求
    • 从证书签名服务轮询并下载其证书和相关证书链
    • 根据带外获得的根 CA 证书检查证书链
    • 将证书链和私钥存储在其节点密钥库中
    • 创建信任库
    • 将根证书保存在其信任库中
    • 创建 SSL 密钥库
    • 生成 SSL 密钥对和证书
    • 将其 SSL 私钥和证书存储在其 SSL 密钥库中
  • 2b:自己提供证书

无论哪种情况,您的证书都必须满足许可文档中规定的要求。您可以使用它X509Utilities来创建证书。参见X509UtilitiesTest.kt示例。

3. 将其信息上传到网络地图(参见AbstractNode.updateNodeInfo

  • 节点生成自己的签名节点信息文件
  • 节点上传自己nodeInfo的网络地图

4. 轮询网络以获取网络参数和其他节点(请参阅NetworkMapUpdater.subscribeToNetworkMap):

  • 节点下载网络参数
  • 节点下载网络地图
  • 对于nodeInfonetwork map中的每一个hash,节点都会下载对应的nodeInfo并添加到节点的本地缓存中

推荐阅读