Diario de desarrollo de contratos inteligentes en Rust (11): Interpretación del mecanismo de propuestas de Sputnik DAO
Sputnik-DAO como infraestructura del Protocolo NEAR, impulsa fuertemente el desarrollo "descentralizado" del ecosistema NEAR. Actualmente, esta plataforma ha facilitado numerosas comunidades autónomas "descentralizadas" de proyectos NEAR, al mismo tiempo que ofrece un completo, flexible y eficiente plan de gobernanza de decisiones comunitarias.
Sputnikdaov2 es un contrato inteligente utilizado para la votación de gobernanza de la comunidad Sputnik-DAO. Este artículo presentará los conceptos clave de dicho contrato: propuesta (Proposal), y en artículos posteriores se introducirá el modo de gobernanza de la comunidad DAO relacionado con "propuestas" (Policy).
1. Inicio de propuesta
En Sputnik-DAO, cada miembro puede expresar opiniones o presentar propuestas sobre la gobernanza o gestión del proyecto. Cada miembro de la comunidad con acciones puede revisar y votar sobre las propuestas. Los miembros pueden influir en el futuro del proyecto a través de votaciones o iniciando nuevas propuestas.
En el nivel de contrato, los miembros del DAO pueden llamar al método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta:
óxido
u64
El proponente debe proporcionar detalles de la propuesta (ProposalInput):
Descripción del texto de la propuesta (Description)
Tipo de propuesta ( kind )
Esta información se pasará como parámetros al método add_proposal(), que realizará un proceso de verificación y generará una propuesta completamente inicializada (Proposal). La propuesta final se vinculará con el único proposal_id y se añadirá al pool de propuestas mantenido globalmente por el contrato.
La información completa de los atributos de la propuesta incluye:
descripción (description)
tipo (kind )
proponente (proposer )
状态(status)
tiempo de presentación(submission_time)
Estado de votación ( conteos de votos, votos )
Es importante tener en cuenta que en Sputnik-DAO existe el concepto de depósito de propuesta (proposal_bond). El contrato requiere que el proponente de la propuesta deposite una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito se reembolsará al proponente al finalizar la propuesta de manera normal.
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden experimentar múltiples estados:
En Progreso: Estado inicial de la nueva propuesta
Aprobado:获得通过
Rechazado:被否决
Eliminado:被移除
Expired: Caducado
Moved: Ya transferido
Fallido: ejecución fallida
El cambio de estado de la propuesta es impulsado por el método act_proposal(). Los miembros del DAO pueden llamar a este método para realizar votaciones y otras operaciones sobre la propuesta:
VoteApprove:aprobar
VoteReject:oponerse
VoteRemove:eliminar
Después de la votación, se llamará a policy.proposal_status() para contar los votos. Para las propuestas que cumplen con el umbral de votación, el estado cambiará en consecuencia:
Las propuestas en estado Aprobado serán ejecutadas
Las propuestas en estado Rechazado o Eliminado se someterán a operaciones de cierre.
Las propuestas en estado de Removed se eliminarán del fondo de propuestas, sin reembolso del depósito. Las propuestas en estado de Rejected permanecerán en el fondo y se reembolsará el depósito.
3. Ejecución de la propuesta
Si el estado de la propuesta cambia a Approved, act_proposal() llamará a internal_execute_proposal() para ejecutar el contenido de la propuesta.
Sputnik-DAO apoya varios tipos de propuestas, como ChangeConfig, ChangePolicy, FunctionCall, Transfer, etc. Cada tipo tiene una rama de procesamiento correspondiente.
A continuación se presentan los procesos de manejo de dos tipos típicos de propuestas:
( 3.1 propuesta de ejecución de función de contrato ) FunctionCall ###
Las propuestas de tipo FunctionCall pueden ejecutar métodos de contrato específicos. La propuesta incluye las operaciones de función a ejecutar (actions), cada acción puede especificar el nombre del método del contrato y los parámetros.
Finalmente se completa la llamada a la función en forma de acciones por lotes de Promise.
( 3.2 Propuesta de transferencia de fondos del contrato ) Transferir ###
Las propuestas de tipo Transfer pueden transferir tokens de la cuenta del contrato a la cuenta designada.
internal_execute_proposal() llamará a la función internal_payout(), que implementará operaciones de transferencia para diferentes tipos de tokens y cuentas receptoras.
4. Resumen
Este artículo presenta el concepto central del contrato de Sputnik DAO: la propuesta (Proposal), que incluye la creación de la propuesta, la votación, los cambios de estado y el proceso de ejecución. Posteriormente, se introducirá el modelo de gobernanza de Sputnik-DAO basado en la propuesta (Policy).
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
7 me gusta
Recompensa
7
5
Republicar
Compartir
Comentar
0/400
Layer2Arbitrageur
· hace2h
meh, otra implementación de gobierno dao... verifiqué los números de gas, en realidad es un 47% más eficiente que la votación de eth
Análisis profundo del mecanismo de propuestas de contratos inteligentes de Sputnik DAO
Diario de desarrollo de contratos inteligentes en Rust (11): Interpretación del mecanismo de propuestas de Sputnik DAO
Sputnik-DAO como infraestructura del Protocolo NEAR, impulsa fuertemente el desarrollo "descentralizado" del ecosistema NEAR. Actualmente, esta plataforma ha facilitado numerosas comunidades autónomas "descentralizadas" de proyectos NEAR, al mismo tiempo que ofrece un completo, flexible y eficiente plan de gobernanza de decisiones comunitarias.
Sputnikdaov2 es un contrato inteligente utilizado para la votación de gobernanza de la comunidad Sputnik-DAO. Este artículo presentará los conceptos clave de dicho contrato: propuesta (Proposal), y en artículos posteriores se introducirá el modo de gobernanza de la comunidad DAO relacionado con "propuestas" (Policy).
1. Inicio de propuesta
En Sputnik-DAO, cada miembro puede expresar opiniones o presentar propuestas sobre la gobernanza o gestión del proyecto. Cada miembro de la comunidad con acciones puede revisar y votar sobre las propuestas. Los miembros pueden influir en el futuro del proyecto a través de votaciones o iniciando nuevas propuestas.
En el nivel de contrato, los miembros del DAO pueden llamar al método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta:
óxido u64
El proponente debe proporcionar detalles de la propuesta (ProposalInput):
Esta información se pasará como parámetros al método add_proposal(), que realizará un proceso de verificación y generará una propuesta completamente inicializada (Proposal). La propuesta final se vinculará con el único proposal_id y se añadirá al pool de propuestas mantenido globalmente por el contrato.
La información completa de los atributos de la propuesta incluye:
Es importante tener en cuenta que en Sputnik-DAO existe el concepto de depósito de propuesta (proposal_bond). El contrato requiere que el proponente de la propuesta deposite una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito se reembolsará al proponente al finalizar la propuesta de manera normal.
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden experimentar múltiples estados:
El cambio de estado de la propuesta es impulsado por el método act_proposal(). Los miembros del DAO pueden llamar a este método para realizar votaciones y otras operaciones sobre la propuesta:
Después de la votación, se llamará a policy.proposal_status() para contar los votos. Para las propuestas que cumplen con el umbral de votación, el estado cambiará en consecuencia:
Las propuestas en estado de Removed se eliminarán del fondo de propuestas, sin reembolso del depósito. Las propuestas en estado de Rejected permanecerán en el fondo y se reembolsará el depósito.
3. Ejecución de la propuesta
Si el estado de la propuesta cambia a Approved, act_proposal() llamará a internal_execute_proposal() para ejecutar el contenido de la propuesta.
Sputnik-DAO apoya varios tipos de propuestas, como ChangeConfig, ChangePolicy, FunctionCall, Transfer, etc. Cada tipo tiene una rama de procesamiento correspondiente.
A continuación se presentan los procesos de manejo de dos tipos típicos de propuestas:
( 3.1 propuesta de ejecución de función de contrato ) FunctionCall ###
Las propuestas de tipo FunctionCall pueden ejecutar métodos de contrato específicos. La propuesta incluye las operaciones de función a ejecutar (actions), cada acción puede especificar el nombre del método del contrato y los parámetros.
Finalmente se completa la llamada a la función en forma de acciones por lotes de Promise.
( 3.2 Propuesta de transferencia de fondos del contrato ) Transferir ###
Las propuestas de tipo Transfer pueden transferir tokens de la cuenta del contrato a la cuenta designada.
internal_execute_proposal() llamará a la función internal_payout(), que implementará operaciones de transferencia para diferentes tipos de tokens y cuentas receptoras.
4. Resumen
Este artículo presenta el concepto central del contrato de Sputnik DAO: la propuesta (Proposal), que incluye la creación de la propuesta, la votación, los cambios de estado y el proceso de ejecución. Posteriormente, se introducirá el modelo de gobernanza de Sputnik-DAO basado en la propuesta (Policy).