This commit is contained in:
tequ
2025-07-14 13:13:23 +09:00
parent 33169be6b7
commit 6267144dbe
11 changed files with 19 additions and 19 deletions

View File

@@ -2,7 +2,7 @@
すべての[XRP Ledgerアカウント](../../concepts/accounts/index.md)には、`Sequence`フィールドに1つのシーケンス番号があり、アカウントがトランザクションを送信し、そのトランザクションが[検証済みレジャー](../../concepts/ledgers/index.md)に記録されるたびに、1ずつ増加します。シーケンス番号は各[トランザクション](../../concepts/transactions/index.md)の`Sequence`フィールドにもあり、そのトランザクションが実行される際にアカウントの現在のシーケンス番号と一致している必要があります。各アカウントで、各シーケンス番号は番号順に一度だけ使用できます。 すべての[XRP Ledgerアカウント](../../concepts/accounts/index.md)には、`Sequence`フィールドに1つのシーケンス番号があり、アカウントがトランザクションを送信し、そのトランザクションが[検証済みレジャー](../../concepts/ledgers/index.md)に記録されるたびに、1ずつ増加します。シーケンス番号は各[トランザクション](../../concepts/transactions/index.md)の`Sequence`フィールドにもあり、そのトランザクションが実行される際にアカウントの現在のシーケンス番号と一致している必要があります。各アカウントで、各シーケンス番号は番号順に一度だけ使用できます。
[Tickets](../../concepts/accounts/tickets.md) make some exceptions from these rules so that it is possible to send transactions out of the normal order. Tickets represent sequence numbers reserved for later use; a transaction can use a Ticket instead of a normal sequence number. [チケット](../../concepts/accounts/tickets.md) は、通常の順序とは異なるトランザクションを送信できるように、これらのルールにいくつかの例外を設けています。チケットは、後で使用するために予約されたシーケンス番号を表します。トランザクションは、通常のシーケンス番号の代わりにチケットを使用することができます。
[DeletableAccounts Amendment](/resources/known-amendments.md#deletableaccounts) を適用する場合、アカウントの`Sequence`番号の始まりが、アカウントが作成されたレジャーバージョンの[レジャーインデックス][]と一致します。DeletableAccountsを適用しない場合、どのアカウントの`Sequence`番号も1で始まります。 [DeletableAccounts Amendment](/resources/known-amendments.md#deletableaccounts) を適用する場合、アカウントの`Sequence`番号の始まりが、アカウントが作成されたレジャーバージョンの[レジャーインデックス][]と一致します。DeletableAccountsを適用しない場合、どのアカウントの`Sequence`番号も1で始まります。

View File

@@ -147,7 +147,7 @@ XRP Ledgerでは、サポートされているさまざまなタイプのキー
## 鍵導出 ## 鍵導出
キーペアを導出するプロセスは、署名アルゴリズムによって異なります。いずれの場合も、キーは長さが16バイト128ビット_シード_ 値から生成されます。シード値は完全にランダムにする(推奨)か、[SHA-512ハッシュ][ハッシュ]を取得して最初の16バイトを保持することで特定のパスフレーズから導出することができます[SHA-512Hals][]と同様ですが、出力の256ビットではなく128ビットのみを保持します キーペアを導出するプロセスは、署名アルゴリズムによって異なります。いずれの場合も、キーは長さが16バイト128ビット_シード_ 値から生成されます。シード値は完全にランダムにする(推奨)か、[SHA-512ハッシュ][ハッシュ]を取得して最初の16バイトを保持することで特定のパスフレーズから導出することができます[SHA-512Half][]と同様ですが、出力の256ビットではなく128ビットのみを保持します
### サンプルコード ### サンプルコード
@@ -165,7 +165,7 @@ XRP Ledgerでは、サポートされているさまざまなタイプのキー
[{% inline-svg file="/docs/img/key-derivation-ed25519.ja.svg" /%}](/docs/img/key-derivation-ed25519.ja.svg "パスフレーズ → シード → 秘密鍵 → プレフィクス + 公開鍵") [{% inline-svg file="/docs/img/key-derivation-ed25519.ja.svg" /%}](/docs/img/key-derivation-ed25519.ja.svg "パスフレーズ → シード → 秘密鍵 → プレフィクス + 公開鍵")
1. シード値の[SHA-512Hals][]を計算します。32バイトの秘密鍵が導出されます。 1. シード値の[SHA-512Half][]を計算します。32バイトの秘密鍵が導出されます。
{% admonition type="success" name="ヒント" %}32バイトの数値はすべて、有効なEd25519秘密鍵です。ただし、秘密鍵として使用する上で安全なのは、十分ランダムに選択された数値のみです。{% /admonition %} {% admonition type="success" name="ヒント" %}32バイトの数値はすべて、有効なEd25519秘密鍵です。ただし、秘密鍵として使用する上で安全なのは、十分ランダムに選択された数値のみです。{% /admonition %}
@@ -199,7 +199,7 @@ XRP Ledgerアカウントキーでのsecp256k1鍵導出に、Ed25519鍵導出よ
- シード値16バイト - シード値16バイト
- 「ルートシーケンス」値4バイト。ビッグエンディアンの符号なし整数。ルートシーケンスの開始値として0を使用します。 - 「ルートシーケンス」値4バイト。ビッグエンディアンの符号なし整数。ルートシーケンスの開始値として0を使用します。
2. 連結された(シード+ルートシーケンス)値の[SHA-512Hals][]を計算します。 2. 連結された(シード+ルートシーケンス)値の[SHA-512Half][]を計算します。
3. 結果が有効なsecp256k1秘密鍵でない場合は、ルートシーケンスを1増やして最初からやり直します。[[ソース]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/crypto/impl/GenerateDeterministicKey.cpp#L103 "Source") 3. 結果が有効なsecp256k1秘密鍵でない場合は、ルートシーケンスを1増やして最初からやり直します。[[ソース]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/crypto/impl/GenerateDeterministicKey.cpp#L103 "Source")
@@ -226,7 +226,7 @@ XRP Ledgerアカウントキーでのsecp256k1鍵導出に、Ed25519鍵導出よ
- `0x00000000000000000000000000000000`(4バイトのゼロ)この値は、同じファミリーの異なるメンバーの導出に使用することを目的としていましたが、実際には値0のみが使用されます。 - `0x00000000000000000000000000000000`(4バイトのゼロ)この値は、同じファミリーの異なるメンバーの導出に使用することを目的としていましたが、実際には値0のみが使用されます。
- 「キーシーケンス」値4バイト。ビッグエンディアンの符号なし整数。キーシーケンスの開始値として0を使用します。 - 「キーシーケンス」値4バイト。ビッグエンディアンの符号なし整数。キーシーケンスの開始値として0を使用します。
2. 連結された値の[SHA-512Hals][]を計算します。 2. 連結された値の[SHA-512Half][]を計算します。
3. 結果が有効なsecp256k1秘密鍵でない場合は、キーシーケンスを1増やし、アカウントの仲介銀行機関キーペアの導出をやり直します。 3. 結果が有効なsecp256k1秘密鍵でない場合は、キーシーケンスを1増やし、アカウントの仲介銀行機関キーペアの導出をやり直します。

View File

@@ -112,7 +112,7 @@ AccountRootエントリの[準備金](../../../../concepts/accounts/reserves.md)
## AccountRoot IDのフォーマット ## AccountRoot IDのフォーマット
AccountRootエントリのIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 AccountRootエントリのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
* Accountスペースキー`0x0061` * Accountスペースキー`0x0061`
* アカウントのAccountID * アカウントのAccountID

View File

@@ -67,7 +67,7 @@ _[Checks Amendment][]が必要です_
## Check IDのフォーマット ## Check IDのフォーマット
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200 "Source") [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200 "Source")
`Check`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 `Check`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
* Checkスペースキー`0x0043` * Checkスペースキー`0x0043`
* `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。 * `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。

View File

@@ -137,12 +137,12 @@ DirectoryNodeのIDを作成するときには、DirectoryNodeが以下のどの
* オファーディレクトリの1番目のページ * オファーディレクトリの1番目のページ
* いずれかのディレクトリの以降のページ * いずれかのディレクトリの以降のページ
**所有者ディレクトリまたはNFTオファーディレクトリの1番目のページ**のIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 **所有者ディレクトリまたはNFTオファーディレクトリの1番目のページ**のIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
* 所有者ディレクトリのスペースキー(`0x004F` * 所有者ディレクトリのスペースキー(`0x004F`
* `Owner`フィールドのAccountID。 * `Owner`フィールドのAccountID。
**オファーディレクトリの1番目のページ**には特殊なIDがあります。このIDの上位192ビットはオーダーブックを定義し、それ以降の64ビットはこのディレクトリ内のオファーの為替レートを定義します。IDはビッグエンディアンであるため、最初に位置する上位ビットにブックが含まれ、後に位置する下位ビットにクオリティが含まれます。これにより、最適なオファーから最低のオファーへの順にオーダーブックを反復できます。具体的には、先頭192ビットとは、以下の値がこの順序で連結されている[SHA-512Hals][]の先頭192ビットです。 **オファーディレクトリの1番目のページ**には特殊なIDがあります。このIDの上位192ビットはオーダーブックを定義し、それ以降の64ビットはこのディレクトリ内のオファーの為替レートを定義します。IDはビッグエンディアンであるため、最初に位置する上位ビットにブックが含まれ、後に位置する下位ビットにクオリティが含まれます。これにより、最適なオファーから最低のオファーへの順にオーダーブックを反復できます。具体的には、先頭192ビットとは、以下の値がこの順序で連結されている[SHA-512Half][]の先頭192ビットです。
* ブックディレクトリのスペースキー(`0x0042` * ブックディレクトリのスペースキー(`0x0042`
* `TakerPaysCurrency`の160ビットの通貨コード * `TakerPaysCurrency`の160ビットの通貨コード
@@ -152,7 +152,7 @@ DirectoryNodeのIDを作成するときには、DirectoryNodeが以下のどの
オファーディレクトリのIDの下位64ビットは、そのディレクトリ内のオファーのTakerPaysの額をTakerGetsの額で割った結果を、XRP Ledgerの内部金額フォーマットの64ビット数値で表したものです。 オファーディレクトリのIDの下位64ビットは、そのディレクトリ内のオファーのTakerPaysの額をTakerGetsの額で割った結果を、XRP Ledgerの内部金額フォーマットの64ビット数値で表したものです。
**DirectoryNodeがディレクトリの1番目のページではない場合**、DirectoryNodeのIDは、以下の値をこの順序で連結した[SHA-512Hals][]です。 **DirectoryNodeがディレクトリの1番目のページではない場合**、DirectoryNodeのIDは、以下の値をこの順序で連結した[SHA-512Half][]です。
* DirectoryNodeスペースキー`0x0064` * DirectoryNodeスペースキー`0x0064`
* ルートDirectoryNodeのID * ルートDirectoryNodeのID

View File

@@ -68,7 +68,7 @@ _[Escrow Amendment][]により追加されました。_
## Escrow IDのフォーマット ## Escrow IDのフォーマット
`Escrow`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 `Escrow`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
* Escrowスペースキー`0x0075` * Escrowスペースキー`0x0075`
* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。 * `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。

View File

@@ -69,9 +69,9 @@ labels:
`LedgerHashes`オブジェクトIDには2種類のフォーマットがあります。これは、オブジェクトのサブタイプが「最近の履歴」と「過去の履歴」のいずれであるかに応じて決まります。 `LedgerHashes`オブジェクトIDには2種類のフォーマットがあります。これは、オブジェクトのサブタイプが「最近の履歴」と「過去の履歴」のいずれであるかに応じて決まります。
**「最近の履歴」** `LedgerHashes`オブジェクトのIDは、`LedgerHashes`スペースキー(`0x0073`)の[SHA-512Hals][]です。つまり「最近の履歴」のIDは常に`B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B`です。 **「最近の履歴」** `LedgerHashes`オブジェクトのIDは、`LedgerHashes`スペースキー(`0x0073`)の[SHA-512Half][]です。つまり「最近の履歴」のIDは常に`B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B`です。
**「過去の履歴」**`LedgerHashes`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 **「過去の履歴」**`LedgerHashes`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
- `LedgerHashes`スペースキー(`0x0073` - `LedgerHashes`スペースキー(`0x0073`
- オブジェクトの`Hashes`配列のフラッグレジャーの32ビット[レジャーインデックス][]を65536で割った値。 - オブジェクトの`Hashes`配列のフラッグレジャーの32ビット[レジャーインデックス][]を65536で割った値。

View File

@@ -72,7 +72,7 @@ labels:
## オファーIDのフォーマット ## オファーIDのフォーマット
`Offer`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 `Offer`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
* Offerスペースキー`0x006F` * Offerスペースキー`0x006F`
* オファーを行うアカウントのAccountID * オファーを行うアカウントのAccountID

View File

@@ -100,7 +100,7 @@ Payment Channelが期限切れになると、新しいトランザクション
## PayChannel IDのフォーマット ## PayChannel IDのフォーマット
`PayChannel`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 `PayChannel`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
* PayChannelスペースキー`0x0078` * PayChannelスペースキー`0x0078`
* 支払元アカウントのAccountID * 支払元アカウントのAccountID

View File

@@ -116,7 +116,7 @@ XRP Ledgerは遅延評価を使用して所有者準備金を計算していま
## RippleState IDのフォーマット ## RippleState IDのフォーマット
RippleStateオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Hals][]です。 RippleStateオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。
* RippleStateスペースキー`0x0072` * RippleStateスペースキー`0x0072`
* 低位アカウントのAccountID * 低位アカウントのAccountID

View File

@@ -15,13 +15,13 @@ labels:
| フィールド | JSONの型 | [内部の型][] | 説明 | | フィールド | JSONの型 | [内部の型][] | 説明 |
|:-----------------------------|:----------|:------------------|:--------------| |:-----------------------------|:----------|:------------------|:--------------|
| `ledger_index` | 文字列 | UInt32 | レジャーの[レジャーインデックス][レジャーインデックス]。APIメソッドの中には、この番号を引用符で囲んだ整数として表示するメソッドと、ネイティブJSON数値として表示するメソッドがあります。 | | `ledger_index` | 文字列 | UInt32 | レジャーの[レジャーインデックス][レジャーインデックス]。APIメソッドの中には、この番号を引用符で囲んだ整数として表示するメソッドと、ネイティブJSON数値として表示するメソッドがあります。 |
| `ledger_hash` | 文字列 | Hash256 | このレジャーバージョンの[SHA-512Hals][]。これは、このレジャーとそのすべての内容の一意のIDとして機能します。 | | `ledger_hash` | 文字列 | Hash256 | このレジャーバージョンの[SHA-512Half][]。これは、このレジャーとそのすべての内容の一意のIDとして機能します。 |
| `account_hash` | 文字列 | Hash256 | このレジャーの状態ツリー情報の[SHA-512Hals][]。 | | `account_hash` | 文字列 | Hash256 | このレジャーの状態ツリー情報の[SHA-512Half][]。 |
| `close_time` | 数値 | UInt32 | このレジャーバージョンが閉鎖されたおおよその時刻。Rippleエポック2000-01-01 00:00:00以降の経過秒数として示されます。この値は、`close_time_resolution`に基づいて丸められます。 | | `close_time` | 数値 | UInt32 | このレジャーバージョンが閉鎖されたおおよその時刻。Rippleエポック2000-01-01 00:00:00以降の経過秒数として示されます。この値は、`close_time_resolution`に基づいて丸められます。 |
| `closed` | ブール値 | ブール値 | `true`の場合、このレジャーバージョンはこれ以上新しいトランザクションを受け入れません。(ただし、このレジャーバージョンが未検証の場合は、一連の異なるトランザクションが記録されている別のレジャーバージョンに置き換えられることがあります。) | | `closed` | ブール値 | ブール値 | `true`の場合、このレジャーバージョンはこれ以上新しいトランザクションを受け入れません。(ただし、このレジャーバージョンが未検証の場合は、一連の異なるトランザクションが記録されている別のレジャーバージョンに置き換えられることがあります。) |
| `parent_hash` | 文字列 | Hash256 | このバージョンの直前のレジャーバージョンの`ledger_hash`値。直前のレジャーインデックスの異なるバージョンが存在している場合、これはレジャーの生成元を示します。 | | `parent_hash` | 文字列 | Hash256 | このバージョンの直前のレジャーバージョンの`ledger_hash`値。直前のレジャーインデックスの異なるバージョンが存在している場合、これはレジャーの生成元を示します。 |
| `total_coins` | 文字列 | UInt64 | レジャーのアカウントが保有するXRPの[XRPのdrop数][]の合計。トランザクション手数料により消却されたXRPは除外されます。一部のアカウントは、そのキーを知っている人がいない「ブラックホール」アカウントであるため、流通している実際のXRPの量はこれよりも少なくなります。 | | `total_coins` | 文字列 | UInt64 | レジャーのアカウントが保有するXRPの[XRPのdrop数][]の合計。トランザクション手数料により消却されたXRPは除外されます。一部のアカウントは、そのキーを知っている人がいない「ブラックホール」アカウントであるため、流通している実際のXRPの量はこれよりも少なくなります。 |
| `transaction_hash` | 文字列 | Hash256 | このレジャーに記録されているトランザクションの[SHA-512Hals][]。 | | `transaction_hash` | 文字列 | Hash256 | このレジャーに記録されているトランザクションの[SHA-512Half][]。 |
| `close_time_resolution` | 数値 | Uint8 | `close_time`を丸めるときの最大秒数を示す範囲[2,120]内の整数。 | | `close_time_resolution` | 数値 | Uint8 | `close_time`を丸めるときの最大秒数を示す範囲[2,120]内の整数。 |
| [`closeFlags`](#closeフラグ) | (省略) | UInt8 | このレジャーの閉鎖に関連するフラグのビットマップ。 | | [`closeFlags`](#closeフラグ) | (省略) | UInt8 | このレジャーの閉鎖に関連するフラグのビットマップ。 |