corda - Flow 挂在 Corda 中收集交易对手签名处
问题描述
我正在尝试在两个 AWS 实例中运行 Example Cordapp。一审公证人和甲方,二审乙方和丙方。
我按照这里的步骤, Corda节点:如何将两台独立的电脑连接为两个节点?
在 conf 文件中,
- 公证人和甲方 - 我已编辑 P2P 地址以反映实例 1 的 PrivateIP
- PartyB 和 PartyC - 我已经编辑了 P2P 地址以反映实例 2 的 PrivateIP
使用上面的 conf 文件,我在实例 1 中运行 Network Bootstrapper jar,并将文件夹 PartyB 和 PartyC 复制到实例 2,并在相应的实例中分别启动 Notary 和 Party 1。
所有节点都成功启动,当我尝试执行从 PartA(在实例 1 中)到 PartyC(在 Instance2 中)的 IOU 流时,它在收集交易对手签名步骤中暂停,没有继续进行。以下是我在 PartyA 的控制台中看到的内容,
Fri Nov 30 08:39:10 UTC 2018>>> flow start ExampleFlow$Initiator iouValue: 50, otherParty: "O=PartyC,L=Paris,C=FR"
Verifying contract constraints.
Signing transaction with our private key.
Gathering the counterparty's signature.
Collecting signatures from counterparties. (hanging here and not proceeding further)
当我试图查看 NodeA 中的日志信息时,它显示如下。,
[INFO ] 2018-11-30T08:39:10,077Z [main] messaging.RPCServer.start - Starting RPC server with configuration RPCServerConfiguration(rpcThreadPoolSize=4, reapInterval=PT1S, deduplicationCacheExpiry=PT24H) {}
[INFO ] 2018-11-30T08:39:10,115Z [Thread-0 (ActiveMQ-client-global-threads)] bridging.BridgeControlListener.processControlMessage - Received bridge control message Create(nodeIdentity=DLHBP432vnpLNpCNwGQJjx3hd6RDz4LiYxmZJo757W8Hbw, bridgeInfo=BridgeEntry(queueName=internal.peers.DL9tRWQ867M3tni7KRqkXEJKPrkyW5KVj6fyRyDBHGaGA6, targets=[[2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013], legalNames=[O=PartyC, L=Paris, C=FR])) {}
[INFO ] 2018-11-30T08:39:11,072Z [nioEventLoopGroup-2-2] netty.AMQPClient.nextTarget - Retry connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
[INFO ] 2018-11-30T08:39:12,171Z [nioEventLoopGroup-2-3] netty.AMQPClient.operationComplete - Failed to connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
[INFO ] 2018-11-30T08:39:14,172Z [nioEventLoopGroup-2-4] netty.AMQPClient.nextTarget - Retry connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
[INFO ] 2018-11-30T08:39:15,175Z [nioEventLoopGroup-2-1] netty.AMQPClient.operationComplete - Failed to connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
我可以在具有私有 IP 的实例之间 ping 通,没有任何问题。有人可以帮我在哪里丢失东西。
提前致谢。
解决方案
此问题是由节点计算机上的防火墙导致的,该防火墙阻止节点的消息到达对方节点。
你需要打开:
- 节点 P2P 地址的出站端口
- 其他节点 P2P 地址的入站端口
在大型网络上,这可能意味着打开许多入站端口,这可能是某些公司安全策略的问题。Corda 防火墙解决了这个问题。
推荐阅读
- javascript - 拆分文本制表符分隔文件并添加到 Javascript 中的数组
- python - 如何使用正则表达式进行匹配和提取 - Python
- visual-studio-code - Visual Studio Code 使用的所有配置文件是什么?
- go - 我想获得任何结构字段值,我该怎么做?
- r - dplyr - 在同一个管道中变异和计数
- javascript - 为什么这不是一个函数?
- android - 无法使用 Moshi 在 Retrofit 中为类创建 @Body 转换器
- go - 如何在 Cloud Run 上使用 Stackdriver 日志记录
- python-3.x - 使用 azure-storage-blob 或 azure-storage 上传和删除 Azure 存储 Blob
- stm32 - STM32F373 SDADC Hal - 为什么在单端零参考模式下对 HAL_SDADC_Start_DMA 中的 pData 使用 uint32_t 类型?