Перейти к содержанию

Конфигурация

Каждый из описанных параметров можно настроить для оптимизации работы nodeos в зависимости от целей и условий эксплуатации. Настраивая эти параметры, можно существенно изменить поведение узла, его производительность, безопасность и отказоустойчивость. Все эти параметры, или некоторые из них, устанавливаются в файле config.ini или передаются в качестве аргументов при запуске nodeos.

cpu-effort-percent

Параметр cpu-effort-percent указывает процент времени, выделенного на производство блока, который будет использован для выполнения операций. Например, значение 80 означает, что 80% времени будет использоваться для производства блока. Используется для оптимизации нагрузки на процессор при производстве блоков.

last-block-cpu-effort-percent

last-block-cpu-effort-percent определяет процент времени, выделенного для производства последнего блока в цикле. Подобно cpu-effort-percent, этот параметр помогает оптимизировать использование процессора, но конкретно для последнего блока в цикле производства.

blocks-dir

Параметр blocks-dir указывает местоположение директории, где хранятся файлы блоков. Может быть задан как абсолютный путь, так и путь относительно директории данных приложения. Этот параметр используется для указания пути хранения данных блоков.

blocks-log-stride

blocks-log-stride используется для указания, когда файл журнала блоков должен быть разделен. Когда номер головного блока кратен значению этого параметра, текущий файл журнала блоков и индекс переименовываются, и создается новый файл журнала блоков. Это помогает управлять размером файлов журналов и их организацией.

max-retained-block-files

Параметр max-retained-block-files определяет максимальное количество файлов блоков, которые будут сохранены для возможности их запроса. Когда количество сохраненных файлов достигает этого значения, старые файлы блоков перемещаются в архивную директорию или удаляются, если архивная директория пуста. Этот параметр помогает ограничивать использование дискового пространства.

blocks-retained-dir

blocks-retained-dir указывает местоположение директории, в которой сохраняются файлы блоков, которые необходимо удерживать. Если значение не указано, используется значение директории блоков. Этот параметр помогает организовать структуру хранения блоков.

blocks-archive-dir

Параметр blocks-archive-dir указывает местоположение директории, в которую перемещаются файлы блоков после превышения лимита сохранения. Если значение пустое, файлы блоков удаляются. Файлы в архивной директории полностью находятся под контролем пользователя и не используются узлом.

state-dir

state-dir указывает путь к директории, где хранится состояние блокчейна. Может быть задан как абсолютный путь, так и путь относительно директории данных приложения. Используется для хранения данных состояния блокчейна.

protocol-features-dir

Параметр protocol-features-dir указывает путь к директории, где хранятся файлы с признаками протоколов. Этот параметр используется для хранения и управления признаками протоколов EOSIO.

checkpoint

checkpoint используется для задания пар [BLOCK_NUM, BLOCK_ID], которые должны применяться как контрольные точки. Этот параметр полезен для повышения безопасности блокчейна путем проверки соответствия определенных блоков.

wasm-runtime

Параметр wasm-runtime позволяет переопределить среду выполнения WebAssembly, которую использует узел. Доступны варианты "eos-vm-jit" и "eos-vm". "eos-vm-jit" компилирует WebAssembly-код в родной x86-код перед выполнением, что обеспечивает более быструю работу, тогда как "eos-vm" является интерпретатором WebAssembly.

profile-account

profile-account определяет имя учетной записи, код которой будет профилироваться. Этот параметр используется для мониторинга и анализа выполнения кода конкретной учетной записи.

abi-serializer-max-time-ms

Параметр abi-serializer-max-time-ms позволяет переопределить максимальное время сериализации ABI в миллисекундах. Используется для ограничения времени, выделяемого на сериализацию данных.

chain-state-db-size-mb

chain-state-db-size-mb определяет максимальный размер базы данных состояния цепочки в мегабайтах. Этот параметр используется для управления использованием дискового пространства для хранения состояния блокчейна.

chain-state-db-guard-size-mb

Параметр chain-state-db-guard-size-mb задает размер свободного пространства (в мегабайтах) в базе данных состояния цепочки, при достижении которого узел безопасно завершит работу. Этот параметр используется для предотвращения полного заполнения базы данных.

signature-cpu-billable-pct

