如何在不同物理PC(非虚拟机)上部署Corda节点并完成跨机交易
物理机跨设备部署Corda节点操作及架构可行性说明
跨物理PC(非虚拟机)部署Corda节点核心步骤
- 环境预配置:所有物理机安装对应Corda版本要求的JDK版本(Corda 4.x适配OpenJDK 8u171及以上版本),放通节点用到的p2p、rpc相关端口的防火墙规则,确保不同物理机之间网络三层互通,无访问拦截。纯内网部署保持
detectPublicIp=false即可,跨公网部署需将该参数改为true。 - 节点配置调整:每个节点的
node.conf配置文件中,p2pAddress必须填写节点所在物理机的、其他节点可直接访问的真实IP,不能使用本地回环地址或占位符;同一台物理机部署多个节点时,每个节点的p2pAddress、rpcSettings.address、rpcSettings.adminAddress、sshd.port必须分配不重复的端口,避免端口冲突导致节点启动失败。 - 网络证书同步:所有节点(含Notary节点)必须使用同一套网络根证书、身份证书,证书文件统一放置在每个节点的
certificates目录下,确保节点间可以完成TLS双向认证,识别彼此的合法网络身份。 - 节点启动:进入每个节点的独立工作目录,直接执行
java -jar corda.jar命令启动节点即可,无需依赖虚拟化层。节点全部启动后,可通过RPC接口执行网络地图查询命令,确认所有节点的p2p连接状态正常。
当前部署架构的交易可行性判断
只要完成上述配置修正,你当前的架构完全可以正常完成交易:Corda网络不需要每台物理机都部署Notary,整个网络只要存在至少一个所有参与节点均可正常访问的Notary节点,就能满足交易的公证共识需求,第二台机器不部署Notary不会影响交易流程。
你当前贴出的配置存在几个会直接导致交易/节点启动失败的问题,需要提前修正:
- 配置标注为PartyA节点,但
myLegalName字段填写的是PartyB的身份信息,身份标识不匹配会导致节点网络身份识别异常。 p2pAddress字段目前是占位符[ip address of machine1],未替换为机器1的真实互通IP,会导致第二台物理机上的节点无法找到该节点的p2p通信地址,出现连接超时、交易广播失败的问题。- 同机多节点部署时需逐个核对端口占用,不能让同机的Notary和业务节点复用同一组p2p、rpc、sshd端口,否则会出现端口占用报错。
开发模式(
devMode=true)下不需要额外申请商业网络许可,只要节点间p2p网络连通、证书统一,第二台机器上的节点可以正常调用第一台机器上的Notary完成交易公证流程,不会因为Notary和业务节点不在同一台物理机出现交易失败。
内容的提问来源于stack exchange,提问作者Hasitha Kumarasinghe
相关产品推荐
相关产品推荐

