Транзакция включает одну или несколько инструкций, подписи аккаунтов, которые авторизуют изменения, и недавний blockhash. Сеть обрабатывает все инструкции в транзакции одновременно. Если какая-либо инструкция не выполняется, вся транзакция отклоняется, и все изменения состояния отменяются.
Упрощённая схема, показывающая две транзакции
Структура транзакции
Подписи, формат сообщения (заголовок, адреса аккаунтов, blockhash, скомпилированные инструкции), бинарное кодирование, лимит размера и пример перевода SOL.
Версионные транзакции
Форматы Legacy и V0, таблицы поиска адресов (Address Lookup Tables), разрешение ALT и сравнение версий.
Пайплайн транзакций
Полный 8-ступенчатый процесс обработки (от получения до фиксации), чтение деталей транзакции из сети и справочник ошибок валидации.
Устойчивые nonces
Оффлайн-подпись с устойчивыми nonces, жизненный цикл nonce, обнаружение, процесс валидации и поведение при ошибках.
Готовность к продакшену
Настройте доставку транзакций, повторные попытки, приоритетные комиссии и подтверждение для приложений в мейннете.
Основные факты
- Атомарное выполнение: Все инструкции выполняются успешно или все откатываются. Комиссия взимается даже при неудаче.
- Ограничение размера: максимум 1 232 байта — это минимальный MTU IPv6 (1 280 байт) за вычетом 48 байт на сетевые заголовки. Формат v1 увеличивает этот лимит до 4 096 байт.
- Подписи: Каждый подписант предоставляет одну подпись Ed25519 размером 64 байта.
- Срок действия blockhash: Недавний blockhash транзакции действителен в течение 150 слотов.
Ограничения
| Ограничение | Значение | Источник |
|---|---|---|
| Максимальный размер транзакции | 1 232 байта | PACKET_DATA_SIZE |
| Максимум аккаунтов в транзакции | 64 (96 для v1 с SIMD-0596) | Принудительно применяемый лимит |
| Срок действия 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?