signature-cpu-billable-pct определяет процент фактического времени выполнения операции восстановления подписи, который будет учитываться при выставлении счетов. Этот параметр используется для управления затратами на обработку подписей.

chain-threads

Параметр chain-threads определяет количество рабочих потоков в пуле потоков контроллера. Используется для настройки многопоточности узла блокчейна.

contracts-console

contracts-console определяет, будет ли вывод контрактов печататься в консоль. Если установлено значение true, вывод контракта будет виден в консоли, что может быть полезно для отладки.

deep-mind

Параметр deep-mind позволяет включить более глубокую информацию о работе цепочки. Этот параметр полезен для анализа и отладки работы блокчейна.

actor-whitelist

Параметр actor-whitelist позволяет указать список аккаунтов, которые разрешены для выполнения транзакций или действий. Можно указать несколько значений. Этот параметр полезен для ограничения доступа только к определенным пользователям или учетным записям.

actor-blacklist

Параметр actor-blacklist используется для указания списка аккаунтов, которые запрещены для выполнения транзакций или действий. Можно указать несколько значений. Используется для блокировки определенных пользователей или учетных записей от выполнения действий в блокчейне.

contract-whitelist

contract-whitelist задает список учетных записей контрактов, которые разрешены для взаимодействия с нодой. Может использоваться несколько раз. Этот параметр применяется для ограничения взаимодействий только с определенными контрактами.

contract-blacklist

Параметр contract-blacklist определяет список учетных записей контрактов, которые запрещены для взаимодействия с нодой. Может использоваться несколько раз. Это позволяет исключить определенные контракты из взаимодействия с сетью.

action-blacklist

action-blacklist используется для добавления действия (в формате код::действие) в черный список действий, которые не могут быть выполнены. Этот параметр помогает блокировать определенные действия, которые могут быть вредоносными или нежелательными.

key-blacklist

Параметр key-blacklist добавляет открытый ключ в черный список ключей, которые не должны включаться в полномочия. Может использоваться несколько раз. Этот параметр защищает от использования определенных ключей, которые могут быть скомпрометированы или не доверены.

sender-bypass-whiteblacklist

sender-bypass-whiteblacklist позволяет указать список аккаунтов, для которых не будут применяться проверки белого/черного списков отложенных транзакций. Может использоваться несколько раз. Это полезно для аккаунтов, которым всегда нужно позволять выполнение транзакций.

read-mode

Параметр read-mode определяет режим чтения базы данных. Возможные значения: "head" (данные до последнего блока), "irreversible" (данные до последнего необратимого блока), "speculative" (данные до последнего блока с учетом неподтвержденных транзакций). Этот параметр используется для управления синхронизацией данных с сетью.

api-accept-transactions

api-accept-transactions позволяет ноде принимать и проверять транзакции через API. Если значение true, транзакции через API обрабатываются и пересылаются в сеть.

validation-mode

Параметр validation-mode устанавливает режим проверки блоков. В "full" режиме все входящие блоки полностью проверяются, в "light" режиме проверяются только заголовки блоков, а транзакции внутри этих блоков считаются доверенными.

disable-ram-billing-notify-checks

disable-ram-billing-notify-checks отключает проверку, которая субъективно отклоняет транзакцию, если контракт выставляет больше RAM другому аккаунту в контексте обработчика уведомлений. Этот параметр позволяет более гибко управлять использованием ресурсов.

maximum-variable-signature-length

Параметр maximum-variable-signature-length ограничивает максимальную длину переменных компонентов в подписи переменной длины в байтах. Используется для предотвращения атак с переполнением и защиты от ненадежных подписей.

trusted-producer

trusted-producer указывает продюсера, заголовки блоков которого будут полностью проверяться, но транзакции в этих блоках будут считаться доверенными. Это помогает улучшить безопасность блокчейна.

database-map-mode

Параметр database-map-mode определяет режим отображения базы данных: "mapped" (база данных отображена как файл), "heap" (база данных загружена в память и может использовать большие страницы), "locked" (база данных загружена и заблокирована в памяти). Используется для настройки производительности хранения данных.

eos-vm-oc-cache-size-mb

eos-vm-oc-cache-size-mb определяет максимальный размер кеша кода EOS VM OC в мегабайтах. Этот параметр используется для управления размером кеша виртуальной машины EOS, чтобы избежать использования чрезмерного объема памяти.

