Diario de desarrollo de contratos inteligentes de Rust (11): Análisis del mecanismo de propuestas de Sputnik DAO
Sputnik-DAO, como infraestructura del NEAR Protocol, está impulsando el ecosistema NEAR hacia un desarrollo descentralizado. Actualmente, esta plataforma ha facilitado la creación de varias comunidades autónomas descentralizadas para proyectos de NEAR y ha proporcionado soluciones de gobernanza comunitaria flexibles y eficientes.
Sputnikdaov2 es un contrato inteligente utilizado para la votación de gobernanza de la comunidad Sputnik-DAO. Este artículo presentará el concepto central de ese contrato: la propuesta (Proposal), y en artículos posteriores se presentarán los modos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).
1. Inicio de propuesta
En Sputnik-DAO, cada miembro puede expresar su opinión o presentar propuestas sobre la gestión del proyecto. Los miembros que poseen acciones pueden revisar y votar sobre las propuestas. Los miembros pueden influir en la dirección del proyecto a través de votaciones o iniciando propuestas.
En el nivel del contrato, los miembros del DAO pueden invocar el método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta. El proponente debe proporcionar los detalles de la propuesta (ProposalInput):
Descripción del texto de la propuesta (Description)
Tipo de propuesta ( kind )
La información de la propuesta se pasará como parámetro al método add_proposal(), y después de la verificación se generará una propuesta completa (Proposal), que se vinculará con un id de propuesta único y se añadirá al mapeo Contract.proposals mantenido globalmente por el contrato.
La información completa de las propiedades de la propuesta incluye:
description: descripción de la propuesta
tipo: tipo de propuesta
proposer:proponente
status: estado de la propuesta, inicialmente en InProgress
submission_time: tiempo de envío
vote_counts: conteo de votos
votos: detalles de la votación
Es importante notar que en el Sputnik-DAO existe el concepto de depósito de propuesta (proposal_bond). El contrato exige que el proponente de la propuesta deposite una cierta cantidad de tokens NEAR como garantía al invocar add_proposal(). Este depósito será devuelto al proponente al finalizar la propuesta de manera normal.
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden experimentar varios estados, siendo el estado inicial InProgress. Los cambios en el estado de la propuesta son impulsados por el método act_proposal().
Los miembros del DAO pueden llamar a act_proposal() para ejecutar las siguientes acciones sobre la propuesta:
VoteApprove: indica aprobación
VoteReject: indica oposición
VoteRemove: considera que esta propuesta no tiene sentido y debe ser eliminada
Después de la votación, el programa llamará a policy.proposal_status() para realizar el conteo de los votos. Para las propuestas que cumplan con el umbral de votación, el estado cambiará en consecuencia:
Aprobado: a través de internal_execute_proposal() ejecución
Rechazado/Eliminado: ejecutar acciones posteriores a través de internal_reject_proposal()
La diferencia entre los estados Rejected y Removed es que las propuestas en estado Removed serán eliminadas del grupo de propuestas y no se devolverá el depósito. Las propuestas en estado Rejected se mantendrán en el grupo y se devolverá el depósito.
3. Ejecución de propuestas
Si el estado de la propuesta es Aprobado, act_proposal() llamará a internal_execute_proposal() para ejecutar el contenido de la propuesta.
Sputnik-DAO admite varios tipos de propuestas, esta sección presentará los procesos de manejo de dos tipos típicos:
3.1 Propuesta de ejecución de función del contrato ( FunctionCall )
Las propuestas de tipo FunctionCall incluyen la operación de función específica a ejecutar (actions) al ser añadidas. Cada acción puede especificar el nombre del método del contrato y los parámetros. Sputnik-DAO utiliza la forma de Promesas de Acciones por Lotes para completar la ejecución de este tipo de propuestas.
3.2 propuesta de transferencia de fondos de contrato ( Transferir )
La propuesta de tipo Transfer se utiliza para transferir los tokens acumulados en la cuenta del contrato a la cuenta designada. internal_execute_proposal() llamará a la función internal_payout(), para realizar la operación de transferencia de diferentes tipos de Fungible Token y la cuenta receptora.
4. Resumen
Este artículo presenta el concepto central del contrato de Sputnik DAO: la propuesta (Proposal), que explica cómo crear, votar y ejecutar propuestas, así como las reglas de cambio de estado de las propuestas. Posteriormente, se proporcionará una descripción más detallada sobre 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.
13 me gusta
Recompensa
13
5
Republicar
Compartir
Comentar
0/400
DegenRecoveryGroup
· hace1h
Hacer votaciones aún requiere contratos, es un gran dolor de cabeza.
Ver originalesResponder0
quiet_lurker
· hace11h
No entiendo muy bien cómo funciona esto.
Ver originalesResponder0
ForkItAllDay
· hace11h
near juega bien, ama crear
Ver originalesResponder0
ApeWithNoFear
· hace11h
Juega en el ecosistema de near, apóyalo.
Ver originalesResponder0
GasFeeCrybaby
· hace11h
La votación on-chain es muy cara, ya no puedo pagar la comida.
Análisis de contratos inteligentes del Sputnik DAO: explicación del mecanismo de propuestas
Diario de desarrollo de contratos inteligentes de Rust (11): Análisis del mecanismo de propuestas de Sputnik DAO
Sputnik-DAO, como infraestructura del NEAR Protocol, está impulsando el ecosistema NEAR hacia un desarrollo descentralizado. Actualmente, esta plataforma ha facilitado la creación de varias comunidades autónomas descentralizadas para proyectos de NEAR y ha proporcionado soluciones de gobernanza comunitaria flexibles y eficientes.
Sputnikdaov2 es un contrato inteligente utilizado para la votación de gobernanza de la comunidad Sputnik-DAO. Este artículo presentará el concepto central de ese contrato: la propuesta (Proposal), y en artículos posteriores se presentarán los modos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).
1. Inicio de propuesta
En Sputnik-DAO, cada miembro puede expresar su opinión o presentar propuestas sobre la gestión del proyecto. Los miembros que poseen acciones pueden revisar y votar sobre las propuestas. Los miembros pueden influir en la dirección del proyecto a través de votaciones o iniciando propuestas.
En el nivel del contrato, los miembros del DAO pueden invocar el método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta. El proponente debe proporcionar los detalles de la propuesta (ProposalInput):
La información de la propuesta se pasará como parámetro al método add_proposal(), y después de la verificación se generará una propuesta completa (Proposal), que se vinculará con un id de propuesta único y se añadirá al mapeo Contract.proposals mantenido globalmente por el contrato.
La información completa de las propiedades de la propuesta incluye:
Es importante notar que en el Sputnik-DAO existe el concepto de depósito de propuesta (proposal_bond). El contrato exige que el proponente de la propuesta deposite una cierta cantidad de tokens NEAR como garantía al invocar add_proposal(). Este depósito será devuelto al proponente al finalizar la propuesta de manera normal.
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden experimentar varios estados, siendo el estado inicial InProgress. Los cambios en el estado de la propuesta son impulsados por el método act_proposal().
Los miembros del DAO pueden llamar a act_proposal() para ejecutar las siguientes acciones sobre la propuesta:
Después de la votación, el programa llamará a policy.proposal_status() para realizar el conteo de los votos. Para las propuestas que cumplan con el umbral de votación, el estado cambiará en consecuencia:
La diferencia entre los estados Rejected y Removed es que las propuestas en estado Removed serán eliminadas del grupo de propuestas y no se devolverá el depósito. Las propuestas en estado Rejected se mantendrán en el grupo y se devolverá el depósito.
3. Ejecución de propuestas
Si el estado de la propuesta es Aprobado, act_proposal() llamará a internal_execute_proposal() para ejecutar el contenido de la propuesta.
Sputnik-DAO admite varios tipos de propuestas, esta sección presentará los procesos de manejo de dos tipos típicos:
3.1 Propuesta de ejecución de función del contrato ( FunctionCall )
Las propuestas de tipo FunctionCall incluyen la operación de función específica a ejecutar (actions) al ser añadidas. Cada acción puede especificar el nombre del método del contrato y los parámetros. Sputnik-DAO utiliza la forma de Promesas de Acciones por Lotes para completar la ejecución de este tipo de propuestas.
3.2 propuesta de transferencia de fondos de contrato ( Transferir )
La propuesta de tipo Transfer se utiliza para transferir los tokens acumulados en la cuenta del contrato a la cuenta designada. internal_execute_proposal() llamará a la función internal_payout(), para realizar la operación de transferencia de diferentes tipos de Fungible Token y la cuenta receptora.
4. Resumen
Este artículo presenta el concepto central del contrato de Sputnik DAO: la propuesta (Proposal), que explica cómo crear, votar y ejecutar propuestas, así como las reglas de cambio de estado de las propuestas. Posteriormente, se proporcionará una descripción más detallada sobre el modelo de gobernanza de Sputnik-DAO basado en la propuesta (Policy).