レジャー
XRP Ledgerは完全にオープンな共有グローバルレジャーです。個々の参加者はこのレジャーを管理する個々の機関を信頼しなくても、レジャーの整合性を信頼できます。rippled
サーバーソフトウェアは、非常に特殊なルールによってのみ更新可能なレジャーデータベースを管理することにより、これを実現しています。各rippled
インスタンスはレジャーの完全なコピーを保持し、rippled
サーバーからなるピアツーピアネットワークはトランザクション候補を各サーバーに配信します。コンセンサスプロセスによって、レジャーの新しいバージョンに適用されるトランザクションが決定します。関連項目: コンセンサスプロセス。
この共有グローバルレジャーは、実際にはrippled
の内部データベースに保持されている一連の個別レジャー(レジャーバージョン)です。各レジャーバージョンには、レジャーの生成順を示すレジャーインデックスが付いています。各閉鎖済みレジャーバージョンにも、レジャーの内容を示す識別用ハッシュ値があります。rippled
インスタンスには常に、1つの処理中の「現行」オープンレジャー、コンセンサスにより承認されていないいくつかの閉鎖済みレジャー、およびコンセンサスによる検証済みの任意の数の履歴レジャーがあります。検証済みレジャーだけが、その内容が正確で変更できません。
1つのレジャーバージョンはさまざまな要素で構成されています:
- ヘッダー - レジャーインデックス、レジャーのその他のコンテンツのハッシュ、その他のメタデータ。
- トランザクションツリー - このレジャーの作成時に、直前のレジャーに適用されたトランザクション。トランザクションは、レジャーの変更を可能にする 唯一の 手段です。
- 状態ツリー - このバージョンのレジャーの設定、残高、オブジェクトを含むすべてのレジャーオブジェクト。
ツリーの形式
レジャーの状態ツリーは、その名前のとおりツリー型データ構造です。状態ツリーの各オブジェクトは256ビットのオブジェクトIDで識別されます。JSONではレジャーオブジェクトのIDはindex
フィールドです。このフィールドには64文字の16進数文字列が含まれています(例: "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94"
)。状態ツリーの各オブジェクトには、オブジェクトの検索に使用できるIDが設定されています。各トランザクションには、トランザクションツリーでトランザクションを検索するときに使用できる識別用ハッシュが含まれています。レジャーオブジェクトのindex
(ID)とレジャーのledger_index
(シーケンス番号)を混同しないでください。
ヒント: レジャーの状態ツリーのオブジェクトは「レジャーノード」と呼ばれることもあります。たとえばトランザクションメタデータはAffectedNodes
のリストを返します。これをピアツーピアネットワークの「ノード」(サーバー)と混同しないでください。
トランザクションの場合、識別用ハッシュは署名済みトランザクションの指示に基づいていますが、検索時のトランザクションオブジェクトにはトランザクションの結果とメタデータが含まれています。これは、ハッシュの生成時には反映されません。
関連項目
レジャーヘッダー、レジャーオブジェクトID、レジャーオブジェクトタイプについての詳細は、レジャーデータフォーマットを参照してください。