eos-vm-oc-compile-threads

Параметр eos-vm-oc-compile-threads определяет количество потоков для компиляции EOS VM OC. Используется для настройки многопоточности компиляции виртуальной машины EOS.

eos-vm-oc-enable

eos-vm-oc-enable позволяет включить выполнение кода уровня EOS VM OC. Если установлено значение true, выполнение кода с оптимизацией уровня OC включено.

enable-account-queries

Параметр enable-account-queries разрешает запросы для поиска учетных записей по различным метаданным. Если установлено значение true, эта возможность включена, что может быть полезно для анализа данных.

max-nonprivileged-inline-action-size

max-nonprivileged-inline-action-size определяет максимальный допустимый размер встроенного действия для непривилегированной учетной записи в байтах. Этот параметр ограничивает объем данных, передаваемых в действиях.

transaction-retry-max-storage-size-gb

Параметр transaction-retry-max-storage-size-gb задает максимальный размер (в гигабайтах), который может быть выделен для функции повторной отправки транзакций. Если значение больше 0, эта функция включена.

transaction-retry-interval-sec

transaction-retry-interval-sec определяет, как часто (в секундах) нужно повторно отправлять входящую транзакцию в сеть, если она не была включена в блок. Значение должно быть как минимум вдвое больше времени истечения кэша p2p-дедупликации.

transaction-retry-max-expiration-sec

Параметр transaction-retry-max-expiration-sec задает максимальный срок истечения для транзакций повторной отправки. Используется для управления временем повторной попытки транзакций в сети.

transaction-finality-status-max-storage-size-gb

transaction-finality-status-max-storage-size-gb определяет максимальный размер (в гигабайтах), который может быть выделен для функции статуса финальности транзакции. Если значение больше 0, эта функция включена.

transaction-finality-status-success-duration-sec

Параметр transaction-finality-status-success-duration-sec указывает длительность (в секундах), в течение которой успешный статус финальности транзакции будет оставаться доступным с момента его первого определения.

transaction-finality-status-failure-duration-sec

transaction-finality-status-failure-duration-sec задает длительность (в секундах), в течение которой статус неудачной транзакции будет оставаться доступным с момента его первого определения.

integrity-hash-on-start

Параметр integrity-hash-on-start позволяет включить вывод хеша целостности состояния при запуске. Если установлено значение true, хеш целостности будет логироваться.

integrity-hash-on-stop

integrity-hash-on-stop включает логирование хеша целостности состояния при остановке ноды. Этот параметр полезен для проверки целостности состояния блокчейна при выключении.

block-log-retain-blocks

Параметр block-log-retain-blocks определяет количество последних блоков, которые будут храниться в журнале блоков. Если значение больше 0, периодически выполняется обрезка журнала блоков для хранения только заданного числа последних блоков.

unix-socket-path

unix-socket-path указывает имя файла (относительно data-dir) для создания UNIX-сокета для HTTP RPC. Если значение пустое, сокет отключен. Этот параметр используется для управления доступом к RPC через UNIX-сокет.

http-server-address

Параметр http-server-address указывает локальный IP-адрес и порт для прослушивания входящих HTTP-соединений. Если значение пустое, HTTP-сервер отключен.

access-control-allow-origin

access-control-allow-origin задает заголовок Access-Control-Allow-Origin, который будет возвращаться в каждом HTTP-запросе. Используется для управления кросс-доменным доступом.

access-control-allow-headers

Параметр access-control-allow-headers определяет заголовки, которые разрешены для кросс-доменных HTTP-запросов. Используется для настройки безопасности HTTP.

access-control-max-age

access-control-max-age указывает значение заголовка Access-Control-Max-Age, возвращаемого в каждом запросе. Этот параметр управляет кэшированием разрешений кросс-доменных запросов.

access-control-allow-credentials

Параметр access-control-allow-credentials указывает, должен ли заголовок Access-Control-Allow-Credentials быть равен true в каждом HTTP-запросе. Если установлено значение true, то доступ к ресурсам возможен с использованием учетных данных.

max-body-size

max-body-size определяет максимальный размер HTTP-запроса в байтах. Используется для ограничения размера входящих данных.

http-max-bytes-in-flight-mb

