Установка и использование платформы
Тонкая настройка платформы: настройка групп доступа к конфиденциальным данным¶
Если вы используйте 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
- максимальный период времени, за который сохраняется файл с данными, не попадая в блокчейн.