Перейти к основному содержимому

epic-server.toml

Полный справочник по файлу конфигурации узла. Показанные значения по умолчанию соответствуют тому, что записывает свежая установка mainnet.

Каждый ключ требует перезапуска для вступления в силу. Файл читается один раз при запуске; сигнал перезагрузки не поддерживается.

Расположение файла

Узел ищет конфигурацию в следующем порядке:

  1. --config_file <path>, если указан. Отсутствие файла по явно заданному пути является фатальной ошибкой.
  2. ./epic-server.toml в текущем рабочем каталоге.
  3. ~/.epic/<network>/epic-server.toml, создаётся со значениями по умолчанию, если отсутствует.

<network> — это main, floo, user или auto.

epic server config записывает свежий epic-server.toml в текущий каталог, указывая пути на этот каталог. Перезаписывать существующий файл отказывается.

Усиленная отправная точка

Сгенерированный файл содержит все ключи со значениями по умолчанию. Минимальная защищённая конфигурация отличается от этих значений по умолчанию в следующих ключах:

epic-server.toml
[server]
# Только loopback. Для доступа с другого хоста используйте аутентифицирующий прокси.
api_http_addr = "127.0.0.1:3413"
api_secret_path = "/home/you/.epic/main/.api_secret"

# Необязательный, создаётся вручную: узел этот файл не записывает.
foreign_api_secret_path = "/home/you/.epic/main/.foreign_api_secret"

# Хранить полную историю блоков без обрезки.
archive_mode = true

# Устанавливайте в false только для самостоятельной проверки всего исторического доказательства работы.
# skip_pow_validation = true
# disable_checkpoints = true

[server.p2p_config]
host = "0.0.0.0"
port = 3414

[logging]
log_to_file = true
file_log_level = "Info"

См. аутентификация и TLS для foreign secret и настройка узла и кошелька для начала работы.

[server]

КлючТипDefaultНазначение
db_rootstring~/.epic/main/chain_dataКаталог, содержащий базы данных цепочки и пиров
api_http_addrhost:port127.0.0.1:3413Адрес прослушивания для HTTP API
api_secret_pathstring, optional~/.epic/main/.api_secretСекрет базовой аутентификации для /v1 и /v2/owner. Закомментируйте, чтобы запустить без него
foreign_api_secret_pathstring, optional.foreign_api_secret, относительныйСекрет базовой аутентификации для /v2/foreign. Создайте файл вручную. См. аутентификация API
foundation_pathstring/usr/share/epic/foundation.json, или .\foundation.json на WindowsПредварительно сгенерированные данные coinbase фонда
tls_certificate_filestring, optionalunsetЦепочка PEM-сертификатов. Установка переключает API на HTTPS
tls_certificate_keystring, optionalunsetПриватный ключ PEM. Обязателен, если сертификат задан
chain_typeenumMainnetMainnet, Floonet, UserTesting, AutomatedTesting
chain_validation_modeenumDisabledEveryBlock выполняет полную валидацию цепочки после каждого блока
archive_modebool, optionalfalsetrue сохраняет полную историю блоков вместо обрезки
skip_pow_validationbool, optionaltrueПропустить валидацию доказательства работы для исторических блоков при синхронизации
disable_checkpointsbool, optionaltrueРазрешить пропуск доказательства работы за пределами контрольного диапазона. Действует только когда skip_pow_validation равно true
skip_sync_waitbool, optionalfalseПропустить ожидание синхронизации при запуске
header_sync_timeoutсекунды10Таймаут ожидания подтверждения наличия новых заголовков. Ноль или отрицательное значение заменяется на 10
run_tuibool, optionalfalseЗапустить терминальный интерфейс. Включение отключает вывод в stdout
only_randomxbool, optionalfalseПринудительная политика блоков только RandomX в тестовой сети. См. политику блоков
no_progpowbool, optionalfalseУдалить ProgPow из политики блоков в тестовой сети. См. политику блоков
run_test_minerbool, optionalfalseВстроенный майнер, только Cuckoo. Майнинг цепочки требует Stratum и внешнего майнера. См. запуск локальной сети
test_miner_wallet_urlstring, optionalunsetСлушатель кошелька, получающий coinbase тестового майнера. Если не задано, используется http://127.0.0.1:13415

Оба ключа валидации синхронизации по умолчанию равны true и ускоряют начальную синхронизацию. В пределах 1,000 блоков от вершины цепочки доказательство работы проверяется полностью независимо от их значений. См. настройка узла и кошелька для описания того, что каждый из них пропускает.

[server.p2p_config]

КлючТипDefaultНазначение
hostIP0.0.0.0Интерфейс для прослушивания. 127.0.0.1 ограничивает локальным доступом
portu163414, 13414 floonet, 23414 usernetПорт P2P-прослушивания
seeding_typeenumDNSSeed, None на usernetNone, List, DNSSeed, Programmatic. DNSSeed запрашивает node.epiccash.com:3414 в mainnet и floonet.epiccash.com:13414 в floonet. См. сети — когда использовать List
seedsмассив ip:port, необязательноне задано в коде, четыре адреса в сгенерированном файлеИспользуется при seeding_type = "List". Запуск завершается ошибкой, если этот тип задан без списка
capabilitiesфлаги u3231Что узел анонсирует. См. таблицу битов ниже
peer_min_preferred_outbound_countu32, optional4Исходящие пиры, к которым узел постоянно пытается подключиться, и их количество, необходимое для выхода состояния синхронизации из AwaitingPeers. Отсутствует в сгенерированном файле. Установите 0 в приватной цепочке, где сервер Stratum иначе отказывает в работе
peers_allowмассив, необязательноunsetПодключаться только к этим пирам
peers_denyмассив, необязательноunsetНикогда не подключаться к этим пирам
peers_preferredмассив, необязательноunsetПредпочтительные пиры, активный дозвон
ban_windowсекунды, необязательно10800Как долго заблокированный пир остаётся заблокированным
peer_max_inbound_countu32, optional128Максимум входящих пиров
peer_max_outbound_countu32, optional128Максимум исходящих пиров
peer_listener_buffer_countu32, optional8Запас сверх лимита входящих пиров для помощи при начальной загрузке
dandelion_peerip:port, необязательноunsetЗакреплённый релей Dandelion
my_onion_addrstring, optionalunsetСобственный onion-адрес этого узла

