Análisis completo del mecanismo de propuestas de Sputnik DAO: desde la creación hasta el ciclo de vida de la ejecución

robot
Generación de resúmenes en curso

Diario de desarrollo de contratos inteligentes Rust (11): Análisis del mecanismo de propuestas de Sputnik DAO

Sputnik-DAO, como infraestructura del Protocolo NEAR, está impulsando el desarrollo del ecosistema NEAR hacia la descentralización. Actualmente, esta plataforma ha facilitado la creación de múltiples proyectos NEAR que establecen comunidades autónomas descentralizadas y ofrece un completo y flexible plan de gobernanza para la 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 centrales de dicho contrato: la propuesta (Proposal), y en artículos posteriores se presentarán los modelos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).

1. Iniciación de la propuesta

Cada miembro de Sputnik-DAO puede expresar opiniones o presentar propuestas sobre la gobernanza o gestión del proyecto. Luego, cada miembro de la comunidad que posea acciones puede revisar y votar sobre la propuesta. Los miembros pueden influir en el desarrollo futuro del proyecto votando sobre propuestas o iniciando nuevas propuestas.

Desde el nivel del contrato, los miembros del DAO pueden llamar al 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 )

add_proposal() método verificará y procesará la información de la propuesta, generando una propuesta completa (Proposal), y la vinculará con un único proposal_id, añadiéndola al pool de propuestas mantenido globalmente por el contrato.

La información completa de las propiedades contenidas en la propuesta es:

  • description: descripción
  • kind: tipo
  • proposer: proponente
  • status: estado
  • submission_time: tiempo de envío
  • vote_counts: estadísticas de votación
  • votes: detalles de la votación

Sputnik-DAO exige a los proponentes que bloqueen una cierta cantidad de tokens NEAR como garantía al presentar una propuesta. Este depósito se devolverá al proponente al finalizar normalmente la propuesta.

2. Estado de la propuesta

Las propuestas estándar en Sputnik-DAO pueden pasar por los siguientes estados:

  • En progreso: 进行中
  • Approved: Aprobado
  • Rechazado: 已拒绝
  • Eliminado: 已移除
  • Expired: Caducado
  • Moved: Ya transferido

El cambio de estado de la propuesta es impulsado por el método act_proposal(). Los miembros del DAO pueden realizar las siguientes acciones sobre la propuesta:

  • VoteApprove: Aprobación
  • VoteReject: en contra
  • VoteRemove: eliminar

Después de la votación, el contrato llamará a policy.proposal_status() para contar los votos. El estado de la propuesta que cumpla con el umbral de votación 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()

Las propuestas en estado de Removed serán eliminadas del grupo de propuestas y no se reembolsará el depósito. Las propuestas en estado de Rejected se mantendrán en el grupo y se reembolsará el depósito.

3. Ejecución de propuestas

Para las propuestas en estado 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.

A continuación se presentan los procesos de ejecución de dos tipos típicos de propuestas:

3.1 propuesta de ejecución de funciones de contrato(FunctionCall)

Las propuestas del tipo FunctionCall recibirán las operaciones de función específicas a ejecutar (actions) al ser creadas. Cada acción puede especificar el nombre del método del contrato y los parámetros.

Sputnik-DAO utiliza la forma de Acciones por Lote de Promesa para llevar a cabo la ejecución de propuestas de tipo función de contrato.

3.2 Propuesta de transferencia de fondos del contrato ( Transferir )

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

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

4. Resumen

Este artículo presenta los conceptos centrales del contrato de Sputnik DAO - Propuesta (Proposal), explica cómo crear nuevas propuestas y votar para ejecutarlas, así como las reglas de cambio de estado de las propuestas. Posteriormente, se presentará una introducción más detallada sobre el modo de gobernanza de Sputnik-DAO basado en la propuesta (Policy).

ACT6.94%
BATCH-0.48%
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
  • Republicar
  • Compartir
Comentar
0/400
quietly_stakingvip
· 08-08 17:11
Solo una votación del alma
Ver originalesResponder0
ProposalDetectivevip
· 08-06 17:22
Claramente, elegí a la persona equivocada.
Ver originalesResponder0
GasGasGasBrovip
· 08-06 06:18
Los contratos no me importan, solo me importa el dinero.
Ver originalesResponder0
FarmHoppervip
· 08-06 06:15
¿Todavía se utiliza el voto en dao?
Ver originalesResponder0
PriceOracleFairyvip
· 08-06 06:12
el juego dao de bruh near se está volviendo bastante emocionante, no voy a mentir
Ver originalesResponder0
ChainWallflowervip
· 08-06 06:12
Soy un observador del ecosistema Rust
Ver originalesResponder0
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)