В продолжение поста о вариантах создания института воркеров и заявок для комитета.
Голосование за заявки в комитет.
Всё, что написано ниже, параллельно просматривается и сверяется с текстом «Вариант воркеров (комитета) GOLOS по алгоритму из Viz» предоставленным @litrbooh.
(Собственно говоря, по голосованию, к вышеупомянутому варианту добавить нечего. Поэтому просто переношу сюда, немного причесав и добавив свой алгоритм использования имеющихся механизмов блокчейна Golos.)
Каждый аккаунт является участником голосования. В GOLOS каждый аккаунт (холдер — владелец доли в СГ) может принять участие в голосовании в рамках своего стека.
В Golos имеется возможность за любой пост по автору/пермлинку проголосовать от -100% до +100%. В интерфейсе (про интерфейс ниже) постов эта возможность представлены как «Голос за» от 0 до 100% и «Флаг» от 0 до 100%. Но в блокчейн при флаговании просто записывается отрицательное значение процента. Поэтому такое голосование ничем не отличается от от голосования за заявки в VIZ.
Так же имеется возможность и снятия голоса с заявки. Расход «батарейки» будет стандартным, как при любом апвоте, но её заряд не должен влиять на weight, указанный в vote. Размер текущего стека вотера должен заносится полностью.
Хочу обратить внимание на тот факт, что в случае поста-заявки указанный процент показывает не часть стека, которая будет зафиксирована за постом для подсчёта выплаты, а указывает на какой процент от максимальной суммы заявки вы готовы согласится для перечисления воркеру из комитета за выполненную работу. Размер же стека на момент голосования должен быть зафиксирован в блокчейне.
Но в текущий момент у меня есть недопонимание. В разделе active_votes для поста у вотеров указываются два одинаковых значения:
"weight": "91299020756",
"rshares": "91299020756",
"percent": 5000,
И, вероятно, 10000/percent * weight и будет той долей стека, которую можно будет использовать в формуле подсчёта итоговой суммы выплаты.
Для упрощения голосования разных групп и сообществ должна быть предусмотрена функция проксирования голосов холдеров. Чтобы любой аккаунт(холдер) мог проксировать возможность голосовать за заявки в комитете другому аккаунту.
При этом проксирование должно автоматически сбрасываться через какой-то срок,
(как варианты: ослабления прокси на 50% в год, обнуления через срок, установленный консенсусом делегатов или другим, обсуждаемым отдельно образом), если холдер не отменил его или не поменял проксирование ранее.
Для защиты от атак мелкими стеками консенсус делегатов назначает параметр committee_request_approve_min_percent, отвечающий за минимально необходимое количество голосов для утверждения заявки в комитете (информация хранится в chain_properties). По умолчанию он равен 10%, что означает — заявка будет отклонена, если проголосует меньшее количество участников всей сети (процент считается от общего объема Силы Голоса).
В момент окончания срока рассмотрения заявки происходит окончательное принятие решения.
Вес долей всех проголосовавших является мерилом для расчета итоговой суммы выплаты от комитета по заявке. Формула расчёта этой суммы берётся из расчётов комитета VIZ.
После каждого проголосовавшего пересчитывается ожидаемая выплата за пост и заносится, с учётом бенефициаров, в данные поста, в соответствующих токенах:
"pending_author_payout_value": "10.652 GBG",
"pending_author_payout_gbg_value": "0.000 GBG",
"pending_author_payout_gests_value": "54562.120304 GESTS",
"pending_author_payout_golos_value": "0.000 GOLOS",
"pending_benefactor_payout_value": "2.662 GBG",
"pending_benefactor_payout_gests_value": "13639.692668 GESTS",
"pending_payout_value": "17.751 GBG",
"total_pending_payout_value": "17.752 GBG",
После расчета итоговой суммы выплаты, она сверяется с минимально допустимой суммой заявки. Если итоговая сумма меньше - заявка отклонена. Если на данный момент минимально необходимое количество голосов для утверждения заявки меньше установленного консенсусом процента - заявка отклонена.
Если набрана хотя бы минимальная сумма, то заявка переходит в статус утвержденной и каждые начинает происходить выплата из фонда комитета, пока не будет выплачена вся сумма. В зависимости от наличия средств в фонде выплата может быть произведена единовременно, либо долями, при имеющихся заявках, подлежащих оплате.
Данные об итоговой сумме выплаты заносится в пост:
"total_payout_value": "0.000 GBG",
"beneficiary_payout_value": "0.000 GBG",
"beneficiary_gests_payout_value": "0.000000 GESTS",
Попутно. Информация о фонде комитета должна содержаться в dynamic_global_properties.
Где может быть такая динамическая информация, как:
"committee_fund_golos": "1171996.402 GOLOS",
"committee_fund_gbg": "1996.002 GBG",
"committee_pending_payout_golos_value": "1000.000 GOLOS",
"committee_pending_payout_gbg_value": "100.000 GBG",
"committee_requests": 8,
Т.е. суммы на счету фонда комитета (в двух токенах), ожидаемые выплаты по закрывшимся заявкам (в двух токенах), количество поданных заявок (для сохранения очередного номера в дополнительных опциях поста-заявки).
Также, для удобства вывода в интерфейсе и просмотра заявок требуется после создания заявки делать реблог её на аккаунт комитета.
Итак, в вышеизложенном и предыдущем посте я описал возможность полного использования имеющегося механизма голосования для создания заявок в комитет и утверждения их холдерами.
Плюсы.
Не требуется переносить полностью систему комитета из VIZ или ХФ22.
Требуется незначительная доработка для возможности отделения простых постов от постов-заявок.
Не требуется корректировка или создания новых плагинов.
Не требуется изменения API и библиотек для работы с ним.
Привычный интерфейс для создания, просмотра и редактирования постов-заявок.
Минусы.
Указаны в комментариях. :-)
С использованием текущего API получение списка заявок производится через get_blog аккаунта комитета, куда производится реблог заявок. Далее по каждой заявке информацию можно получить по get_content. Также стандартными запросами можно получить active_votes и любые другие данные.
В следующем посте опишу своё видение интерфейса создания поста-заявки и голосования за неё.
@retroscope Поздравляю! Вы получили личную награду!
С Днём Рождения - 2 лет на Голосе
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
@retroscope, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Награда за Количество комментариев
Награда за общую выплату получил
Награда за количество полученных голосов
Награда за Количество полученных комментариев
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Хороший пост!
Фонд БОД сделал репост.
Ваше творчество в ленте.
Наша лента в telegram.
:)
Вы являетесь участником проекта БОД, поэтому все ваши посты
размещаются в ленте репостов фонда. Если не желаете получать
апвот фонда и этот комментарий, ставьте тег nobod.