Skip to main content
До живой сети доходят три вида изменений: изменения параметров (лимит риска, тарифная сетка, потолок финансирования), изменения поведения (как работает само исполнение) и изменения рынков (листинги и делистинги). Объявляются они по-разному. Общее у них одно свойство, и оно главное: изменение вступает в силу в конкретной точке истории блокчейна, и на историю до этой точки оно не влияет.

Изменения параметров

Риск-параметры, ступени плеча, потолки финансирования, лимиты позиции и тарифные сетки — это ончейн-конфигурация. Изменить любой из них — значит провести транзакцию протокола: она исполняется в блоке, в самом начале приоритета блока. Значение лежит в состоянии блокчейна, поэтому изменение видно напрямую, а не приходит уведомлением. Вам не нужно ждать, пока сообщат, что поддерживающая маржа на рынке сдвинулась: вы сами читаете, какая она сейчас и какой была на любом прошлом блоке. Ключи конфигурации к тому же версионированы. Когда меняется не число, а форма значения, новая форма записывается под новым ключом, а старый остаётся читаемым. Клиент, который читает конфигурацию вживую, переживает изменение без правок, а клиент с зашитым в код путём ключа узнаёт об этом сразу и не читает молча устаревшее значение. См. Модель состояния.

Изменения поведения

Изменить, как ведёт себя исполнение, — задача сложнее, чем изменить число, потому что каждый валидатор обязан сделать это ровно в один и тот же момент. Изменение, приходящее на разные узлы в разное время, — это не выкатка, а форк. Intention решает это ончейн-переключателями. Каждый переключатель — это один ключ состояния с высотой блока: с неё и начинается новое поведение.
Новое поведение выпущенов бинарнике, но не активно
Переключатель записанодин ключ состояния с будущей высотой блока
Все валидаторы читают одну высоту
Поведение меняется ровно на этом блоке
Высота обязана быть в будущемПереключатель нельзя выставить на уже пройденную высоту. Именно это правило делает изменение одновременным.
Нет переключателя — выключеноУзел, воспроизводящий историю, не читает ключа на этих высотах и идёт по старой ветке, поэтому воспроизведение корректно без матрицы совместимости.
Читается на исполняемой версииНикогда из кэша. Прочитать текущее значение при воспроизведении старого блока — значит применить сегодняшние правила к вчерашней истории.
Отсюда следуют три свойства, и каждое из них несущее: В момент записи высота обязана быть в будущем. Переключатель нельзя выставить на уже пройденную высоту. Именно это правило делает изменение одновременным: каждый валидатор доходит до этого блока с уже видимым ключом. Отсутствующий переключатель означает «выключено». Узел, воспроизводящий историю, не читает на тех высотах никакого ключа и идёт ровно по старой ветке кода. Воспроизведение истории остаётся корректным само собой, и никому не приходится вести матрицу совместимости. Переключатель читается на исполняемой версии, а не из кэша. Прочитать текущее значение при воспроизведении старого блока значило бы применить сегодняшние правила к вчерашней истории и получить другой корень состояния. Поэтому значение всегда берётся из представления исполнения того блока, который обрабатывается сейчас. Тот же механизм поддерживает постепенное включение: флаг можно ввести выключенным, проверить на реальном трафике и включить на запланированной высоте — а не выкатывать всё сразу, обновлением бинарника.

Сроки уведомления

Уведомление соразмерно тому, что изменение может сделать с уже открытой позицией. Последняя строка — реальное исключение, а не лазейка. Лимит позиции, которому надо неделю ждать ужесточения, — это лимит, который ничего не делает ровно ту неделю, ради которой он был нужен. Когда этим исключением пользуются, изменение публикуют вместе с его причиной.
Изменение маржинальных требований или ступеней плеча меняет цену ликвидации по уже открытым позициям. Оно ничего не закрывает, и персонально вас о нём не предупредят. Если вы держите позиции через объявленное изменение риск-параметров, пересчитайте расстояние до ликвидации по новым значениям, а не по тем, что действовали при открытии. См. Плечо.

Что не может измениться

Правила, действовавшие в уже зафиксированном блоке. Любое изменение правил вступает в силу на высоте, которая на момент записи была в будущем, поэтому при воспроизведении старого блока всегда применяются правила, действовавшие тогда. Вопрос о том, действовало ли конкретное правило на какой-то прошлой версии, имеет один ответ, и сегодня он тот же, каким будет через год. Это более сильная гарантия, чем опубликованная политика. Дело не в том, что протокол не станет переписывать историю, — дело в том, что у механизма нет способа выразить правило, начавшееся в прошлом. См. Модель состояния.

Объявления

Обязательства по уведомлению, описанные на этой странице, начинают действовать с публичным тестнетом 20 сентября 2026 года. В приватном тестнете параметры и поведение меняются без уведомления — он для того и существует, чтобы их настраивать.
Как только сроки уведомления заработают, каждое изменение фиксируется в журнале изменений протокола с датой вступления в силу и объявляется заранее, когда этого требует таблица выше. Записи датируются по тому, когда изменение вступило в силу в сети, а не когда о нём объявили.

Что дальше

Журнал изменений протокола

Датированная запись о том, что уже выпущено.

Листинги и делистинги

Изменения рынков и сроки уведомления по ним.

Модель состояния

Почему ключи конфигурации версионируются и читаются вживую.

Плечо

Что изменение риск-параметра делает с открытой позицией.