# Управління

> Ончейн-управління NeuroChain — хто може пропонувати й голосувати, голосування вагою стейку, кворум і поріг, зміни параметрів з допустимими межами та повний список параметрів управління.

Source: https://docs.nro.world/uk/learn/governance

Параметри протоколу — мінімальний стейк, винагороди, газовий бюджет, slashing, пороги AI — змінюються **ончейн-голосуванням вагою стейку**, а не правкою конфігурації операторами нод.

![Життєвий цикл пропозиції: стейкер подає пропозицію, вона активна протягом вікна голосування, стейкери голосують вагою власного стейку; після завершення вікна вона приймається, якщо голоси становлять щонайменше 20% усього стейку і «так» — понад 50% голосів, інакше відхиляється; прийнята PARAM_CHANGE змінює параметр, якщо значення в допустимих межах](/diagrams/uk/governance-lifecycle.svg)

## Подання пропозиції

| Правило | Значення |
|---------|----------|
| Хто | Підписаний запит від будь-якої адреси; автор із `.human` повинен мати власний стейк щонайменше `min_stake` |
| Типи | `text` (лише сигнал) або `PARAM_CHANGE` (змінює один параметр) |
| Вікно голосування | Від 100 до `max_voting_duration_blocks` (за замовчуванням 1 000 000) блоків; 1 000, якщо не задано |
| Обмеження | Назва — 200 символів, опис — 5 000, корисне навантаження — 10 КБ |

`PARAM_CHANGE` містить зміну в корисному навантаженні:

```json
{ "param_key": "max_block_gas", "param_value": "20000" }
```

