Алгоритм для сервиса покупки апвотов
Почитав статью об апвот-ботов в steem, я задумался о реализации чего-то подобного для Голоса. Первый такой сервис уже запилили в @vp-freelance. Но мне не понравилась, что там фиксированная цена апвота, что совершенно не выгодно при наших квадратичных начислениях. Поэтому я задумал сделать сервис с динамической ценой.
И так, мой сервис - @upit. Анонс и как им пользоваться.
В этой статье рассмотрим алгоритм вычисления цены апвота.
Честная цена
Как сделать так, чтобы наш апвот был выгоден обоим сторонам? Моя задумка была такова, чтобы сделать цену апвота равной половине того, что он приносит. Для этого нам надо сделать расчёты выплаты поста аналогично тому, как это делает сам Голос.
Алгоритм
Выплата за пост высчитывается исходя из сумм rshares
кураторов. Подробно у @now тут. А rshares - это в свою очередь персональный вклад куратора, как он считается опять же есть статья у @now.
И так, сам алгоритм:
- Считаем текущую выплату поста исходя из его
net_rshares
. - Прибавляем наши
rshares
кnet_rshares
и снова считаем выплату. - Вычитаем из второго числа первое и получаем таким образом наш вклад в Голосах.
- Пересчитываем GOLOS в GBG по медианному курсу делегатов.
- Делим пополам то что получилось.
Подводные камни квадратичности
Сразу после публикации поста, пока он ничего не набрал, цена на наш апвот по этому алгоритму будет минимальной. В дальнейшем, по мере того как за пост будут голосовать другие, общая выплата поста будет увеличиваться, соответственно и наш вклад будет более весомым для выплаты. Но так как мы проголосовали в начале, автор получит больше профита.
Для уменьшения этого эффекта имеет смысл ограничивать минимальную цену апа, либо не принимать заказ на ап слишком свежего поста, т.е. брать в обработку только посты, с момента публикации которых прошло какое-то время.