我们的示例CorDapp被配置为使用PostgreSQL作为独立的节点数据库。 网络引导程序工具用于在开发人员模式下创建节点配置。
据我了解,网络boosterapper工具会生成节点配置文件。 但是,我们注意到它要求PostgreSQL实例启动并运行(已创建模式)。 该工具在生成节点配置文件时确实连接到数据库。
为什么它连接到数据库?我认为应该在最初的网络升级之后允许创建数据库。
在我们的例子中,我们将PostgreSQL部署为docker容器。容器和网络增强工具都位于同一主机上。 如讨论的那样,网络Boostrapper工具尝试与节点数据库连接(基于node.conf中配置的数据源url)。 但是,它希望Postgres公开公开端口5432。
即 此设置不起作用。 “ pg_party_a”是我们的docker容器的名称。
dataSourceProperties = {
dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
"dataSource.url" = "jdbc:postgresql://pg_party_a:5432/postgres"
"dataSource.user" = postgres
"dataSource.password" = postgres
}
此设置有效。
dataSourceProperties = {
dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
"dataSource.url" = "jdbc:postgresql://localhost:5432/postgres"
"dataSource.user" = postgres
"dataSource.password" = postgres
}
Corda节点能够使用容器名称连接数据库。但是引导工具不支持它。
在我们的PoC应用程序中,Corda Node和PostgreSQL数据库都将驻留在同一主机上。因此,无需公开公开PostgreSQL。然而,由于网络助推器,这似乎很困难。还有其他方法可以解决这种情况吗?
答案 0 :(得分:1)
从Corda 3.2开始,为什么在引导过程中需要数据库访问?
NodeInfo
才能发送给其他网络节点NodeInfo
现有的引导程序无法解决这个问题。