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

Эмиссия и сбор

Эмиссия Epic снижается по определённым эрам и в конечном счёте прекращается, а убывающий сбор в пользу фонда забирает часть каждой награды за блок.

Единицы

ЕдиницаFreemen
1 EPIC100,000,000 (EPIC_BASE)
1 милли-EPIC100,000 (MILLI_EPIC)
1 микро-EPIC100 (MICRO_EPIC)
freeman1 (FREEMAN)

Каждый API принимает и возвращает целые числа freemen. 0.1 EPIC — это 10000000.

Тайминг

ПараметрЗначение
Целевое время блока60 секунд (BLOCK_TIME_SEC)
Блоков в час60
Блоков в день1,440
Горизонт cut-through10,080 блоков (CUT_THROUGH_HORIZON)

Зрелость coinbase — это количество блоков, которое добытый выход (output) ожидает перед тем, как его можно потратить. Значение определяется активным типом цепочки:

СетьЗрелость Coinbase
Mainnet1,440 блоков (COINBASE_MATURITY, один день блоков)
Floonet30 блоков (FLOONET_COINBASE_MATURITY)
Usernet3 блока (USER_TESTING_COINBASE_MATURITY)
Автоматизированное тестирование3 блока (AUTOMATED_TESTING_COINBASE_MATURITY)

Выбор — coinbase_maturity().

Зрелый coinbase по-прежнему подчиняется собственному порогу подтверждений кошелька, --min_conf, который по умолчанию равен 10 в каждой сети. См. операции с кошельком.

Эры вознаграждения

Эмиссия снижается на границах эр, а не следует плавной кривой:

Эра заканчиваетсяВысотаПродолжительностьБазовая награда
Эра 1480,960334 дня16 EPIC
Эра 21,157,760+ 470 дней8 EPIC
Эра 32,023,200+ 601 день4 EPIC
Эра 43,175,200+ 800 дней2 EPIC
Эра 54,642,560+ 1,019 дней1 EPIC
Эра 6 и далееповторяющиеся шагипо 1,460 дней0.15625 EPIC, уменьшается вдвое на каждом шаге

Значения для каждой эры приведены в fast_total_supply(). Базовая награда — это не то, что получает майнер, поскольку сначала из неё вычитается сбор в пользу фонда. На локальной цепочке на высотах эры 1 добытый блок зачислял в кошелёк 14.5792 EPIC, то есть 16 EPIC за вычетом сбора 8.88% эры 1.

Начиная с эры 6 базовая награда составляет 0.15625 EPIC (BASE_REWARD_ERA_6_ONWARDS), а шаги продолжаются с периодом 1,460 дней. Константы эр определены начиная с BLOCK_ERA_1, а награда вычисляется функцией reward_at_height().

Reward steps are not halvings

Переход с эры 5 на эру 6 снижает награду с 1 EPIC до 0.15625 EPIC — уменьшение в 6.4 раза, а не в 2. Поле blocks_to_next_halving в ответе Status узла считает блоки до следующего шага, и шаг не является халвингом. Строить проекцию предложения следует на основе таблицы эр.

Награды вычисляются с целочисленной арифметикой, поэтому на поздних шагах они достигают нуля и эмиссия прекращается. Два поля в ответе Status сообщают о предложении, оба в целых EPIC, а не в freemen:

ПолеЗначение
supplyfast_total_supply() на текущей высоте, делённое на 100,000,000
max_supplyФиксированное число 21000000, задано в обработчике статуса (api/src/handlers/server_api.rs:86)

max_supply — значение, которое несёт ответ статуса. Консенсусной константы с таким именем не существует, и ни одно из полей не участвует в валидации блоков или транзакций. Расписание эмиссии — это таблица эр выше.

Сбор фонда

Часть каждой награды за блок направляется в фонд Epic, а не майнеру; доля убывает на протяжении девяти эр сбора:

Эра сбораСтавка
18.88%
27.77%
36.66%
45.55%
54.44%
63.33%
72.22%
81.11%
91.11%

Ставки — FOUNDATION_LEVY из расчёта на 10,000, применяются функцией reward_foundation_at_height().

Первая эра сбора длится 120 дней, каждая последующая — 365 дней, всего девять эр, поэтому сбор заканчивается на высоте 4,377,600, и с этого момента полная награда достаётся майнеру.

Платежи фонду используют заранее сгенерированные данные coinbase, поставляемые вместе с узлом, по одной записи на каждый день расписания сбора (foundation_height()), поэтому coinbase фонда формируется из этих данных, а не майнером.

Комиссии

Комиссия зависит от структуры транзакции, а не от спроса в сети:

fee = max(4 × outputs + kernels − inputs, 1) × 0.001 EPIC

Перевод с двумя входами (inputs), двумя выходами (outputs) и одним ядром (kernel) стоит 700,000 freemen, или 0.007 EPIC. Вес равен TransactionBody::weight(), а базовая комиссия — MILLI_EPIC, 100,000 freemen (core/src/libtx/mod.rs:37).

Кошелёк не задаёт базовую комиссию, поэтому рынка комиссий для торгов не существует. Вес блока ограничен значением 40,000 (MAX_BLOCK_WEIGHT): входы имеют вес 1, выходы — 21, ядра — 3. Пул применяет собственный нижний порог через accept_fee_base, также равный 100,000 по умолчанию.

Далее