Транзакция включает одну или несколько инструкций, подписи аккаунтов, которые авторизуют изменения, и недавний blockhash. Сеть обрабатывает все инструкции в транзакции одновременно. Если какая-либо инструкция не выполняется, вся транзакция отклоняется, и все изменения состояния отменяются.
Упрощённая схема, показывающая две транзакции
Структура транзакции
Подписи, формат сообщения (заголовок, адреса аккаунтов, blockhash, скомпилированные инструкции), бинарное кодирование, лимит размера и пример перевода SOL.
Версионные транзакции
Форматы Legacy и V0, таблицы поиска адресов (Address Lookup Tables), разрешение ALT и сравнение версий.
Пайплайн транзакций
Полный 8-ступенчатый процесс обработки (от получения до фиксации), чтение деталей транзакции из сети и справочник ошибок валидации.
Устойчивые nonces
Оффлайн-подпись с устойчивыми nonces, жизненный цикл nonce, обнаружение, процесс валидации и поведение при ошибках.
Основные факты
- Атомарное выполнение: Все инструкции выполняются успешно или все откатываются. Комиссия взимается даже при неудаче.
- Ограничение размера: Максимум 1 232 байта, вычислено из минимального MTU IPv6 (1 280 байт) минус 48 байт на сетевые заголовки.
- Подписи: Каждый подписант предоставляет одну подпись Ed25519 размером 64 байта.
- Срок действия blockhash: Недавний blockhash транзакции действителен в течение 150 слотов.
Ограничения
| Ограничение | Значение | Источник |
|---|---|---|
| Максимальный размер транзакции | 1 232 байта | PACKET_DATA_SIZE |
| Максимум аккаунтов в транзакции | 64 | Enforced limit (128 при активации increase_tx_account_lock_limit, сейчас неактивно) |
| Срок действия blockhash | 150 слотов | MAX_PROCESSING_AGE |
| Размер подписи | 64 байта (Ed25519) | -- |
| Базовая комиссия за подпись | 5 000 лампортов | Fees |
| Максимум инструкций на транзакцию | 64 (основные + CPI) | MAX_INSTRUCTION_TRACE_LENGTH |
| Максимум подписей в пакете | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?