Четыре адреса, которые записывает сгенерированный файл (config/src/comments.rs:272):

epic-server.toml, p2p seeds
seeds = ["95.217.197.180:3414","5.161.127.56:3414","5.75.242.4:3414","5.78.71.29:3414"]

Биты возможностей:

БитЗначениеЗначение
HEADER_HIST1Отдаёт историю заголовков
TXHASHSET_HIST2Отдаёт историю txhashset
PEER_LIST4Отдаёт списки пиров
TX_KERNEL_HASH8Отдаёт хеши ядер
HEADER_FASTSYNC16Поддерживает быструю синхронизацию заголовков
ONIONSTEM32Поддерживает stem-транзакции через onion-маршрут

Значение по умолчанию 31 — это все биты, кроме ONIONSTEM.

[server.pool_config]

КлючТипDefaultНазначение
accept_fee_baseu64100000Минимальная комиссия на единицу веса транзакции для принятия в пул
max_pool_sizeusize50000Максимальное количество транзакций в основном пуле
max_stempool_sizeusize50000Максимальное количество транзакций в стемпуле
mineable_max_weightusize40000, 150 на usernet и при автоматическом тестированииМаксимальный суммарный вес, упаковываемый майнером в блок

[server.dandelion_config]

КлючТипDefaultНазначение
epoch_secsu16600Длина одной эпохи Dandelion
embargo_secsu16180Транслировать в сеть стемированную транзакцию, если она не появилась до истечения этого времени
aggregation_secsu1630Окно агрегации перед релеем
stem_probabilityu8 процент90Вероятность режима стема для эпохи
always_stem_our_txsbooltrueВсегда стемировать транзакции, поданные через собственный API

[server.stratum_mining_config]

КлючТипDefaultНазначение
enable_stratum_serverbool, optionalfalse на каждой сетиЗапустить сервер Stratum. Сгенерированный конфиг содержит false для любой сети
stratum_server_addrstring, optional127.0.0.1:3416Адрес прослушивания Stratum
attempt_time_per_blockсекунды15Сколько времени майнить один заголовок перед его пересборкой
cuckatoo_minimum_share_difficultyu643Минимальная сложность шары для воркеров Cuckatoo
randomx_minimum_share_difficultyu644000, 1 при usertestingМинимальная сложность шары для воркеров RandomX
progpow_minimum_share_difficultyu64200000Минимальная сложность шары для воркеров ProgPow
wallet_listener_urlstringhttp://127.0.0.1:3415Слушатель кошелька, получающий награды coinbase
burn_rewardboolfalseОтбросить награду за блок вместо выплаты кошельку. Только для тестирования

Оставьте секцию [server.stratum_mining_config] и установите enable_stratum_server = false, чтобы отключить майнинг. См. Stratum для описания протокола.

[server.webhook_config]

КлючТипDefaultНазначение
tx_received_urlstring, optionalunsetPOST-цель при получении транзакции от пира
header_received_urlstring, optionalunsetPOST-цель при получении заголовка
block_received_urlstring, optionalunsetPOST-цель при получении блока
block_accepted_urlstring, optionalunsetPOST-цель при принятии блока этим узлом, включая реорги
nthreadsu164Рабочие потоки для доставки webhook
timeoutсекунды10Таймаут HTTP-запроса

[server.tor]

КлючТипDefaultНазначение
socks_proxy_addrstring127.0.0.1:9050Адрес SOCKS-прокси, записывается в генерируемый torrc
send_config_dirstring.Каталог для torrc, data/ и адресов onion-сервиса

Маршрутизация через onion stem также требует, чтобы capabilities включал бит ONIONSTEM, значение 32, которое значение по умолчанию 31 исключает.

[logging]

КлючТипDefaultНазначение
log_to_stdoutbooltrueЛогировать в stdout
stdout_log_levelenumInfoError, Warning, Info, Debug, Trace
log_to_fileboolfalseЛогировать в файл
file_log_levelenumDebugУровень для файлового лога
log_file_pathstring~/.epic/main/epic-server.logПуть к файлу лога
log_file_appendbooltrueДописывать, а не перезаписывать при каждом запуске
log_max_sizebytes, optional16777216Ротация при превышении этого размера. Закомментируйте для отключения ротации
log_max_filesu32, optional32Сколько ротированных файлов хранить
tui_runningbool, optionalunsetУстанавливается из run_tui при запуске

Свежий узел не записывает лог-файл, поскольку log_to_file равно false, тогда как log_file_path заполнен. Установите log_to_file = true для записи лога на диск.

Исходный код

Эти значения берутся из структур конфигурации и их значений по умолчанию:

Далее