Committee DAO
Комитет — децентрализованный механизм финансирования VIZ Ledger. Любой аккаунт может создать заявку на финансирование; все держатели SHARES голосуют за одобрение или отклонение с помощью двухполярного голосования, взвешенного по доле.
Фонд комитета пополняется из комиссий за создание заявок и из доли инфляции блоков, выделяемой ему (регулируется параметром цепочки inflation_ratio_committee_vs_reward_fund).
Операции
| Операция | ID | Авт. | Описание |
|---|---|---|---|
committee_worker_create_request_operation | 35 | regular creator | Создать заявку на финансирование |
committee_worker_cancel_request_operation | 36 | regular creator | Отменить собственную активную заявку |
committee_vote_request_operation | 37 | regular 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)Три условия для одобрения:
Участие:
max_rshares ≥ total_vesting_shares × committee_request_approve_min_percent / 10000
(если не выполнено → отклонено, недостаточное участие)Консенсус:
actual_rshares > 0
(если отрицательный → отклонено, сообщество против)Минимальная выплата:
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) | Работник получает оплату |
Запрос состояния комитета
{ "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, Параметры цепочки, Виртуальные операции.