Corda-在单独的进程上运行内存中节点不起作用



在我的IntelliJ项目中,我有两个模块,它们是CorDapps。我还有一个运行配置

  • 运行参与者 A CorDapp
  • 运行参与者 B CorDapp

运行其中任何一个都会在内存节点上运行 CorDapp

package com.demo.cordapp.participant_a
import net.corda.core.utilities.getOrThrow
import net.corda.testing.driver.DriverParameters
import net.corda.testing.driver.driver
import net.corda.testing.node.User
class Application {
companion object {
@JvmStatic
fun main(args: Array<String>) {
val parameters = DriverParameters(
isDebug = true,
waitForAllNodesToFinish = true,
extraCordappPackagesToScan = listOf("com.demo.shared.domain")
)
driver(parameters) {
startNode(
providedName = PARTICIPANT_1_NAME,
rpcUsers = listOf(User("user1", "test", permissions = setOf("ALL")))
).getOrThrow()
}
}
}
}

如果我先启动参与者 A 的节点,它工作正常,但我得到参与者 B 的错误,反之亦然。错误如下

线程"main"中的异常 net.corda.testing.node.internal.ListenProcessDeathException: The 预期在本地主机上侦听的进程:10000 已死亡 状态: 2

我的猜测是存在端口冲突,因为它们都试图使用相同的p2p,rpc,Web端口?

>DriverParameters有一个portAllocation参数,用于确定如何将端口分配给节点。

它默认为PortAllocation.Incremental(10000).对于其中一个节点,您应该将其设置为其他内容(例如PortAllocation.Incremental(20000)(。

如果在调试模式下运行,则还需要修改debugPortAllocation

最新更新