Аналіз механізму пропозицій смартконтрактів Sputnik DAO: від ініціювання до виконання всього процесу

robot
Генерація анотацій у процесі

Rust смартконтракти养成日记(11): Sputnik DAO提案机制剖析

Sputnik-DAO як інфраструктура NEAR Protocol, сприяє розвитку екосистеми NEAR у напрямку децентралізації. Наразі ця платформа вже сприяла створенню кількох автономних спільнот NEAR і пропонує повний та гнучкий план управління прийняттям рішень у спільноті.

Sputnikdaov2 є смартконтрактом для голосування з управління Sputnik-DAO спільнотою. У цій статті буде представлено основні концепції цього контракту: пропозиція (Proposal), а в наступних статтях буде розглянуто пов'язані моделі управління спільнотою DAO (Policy).

1. Ініціювання пропозиції

Кожен учасник Sputnik-DAO може висловлювати свою думку або подавати пропозиції щодо управління проектом. Учасники, які володіють частками, можуть розглядати та голосувати за пропозиції. Учасники можуть впливати на майбутній розвиток проекту шляхом голосування або ініціювання пропозицій.

На рівні контракту учасники можуть викликати метод add_proposal() смартконтракту sputnikdaov2 для ініціювання нової пропозиції:

іржа Паб Fn add_proposal(&mut self, пропозиція: ProposalInput) -> U64

Автор пропозиції повинен надати детальну інформацію про пропозицію (ProposalInput):

  • Текст опису пропозиції (Опис )
  • Тип пропозиції ( тип )

метод add_proposal() проведе перевірку, створюючи пропозицію з повною початковою інформацією (Proposal), яка буде прив'язана до унікального proposal_id і додана до відображення Contract.proposals, що підтримується глобально в контракті.

Повна інформація про атрибути пропозиції включає:

  • Опишіть (description)
  • тип ( вид )
  • Ініціатор (proposer)
  • статус(status)
  • час ініціації (submission_time )
  • стан голосування ( vote_counts, голоси )

Контракт вимагає, щоб пропонент заклав певну суму токенів NEAR як заставу під час виклику add_proposal(). Ця застава повертається через internal_return_bonds() після нормального завершення пропозиції.

!

2. Статус пропозиції

Пропозиції в Sputnik-DAO можуть проходити через такі стани:

  • InProgress(початковий стан)
  • Схвалено
  • Відхилено
  • Видалено
  • Термін дії закінчився
  • Переміщено
  • Не вдалося

Зміна статусу пропозиції керується методом act_proposal(). Члени можуть виконувати такі дії з пропозицією:

  • VoteApprove:підтримати
  • VoteReject: висловити незгоду
  • VoteRemove: вважає безглуздим, потрібно видалити

Внутрішній виклик policy.proposal_status() для підрахунку голосів, зміна статусу пропозицій, що відповідають порогу.

  • Запропоновані рішення з статусом "Approved" будуть виконані
  • Виконання завершальних дій у стані Відхилено або Видалено
  • Видалено: статус пропозиції буде видалено з пулу пропозицій, депозит не повертається
  • Відхилений стан пропозиції зберігається в пулі пропозицій, депозит повертається

!

3. Виконання пропозиції

Пропозиції зі статусом Approved будуть реалізовані через internal_execute_proposal(). Підтримувані типи пропозицій включають:

  • Змінена конфігурація
  • Політика змін
  • Додати учасника до ролі
  • Видалити учасника з ролі
  • Функція виклику
  • Self (Самооновлення)
  • UpgradeRemote (Дистанційне керування)
  • Перевести
  • SetStakingContract
  • Технологія AddBounty
  • BountyDone
  • Голосувати
  • Оновлення FactoryInfoUpdate
  • ChangePolicyAddOrUpdateRole
  • ChangePolicyRemoveRole
  • ChangePolicyUpdateDefaultVotePolicy
  • ChangePolicyUpdateParameters

Нижче представлено два типових процеси обробки пропозицій:

3.1 Виконання функції контракту пропозиції

Пропозиція типу FunctionCall передає функціональну операцію (actions) під час створення. Внутрішньо може містити кілька об'єктів ActionCall, що вказують на ім'я методу контракту та параметри.

Sputnik-DAO використовує форму Promise Batch Actions для виконання пропозицій типу виконання функцій смартконтрактів.

3.2 Пропозиція про передачу коштів за смартконтрактом

Пропозиція типу Transfer використовується для передачі токенів, накопичених на рахунку контракту, на вказаний receiver_id.

internal_execute_proposal() Обробка пропозицій типу Transfer викликатиме функцію internal_payout(), реалізуючи операції переказу для різних типів Fungible Token та receiver_id.

!

4. Підсумок

Ця стаття представляє основні концепції контракту Sputnik DAO, пропозиція (Proposal), включаючи створення пропозицій, виконання голосування та правила зміни статусу. Далі буде детально описано реалізацію та налаштування моделі управління Sputnik-DAO (Policy).

!

ACT6.19%
BATCH7.36%
TOKEN6.89%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Репост
  • Поділіться
Прокоментувати
0/400
WhaleMistakervip
· 08-06 16:14
Чи дійсно мати гроші в dao вражаюче?
Переглянути оригіналвідповісти на0
RugPullAlarmvip
· 08-06 10:47
Ге, так зване самоуправління не більше ніж обман для маскування фінансової піраміди, у блокчейні дані говорять самі за себе.
Переглянути оригіналвідповісти на0
BearMarketSurvivorvip
· 08-06 08:36
Механізм пропозицій Near досить цікавий?
Переглянути оригіналвідповісти на0
SleepyValidatorvip
· 08-04 05:57
Останні кілька днів rust навчання ліквідувалося. Стало краще.
Переглянути оригіналвідповісти на0
TestnetScholarvip
· 08-04 04:35
Знову в процесі стандартизації DAO.
Переглянути оригіналвідповісти на0
AirdropHunter007vip
· 08-04 04:34
Цей DAO near не має сенсу, продаю відразу ж.
Переглянути оригіналвідповісти на0
rekt_but_vibingvip
· 08-04 04:34
Занадто багато пропозицій, просто не можу проголосувати, що це таке?
Переглянути оригіналвідповісти на0
StableGeniusDegenvip
· 08-04 04:12
rust знову активізувався, це трохи жорстко.
Переглянути оригіналвідповісти на0
  • Закріпити