Перейти к основному содержимому

Управление

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Токены голосования за эпоху
Bronze300–49910
Silver500–69925
Gold700–89950
Platinum900–1000100

Токены голосования определяют вес голоса в предложениях системы управления.

Контракты управления

Система управления состоит из нескольких on-chain модулей:

МодульФайлНазначение
Предложенияgovernance/proposals.rsСоздание и управление предложениями
Голосованиеgovernance/voting.rsПодача и подсчёт голосов
Исполнениеgovernance/execution.rsИсполнение утверждённых предложений
Депозитgovernance/deposit.rsДепозиты за предложения (защита от спама)
Токен голосованияgovernance/vote_token.rsВыпуск и отслеживание токенов голосования
Предложения FLgovernance/fl_proposals.rsПредложения, специфичные для Федеративного обучения

Управление FL

Предложения Федеративного обучения — это специализированные действия по управлению распределённым обучением ИИ:

  • Реестр моделей: предложение новых моделей для обучения
  • Жизненный цикл задачи: создание, управление и завершение FL-задач
  • Обновления моделей: голосование за обновления версий моделей
  • Распределение ресурсов: выделение вычислительных ресурсов через систему управления