Предлагаемая структура комитета в 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) — возвращает все данные запроса плюс предполагаемую сумму к выплате на данный момент, если заявка в статусе включенного голосования;

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


Comments 9


Вопрос. Почему заявки такие короткие от 7 до 30 дней, а если проект большой и долгий? Это специально делалается, чтобы проекты разбивались на под этапы и была движуха?

12.07.2018 09:11
0

Выше головы не прыгнешь. Заявка в любом случае утыкается в текущий объем фонда комитета. Длительность заявок ограничена для того, чтобы не было наслоения большого объема заявок в 30-дневном диапазоне.

12.07.2018 09:15
0

Это был второй вопрос: почему заявка ограничена размером фонда, если она короткая - понятно. Но, если делать их длинными под проекты, а поступления в фонд завязаны на стабильную инфляцию, то заявка может быть обеспеча во времени % от поступления в фонд комитета.

Ну, и тогда следующий вопрос. Если будет несколько заявок в процессе рассмотрения, должна быть проверка чтобы по результам не превысить фонд.

12.07.2018 09:27
0

Надо понимать, что работа фонда происходит на временной шкале.
Есть у фонда 100 000 VIZ.
Создали 2 заявки по 80 000 VIZ каждая.
Первую утвердили на 70k VIZ, вторую на 60k VIZ.
Когда подойдет время утверждения заявки - если у фонда есть все средства на покрытие - то 70k уйдет целиком на первую заявка, а вторая уже подойдет к рассмотрению, когда в фонде будет всего 30k, а не требуемые 60k.
Как итог, 30k будет выплачено, а потом, например, каждые 100 блоков - будет расход средств из фонда на все активные заявки, которые не закрыли финансирование. В нашем примере 30k будет выплачено сразу, а вторая часть выплачиваться постепенно, каждые 100 блоков, пока не будет выплачена вся заявка.
Если заявок несколько, то выплачивается размер фонда делить на количество ждущих выплат заявок.

12.07.2018 09:45
0

Это нормальный вариант для работы комитета, сеть должна распоряжаться теми средствами, что имеет. Здорово выиграть заявку с большим запросом, чем есть, но это тогда отрезает возможность другим оставлять заявки. Проблема двойной траты решена как раз путем рассылки не закрытым заявкам каждые 100 блоков, пока они не будут погашены.
Я строго против того, чтобы фонд комитета уходил в минус, формируя кредит доверия. Но если нет токенов, то и работать комитет не должен. Пусть копят.

12.07.2018 09:49
0

отрицательное голосование по заявке возможно?

12.07.2018 13:46
0

0% это перетянуть выплату к 0. Каждый может повлиять на заявку только своим процентом shares от общего числа участников.

12.07.2018 14:46
0

Видишь опасность в этом? В теории юзеры могут абузить, если не будет отрицательных голосов.

12.07.2018 15:08
0

Скорее, наоборот, считаю, что это необходимо.

12.07.2018 15:49
0
My pageSettingsLogout
Cancel Confirm
100%
Cancel Confirm
Cancel Confirm