[JA] ctid

This commit is contained in:
tequ
2023-11-24 17:38:13 +09:00
parent f8d0838962
commit cd43616b76
2 changed files with 35 additions and 1 deletions

View File

@@ -0,0 +1,32 @@
---
html: ctid.html
parent: api-conventions.html
blurb: CTIDCompact Transaction Identifierは、検証済みトランザクションをチェーン全体で一意に識別する短い文字列です。
labels:
- 開発
---
# トランザクション軽量識別子
CTIDトランザクション軽量識別子 / Compact Transaction Identifierは、XRP Ledgerのメインネットを含む、あらゆる[ネットワーク](parallel-networks.html)で利用可能な、検証済みトランザクションの一意な識別子です。
CTIDとトランザクションの[識別ハッシュ](transactions.html#identifying-transactions)の違いは以下の通りです:
- CTIDは、ネットワークID、レジャーインデックス、レジャー内の位置に基づいて検証されたトランザクションを識別します。トランザクションがどのネットワークで検証されたかを特定するため、サイドチェーンへの接続など、複数のネットワークとやりとりする状況で使用できます。CTIDは64ビットで、通常は`C`で始まる16進数の大文字で、例えば`C005523E000000`のように記述します。
- トランザクションの識別ハッシュは、そのトランザクションがどのチェーンで検証されたかに関係なく、その内容に基づいて署名されたトランザクションを識別します。これは暗号ハッシュであるため、トランザクションの内容が完全であることを証明するために使用することもできます。トランザクションハッシュは256ビットで、通常64文字の16進数で記述され、例えば`E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7`となります。
**注意:** 未検証のトランザクションにCTIDを使わないでください。トランザクションが最初に適用されたときと、コンセンサスプロセスによって検証されたときとで、トランザクションの正規順序が変わる可能性があります。
## 構造
CTIDは以下の要素を含みます(ビッグエンディアン順)。
1. 4ビット: CTIDであることを示す16進数の頭文字`C`
2. 28ビット: トランザクションが検証されたレジャーのインデックス
3. 16ビット: トランザクションのインデックス。これは[トランザクションのメタデータ](transaction-metadata.html)の`TransactionIndex`フィールドとして提供されます
4. 16ビット: トランザクションを検証したネットワークの[ネットワークID](transaction-common-fields.html#networkidフィールド)
**注記:** レジャーインデックスは通常32ビットの符号なし整数として保存され、新しいレジャーが作成されるたびに1ずつ増加します。ネットワークのレジャーインデックスが268,435,455より大きい場合、28ビットに収まらないので、必要に応じて先頭の`C``D``E``F`にインクリメントする必要があります。これは少なくとも2043年までは必要ないと思われます。
## 関連項目
サンプルコードや背景などの詳細については、[XLS-37d Standard](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0037d-concise-transaction-identifier-ctid)をご覧ください。