Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
viz.world
6 лет назад

Предлагаемая структура комитета в VIZ

Часть инфляции в VIZ будет направлена в фонд комитета. Комитет — место, где каждый владелец SHARES сможет голосовать за заявки воркеров. Заявки могут быть как предварительные на планируемую работу, так и постфактум, своего рода компенсация за полезную работу.

Заявка должна содержать:

  • URL с информацией о заявке (это может быть ссылка на один из публичных клиентов или, как это делают часть воркеров BitShares, на GitHub);
  • Дата создания заявки;
  • Login пользователя, который в случае удовлетворения заявки будет получать средства из фонда комитета (может быть использован multi-sig адрес, который проследит за выполнением обязательств по заявке);
  • Минимальный порог (по-умолчанию равен 0) удовлетворения заявки (необходимо в случае планируемой разработки, где нет смысла начинать работу, если не наберется минимальный порог);
  • Целевая сумма заявки (не может превышать текущий фонд комитета), максимальная оценка заявителем проделанной или планируемой работы;
  • Длительность заявки (минимальная длительность 7 дней, максимальная 30 дней);
  • Сумма заявки одобренная комитетом;
  • Выплаченная сумма по заявке;
  • Дата завершения заявки (или отмены);
  • Заявитель (заполняется автоматически при создании заявки);
  • Голоса держателей SHARES: login, date, weight;
  • Статус заявки:
    • Голосование (действует либо до отмены заявителем, либо при окончании длительности заявки);
    • Отменена заявителем;
    • Отменена комитетом (заявка не набрала минимальный порог);
    • Удовлетворена комитетом, идут выплаты (заявка набрала минимальный порог, инициализация выплат);
    • Завершены выплаты (переключается на данный статус, когда выплаченная сумма по заявке равна одобренной комитетом);

Внутри объекта dynamic_global_property_object уже есть committee_supply, куда направляется часть инфляции.

Требуется разработать базовые операции:

  • Создание заявки для комитета (передача url заявки, login получателя, min amount, target amount, длительность заявки в днях);
  • Отмена заявки по id (проверка на заявителя);
  • Голосование в комитете по id заявке ();

Виртуальные операции (служат для публичного аудита за работой комитета):

  • Отмена заявки комитетом по id;
  • Заявка удовлетворена комитетом по id;
  • Совершение выплаты комитетом по заявке (с указанием id заявки и login получателя);
  • Завершены выплаты по id заявки;

Голосование в комитете по заявке должно содержать аккаунт голосующего, id заявки, время голоса, вес (от 0 до 100%). 

Обработку фонда комитета надо встроить как вызываемый метод в _apply_block, где будет проверка всех активных заявок на истечение срока их действия с сменой статуса. Расчет сумма заявки одобренной комитетом: сумма (shares голосующего * weight) делить на сумму shares всех голосующих * целевая сумма заявки / 100%.

Также там будет происходить выплаты по новым заявкам по формуле:
min(request.approved_payout - request.payout, committee_supply/committee_approved_requests), где committee_approved_requests число подтвержденных заявок ожидающих выплаты. Далее переключение статуса у заявок с завершенной выплатой.

Это что касается разработки протокола (операций) и их обработки в блоках. Также необходимо разработать плагин comittee, который будет содержать методы:

  • Получить запросы в комитете (get_requests_list) — по статусу (если 0, то статус не важен), лимиту выборки по индексу + отступ;
  • Получить данные о запросе  по id (get_request_by_id) — возвращает все данные запроса плюс предполагаемую сумму к выплате на данный момент, если заявка в статусе включенного голосования;

Оставляйте комментарии.

0
11.314 GOLOS
На Golos с March 2018
Комментарии (10)
Сортировать по:
Сначала старые