Skip to content

Committee DAO

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

Фонд комитета пополняется из комиссий за создание заявок и из доли инфляции блоков, выделяемой ему (регулируется параметром цепочки inflation_ratio_committee_vs_reward_fund).


Операции

ОперацияIDАвт.Описание
committee_worker_create_request_operation35regular creatorСоздать заявку на финансирование
committee_worker_cancel_request_operation36regular creatorОтменить собственную активную заявку
committee_vote_request_operation37regular voterПроголосовать по заявке

Полное описание полей — в разделе Операции комитета.


Механика голосования

Каждый держатель SHARES может проголосовать с vote_percent в диапазоне от −10000 до +10000 (базисные пункты):

  • Положительный голос: поддерживает заявку.
  • Отрицательный голос: возражает против заявки.
  • Ноль: снимает голос.

Вес голоса = effective_vesting_shares × vote_percent / 10000.

Голоса можно менять в любое время, пока заявка активна.


Расчёт одобрения

По наступлении end_time заявки:

max_rshares    = СУММА(voter.effective_vesting_shares для всех голосующих)
actual_rshares = СУММА(voter.effective_vesting_shares × vote_percent / 10000)

Три условия для одобрения:

  1. Участие: max_rshares ≥ total_vesting_shares × committee_request_approve_min_percent / 10000
    (если не выполнено → отклонено, недостаточное участие)

  2. Консенсус: actual_rshares > 0
    (если отрицательный → отклонено, сообщество против)

  3. Минимальная выплата:

    payout = required_amount_max × (actual_rshares / max_rshares)

    (если payout < required_amount_min → отклонено)

Если все условия выполнены → одобрено, выплата = вычисленное значение.


Жизненный цикл заявки

[Создана, статус=0]
    └── период голосования (5–30 дней)
            ├── Недостаточное участие → [Отклонена, статус=2]
            ├── Чистый отрицательный / ниже минимума → [Истекла, статус=3]
            ├── Создатель отменяет   → [Отменена, статус=1]
            └── Одобрена             → [Одобрена, статус=4]
                                            └── выплаты (каждые 200 блоков)
                                                └── [Завершена, статус=5]

Обработка выплат

Одобренные заявки (статус 4) получают выплаты из фонда комитета каждые 200 блоков (~10 минут). Фонд делится поровну между всеми одобренными заявками:

payment = min(committee_fund / count_approved_requests, remain_payout_amount)

Виртуальные операции в жизненном цикле:

Виртуальная операцияТриггер
committee_cancel_request_operation (ID 38)Заявка истекает без одобрения
committee_approve_request_operation (ID 39)Достигнут порог одобрения
committee_payout_request_operation (ID 40)Выплата обработана
committee_pay_request_operation (ID 41)Работник получает оплату

Запрос состояния комитета

json
{ "method": "committee_api.get_committee_request", "params": [42] }
{ "method": "committee_api.get_committee_request_votes", "params": [42] }
{ "method": "committee_api.get_committee_requests_list", "params": [0, 100] }

Ключевые свойства

  • Двухполярность: каждый голосующий выражает поддержку или несогласие с точной интенсивностью.
  • Взвешенность по доле: голоса взвешиваются заблокированными токенами, делая манипуляцию дорогостоящей.
  • Пропорциональная выплата: чем сильнее консенсус — тем выше выплата (до required_amount_max).
  • Самофинансирование: комиссии за создание поступают в фонд комитета.
  • Некастодиальность: нет доверенного посредника; протокол автоматически применяет все правила.

См. также: Операции комитета, Стейкинг и DAO, Параметры цепочки, Виртуальные операции.