Как настроить каталог драйверов JDB C в Corda Network Bootstrapper? - PullRequest
0 голосов
/ 14 июля 2020

Я использую Corda Network Bootstrapper для настройки локальной сети Corda с использованием Docker и пытаюсь настроить PostgreSQL в качестве базы данных.

  • The partya_node.conf файл, читаемый сетевым загрузчиком:
devMode=true
myLegalName="O=PartyA,L=Paris,C=FR"
p2pAddress="partya:10200"
rpcSettings {
  address="0.0.0.0:10201"
  adminAddress="0.0.0.0:10202"
}
dataSourceProperties = {
    dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
    dataSource.url = "jdbc:postgresql://pg_partya:5432/db_partya"
    dataSource.user = "pg_user"
    dataSource.password = "pg_secret"
}
database = {
    transactionIsolationLevel = READ_COMMITTED
}
jarDirs=["shared/drivers"]
security {
  authService {
    dataSource {
      type=INMEMORY
      users=[
        {
          password=test
          permissions=[
            ALL
          ]
          user=user1
        }
      ]
    }
  }
}
sshd {
  port = 2222
}
  • shared/drivers dir содержит postgresql-42.2.14.jar

  • Когда я запускаю сеть средство начальной загрузки: java -jar corda-tools-network-bootstrapper-4.5.jar

Я получаю следующую ошибку:

[ERROR] 15:51:24-0300 [main] internal.NodeStartupLogging. - Could not find the database driver class. Please add it to the drivers directory. [Error Code: database-missing-driver For further information, please go to https://docs.corda.net/docs/corda-os/4.5/error-codes.html] - Could not find the database driver class. Please add it to the 'drivers' folder. [errorCode=1oswgkz, moreInformationAt=https://errors.corda.net/OS/4.5/1oswgkz]
... still waiting. If this is taking longer than usual, check the node logs.

[EDIT] Драйвер JDB C отображается как том в docker-compose:

    volumes:
      - ./partya_node.conf:/etc/corda/node.conf
      - ./partya/certificates:/opt/corda/certificates
      - ./partya/persistence:/opt/corda/persistence
      - ./partya/logs:/opt/corda/logs
      - ./shared/cordapps:/opt/corda/cordapps
      - ./shared/node-infos:/opt/corda/additional-node-infos
      - ./shared/network-parameters:/opt/corda/network-parameters
      - ./shared/drivers/postgresql-42.2.14.jar:/opt/corda/drivers/postgresql-42.2.14.jar

Можно ли настроить Corda Network Bootstrapper так, чтобы он указывал на каталог драйвера?

1 Ответ

1 голос
/ 15 июля 2020

Я считаю, что вы неправильно смонтировали каталог драйверов в контейнер docker, что может быть причиной того, что узел не может найти драйвер.

Вы можете смонтировать драйвер в /opt/corda/drivers в контейнере Corda docker и укажите на него в файле node.conf, используя jarDirs=["opt/corda/drivers"].

Общий каталог, о котором вы говорите, я думаю, это каталог на вашем хост-компьютере, который * Контейнер 1019 * не может получить доступ, пока не будет установлен в определенное место в контейнере docker.

Обновление на основе комментария:

Вам необходимо обновить драйвер путь к каталогу. Файл node.conf копируется в отдельную папку узла, и ссылка на скопированный файл выполняется при запуске загрузчика. Поэтому вам просто нужно обновить jarDirs в node.conf до jarDirs=["../shared/drivers"], предполагая, что общий каталог находится в том же каталоге, что и jar загрузчика и исходные файлы node.conf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...