Corda - 运行 单独进程上的内存节点不起作用
Corda - running in-memory nodes on separate processes doesn't work
在我的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 的错误,反之亦然。报错如下
Exception in thread "main"
net.corda.testing.node.internal.ListenProcessDeathException: The
process that was expected to listen on localhost:10000 has died with
status: 2
我的猜测是存在端口冲突,因为它们都试图使用相同的 p2p、rpc、web 端口?
DriverParameters
有一个 portAllocation
参数,用于确定如何将端口分配给节点。
默认为PortAllocation.Incremental(10000)
。对于其中一个节点,您应该将其设置为其他内容(例如 PortAllocation.Incremental(20000)
)。
如果你是运行调试模式,你还需要修改debugPortAllocation
.
在我的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 的错误,反之亦然。报错如下
Exception in thread "main" net.corda.testing.node.internal.ListenProcessDeathException: The process that was expected to listen on localhost:10000 has died with status: 2
我的猜测是存在端口冲突,因为它们都试图使用相同的 p2p、rpc、web 端口?
DriverParameters
有一个 portAllocation
参数,用于确定如何将端口分配给节点。
默认为PortAllocation.Incremental(10000)
。对于其中一个节点,您应该将其设置为其他内容(例如 PortAllocation.Incremental(20000)
)。
如果你是运行调试模式,你还需要修改debugPortAllocation
.