Параметр http-max-bytes-in-flight-mb ограничивает максимальный объем входящих данных, ожидающих обработки через HTTP, в мегабайтах. Помогает предотвратить перегрузку HTTP-сервера.

http-max-in-flight-requests

http-max-in-flight-requests ограничивает максимальное количество HTTP-запросов, ожидающих обработки. Используется для управления нагрузкой на HTTP-сервер.

http-validate-host

Параметр http-validate-host включает проверку заголовка Host во всех HTTP-запросах. Если установлено значение true, проверка включена, что помогает защититься от некоторых типов атак.

verbose-http-errors

verbose-http-errors включает более подробные сообщения об ошибках для HTTP-запросов. Если установлено значение true, ошибки будут отображаться более подробно.

http-alias

Параметр http-alias добавляет допустимое значение заголовка Host для HTTP-запросов. Может использоваться несколько раз. Этот параметр полезен для настройки виртуальных хостов.

http-threads

http-threads указывает количество потоков для обработки HTTP-запросов. Используется для настройки производительности HTTP-сервера.

abi-serializer-max-time-ms

Параметр abi-serializer-max-time-ms определяет максимальное время (в миллисекундах) для выполнения ABI сериализации. Используется для предотвращения длительной обработки данных.

verbose-timelog

verbose-timelog включает вывод меток времени для каждой строки лога, что может быть полезно для отладки и анализа производительности.

state-history-dir

Параметр state-history-dir задает каталог для хранения истории состояния. По умолчанию используется каталог "state-history" внутри data-dir.

trace-history

trace-history включает отслеживание истории транзакций. Если установлено значение true, история транзакций будет сохраняться.

chain-state-history

Параметр chain-state-history включает сохранение истории состояния блокчейна. Если установлено значение true, история состояния будет сохраняться.

state-history-endpoint

state-history-endpoint указывает IP-адрес и порт для прослушивания запросов истории состояния. Используется для настройки доступа к истории состояния.

state-history-unix-socket-path

Параметр state-history-unix-socket-path задает путь для создания UNIX-сокета для истории состояния. Этот параметр определяет местоположение UNIX-сокета для взаимодействия с историей состояния.

state-history-allowed-connection

state-history-allowed-connection определяет типы соединений, разрешенные для доступа к истории состояния. Возможные значения: "none" (отключено), "localhost" (разрешены только локальные соединения), "any" (разрешены все соединения).

trace-history-debug-mode

Параметр trace-history-debug-mode включает режим отладки для истории транзакций. Этот параметр используется для более детального анализа ошибок и проблем.

state-history-stride

state-history-stride определяет, через сколько блоков сохраняется снимок истории состояния. Этот параметр помогает оптимизировать хранение данных истории состояния.

state-history-prune

Параметр state-history-prune указывает количество последних снимков истории состояния, которые будут храниться. Используется для управления объемом сохраняемых данных истории.

p2p-keepalive-interval-ms

Параметр p2p-keepalive-interval-ms определяет интервал времени (в миллисекундах) между отправкой сообщений "heartbeat" для поддержания соединения P2P. Значение по умолчанию — 10000 мс (10 секунд).

enable-stale-production

enable-stale-production включает или отключает возможность производства блоков, даже если цепочка устарела. Установлено в false по умолчанию, чтобы предотвратить производство блоков в такой ситуации.

pause-on-startup

Параметр pause-on-startup определяет, должна ли нода запускаться в состоянии, когда производство блоков приостановлено. Если установлено в false, нода сразу же начнет производство блоков после старта.

max-transaction-time

max-transaction-time ограничивает максимальное время выполнения кода транзакции в миллисекундах. Если выполнение кода превышает это время, транзакция считается недействительной. Значение по умолчанию — 30 мс.

max-irreversible-block-age

Параметр max-irreversible-block-age устанавливает максимальный возраст (в секундах) необратимого блока DPOS для цепочки, на которой эта нода будет производить блоки. Значение -1 указывает на отсутствие ограничений.

producer-name

producer-name задает идентификатор продюсера, контролируемого этой нодой. Может быть указано несколько раз для определения нескольких продюсеров.

signature-provider

Параметр signature-provider задает пары ключ-значение в формате =, где определяет тип и данные провайдера для подписи транзакций. Например, KEY: для приватного ключа EOSIO или KEOSD: для URL-адреса, где доступен keosd.

