トランザクションには、1つ以上のinstructions、変更を承認するアカウントの署名、および最新のブロックハッシュが含まれます。ネットワークは、トランザクション内のすべてのinstructionsを一緒に処理します。いずれかのinstructionが失敗すると、トランザクション全体が失敗し、すべての状態変更が元に戻されます。
2つのトランザクションを示す簡略図
トランザクション構造
署名、メッセージ形式(ヘッダー、アカウントアドレス、ブロックハッシュ、コンパイル済みinstructions)、バイナリエンコーディング、サイズ制限、およびSOL転送の例。
バージョン付きトランザクション
レガシー形式とV0形式の比較、アドレスルックアップテーブル、ALT解決、およびバージョン比較。
トランザクションパイプライン
完全な8段階の処理パイプライン(受信からコミットまで)、ネットワークからのトランザクション詳細の読み取り、および検証エラーリファレンス。
永続的nonce
永続的nonceを使用したオフライン署名、nonceのライフサイクル、検出、検証フロー、および失敗時の動作。
主要な事実
- アトミック実行: すべてのinstructionsが成功するか、すべてが元に戻されます。失敗時でも手数料は請求されます。
- サイズ制限: 最大1,232バイト。IPv6の最小MTU(1,280バイト)からネットワークヘッダー用の48バイトを差し引いた値です。
- 署名: 各署名者は64バイトのEd25519署名を1つ提供します。
- ブロックハッシュの有効期限: トランザクションの最新ブロックハッシュは150スロット間有効です。
制限
| 制限 | 値 | ソース |
|---|---|---|
| トランザクションの最大サイズ | 1,232バイト | PACKET_DATA_SIZE |
| トランザクションあたりの最大アカウント数 | 64 | 強制制限 (increase_tx_account_lock_limitが有効化されると128、現在は無効) |
| ブロックハッシュの有効期限 | 150スロット | MAX_PROCESSING_AGE |
| 署名サイズ | 64バイト(Ed25519) | -- |
| 署名あたりの基本手数料 | 5,000 lamports | 手数料 |
| 実行可能な最大instructions数 | 64(トップレベル + CPI) | MAX_INSTRUCTION_TRACE_LENGTH |
| パケットあたりの最大署名数 | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?