Passa al contenuto principale

Governance

Savitri Network dispone di una governance on-chain che consente ai detentori di token di proporre, votare ed eseguire modifiche alla rete.

Panoramica

Il sistema di governance supporta:

  • Creazione di proposte con titolo, descrizione e periodo di votazione
  • Votazione ponderata per token (a favore/contro)
  • Esecuzione automatica delle proposte approvate
  • Proposte FL (Federated Learning) per la governance dei modelli AI
  • Ricompense in token di voto basate sul livello PoU

Ciclo di Vita di una Proposta

1. Crea Proposta

2. Periodo di Votazione (configurabile, es. 7 giorni)

3. Conteggio Voti

├── Approvata (maggioranza a favore) → 4. Esegui
└── Respinta → Archiviata

Creazione di una Proposta

Tramite 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?;

Tramite 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)?;

Votazione

// Vota a favore
let tx = gov.vote(&governance_address, proposal_id, true).await?;

// Vota contro
let tx = gov.vote(&governance_address, proposal_id, false).await?;

// Tramite TransactionBuilder
let tx = TransactionBuilder::new()
.governance_call(
"governance_address",
proposal_id,
GovernanceAction::Vote(true),
)
.nonce(nonce)
.build_and_sign(&wallet)?;

Esecuzione delle Proposte

Le proposte approvate possono essere eseguite da qualsiasi partecipante:

let tx = gov.execute(&governance_address, proposal_id).await?;

Verifica dello Stato

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);

Token di Voto

I validatori guadagnano token di voto in base al loro livello PoU:

LivelloPunteggio PoUToken di Voto per Epoca
Bronze300-49910
Silver500-69925
Gold700-89950
Platinum900-1000100

I token di voto determinano il peso del voto nelle proposte di governance.

Contract di Governance

Il sistema di governance è composto da diversi moduli on-chain:

ModuloFileScopo
Propostegovernance/proposals.rsCreazione e gestione delle proposte
Votazionegovernance/voting.rsEspressione e conteggio dei voti
Esecuzionegovernance/execution.rsEsecuzione delle proposte approvate
Depositogovernance/deposit.rsDepositi per le proposte (anti-spam)
Token di Votogovernance/vote_token.rsEmissione e tracciamento dei token di voto
Proposte FLgovernance/fl_proposals.rsProposte specifiche per il Federated Learning

Governance FL

Le proposte di Federated Learning sono azioni di governance specializzate per la gestione dell'addestramento AI distribuito:

  • Registry modelli: Proponi nuovi modelli da addestrare
  • Ciclo di vita dei job: Crea, gestisci e finalizza i job FL
  • Aggiornamenti modelli: Vota sugli aggiornamenti delle versioni dei modelli
  • Allocazione delle risorse: Alloca risorse di calcolo tramite governance