Параметры цепочки
Параметры цепочки — это управляемые параметры сети: комиссии, размер блока, уровни инфляции, правила штрафов и другое. Центрального органа, устанавливающего их, нет — каждый активный валидатор публикует свои предпочтительные значения, а блокчейн применяет медиану по всем активным валидаторам.
Как это работает
1. Валидаторы публикуют предпочтения
Каждый валидатор отправляет предпочтительные параметры через versioned_chain_properties_update_operation:
[46, {
"owner": "alice",
"props": [3, {
"account_creation_fee": "1.000 VIZ",
"maximum_block_size": 131072,
...
}]
}][3, {...}] указывает версию 3 (chain_properties_hf9, текущий формат).
2. Расчёт медианы
При каждом обновлении расписания валидаторов блокчейн вызывает update_median_witness_props(). Для каждого параметра независимо он:
- Собирает значения от каждого активного валидатора.
- Сортирует их.
- Выбирает медиану (индекс
active.size() / 2).
Пример — 5 валидаторов голосуют за account_creation_fee:
0.5, 1.0, 1.0, 2.0, 5.0 VIZ
↑
медиана = 1.0 VIZМедиана устойчива к экстремумам: один валидатор не может вызвать внезапный крупный сдвиг; для значительного изменения любого параметра необходимо согласие большинства.
3. Применение
Результирующий объект median_props сохраняется в validator_schedule_object и применяется при обработке всех блоков.
Все управляемые параметры
Аккаунт и делегирование
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
account_creation_fee | asset (VIZ) | 1.000 VIZ | Минимальная комиссия за создание нового аккаунта |
create_account_delegation_ratio | uint32 | 10 | Необходимое делегирование = ratio × fee |
create_account_delegation_time | uint32 (с) | 2592000 (30д) | Время блокировки делегирования при создании |
min_delegation | asset (VIZ) | 1.000 VIZ | Минимальная сумма для любого делегирования SHARES |
Размер блока и пропускная способность
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
maximum_block_size | uint32 (байт) | 131072 | Максимальный размер блока; управляет пропускной способностью |
bandwidth_reserve_percent | uint16 (bp) | 1000 (10%) | Дополнительная пропускная способность для малых аккаунтов |
bandwidth_reserve_below | asset (SHARES) | 500.000000 | Порог для получения резерва пропускной способности |
data_operations_cost_additional_bandwidth | uint32 (%) | 0 | Множитель дополнительной пропускной способности для операций с данными (custom_operation) |
Инфляция и экономика
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
inflation_validator_percent | uint16 (bp) | 2000 (20%) | Доля валидаторов от блочной инфляции |
inflation_ratio_committee_vs_reward_fund | uint16 (bp) | 5000 (50%) | Разделение оставшейся инфляции: фонд комитета vs фонд вознаграждений |
inflation_recalc_period | uint32 (блоки) | 806400 (~28д) | Как часто пересчитывается инфляция |
Поток инфляции: block_reward × inflation_validator_percent → валидатор. Остаток делится: inflation_ratio_committee_vs_reward_fund → фонд комитета; остальное → фонд вознаграждений за награды.
Система вознаграждений
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
min_curation_percent | uint16 (bp) | 500 (5%) | Минимальная доля кураторского вознаграждения из выплат за контент |
max_curation_percent | uint16 (bp) | 500 (5%) | Максимальная доля кураторского вознаграждения |
vote_accounting_min_rshares | uint32 | 5000000 | Минимальные rshares для ненулевого вознаграждения за награду |
flag_energy_additional_cost | uint16 (bp) | 0 | Дополнительная стоимость энергии для даунвотов/флагов |
Ответственность валидаторов
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
validator_miss_penalty_percent | uint16 (bp) | 100 (1%) | Снижение веса голосов при пропуске блока |
validator_miss_penalty_duration | uint32 (с) | 86400 (1д) | Продолжительность штрафа за пропуск |
Комиссии
Все комиссии поступают в фонд комитета (казна DAO).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
committee_create_request_fee | asset (VIZ) | 100.000 VIZ | Комиссия за создание заявки на финансирование комитета |
create_paid_subscription_fee | asset (VIZ) | 100.000 VIZ | Комиссия за создание платной подписки |
account_on_sale_fee | asset (VIZ) | 10.000 VIZ | Комиссия за выставление аккаунта на продажу |
subaccount_on_sale_fee | asset (VIZ) | 100.000 VIZ | Комиссия за выставление прав создания субаккаунта на продажу |
validator_declaration_fee | asset (VIZ) | 10.000 VIZ | Единовременная комиссия за регистрацию валидатора |
create_invite_min_balance | asset (VIZ) | 10.000 VIZ | Минимальный баланс инвайта |
Вывод из вестинга
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
withdraw_intervals | uint16 | 28 | Количество ежедневных платежей при анстейкинге SHARES |
Версии параметров
Параметры вводились поэтапно при хардфорках:
| Версия | Индекс | Хардфорк | Добавленные поля |
|---|---|---|---|
chain_properties_init | 0 | Генезис | account_creation_fee, maximum_block_size, параметры делегирования, курация, пропускная способность, стоимость флага, минимальные rshares, порог комитета |
chain_properties_hf4 | 1 | HF4 | inflation_validator_percent, inflation_ratio_committee_vs_reward_fund, inflation_recalc_period |
chain_properties_hf6 | 2 | HF6 | data_operations_cost_additional_bandwidth, validator_miss_penalty_percent, validator_miss_penalty_duration |
chain_properties_hf9 | 3 | HF9 | create_invite_min_balance, committee_create_request_fee, create_paid_subscription_fee, account_on_sale_fee, subaccount_on_sale_fee, validator_declaration_fee, withdraw_intervals |
Для всех новых публикаций параметров валидатора используйте индекс версии 3 (chain_properties_hf9).
Цикл управления
Держатели SHARES → голосуют за валидаторов
Валидаторы → публикуют предпочтительные значения параметров
Блокчейн → берёт медиану активного набора
Медиана → применяется как живые правила сетиИзменение параметра требует, чтобы большинство активных валидаторов опубликовали новое значение. Процесс:
- Сообщество обсуждает желаемое изменение (например, снижение комиссий).
- Валидаторы обновляют публикуемые параметры.
- Пользователи переносят голоса к валидаторам, публикующим желаемые значения.
- Как только большинство активных валидаторов публикует новое значение, медиана смещается.
- Новое значение вступает в силу автоматически — хардфорк или голосование за управление не требуются.
Чтение текущих параметров
{ "method": "database_api.get_chain_properties", "params": [] }Возвращает текущие действующие медианные параметры. См. Database API.
См. также: Валидаторы, Database API, Стейкинг и DAO.