Доходность ноды. Как посчитать

nodes
leasing

#1

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

Кратко разберёмся с тем, как вообще нода майнит.

Буду немного упрощать. В блокчейне Waves на момент написания этого поста работает 200+ нод. Часть этих нод (примерно половина) имеет на кошельке ноды собственный или лизинговый генерирующий баланс более 1000 :waves: Waves. Это означает, что такие ноды имеют право на создание блока в сети. Частота создания блоков установлена на отметке 1 минута, таким образом, за сутки в блокчейне Waves создаётся примерно 1400 новых блоков. Просмотреть точное количество блоков, сгенерированных за разные периоды, можно тут. Давайте немного разберёмся с контентом этой страницы.

Учимся понимать таблицу.

  1. Каждая строчка в таблице - это отчётный период, равный 24 часам.
  2. Столбец Date. В этом столбце содержится маркировка дат отчётных периодов. С помощью него мы идентифицируем время, за которое был сформирован отчёт.
  3. Столбец Empty Blocks. В этом столбце мы можем узнать количество пустых блоков (блоков, содержащих 0 транзакций), сгенерированных за отчётный период.
  4. Столбец Non-empty blocks. В этом столбце содержится информация о количестве блоков, которые были частично заполнены транзакциями.
  5. Столбец Full blocks. В этом столбце содержится информация о количестве полностью заполненных блоков, созданных за отчётный период. Теоретически, полностью заполненный блок в блокчейне Waves может содержать в среднем ~6000 транзакций.
  6. Столбец Total (Empty + NonEmpty). В этом столбце находится итоговое суммарное количество всех блоков, сгенерированных за отчётный период.
  7. Столбец Avg.Txs/block. В этом столбце содержится усреднённое количество транзакций на каждый блок.
  8. Столбец Txs/sec. В этом столбце содержится усреднённое количество транзакций в секунду за отчётный период.

Давайте просуммируем некоторые данные. За последний год (360 отчётных периодов) мы видим, что в среднем количество сгенерированных блоков за сутки равно 1375, а среднее количество пустых блоков за сутки равно 94. Берём калькулятор, считаем:

94*100/1375=~7

Таким образом, каждый генерируемый нодой блок имеет шанс, равный ~7%, оказаться пустым. Это означает, что в таком блоке не будет транзакций. И поскольку ноды получают вознаграждения за комиссию с транзакций, которые они записали в сгенерированные блоки, то из таких блоков нода будет получать 0 :waves: Waves.

Теперь давайте разберёмся с тем, сколько, в среднем, нода будет получать :waves: Waves за частично заполненные блоки. Профиты за полностью заполненные блоки мы считать не будем, потому что за последние 240 дней полностью заполненных блоков сгенерировано не было.

Итак, в подсчётах нам поможет эта страница.

Учимся понимать эту таблицу.

В приведённой выше таблице опубликована статистика по всем нодам, которые сгенерировали хотя бы 1 блок за последние 30 дней. Таких нод на момент написания этой статьи зафиксировано 85. Таким образом, за последний месяц, в создании 43860 блоков приняли участие 85 нод. Общий усреднённый генерирующий баланс за прошедшие 30 дней составил ~43.855.672 :waves: Waves.

Выражаясь более понятным языком, на всех нодах, которых было 85 штук, и которые сгенерировали хотя бы 1 блок, присутствует какое-то количество Waves. На каждой отдельно взятой ноде находится 1000+ Waves, а суммарно на всех этих нодах ~43.855.672 Waves. Этих данных недостаточно, чтобы сделать точный срез, но для примерного анализа, который позволит осуществить необходимые калькуляции, их хватит.

  1. Generator. В этом столбце записаны адреса нод, которые генерируют блоки. Нопоминаю, что в разбираемом нами примере приведён список нод, которые сгенерировали хотя бы 1 блок за 30 дней.
  2. Average Gen.Balance. Здесь можно посмотреть генерирующий баланс той или иной ноды. Помните, что данные на этом сайте немного отличаются от реальных, так как отображаются усреднённые показатели за 30 дней. В течение месяца генерирующий баланс постоянно изменяется в большую или меньшую сторону (особенно у крупных нод), так что усреднение допустимо.
  3. Average share. Очень интересный столбец. Он отображает тот процент, который занимает генерирующий баланс ноды от общего генерирующего баланса сети. В данном случае, на скриншоте отображается процент генерирующего баланса ноды от суммарного генерирующего баланса сети, который равен ~43.855.672 :waves: Waves. Например, нода на скриншоте под №16 с адресом 3PEFQiFMLm1gTVjPdfCErG8mTHRcH2ATaWa имеет среднемесячный генерирующий баланс 459.061 :waves: Waves что составляет примерно 1.05% от общего генерирующего баланса сети.
  4. Estimated blocks. В этом столбце мы можем посмотреть, какое количество блоков должна была сгенерировать нода за месяц с учётом её усреднённого генерирующего баланса. К примеру, всё та же нода №16 должна была сгенерировать за прошедший месяц примерно 459 блоков.
  5. Mined blocks. А тут мы видим фактическое количество сгенерированных блоков. И мы видим, что нода №16 сгенерировала 458 блоков.
  6. Perfomance ratio. Это важнейший столбец для любой ноды из приведённой таблицы. Он показывает нам индекс производительности ноды. Считается этот индекс по очень простой формуле:

