我需要与Corda流程中的外部系统进行通信,因此应该有一种方法来提供一些配置(例如外部API的用户名和密码)。例如,它可能是.properties或.yaml文件。
最佳做法是如何做到这一点?甚至可能是样品?
答案 0 :(得分:4)
Corda 3没有内置支持向节点提供任意配置文件。 Corda 4将使用CorDapp配置文件添加对此的支持: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。