Адаптивная комиссия
Комиссия за байт транзакции должна быть прямо пропорциональна текущей нагрузке на сеть:
При максимальной нагрузки в сети комиссия максимальна.
При отсутствии нагрузки - комиссия минимальна.
При половинной нагрузке в сети - комиссия в половину от максимальной.
Для реализации необходимо определить:
Механизм измерения нагрузки.
Как и чем измеряется нагрузка.
Как определить максимальную нагрузку.
Механизм измерения комиссии.
Как взимается комиссия.
Как определить максимальную комиссию.
Механизм измерения нагрузки
Для измерения нагрузки используем 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