X=Y/Z

где X - это индекс производительности, Y - это количество фактически сгенерированных блоков, а Z - это количество блоков, которое нода должна была сгенерировать за отчётный период (сейчас мы говорим про 30 дней). Таким образом, мы видим, что индекс производительности ноды №16 за месяц равен 0.998, что близко к идеалу. Запомните, что не важно, какой у вас генерирующий баланс, главное, чтобы при генерировании блоков ваша нода имела индекс производительности, максимально приближённый к 1.

  1. WAVES fees. Преходим к профитам, друзья. Столбец показывает нам, сколько :waves: Waves получила та или иная нода из сгенерированных блоков. Не забывайте, что ноды не ищут в блоках спрятанные Waves. Ноды просто генерируют блоки, а за это получают все комиссионные сборы, которые были оплачены юзерами за произведённые транзакции в сети Waves. К транзакциям относятся отправка токенов (0.001 Waves), массовая рассылка токенов ака эирдроп (до 0.051 Waves за рассылку), исполнение ордера на бирже Waves DEX (до 0.006 Waves за исполненный ордер), выпуск токена (самая дорогая транзакция, 1 Waves) и так далее. Нода №16, имея генерирующий баланс 459.061 Waves и сгенерировавшая 458 блоков блоков, получила в виде вознаграждений от комиссионных сборов ~49 Waves за 30 дней.

Теперь прикинем, сколько :waves: Waves удалось извлечь нодам из каждого блока за 30 дней в среднем. Для этого возьмём экстремумы и медианную величину. Порог нижнего экстремума установим на ноде №61, так как она имеет индекс производительности 0.996, что близко к идеалу, и находится в нижней части списка. После ноды №61 индексы производительности начинают сильно скакать, а потому принимать их к вычислениям неправильно.

Нода, сгенерировавшая абсолютный максимум блоков за месяц, нода №1, имеет следующие показатели:

  1. Всего блоков сгенерировано: 11.821.
  2. Комиссионных сборов из сгенерированных блоков получено: ~1275,86 Waves
  3. Доходность на 1 блок: ~0,108 Waves
  4. Усреднённый генерирующий баланс: 11.826.583 Waves

Нода, сгенерировавшая принятый абсолютный минимум блоков за месяц, нода №61, имеет следующие показатели:

  1. Всего блоков сгенерировано: 13.
  2. Комиссионных сборов из сгенерированных блоков получено: ~1,17 Waves
  3. Доходность на 1 блок: ~0,09 Waves
  4. Усреднённый генерирующий баланс: 13.056 Waves

Нода, сгенерировавшая медианное количество блоков за месяц, нода №16, имеет следующие показатели:

  1. Всего блоков сгенерировано: 458.
  2. Комиссионных сборов из сгенерированных блоков получено: ~48,83 Waves
  3. Доходность на 1 блок: ~0,106 Waves
  4. Усреднённый генерирующий баланс: 459.061 Waves

Итого, средняя доходность каждого блока:

(1275.86/11821 + 1.17/13 + 48.83/458)/3 = 0.101

В среднем, за последний месяц ноды получили за каждый сгенерированный блок по ~0,101 :waves: Waves. Запомним эту цифру.

Итак, на сегодняшний день математика по прибыльности в Waves примерно следующая:

При сохранении среднего количества ежедневно генерируемых блоков на уровне 1400 в сутки и с учётом текущего размера среднего общего сетевого баланса в районе ~43.855.672 Waves новая нода будет генерировать примерно по 1 блоку в месяц за каждую 1.000 Waves на генерирующем балансе.

