Під капотом

Від ідеї до релізу: шлях протокольної зміни

Протокольна зміна в Solana — це не один коміт у репозиторій, а послідовність етапів, кожен із яких має власну мету, критерії переходу та межу відповідальності. Цей матеріал описує типовий життєвий цикл пропозиції зміни (

Опубліковано 03.10.2026Оновлено 11.08.202611 хв читанняРедакція солана.укр
Авторство Редакція солана.укрАктуальність оновлено 11.08.2026Посилання 1 зовнішнє у текстіФормат редакційний матеріал

Протокольна зміна в Solana — це не один коміт у репозиторій, а послідовність етапів, кожен із яких має власну мету, критерії переходу та межу відповідальності. Цей матеріал описує типовий життєвий цикл пропозиції зміни (SIMD) від формулювання ідеї до активації в мережі, показує зв’язки між компонентами системи та пояснює, де закінчуються перевірені факти й починаються інтерпретації.

Що важливо відокремити в технічній частині

Головна теза: шлях протокольної зміни в Solana — це структураєдований процес із формалізованими етапами, проте кожен етап містить точки невизначеності, де технічні рішення перетинаються з координаційними компромісами між валідаторами, розробниками клієнтів та авторами застосунків.

Межа аналізу: цей матеріал описує типовий процес проходження пропозиції через етапи, а не поточний статус конкретних SIMD. Ми не розглядаємо тут, хто має формальне право пропонувати зміни та як розпізнати політичну позицію за маскою технічного аргументу — ці питання детально розкриті в окремому матеріалі та наступній статті кластера. Загальний огляд управління доступний у хабі про SIMD.

Карта місця теми в системі: протокольна зміна впливає на три шари — клієнтський (реалізація в коді валідатора), консенсусний (активація через оновлення версії мережі) та додатковий (зміна поведінки смарт-контрактів і інструментів, які працюють поверх протоколу). Зміна в одному шарі створює вимоги до інших, і зворотний зв’язок може змінити саму пропозицію ще до релізу.

Механізм і зв’язки

Життєвий цикл протокольної зміни можна розділити на п’ять основних етапів. Кожен має власну функцію, але межі між ними не завжди жорсткі — це джерело часткової невизначеності, про яку детально нижче.

Формулювання та подача пропозиції

Автор ідеї створює документ SIMD — формалізовану пропозицію, яка описує проблему, запропоноване рішення, його вплив на протокол та альтернативи, що були розглянуті. На цьому етапі ключовим є не код, а чіткість формулювання: що саме змінюється, для кого, які інваріанти протоколу порушуються або зберігаються.

Пропозиція подається до відкритого репозиторію SIMD. Факт подачі — це протокольний факт: документ існує, має номер і є публічно доступним. Проте сам факт подачі не означає, що зміна буде реалізована чи навіть обговорена.

Обговорення та технічна перевірка

Після подачі пропозиція потрапляє в поле зору розробників клієнтів, валідаторів та авторів інфраструктури. На цьому етапі відбувається перевірка внутрішньої логіки: чи вирішує запропоноване рішення заявлену проблему, чи не створює нових векторів ризику, чи сумісне з існуючими інваріантами.

Технічна перевірка включає кілька вимірів:

  • Коректність — чи відповідає рішення заявленим цілям без логічних прогалин.
  • Сумісність — чи не ламає зміна існуючу поведінку програм, які працюють у мережі.
  • Продуктивність — чи не погіршує зміна пропускну здатність, затримки або використання ресурсів валідаторами.
  • Безпека — чи не відкриває зміна нових векторів атак на консенсус або стан мережі.

Результат цього етапу — не формальне голосування, а накопичення технічних зауважень, модифікація пропозиції та формування позицій ключових учасників. Межа знання: без аналізу конкретних коментарів у репозиторії та дискусійних майданчиках неможливо визначити, на якому саме етапі обговорення перебуває конкретна пропозиція. Це потрібно перевіряти вручну за актуальним станом репозиторію.

Реалізація в клієнті

Якщо пропозиція отримує достатню технічну підтримку, розробники одного або кількох клієнтів (найчастіше Agave — основний форк вузла на базі Rust) починають реалізацію. Цей етап перетворює абстрактну специфікацію на робочий код.

Важливий нюанс: реалізація може виявити проблеми, які не були видимі на етапі обговорення. Це нормальна частина процесу, але вона означає, що навіть після початку кодування пропозиція може повернутися на попередній етап або бути модифікована.

Критерій перевірки на цьому етапі: наявність відкритого pull request у репозиторії клієнта з посиланням на номер SIMD. Відсутність такого pull request — це сигнал, що пропозиція ще не перейшла до фази реалізації, навіть якщо обговорення триває.

Тестування в тестових мережах

Реалізований код потребує перевірки в середовищі, що наближається до основної мережі. Для цього використовуються тестові мережі (testnet, devnet), де валідатори можуть активувати нову версію клієнта без ризику для реальних активів користувачів.

На цьому етапі перевіряються:

  • Поведінка мережі за умови активації зміни на всіх або більшості вузлів.
  • Взаємодія нової логіки з існуючими програмами та інструментами.
  • Стабільність роботи валідаторів із новою версією клієнта під навантаженням.
  • Можливість відкату у випадку виявлення критичних проблем.

Межа знання: результати тестування не завжди публічно задокументовані в структурованому вигляді. Часто інформація про проблеми, виявлені в тестовій мережі, існує у вигляді issue у репозиторіях або повідомлень у каналах спілкування розробників. Без ручної перевірки цих джерел неможливо стверджувати, чи пройшла конкретна зміна тестування успішно.

Активація в основній мережі

Прийнята SIMD-пропозиція ще не означає, що зміна вже працює в mainnet. Офіційний процес окремо розрізняє статуси Accepted, Implemented і Activated: після прийняття потрібна реалізація, а для змін, що використовують feature activation, — окреме відстеження feature gate та активації по кластерах. Статус Activated означає, що зміну реалізовано, протестовано й активовано в mainnet beta. Тому універсального правила «більшість валідаторів проголосувала — наступної епохи зміна ввімкнулася» для всіх SIMD немає.

Саме між реалізацією та активацією технічний процес перетинається з операційною координацією. Для конкретної зміни потрібно дивитися її tracking issue, реалізацію в клієнтах, вимоги feature gate — якщо він використовується — і фактичний статус у цільовому кластері. Не варто виводити механіку активації лише з факту появи SIMD або релізу клієнта.

Критерій перевірки активації: версія клієнта, яку використовує більшість валідаторів у конкретній епосі, та відповідний запис у ланцюжку блоків. Ці дані можна отримати з публічних інструментів моніторингу мережі, але для конкретного твердження потрібна перевірка з вказанням дати, епохи та джерела даних.

Зведена таблиця етапів

Етап Функція Критерій переходу Тип невизначеності
Подача пропозиції Формалізація ідеї Публікація SIMD у репозиторії Низька: факт подачі перевіряється однозначно
Обговорення Технічна перевірка логіки Відсутність незнятих блокуючих зауважень Висока: немає формального критерію «достатності» обговорення
Реалізація Перетворення специфікації на код Відкритий pull request у репозиторії клієнта Середня: код може виявити приховані проблеми
Тестування Перевірка в середовищі, близькому до реального Стабільна робота в тестовій мережі Середня: результати не завжди структуровано задокументовані
Активація Впровадження в основну мережу Більшість валідаторів оновила клієнта Висока: залежить від координації незалежних учасників

Джерела й перевірювані твердження

Для розуміння реального стану конкретної протокольної зміни потрібні дані з кількох незалежних джерел. Жодне з них окремо не дає повної картини.

Репозиторій SIMD

Основне джерело для етапів подачі та обговорення. Містить текст пропозиції, коментарі, статуси та посилання на реалізацію. Проте статуси у репозиторії SIMD не завжди синхронізовані з реальним станом речей: пропозиція може мати статус «прийнято», але не мати реалізації, або навпаки — реалізація може існувати без формального оновлення статусу SIMD.

Критерій перевірки: порівняння статусу SIMD із наявністю відповідного pull request у репозиторії клієнта та версією клієнта в основній мережі.

Репозиторії клієнтів

Джерело для етапів реалізації та тестування. Відкриті pull request, commit history та release notes дозволяють відстежити, коли саме код був написаний, об’єднаний та випущений у складі релізу. Це найбільш об’єктивне джерело для визначення факту реалізації.

Обмеження: наявність коду в репозиторії не гарантує, що цей код буде активований в основній мережі. Також не всі клієнти мають однакову швидкість впровадження змін — розбіжність у реалізації між клієнтами є окремим фактором ризику.

Дані мережі

Джерело для етапу активації. Версії клієнтів валідаторів, епохи оновлення, статистика консенсусу — ці дані дозволяють підтвердити факт активації зміни. Проте для коректного твердження потрібні: дата перевірки, джерело даних, метод розрахунку частки валідаторів із новою версією та розуміння того, що ця частка може змінюватися з часом.

Позиції сторін

У процесі обговорення формуються позиції різних груп учасників. Типові позиції можна узагальнити, але конкретна приналежність до позиції потребує перевірки за первинними джерелами:

  • Розробники клієнтів зосереджені на коректності реалізації, підтримуваності коду та сумісності з іншими змінами, що знаходяться в розробці.
  • Валідатори оцінюють вплив на операційні витрати, стабільність роботи вузла та ризики простою під час оновлення.
  • Автори застосунків звертають увагу на зміну поведінки програм, сумісність інтерфейсів та наслідки для кінцевих користувачів.
  • Інфраструктурні команди (RPC-провайдери, індексери) оцінюють необхідність адаптації своїх сервісів до нової поведінки протоколу.

Межа знання: без аналізу конкретних висловлювань у репозиторіях та дискусійних майданчиках неможливо приписати конкретну позицію конкретному учаснику щодо конкретної пропозиції. Узагальнені описи позицій — це інтерпретація, а не факт.

Ризики та межі висновку

Швидкість проти ретельності

Основний компроміс у процесі протокольних змін — між швидкістю впровадження та глибиною перевірки. Прискорення процесу зменшує час, протягом якого мережа працює з відомими обмеженнями, але збільшує ризик впровадження зміни з прихованими дефектами. Уповільнення процесу підвищує якість перевірки, але може означати, що мережа довше залишається з невирішеною проблемою.

Цей компроміс не має «правильного» рішення — він залежить від контексту конкретної зміни. Критична вразливість безпеки виправдовує швидкий шлях, тоді як архітектурна зміна, що впливає на всіх учасників, потребує тривалого обговорення.

Зворотна сумісність

Зміни, що порушують зворотну сумісність, створюють найбільший координаційний тиск. Вони вимагають синхронізованого оновлення не лише валідаторів, а й усіх застосунків та інструментів, що залежать від зміненої поведінки. Навіть якщо технічна перевірка пройшла успішно, координаційні витрати можуть стати блокуючим фактором.

Критерій оцінки: чи вимагає зміна оновлення коду програм, які вже працюють в основній мережі. Якщо так — це висококоординаційна зміна з відповідним рівнем ризику.

Невизначеність координації валідаторів

Найбільша точка невизначеності в процесі — етап активації. Валідатори є незалежними учасниками, і їхнє рішення про оновлення залежить від багатьох факторів, які не можна формалізувати: довіра до розробників клієнта, наявність ресурсів на тестування, операційні процедури конкретної команди, комерційні інтереси.

Це означає, що технічна готовність зміни є необхідною, але не достатньою умовою активації. Історія містить приклади пропозицій, які були технічно реалізовані та протестовані, але не активувалися в основній мережі протягом тривалого часу через відсутність координації.

Межа висновку: неможливо передбачити, чи буде конкретна пропозиція активована, навіть якщо вона пройшла всі попередні етапи. Можна лише описати фактори, що впливають на це рішення, та критерії, за якими можна оцінити ймовірність.

Ризик розбіжності клієнтів

Solana має кілька реалізацій клієнта валідатора. Якщо зміна реалізована в одному клієнті, але не в іншому, виникає ризик розбіжності поведінки під час активації. Це особливо критично для змін у консенсусній логіці, де різна поведінка клієнтів може призвести до форку мережі.

Критерій перевірки: наявність реалізації зміни в усіх активних клієнтах валідатора. Відсутність реалізації хоча б в одному клієнті — це сигнал підвищеного ризику для етапу активації.

Підсумок і спосіб перевірки

Шлях протокольної зміни в Solana — це структураєдований, але не алгоритмізований процес. П’ять етапів (подача, обговорення, реалізація, тестування, активація) мають чіткі функції та критерії переходу, проте між етапами існують зони невизначеності, де технічні фактори перетинаються з координаційними.

Що можна перевірити об’єктивно: наявність SIMD у репозиторії, наявність pull request у репозиторії клієнта, версію клієнта в тестовій та основній мережах, частку валідаторів із оновленою версією. Для кожного з цих тверджень потрібні дата перевірки, джерело даних та метод розрахунку.

Що не можна стверджувати без первинних даних: поточний статус конкретної пропозиції, позицію конкретного учасника, результати тестування, які не задокументовані публічно, ймовірність активації конкретної зміни.

Зв’язки з іншими компонентами системи: протокольна зміна в консенсусному шарі створює вимоги до оновлення клієнтів, що створює вимоги до адаптації інфраструктури, що створює вимоги до оновлення застосунків. Зміна в одному компоненті неминуче створює хвиль ефектів у суміжних шарах, і ці ефекти потрібно враховувати ще на етапі обговорення пропозиції.

Для розуміння того, хто саме ініціює ці зміни та як формуються координаційні механізми, рекомендуємо матеріал про учасників процесу. Для розпізнавання, коли технічна аргументація маскує позицію інтересу — наступну статтю кластера. Загальний контекст управління мережею доступний у хабі про SIMD, а вплив змін на кінцеві продукти — у розділі Продукти Solana. Питання безпеки протокольних змін розкриті в розділі безпеки.

Обмеження цього матеріалу. Стаття описує типовий процес і не містить оцінки поточного статусу жодної конкретної пропозиції SIMD. Усі твердження про етапи, критерії та ризики є описом механізму, а не оцінкою конкретних подій. Для застосування цього фреймворку до конкретної пропозиції потрібна ручна перевірка за актуальними даними репозиторіїв та мережі.

Редакція солана.укр

Джерела для перевірки. Первинні джерела для перевірки цього механізму: офіційний репозиторій.

джерела в матеріалі

Зовнішні посилання та документація

Нижче — зовнішні URL, які вже використані в тексті. Це не автоматична позначка «перевірено»: редакція показує джерела прозоро й не підміняє фактчек бейджем.