Адаптивная комиссия

Комиссия за байт транзакции должна быть прямо пропорциональна текущей нагрузке на сеть:

  • При максимальной нагрузки в сети комиссия максимальна.

  • При отсутствии нагрузки - комиссия минимальна.

  • При половинной нагрузке в сети - комиссия в половину от максимальной.

Для реализации необходимо определить:

  • Механизм измерения нагрузки.

    • Как и чем измеряется нагрузка.

    • Как определить максимальную нагрузку.

  • Механизм измерения комиссии.

    • Как взимается комиссия.

    • Как определить максимальную комиссию.

Механизм измерения нагрузки

Для измерения нагрузки используем 2 подхода:

  • Максимальную нагрузку оцениваем как обработку полного блока (в 1 000 000 байт) каждые 10 секунд.

  • Для оценки текущей нагрузки используем заполненность блоков в tendermint и максимальный размер блока, заданный в параметрах консенсуса tendermint. Для усреднения считаем среднее значение по блокам за последние 5 минут.

Механизм измерения комиссии

Для взимания комиссии используется Концепция-заряда-и-емкости.

Для оценки максимальной комиссии принимаем, что весь заряд сети должен тратиться со скоростью восстановления.

Максимальная скорость восстановления зависит от общего баланса сети (т.е. от общей эмиссии монет).

Зная максимальную скорость восстановления и максимальную пропускную способность, можно рассчитать максимальную комиссию за байт транзакции.

Принятые допущения

  • Максимальная нагрузка - блок в 1МБ за 10 секунд.

  • Окно оценки текущей нагрузки - 5 минут.

  • Текущая нагрузка измеряется по параметрам блока tendermint.

  • Весь заряд сети должен тратиться со скоростью восстановления при максимальной нагрузке.

Оценка в числах

  • 240 000 000 - эмиссия в EON 1.

  • 1 000 000 байт в блоке максимум.

  • 10 секунд на генерацию блока.

  • 500 байт - средняя длина транзакции.

Пример 1: нагрузка - пик

  • Максимальное восстановление заряда в секунду: 240 000 000 /24/60/60 = 2 777 ~ 3 000 EON / сек

  • Максимальная нагрузка в секунду: 1 000 000 / 10 = 100 000 байт / сек

  • Максимальная комиссия за байт: 3000/100000 = 0,03 EON/байт.

  • Если 1 транзакция занимает 500 байт, то это 15 EON.

  • Т.е. при пиковой нагрузке надо иметь 15 EON для отправки 1 транзакции в день.

Для проведения 1 тр в день надо 15 EON на балансе

Пример 2: нагрузка - 1тр/сек

  • Максимальная комиссия за байт: 0,03 EON/байт.

  • Реальная нагрузка: 500 байт/сек

  • Коэф. нагрузки: 500/100000 = 0,005

  • Реальная комиссия за байт: 0,03*0,005 = 0,00015 EON за байт

  • Комиссия за транзакцию: 0,00015*500 = 0,075 ~ 0,1 EON для отправки 1 тр в сутки

Для проведения 1 тр в день надо 0.1 EON на балансе

Пример 3: нагрузка - 10тр/сек

  • Максимальная комиссия за байт: 0,03 EON/байт.

  • Реальная нагрузка: 5000 байт/сек

  • Коэф. нагрузки: 5000/100000 = 0,05

  • Реальная комиссия за байт: 0,03*0,05 = 0,0015 EON за байт

  • Комиссия за транзакцию: 0,0015*500 = 0,75 ~ 1 EON для отправки 1 тр в сутки

Для проведения 1 тр в день надо 1 EON на балансе

Last updated