Таким образом, нода, на балансе которой есть 1.000 :waves: Waves:

  1. Будет генерировать 1 блок в месяц.
  2. Будет получать примерно по по ~0,101 Waves в месяц.

Нода, на балансе которой есть 10.000 Waves:

  1. Будет генерировать 10 блоков в месяц.
  2. Будет получать примерно по по ~1,01 Waves в месяц.

Нода, на балансе которой есть 100.000 Waves:

  1. Будет генерировать 100 блоков в месяц.
  2. Будет получать примерно по по ~10,1 Waves в месяц.

Важно учитывать, что с ростом количества транзакций в сети Waves доходность будет расти, а с увеличением общего генерирующего баланса сети - падать.

Точка безубыточности.

Если исходить из того, что вы будете устанавливать ноду на VPS, то за такой VPS вы будете отдавать примерно $20 ежемесячно. При содержании ноды на домашнем компьютере затраты будут меньше, но добавятся некоторые нюансы.

При биржевом курсе 1 :waves: Waves = $2, на генерирующем балансе вашей ноды для безубыточного содержания должно быть минимум 100.000 Waves. Количество Waves на генерирующем балансе, необходимое для удержания на уровне безубыточности, будет падать с ростом биржевого курса и ростом количества транзакций в сети.

Теперь поговорим про :mrt: MRT.

На этапе развития сети разработчики Waves Platform приняли решение поддержать ноды дополнительными стимулирующими выплатами. Исходя из информации на официальном сайте предполагается следующая математика:

За каждый блок, сгенерированный нодой, разработчики начисляют ноде 60 MRT. Если нода генерирует более 70 блоков в сутки, то начиная с 71 блока начисления MRT уменьшаются в 2 раза, т.е. нода начинает получать по 30 MRT за каждый дополнительный блок.

На момент написания статьи, биржевой курс стимулирующего токена был таким:

1 :mrt: MRT = 0,042 :waves: Waves

Таким образом, за каждый сгенерированный блок нода получает:

~0,101 :waves: Waves (~$0.2) + 60 :mrt: MRT (~$5) = ~$5.2

Если выплаты MRT производятся регулярно, то для вхождения в зону безубыточности ноде достаточно производить хотя бы 4 блока в месяц, а для этого нужно иметь генерирующий баланс в районе 4.000 Waves.

Но не всё так гладко в Вестеросе. Как представитель ноды Tradisys, имеющей генерирующий баланс на момент написания статьи около 640.000 Waves, и работающей уже несколько месяцев, могу сказать, что реальные выплаты MRT ниже примерно в 5-6 раз. И пока это так, для безубыточного содержания ноды минимальный генерирующий баланс должен быть на уровне от 20.000 - 25.000 Waves.

Удачных калькуляций и приятного майнинга!


#2

#3

Отлично. Теперь есть понятия. Спасибо за работу.


#4

Как все просто, четко и по делу написано! Браво!


#5

Статья просто отличная! Спасибо @Tradisys !
Было огромное количество вопросов в чатах про доходность нод, рентабельность и точку безубыточности. Спасибо, что простым языком, математикой и фактами ответил на все вопросы.
И теперь мы знаем, как “читать” эти непонятные таблицы с циферками :wink:


#7

Все по существу.
Дело сейчас неприбыльное, но в будущем перспективное.


#8

ЕМНИП, после введения в эксплуатацию WavesNG комиссия за блок не достается одному майнеру но делится между несолькими в определенной пропорции. Это может внести какие-либо коррективы в вкши выкладки?


#9

Нет, потому что на текущий момент вознаграждение с комиссий является пренебрежительно малой статьей доходности майнера, относительно :mrt:

Плюс в выкладке указаны фактически полученные дивиденды нодами из блоков, которые потом усреднены.


#10

Спасибо за предоставленную информацию.


#11

да, очень хорошо что есть такие расчёты, и как станет это дело прибыльным, то и рост волн будет… одно с другим очень связано


#12

Добрый день! Я так понимаю, информация с доходностью устарела? Имеется ввиду доходность по MRT, смотрю сколько получают ноды через эксплорер, за блок порядка 9 MRT и это у слабых нод, которые по несколько блоков всего лишь генерят. Получается доходность совсем низкая, если конечно не будут блоки по 20 волн попадаться, а малым нодам они не будут попадать, только совсем везучим.


#13

Привет! По МРТ, в целом, да, сейчас выплаты очень незначительные. Но пока нет точных данных…