Gouvernance
Le Savitri Network dispose d'une gouvernance en chaîne permettant aux détenteurs de jetons de proposer, voter et exécuter des changements sur le réseau.
Vue d'Ensemble
Le système de gouvernance prend en charge :
- Création de propositions avec titre, description et période de vote
- Vote pondéré par les jetons (pour/contre)
- Exécution automatique des propositions approuvées
- Propositions d'Apprentissage Fédéré (FL) pour la gouvernance des modèles d'IA
- Récompenses en jetons de vote basées sur le niveau PoU
Cycle de Vie d'une Proposition
1. Create Proposal
│
2. Voting Period (configurable, e.g., 7 days)
│
3. Tally Votes
│
├── Approved (majority support) → 4. Execute
└── Rejected → Archived
Créer une Proposition
Via le 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?;
Via 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)?;
Vote
// 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)?;
Exécution des Propositions
Les propositions approuvées peuvent être exécutées par n'importe quel participant :
let tx = gov.execute(&governance_address, proposal_id).await?;
Vérification du Statut
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);
Jetons de Vote
Les validateurs gagnent des jetons de vote en fonction de leur niveau PoU :
| Niveau | Score PoU | Jetons de Vote par Époque |
|---|---|---|
| Bronze | 300-499 | 10 |
| Silver | 500-699 | 25 |
| Gold | 700-899 | 50 |
| Platinum | 900-1000 | 100 |
Les jetons de vote déterminent le poids du vote dans les propositions de gouvernance.
Contrats de Gouvernance
Le système de gouvernance est composé de plusieurs modules en chaîne :
| Module | Fichier | Rôle |
|---|---|---|
| Propositions | governance/proposals.rs | Création et gestion des propositions |
| Vote | governance/voting.rs | Dépôt et décompte des votes |
| Exécution | governance/execution.rs | Exécution des propositions approuvées |
| Dépôt | governance/deposit.rs | Dépôts de proposition (anti-spam) |
| Jeton de Vote | governance/vote_token.rs | Émission et suivi des jetons de vote |
| Propositions FL | governance/fl_proposals.rs | Propositions spécifiques à l'Apprentissage Fédéré |
Gouvernance FL
Les propositions d'Apprentissage Fédéré sont des actions de gouvernance spécialisées pour la gestion de l'entraînement distribué de l'IA :
- Registre de modèles : Proposer de nouveaux modèles pour l'entraînement
- Cycle de vie des tâches : Créer, gérer et finaliser les tâches FL
- Mises à jour de modèles : Voter sur les mises à niveau de version de modèles
- Allocation des ressources : Allouer des ressources de calcul via la gouvernance