У участников программы 50/50 существует некоторая путаница с тем, какие проценты возврата ставить в случае использования клиента goldvoice
Пользователи скрипта otkat и Криптобабушка знают, что там процент возврата нужно выставлять равным 80%, и тогда суммарно вознаграждение за пост будет разделено между авторами и кураторами как раз 50/50.
Как Голос производит авторское начисление за пост
Об этом хорошо написано в статье @on1x Экономика Голоса - смена парадигмы у пользователей.
Вкратце: Голос рассчитывает размер вознаграждения в GESTS (сила голоса), половину отдаёт в СГ, а половину конвертирует в GBG.
Какими данными для расчёта можно оперировать
В API голоса есть метод get_content. Он выдаёт всю инфу по посту, включая размер выплат. Пример:
% piston read --full @vvk/problemy-opensource-proekta-golos |grep payout
curator_payout_value: 50.447 GBG
last_payout: 2017-10-14 08:08:18
max_accepted_payout: 1000000.000 GBG
mode: second_payout
pending_payout_value: 2.870 GBG
total_payout_value: 296.506 GBG
total_pending_payout_value: 2.874 GBG
Здесь мы видим значения выплат авторам и кураторам, сконвертированные в GBG "для удобства" (лучше бы ничего не конвертировало а писало как есть, это только вносит путаницу).
Точные данные по выплате в GBG можно взять непосредственно из блокчейна с помощью запроса get_account_history, в частности нас интересует виртуальная операция author_reward
. Пример:
[3510,
{'block': 10363381,
'op': ['author_reward',
{'author': 'vvk',
'permlink': 'problemy-opensource-proekta-golos',
'sbd_payout': '136.392 GBG',
'steem_payout': '4.958 GOLOS',
'vesting_payout': '232626.873549 GESTS'}],
'op_in_trx': 1,
'timestamp': '2017-10-14T08:08:18',
'trx_id': '0000000000000000000000000000000000000000',
'trx_in_block': 3,
'virtual_op': 0}]
Здесь мы уже видим точные значения выплат автору.
Алгоритм скриптов 50/50
Скрипт otkat получает значение sbd_payout, берёт от него 80% и раздаёт апвотерам согласно rshares.
Для моего поста, взятого для примера, otkat предлагает отдать такое значение GBG:
otkat:index:inf userid = vvk +0ms
otkat:index:inf permlink = problemy-opensource-proekta-golos +2ms
otkat:index:inf user's balance = 7.316 +903ms
otkat:index:inf found reward for the post 136.392 GBG +3s
otkat:index:inf reward to pay 109.114 GBG (80%) +0ms
reward = 109.114 GBG
Проблема: скрипт не учитывает размер выплаты в Голосах (steem_payout). А по мере увеличения долга системы (общей массы GBG) это значение будет увеличиваться.
Алгоритм goldvoice
goldvoice берёт total_payout_value
, делит на 2, и по дефолту 50% от этого предлагает раздать кураторам. Уже выплаченные кураторские curator_payout_value
при этом не учитываются.
Рассчёт goldvoice для моего примера: (296.506 / 2) * 0.50 = 74.13 GBG
Если % возврата поставить 80%, получим такое значение: (296.506 / 2) * 0.80 = 118.60
Таким образом goldvoice раздаст немного больше GBG, чем скрипт otkat, компенсируя то, что otkat не учитывает выплату в Голосах.
Вывод
- При использовании goldvoice необходимо выставлять процент кэшбэка 80%.
- Алгоритм скрипта otkat неточен, т.к. не учитывает выплату автору в Голосах (steem_payout)
чичас скажу одну интересную весчь.
total_payout_value: это и есть авторская награда.
она делится попалам, половина идет в СГ автору, а другая половина идет в гбг автору по курсу фидо делегатов (примерно 2,44 или около того)
так что вычитать из нее curator_payout_value, скажем так - крайне ошибочное действие.
все расчеты неоднократно перепроверял и сравнивал по разным постам когда писал свой скрипт.
'sbd_payout': '136.392 GBG',
'steem_payout': '4.958 GOLOS',
'vesting_payout': '232626.873549 GESTS'}],
если гесты перевести в СГ (SP) то она будет равняться золото деленное на фидокурс + GOLOS
Ага, спасибо, убрал ошибочную часть. Впрочем, на выводы это никак не влияет - для точного расчёта надо учитывать
curation_reward
точный расчет зависит от того как кто понимает идею шамана. могу предположить что многие не понимают до конца его посыла.
если рассмотреть буквально. то надо просуммировать тотал ревард с куратор ревард (в вестах) поделить пополам. 1 половина - для автора, вторая половина - кураторская.
кураторскую половину распределить среди апперов по их ршарам. и при этом вычесть из полученного числа те весты, которые они уже получили по заложенной в системе. и уже найденной число перевести в SP то бишь голос, а затем по курсу фидо делегатов рассчитать GBG и именно их перевести как равную награду круатору. при этом должны условно уничтожится квадратичность выплат, 75 на 25, 30 минутка и последовательность апания кураторов (одним словом весь игровой потенциал блокчейна в хлам). это сделать можно, но пока кодер в Испании.
80% GBG - это эмпирически найденная константа шаманом и горохом для упрощения расчетов, я об этом пост уже писал. она действительно в большинстве случаях будет соответствовать тем гбг, которые необходимо раздать.
sbd_payout что берет откат... это уже хуже, так как не учитывает сложившуюся ситуацию добавлять когда не хватает гбг при выплате токеном голос. иногда есть расхождения в цифрах выплат в моем скрипте и в скрипте гороха. как раз из-за того, что я беру половину тотала пейаут. с другой стороны такой подход стабильнее реагирует на "перевыплаты" из-за вложенного округления кураторских выплат до 0.001
так что ты не прав, когда говоришь, что нужно ставить 75-78... надо ставить таки 80... так будет даже справедливее, чем по системе откат, которая не учитывает определенные казусы на блокчейне по выплатам
Не совсем понял, зачем переводить в vests, раз нам система сама уже пересчитала в GBG по медианной цене? Считать как-то так:
шаман в будущем хочет учитывать кураторские выплаты выданные самой системой, а они начисляются в вестах.
всё гораздо более интересно и математично, чем кажется на первый взгляд.
а так Ваша формула верна и истина, я уже этот вопрос затрагивал, почему горох предложил считать именно 80% для меня пока загадка, когда есть точный расчет доли куратора
Проблема в том, что у нас значения
curator_payout_value
иtotal_payout_value
в GBG, а не в vests, получается что мы или оперируем ими "как есть", или парсим операцииauthor_reward
иcuration_reward
.я бы не назвал это проблемой. GBG спокойно можно перевести по формуле в весты.
исходная проблема в том, что на внутренней бирже золотой условно переоценен. это добавляет толику несправедливости
Ага, поправил статью ещё раз. Упустил из вида, что otkat не учитывает steem_payout.
Благодарю за идею по уточнённому алгоритму расчёта, реализовать думаю будет не сложно.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
yurgent71, romannn, shkiper, fair, vika-teplo, shenanigan, alessandarus, naiger, astramar
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас на странице https://golos.io/~witnesses, вот так:
@vvk Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Можно на пальцах из вида:
50% в СГ и 50% в GBG
50% СГ не учитывают и otkat и в goldvoice?
оставшиеся 50% GBG как-то не так делят?
50% СГ * 2,44 = 50% GBG