Skip to content

Ключевые концепции

На этой странице описаны фундаментальные концепции, необходимые для работы с VIZ Ledger — разработчику, оператору узла или создателю приложений.


Аккаунты

Каждый участник VIZ Ledger — это аккаунт. Аккаунты хранят балансы, создают контент, голосуют за валидаторов и взаимодействуют со всеми возможностями протокола.

Правила именования аккаунтов

  • Длина: от 3 до 16 символов
  • Метки, разделённые точками: каждая метка ≥ 3 символов
  • Каждая метка начинается с буквы, оканчивается буквой или цифрой
  • Допустимы только строчные латинские буквы (a-z), цифры (0-9), дефисы (-)
  • Примеры корректных имён: alice, alice.bob, viz-user1

Уровни авторизации

У каждого аккаунта три уровня авторизации, каждый из которых содержит набор ключей или делегированных аккаунтов:

УровеньИспользуется дляКлюч
masterСмена ключей, восстановление аккаунта, операции высокой безопасностиМастер-ключ (хранить офлайн)
activeПереводы токенов, вестинг, голосование за валидаторовАктивный ключ
regularКонтент, награды, голосование в комитете, социальные операцииРегулярный ключ

Авторизация — это мультиподписная структура: { weight_threshold, account_auths[], key_auths[] }. Транзакция авторизована, когда сумма весов предоставленных подписей достигает weight_threshold или превышает его.


Токены

VIZ — ликвидный токен

  • 3 знака после запятой: "10.000 VIZ"
  • Используется для переводов, комиссий и операций финансирования
  • Конвертируется в SHARES через transfer_to_vesting_operation

SHARES — застейканный токен

  • 6 знаков после запятой: "10.000000 SHARES"
  • Представляет голосующую силу и ёмкость энергии
  • Создаётся при стейкинге VIZ; выводится обратно в VIZ за 28 интервалов (≈28 дней)
  • Не переводится напрямую; может быть делегирован другим аккаунтам

Система энергии

Энергия — ресурс, определяющий влияние социальных действий (наград, голосов) относительно доли аккаунта в SHARES.

СвойствоЗначение
ЕдиницаБазисные пункты: 0 = 0%, 10000 = 100%
Скорость восстановленияПолное восполнение за 24 часа (86 400 секунд)
Формула восстановленияcurrent_energy = min(10000, last_energy + elapsed_sec * 10000 / 86400)

Когда аккаунт выдаёт награду с energy = 500 (5%), эта доля его SHARES используется для определения распределения из пула вознаграждений. Трата энергии не «уничтожает» токены — она определяет вес в пуле вознаграждений.


Валидаторы (производители блоков)

Валидаторы (ранее называвшиеся «witnesses») — аккаунты, производящие блоки и поддерживающие работу сети.

  • Любой аккаунт может зарегистрироваться как валидатор через validator_update_operation.
  • Держатели токенов голосуют за валидаторов, используя вес своих SHARES.
  • Ведущие по голосам валидаторы получают расписание блоков в порядке round-robin.
  • Каждый слот блока — ровно 3 секунды.
  • Раунд из 21 валидатора = 21 блок = 63 секунды.

Участие в Fair-DPOS

В отличие от стандартного DPOS, VIZ Ledger штрафует бездействие:

  • У каждого валидатора есть оценка участия на основе недавнего производства блоков.
  • Если участие по всей сети опускается ниже required-participation (по умолчанию 33%), производство блоков приостанавливается.
  • Валидаторы, пропускающие слишком много блоков, получают штраф к голосам, действующий в течение validator_miss_penalty_duration секунд.

Блоки и транзакции

Блок

Подписанный набор транзакций, произведённый валидатором в его запланированном слоте. Содержит:

  • previous: хэш предыдущего блока (связь цепочки)
  • timestamp: точное время слота
  • witness: имя производящего валидатора
  • transactions[]: список подписанных транзакций
  • validator_signature: подпись валидатора

Транзакция

Одна или несколько операций, сгруппированных и подписанных. Свойства:

  • ref_block_num = head_block_number & 0xFFFF
  • ref_block_prefix = байты 4–7 идентификатора референсного блока (little-endian uint32)
  • expiration: должен быть в пределах 60 секунд от текущего времени (рекомендуется)
  • operations[]: 1 или более операций
  • signatures[]: подписи ECDSA, удовлетворяющие всем необходимым авторизациям

Операция

Атомарная единица изменения состояния. Сериализуется как [type_id, operation_object] внутри транзакции. Существует 64+ типов операций, охватывающих переводы, социальные действия, управление и другое — см. Обзор операций.


Пул вознаграждений

Инфляция непрерывно добавляется в пул вознаграждений. Валидаторы и создатели контента получают средства из этого пула:

ПолучательИсточник
Валидаторыinflation_validator_percent от блочного вознаграждения
КомитетДоля inflation_ratio_committee_vs_reward_fund
Фонд вознагражденийОстаток — распределяется через награды и голоса за контент

Точные проценты устанавливаются консенсусом валидаторов через versioned_chain_properties_update_operation и принимаются голосованием ведущих валидаторов.


Fork и LIB

Fork database (fork_db): дерево в памяти из недавно полученных блоков, которые ещё могут не входить в канонич цепочку. Узел отслеживает все форк-кандидаты и всегда продолжает наиболее тяжёлый (наиболее одобрённый) форк.

LIB (Last Irreversible Block): последний блок, подтверждённый более чем 2/3 валидаторов. Блоки на уровне LIB и ниже не могут быть реорганизованы. Как только блок опускается ниже LIB, он записывается в постоянный лог блоков.


Снапшот

Снапшот — бинарный дамп всего состояния базы данных на определённом номере блока. Позволяет новому узлу:

  1. Скачать файл снапшота
  2. Загрузить его за секунды (вместо воспроизведения всей истории блоков)
  3. Продолжить синхронизацию с высоты блока снапшота

Снапшоты создаются плагином snapshot и не влияют на канонич цепочку — это исключительно операционный инструмент.


Параметры цепочки (параметры управления)

Параметры консенсуса на блокчейне контролируются валидаторами через versioned_chain_properties_update_operation. Активные параметры являются медианой значений, опубликованных ведущими 21 валидаторами.

Ключевые параметры:

  • account_creation_fee — стоимость создания нового аккаунта
  • maximum_block_size — максимальный размер блока в байтах
  • inflation_validator_percent — доля валидаторов от блочного вознаграждения
  • validator_miss_penalty_percent / validator_miss_penalty_duration — штраф за пропуск блоков
  • withdraw_intervals — количество интервалов вывода из вестинга

См. Управление параметрами цепочки для полного списка параметров.


Хардфорки

Обновления протокола развёртываются как хардфорки — запланированные активации на определённом номере блока. Как только ≥17 из 21 валидаторов сигнализируют поддержку хардфорка, он активируется при следующем запланированном блоке. Хардфорки могут добавлять новые типы операций, изменять правила консенсуса или вводить новые параметры цепочки.

См. Хардфорки для истории и процесса обновления.