Transakcja zawiera jedną lub więcej instrukcji, podpisy kont autoryzujących zmiany oraz aktualny blockhash. Sieć przetwarza wszystkie instrukcje w transakcji razem. Jeśli którakolwiek instrukcja się nie powiedzie, cała transakcja zostaje odrzucona, a wszystkie zmiany stanu cofnięte.
Uproszczony diagram przedstawiający dwie transakcje
Struktura transakcji
Podpisy, format wiadomości (nagłówek, adresy kont, blockhash, skompilowane instrukcje), kodowanie binarne, limit rozmiaru oraz przykład transferu SOL.
Transakcje wersjonowane
Format Legacy vs V0, Tabele wyszukiwania adresów (ALT), rozwiązywanie ALT i porównanie wersji.
Pipeline transakcji
Pełny 8-etapowy pipeline przetwarzania (od odbioru do zatwierdzenia), odczyt szczegółów transakcji z sieci oraz odniesienie do błędów walidacji.
Trwałe nonce’y
Podpisywanie offline z trwałymi nonce’ami, cykl życia nonce’a, wykrywanie, walidacja i zachowanie w przypadku błędu.
Gotowość do środowiska produkcyjnego
Skonfiguruj dostarczanie transakcji, ponowne próby, opłaty priorytetowe i potwierdzanie dla aplikacji w mainnecie.
Kluczowe informacje
- Wykonanie atomowe: Wszystkie instrukcje muszą się powieść lub wszystkie zostaną cofnięte. Opłaty są pobierane nawet w przypadku niepowodzenia.
- Limit rozmiaru: maksymalnie 1232 bajty, co wynika z minimalnego MTU dla IPv6 (1280 bajtów) pomniejszonego o 48 bajtów na nagłówki sieciowe. Format v1 zwiększa ten limit do 4096 bajtów.
- Podpisy: Każdy podpisujący dostarcza jeden 64-bajtowy podpis Ed25519.
- Wygaśnięcie blockhash: Aktualny blockhash transakcji jest ważny przez 150 slotów.
Limity
| Limit | Wartość | Źródło |
|---|---|---|
| Maksymalny rozmiar transakcji | 1 232 bajty | PACKET_DATA_SIZE |
| Maksymalna liczba kont w transakcji | 64 (96 dla v1 z SIMD-0596) | Egzekwowany limit |
| Wygaśnięcie blockhash | 150 slotów | MAX_PROCESSING_AGE |
| Rozmiar podpisu | 64 bajty (Ed25519) | -- |
| Bazowa opłata za podpis | 5 000 lamportów | Opłaty |
| Maksymalna liczba wykonanych instrukcji | 64 (główne + CPI) | MAX_INSTRUCTION_TRACE_LENGTH |
| Maksymalna liczba podpisów w pakiecie | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?