greylist-account

greylist-account определяет аккаунты, которые не могут использовать расширенные виртуальные ресурсы CPU/NET.

greylist-limit

Параметр greylist-limit ограничивает (от 1 до 1000) множитель виртуальных ресурсов CPU/NET, которые могут расширяться при низкой загрузке. Значение 1000 отключает ограничение.

produce-time-offset-us

produce-time-offset-us задает смещение времени производства блоков в микросекундах. Диапазон допустимых значений — от 0 до отрицательного значения block_time_interval.

last-block-time-offset-us

last-block-time-offset-us задает смещение времени производства последнего блока в микросекундах. Диапазон допустимых значений — от 0 до отрицательного значения block_time_interval.

cpu-effort-percent

Параметр cpu-effort-percent определяет процент времени CPU, используемого для производства блока. Значения указываются в целых числах, например, 10 для 10%.

last-block-cpu-effort-percent

last-block-cpu-effort-percent определяет процент времени CPU, используемого для производства последнего блока. Значения указываются в целых числах, например, 10 для 10%.

max-block-cpu-usage-threshold-us

Параметр max-block-cpu-usage-threshold-us определяет пороговое значение использования CPU для блока, при достижении которого блок считается заполненным и может быть произведен немедленно.

max-block-net-usage-threshold-bytes

max-block-net-usage-threshold-bytes задает пороговое значение использования сети для блока в байтах. При достижении этого значения блок считается заполненным и может быть произведен немедленно.

max-scheduled-transaction-time-per-block-ms

Параметр max-scheduled-transaction-time-per-block-ms ограничивает максимальное время (в миллисекундах), затрачиваемое на обработку запланированных транзакций (и входящих транзакций в соответствии с incoming-defer-ratio) в любом блоке перед возвращением к нормальной обработке транзакций.

subjective-cpu-leeway-us

subjective-cpu-leeway-us определяет время в микросекундах, разрешенное для завершения транзакции, которая начинается с недостаточной квоты CPU, чтобы покрыть ее использование.

subjective-account-max-failures

Параметр subjective-account-max-failures задает максимальное количество неудачных попыток для конкретного аккаунта в пределах размера окна.

subjective-account-max-failures-window-size

subjective-account-max-failures-window-size определяет размер окна в количестве блоков для параметра subjective-account-max-failures.

subjective-account-decay-time-minutes

Параметр subjective-account-decay-time-minutes устанавливает время (в минутах) для возврата полной субъективной CPU квоты для аккаунтов.

incoming-defer-ratio

incoming-defer-ratio определяет соотношение между входящими транзакциями и отложенными транзакциями, когда обе очереди ожидают выполнения.

incoming-transaction-queue-size-mb

Параметр incoming-transaction-queue-size-mb определяет максимальный размер очереди входящих транзакций в мегабайтах. Превышение этого значения приведет к субъективному отклонению транзакции из-за исчерпания ресурсов.

disable-subjective-billing

disable-subjective-billing отключает субъективное выставление счетов за CPU для транзакций API/P2P.

disable-subjective-account-billing

Параметр disable-subjective-account-billing определяет аккаунт, исключенный из субъективного выставления счетов за CPU.

disable-subjective-p2p-billing

disable-subjective-p2p-billing отключает субъективное выставление счетов за CPU для P2P транзакций.

disable-subjective-api-billing

Параметр disable-subjective-api-billing отключает субъективное выставление счетов за CPU для API транзакций.

producer-threads

producer-threads определяет количество потоков в пуле потоков продюсера.

snapshots-dir

Параметр snapshots-dir указывает расположение каталога снимков состояния (snapshot), абсолютный путь или путь относительно каталога данных приложения.

read-only-threads

read-only-threads задает количество потоков в пуле потоков для выполнения операций только на чтение. Максимум — 8 потоков.

read-only-write-window-time-us

Параметр read-only-write-window-time-us задает время в микросекундах, которое длится окно записи.

read-only-read-window-time-us

read-only-read-window-time-us определяет время в микросекундах, которое длится окно чтения.

prometheus-exporter-address

Параметр prometheus-exporter-address определяет локальный IP-адрес и порт для прослушивания входящих HTTP-запросов с метриками Prometheus.

resource-monitor-interval-seconds

