Версійні транзакції

Підсумок

Транзакції V0 додають таблиці пошуку адрес (ALT), що дозволяє посилатися на акаунти через 1-байтові індекси замість 32-байтових ключів. Це економить 31 байт на кожен акаунт, розв'язаний через ALT.

Solana підтримує два формати транзакцій: застарілий та версійний (v0).

Валідатор визначає формат, перевіряючи перший байт повідомлення:

  • Якщо перший байт має встановлений біт префікса версії, це версійне повідомлення. Наразі підтримується лише версія 0. Наступні 3 байти — це MessageHeader.
  • Інакше це застаріле повідомлення. Перший байт — num_required_signatures, а наступні 2 байти завершують заголовок.

Коли використовувати транзакції V0

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

Формат повідомлення V0

Повідомлення v0 має ті самі поля, що й застаріле повідомлення, плюс додатковий масив address_table_lookups, доданий після інструкцій:

ПолеРозмірОпис
0x801 байтБайт префікса версії
header3 байтиMessageHeader (такий самий, як у застарілому)
static_account_keyscompact-u16 + N x 32 байтиКлючі, що з'являються буквально в транзакції
recent_blockhash32 байтиBlockhash
instructionscompact-u16 + зміннийТой самий формат, що й у застарілому
address_table_lookupscompact-u16 + зміннийПосилання на ALT (див. нижче)

Кожен запис таблиці пошуку адрес містить:

ПолеРозмірОпис
account_key32 байтиПублічний ключ облікового запису ALT
writable_indexescompact-u16 + N x 1 байтІндекси в ALT для облікових записів з правом запису
readonly_indexescompact-u16 + N x 1 байтІндекси в ALT для облікових записів лише для читання

Розв'язання таблиці пошуку адрес

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

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

Таблиці пошуку адрес впливають лише на те, як облікові записи посилаються в он-вайр транзакції. Під час виконання середовище виконання розв'язує всі індекси в повні адреси облікових записів. Облікові записи, розв'язані через ALT, можуть бути лише з правом запису або лише для читання (не підписувачі); вони не можуть бути підписувачами.

Is this page helpful?

Зміст

Редагувати сторінку

Керується

© 2026 Фонд Solana.
Всі права захищені.
Залишайтеся на зв'язку