Diario de desarrollo de contratos inteligentes en Rust (11): Análisis del mecanismo de propuestas de DAO Sputnik
Sputnik-DAO como infraestructura de NEAR Protocol está impulsando el desarrollo del ecosistema NEAR hacia una dirección descentralizada. Actualmente, esta plataforma ha facilitado la creación de múltiples proyectos NEAR que establecen comunidades autónomas y proporciona un completo y flexible esquema de gobernanza de toma 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: la propuesta (Proposal), y en artículos posteriores se explicarán los modelos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).
1. Inicio de la propuesta
En Sputnik-DAO, cada miembro puede expresar opiniones 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 futura del proyecto a través de votaciones o iniciando propuestas.
En el nivel del contrato, los miembros pueden llamar al método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta:
óxido
u64
Los proponentes deben proporcionar detalles de la propuesta (ProposalInput):
Descripción del texto de la propuesta ( Descripción )
Tipo de propuesta ( tipo )
El método add_proposal() realizará un proceso de verificación, generando una propuesta (Proposal) con información inicial completa, y la vinculará con un único proposal_id, añadiéndola al mapeo Contract.proposals mantenido globalmente por el contrato.
La información completa de las propiedades de la propuesta incluye:
descripción(description)
tipo (kind )
proponente(proposer)
状态(status)
Hora de inicio ( tiempo de envío )
Estado de votación (vote_counts, votos )
El contrato requiere que el proponente deposite una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito se reembolsará al finalizar normalmente la propuesta a través de internal_return_bonds().
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden pasar por los siguientes estados:
InProgress( estado inicial)
Aprobado
Rechazado
Eliminado
Expirado
Moved
Fallido
El cambio de estado de la propuesta es impulsado por el método act_proposal(). Los miembros pueden realizar las siguientes acciones sobre la propuesta:
VoteApprove: aprobación de la votación
VoteReject:表反对
VoteRemove: considera que no tiene sentido, necesita ser eliminado
Se llamará internamente a policy.proposal_status() para llevar a cabo la votación y cambiar el estado de las propuestas que cumplan con el umbral.
Propuestas en estado Aprobado se ejecutarán
Estado Rechazado o Eliminado ejecutando operaciones finales
Se eliminó la propuesta de estado, se retirará del fondo de propuestas sin reembolso del depósito.
Propuestas en estado Rechazado se mantienen en el fondo de propuestas, se devuelve el depósito
3. Ejecución de la propuesta
Las propuestas con estado Approved se ejecutarán a través de internal_execute_proposal() para llevar a cabo el contenido de la decisión. Los tipos de propuestas apoyados incluyen:
ChangeConfig
ChangePolicy
AgregarMiembroARol
RemoveMemberFromRole
LlamadaDeFunción
UpgradeSelf
UpgradeRemote
Transferir
SetStakingContract
AddBounty
BountyDone
Votar
FactoryInfoUpdate
ChangePolicyAddOrUpdateRole
ChangePolicyRemoveRole
ChangePolicyUpdateDefaultVotePolicy
ChangePolicyUpdateParameters
A continuación se presentan los procesos de manejo de dos tipos típicos de propuestas:
( 3.1 Propuesta de ejecución de funciones de contratos inteligentes
La propuesta de tipo FunctionCall recibe al crear la operación de función a ejecutar )actions###. Puede contener múltiples objetos ActionCall internos, especificando el nombre del método del contrato y los parámetros.
Sputnik-DAO utiliza la forma de Acciones por Lotes de Promesas para completar la ejecución de propuestas de tipos de funciones de contratos inteligentes.
( 3.2 Propuesta de transferencia de fondos de contratos inteligentes
La propuesta de tipo Transfer se utiliza para transferir los tokens acumulados en la cuenta del contrato al receiver_id especificado.
internal_execute_proposal)### El manejo de propuestas del tipo Transfer llamará a la función internal_payout(), realizando operaciones de transferencia para diferentes tipos de Fungible Token y receiver_id.
4. Resumen
Este artículo presenta los conceptos clave del contrato Sputnik DAO, incluyendo la creación de propuestas, la ejecución de votaciones y las reglas de cambio de estado. A continuación, se describirá en detalle la implementación y configuración del modelo de gobernanza Sputnik-DAO.
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.
12 me gusta
Recompensa
12
8
Republicar
Compartir
Comentar
0/400
WhaleMistaker
· 08-06 16:14
¿Es realmente impresionante tener dinero en dao?
Ver originalesResponder0
RugPullAlarm
· 08-06 10:47
Eh, lo que se llama autonomía no es más que una táctica engañosa para un esquema de financiación. Los datos on-chain lo dicen todo.
Ver originalesResponder0
BearMarketSurvivor
· 08-06 08:36
¿El mecanismo de propuestas de Near es un poco interesante?
Ver originalesResponder0
SleepyValidator
· 08-04 05:57
En los últimos días, rust se ha liquidado. Ha mejorado.
Ver originalesResponder0
TestnetScholar
· 08-04 04:35
Ya se ha estandarizado nuevamente el proceso de DAO.
Ver originalesResponder0
AirdropHunter007
· 08-04 04:34
este dao de near no tiene sentido, lo vendo de inmediato.
Ver originalesResponder0
rekt_but_vibing
· 08-04 04:34
Hay demasiadas propuestas, simplemente no se puede votar, ¿qué está pasando?
Ver originalesResponder0
StableGeniusDegen
· 08-04 04:12
rust vuelve a estar en la competencia, es un poco duro.
Análisis del mecanismo de propuestas de contratos inteligentes del Sputnik DAO: desde la iniciación hasta la ejecución del proceso completo
Diario de desarrollo de contratos inteligentes en Rust (11): Análisis del mecanismo de propuestas de DAO Sputnik
Sputnik-DAO como infraestructura de NEAR Protocol está impulsando el desarrollo del ecosistema NEAR hacia una dirección descentralizada. Actualmente, esta plataforma ha facilitado la creación de múltiples proyectos NEAR que establecen comunidades autónomas y proporciona un completo y flexible esquema de gobernanza de toma 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: la propuesta (Proposal), y en artículos posteriores se explicarán los modelos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).
1. Inicio de la propuesta
En Sputnik-DAO, cada miembro puede expresar opiniones 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 futura del proyecto a través de votaciones o iniciando propuestas.
En el nivel del contrato, los miembros pueden llamar al método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta:
óxido u64
Los proponentes deben proporcionar detalles de la propuesta (ProposalInput):
El método add_proposal() realizará un proceso de verificación, generando una propuesta (Proposal) con información inicial completa, y la vinculará con un único proposal_id, añadiéndola al mapeo Contract.proposals mantenido globalmente por el contrato.
La información completa de las propiedades de la propuesta incluye:
El contrato requiere que el proponente deposite una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito se reembolsará al finalizar normalmente la propuesta a través de internal_return_bonds().
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden pasar por los siguientes estados:
El cambio de estado de la propuesta es impulsado por el método act_proposal(). Los miembros pueden realizar las siguientes acciones sobre la propuesta:
Se llamará internamente a policy.proposal_status() para llevar a cabo la votación y cambiar el estado de las propuestas que cumplan con el umbral.
3. Ejecución de la propuesta
Las propuestas con estado Approved se ejecutarán a través de internal_execute_proposal() para llevar a cabo el contenido de la decisión. Los tipos de propuestas apoyados incluyen:
A continuación se presentan los procesos de manejo de dos tipos típicos de propuestas:
( 3.1 Propuesta de ejecución de funciones de contratos inteligentes
La propuesta de tipo FunctionCall recibe al crear la operación de función a ejecutar )actions###. Puede contener múltiples objetos ActionCall internos, especificando el nombre del método del contrato y los parámetros.
Sputnik-DAO utiliza la forma de Acciones por Lotes de Promesas para completar la ejecución de propuestas de tipos de funciones de contratos inteligentes.
( 3.2 Propuesta de transferencia de fondos de contratos inteligentes
La propuesta de tipo Transfer se utiliza para transferir los tokens acumulados en la cuenta del contrato al receiver_id especificado.
internal_execute_proposal)### El manejo de propuestas del tipo Transfer llamará a la función internal_payout(), realizando operaciones de transferencia para diferentes tipos de Fungible Token y receiver_id.
4. Resumen
Este artículo presenta los conceptos clave del contrato Sputnik DAO, incluyendo la creación de propuestas, la ejecución de votaciones y las reglas de cambio de estado. A continuación, se describirá en detalle la implementación y configuración del modelo de gobernanza Sputnik-DAO.