Corda 节点在启动并首次加入网络时执行的步骤顺序是什么?

What sequence of steps does a Corda node perform when it starts up and joins a network for the first time?

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:自行提供证书

无论哪种情况,您的证书都必须满足 permissioning docs. You can use X509Utilities to create the certs. See X509UtilitiesTest.kt 示例中规定的要求。

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

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

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

  • 节点下载网络参数
  • 节点下载网络地图
  • 对于网络映射中的每个nodeInfo哈希,节点下载对应的nodeInfo并将其添加到节点的本地缓存