如何在 Corda 中为 CorDapp 提供自定义配置?
How to provide a CorDapp with custom config in Corda?
我需要在 Corda 流程中与外部系统通信,因此应该有一种方法可以提供一些配置(例如外部 API 的用户名和密码)。例如,它可能是 .properties 或 .yaml 文件。
是否有最佳做法?甚至样本?
Corda 3 没有为节点提供任意配置文件的内置支持。将使用 CorDapp 配置文件在 Corda 4 中添加对此的支持:https://docs.corda.net/head/cordapp-build-systems.html#cordapp-configuration-files.
同时,您可以将本地文件放在节点目录中,并在流中直接从中读取。例如,如果我在节点的根目录中放置一个名为 properties.txt
的配置文件,然后我可以使用以下流程读回其内容:
@InitiatingFlow
@StartableByRPC
class ReadPropertiesFlow : FlowLogic<String>() {
override val progressTracker = ProgressTracker()
@Suspendable
override fun call() = File("./properties.txt").readText()
}
节点的工作目录始终是节点的根目录(使用 MockNetwork
进行流量测试时除外)。
或者,您可以将信息直接存储在节点的数据库中。有关示例,请参阅 NODE_PROPERTIES table in database。
我需要在 Corda 流程中与外部系统通信,因此应该有一种方法可以提供一些配置(例如外部 API 的用户名和密码)。例如,它可能是 .properties 或 .yaml 文件。
是否有最佳做法?甚至样本?
Corda 3 没有为节点提供任意配置文件的内置支持。将使用 CorDapp 配置文件在 Corda 4 中添加对此的支持:https://docs.corda.net/head/cordapp-build-systems.html#cordapp-configuration-files.
同时,您可以将本地文件放在节点目录中,并在流中直接从中读取。例如,如果我在节点的根目录中放置一个名为 properties.txt
的配置文件,然后我可以使用以下流程读回其内容:
@InitiatingFlow
@StartableByRPC
class ReadPropertiesFlow : FlowLogic<String>() {
override val progressTracker = ProgressTracker()
@Suspendable
override fun call() = File("./properties.txt").readText()
}
节点的工作目录始终是节点的根目录(使用 MockNetwork
进行流量测试时除外)。
或者,您可以将信息直接存储在节点的数据库中。有关示例,请参阅 NODE_PROPERTIES table in database。