Настройка групп доступа к конфиденциальным данным

При использовании методов privacy активируйте функциональность и заполните блок storage параметрами настройки БД для хранения конфиденциальных данных:

privacy {
# Max parallel data crawling tasks
crawling-parallelism = 100

storage {
  vendor = none

  # for postgres vendor:
                    # 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
                    # }

                    # for s3 vendor:
                    # 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
}

cleaner {
  enabled: no

  # The amount of time between cleanups
  # interval: 10m

  # How many blocks the data hash transaction exists on the blockchain, after which it will be removed from cleaner monitoring
  # confirmation-blocks: 100

  # The maximum amount of time that a file can be stored without getting into the blockchain
  # pending-time: 72h
}
}

Описание параметров

  • vendor - выбор варианта хранения данных: s3 - облачное или локальное хранение на базе Amazon Simple Storage Service (S3), postgres - локальное хранение в БД PostgreSQL. Для хранения информации на базе S3 используется сервер Minio.

Параметры для БД PostgreSQL:

  • url - адрес БД PostgreSQL;

  • driver - имя драйвера JDBC;

  • profile - имя профиля для доступа к JDBC;

  • user - имя пользователя для доступа к БД;

  • password - пароль для доступа к БД;

  • connectionPool - имя пула соединений, по умолчанию HikariCP.

  • connectionTimeout - таймаут для соединения;

  • connectionTestQuery - имя тестового запроса;

  • queueSize - размер очереди запросов;

  • numThreads - количество одновременных подключений;

  • schema - схема взаимодействия;

  • migration-dir - директория для миграции данных.

Параметры для S3:

  • url - адрес сервера S3 для хранения данных, поддерживаются сервера Minio;

  • 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 - таймаут на чтение данных.

Секция cleaner

  • enabled - включение/отключение периодического удаления файлов, которые не попали в блокчейн;

  • interval - интервал очистки файлов;

  • confirmation-blocks - период времени в блоках, за который существует хэш-транзакция данных в блокчейне, после чего она будет удалена;

  • pending-time - максимальный период времени, за который сохраняется файл с данными, не попадая в блокчейн.

Остальные параметры:

  • request-timeout - таймаут ожидания всех ответов от пиров на запрос данных.

  • init-retry-delay - задержка от момента получения датахеша до старта его поиска по пирам.

  • crawling-parallelism - ограничение максимального количества одновременных процессов в синхронизаторе.

  • max-attempt-count - максимальное количество раундов по запросу данных от пиров, спустя которое данные считаются «утерянными».

  • lost-data-processing-delay - интервал раундов запросов «утерянных» данных.

  • cache - настройки кеш-памяти запросов.

Для хранения конфиденциальных данных используется БД PostgreSQL. База данных устанавливается на машину с нодой, также создается аккаунт доступа к БД. Вы можете воспользоваться справочной документацией на PostgreSQL для скачивания и установки версии, которая соответствует вашему типу операционной системы.

Во время установки БД система предложит создать аккаунт для доступа к БД. Эти логин и пароль для доступа необходимо внести в соответствующие параметры user/password.

Внесите URL подключения к PostgreSQL в параметр url. В URL входят следующие параметры:

  • POSTGRES_ADDRESS - адрес хоста PostgreSQL;

  • POSTGRES_PORT - номер порта хоста PostgreSQL;

  • POSTGRES_DB - наименование БД PostgreSQL.

Можно указывать URL до БД PostgreSQL в одной строке с данными аккаунта. Пример приведен ниже, где user=user_privacy_node_0@we-dev это логин пользователя, password=7nZL7Jr41qOWUHz5qKdypA&sslmode=require - пароль с опцией требования его ввода при авторизации.

Пример

privacy.storage.url = "jdbc:postgresql://vostk-dev.postgres.database.azure.com:5432/privacy_node_0?user=user_privacy_node_0@we-dev&password=7nZL7Jr41qOWUHz5qKdypA&sslmode=require"