CorDapps列表

时间:2018-04-25 01:40:27

标签: corda

我正在尝试确定哪些CorDapps正在节点上运行
此信息在启动期间显示在控制台和日志中Loaded CorDapps : blah-1.1.20, corda-core-2.0.0

有没有一种程序化方法来获取该列表? (RPC?)

1 个答案:

答案 0 :(得分:1)

您可以使用CordaRPCOps.registeredFlows方法检索节点上注册的流列表。

如果需要CorDapp名称列表,可以编写一个从节点的cordapps目录中读取目录的流,如下所示:

@InitiatingFlow
@StartableByRPC
class ReadFilesFlow : FlowLogic<List<String>>() {
    override val progressTracker = ProgressTracker()

    @Suspendable
    override fun call(): List<String> {
        val cordappDirectory = File("./cordapps")
        val cordappFiles = cordappDirectory.listFiles()
        return cordappFiles.map { file -> file.name }
    }
}

然后,您将使用以下方法通过RPC检索CorDapps列表:

CordaRPCOps.startFlowDynamic(ReadFilesFlow::class.java)

请注意,对于使用模拟网络的流测试,这不起作用,因为当前目录(./)不会引用节点的基本目录。