Описание основных параметров и секций конфигурационного файла ноды¶
Для параметров в конфигурационном файле применяется несколько типов значений:
Числовое значение, используемое для указания точного количества элементов. Это может быть количество транзакций, блоков, соединений.
Числовое значение с указанием единиц измерения, используемое для определения временного периода или объёма памяти. В таком виде, как правило, указываются временные периоды в днях, часах или секундах, или объём кэш-памяти, например,
memory = 256M
илиconnection-timeout = 30s
.Строковое значение, используемое для указания адресов, путей к директориям, паролям и т.д. Путь к директории указывается в формате, приемлемом для текущей ОС. Значение указывается в кавычках.
Массив, используемый для указания списков значений, например, адресов или публичных ключей. Значение указывается в квадратных скобках через запятую.
Логический тип
no
илиyes
, используемый для активации различных опций.
Пример конфигурационного файла приведен на странице подготовки конфигурационных файлов. В состав файла входят следующие секции:
node - общая секция, куда входят все секции и дополнительные параметры для настройки ноды.
synchronization.transaction-broadcaster - настройка параметров синхронизации для отправки неподтверждённых транзакций в блокчейн.
additional-cache - настройка параметров дополнительной кеш-памяти для временного хранения входящих блоков.
loggers - детализированная настройка логгеров.
ntp - настройка параметров NTP-сервера.
blockchain - настройка основных параметров блокчейна.
features - настройка дополнительных параметров ноды.
tls - включение и настройка TLS ноды.
network - сетевые настройки.
wallet - настройка доступа к закрытым ключам ноды.
miner - настройка майнинга.
api - настройка REST API/gRPC и типа авторизации.
privacy - настройка групп доступа к конфиденциальной информации.
docker-engine - настройка Docker смарт-контрактов.
Секция node
¶
Дополнительные параметры секции:
waves-crypto
- тип шифрования в блокчейне. Возможные значения:yes
- выбор криптографии Waves,no
- выбор ГОСТ-криптографии.directory
- основная директория для хранения ПО ноды.data-directory
- директория для хранения данных блокчейна в RocksDB: блоки, транзакции, стейт ноды.logging-level
- уровень логирования работы ноды. Возможные значения:DEBUG
,INFO
,WARN
,ERROR
, по умолчанию установлено значениеINFO
.owner-address
- адрес ноды, которая будет владельцем конфигурационного файла. Если владелец ноды будет начальным участником сети, то его адрес и публичный ключ должны быть в genesis блоке.
Секция synchronization.transaction-broadcaster
¶
max-batch-size
иmax-batch-time
– технические параметры, позволяющие регулировать скорость уменьшения очереди транзакций.min-broadcast-count
– минимальное число соединений, которые можно использовать для отправки каждой транзакции в блокчейн. Значение не должно превышать число нод в сети минус один (нода-отправитель в расчёт не принимается).retry-delay
– интервал повторной отправки транзакции, если количества текущих соединений не хватило, или произошли ошибки во время отправки.extension-batch-size
- количество блоков в серии, используемое для запроса расширения от пиров.known-tx-cache-size
- максимальное количество неподтверждённых транзакций в кеш-памяти.known-tx-cache-time
- максимальное время жизни неподтверждённых транзакций в кеш-памяти.
Секция additional-cache
¶
rocksdb
- параметры БД RocksDB:max-cache-size
- максимальный размер кеш-памяти.max-rollback-depth
- количество блоков, на которые ноду можно откатить в ручном режиме.remember-blocks-interval-in-cache
- период хранения блоков к кеш-памяти.
block-ids
- параметры кеша для входящих блоков.max-size
- максимальный размер кеш-памяти.expire-after
- период, через который хранимые блоки удаляются из кеша.
Секция loggers
¶
Секция предназначена для перечисления логгеров с заданным индивидуально уровнем логгирования. Список логгеров можно узнать при использовании метода GET /node/logging. Логгеры указываются в следующем виде:
"com.wavesplatform.mining.MinerImplPoa": TRACE
"com.wavesplatform.utx.UtxPoolImpl": DEBUG
Секция ntp
¶
servers
- список адресов NTP-серверов. Рекомендуемое значение -[ "0.pool.ntp.org", "1.pool.ntp.org", ... "10.pool.ntp.org" ]
.request-timeout
- таймаут для одного запроса на NTP-сервер. Рекомендуемое значение - 10 секунд.expiration-timeout
- таймаут синхронизации запросов к NTP-серверу. Рекомендуемое значение - 1 минута.fatal-timeout
- таймаут подключения к NTP-серверу. Рекомендуемое значение - 1 минута.
Секция blockchain
¶
type
- тип блокчейна. Возможные значенияMAINNET
илиCUSTOM
. ЗначениеMAINNET
позволяет использовать genesis-блок, консенсус и настройки сети Mainnet. При выборе значенияMAINNET
в конфигурационном файле ноды, которая подключается к сети Mainnet, не нужно указывать параметры блоковcustom
,genesis
иconsensus
.consensus.type
- тип консенсуса в блокчейне. Возможные значения:pos
,poa
илиcft
. Вы можете подробно почитать о настройке консенсуса здесь.
Блок fees
enabled
- опция использования комиссий за выпуск транзакций. Возможные значенияfalse
илиtrue
.
Блок custom
address-scheme-character
- байт сети, для «Waves Enterprise Mainnet» -V
, для «Waves Enterprise Partnernet» -P
. Данный параметр используется для предотвращения конфликта адресов из разных сетей. Для сайдчейна или для тестовых версий блокчейн-платформы Waves Enterprise можно использовать любые буквы. Ноды в одной блокчейн-сети должны иметь одинаковый байт сети.functionality
- блок настройки основных параметров блокчейна.genesis
- блок настройки параметров генезис-блока.
Блок functionality
feature-check-blocks-period
- количество блоков, через которые выполняется проверка и активация опций блокчейна.blocks-for-feature-activation
- количество блоков, через которые применяется активированная опция.pre-activated-features
- набор опций блокчейна.
Блок genesis
average-block-delay
- средняя задержка создания блоков. Данный параметр используется для консенсуса PoS.initial-base-target
- начальное базовое число для регулирования процесса майнинга. Данный параметр используется для консенсуса PoS. От значения параметра зависит частота формирования блоков - чем больше значение, тем чаще создаются блоки. Также величина баланса майнера влияет на использование данного параметра в майнинге - чем больше баланс майнера, тем меньше становится значениеinitial-base-target
для выбора ноды-майнера. При выставлении значения данному параметру рекомендуется учитывать комбинацию балансов майнеров и ожидаемый интервал между блоками.block-timestamp
- числовой код даты и времени. Время указывается в миллисекундах, значение должно состоять из 13 цифр. Если вы берёте стандартное значениеtimpstamp
, состоящее из 10 цифр, то в конце необходимо добавить три любые цифры.initial-balance
- начальный баланс сети. Значение этого параметра влияет на процесс майнинга при PoS консенсусе. Чем больше баланс майнера, тем меньше становится значениеinitial-base-target
для определения ноды-майнера текущего раунда.genesis-public-key-base-58
- хеш публичного ключа генезис-блока, зашифрованный в Base58.signature
- подпись генезис-блока, зашифрованная в Base58.transactions
- список участников сети с первоначальным балансом, создание которых войдёт в генезис-блок в виде генезис-транзакций.network-participants
- список сетевых участников с ролями, создание которых войдёт в генезис-блок в виде генезис-транзакций.
Секция tls
¶
Секция предназначена для работы с TLS в ноде.
type
- состояние режима TLS. Возможные опции:DISABLED
(отключен, в этом случае остальные опции не указываются или комментируются) иEMBEDDED
(включен, сертификат подписывается провайдером ноды и упаковывается в JKS-файл (keystore) - при этом директория, в которой располагается сертификат, и параметры доступа к сертификату и keystore указывается пользователем вручную в последующих полях).keystore-path
- относительный путь к keystore, размещаемому в директории ноды:${node.directory}"/we_tls.jks"
.keystore-password
- пароль для keystore.private-key-password
- пароль для приватного ключа.
Для работы с TLS, помимо его включения в конфигурационном файле ноды, необходимо получить файл keystore при помощи стандартной утилиты keytool:
keytool \
-keystore we.jks -storepass 123456 -keypass 123456 \
-genkey -alias we -keyalg RSA -validity 9999 \
-dname "CN=Waves Enterprise,OU=security,O=WE,C=RU" \
-ext "SAN=DNS:welocal.dev,DNS:localhost,IP:51.210.211.61,IP:127.0.0.1"
keystore
- имя файла keystore.storepass
- пароль от keystore, указывается в конфиге в секцииkeystore-password
.keypass
- пароль от приватного ключа, указывается в конфиге в секцииprivate-key-password
.alias
- произвольное имя.keyalg
- алгоритм генерации ключевой пары.validity
- срок действия в днях.dname
- уникальное имя по стандарту X.500, свзанное с alias в keystore.ext
- расширения, применяемые при генерации ключа, указываются все возможные имена хостов и IP-адреса для работы сертификата в различных сетях.
В результате работы keytool будет получен keystore с именем we.jks. Чтобы подключиться к ноде с включенным TLS, также необходимо выпустить клиентский сертификат:
keytool -export -keystore we.jks -alias we -file we.cert
Полученный файл сертификата we.cert необходимо импортировать в хранилище доверенных сертификатов. При работе ноды в одной сети с пользователем достаточно указать относительный путь к файлу we.jks в файле конфигурации ноды, как это показано выше.
В случае, если нода находится в другой сети, импортируйте сертификат we.cert в keystore:
keytool -importcert -alias we -file we.cert -keystore we.jks
Затем также укажите относительный путь к we.jks в файле конфигурации ноды.
Секция network
¶
bind-address
- сетевой адрес ноды.port
- номер порта.known-peers
- список известных сетевых адресов нод. Этот параметр должен быть обязательно заполнен. Список адресов передаётся пользователю администратором сети до подключения новой ноды.declared-address
- сетевой адрес ноды вместе с номером порта для процедуры handshake.max-simultaneous-connections
- максимальное количество одновременно поддерживаемых соединений. Параметр ограничен количеством нод в блокчейне, т.е. максимальное количество одновременных соединений будет не больше числа нод в сети.peers-request-interval
- интервал запроса списка пиров. Значение указывается в секундах или минутах. Рекомендуемое значение - 1-2 минуты.attempt-connection-delay
- интервал запроса на подключение к любому из известных ноде пиров.
Секция wallet
¶
file
- директория для хранения приватных ключей.password
- пароль для доступа к файлу с приватными ключами.
Секция miner
¶
enable
- активация опции майнинга.quorum
- необходимое количество нод-майнеров для создания блока. Значение0
позволит генерировать блоки оффлайн. При указании значения необходимо учитывать, что собственная нода-майнер не суммируется со значением этого параметра, т.е., если вы указываетеquorum = 2
, то для майнинга нужно минимум 3 ноды-майнера.interval-after-last-block-then-generation-is-allowed
- создание блока только в том случае, если последний блок не старше указанного периода времени.micro-block-interval
- интервал между микроблоками.min-micro-block-age
- минимальный возраст микроблока.max-transactions-in-micro-block
- максимальное количество транзакций в микроблоке.minimal-block-generation-offset
- минимальный временной интервал между блоками.
Секция features
¶
supported
- список поддерживаемых опций.