Установка и использование платформы
Тонкая настройка платформы: настройка групп доступа к конфиденциальным данным¶
Если вы используйте API-методы privacy для управления конфиденциальными данными, настройте параметры доступа к конфиденциальным данным, для которых предназначена секция privacy конфигурационного файла ноды (пример с использованием БД PostgreSQL и включенным периодическим удалением файлов, не попавших в блокчейн):
privacy {
storage {
vendor = postgres
schema = "public"
migration-dir = "db/migration"
profile = "slick.jdbc.PostgresProfile$"
jdbc-config {
url = "jdbc:postgresql://postgres:5432/node-1"
driver = "org.postgresql.Driver"
user = postgres
password = wenterprise
connectionPool = HikariCP
connectionTimeout = 5000
connectionTestQuery = "SELECT 1"
queueSize = 10000
numThreads = 20
}
cleaner {
enabled: yes
interval: 10m
confirmation-blocks: 100
pending-time: 72h
}
}
Перед его изменением определитесь с базой данных, которую вы планируете использовать для хранения конфиденциальных данных. Блокчейн-платформа Waves Enterprise поддерживает взаимодействие с БД PostgreSQL или Amazon S3.
При использовании СУБД PostgreSQL, потребуется установка JDBC-интерфейса. При использовании Amazon S3, информация должна храниться на сервере Minio.
После установки подходящей для вашего проекта СУБД, перейдите к настройке блока секции privacy.
Укажите используемую вами СУБД в параметре vendor:
postgres- для PostgreSQL;s3- для Amazon S3.
Если вы не используете API-методы privacy, укажите none и закомментируйте или удалите остальные параметры.
vendor = postgres¶
При использовании СУБД PostgreSQL, блок storage секции privacy выглядит так:
storage {
vendor = postgres
schema = "public"
migration-dir = "db/migration"
profile = "slick.jdbc.PostgresProfile$"
jdbc-config {
url = "jdbc:postgresql://postgres:5432/node-1"
driver = "org.postgresql.Driver"
user = postgres
password = wenterprise
connectionPool = HikariCP
connectionTimeout = 5000
connectionTestQuery = "SELECT 1"
queueSize = 10000
numThreads = 20
}
}
schema- используемая схема взаимодействия между элементами в рамках БД. По умолчанию применяется схемаpublic, однако если в вашей БД предусмотрена иная схема - укажите ее название.migration-dir- директория для миграции данных.profile- имя профиля для доступа к JDBC.url- адрес БД PostgreSQL.driver- имя драйвера JDBC (Java SataBase Connectivity), позволяющим Java-приложениям взаимодействовать с БД.user- имя пользователя для доступа к БД.password- пароль для доступа к БД.connectionPool- имя пула соединений, по умолчаниюHikariCP.connectionTimeout- время бездействия соединения до его разрыва (в миллисекундах).connectionTestQuery- тестовый запрос для проверки соединения с БД. Для PostgreSQL рекомендуется отправлятьSELECT 1.queueSize- размер очереди запросов.numThreads- количество одновременных подключений к БД.
Во время установки БД под управлением PostgreSQL создайте аккаунт для доступа к БД. Затем введите указанный вами логин и пароль в поля user и password.
При установке JDBC, задайте имя профиля, которое затем укажите в поле profile.
В поле url укажите адрес используемой вами БД в следующем формате:
jdbc:postgresql://<POSTGRES_ADDRESS>:<POSTGRES_PORT>/<POSTGRES_DB>
POSTGRES_ADDRESS- адрес хоста PostgreSQL.POSTGRES_PORT- номер порта хоста PostgreSQL.POSTGRES_DB- наименование БД PostgreSQL.
Вы можете указать адрес БД вместе с данными аккаунта, используя параметры user и password:
privacy {
storage {
...
url = "jdbc:postgresql://yourpostgres.com:5432/privacy_node_0?user=user_privacy_node_0@company&password=7nZL7Jr41qOWUHz5qKdypA&sslmode=require"
...
}
}
В этом примере user_privacy_node_0@company - имя пользователя, 7nZL7Jr41qOWUHz5qKdypA - его пароль.
Также вы можете использовать команду sslmode=require для требования пароля при авторизации.
vendor = s3¶
При использовании СУБД Amazon S3, блок storage секции privacy выглядит так:
storage {
vendor = s3
url = "http://localhost:9000/"
bucket = "privacy"
region = "aws-global"
access-key-id = "minio"
secret-access-key = "minio123"
path-style-access-enabled = true
connection-timeout = 30s
connection-acquisition-timeout = 10s
max-concurrency = 200
read-timeout = 0s
}
url- адрес сервера Minio для хранения данных. По умолчанию, Minio использует порт 9000.bucket- имя таблицы БД S3 для хранения данных.region- название региона S3, значение параметра -aws-global.access-key-id- идентификатор ключа доступа к данным.secret-access-key- ключ доступа к данным в хранилище S3.path-style-access-enabled = true- неизменяемый параметр указания пути к таблице S3.connection-timeout- период бездействия до разрыва соединения (в секундах).connection-acquisition-timeout- период бездействия при установлении соединения (в секундах).max-concurrency- число параллельных обращений к хранилищу.read-timeout- период бездействия при чтении данных (в секундах).
В процессе установки сервера Minio вам будет предложено определить логин и пароль для доступа к данным. Введите логин в поле access-key-id, а пароль - в поле secret-access-key.
Секция cleaner¶
Секция cleaner предназначена для настройки периодического удаления конфиденциальных данных, которые хранятся в БД, но по тем или иным причинам не попали в блокчейн (например, в случае отката транзакции).
Эта секция включает следующие параметры:
enabled- включение/отключение периодического удаления файлов, которые не попали в блокчейн.interval- интервал очистки файлов.confirmation-blocks- период времени в блоках, в течение которого который существует хэш-транзакция данных в блокчейне, после чего она удаляется.pending-time- максимальный период времени, за который сохраняется файл с данными, не попадая в блокчейн.