Análisis del contrato inteligente Sputnik DAO: explicación del mecanismo de propuestas y proceso de ejecución

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 de NEAR Protocol está impulsando el ecosistema NEAR hacia un desarrollo descentralizado. Actualmente, esta plataforma ha facilitado la creación de múltiples proyectos NEAR que establecen comunidades autónomas descentralizadas, y proporciona soluciones completas y flexibles para la gobernanza comunitaria.

sputnikdaov2 es el contrato inteligente de votación de gobernanza de la comunidad Sputnik-DAO. Este artículo presentará los conceptos centrales de dicho contrato: propuesta (Proposal), los artículos posteriores se centrarán en la introducción de modelos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).

1. Inicio de propuestas

Cada miembro en Sputnik-DAO puede expresar opiniones o presentar propuestas sobre la gestión de la gobernanza del proyecto. Cada miembro de la comunidad que posea acciones puede revisar y votar sobre las propuestas, influyendo así en la dirección futura del proyecto.

En el nivel del contrato, los miembros del DAO pueden invocar el método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta:

óxido u64

El proponente debe proporcionar detalles sobre la propuesta (ProposalInput):

  • Descripción del texto de la propuesta (Description)
  • Tipo de propuesta ( kind )

Esta información se pasará como parámetro al método add_proposal(), que realizará un proceso de validación, generando una propuesta completa (Proposal), y se vinculará con el único proposal_id, añadiéndola al pool de propuestas mantenido globalmente por el contrato.

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

  • description: descripción
  • kind: tipo
  • proposer: proponente
  • status: estado
  • submission_time: hora de presentación
  • vote_counts: conteo de votos
  • votes: Registros de votación

Es importante tener en cuenta que en el Sputnik-DAO existe el concepto de depósito de propuesta (proposal_bond), donde el proponente debe bloquear una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito será devuelto al finalizar normalmente la propuesta.

2. Estado de la propuesta

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

  • InProgress: en progreso
  • Approved: Aprobado
  • Rechazado: 已拒绝
  • Eliminado: Ya se ha eliminado

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 las siguientes operaciones en la propuesta:

  • VoteApprove: aprobación
  • VoteReject: Rechazar
  • VoteRemove: eliminar

Después de la votación, se llamará a policy.proposal_status() para contar los votos. El estado de la propuesta que cumpla con las condiciones cambiará a Approved, Rejected o Removed.

Las propuestas en estado Aprobado se ejecutarán, mientras que los estados Rechazado y Eliminado llevarán a cabo operaciones de cierre. Las propuestas en estado Eliminado se eliminarán del fondo de propuestas y no 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, principalmente relacionadas con la actualización de la configuración del modo de gobernanza del DAO. Este artículo se centra en el proceso de tratamiento de dos tipos típicos de propuestas:

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

La propuesta de tipo FunctionCall se crea pasando la operación de función a ejecutar (actions). internal_execute_proposal() ejecutará estas llamadas a funciones en forma de Promesas de Acciones por Lotes.

( 3.2 Propuesta de transferencia de fondos del contrato ) Transferir ###

La propuesta de tipo Transfer se utiliza para transferir tokens acumulados en la cuenta del contrato a una cuenta designada. internal_execute_proposal() llamará a la función internal_payout() para realizar operaciones de transferencia de diferentes tipos de tokens y cuentas receptoras.

4. Resumen

Este artículo presenta los conceptos básicos del contrato de Sputnik DAO: la propuesta (Proposal), que incluye la creación de la propuesta, los cambios de estado y el proceso de ejecución. Artículos posteriores proporcionarán una descripción más detallada de la implementación y configuración del modelo de gobernanza de Sputnik-DAO basado en el mecanismo de propuestas (Policy).

ACT5.56%
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
  • 2
  • Compartir
Comentar
0/400
GhostAddressMinervip
· hace5h
Punto clave, el enfoque está en el depósito.
Ver originalesResponder0
RugResistantvip
· hace5h
El sistema de propuestas es muy científico.
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)