Diário de Desenvolvimento de Contratos Inteligentes Rust (11): Interpretação do Mecanismo de Propostas DAO Sputnik
Sputnik-DAO como infraestrutura do NEAR Protocol, está promovendo fortemente o desenvolvimento do ecossistema NEAR em direção à "descentralização". Atualmente, a plataforma já facilitou diversas comunidades autônomas "descentralizadas" de projetos NEAR, ao mesmo tempo em que oferece uma solução de governança de decisão comunitária completa, flexível e eficiente.
Sputnikdaov2 é um contrato inteligente utilizado para a votação de governança da comunidade Sputnik-DAO. Este artigo irá apresentar os conceitos centrais desse contrato: proposta (Proposal), e em artigos subsequentes, apresentará os modos de governança da comunidade DAO relacionados à "proposta" (Policy).
1. Início da Proposta
Cada membro do Sputnik-DAO pode expressar opiniões ou submeter propostas sobre a governança ou gestão do projeto. Cada membro da comunidade com ações pode rever e votar sobre as propostas. Os membros podem influenciar a direção futura do projeto através de votos ou iniciando novas propostas.
No nível do contrato, os membros do DAO podem chamar o método add_proposal() do contrato sputnikdaov2 para iniciar uma nova proposta:
ferrugem
u64
Os proponentes devem fornecer detalhes da proposta (ProposalInput):
Descrição do texto da proposta (Description)
Tipo de proposta ( kind )
Estas informações serão passadas como parâmetros para o método add_proposal(), que realizará o tratamento de verificação e gerará uma proposta completamente inicializada (Proposal). A proposta final será vinculada a um único proposal_id e adicionada ao pool de propostas mantido globalmente pelo contrato.
As informações completas sobre os atributos da proposta incluem:
descrição(description)
tipo (kind )
proponente(proposer)
状态(status)
tempo de submissão(submission_time)
Estado de votação ( contagem de votos, votos )
É importante notar que existe o conceito de depósito de proposta (proposal_bond) no Sputnik-DAO. O contrato exige que o proponente de uma proposta deposite uma certa quantidade de tokens NEAR como garantia ao chamar add_proposal(). Esse depósito será devolvido ao proponente quando a proposta for encerrada normalmente.
2. Estado da Proposta
As propostas no Sputnik-DAO podem passar por vários estados:
Em Andamento: Estado inicial da nova proposta
Aprovado: obtido
Rejected: Rejeitado
Removido:被移除
Expired: Já expirou
Moved: Já transferido
Falhou: execução falhada
A mudança de estado da proposta é impulsionada pelo método act_proposal(). Os membros da DAO podem chamar esse método para votar na proposta e realizar outras operações:
VoteApprove:Aprovar
VoteReject: Rejeitar
VoteRemove:remover
Após a votação, será chamada policy.proposal_status() para a contagem dos votos. Para propostas que atendam ao limite de votação, o status será alterado de acordo.
Propostas com estado Aprovado serão executadas
Propostas com estado Rejected ou Removed serão finalizadas.
Propostas com estado Removido serão retiradas do pool de propostas, sem reembolso do depósito. Propostas com estado Rejeitado permanecerão no pool e o depósito será reembolsado.
3. Execução da proposta
Se o estado da proposta mudar para Aprovado, act_proposal() irá chamar internal_execute_proposal() para executar o conteúdo da proposta.
Sputnik-DAO suporta vários tipos de propostas, como ChangeConfig, ChangePolicy, FunctionCall, Transfer, entre outros. Cada tipo tem um ramo de processamento correspondente.
Abaixo estão os processos de tratamento de dois tipos típicos de propostas:
( 3.1 Proposta de execução de função de contrato )FunctionCall###
Propostas do tipo FunctionCall podem executar métodos de contratos específicos. A proposta inclui as operações de função a serem executadas (actions), onde cada ação pode especificar o nome do método do contrato e os parâmetros.
A chamada da função é finalmente concluída na forma de Ações em Lote de Promessa.
( 3.2 Proposta de transferência de fundos do contrato)Transfer###
Propostas do tipo Transfer podem mover tokens da conta do contrato para a conta designada.
internal_execute_proposal() irá chamar a função internal_payout(), realizando operações de transferência para diferentes tipos de tokens e contas de recebimento.
4. Resumo
Este artigo apresenta o conceito fundamental do contrato Sputnik DAO - proposta (Proposal), incluindo a criação da proposta, votação, mudança de estado e o processo de execução. A seguir, será apresentada a implementação do modelo de governança do Sputnik-DAO com base na proposta (Policy).
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
7 gostos
Recompensa
7
5
Republicar
Partilhar
Comentar
0/400
Layer2Arbitrageur
· 5h atrás
meh, outra implementação de gov dao... verifiquei os números do gás, na verdade é 47% mais eficiente do que a votação eth
Análise Profundidade do Mecanismo de Propostas de Contratos Inteligentes do Sputnik DAO
Diário de Desenvolvimento de Contratos Inteligentes Rust (11): Interpretação do Mecanismo de Propostas DAO Sputnik
Sputnik-DAO como infraestrutura do NEAR Protocol, está promovendo fortemente o desenvolvimento do ecossistema NEAR em direção à "descentralização". Atualmente, a plataforma já facilitou diversas comunidades autônomas "descentralizadas" de projetos NEAR, ao mesmo tempo em que oferece uma solução de governança de decisão comunitária completa, flexível e eficiente.
Sputnikdaov2 é um contrato inteligente utilizado para a votação de governança da comunidade Sputnik-DAO. Este artigo irá apresentar os conceitos centrais desse contrato: proposta (Proposal), e em artigos subsequentes, apresentará os modos de governança da comunidade DAO relacionados à "proposta" (Policy).
1. Início da Proposta
Cada membro do Sputnik-DAO pode expressar opiniões ou submeter propostas sobre a governança ou gestão do projeto. Cada membro da comunidade com ações pode rever e votar sobre as propostas. Os membros podem influenciar a direção futura do projeto através de votos ou iniciando novas propostas.
No nível do contrato, os membros do DAO podem chamar o método add_proposal() do contrato sputnikdaov2 para iniciar uma nova proposta:
ferrugem u64
Os proponentes devem fornecer detalhes da proposta (ProposalInput):
Estas informações serão passadas como parâmetros para o método add_proposal(), que realizará o tratamento de verificação e gerará uma proposta completamente inicializada (Proposal). A proposta final será vinculada a um único proposal_id e adicionada ao pool de propostas mantido globalmente pelo contrato.
As informações completas sobre os atributos da proposta incluem:
É importante notar que existe o conceito de depósito de proposta (proposal_bond) no Sputnik-DAO. O contrato exige que o proponente de uma proposta deposite uma certa quantidade de tokens NEAR como garantia ao chamar add_proposal(). Esse depósito será devolvido ao proponente quando a proposta for encerrada normalmente.
2. Estado da Proposta
As propostas no Sputnik-DAO podem passar por vários estados:
A mudança de estado da proposta é impulsionada pelo método act_proposal(). Os membros da DAO podem chamar esse método para votar na proposta e realizar outras operações:
Após a votação, será chamada policy.proposal_status() para a contagem dos votos. Para propostas que atendam ao limite de votação, o status será alterado de acordo.
Propostas com estado Removido serão retiradas do pool de propostas, sem reembolso do depósito. Propostas com estado Rejeitado permanecerão no pool e o depósito será reembolsado.
3. Execução da proposta
Se o estado da proposta mudar para Aprovado, act_proposal() irá chamar internal_execute_proposal() para executar o conteúdo da proposta.
Sputnik-DAO suporta vários tipos de propostas, como ChangeConfig, ChangePolicy, FunctionCall, Transfer, entre outros. Cada tipo tem um ramo de processamento correspondente.
Abaixo estão os processos de tratamento de dois tipos típicos de propostas:
( 3.1 Proposta de execução de função de contrato )FunctionCall###
Propostas do tipo FunctionCall podem executar métodos de contratos específicos. A proposta inclui as operações de função a serem executadas (actions), onde cada ação pode especificar o nome do método do contrato e os parâmetros.
A chamada da função é finalmente concluída na forma de Ações em Lote de Promessa.
( 3.2 Proposta de transferência de fundos do contrato)Transfer###
Propostas do tipo Transfer podem mover tokens da conta do contrato para a conta designada.
internal_execute_proposal() irá chamar a função internal_payout(), realizando operações de transferência para diferentes tipos de tokens e contas de recebimento.
4. Resumo
Este artigo apresenta o conceito fundamental do contrato Sputnik DAO - proposta (Proposal), incluindo a criação da proposta, votação, mudança de estado e o processo de execução. A seguir, será apresentada a implementação do modelo de governança do Sputnik-DAO com base na proposta (Policy).