Rust смарт-контракты养成日记(11): Анализ механизма предложений DAO Sputnik
Sputnik-DAO как инфраструктура NEAR Protocol способствует развитию экосистемы NEAR в сторону децентрализации. В настоящее время эта платформа уже способствовала созданию нескольких децентрализованных автономных сообществ NEAR и предоставляет гибкие и эффективные решения для управления решениями сообщества.
Sputnikdaov2 является смарт-контрактом для голосования по управлению сообществом Sputnik-DAO. В этой статье будут представлены основные концепции этого контракта: предложение (Proposal), а в последующих статьях будет рассмотрена соответствующая модель управления сообществом DAO (Policy).
1. Инициирование предложения
В Sputnik-DAO каждый участник может высказать свое мнение или подать предложение по управлению проектом. Держатели акций могут рассматривать и голосовать по предложениям. Участники могут влиять на направление проекта через голосование или инициирование предложений.
На уровне контракта члены DAO могут вызвать метод add_proposal() контракта sputnikdaov2 для инициирования нового предложения. Предложитель должен предоставить подробную информацию о предложении (ProposalInput):
Текстовое описание предложения ( Description )
Тип предложения ( kind )
Информация о предложении будет передана в метод add_proposal() в качестве параметра, после проверки и обработки будет создано полное предложение (Proposal), которое будет привязано к уникальному proposal_id и добавлено в отображение Contract.proposals, поддерживаемое глобально смарт-контрактом.
Полная информация о свойствах предложения включает в себя:
описание: Описание предложения
kind: тип предложения
proposer:предложитель
статус: статус предложения, изначально InProgress
submission_time:время подачи
vote_counts:счет голосов
votes:детали голосования
Важно отметить, что в Sputnik-DAO существует концепция депозитов за предложения (proposal_bond). Контракт требует от инициаторов предложений внести определенную сумму токенов NEAR в качестве залога при вызове add_proposal(). Этот депозит будет возвращен инициатору предложения по окончании его нормального срока.
!
2. Статус предложения
Предложения в Sputnik-DAO могут проходить через различные состояния, начальное состояние - InProgress. Изменение состояния предложения управляется методом act_proposal().
Члены DAO могут вызвать act_proposal() для выполнения следующих операций с предложением:
VoteApprove: означает одобрение
VoteReject: означает против
VoteRemove: Считаю, что данное предложение не имеет смысла, необходимо удалить
После голосования программа вызовет policy.proposal_status() для подсчета голосов. Для предложений, которые соответствуют порогу голосования, статус будет соответствующим образом изменен:
Approved: одобрено internal_execute_proposal() выполнение
Отклонено/Удалено: выполните последующие действия через internal_reject_proposal()
Разница между состояниями Rejected и Removed заключается в том, что предложения в состоянии Removed будут удалены из пула предложений и депозит не будет возвращен. Предложения в состоянии Rejected останутся в пуле и депозит будет возвращен.
!
3. Исполнение предложений
Если статус предложения Approved, act_proposal() вызовет internal_execute_proposal() для выполнения содержания предложения.
Sputnik-DAO поддерживает несколько типов предложений, в этом разделе будут рассмотрены процессы обработки двух типичных типов:
3.1 Предложение по выполнению функции контракта ( FunctionCall )
При добавлении предложений типа FunctionCall был передан конкретный выполняемый функциональный оператор (actions). Каждое действие может указывать имя метода контракта и параметры. Sputnik-DAO выполняет такие предложения в виде Promise Batch Actions.
3.2 Предложение по переводу средств по смарт-контракту (Transfer )
Предложение типа Transfer используется для перемещения токенов, накопленных на контрактном счете, на указанный счет. internal_execute_proposal() вызовет функцию internal_payout(), чтобы выполнить операции перевода для различных типов Fungible Token и счета получателя.
!
4. Итог
В этой статье представлена основная концепция контракта Sputnik DAO — предложение (Proposal), объясняющее, как создавать, голосовать и выполнять предложения, а также правила изменения статуса предложений. В дальнейшем будет дано более подробное описание модели управления Sputnik-DAO на основе предложений (Policy).
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
13 Лайков
Награда
13
5
Репост
Поделиться
комментарий
0/400
DegenRecoveryGroup
· 8ч назад
Чтобы провести голосование, нужно использовать контракт, это действительно сложно.
Посмотреть ОригиналОтветить0
quiet_lurker
· 18ч назад
Немного не понимаю, как это работает.
Посмотреть ОригиналОтветить0
ForkItAllDay
· 18ч назад
near отлично играет, любит создавать
Посмотреть ОригиналОтветить0
ApeWithNoFear
· 18ч назад
Играй в экосистему near, поднимай руку.
Посмотреть ОригиналОтветить0
GasFeeCrybaby
· 18ч назад
в блокчейне голосование слишком дорого, не могу позволить себе поесть
Анализ смарт-контрактов Sputnik DAO: Подробное объяснение механизма предложений
Rust смарт-контракты养成日记(11): Анализ механизма предложений DAO Sputnik
Sputnik-DAO как инфраструктура NEAR Protocol способствует развитию экосистемы NEAR в сторону децентрализации. В настоящее время эта платформа уже способствовала созданию нескольких децентрализованных автономных сообществ NEAR и предоставляет гибкие и эффективные решения для управления решениями сообщества.
Sputnikdaov2 является смарт-контрактом для голосования по управлению сообществом Sputnik-DAO. В этой статье будут представлены основные концепции этого контракта: предложение (Proposal), а в последующих статьях будет рассмотрена соответствующая модель управления сообществом DAO (Policy).
1. Инициирование предложения
В Sputnik-DAO каждый участник может высказать свое мнение или подать предложение по управлению проектом. Держатели акций могут рассматривать и голосовать по предложениям. Участники могут влиять на направление проекта через голосование или инициирование предложений.
На уровне контракта члены DAO могут вызвать метод add_proposal() контракта sputnikdaov2 для инициирования нового предложения. Предложитель должен предоставить подробную информацию о предложении (ProposalInput):
Информация о предложении будет передана в метод add_proposal() в качестве параметра, после проверки и обработки будет создано полное предложение (Proposal), которое будет привязано к уникальному proposal_id и добавлено в отображение Contract.proposals, поддерживаемое глобально смарт-контрактом.
Полная информация о свойствах предложения включает в себя:
Важно отметить, что в Sputnik-DAO существует концепция депозитов за предложения (proposal_bond). Контракт требует от инициаторов предложений внести определенную сумму токенов NEAR в качестве залога при вызове add_proposal(). Этот депозит будет возвращен инициатору предложения по окончании его нормального срока.
!
2. Статус предложения
Предложения в Sputnik-DAO могут проходить через различные состояния, начальное состояние - InProgress. Изменение состояния предложения управляется методом act_proposal().
Члены DAO могут вызвать act_proposal() для выполнения следующих операций с предложением:
После голосования программа вызовет policy.proposal_status() для подсчета голосов. Для предложений, которые соответствуют порогу голосования, статус будет соответствующим образом изменен:
Разница между состояниями Rejected и Removed заключается в том, что предложения в состоянии Removed будут удалены из пула предложений и депозит не будет возвращен. Предложения в состоянии Rejected останутся в пуле и депозит будет возвращен.
!
3. Исполнение предложений
Если статус предложения Approved, act_proposal() вызовет internal_execute_proposal() для выполнения содержания предложения.
Sputnik-DAO поддерживает несколько типов предложений, в этом разделе будут рассмотрены процессы обработки двух типичных типов:
3.1 Предложение по выполнению функции контракта ( FunctionCall )
При добавлении предложений типа FunctionCall был передан конкретный выполняемый функциональный оператор (actions). Каждое действие может указывать имя метода контракта и параметры. Sputnik-DAO выполняет такие предложения в виде Promise Batch Actions.
3.2 Предложение по переводу средств по смарт-контракту (Transfer )
Предложение типа Transfer используется для перемещения токенов, накопленных на контрактном счете, на указанный счет. internal_execute_proposal() вызовет функцию internal_payout(), чтобы выполнить операции перевода для различных типов Fungible Token и счета получателя.
!
4. Итог
В этой статье представлена основная концепция контракта Sputnik DAO — предложение (Proposal), объясняющее, как создавать, голосовать и выполнять предложения, а также правила изменения статуса предложений. В дальнейшем будет дано более подробное описание модели управления Sputnik-DAO на основе предложений (Policy).
!