Пропозиція — [підписана операція](./wallet#signed-operations) на `neuro:system.governance`; вона записується в консенсусі, тож кожен валідатор має ідентичну пропозицію з тієї самої висоти.

## Голосування

- Голосувати можуть лише адреси з **власним стейком**. Вага голосу — власний стейк, прочитаний зі стану мережі в момент застосування голосу. Делегування голосу не дають.
- Стейк, доданий **після** створення пропозиції, не голосує за неї — так не вийде купити стейк лише для того, щоб переломити голосування.
- Один голос від адреси на пропозицію: «так» або «ні», остаточно.
- Голоси — підписані операції, записані в консенсусі.

## Результат

Коли вікно голосування завершилось:

| Перевірка | За замовчуванням | Поле пропозиції |
|-----------|------------------|-----------------|
| **Кворум** — вага «так» + «ні» ≥ цієї частки всього власного стейку | 20% | `quorum_bps` = 2 000 |
| **Поріг** — вага «так» > цієї частки поданих голосів | 50% | `threshold_bps` = 5 000 |

Обидві умови виконано → `passed`; інакше → `rejected`. Прийнята `PARAM_CHANGE` змінює параметр — якщо нове значення не виходить за допустимі межі; інакше зміну відхилено й лишається старе значення.

::: warning Стан фіналізації
<Badge type="warning" text="експериментально" /> Створення пропозицій і голосування працюють у консенсусі. Закриття пропозиції та застосування прийнятої зміни параметра зараз відбуваються на кожній ноді, коли вона віддає список пропозицій (`GET /api/v1/governance/proposals`), а не під час коміту блоку. Перенесення фіналізації в шлях коміту заплановано; доти після прийняття зміни перевіряйте параметр на кожному валідаторі.

**Як тестується:** тест ноди `test_apply_tx_governance_propose_and_vote_in_consensus` покриває застосування пропозицій і голосів; перевірку меж покривають тести параметрів (`test_deploy_risk_threshold_governance`, `test_deploy_security_governance_override`).
:::

## Параметри {#parameters}

Поточні значення: `GET /api/v1/governance/params`. Деякі можна також задати для ноди під час старту змінною середовища — це призначено для тестових мереж.

### Стейкінг і консенсус

| Параметр | За замовчуванням | Допустимі межі | Змінна середовища |
|----------|------------------|----------------|-----------------|
| `min_stake` | 10 000 NRO (в uNRO) | від 1 до 10¹⁵ uNRO | — |
| `unbonding_blocks` | 1 512 000 | від 1 до 10⁹ | `NEUROCHAIN_UNBONDING_BLOCKS` |
| `base_apy_bps` | 1 200 (12%) | від 0 до 100 000 | — |
| `genesis_apy_bps` | 2 400 (24%) | від 0 до 100 000 | — |
| `reward_interval_blocks` | 216 000 | від 1 до 10⁹ | `NEUROCHAIN_REWARD_INTERVAL_BLOCKS` |
| `blocks_per_year` | 78 840 000 | від 1 до 10⁹ | — |
| `max_commission_bps` | 2 000 (20%) | — | — |
| `max_block_gas` | 10 000 | від 1 до 10⁹ | — |
| `slash_fraction_double_sign_bps` | 500 (5% від `min_stake`) | від 0 до 10 000 | `NEUROCHAIN_SLASH_FRACTION_DOUBLE_SIGN_BPS` |
| `slash_reward_fraction_bps` | 100 (1% тому, хто повідомив) | від 0 до 10 000 | `NEUROCHAIN_SLASH_REWARD_FRACTION_BPS` |
| `slash_double_vote_bps` | 500 | від 0 до 10 000 | — |
| `jail_blocks` | 10 000 | від 1 до 10⁹ | `NEUROCHAIN_JAIL_BLOCKS` |
| `slash_evidence_window` | 10 000 | від 1 до 10⁹ | `NEUROCHAIN_SLASH_EVIDENCE_WINDOW` |
| `quorum_bps` | 2 000 | від 1 до 10 000 | — |
| `threshold_bps` | 5 000 | від 1 до 10 000 | — |

### AI-безпека

| Параметр | За замовчуванням | Допустимі межі | Значення |
|----------|------------------|----------------|----------|
| `deploy_security_enabled` | 1 | 0 або 1 | Шлюз VMGuardian перед розгортанням (аварійний вимикач) |
| `deploy_risk_threshold` | 80 | від 0 до 100 | Розгортання відхиляється при ризику ≥ 0,80 |
| `sentinel_enabled` | 1 | 0 або 1 | Оцінка транзакцій Sentinel |
| `sentinel_reject_threshold` | 85 | — | Транзакція відхиляється при оцінці ≥ 0,85 |
| `sentinel_policy_enabled` | 0 | — | Ступінчастий шар політик (утримання / підтвердження) — вимкнено за замовчуванням |
| `sentinel_hold_threshold` | 60 | — | Оцінка, від якої переказ утримується |
| `sentinel_stepup_threshold` | 70 | — | Оцінка, від якої потрібне підтвердження власника |
| `sentinel_hold_blocks` | 50 | — | Затримка до звільнення утриманого переказу |
| `sentinel_confirm_expiry_blocks` | 1 000 | — | Скільки чекати підтвердження власника до повернення |
| `sentinel_agent_confirm_threshold` | 60 | — | Оцінка, від якої переказу сесійного ключа потрібен власник |
| `trust_activation_blocks` | 300 | — | Затримка, після якої новий довірений отримувач починає діяти |

Параметри політик Sentinel мають також змінні середовища `NEUROCHAIN_SENTINEL_*` і `NEUROCHAIN_TRUST_ACTIVATION_BLOCKS`; див. [Sentinel](/uk/ai/sentinel).

### Нативні активи та обмін

| Параметр | За замовчуванням | Значення |
|----------|------------------|----------|
| `asset_issue_fee` | 1 000 NRO | Плата за випуск нативного активу |
| `asset_max_decimals` | 18 | Найбільша кількість знаків після коми в активу |
| `dex_shard` | 0 | Шард, де зберігаються записи активів і обміну |

Обмін (AMM) має також параметри комісії постачальникам ліквідності, протокольної комісії, мінімальної ліквідності, кількості свопів на пул за блок і аварійного вимикача; їхні поточні значення — у [довіднику REST](/uk/reference/rest).

Прочерк у колонці «Допустимі межі» означає, що нода поки не перевіряє межі цього параметра при прийнятті зміни — пропонуйте значення обережно.

## API

| Дія | Ендпоінт |
|-----|----------|
| Подати пропозицію | `POST /api/v1/governance/propose` |
| Проголосувати | `POST /api/v1/governance/:id/vote` |
| Список пропозицій | `GET /api/v1/governance/proposals?status=&limit=&offset=` |
| Одна пропозиція | `GET /api/v1/governance/:id` |
| Параметри | `GET /api/v1/governance/params` |
