Corda - 为模拟网络指定应用程序名称

Corda - Specifying an app name for a mock network

如果我使用 MockNetwork 从单元测试调用 flowSession.getCounterpartyFlowInfo(),它 returns FlowInfo(flowVersion=1, appName=<unknown>)

这是我当前的 MockNetwork 配置:

network = MockNetwork(
    MockNetworkParameters(
        cordappsForAllNodes = listOf(
            TestCordapp.findCordapp("com.example.contract"),
            TestCordapp.findCordapp("com.example.workflow")
        ),
        networkParameters = testNetworkParameters(
            minimumPlatformVersion = 5
        )
    )
)

有没有办法在模拟网络中指定应用程序 运行 的 appName

我认为没有相应的配置。 appName 是通过删除“.jar”扩展名从 jar 文件名派生的。

对于 MockNode,扫描包并加载 类。

这是它的推导方式:

val Class<out FlowLogic<*>>.appName: String
get() {
    val jarFile = location.toPath()
    return if (jarFile.isRegularFile() && jarFile.toString().endsWith(".jar")) {
        jarFile.fileName.toString().removeSuffix(".jar")
    } else {
        "<unknown>"
    }
}