Управление
Savitri Network располагает системой on-chain управления, позволяющей держателям токенов предлагать изменения в сети, голосовать за них и исполнять их.
Обзор
Система управления поддерживает:
- Создание предложений с названием, описанием и периодом голосования
- Взвешенное голосование токенами (за/против)
- Автоматическое исполнение утверждённых предложений
- Предложения Федеративного обучения (FL) для управления моделями ИИ
- Вознаграждения в виде токенов голосования на основе уровня PoU
Жизненный цикл предложения
1. Create Proposal
│
2. Voting Period (configurable, e.g., 7 days)
│
3. Tally Votes
│
├── Approved (majority support) → 4. Execute
└── Rejected → Archived
Создание предложения
Через 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?;
Через 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 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)?;
Исполнение предложений
Утверждённые предложения может исполнить любой участник:
let tx = gov.execute(&governance_address, proposal_id).await?;
Проверка статуса
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);
Токены голосования
Валидаторы получают токены голосования в зависимости от уровня PoU:
| Уровень | Оценка PoU | Токены голосования за эпоху |
|---|---|---|
| Bronze | 300–499 | 10 |
| Silver | 500–699 | 25 |
| Gold | 700–899 | 50 |
| Platinum | 900–1000 | 100 |
Токены голосования определяют вес голоса в предложениях системы управления.
Контракты управления
Система управления состоит из нескольких on-chain модулей:
| Модуль | Файл | Назначение |
|---|---|---|
| Предложения | governance/proposals.rs | Создание и управление предложениями |
| Голосование | governance/voting.rs | Подача и подсчёт голосов |
| Исполнение | governance/execution.rs | Исполнение утверждённых предложений |
| Депозит | governance/deposit.rs | Депозиты за предложения (защита от спама) |
| Токен голосования | governance/vote_token.rs | Выпуск и отслеживание токенов голосования |
| Предложения FL | governance/fl_proposals.rs | Предложения, специфичные для Федеративного обучения |
Управление FL
Предложения Федеративного обучения — это специализированные действия по управлению распределённым обучением ИИ:
- Реестр моделей: предложение новых моделей для обучения
- Жизненный цикл задачи: создание, управление и завершение FL-задач
- Обновления моделей: голосование за обновления версий моделей
- Распределение ресурсов: выделение вычислительных ресурсов через систему управления