resource-monitor-interval-seconds определяет интервал времени (в секундах) между двумя последовательными проверками использования ресурсов. Диапазон допустимых значений от 1 до 300.

resource-monitor-space-threshold

Параметр resource-monitor-space-threshold определяет порог в процентах использования пространства относительно общего объема. Если использование пространства превышает (порог - 5%), генерируется предупреждение, и, если resource-monitor-not-shutdown-on-threshold-exceeded не включен, начинается плавное завершение работы.

resource-monitor-space-absolute-gb

resource-monitor-space-absolute-gb определяет абсолютный порог в гигабайтах оставшегося пространства для каждого мониторируемого каталога. Если оставшееся пространство меньше указанного значения для любого из мониторируемых каталогов, порог считается превышенным.

resource-monitor-not-shutdown-on-threshold-exceeded

Параметр resource-monitor-not-shutdown-on-threshold-exceeded используется для указания, что nodeos не завершит работу при превышении порога использования ресурсов.

resource-monitor-warning-interval

resource-monitor-warning-interval задает количество интервалов мониторинга ресурсов между двумя последовательными предупреждениями, когда порог достигается. Значение должно быть от 1 до 450.

keosd-provider-timeout

Параметр keosd-provider-timeout ограничивает максимальное время (в миллисекундах), разрешенное для отправки запросов к провайдеру keosd для подписания транзакций.

state-history-retained-dir

state-history-retained-dir указывает расположение каталога, в котором сохраняется история состояния (относительно каталога state-history или абсолютный путь).

state-history-archive-dir

Параметр state-history-archive-dir задает расположение каталога архива истории состояния (относительно каталога state-history или абсолютный путь). Если значение пустое, файлы блоков, превышающие установленный лимит хранения, будут удалены.

state-history-stride

state-history-stride задает интервал (в номерах блоков), после которого файлы журналов истории состояния будут разрезаны и переименованы, а новые журналы будут созданы с самыми последними блоками.

max-retained-history-files

Параметр max-retained-history-files определяет максимальное количество групп файлов истории, которые должны быть сохранены для того, чтобы блоки в этих файлах можно было запросить.

trace-history

trace-history включает или отключает ведение истории трассировки.

chain-state-history

Параметр chain-state-history включает или отключает ведение истории состояния цепочки.

state-history-endpoint

state-history-endpoint задает конечную точку, на которой будет прослушиваться входящие соединения. Рекомендуется открывать этот порт только для внутренней сети.

state-history-unix-socket-path

Параметр state-history-unix-socket-path указывает путь (относительно data-dir) для создания Unix-сокета, на котором будут прослушиваться входящие соединения.

trace-history-debug-mode

trace-history-debug-mode включает или отключает режим отладки для истории трассировки.

state-history-log-retain-blocks

Параметр state-history-log-retain-blocks задает, если установлен, периодическую очистку файлов истории состояния для хранения только заданного числа самых последних блоков.

trace-dir

trace-dir указывает расположение каталога для хранения трассировки (trace) данных, абсолютный путь или путь относительно каталога данных приложения.

trace-slice-stride

Параметр trace-slice-stride определяет количество блоков в каждом "срезе" данных трассировки на файловой системе.

trace-minimum-irreversible-history-blocks

trace-minimum-irreversible-history-blocks задает количество блоков, которые необходимо сохранить после LIB для извлечения до того, как файлы "срезов" могут быть автоматически удалены. Значение -1 указывает на то, что автоматическое удаление "срезов" будет отключено.

trace-minimum-uncompressed-irreversible-history-blocks

Параметр trace-minimum-uncompressed-irreversible-history-blocks задает количество блоков, которые должны оставаться не сжатыми после LIB. Сжатые файлы "срезов" все еще доступны, но могут снижать производительность при извлечении. Значение -1 указывает на то, что автоматическое сжатие "срезов" будет отключено.

trace-rpc-abi

trace-rpc-abi указывает ABI, используемые при декодировании ответов RPC трассировки. Должен быть указан как минимум один ABI или должна быть включена опция trace-no-abis.

trace-no-abis

Параметр trace-no-abis используется для указания, что ответы RPC не будут использовать ABI.

plugin

Параметр plugin используется для включения одного или нескольких плагинов. Может быть указан несколько раз для включения нескольких плагинов.