Análisis del núcleo de contratos inteligentes de Sputnik DAO: Explicación del mecanismo de propuestas

robot
Generación de resúmenes en curso

Diario de desarrollo de contratos inteligentes Rust (10-3) Análisis del mecanismo de propuestas de Sputnik DAO

Sputnik-DAO como infraestructura del Protocolo NEAR, está impulsando la evolución del ecosistema NEAR hacia una dirección de "descentralización". Actualmente, esta plataforma ha facilitado numerosas comunidades autónomas "descentralizadas" de proyectos NEAR, al mismo tiempo que proporciona soluciones de gobernanza de decisiones comunitarias completas, flexibles y eficientes.

Sputnikdaov2 es un contrato inteligente utilizado para la votación de gobernanza comunitaria de Sputnik-DAO. Este artículo presentará los conceptos centrales de este contrato: propuesta (Proposal), y en artículos posteriores se presentarán modelos de gobernanza comunitaria de DAO relacionados con la "propuesta" (Policy).

1. Iniciar propuesta ( Agregar propuesta )

Los miembros de la comunidad Sputnik-DAO pueden expresar opiniones o presentar propuestas sobre la gobernanza o gestión del proyecto. Cada miembro de la comunidad que posea acciones puede revisar y votar sobre las propuestas. Los miembros de la comunidad pueden influir en el futuro del proyecto a través de votaciones o iniciando nuevas propuestas de gestión.

En el nivel del contrato, los miembros de la comunidad 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 )

el método add_proposal() realizará un procesamiento de verificación, generando una propuesta completa (Proposal), y se vinculará con un único proposal_id, añadiéndose al pool de propuestas mantenido globalmente por el contrato.

La información completa de las propiedades de la propuesta incluye:

  • descripción(description)
  • tipo (kind )
  • proponente(proposer)
  • 状态(status)
  • Tiempo de inicio ( tiempo de presentación )
  • Estado de votación ( conteos de votos, votos )

Es importante tener en cuenta que Sputnik-DAO requiere que los proponentes depositen una cierta cantidad de tokens NEAR como garantía al presentar una propuesta. Este depósito se reembolsará al proponente al finalizar normalmente la propuesta.

2. Estado de la propuesta ( Proposal Status )

Las propuestas en Sputnik-DAO pueden experimentar múltiples estados, siendo el estado inicial InProgress. El cambio de estado de la propuesta es impulsado por el método act_proposal().

Los miembros de la comunidad pueden realizar las siguientes acciones sobre la propuesta:

  • VoteApprove: indica aprobación
  • VoteReject: indica oposición
  • VoteRemove: considera que esta propuesta es irrelevante y debe ser eliminada

Después de la votación, se llevará a cabo el conteo de votos, y el estado de las propuestas que cumplan con el umbral de votación cambiará en consecuencia:

  • Aprobado: Ejecutando la propuesta mediante internal_execute_proposal()
  • Rechazado/Eliminado: Se ejecutaron las operaciones finales a través de la llamada internal_reject_proposal()

La diferencia entre los estados Rejected y Removed es que las propuestas en estado Removed se eliminan directamente del grupo de propuestas y no se reembolsan los depósitos.

3. Ejecución de Propuesta ( Ejecutar Propuesta )

Para las propuestas en estado Approved, se llamará a la función internal_execute_proposal() para ejecutar el contenido de la propuesta.

Sputnik-DAO apoya varios tipos de propuestas, en este artículo nos centraremos en dos tipos típicos:

( 3.1 Propuesta de ejecución de función de contrato ) ProposalKind::FunctionCall ###

Las propuestas de tipo FunctionCall pueden ejecutar funciones de contrato específicas. La propuesta incluye operaciones de función a ejecutar (actions), y se pueden especificar múltiples objetos ActionCall, cada uno de los cuales especifica el nombre del método del contrato correspondiente y los parámetros.

Finalmente, se completa la ejecución de la función del contrato a través de la forma de Acciones por Lote de Promesa.

( 3.2 propuesta de transferencia de fondos de contrato)ProposalKind::Transfer###

Las propuestas de tipo Transfer pueden transferir los tokens acumulados en la cuenta del contrato (NEAR o los tokens del estándar NEP-141 ) a la cuenta designada.

internal_execute_proposal() llamará a la función internal_payout(), implementando la operación de transferencia para diferentes tipos de tokens y cuentas receptoras.

4. Resumen

Este artículo presenta el concepto central del contrato Sputnik DAO: propuesta (Proposal), que incluye la creación de propuestas, la ejecución de votaciones y las reglas de cambio de estado. Artículos posteriores proporcionarán una descripción más detallada del modelo de gobernanza de Sputnik-DAO basado en la propuesta (Policy).

ACT2.27%
BATCH4.38%
Ver originales
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.
  • Recompensa
  • 6
  • Compartir
Comentar
0/400
RugResistantvip
· hace6h
hmm encontré algunos patrones de implementación sospechosos... necesita una auditoría exhaustiva, no voy a mentir
Ver originalesResponder0
WhaleMistakervip
· hace6h
Este contrato inteligente parece muy complicado.
Ver originalesResponder0
GateUser-ccc36bc5vip
· hace6h
Este mecanismo de propuesta es demasiado simple.
Ver originalesResponder0
MEVVictimAlliancevip
· hace6h
Lo que debes ver para empezar con dao.
Ver originalesResponder0
ponzi_poetvip
· hace6h
La situación es desesperante, hasta para ver un contrato inteligente hay que lidiar con títulos en inglés. ¡Es demasiado!
Ver originalesResponder0
BankruptcyArtistvip
· hace6h
Otra cosa de DAO, realmente no lo entiendo.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)