You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Corda的StartedMockNode添加额外LegalIdentity或Party身份?

为StartedMockNode添加额外LegalIdentity的实现方法

场景1:节点初始化时预配置多个身份

适合提前知晓节点需要多身份的测试场景,无需后续动态修改:

  • 借助MockNodeParameters配置类传入额外身份列表,参考代码:
// 生成测试用的额外身份,MockNetwork自带工具方法可直接调用
PartyAndCertificate extraIdentity = network.getTestIdentity(new X500Name("CN=SecondIdentity,O=TestOrg,L=Beijing,C=CN"));
// 构建节点参数
MockNodeParameters nodeParams = new MockNodeParameters()
        .withAdditionalIdentities(Collections.singletonList(extraIdentity));
// 初始化节点
StartedMockNode nodeC = network.createPartyNode(nodeParams);

初始化完成后节点默认会携带原有自动生成的身份+你传入的所有额外身份

场景2:已初始化节点动态添加身份

针对已经创建完成的StartedMockNode,按照以下步骤操作即可添加新身份:

  • 步骤1:生成合法的带证书身份凭证
// 生成新的密钥对
KeyPair newKey = network.getKeyGenerationService().generateKeyPair();
// 生成符合Corda身份规范的PartyAndCertificate实例
PartyAndCertificate newLegalId = network.getNetworkParameters()
        .getIdentityService()
        .generatePartyAndCertificate(newKey, new X500Name("CN=DynamicIdentity,O=TestOrg,L=Shanghai,C=CN"));
  • 步骤2:将新身份注册到节点本地身份服务
nodeC.getServices().getIdentityService().verifyAndRegisterIdentity(newLegalId);
  • 步骤3:同步身份到模拟网络(必填)
// 更新网络映射缓存,确保其他测试节点能识别该节点的新身份
network.getNetworkMapCache().addNode(nodeC.getInfo());

验证方式:调用nodeC.getInfo().getLegalIdentities()即可查看该节点当前绑定的所有LegalIdentity,确认添加结果。

内容的提问来源于stack exchange,提问作者Leonard Saers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:54:01