Совместное использование базы данных H2
Начиная с Corda 3, каждый узел по умолчанию раскручивает свою собственную базу данных H2.
Однако вы можете указать несколько узлов наотдельная автономная база данных H2, как указано ниже:
- Запустить автономный экземпляр H2 (например,
java -jar ./h2/bin/h2-1.4.196.jar -webAllowOthers -tcpAllowOthers
) - В файле конфигурации узла
node.conf
установите dataSource.url = "jdbc:h2:tcp://localhost:9092/~/nodeUniqueDatabaseName"
,где nodeUniqueDatabaseName
уникален для этого узла
Для каждого nodeUniqueDatabaseName
, H2 создаст файл nodeUniqueDatabaseName.mv.db
в домашнем каталоге пользователя.
Вы также можете установить определенныйабсолютный путь (например, dataSource.url = "jdbc:h2:tcp://localhost:9092/~/Users/szymonsztuka/IdeaProjects/corda3/nodeUniqueDatabaseName"
).Это создаст файл базы данных в Users/szymonsztuka/IdeaProjects/corda3/
.
. Обратите внимание, что этот подход небезопасен, поскольку сервер h2 запускается с -webAllowOthers -tcpAllowOthers
, что означает, что любой может войти в систему и изменить базу данных.
Ведение данных во всех сборках узлов
База данных H2 отбрасывается при повторном запуске deployNodes
, поскольку предполагается, что вы создаете совершенно новый набор узлов.Если вы хотите внести изменения только в установленные CorDapps, вы можете закрыть узел, обновить его CorDapps (создав новые JAR-файлы CorDapp, как описано здесь и скопировав JAR-файлы CorDapp в его папку cordapps
)и перезапустите узел.Будут установлены новые CorDapps, но все еще будут присутствовать данные старого узла.