Gobernanza
Savitri Network cuenta con un sistema de gobernanza en cadena que permite a los titulares de tokens proponer, votar y ejecutar cambios en la red.
Descripción General
El sistema de gobernanza soporta:
- Creación de propuestas con título, descripción y período de votación
- Votación ponderada por tokens (a favor/en contra)
- Ejecución automática de propuestas aprobadas
- Propuestas de Aprendizaje Federado (FL) para gobernanza de modelos de IA
- Recompensas en tokens de voto basadas en el nivel PoU
Ciclo de Vida de una Propuesta
1. Create Proposal
│
2. Voting Period (configurable, e.g., 7 days)
│
3. Tally Votes
│
├── Approved (majority support) → 4. Execute
└── Rejected → Archived
Creación de una Propuesta
Mediante el SDK
use savitri_sdk::{ContractClient, Wallet};
let contract = ContractClient::from_url_and_wallet(url, wallet)?;
let gov = contract.governance();
let tx = gov.create_proposal(
&governance_address,
"Increase block size",
"Proposal to increase max block transactions from 32 to 64",
604800, // 7-day voting period (seconds)
).await?;
Mediante TransactionBuilder
use savitri_sdk::{TransactionBuilder, GovernanceAction};
let tx = TransactionBuilder::new()
.create_fl_proposal(
"governance_contract_address",
"Deploy model v2",
"Replace current FL model with GPT-4 fine-tuned variant",
604800,
)
.nonce(nonce)
.fee(5_000_000_000_000_000)
.build_and_sign(&wallet)?;
Votación
// Vote in favor
let tx = gov.vote(&governance_address, proposal_id, true).await?;
// Vote against
let tx = gov.vote(&governance_address, proposal_id, false).await?;
// Via TransactionBuilder
let tx = TransactionBuilder::new()
.governance_call(
"governance_address",
proposal_id,
GovernanceAction::Vote(true),
)
.nonce(nonce)
.build_and_sign(&wallet)?;
Ejecución de Propuestas
Las propuestas aprobadas pueden ser ejecutadas por cualquier participante:
let tx = gov.execute(&governance_address, proposal_id).await?;
Verificación del Estado
let status = gov.get_proposal_status(&governance_address, proposal_id).await?;
println!("Title: {}", status.title);
println!("Status: {}", status.status); // "active", "passed", "rejected", "executed"
println!("Votes: {} for / {} against", status.votes_for, status.votes_against);
println!("Executed: {}", status.executed);
Tokens de Voto
Los validadores ganan tokens de voto según su nivel PoU:
| Nivel | Puntaje PoU | Tokens de Voto por Época |
|---|---|---|
| Bronce | 300-499 | 10 |
| Plata | 500-699 | 25 |
| Oro | 700-899 | 50 |
| Platino | 900-1000 | 100 |
Los tokens de voto determinan el peso del voto en las propuestas de gobernanza.
Contratos de Gobernanza
El sistema de gobernanza está compuesto por varios módulos en cadena:
| Módulo | Archivo | Propósito |
|---|---|---|
| Propuestas | governance/proposals.rs | Creación y gestión de propuestas |
| Votación | governance/voting.rs | Emisión y conteo de votos |
| Ejecución | governance/execution.rs | Ejecución de propuestas aprobadas |
| Depósito | governance/deposit.rs | Depósitos de propuestas (anti-spam) |
| Token de Voto | governance/vote_token.rs | Emisión y seguimiento de tokens de voto |
| Propuestas FL | governance/fl_proposals.rs | Propuestas específicas de Aprendizaje Federado |
Gobernanza FL
Las propuestas de Aprendizaje Federado son acciones de gobernanza especializadas para gestionar el entrenamiento distribuido de IA:
- Registro de modelos: Proponer nuevos modelos para entrenamiento
- Ciclo de vida de trabajos: Crear, gestionar y finalizar trabajos FL
- Actualizaciones de modelos: Votar sobre actualizaciones de versiones de modelos
- Asignación de recursos: Asignar recursos de cómputo mediante gobernanza