CorDapp 列表
List of CorDapps
我正在尝试识别节点上 运行 哪些 CorDapps
此信息在启动期间显示在控制台和日志中
Loaded CorDapps : blah-1.1.20, corda-core-2.0.0
有没有程序化的方法来获取该列表? (RPC?)
您可以使用 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)
请注意,这在使用模拟网络进行流量测试的情况下不起作用,因为当前目录 (./
) 不会引用节点的基本目录。
我正在尝试识别节点上 运行 哪些 CorDapps
此信息在启动期间显示在控制台和日志中
Loaded CorDapps : blah-1.1.20, corda-core-2.0.0
有没有程序化的方法来获取该列表? (RPC?)
您可以使用 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)
请注意,这在使用模拟网络进行流量测试的情况下不起作用,因为当前目录 (./
) 不会引用节点的基本目录。