Межцепные обновления
1) Суть задачи и риски
Межцепное обновление — это измененная логика/схема/протокол, одновременно затрагивающая несколько цепей/бриджей/DA-слоев/микросетей и их интерфейсы (сообщения, события ценности, права RNFT). Риски:- расхождение версий (split-brain) и потеря порядка/финальности;
- несовместимость ABI/схем → «немые» сообщения/зависшие средства;
- нарушение комплаенса (гео/возраст/санкции, экспорт данных);
- каскадные сбои мостов и DA.
Цель — обновлять без остановки ценности: сохранить строгие инварианты и обеспечить обратимость, телеметрию и управляемую деградацию.
2) Инварианты межцепных изменений
Order/Idempotency: strict-order per key; outbox/inbox, `idempotency_key` и seen-таблицы.
Finality-aware: окна challenge/реоргов учтены; маршруты выбираются по минимальному `FinalityLag`.
Compatibility First: SemVer для контрактов/ABI/схем событий.
Fail-closed: сомнение → блок/ручной кворум.
Compliance-gate: DID/VC, ZK-пороги (возраст/гео/санкции), политики экспорта/ретенции.
Observability: `x_msg_id`, `route_id`, `bridge_id`, `governance_version`.
3) Модель версионирования
3.1 Семейство версий
SemVer контрактов/ABI: `MAJOR.MINOR.PATCH` (MAJOR — ломающие).
Schema Registry событий: версии и эволюция полей (additive-first, deprecations с sunset).
Policy/Governance версии: весов/квот/тарифов; у каждого апгрейда есть `governance_version`.
Bridge/DA версии: независимые каналы согласования и финальности.
3.2 Версионная переговорка (handshake)
Version-negotiation: при межцепном вызове стороны выбирают наименьший совместимый профиль; иначе — graceful reject.
Feature-flags: MAJOR-изменения активируются флагами по окнам/ролям/регионам (canary → cohort → global).
4) Таксономия межцепных обновлений
1. Логические: новая бизнес-логика, правила валидации, тарифы/лимиты.
2. Схемные: поля событий, модели данных, индексация.
3. Протокольные: маршрутизация, сигнатуры сообщений, шифр/подписи.
4. Инфраструктурные: DA/бриджи, секвенсеры, POP/edge, Gas/fees.
5. Комплаенс-политики: регионы, ZK-пороги, экспорт/ретеншн.
6. Экономика/стимулы: QF, RiskAdj, пулы/распределение.
7. Безопасность: ключи/мультисиг, slashing-правила, стоп-краны.
5) Процедуры релиза (rollout strategy)
Preflight: симуляции/песочницы, replay исторического трафика, golden-set тесты.
Shadow/Observe: тени расчитывают ответы и сравниваются с текущей логикой.
Canary: малая доля маршрутов/ролей/регионов, строгие алерты.
Cohort rollout: расширение по когорте (гео/цепь/QoS).
Dual-write/Dual-read: временный период записи в две версии со строгими барьерами порядка.
Sunset: авто-откат временны́х параметров, если нет кворума на продление.
Rollback: одношаговый возврат с безопасной миграцией состояния (см. §8).
6) Utility-решение во время обновлений
Выбор маршрута/моста/поставщика при активном апгрейде:
Utility(route version) =
wL·Latency_p95 + wQ·QueueDepth + wF·FinalityLag
+ wC·Cost_per_unit + wR·RiskScore + wS·StabilityScore(version)
+ wG·Geo/PolicyPenalty
StabilityScore(version): штраф для новых, пока не пройдет soak/chaos.
Профили весов — по QoS: Q4 ↑wF, ↑wS; Q1 ↑wC.
Инварианты: Order ∧ Idempotency ∧ Quotas ∧ Compliance = true.
7) Контракты RNFT: права при апгрейдах
В RNFT для ролей (Operator/Provider/Bridge/DA/Curator/Compliance/Auditor) фиксируются:- `upgrade_rights`: кто инициирует, чьи подписи (мультисиг, k-of-n);
- `freeze/stop`: экстренные стоп-краны и кворумы;
- `quorum & veto`:治理-процедуры (включая R-модификатор по доверию/качеству);
- `escrow/insurance`: покрытие инцидентов миграции;
- `sunset`: временные правки флагов/порогов;
- `finality_windows`: задержки выплат и бридж-окна на время обновления.
8) Миграции состояния и обратимость
State Delta Journal: миграции ведут журнал дельт (меркли-корни, подписи); откат — применением обратных дельт.
Replay-барьеры: для Q3/Q4: стоп → snapshot → reattach; запрещены «сплит-порядки».
Idempotent Upcasters: чтение старых записей через преобразователь схем.
Cold/Warm switch: переключение читателей/писателей в окне низкой нагрузки.
Finality Holdback: задержка межцепных выплат до целевой финальности.
9) Совместимость: ABI/схемы/сообщения
ABI: MAJOR изменения — только за фича-флагом; MINOR — additive; PATCH — без логики.
События: новые поля — `nullable`/default; удаление — через деприкацию и sunset.
Версии сообщений: `msg.version`, `schema_hash`, обязательный `compat_min`.
Проверка порядка и дедуп: outbox/inbox, seen-таблицы с TTL.
10) Безопасность и ключи
Мультисиг/Threshold: ключевые апгрейды — только через пороговые подписи.
Timelocks: окна на ввод MAJOR-изменений, чтобы аудит/сообщество успели отреагировать.
ZK-asserts: доказательства соответствия критичным инвариантам (например, баланс-инварианты) без раскрытия данных.
Key-rotation: план ротации с наследованием прав, двойная подпись в переходный период.
11) Комплаенс
Policy Preview: симуляция политики на синтетике и реальном «тени-трафике».
Geo/age/sanctions: ZK-пруфы порогов; при неопределенности — карантин.
Export/retention: DA/egress по регионам; журнал решений治理 для регулятора.
Налоги/withholding: временные удержания при финальности мостов.
12) Наблюдаемость и алерты
Метрики: p50/p95/p99, retry/timeout, out-of-order/dup, DLQ depth, finality lag, cost/req, stability(version).
Отчеты: Upgrade Live, Finality & Bridges, Schema/ABI Health, Governance Queue.
Алерты: error-budget burn, рост TailAmplification, drift схем, spike отказов комплаенса, flap-rate маршрутов.
13) Тесты/симуляции/хаос
Unit-контракты: ABI/схемы, правила совместимости.
Trace-replay: прогон историй с инвариант-проверками.
Fuzz/Property-based: случайные сценарии сообщений/порядка/финальности.
Chaos/Game-day: падение POP/моста/DA, reorg-бурсты, ценовые шоки.
Soak 24–72h: стабильность p95/p99/финальности/стоимости.
14) Экономика апгрейдов
Budget-caps: потолки стоимости на период; surge-штрафы при перегрузе.
QF-бонусы: провайдерам, выдержавшим SLO в окне апгрейда.
RiskAdj: временный понижающий множитель выплат при нарушениях.
Treasury hooks: компенсации из страхового пула при подтвержденных инцидентах.
15)治理 (процедуры и прозрачность)
Пропозалы: описание изменения, риск-анализ, план отката, окна финальности.
Кворумы/вето: роли и веса; R-модификатор доверия/качества.
Публичность: паспорта версий, diff-логика, отчеты после апгрейда.
Sunset-правки: автоматический откат временных настроек.
16) KPI межцепных обновлений
Надежность: 0 критичных нарушений порядка/финальности; DLQ не растет.
Задержка: p95/p99 в коридоре; TailAmplification ≤ целевого.
Финальность: FinalityLag не растет сверх бюджета; 0 ложных подтверждений.
Экономика: Cost/Req в бюджете; компенсации ≤ порога.
Операции: MTTR инцидентов ↓; flap-rate маршрутов не ухудшается.
Комплаенс: 100% прохождение gating; 0 нарушений экспорта/ретенции.
治理: TTC пропозала→апрува в SLA; доля sunset-откатов в срок.
17) Формулы и ориентиры
SuccessRate = 1 − (timeouts+errors)/requests
TailAmplification = p99/p50 (↓)
Headroom = (cap − current)/cap
FinalityScore = f(lag, variance, reorgs)
Stability(version) = 1 − norm(incidents, flap, drift)
QualityFactor (QF) = f(success, p95, DLQ, finality)
SLO (пример):- Q4: success ≥ 99.99%, p95 ≤ 200 мс, DLQ=0, MTTR ≤ 15 мин.
- Bridges/DA: финальность ≤ 3×T_block, reorg≈0.
18) Плейбук внедрения (шаги)
1. Инициирование: пропозал, риск-анализ, план отката, оценка финальности/комплаенса.
2. Подготовка: SemVer/ABI, схемы и upcasters, фича-флаги, RNFT-права/кворумы.
3. Тесты: unit/trace-replay/fuzz, policy-preview, ZK-asserts инвариантов.
4. Наблюдаемость: панели/алерты, эталонные пороги KPIs.
5. Shadow → Canary: тени/сравнение, малые когорты, строгие алерты.
6. Cohort rollout: регион/цепь/QoS поэтапно; finality-holdback выплат.
7. Dual-write/read: барьеры порядка, репликация и сверка.
8. Soak/Chaos: endurance и отказные сценарии.
9. Глобализация: снятие флагов, обновление документации/бейджей версии.
10. Пост-мортем: отчет治理, обновление сигнатур/порогов/гайдов.
19) Чек-лист прод-готовности
- SemVer/ABI и Schema Registry с upcasters
- Фича-флаги, окна активации, sunset-параметры
- RNFT-права: кворумы, стоп-краны, эскроу/страховой пул
- Outbox/inbox, idempotency, replay-барьеры
- Finality-план: окна бриджей/DA, holdback выплат
- Observability: трассировка, панели Upgrade/Finality/ABI
- Комплаенс-превью, ZK-пруфы порогов, экспорт/ретеншн политики
- Симуляции, shadow, canary, cohort, soak/chaos
- Rollback-план и журнал дельт состояния
- Публичный отчет и обновление治理-реестров
20) Глоссарий
SemVer/ABI: семантическое версионирование/интерфейсы контрактов.
Upcaster: преобразователь старых записей к новой схеме при чтении.
FinalityLag: окно до необратимости межцепного события.
Outbox/Inbox: гарантированная доставка/идемпотентность.
RNFT: контракт отношений/прав/лимитов и KPI.
Sunset: авто-откат временных параметров.
Shadow/Canary/Cohort: поэтапные стратегии релиза.
21) Итог
Межцепные обновления — это управляемая дисциплина: версии → флаги → поэтапный запуск → финальность/совместимость → наблюдаемость → откат. С строгими инвариантами порядка и комплаенса, RNFT-правами, симуляциями и прозрачной治理 экосистема обновляется безболезненно и предсказуемо, сохраняя непрерывную ценность и доверие участников.