Análisis del contrato inteligente Sputnik DAO: diseño e implementación del mecanismo de propuestas

robot
Generación de resúmenes en curso

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

Sputnik-DAO como infraestructura del NEAR Protocol está impulsando la evolución 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 descentralizadas, proporcionando un esquema de gobernanza de decisiones comunitarias completo, flexible y eficiente.

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: propuesta (Proposal), y artículos posteriores se centrarán en la presentación de los modelos de gobernanza de la comunidad DAO (Policy).

1. Inicio de la propuesta

Los miembros de la comunidad Sputnik-DAO pueden expresar opiniones o presentar propuestas sobre la gobernanza o gestión del proyecto. Los miembros que poseen acciones pueden revisar y votar sobre las propuestas, lo que influye en la dirección futura del proyecto.

En el nivel del 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 )

add_proposal() método realizará un procesamiento de verificación, generando una propuesta completamente inicializada (Proposal), que estará vinculada al único proposal_id y se añadirá al mapeo Contract.proposals mantenido globalmente por el contrato.

La propuesta incluye la siguiente información completa de atributos:

  • descripción: Descripción de la propuesta
  • tipo: tipo de propuesta
  • proposer: proponente
  • estado: estado de la propuesta
  • submission_time: tiempo de envío
  • vote_counts: conteo de votos
  • votes: Detalles de la votación

Es importante tener en cuenta que existe el concepto de depósito de propuesta (proposal_bond) en Sputnik-DAO, gestionado por un modelo de gobernanza comunitaria específico (Policy). El proponente debe depositar una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito será devuelto al finalizar correctamente la propuesta.

2. Estado de la propuesta

Las propuestas en Sputnik-DAO pueden pasar por varios estados:

  • En Progreso: Estado inicial, votación en curso
  • Aprobado: Voto aprobado
  • Rechazado: la votación no pasó
  • Removed: Fue removido
  • Expired: Caducado
  • Moved: Ya ha sido migrado
  • 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 operaciones de votación sobre la propuesta.

  • VoteApprove: Aprobado
  • VoteReject: Oposición
  • VoteRemove: eliminar

Después de la votación, se llamará a policy.proposal_status() para contar los votos y actualizar el estado de la propuesta cuando se cumplan las condiciones.

3. Ejecución de propuestas

La propuesta aprobada ( en estado Approved ) llamará a la función internal_execute_proposal() para ejecutar el contenido de la decisión.

Sputnik-DAO apoya varios tipos de propuestas, principalmente relacionadas con la actualización de la configuración del modelo de gobernanza de la DAO. Aquí se presentan dos tipos típicos de manejo de propuestas:

( 3.1 propuesta de ejecución de funciones de contrato

Las propuestas de tipo FunctionCall permiten ejecutar funciones de contrato específicas. La propuesta incluye las operaciones de función a ejecutar )actions###, y se pueden especificar múltiples llamadas a funciones consecutivas.

Sputnik-DAO utiliza la forma de Acciones por Lotes de Promesas para realizar la ejecución de funciones de contratos.

( 3.2 propuesta de transferencia de fondos del contrato

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 operaciones de transferencia de diferentes tipos de Fungible Token y cuentas receptoras.

4. Resumen

Este artículo presenta los conceptos clave del contrato de Sputnik DAO - Propuesta (Proposal), que incluye la creación de propuestas, votaciones, cambios de estado y el proceso de ejecución. Posteriormente, se realizará una descripción más detallada del modelo de gobernanza de Sputnik-DAO basado en el mecanismo de propuestas (Policy).

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
  • Comentar
  • Republicar
  • Compartir
Comentar
0/400
Sin comentarios
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)