Merge branch 'master' into ja-pdomains

This commit is contained in:
tequ
2025-07-26 17:52:46 +09:00
185 changed files with 1388 additions and 1303 deletions

View File

@@ -0,0 +1,161 @@
---
seo:
description: バッチは最大8つのトランザクションを単一のユニットとして送信できます。
labels:
- Batch
- Transactions
status: not_enabled
---
# バッチ
`Batch`では、複数のトランザクションをまとめてパッケージ化し、単一のユニットとして実行できます。部分的な完了や予期しない結果のリスクを排除し、複雑な操作をより信頼性が高く予測可能な方法で実行できます。1つのバッチで最大8つのトランザクションを送信できます。
`Batch`の潜在的な使用例は以下の通りです。
- 全て成功か全て失敗NFTをミントして同時にオファーを作成できます。オファー作成が失敗した場合、NFTミントも取り消されます。
- 複数のオファーの試行異なるスリッページ量で複数のオファーを送信しますが、成功するのは1つだけです。
- プラットフォーム手数料:プラットフォーム手数料をトランザクション自体に含めることで、プロセスを簡素化できます。
- スワップ(マルチアカウント):複数のアカウント間でのトラストレスなトークン/NFTスワップ。
- アカウント引き出し(マルチアカウント):当座預金からの引き出しを試行し、失敗した場合は代わりに普通預金から引き出します。
`Batch`トランザクションは、ラッパーである`Batch`トランザクション自体の _外部トランザクション_ と、それぞれがアトミックに実行される _内部トランザクション_ で構成されます。内部トランザクションの正確な処理方法は、バッチ _モード_ によって決まります。
## バッチのモード
`Batch`には`ALLORNOTHING``ONLYONE``UNTILFAILURE``INDEPENDENT`の4つのモードがあります。
### All or Nothing全て成功か全て失敗
`ALLORNOTHING`モードでは、いずれかの内部トランザクションが成功するには、全ての内部トランザクションが成功する必要があります。
### Only One1つだけ
`ONLYONE`モードでは、最初に成功したトランザクションのみが成功します。他の全てのトランザクションは失敗するか、実行されません。
### Until Failure失敗まで
`UNTILFAILURE`では、全ての内部トランザクションをいずれかが失敗するまで適用します。最初の失敗後の全てのトランザクションは適用されません。
### Independent独立
`INDEPENDENT`では、1つ以上の内部トランザクションが失敗しても、全てのトランザクションが適用されます。
## Raw Transactions
`RawTransactions`オブジェクトは、実行するトランザクションのリストを格納するコンテナです。1つのバッチには最大8つのトランザクションを含めることができます。トランザクションは単一のアカウントまたは複数のアカウントからのものを混在させることができます。
各内部トランザクションは以下の要件を満たす必要があります。
- `tfInnerBatchTxn`フラグを設定する必要があります。
- 手数料を設定してはいけません。手数料の値は _0_ を使用する必要があります。
- 署名されてはいけません(グローバルトランザクションは既に関連する全ての当事者によって署名されています)。代わりに`SigningPubKey`フィールドに空文字列("")を設定する必要があります。(`TxnSignature`フィールドは設定してはいけません。)
`tesSUCCESS`以外の結果を受け取った場合、トランザクションは失敗と見なされます。
### 共通のフラグ
`Batch`は次のグローバルなトランザクションフラグを追加します。
| フラグ名 | 値 |
|------------------|------------|
| `tfInnerBatchTxn`| 0x40000000 |
このフラグは、トランザクションがバッチトランザクションの内部トランザクションである場合にのみ使用されます。これは、トランザクションが署名されていないことを示します。このフラグを含む通常のトランザクションは拒否されます。
### BatchSigners
このフィールドは、アカウントがマルチサインで署名している場合(単一署名とは対照的に)に含まれます。標準トランザクションのマルチサインで使用される`Signers`フィールドと同等に動作します。このフィールドは`Flags`フィールドと`RawTransactions`内のトランザクションのハッシュの署名を保持します。このフィールドは、複数のアカウントのトランザクションが`Batch`トランザクションに含まれている場合にのみ必要となります。それ以外の場合は、通常のトランザクション署名が同じセキュリティを保証します。
このフィールドは、1つ以上のアカウントが内部トランザクションをバッチに含める場合に提供する必要があります。その場合、外部トランザクションに署名するアカウント該当する場合を除き、内部トランザクションを含む全てのアカウントからの署名を含める必要があります。
この配列内の各オブジェクトには、以下のフィールドが含まれます。
| フィールド | 必須? | JSONの型 | 内部の型 |
|-----------------|-----------|-----------|---------------|
| Account | はい | string | STAccount |
| SigningPubKey | いいえ | string | STBlob |
| TxnSignature | いいえ | string | STBlob |
| Signers | いいえ | array | STArray |
`SigningPubKey``TxnSignature`フィールド、または`Signers`フィールドのいずれかを含める必要があります。
#### Account
これは、少なくとも1つの内部トランザクションを持つアカウントです。
#### SigningPubKeyとTxnSignature
これらのフィールドは、アカウントが単一署名で署名している場合(マルチサインとは対照的に)に含まれます。これらは`Flags`フィールドと`RawTransactions`内のトランザクションのハッシュに署名します。
#### Signers
このフィールドは、アカウントがマルチサインで署名している場合(単一署名とは対照的に)に含まれます。標準トランザクションのマルチサインで使用される`Signers`フィールドと同等に動作します。このフィールドは`Flags`フィールドと`RawTransactions`内のトランザクションのハッシュの署名を保持します。
## 手数料
外部トランザクションの手数料は、ベース手数料の2倍手数料エスカレーションがない場合は合計20 dropに、全ての内部トランザクションのトランザクション手数料の合計`multisign``AMMCreate`などのより高い手数料などの要因を組み込む)を加え、さらにトランザクション内の各追加署名(例:`BatchSigners`から)に対する追加のベース手数料金額を加えたものです。式で表すと以下の通りです。
2 * (ベース手数料) + SUM(内部トランザクション手数料) + 各追加署名に対する追加のベース手数料
個々の内部トランザクションの手数料は、内部トランザクション自体ではなく外部トランザクションで支払われます。これにより、手数料エスカレーションがオーバーヘッドのみではなくバッチトランザクション全体のコストに基づいて計算されることが保証されます。
## メタデータ
内部トランザクションは台帳に個別にコミットされるため、個別のメタデータを持ちます。これにより、レガシーシステムがシステムの変更を必要とせずに`Batch`トランザクションをサポートできるよう、より良い後方互換性が保証されます。
例えば、2つの内部トランザクションを含む1つの`Batch`トランザクションのみを持つ台帳は、次のようになります。
```
[
OuterTransaction,
InnerTransaction1,
InnerTransaction2
]
```
### 外部トランザクション
各外部トランザクションには、内部トランザクション処理ではなく、シーケンスと手数料処理のメタデータが含まれます。エラーコードは外部トランザクション処理(例:シーケンスと手数料)のみに基づいており、内部トランザクション処理が失敗しても`tesSUCCESS`エラーを返します。
### 内部トランザクション
各内部トランザクションには、独自の処理のメタデータが含まれます。実際に台帳にコミットされた内部トランザクションのみが含まれます。これにより、レガシーシステムが`Batch`トランザクションを通常のトランザクションのように処理することが容易になります。
親の外部トランザクション(`ParentBatchID`)への逆ポインタもあります。
## 共通のフィールド
この標準はトランザクション共通フィールドに新しいフィールドを追加しませんが、別のグローバルトランザクションフラグを追加します:
| フラグ名 | 値 |
|------------------|------------|
| tfInnerBatchTxn | 0x40000000 |
このフラグは、トランザクションが`Batch`トランザクションの内部トランザクションである場合にのみ使用すべきです。これは、トランザクションが署名されるべきでないことを示します。このフラグを含む通常のトランザクションは拒否されるべきです。
## セキュリティ
バッチトランザクションには追加のセキュリティ考慮事項があります。
### 信頼の前提
`Batch`トランザクションに含まれるアカウントのトランザクション数に関係なく、全てのアカウントがトランザクションのコレクションに署名する必要があります。
#### 単一アカウント
単一アカウントの場合、その単一アカウントは送信する全てのトランザクションを承認する必要があります。他のアカウントは関与しません。
#### マルチアカウント
マルチアカウントの場合はより複雑で、例で最もよく説明できます。
アリスとボブがマルチアカウント`Batch`を介してトラストレススワップを行っており、アリスが1000 XRPを提供し、ボブが1000 USDを提供します。ボブが`Batch`トランザクションを送信するため、アリスはボブに対する1000 XRP送信の情報をボブに提供する必要があります。
アリスが完全に自動入力され署名されたトランザクションをボブに提供した場合、ボブは自分のトランザクションを送信せずに台帳上でアリスのトランザクションを送信し、1000 USDを失うことなく1000 XRPを受け取ることができます。したがって、内部トランザクションは署名されていない必要があります。
アリスがバッチトランザクションの自身の部分のみに署名した場合、ボブは自分のトランザクションを1 USDのみを提供するように変更でき、それによってはるかに安い価格で1000 XRPを取得できます。したがって、バッチトランザクション全体とその全ての内部トランザクションは全ての当事者によって署名される必要があります。
### 内部トランザクションの安全性
バッチの内部トランザクションは特殊なケースです。署名や手数料を含みません(これらは両方とも外部トランザクションに含まれているため)。したがって、誰かが外部トランザクションに含めることなく、`Batch`の内部トランザクションを直接送信できないことを保証するために、慎重に処理する必要があります。
内部トランザクションはブロードキャストできません(例えば悪意のあるノードからブロードキャストされた場合、受け入れられません)。代わりに`Batch`の外部トランザクションから生成される必要があります。内部トランザクションは、submit RPCを介して直接送信することはできません。

View File

@@ -16,8 +16,6 @@ top_nav_grouping: 人気ページ
そしてAPIコールを効率的に処理し、P2Pモードで動作している`rippled`サーバの負荷を軽減することができます。
[{% inline-svg file="/docs/img/reporting-mode-basic-architecture.svg" /%}](/docs/img/reporting-mode-basic-architecture.svg "図 1: レポートモードでの`rippled`の動作")
`rippled`のレポートモードでは2種類のデータストアを使用します。
* トランザクションのメタデータ、アカウントの状態、レジャーのヘッダーを含む`rippled`のプライマリ永続データストア。プライマリ永続データストアとしてNuDB(ソースに付属)または[Cassandra](https://cassandra.apache.org/)を使用できます。Cassandraを使用する場合、複数のレポートモードサーバが単一のCassandraインスタンスまたはクラスター内のデータへのアクセスを共有できます。

View File

@@ -11,11 +11,11 @@ labels:
Linuxでは、`rippled`が1回限りの`cron`構成を使用して最新バージョンに自動的にアップグレードされるように設定できます。可能であれば自動更新を有効にしておくことが推奨されます。
以下の手順では、`rippled`が[`yum`リポジトリからCentOS/RedHat](install-rippled-on-centos-rhel-with-yum.md)、または[`apt`Ubuntu/Debianを使用して](install-rippled-on-ubuntu.md)インストールされていることを前提としています。
以下の手順では、`rippled`が[`yum`リポジトリからCentOS/RedHat](install-rippled-on-rhel.md)、または[`apt`Ubuntu/Debianを使用して](install-rippled-on-ubuntu.md)インストールされていることを前提としています。
自動更新を設定するには、以下の手順に従います。
1. `/opt/ripple/etc/update-rippled-cron`が存在することを確認します。存在しない場合は、([CentOS/Red Hat](update-rippled-manually-on-centos-rhel.md)または[Ubuntu/Debian](update-rippled-manually-on-ubuntu.md)を)手動で更新します。
1. `/opt/ripple/etc/update-rippled-cron`が存在することを確認します。存在しない場合は、([CentOS/Red Hat](update-rippled-manually-on-rhel.md)または[Ubuntu/Debian](update-rippled-manually-on-ubuntu.md)を)手動で更新します。
2. `cron.d`フォルダーに、`/opt/ripple/etc/update-rippled-cron`構成ファイルへのsymlinkを作成します。

View File

@@ -11,7 +11,7 @@ labels:
このページでは、CentOSまたはRed Hat Enterprise Linuxで最新リリースの`rippled`に手動で更新する手順を説明します。可能であれば手動更新ではなく[自動更新](update-rippled-automatically-on-linux.md)を設定することが推奨されます。
以下の手順は、[`rippled`がすでに`yum`リポジトリからインストール](install-rippled-on-centos-rhel-with-yum.md)されていることを前提としています。
以下の手順は、[`rippled`がすでに`yum`リポジトリからインストール](install-rippled-on-rhel.md)されていることを前提としています。
{% admonition type="success" name="ヒント" %}これらの手順をすべて一度に実行するには、`rippled`パッケージに含まれている`/opt/ripple/bin/update-rippled.sh`スクリプトを実行します。このスクリプトは`sudo`ユーザとして実行する必要があります。{% /admonition %}

View File

@@ -27,7 +27,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_
## NFTokenID
NFTokenID, 任意, 文字列, Hash256
NFTokenID, 任意, 文字列, UInt256
この複合フィールドは、トークンを一意に識別するものであり、以下のセクションから構成されます。

View File

@@ -10,7 +10,7 @@ seo:
| `Field` | JSONの型 | [内部の型][] | 必須? | 説明 |
|:-------------------------|:--------|:------------|:------|:------------|
| `index` or `LedgerIndex` | 文字列 | Hash256 | いいえ | このレジャーエントリの一意のID。JSONでは、このフィールドはコンテキストやAPIメソッドによって異なる名前で表現されます。(コード上では"任意(optional)"と指定されていますが、XRP Ledgerの歴史のごく初期からのレガシーデータでない限り、すべてのレジャーエントリは一意であるべきです)。 |
| `index` or `LedgerIndex` | 文字列 | UInt256 | いいえ | このレジャーエントリの一意のID。JSONでは、このフィールドはコンテキストやAPIメソッドによって異なる名前で表現されます。(コード上では"任意(optional)"と指定されていますが、XRP Ledgerの歴史のごく初期からのレガシーデータでない限り、すべてのレジャーエントリは一意であるべきです)。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーエントリのタイプ。有効な[レジャーエントリのタイプ](ledger-entry-types/index.md)には`AccountRoot``Offer``RippleState`などがあります。 |
| `Flags` | 数値 | UInt32 | はい | このレジャーエントリのビットフラグのセット。 |

View File

@@ -40,8 +40,8 @@ labels:
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:------------------------------|:---------|:------------------|:------|:------|
| `Account` | 文字列 | AccountID | はい | この[アカウント](../../../../concepts/accounts/index.md)を識別するための(クラシック)アドレスです。 |
| `AccountTxnID` | 文字列 | Hash256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、[`AccountTxnID`トランザクションフィールド](../../transactions/common-fields.md#accounttxnid)を使うために有効になっていなければなりません。これを有効にするには、[`asfAccountTxnID`フラグを有効にしたAccountSetトランザクション](../../transactions/types/accountset.md#accountsetのフラグ)を送信してください。 |
| `AMMID` | 文字列 | Hash256 | いいえ | _([AMM amendment][]により追加されました。)_ 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 |
| `AccountTxnID` | 文字列 | UInt256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、[`AccountTxnID`トランザクションフィールド](../../transactions/common-fields.md#accounttxnid)を使うために有効になっていなければなりません。これを有効にするには、[`asfAccountTxnID`フラグを有効にしたAccountSetトランザクション](../../transactions/types/accountset.md#accountsetのフラグ)を送信してください。 |
| `AMMID` | 文字列 | UInt256 | いいえ | _([AMM amendment][]により追加されました。)_ 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 |
| `Balance` | 文字列 | Amount | いいえ | アカウントの現在の[drop単位のXRP残高][XRP、drop単位]で、文字列で表現されます。 |
| `BurnedNFTokens` | 数値 | UInt32 | いいえ | このアカウントで発行された [非代替性トークン](../../../../concepts/tokens/nfts/index.md) のうち、バーンしたトークンの総数を表します。この数値は常に `MintedNFTokens` と同じかそれ以下となります。 |
| `Domain` | 文字列 | VariableLength | いいえ | このアカウントに関連付けられたドメイン。JSONでは、ドメインのASCII表現を16進数で表現します。[256バイトを超える長さは使用できません](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) |
@@ -52,14 +52,14 @@ labels:
| `MintedNFTokens` | 数値 | UInt32 | いいえ | このアカウントによって、またはこのアカウントのためにMintされた[非代替性トークン](../../../../concepts/tokens/nfts/index.md) の合計数。 |
| `NFTokenMinter` | 文字列 | AccountID | いいえ | このアカウントに代わって[非代替性トークン](../../../../concepts/tokens/nfts/index.md)をミントできる別のアカウントを表します。 |
| `OwnerCount` | 数値 | UInt32 | はい | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
| `RegularKey` | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できる[キーペア](../../../../concepts/accounts/cryptographic-keys.md)のアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 |
| `Sequence` | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションの[シーケンス番号](../../data-types/basic-data-types.md#アカウントシーケンス) を表します。 |
| `TicketCount` | 数値 | UInt32 | いいえ | このアカウントが台帳に保有する[チケット](../../../../concepts/accounts/tickets.md)の数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 _([TicketBatch amendment][]により追加されました)_ |
| `TickSize` | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。_[TickSize Amendment][]により追加されました。_ |
| `TransferRate` | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザが相互に送金する際に、これらのユーザに請求する[送金手数料](../../../../concepts/tokens/transfer-fees.md)。 |
| `WalletLocator` | 文字列 | Hash256 | いいえ | ユーザが設定できる任意の256bit値。 |
| `WalletLocator` | 文字列 | UInt256 | いいえ | ユーザが設定できる任意の256bit値。 |
| `WalletSize` | 数値 | UInt32 | いいえ | 未使用。(コード上ではこのフィールドをサポートしていますが、設定する方法はありません)。 |
## AMMの特殊なAccountRootエントリ

View File

@@ -53,15 +53,15 @@ labels:
| `Amendments` | 配列 | VECTOR256 | いいえ | _省略可_ 現在有効なすべてのAmendmentの256ビット[Amendment ID](../../../../concepts/networks-and-servers/amendments.md)からなる配列。省略されている場合は、有効なAmendmentがありません。 |
| `Flags` | 数値 | UInt32 | はい | ブール値フラグのビットマップ。Amendmentオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`です。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x0066`(文字列`Amendments`にマッピングの場合は、このオブジェクトがXRP **Ledgerに対するAmendmentのステータスを記述していることを示します**。 |
| `Majorities` | 配列 | STArray | いいえ | _省略可_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 |
| `PreviousTxnID` | 文字列 | Hash256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `Majorities` | 配列 | Array | いいえ | _省略可_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 |
| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。_[fixPreviousTxnID amendment][]により追加されました。_ |
`Majorities`フィールドにメンバーが含まれている場合、各メンバーは`Majority`フィールドのみが含まれているオブジェクトです。このフィールドの内容は、以下のフィールドからなるネストオブジェクトです。
| 名前 | JSONの型 | [内部の型][] | 説明 |
|-------------------|----------|--------------|-------------|
| `Amendment` | 文字列 | Hash256 | 保留中のAmendmentのAmendment ID。 |
| `Amendment` | 文字列 | UInt256 | 保留中のAmendmentのAmendment ID。 |
| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](../ledger-header.md)。 |
[Amendmentプロセス](../../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)では、80%以上のバリデータが新しいAmendmentを支持してバリデータのコンセンサスが得られると、`tfGotMajority`フラグを指定した[EnableAmendment][]疑似トランザクションを使用してこの新しいAmendmentが`Majorities`フィールドに追加されます。保留中のAmendmentの支持が80%を下回ると、`tfLostMajority`フラグが指定された[EnableAmendment][]疑似トランザクションによりそのAmendmentが`Majorities`配列から削除されます。Amendmentが`Majorities`フィールドに含まれている状態が2週間以上継続している場合、フラグが指定されていない[EnableAmendment][]疑似トランザクションによってそのAmendmentは`Majorities`から削除され、`Amendments`フィールドに恒久的に追加されます。

View File

@@ -68,12 +68,12 @@ _([AMM amendment][]により追加されました。)_
| `Asset` | オブジェクト | STIssue | はい | このAMMが保有する2つのアセットのうちの1つの定義。JSONでは、`currency``issuer`フィールドを持つオブジェクトになります。 |
| `Asset2` | オブジェクト | STIssue | はい | このAMMが保有するもう一つの資産の定義。JSONでは、`currency``issuer`フィールドを持つオブジェクトになります。 |
| `Account` | 文字列 | AccountID | はい | このAMMの資産を保有する[特殊なアカウント](accountroot.md#ammの特殊なaccountrootエントリ)のアドレス。 |
| `AuctionSlot` | オブジェクト | STObject | いいえ | オークションスロットの現在の所有者の詳細。[オークションスロットオブジェクト](#オークションスロットオブジェクト)形式です。|
| `AuctionSlot` | オブジェクト | Object | いいえ | オークションスロットの現在の所有者の詳細。[オークションスロットオブジェクト](#オークションスロットオブジェクト)形式です。|
| `LPTokenBalance` | [通貨額][] | Amount | はい | AMMインスタンスの流動性供給者トークンの発行残高の合計。このトークンの保有者は、保有量に比例してAMMの取引手数料に投票したり、取引手数料の徴収とともに増えていくAMMの資産の一部とトークンを交換したりすることができます。 |
| `PreviousTxnID` | 文字列 | Hash256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `TradingFee` | 数値 | UInt16 | はい | AMMインスタンスに対する取引に課される手数料のパーセンテージを1/100,000の単位で指定します。最大値は1000で、これは1%の手数料となります。 |
| `VoteSlots` | 配列 | STArray | いいえ | プールの取引手数料に関する投票を表す、投票オブジェクトのリスト。|
| `VoteSlots` | 配列 | Array | いいえ | プールの取引手数料に関する投票を表す、投票オブジェクトのリスト。|
### AuctionSlotオブジェクト
@@ -83,7 +83,7 @@ _([AMM amendment][]により追加されました。)_
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:----------------|:--------------------|:------------------|:----------|:--|
| `Account` | 文字列 - アドレス | AccountID | はい | このオークションスロットの現在の所有者。 |
| `AuthAccounts` | 配列 | STArray | いいえ | AMMインスタンスに対して取引手数料を割引した価格で取引することを許可された、最大4つの追加アカウントのリスト。 |
| `AuthAccounts` | 配列 | Array | いいえ | AMMインスタンスに対して取引手数料を割引した価格で取引することを許可された、最大4つの追加アカウントのリスト。 |
| `DiscountedFee` | 文字列 | UInt32 | はい | オークションスロットの所有者に請求される取引手数料で、`TradingFee`と同じフォーマットです。これは通常の取引手数料の1/10です。 |
| `Price` | [通貨額][] | Amount | はい | オークションスロットの所有者がこのスロットを落札するために支払った金額LPトークン。 |
| `Expiration` | 文字列 | UInt32 | はい | このスロットの有効期限が切れる[Rippleエポック以降の経過秒数][]で指定した時刻。 |

View File

@@ -45,10 +45,10 @@ _[Checks Amendment][]が必要です_
| `DestinationNode` | 文字列 | UInt64 | いいえ | _省略可_ 送金先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
| `DestinationTag` | 数値 | UInt32 | いいえ | _省略可_ このCheckの送金先送金先アドレスのホスティングされている受取人などを詳しく指定するための任意のタグ。 |
| `Expiration` | 数値 | UInt32 | いいえ | _省略可_ 経過後にこのCheckが有効期限切れとみなされる時刻を示します。詳細は[時間の指定][]をご覧ください。 |
| `InvoiceID` | 文字列 | Hash256 | いいえ | _省略可_ このCheckの具体的な理由または識別子として送金元が指定する任意の256ビットハッシュ。 |
| `InvoiceID` | 文字列 | UInt256 | いいえ | _省略可_ このCheckの具体的な理由または識別子として送金元が指定する任意の256ビットハッシュ。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0043`が文字列`Check`にマッピングされている場合は、このオブジェクトがCheckオブジェクトであることを示します。 |
| `OwnerNode` | 文字列 | UInt64 | はい | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][]。 |
| `SendMax` | 文字列またはオブジェクト | Amount | はい | このCheckで送金元から引き落とすことができる最大通貨額。Checkの換金が成功すると、送金先に同じ通貨で最大この額までの資金が入金されます。 |
| `Sequence` | 数値 | UInt32 | はい | このCheckを作成した[CheckCreateトランザクション][]のシーケンス番号。 |

View File

@@ -36,7 +36,7 @@ status: not_enabled
| `Expiration` | 数値 | UInt32 | いいえ | 資格情報が期限切れとなる時間([リップルエポックからの秒数][])。 |
| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | この資格情報を発行したアカウント。 |
| `IssuerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成される場合に、発行者のディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 |
| `PreviousTxnID` | 文字列 - [ハッシュ][] | Hash256 | はい | このエントリを最後に変更したトランザクションの識別ハッシュ。 |
| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | このエントリを最後に変更したトランザクションの識別ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含む[レジャーインデックス][Ledger Index]。 |
| `Subject` | 文字列 - [アドレス][] | AccountID | はい | この資格情報の対象となるアカウント。 |
| `SubjectNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成される場合に、対象の所有者ディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 |

View File

@@ -66,7 +66,7 @@ labels:
| `AuthorizeCredentials` | 配列 | Array | いいえ | 事前承認を受けた資格情報のセット。(これらの資格情報を持つアカウントは事前承認されます。)この配列の長さは最小1、最大8です。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0070`が文字列`DepositPreauth`にマッピングされている場合は、これがDepositPreauthオブジェクトであることを示します。 |
| `OwnerNode` | 文字列 | UInt64 | はい | 送金元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
| `PreviousTxnID` | 文字列 - [ハッシュ][] | Hash256 | はい | このオブジェクトを最後に変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | このオブジェクトを最後に変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションが記録された[レジャーインデックス][]。 |
各エントリには、`Authorize`フィールドまたは`AuthorizeCredentials`フィールドのいずれかが必要ですが、両方を持つことはできません。

View File

@@ -42,7 +42,7 @@ _([DID Amendment][])_
| `Data` | 文字列 | Blob | いいえ | DIDに関連付けられたID情報の公開証明。`Data`フィールドの有効性はチェックされず、最大長は 256 バイトに制限されます。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 文字列`DID`にマップされる値`0x0049`は、このオブジェクトがDIDオブジェクトであることを示します。 |
| `OwnerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成されている場合に、送信者のオーナーディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | このオブジェクトを最近変更したトランザクションの識別ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | このオブジェクトを最近変更したトランザクションの識別ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含むレジャーインデックス。 |
| `URI` | 文字列 | Blob | いいえ | 対応するDIDドキュメントまたはDIDに関連付けられたデータを指すユニバーサルリソース識別子。このフィールドにはHTTP(S)URLまたはIPFS URIを指定できます。このフィールドの有効性はチェックされず、最大長は256バイトに制限されます。 |

View File

@@ -101,15 +101,15 @@ labels:
| `IndexNext` | 数値 | UInt64 | いいえ | 省略可このディレクトリに複数のページが含まれている場合、このIDはチェーン内の次のオブジェクトにリンクし、末尾でラップアラウンドします。 |
| `IndexPrevious` | 数値 | UInt64 | いいえ | 省略可このディレクトリに複数のページが含まれている場合、このIDはチェーン内の前のオブジェクトにリンクし、先頭でラップアラウンドします。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x0064`(文字列`DirectoryNode`にマッピング)の場合は、このオブジェクトがディレクトリの一部であることを示します。 |
| `NFTokenID` | 文字列 | Hash256 | いいえ |(NFTオファーディレクトリのみ) 購入または売却オファーに紐づくNFTのID。. |
| `NFTokenID` | 文字列 | UInt256 | いいえ |(NFTオファーディレクトリのみ) 購入または売却オファーに紐づくNFTのID。. |
| `Owner` | 文字列 | AccountID | いいえ | (所有者ディレクトリのみ)このディレクトリ内のオブジェクトを所有するアカウントのアドレス。 |
| `PreviousTxnID` | 文字列 | Hash256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `RootIndex` | 文字列 | Hash256 | はい | このディレクトリのルートオブジェクトのID。 |
| `TakerGetsCurrency` | 文字列 | Hash160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerGetsの額の通貨コード。 |
| `TakerGetsIssuer` | 文字列 | Hash160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerGetsの額のイシュアー。 |
| `TakerPaysCurrency` | 文字列 | Hash160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerPaysの額の通貨コード。 |
| `TakerPaysIssuer` | 文字列 | Hash160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerPaysの額のイシュアー。 |
| `RootIndex` | 文字列 | UInt256 | はい | このディレクトリのルートオブジェクトのID。 |
| `TakerGetsCurrency` | 文字列 | UInt160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerGetsの額の通貨コード。 |
| `TakerGetsIssuer` | 文字列 | UInt160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerGetsの額のイシュアー。 |
| `TakerPaysCurrency` | 文字列 | UInt160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerPaysの額の通貨コード。 |
| `TakerPaysIssuer` | 文字列 | UInt160 | いいえ | オファーディレクトリのみこのディレクトリのオファーのTakerPaysの額のイシュアー。 |
## {% $frontmatter.seo.title %}のフラグ

View File

@@ -51,7 +51,7 @@ _[Escrow Amendment][]により追加されました。_
| `FinishAfter` | 数値 | UInt32 | いいえ | _省略可_ [Rippleエポック以降の経過秒数][]で示される時刻が経過した後、保留中の支払を完了できます。この時刻より前の[EscrowFinishトランザクション][]はすべて失敗します。(特にこれは、前の検証済みレジャーの閉鎖時刻と比較されます。) |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0075`が文字列`Escrow`にマッピングされている場合は、このオブジェクトが`Escrow`オブジェクトであることを示します。 |
| `OwnerNode` | 文字列 | UInt64 | はい | 所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
| `SourceTag` | 数値 | UInt32 | いいえ | _省略可_ この保留中の支払の支払元(所有者のアドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 |

View File

@@ -39,7 +39,7 @@ labels:
| `ReferenceFeeUnits` | 数値 | UInt32 | 「手数料単位」に変換された`BaseFee` |
| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)XRPのdrop数。 |
| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)XRPのdrop数。 |
| `PreviousTxnID` | 文字列 | Hash256 | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnID` | 文字列 | UInt256 | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。_[fixPreviousTxnID amendment][]により追加されました。_ |
{% admonition type="danger" name="警告" %}このレジャーオブジェクトのJSONフォーマットは一般的ではありません。`BaseFee``ReserveBase`、および`ReserveIncrement`はXRPのdrop数を示しますが、通常の[XRP指定][通貨額]フォーマットでは***ありません*** 。{% /admonition %}

View File

@@ -43,7 +43,7 @@ _([MPTokensV1_1 amendment][]により追加されました。)_
| `MPTokenIssuanceID` | 文字列 | UInt192 | `MPTokenIssuance`の識別子。 |
| `MPTAmount` | 文字列 | UInt64 | この値は、所有者が現在保有しているトークンの正の数量を指定します。このフィールドの有効な値は0x0から0x7FFFFFFFFFFFFFFFの間です。 |
| `Flags` | 数値 | UInt32 | (デフォルト) [MPTokenのフラグ](#mptokenのフラグ)をご覧ください。 |
| `PreviousTxnID` | 文字列 | Hash256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 |
| `PreviousTxnID` | 文字列 | UInt256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | このオブジェクトを最後に変更したトランザクションを含むレジャーのシーケンス番号。 |
| `OwnerNode` | 文字列 | UInt64 | (デフォルト) 所有者のディレクトリでこのアイテムが参照されているページ。 |

View File

@@ -59,7 +59,7 @@ _([MPTokensV1_1 amendment][]により追加されました。)_
| `OutstandingAmount` | 文字列 | UInt64 | すべてのトークン保有者に発行されたトークン量の合計を指定します。この値は、値が0の場合にLedger上で少ないスペースを占めるように、デフォルトタイプとしてLedgerに保存されます。この値は、発行者が非発行者アカウントにMPTを支払うたびに増加し、非発行者が発行アカウントにMPTを支払うたびに減少します。 |
| `TransferFee` | 数値 | UInt16 | この値は、トークンの二次販売が許可されている場合に、発行者が課す手数料をベーシスポイントの10分の1単位で指定します。このフィールドの有効な値は0から50,000までです。値1は1/10ベーシスポイントまたは0.001%に相当し、0%から50%までの手数料設定を可能にします。50,000の`TransferFee`は50%に相当します。このフィールドのデフォルト値は0です。転送手数料の小数点以下は切り捨てられます。支払いが小さい場合、手数料は0に切り捨てられる可能性があります。発行者は、MPTの`AssetScale`が十分に大きいことを確認する必要があります。 |
| `MPTokenMetadata` | 文字列 | Blob | この発行に関する任意のメタデータで、16進数形式です。このフィールドの制限は1024バイトです。 |
| `PreviousTxnID` | 文字列 | Hash256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 |
| `PreviousTxnID` | 文字列 | UInt256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | このオブジェクトを最後に変更したトランザクションを含むレジャーのシーケンス番号。 |
| `OwnerNode` | 文字列 | UInt64 | このアイテムが参照されている所有者のディレクトリのページ。 |
| `Sequence` | 数値 | UInt32 | 特定の送信者からの発行が、Issuanceが後で削除された場合でも一度しか存在できないことを保証するために使用される32ビットの符号なし整数。新しい発行が作成されるたびに、この値はアカウントの現在の`Sequence`番号と一致する必要があります。`Tickets`は通常の順序外でトランザクションを送信できるように、これらのルールから一部例外を設けています。`Tickets`は後で使用するために予約されたシーケンス番号を表します。トランザクションは通常のアカウントSequence番号の代わりに`Ticket`を使用できます。MPTを作成するトランザクションがレジャーに含まれるたびに、トランザクションが正常に実行されたか、tecクラスのエラーコードで失敗したかに関係なく、シーケンス番号(またはTicket)が使用されます。その他のトランザクションの失敗はレジャーに含まれないため、送信者のシーケンス番号は変更されません(また、他の影響もありません)。未確認のMPT作成トランザクションが同じIssuerとシーケンス番号を持つことは可能です。そのようなトランザクションは相互に排他的であり、検証済みレジャーに含まれるのは最大で1つだけです。(他のトランザクションは最終的に効果がありません。) |

View File

@@ -42,7 +42,7 @@ _([NegativeUNL amendment][]により追加されました。)_
| `DisabledValidators` | 配列 | Array | いいえ | `DisabledValidator`オブジェクト(下記参照)は、現在無効になっている信頼できるバリデータを表すリストです。 |
| `Flags` | 数値 | UInt32 | はい | 真偽値フラグのビットマップ。NegativeUNLオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`となります。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | `0x004E`は文字列`NegativeUNL`に対応し、このオブジェクトがNegativeUNLであることを意味します。 |
| `PreviousTxnID` | 文字列 | Hash256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。_[fixPreviousTxnID amendment][]により追加されました。_ |
| `ValidatorToDisable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで無効化される予定の信頼できるバリデータの公開鍵を表します。 |
| `ValidatorToReEnable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで再有効化される予定のネガティブUNLの信頼できるバリデータの公開鍵を表します。 |

View File

@@ -39,11 +39,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_
| `Expiration` | 数値 | UInt32 | いいえ | オファーが有効でなくなる時刻。値は、リップルエポックからの秒数です。 |
| `Flags` | 数値 | UInt32 | はい | このオブジェクトに関連付けられたフラグのセットで、様々なオプションや設定を指定するために使用されます。フラグは、以下の表に示すとおりです。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトの種類を示します0x0074。 |
| `NFTokenID` | 文字列 | Hash256 | はい | このオファーが参照するNFTokenオブジェクトのNFTokenID。 |
| `NFTokenID` | 文字列 | UInt256 | はい | このオファーが参照するNFTokenオブジェクトのNFTokenID。 |
| `NFTokenOfferNode` | 文字列 | UInt64 | いいえ | トークン購入または売却のオファーディレクトリの中で、このトークンが記録されている内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 |
| `Owner` | 文字列 | AccountID | はい | オファーの作成者であり、所有者であるアカウント。NFTokenの現在の所有者のみがNFTokenの売却オファーを作成できますが、NFTokenの購入オファーはどのアカウントでも作成できます。 |
| `OwnerNode` | 文字列 | UInt64 | いいえ | このトークンが記録されているオーナーディレクトリ内のページを示す、内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | このオブジェクトを最も最近更新したトランザクションの識別ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | このオブジェクトを最も最近更新したトランザクションの識別ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最も最近更新したトランザクションを含むレジャーのインデックス。 |

View File

@@ -47,10 +47,10 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|:--------------------|:----------|:-----------|:----------|:------------|
| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトのタイプを識別文字列です。予約されているレジャーの種類は、0x0050です。|
| `NextPageMin` | 文字列 | Hash256 | いいえ | 次のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。|
| `NextPageMin` | 文字列 | UInt256 | いいえ | 次のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。|
| `NFTokens` | オブジェクト | TOKEN | はい | このNFTokenPageオブジェクトに含まれる`NFToken`オブジェクトのコレクション。本仕様では、1ページあたり32のNFTokenオブジェクトを上限としています。オブジェクトは、`NFTokenID`をソートパラメータとして使用して、低いものから高いものへとソートされた順序で格納されています。|
| `PreviousPageMin` | 文字列 | Hash256 | いいえ | 前のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。|
| `PreviousTxnID` | 文字列 | HASH256 | いいえ | このNFTokenPageオブジェクトを最も最近変更したトランザクションのトランザクションIDの情報を示します。|
| `PreviousPageMin` | 文字列 | UInt256 | いいえ | 前のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。|
| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このNFTokenPageオブジェクトを最も最近変更したトランザクションのトランザクションIDの情報を示します。|
| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このNFTokenPageオブジェクトを最も最近変更したトランザクションを含むレジャーのシーケンスを示します。|

View File

@@ -43,13 +43,13 @@ labels:
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|-------------------|-----------|-----------|------|-------|
| `Account` | 文字列 | AccountID | はい | このオファーを所有するアカウントのアドレス。 |
| `BookDirectory` | 文字列 | Hash256 | はい | このオファーにリンクしている[オファーディレクトリー](directorynode.md)のID。 |
| `BookDirectory` | 文字列 | UInt256 | はい | このオファーにリンクしている[オファーディレクトリー](directorynode.md)のID。 |
| `BookNode` | 文字列 | UInt64 | はい | Offerディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。 |
| `Expiration` | 数値 | UInt32 | いいえ | (省略可)このオファーが資金不足とみなされる時刻。詳細は、[時間の指定][]をご覧ください。 |
| `Flags` | 数値 | UInt32 | はい | このオファーに対して有効になっているブール値フラグのビットマップ。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x006F`(文字列`Offer`にマッピング)の場合は、このオブジェクトが通貨取引オーダーを記述することを示す。 |
| `OwnerNode` | 文字列 | UInt64 | はい | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。**注記:** このオファーには、オファーを含む所有者ディレクトリーへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `Sequence` | 数値 | UInt32 | はい | `Offer`オブジェクトを作成した[OfferCreate][]トランザクションの`Sequence`値。`Account`とこのフィールドの組み合わせによってこのオファーが識別されます。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
| `TakerPays` | 文字列またはオブジェクト | Amount | はい | オファー作成者がリクエストする残額と通貨の種類。 |

View File

@@ -54,7 +54,7 @@ _[PayChan Amendment][]により追加されました。_
| `Expiration` | 数値 | UInt32 | いいえ | _省略可_ このPayment Channelの変更可能な有効期限[Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](../ledger-header.md)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)をご覧ください。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0078`が文字列`PayChannel`にマッピングされている場合は、このオブジェクトがPayment Channelオブジェクトであることを示します。 |
| `OwnerNode` | 文字列 | UInt64 | はい | 支払元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
| `PublicKey` | 文字列 | PubKey | はい | このChannelに対するクレームの署名に使用できるキーペアの公開鍵16進数。有効なsecp256k1公開鍵またはEd25519公開鍵を指定できます。Channelを作成したトランザクションによって設定されます。Channelに対するクレームに使用される公開鍵と一致している必要があります。Channelの支払元アドレスは、署名付きクレームなしでこのChannelから宛先にXRPを送金することもできます。 |
| `SettleDelay` | 数値 | UInt32 | はい | ChannelにXRPがまだある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する秒数。値が小さい場合、支払元アドレスがChannelの閉鎖を要求した後で、宛先アドレスが未処理のクレームを精算できる時間が短くなります。32ビットの符号なし整数に収まる値02^32-1であれば任意の値を指定できます。これは、Channelを作成するトランザクションにより設定されます。 |

View File

@@ -64,7 +64,7 @@ labels:
| `LowNode` | 文字列 | UInt64 | はい | (一部の履歴レジャーでは省略されます)低位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
| `LowQualityIn` | 数値 | UInt32 | いいえ | 省略可暗黙の比率LowQualityIn:1,000,000,000で整数として低位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 |
| `LowQualityOut` | 数値 | UInt32 | いいえ | 省略可暗黙の比率LowQualityOut:1,000,000,000で整数として低位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
## RippleStateのフラグ

View File

@@ -57,7 +57,7 @@ _[MultiSign Amendment][]により追加されました。_
|:--------------------|:----------|:--------------|:---------------------------|
| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0053`(文字列`SignerList`にマッピングの場合は、これがSignerListオブジェクトであることを示します。 |
| `Flags` | 数値 | UInt32 | このSignerListに対して有効になっているブール値フラグのビットマップ。詳細は、[SignerListのフラグ](#signerlistのフラグ)をご覧ください。 |
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
| `SignerEntries` | 配列 | 配列 | この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。 |
@@ -74,7 +74,7 @@ _[MultiSign Amendment][]により追加されました。_
|:---------------|:----------|:--------------|:--------------------------------|
| `Account` | 文字列 | AccountID | 署名がマルチシグに提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。 |
| `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチシグは、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 |
| `WalletLocator` | 文字列 | Hash256 | 省略可任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。[ExpandedSignerList amendment][]により追加されました。 |
| `WalletLocator` | 文字列 | UInt256 | 省略可任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。[ExpandedSignerList amendment][]により追加されました。 |
マルチシグトランザクションを処理する際に、サーバはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.md)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。

View File

@@ -37,7 +37,7 @@ _([TicketBatch amendment][]が必要です)_
| `Account` | 文字列 | AccountID | はい | このチケットを所有する[アカウント](../../../../concepts/accounts/index.md)です。 |
| `LedgerEntryType` | 文字列 | UInt16 | はい | 文字列`Ticket`にマッピングされた値`0x0054`は、このオブジェクトが {% $frontmatter.seo.title %}エントリであることを示しています。 |
| `OwnerNode` | 文字列 | UInt64 | はい | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。注記: このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更した[トランザクション](../../../../concepts/transactions/index.md)の識別用ハッシュ。 |
| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更した[トランザクション](../../../../concepts/transactions/index.md)の識別用ハッシュ。 |
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][Ledger Index]。 |
| `TicketSequence` | 数値 | UInt32 | はい | 本チケットが設定する[シーケンス番号][]。 |

View File

@@ -74,7 +74,7 @@ _[XChainBridge Amendment][] {% not-enabled /%} が必要です_
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:--------------------------|:-------------|:--------------|:-----|:----|
| `Account` | 文字列 | Account | はい | このオブジェクトを所有するアカウント。 |
| `LedgerIndex` | 文字列 | Hash256 | はい | レジャーインデックスは、`XChainOwnedClaimID`の一意な接頭辞、`XChainClaimID`の実際の値、`XChainBridge`のフィールドのハッシュです。 |
| `LedgerIndex` | 文字列 | UInt256 | はい | レジャーインデックスは、`XChainOwnedClaimID`の一意な接頭辞、`XChainClaimID`の実際の値、`XChainBridge`のフィールドのハッシュです。 |
| `OtherChainSource` | 文字列 | Account | はい | 送信元チェーンで対応する`XChainCommit`を送信する必要があるアカウント。つまり、`OtherChainSource`が指定されていないと、別のアカウントが別の送信先を指定して資金を盗もうとする可能性があるということです。また、どのアカウントが`XChainCommit`トランザクションを送信するのかが分かるので、単一の署名セットのみを追跡することもできます。 |
| `SignatureReward` | [通貨額][] | Amount | はい | Witnessサーバに支払う署名報酬の合計額。`Bridge`レジャー帳オブジェクトの`SignatureReward`の値以上でなければなりません。 |
| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトに紐づくブリッジのドアアカウントと資産。 |

View File

@@ -59,7 +59,7 @@ _[XChainBridge Amendment][] {% not-enabled /%} が必要です_
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|:----------------------------------|:-------------|:--------------|:------|:------------|
| `Account` | 文字列 | Account | はい | このオブジェクトを所有するアカウント。 |
| `LedgerIndex` | 文字列 | Hash256 | はい | レジャーインデックスは、`XChainOwnedCreateAccountClaimID`の一意な接頭辞、`XChainAccountClaimCount`の実際の値、`XChainBridge`のフィールドのハッシュです。 |
| `LedgerIndex` | 文字列 | UInt256 | はい | レジャーインデックスは、`XChainOwnedCreateAccountClaimID`の一意な接頭辞、`XChainAccountClaimCount`の実際の値、`XChainBridge`のフィールドのハッシュです。 |
| `XChainAccountCreateCount` | 数値 | UInt64 | はい | クロスチェーン送金で作成されたアカウントの実行順序を決める整数。小さい数字は大きい数字より先に実行されなければなりません。 |
| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトに紐づくブリッジのドアアカウントと資産。 |
| `XChainCreateAccountAttestations` | 配列 | Array | はい | Witnessサーバから収集された証明。これには、署名されたメッセージの再作成に必要なパラメータが含まれます。これには、その署名の量、どのチェーンロックまたは発行、任意の宛先、報酬アカウントなどが含まれます。 |

View File

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

View File

@@ -16,7 +16,7 @@ labels:
| TransactionType | 文字列 | UInt16 | _必須_ トランザクションのタイプ。有効なタイプは、`Payment``OfferCreate``OfferCancel``TrustSet``AccountSet``SetRegularKey``SignerListSet``EscrowCreate``EscrowFinish``EscrowCancel``PaymentChannelCreate``PaymentChannelFund``PaymentChannelClaim``DepositPreauth`です。 |
| Fee | 文字列 | Amount | _必須。[自動入力可能][]_ 整数で表したXRPの額drop単位。このトランザクションをネットワークに送信するためのコストとして消却されます。トランザクションのタイプによっては、最小要件が異なります。詳細は、[トランザクションコスト][]をご覧ください。 |
| Sequence | 符号なし整数 | UInt32 | _必須。[自動入力可能][]_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](../../../concepts/transactions/finality-of-results/canceling-a-transaction.md)をご覧ください。 |
| [AccountTxnID][] | 文字列 | Hash256 | _省略可_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 |
| [AccountTxnID][] | 文字列 | UInt256 | _省略可_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 |
| [Flags][] | 符号なし整数 | UInt32 | _省略可_ このトランザクションのビットフラグのセット。 |
| LastLedgerSequence | 数値 | UInt32 | _省略可。使用を強く推奨_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。 |
| [`NetworkID`](#networkidフィールド) | Number | UInt32 | _(Network-specific)_ The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. |
@@ -32,7 +32,7 @@ labels:
[Memos]: #memosフィールド
[Signers]: #signersフィールド
{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}削除: rippled 0.28.0{% /badge %}: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/Hash256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](../ledger-data/index.md)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。
{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}削除: rippled 0.28.0{% /badge %}: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/UInt256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](../ledger-data/index.md)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。
## AccountTxnID
@@ -71,11 +71,12 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク
### グローバルフラグ
すべてのトランザクションにグローバルに適用される唯一のフラグは、以下のとおりです。
すべてのトランザクションにグローバルに適用されるフラグは、以下のとおりです。
| フラグの名前 | 16進値 | 10進値 | 説明 |
|:--------------------|:-----------|:--------------|:--------------------------|
| tfFullyCanonicalSig | 0x80000000 | 2147483648 | _使用を強く推奨_ 完全に正規である署名を要求します。 |
| tfInnerBatchTxn | 0x40000000 | 1073741824 | このフラグは [Batchトランザクション][] の内部トランザクションである場合にのみ使用されます。これは、トランザクションが署名されていないことを示します。このフラグを含む通常のトランザクションは拒否されます。 |
[signメソッド][](または「署名と送信」モードの[submitメソッド][])を使用すると、`rippled`は、`Flags`フィールドがすでに存在している場合を除き、`tfFullyCanonicalSig`フラグを有効にした状態で`Flags`フィールドを追加します。`tfFullyCanonicalSig`フラグは、`Flags`が明示的に指定されている場合、自動的には有効に***なりません***。また、[sign_forメソッド][]を使用してマルチシグトランザクションに署名を追加する場合も、自動的には有効に***なりません***。

View File

@@ -14,7 +14,7 @@ labels:
| フィールド | JSONの型 | [内部の型][] | 説明 |
|:---------------|:----------|:------------------|:----------------------------|
| Amendment | 文字列 | Hash256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](../../../../concepts/networks-and-servers/amendments.md)をご覧ください。 |
| Amendment | 文字列 | UInt256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](../../../../concepts/networks-and-servers/amendments.md)をご覧ください。 |
| LedgerSequence | 数値 | UInt32 | Amendmentが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 |
## EnableAmendment Flags

View File

@@ -40,7 +40,7 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](../../led
| [`SetFlag`](#accountsetのフラグ) | 数値 | UInt32 | _省略可_ このアカウントについてオプションを有効にするための整数フラグ。 |
| [`TransferRate`](#transferrate) | 符号なし整数 | UInt32 | _省略可_ ユーザがこのアカウントのトークンを送金するときに請求される手数料。通貨単位の10億分の1で表現されます。手数料なしを意味する特殊なケースの`0`を除いて、`2000000000`より大きくしたり、`1000000000`より小さくしたりすることはできません。 |
| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | 符号なし整数 | UInt8 | _省略可_このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です_[TickSize Amendment][]により追加されました。_ |
| `WalletLocator` | 文字列 | Hash256 | _省略可_ 任意の256ビット値です。指定された場合、この値はアカウントの設定の一部として保存さ れますが、固有の定義や要件を持ちません。 |
| `WalletLocator` | 文字列 | UInt256 | _省略可_ 任意の256ビット値です。指定された場合、この値はアカウントの設定の一部として保存さ れますが、固有の定義や要件を持ちません。 |
| `WalletSize` | 数値 | UInt32 | _省略可_ 使用されません。このフィールドはAccountSetトランザクションで有効ですが、何の機能もありません |
これらのオプションがいずれも指定されていない場合、AccountSetトランザクションは取引コストの消却以外に意味がありません。詳細は、[トランザクションのキャンセルまたはスキップ](../../../../concepts/transactions/finality-of-results/canceling-a-transaction.md)をご覧ください。

View File

@@ -60,7 +60,7 @@ AMMのLPトークンを使って落札すると、落札に利用したLPトー
| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つのアセットの定義です。JSONでは、`currency``issuer`フィールドを持つオブジェクトになりますXRPの場合は`issuer`を省略します)。 |
| `BidMin` | [通貨額][] | Amount | いいえ | スロットに支払う最小の金額。この値を高く設定すると、他の人から競り落とされにくくなります。省略された場合は、落札に必要な最低額を支払います。 |
| `BidMax` | [通貨額][] | Amount | いいえ | スロットに支払う最大の金額。落札するためのコストがこの金額より高い場合、取引は失敗します。省略された場合は、落札に必要な金額を支払います。 |
| `AuthAccounts` | 配列 | STArray | いいえ | 割引料金で取引を許可する最大4つの追加のアカウントのリスト。これには、トランザクション送信者のアドレスは含めることはできません。これらのオブジェクトはそれぞれ[Auth Accountオブジェクト](#auth-accountオブジェクト)である必要があります。. |
| `AuthAccounts` | 配列 | Array | いいえ | 割引料金で取引を許可する最大4つの追加のアカウントのリスト。これには、トランザクション送信者のアドレスは含めることはできません。これらのオブジェクトはそれぞれ[Auth Accountオブジェクト](#auth-accountオブジェクト)である必要があります。. |
### Auth Accountオブジェクト

View File

@@ -0,0 +1,173 @@
---
seo:
description: 最大8件のトランザクションをまとめて作成・送信し、それらがすべて成功するか、すべて失敗するようにアトミックに処理されるようにします。
labels:
- Batch
- Transaction Sending
status: not_enabled
---
# Batch
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Batch.cpp "Source")
`Batch`トランザクションは、最大8つのトランザクションを単一のバッチで送信します。各トランザクションは、4つのモード(全て成功または全て失敗All or Nothing、一つのみ成功Only One、失敗まで継続Until Failure、および独立実行Independent)のいずれかでアトミックに実行されます。
## {% $frontmatter.seo.title %} JSONの例
### 単一アカウントの場合
この例では、ユーザーがDEX UIを使って取引する中でオファーを作成し、2番目のトランザクションでプラットフォーム手数料を支払っています。内部トランザクションは署名されておらず、関与するアカウントが1つのみのため、外部トランザクションに`BatchSigners`フィールドは不要です。
```json
{
"TransactionType": "Batch",
"Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b",
"Flags": 65536,
"RawTransactions": [
{
"RawTransaction": {
"TransactionType": "OfferCreate",
"Flags": 1073741824,
"Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b",
"TakerGets": "6000000",
"TakerPays": {
"currency": "GKO",
"issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc",
"value": "2"
},
"Sequence": 4,
"Fee": "0",
"SigningPubKey": ""
}
},
{
"RawTransaction": {
"TransactionType": "Payment",
"Flags": 1073741824,
"Account": "rUserBSM7T3b6nHX3Jjua62wgX9unH8s9b",
"Destination": "rDEXfrontEnd23E44wKL3S6dj9FaXv",
"Amount": "1000",
"Sequence": 5,
"Fee": "0",
"SigningPubKey": ""
}
}
],
"Sequence": 3,
"Fee": "40",
"SigningPubKey": "022D40673B44C82DEE1DDB8B9BB53DCCE4F97B27404DB850F068DD91D685E337EA",
"TxnSignature": "3045022100EC5D367FAE2B461679AD446FBBE7BA260506579AF4ED5EFC3EC25F4DD1885B38022018C2327DB281743B12553C7A6DC0E45B07D3FC6983F261D7BCB474D89A0EC5B8"
}
```
### 複数アカウントの場合
この例では、2人のユーザーがトークンXRPとGKOをアトミックに交換しています。
```json
{
"TransactionType": "Batch",
"Account": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6",
"Flags": 65536,
"RawTransactions": [
{
"RawTransaction": {
"TransactionType": "Payment",
"Flags": 1073741824,
"Account": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6",
"Destination": "rUser2fDds782Bd6eK15RDnGMtxf7m",
"Amount": "6000000",
"Sequence": 5,
"Fee": "0",
"SigningPubKey": ""
}
},
{
"RawTransaction": {
"TransactionType": "Payment",
"Flags": 1073741824,
"Account": "rUser2fDds782Bd6eK15RDnGMtxf7m",
"Destination": "rUser1fcu9RJa5W1ncAuEgLJF2oJC6",
"Amount": {
"currency": "GKO",
"issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc",
"value": "2"
},
"Sequence": 20,
"Fee": "0",
"SigningPubKey": ""
}
}
],
"BatchSigners": [
{
"BatchSigner": {
"Account": "rUser2fDds782Bd6eK15RDnGMtxf7m",
"SigningPubKey": "03C6AE25CD44323D52D28D7DE95598E6ABF953EECC9ABF767F13C21D421C034FAB",
"TxnSignature": "304502210083DF12FA60E2E743643889195DC42C10F62F0DE0A362330C32BBEC4D3881EECD022010579A01E052C4E587E70E5601D2F3846984DB9B16B9EBA05BAD7B51F912B899"
}
}
],
"Sequence": 4,
"Fee": "60",
"SigningPubKey": "03072BBE5F93D4906FC31A690A2C269F2B9A56D60DA9C2C6C0D88FB51B644C6F94",
"TxnSignature": "30440220702ABC11419AD4940969CC32EB4D1BFDBFCA651F064F30D6E1646D74FBFC493902204E5B451B447B0F69904127F04FE71634BD825A8970B9467871DA89EEC4B021F8"
}
```
{% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%}
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
| :---------------- | :--------- | :--------- | :----- | :----------------------------------------------------------- |
| `Flags` | 数値 | UInt32 | はい | このトランザクションのビットフラグです。トランザクションのバッチモードを表すために、正確に1つ指定する必要があります。[バッチのフラグ](#バッチのフラグ)をご覧ください。 |
| `RawTransactions` | 配列 | Array | はい | 適用するトランザクションのリストです。 |
| `BatchSigners` | 配列 | Array | いいえ | 複数アカウントの`Batch`トランザクションを承認する署名です。 |
### RawTransactions
`RawTransactions` には、適用される**内部トランザクションのリスト**が含まれます。最大8つのトランザクションを含めることができます。単一のアカウントからでも、複数のアカウントからでも構いません。
各内部トランザクションは以下の条件を満たす必要があります。
* `tfInnerBatchTxn` (10進数値: `1073741824`、または16進数値: `0x40000000`) フラグを含める必要があります。
* `Fee` の値が `"0"` である必要があります。
* 署名されていてはなりません(グローバルトランザクションはすべての関係者によってすでに署名されています)。代わりに、`SigningPubKey` には空の文字列 (`""`) を含み、`TxnSignature` フィールドは省略する必要があります。
* `TicketSequence` または `Sequence` の値がゼロより大きい必要があります。
### BatchSigners
このフィールドは、XRPLにおけるマルチシグ機能と同様の仕組みで動作します。複数のアカウントのトランザクションが`Batch`トランザクションに含まれている場合にのみ必要で、それ以外の場合は通常のトランザクション署名で同じセキュリティが保証されます。
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
| :-------------- | :--------- | :--------- | :----- | :----------------------------------------------------------- |
| `Account` | 文字列 | AccountID | はい | 少なくとも1つの内部トランザクションを持つアカウント。 |
| `SigningPubKey` | 文字列 | Blob | いいえ | このトランザクションの署名に使用された秘密鍵に対応する公開鍵の16進数表現。 |
| `TxnSignature` | 文字列 | Blob | いいえ | このトランザクションが、それが由来するとされるアカウントからのものであることを検証する署名。 |
| `Signers` | 配列 | Array | いいえ | このトランザクションを承認するマルチシグを表すオブジェクトの配列。 |
{% admonition type="info" name="Note" %}
`Batch`トランザクションを送信するアカウントが単一署名を使用する場合、`Flags`フィールドと内部トランザクションのハッシュに署名します。この場合、含まれるのは`SigningPubKey``TxnSignature`のみです。一方で、複数署名を使用する場合は代わりに`Signers`フィールドが使用され、そこに`Flags`フィールドおよび内部トランザクションのハッシュに対する署名が格納されます。
{% /admonition %}
## バッチのフラグ
`Batch`タイプのトランザクションは、[`Flags`フィールド](../common-fields.md#flags-field)に追加の値をサポートしており、以下のとおりです。
| フラグ名 | 16進数値 | 10進数値 | 説明 |
| :--------------- | :--------- | :------- | :--------------------------------- |
| `tfAllOrNothing` | `0x00010000` | 65536 | すべてのトランザクションが成功しなければ、バッチ全体が失敗します。 |
| `tfOnlyOne` | `0x00020000` | 131072 | 最初に成功したトランザクションのみ適用され、それ以降はすべて失敗またはスキップされます。 |
| `tfUntilFailure` | `0x00040000` | 262144 | 最初の失敗が発生するまで、すべてのトランザクションが順に適用されます。失敗以降のトランザクションはスキップされます。 |
| `tfIndependent` | `0x00080000` | 524288 | 各トランザクションは、成功・失敗に関係なくすべて適用されます。 |
トランザクションは`tesSUCCESS`を結果として返す場合、成功とみなされます。
## エラーケース
| エラーコード | 説明 |
|:--------------------------|:--------------------------------------------------|
| `temINVALID_INNER_BATCH` | 内部トランザクションの形式が不正です。 |
| `temSEQ_AND_TICKET` | トランザクションに`TicketSequence`フィールドと、0以外の`Sequence`フィールドの両方が含まれています。両方を同時に指定することはできませんが、いずれか一方は必須です。 |
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -29,7 +29,7 @@ _[Checks Amendment][]が必要です_
| フィールド | JSONの型 | [内部の型][] | 説明 |
|:------------|:----------|:------------------|:-------------------------------|
| `CheckID` | 文字列 | Hash256 | 取り消す[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID64文字の16進文字列。 |
| `CheckID` | 文字列 | UInt256 | 取り消す[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID64文字の16進文字列。 |
## エラーケース

View File

@@ -32,7 +32,7 @@ Checkに相当する資金があるとは保証されないため、送金元に
| フィールド | JSONの型 | [内部の型][] | 説明 |
|:-------------|:--------------------|:------------------|:--------------------|
| `CheckID` | 文字列 | Hash256 | 換金する[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID64文字の16進文字列。 |
| `CheckID` | 文字列 | UInt256 | 換金する[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID64文字の16進文字列。 |
| `Amount` | [通貨額][] | Amount | _省略可_ 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 |
| `DeliverMin` | [通貨額][] | Amount | _省略可_ Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 |

View File

@@ -37,7 +37,7 @@ _[Checks Amendment][]が必要です_
| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額XRP以外の通貨の[送金手数料](../../../../concepts/tokens/transfer-fees.md)を含む。Checkは同一通貨の送金先にのみ入金可能ですXRP以外の通貨の場合は同一イシュアーから。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 |
| `DestinationTag` | 数値 | UInt32 | _省略可_ Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 |
| `Expiration` | 数値 | UInt32 | _省略可_ Checkが無効になる時刻[Rippleエポック以降の経過秒数][])。 |
| `InvoiceID` | 文字列 | Hash256 | _省略可_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 |
| `InvoiceID` | 文字列 | UInt256 | _省略可_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 |
## エラーケース

View File

@@ -58,9 +58,9 @@ DepositPreauthトランザクションは、あなたのアカウントへの支
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
| :----------------------- | :-------------------- | :----------- | :----- | ---- |
| `Authorize` | 文字列 - [アドレス][] | AccountID | いいえ | 事前承認するアカウント。 |
| `AuthorizeCredentials` | 配列 | STArray | いいえ | 承認する資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ |
| `AuthorizeCredentials` | 配列 | Array | いいえ | 承認する資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ |
| `Unauthorize` | 文字列 | AccountID | いいえ | 事前承認を取り消すアカウント。 |
| `UnauthorizeCredentials` | 配列 | STArray | いいえ | 事前承認を取り消す資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ |
| `UnauthorizeCredentials` | 配列 | Array | いいえ | 事前承認を取り消す資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ |
`Authorize`, `AuthorizeCredentials`, `Unauthorize`, or `UnauthorizeCredentials`の**いずれか**を提供する必要があります。

View File

@@ -76,8 +76,8 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_
| フィールド | JSONの型 | [内部の型][] | 説明 |
|:-------------------|:--------------------|:------------------|:--------------|
| `NFTokenSellOffer` | 文字列 | Hash256 | _(省略可)_ `NFToken`の売却を提案する`NFTokenOffer`の識別情報です。 |
| `NFTokenBuyOffer` | 文字列 | Hash256 | _(省略可)_ `NFToken`の購入を提案する`NFTokenOffer`の識別情報です。 |
| `NFTokenSellOffer` | 文字列 | UInt256 | _(省略可)_ `NFToken`の売却を提案する`NFTokenOffer`の識別情報です。 |
| `NFTokenBuyOffer` | 文字列 | UInt256 | _(省略可)_ `NFToken`の購入を提案する`NFTokenOffer`の識別情報です。 |
| `NFTokenBrokerFee` | [通貨額][] | Amount | _(省略可)_ このフィールドはブローカーモードでのみ有効であり、2つのオファーをまとめるための手数料としてブローカーが保持する金額を指定します。残りの金額は`NFToken`の販売者に送られます。指定する場合、発行者が課す送金手数料を考慮する前に、販売者が受け取る金額が少なくとも売却オファーで示された金額になるように手数料を設定しなければなりません。 |
ダイレクトモードでは、`NFTokenSellOffer`または`NFTokenBuyOffer`フィールドの**いずれか**を指定する必要があります。ブローカーモードでは、**両方**のフィールドを指定する必要があります。

View File

@@ -33,7 +33,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_
| フィールド | JSONの型 | [内部の型][] | 説明 |
|:------------------|:----------|:------------------|:-------------------------|
| `NFTokenID` | 文字列 | Hash256 | このトランザクションによって削除される`NFToken`を指定します。 |
| `NFTokenID` | 文字列 | UInt256 | このトランザクションによって削除される`NFToken`を指定します。 |
| `Owner` | 文字列 | AccountID | _(省略可)_ Burnする`NFToken`の所有者。所有者がこのトランザクションを送信するアカウントと異なる場合にのみ使用されます。発行者または許可された発行者は、`lsfBurnable`フラグが有効なNFTをBurnするために、このフィールドを使用することができます。 |

View File

@@ -33,7 +33,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_
| フィールド | JSONの型 | [内部の型][] | 説明 |
|:--------------|:--------------------|:------------------|:-------------------|
| `Owner` | 文字列 | AccountID | _(省略可)_ 対応する`NFToken`の所有者を指定します。トークンの購入オファーである場合、このフィールドは必ず存在し、`Account`フィールドとは異なるものでなければなりません(すでに保有しているトークンの購入オファーは無意味)。トークンの売却オファーである場合、このフィールドは存在してはいけません。所有者は暗黙のうちに`Account`と同じになるからです(すでに保有していないトークンを売却するオファーは無意味)。 |
| `NFTokenID` | 文字列 | Hash256 | オファーが参照する`NFToken`オブジェクトを指定します。 |
| `NFTokenID` | 文字列 | UInt256 | オファーが参照する`NFToken`オブジェクトを指定します。 |
| `Amount` | [通貨額][] | Amount | 対応する`NFToken`に対する売却希望額または売却提示額を表します。0を指定することは、トークンの現在の所有者が、誰でも、または`Destination`フィールドで指定されたアカウントに、トークンを無償で譲渡することを意味します。 |
| `Expiration` | 数値 | UInt32 | _(省略可)_ オファーが無効となる時間を指定します。値は[Rippleエポック以降の経過秒数][]です。 |
| `Destination` | 文字列 | AccountID | _(省略可)_ 存在する場合、このオファーは指定されたアカウントによってのみ受け入れることが可能であることを示します。他のアカウントによってこのオファーを受け入れることはできません。 |

View File

@@ -33,7 +33,7 @@ title:
| `TransactionType` | 文字列 | UINT16 | `NFTokenModify` |
| `Account` | 文字列 | AccountID | NFTの発行者または許可されたアカウントの一意のアドレス。 |
| `Owner` | 文字列 | AccountID | _(任意)_ NFTの所有者のアドレス。`Account``Owner`が同じアドレスの場合、このフィールドは省略します。 |
| `NFTokenID` | 文字列 | Hash256 | NFTを識別する一意のID。 |
| `NFTokenID` | 文字列 | UInt256 | NFTを識別する一意のID。 |
| `URI` | 文字列 | Blob | _(任意)_ 最大256バイトの任意のデータ。JSONでは、16進数の文字列としてエンコードされます。[`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex)ユーティリティメソッドを使用してURIを16進数に変換できます。これは、NFTに関連するデータまたはメタデータを指すURIです。URIはHTTPまたはHTTPS URL、IPFS URI、マグネットリンク、[RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397)としてエンコードされた即値データ、または発行者固有のエンコードをデコードできます。URIは検証されません。URIを指定しない場合、既存のURIは削除されます。 |
## エラーケース

View File

@@ -46,7 +46,7 @@ Paymentは、[アカウントを作成](#アカウントの作成)する唯一
| `DeliverMin` | [通貨額][] | Amount | _省略可_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](../../../../concepts/payment-types/partial-payments.md)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 |
| `Destination` | 文字列 | AccountID | 支払いを受取るアカウントの一意アドレス。 |
| `DestinationTag` | 数値 | UInt32 | _省略可_ 宛先(支払先となる、ホスティングされている受取人)への支払い理由を明確にするための任意のタグ。 |
| `InvoiceID` | 文字列 | Hash256 | _省略可_ この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 |
| `InvoiceID` | 文字列 | UInt256 | _省略可_ この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 |
| `Paths` | パス配列の配列 | PathSet | (省略可。自動入力可能)このトランザクションに使用される[支払いパス](../../../../concepts/tokens/fungible-tokens/paths.md)の配列。XRP間のトランザクションでは省略する必要があります。 |
| `SendMax` | [通貨額][] | Amount | _省略可_ [送金手数料](../../../../concepts/tokens/transfer-fees.md)、為替レート、[スリッページ](http://en.wikipedia.org/wiki/Slippage_%28finance%29)を含め、このトランザクションに関して支払い元通貨での負担を許容する上限額。[トランザクションの送信コストとしてバーンされるXRP](../../../../concepts/transactions/transaction-cost.md)は含めないでください。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。クロスカレンシー支払いまたは複数のトークンを伴う支払いについては、このフィールドを入力する必要があります。XRP間の支払いでは省略する必要があります。 |

View File

@@ -52,7 +52,7 @@ Channelの**宛先アドレス**は以下の操作を実行できます。
| :-------------- | :----------- | :----------- | :----- | ---- |
| `Amount` | 文字列 | Amount | いいえ | `Signature`により承認された[XRP、drop単位][通貨額]の額。これは、署名済みメッセージの額に一致している必要があります。これは、Channelが利用できるXRPの累計額であり、以前に精算されたXRPを含みます。 |
| `Balance` | 文字列 | Amount | いいえ | このクレームの処理後にこのChannelから送金される[XRP、drop単位][通貨額]。XRPを送金する場合に必須です。Channelからこれまでに送金された総額よりも大きく、署名済みクレームの`Amount`よりも少ない額である必要があります。Channelを閉鎖する場合を除き、指定する必要があります。 |
| `Channel` | 文字列 | Hash256 | はい | Channelの一意のID(64文字の16進文字列) |
| `Channel` | 文字列 | UInt256 | はい | Channelの一意のID(64文字の16進文字列) |
| `CredentialIDs` | 文字列の配列 | Vector256 | いいえ | このトランザクションによる入金を承認するための資格情報のセット。配列の各要素は、レジャーのCredentialエントリのレジャエントリIDでなければなりません。詳細は、[Credential ID](./payment.md#credential-id)をご覧ください。 |
| `PublicKey` | 文字列 | Blob | いいえ | 署名に使用する公開鍵(16進数)。公開鍵はレジャーに保管されているこのChannelの`PublicKey`と一致している必要があります。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。また`Signature`フィールドは省略されます。(`rippled`がトランザクションをレジャーに適用する前に署名の有効性をチェックできるように、トランザクションにPubKeyが指定されています。) |
| `Signature` | 文字列 | Blob | いいえ | クレームの署名(16進数)。署名付きメッセージには、Channel IDとクレームの額が含まれています。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。 |

View File

@@ -30,7 +30,7 @@ PaymentChannelFundの例:
| フィールド | JSONの型 | [内部の型][] | 説明 |
|:-------------|:----------|:------------------|:------------------------------|
| `Channel` | 文字列 | Hash256 | 資金供給するChannelの一意のID64文字の16進文字列。 |
| `Channel` | 文字列 | UInt256 | 資金供給するChannelの一意のID64文字の16進文字列。 |
| `Amount` | 文字列 | Amount | Channelに追加する[XRP、drop単位][通貨額]の正の額。 |
| `Expiration` | 数値 | UInt32 | _省略可_ Channelに新たに設定する`Expiration`の時刻Rippleエポック以降の経過秒数。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](../../ledger-data/ledger-entry-types/paychannel.md)をご覧ください。 |

View File

@@ -178,10 +178,10 @@ Automated Market Makers: 自動マーケットメイカー
Smart contracts to provide liquidity and earn passive income from facilitating currency exchange, complementary with the order-book DEX already built into the XRPL.: XRPLに組み込み済みのオーダーブックDEXと相互に補完する、流動性を提供し、通貨交換を促進することで受動的な収入を得るためのスマートコントラクト。
Enabled: 利用可能
Non-Fungible Tokens: 非代替性トークン
# Join the Community: XRPL.orgの
# at XRPL.org: コミュニティに参加
"Join the Community ": XRPL.orgの
" at XRPL.org": コミュニティに参加
'Connect at XRPL.org, a community by and for the developers ': XRPL.orgは、XRPLを利用する開発者と
' and entrepeneurs who rely on the XRPL.': 起業家のためのコミュニティです。
' and entrepreneurs who rely on the XRPL.': 起業家のためのコミュニティです。
Get Involved: 参加する
# about/index.page.tsx
@@ -571,7 +571,17 @@ Showcase your blockchain project, application, or product: あなたのブロッ
Get featured on the Developer Reflections blog or Ecosystem page, and amplify your innovation within the blockchain community.: 開発者向けブログやエコシステムのページで紹介され、ブロックチェーンコミュニティ内でのイノベーションを広めましょう。
Submit Your Projects: プロジェクトを登録
# TODO: translate project-cards
View Projects: プロジェクトを見る
RippleX Bug Bounty Program: RippleXのバグ報奨金プログラム
community.index.security.subtitle-1: XRP Ledgerのセキュリティへの
community.index.security.subtitle-2: 貢献
RippleXs Bug Bounty, part of Ripple's 1 Billion XRP pledge, strengthens XRP Ledger security and supports its ecosystem.: RippleXのバグ報奨金は、Rippleの10億XRPの誓約の一環で、XRP Ledgerのセキュリティを強化し、そのエコシステムをサポートします。
community.index.security.description-1: このプログラムを利用して RippleX/rippled のバグを報告してください。該当するバグの詳細なレポートを
community.index.security.description-2: 宛に送信し、
community.index.security.description-3: 公開鍵
community.index.security.description-4: を使用してください。
Report a Scam: 詐欺の報告
Report Scams to Safeguard Our Community: コミュニティの安全のため、詐欺情報を報告してください
In an evolving industry where trust and security are critical, scams continue to impede progress in crypto and blockchain. Help mitigate scammers by reporting scams.: 信頼とセキュリティが極めて重要な進化を続ける業界において、詐欺行為は暗号資産やブロックチェーン技術の発展を妨げ続けています。被害を軽減するため、詐欺行為の報告にご協力ください。
Contribute to Consensus: コンセンサスへの貢献
Run an XRP Ledger network node: XRP Ledgerのードを実行する
Thank you for your interest in contributing to XRP Ledger.: XRP Ledgerへの貢献に興味がありますか

View File

@@ -56,7 +56,7 @@ const main = async () => {
const accountData = prepareAccountData(accountInfoResponse.result.account_data)
appWindow.webContents.send('update-account-data', accountData)
const transactions = prepareTxData([{tx: transaction.transaction}])
const transactions = prepareTxData([transaction])
appWindow.webContents.send('update-transaction-data', transactions)
})

View File

@@ -8,12 +8,12 @@ const prepareTxData = (transactions) => {
}
return {
confirmed: transaction.tx.date,
type: transaction.tx.TransactionType,
from: transaction.tx.Account,
to: transaction.tx.Destination ?? "-",
confirmed: transaction.close_time_iso,
type: transaction.tx_json.TransactionType,
from: transaction.tx_json.Account,
to: transaction.tx_json.Destination ?? "-",
value: tx_value,
hash: transaction.tx.hash
hash: transaction.hash
}
})
}

View File

@@ -68,7 +68,7 @@ const subscribe = async (client, wallet, appWindow) => {
const accountData = prepareAccountData(accountInfoResponse.result.account_data)
appWindow.webContents.send('update-account-data', accountData)
const transactions = prepareTxData([{tx: transaction.transaction}])
const transactions = prepareTxData([transaction])
appWindow.webContents.send('update-transaction-data', transactions)
})
}

View File

@@ -99,9 +99,9 @@ async function verify(accountAddress, client) {
try {
const response = await client.request(request)
return await checkDestination(response.result.account_data)
} catch {
} catch (err) {
return {
domain: 'domain',
domain: '',
verified: false
}
}

View File

@@ -15,14 +15,14 @@
},
"dependencies": {
"async": "^3.2.4",
"fernet": "^0.4.0",
"fernet": "=0.3.3",
"node-fetch": "^2.6.9",
"pbkdf2-hmac": "^1.1.0",
"open": "^8.4.0",
"toml": "^3.0.0",
"xrpl": "^4.0.0"
"xrpl": "^4.3.0"
},
"devDependencies": {
"electron": "22.3.25"
"electron": "28.3.2"
}
}

View File

@@ -1,6 +1,6 @@
/*
* Create, claim and verify a Payment Channel.
* Reference: https://xrpl.org/paychannel.html
* Reference: https://xrpl.org/docs/references/protocol/ledger-data/ledger-entry-types/paychannel
*/
import {
AccountObjectsRequest,
@@ -12,13 +12,11 @@ import {
const client = new Client('wss://s.altnet.rippletest.net:51233')
void claimPayChannel()
// The snippet walks us through creating and claiming a Payment Channel.
async function claimPayChannel(): Promise<void> {
await client.connect()
// creating wallets as prerequisite
// Creating wallets as prerequisite
const { wallet: wallet1 } = await client.fundWallet()
const { wallet: wallet2 } = await client.fundWallet()
@@ -26,13 +24,13 @@ async function claimPayChannel(): Promise<void> {
console.log(`Balance of ${wallet1.address} is ${await client.getXrpBalance(wallet1.address)} XRP`)
console.log(`Balance of ${wallet2.address} is ${await client.getXrpBalance(wallet2.address)} XRP`)
// create a Payment Channel and submit and wait for tx to be validated
// Create a Payment Channel and submit and wait for tx to be validated
const paymentChannelCreate: PaymentChannelCreate = {
TransactionType: 'PaymentChannelCreate',
Account: wallet1.classicAddress,
Amount: '100',
Amount: '100', // 10 XRP
Destination: wallet2.classicAddress,
SettleDelay: 86400,
SettleDelay: 86400, // 1 day in seconds
PublicKey: wallet1.publicKey,
}
@@ -44,7 +42,7 @@ async function claimPayChannel(): Promise<void> {
console.log("PaymentChannelCreate transaction response:")
console.log(paymentChannelResponse)
// check that the object was actually created
// Check that the object was actually created
const accountObjectsRequest: AccountObjectsRequest = {
command: 'account_objects',
account: wallet1.classicAddress,
@@ -52,25 +50,23 @@ async function claimPayChannel(): Promise<void> {
const accountObjects = (await client.request(accountObjectsRequest)).result
.account_objects
console.log("Account Objects:", accountObjects)
// destination claims the Payment Channel and we see the balances to verify.
// Destination claims the Payment Channel and we see the balances to verify.
const paymentChannelClaim: PaymentChannelClaim = {
Account: wallet2.classicAddress,
TransactionType: 'PaymentChannelClaim',
Channel: hashes.hashPaymentChannel(
wallet1.classicAddress,
wallet2.classicAddress,
paymentChannelResponse.result.Sequence ?? 0,
paymentChannelResponse.result.tx_json.Sequence ?? 0,
),
Amount: '100',
}
console.log("Submitting a PaymentChannelClaim transaction...")
const channelClaimResponse = await client.submit(paymentChannelClaim, {
wallet: wallet1,
wallet: wallet2,
})
console.log("PaymentChannelClaim transaction response:")
console.log(channelClaimResponse)
@@ -81,3 +77,5 @@ async function claimPayChannel(): Promise<void> {
await client.disconnect()
}
void claimPayChannel()

View File

@@ -0,0 +1,85 @@
"""
Create, claim and verify a Payment Channel.
Reference: https://xrpl.org/docs/references/protocol/ledger-data/ledger-entry-types/paychannel
"""
from xrpl.clients import JsonRpcClient
from xrpl.models import (
AccountObjects,
PaymentChannelCreate,
PaymentChannelClaim,
)
from xrpl.wallet import generate_faucet_wallet
from xrpl.transaction import submit, submit_and_wait
from xrpl.account import get_balance
"""The snippet walks us through creating and claiming a Payment Channel."""
client = JsonRpcClient("https://s.altnet.rippletest.net:51234")
# Creating wallets as prerequisite
print("Setting up wallets...")
wallet1 = generate_faucet_wallet(client)
wallet2 = generate_faucet_wallet(client)
print("Balances of wallets before Payment Channel is claimed:")
print(f"Balance of {wallet1.address} is {get_balance(wallet1.address, client)} XRP")
print(f"Balance of {wallet2.address} is {get_balance(wallet2.address, client)} XRP")
# Create a Payment Channel and submit and wait for tx to be validated
payment_channel_create = PaymentChannelCreate(
account=wallet1.address,
amount="100", # 10 XRP
destination=wallet2.address,
settle_delay=86400, # 1 day in seconds
public_key=wallet1.public_key,
)
print("\nSubmitting a PaymentChannelCreate transaction...")
payment_channel_response = submit_and_wait(
payment_channel_create,
client,
wallet1
)
print("PaymentChannelCreate transaction response:")
print(payment_channel_response.result)
# Check that the object was actually created
account_objects_request = AccountObjects(
account=wallet1.address,
)
account_objects_response = client.request(account_objects_request)
account_objects = account_objects_response.result["account_objects"]
# Find the PayChannel object to get the correct channel ID
channel_id = None
if 'meta' in payment_channel_response.result and 'AffectedNodes' in payment_channel_response.result['meta']:
for node in payment_channel_response.result["meta"]["AffectedNodes"]:
if 'CreatedNode' in node and node["CreatedNode"]["LedgerEntryType"] == 'PayChannel':
channel_id = node['CreatedNode']['LedgerIndex']
break
if not channel_id:
raise Exception("Payment Channel ID not found in the response.")
print(f"Payment Channel ID: {channel_id}")
# Destination claims the Payment Channel and we see the balances to verify.
payment_channel_claim = PaymentChannelClaim(
account=wallet2.address,
channel=channel_id,
amount="100",
)
print("\nSubmitting a PaymentChannelClaim transaction...")
channel_claim_response = submit_and_wait(
payment_channel_claim,
client,
wallet2,
)
print("PaymentChannelClaim transaction response:")
print(channel_claim_response.result)
print("Balances of wallets after Payment Channel is claimed:")
print(f"Balance of {wallet1.address} is {get_balance(wallet1.address, client)} XRP")
print(f"Balance of {wallet2.address} is {get_balance(wallet2.address, client)} XRP")

View File

@@ -14,15 +14,6 @@ const seed = "sEd7jfWyNG6J71dEojB3W9YdHp2KCjy";
async function main() {
try {
// Construct condition and fulfillment ------------------------------------
const preimageData = crypto.randomBytes(32);
const myFulfillment = new cc.PreimageSha256();
myFulfillment.setPreimage(preimageData);
const conditionHex = myFulfillment.getConditionBinary().toString('hex').toUpperCase();
console.log('Condition:', conditionHex);
console.log('Fulfillment:', myFulfillment.serializeBinary().toString('hex').toUpperCase());
// Connect ----------------------------------------------------------------
const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233');
await client.connect();
@@ -37,16 +28,26 @@ async function main() {
finishAfter = new Date(finishAfter * 1000);
console.log("This escrow will finish after: ", finishAfter);
// Construct condition and fulfillment ------------------------------------
const preimageData = crypto.randomBytes(32);
const myFulfillment = new cc.PreimageSha256();
myFulfillment.setPreimage(preimageData);
const conditionHex = myFulfillment.getConditionBinary().toString('hex').toUpperCase();
console.log('Condition:', conditionHex);
console.log('Fulfillment:', myFulfillment.serializeBinary().toString('hex').toUpperCase());
// Prepare EscrowCreate transaction ------------------------------------
const escrowCreateTransaction = {
"TransactionType": "EscrowCreate",
"Account": wallet.address,
"Destination": wallet.address,
"Amount": "6000000", //drops XRP
"DestinationTag": 2023,
"Condition": conditionHex,
"Condition": conditionHex, // Omit this for time-held escrows
"Fee": "12",
"FinishAfter": xrpl.isoTimeToRippleTime(finishAfter.toISOString()),
};
};
xrpl.validate(escrowCreateTransaction);
@@ -54,7 +55,7 @@ async function main() {
console.log('Signing and submitting the transaction:',
JSON.stringify(escrowCreateTransaction, null, "\t"), "\n"
);
const response = await client.submitAndWait(escrowCreateTransaction, { wallet });
const response = await client.submitAndWait(escrowCreateTransaction, { wallet });
console.log(`Sequence number: ${response.result.tx_json.Sequence}`);
console.log(`Finished submitting! ${JSON.stringify(response.result, null, "\t")}`);

View File

@@ -28,15 +28,18 @@ const main = async () => {
throw new Error("Please specify the sequence number, condition and fulfillment of the escrow you created");
};
// Prepare EscrowFinish transaction ---------------------------------
const escrowFinishTransaction = {
"Account": wallet.address,
"TransactionType": "EscrowFinish",
"Owner": wallet.address,
// This should equal the sequence number of the escrow transaction
"OfferSequence": offerSequence,
// Crypto condition that must be met before escrow can be completed, passed on escrow creation
// Crypto condition that must be met before escrow can be completed, passed on escrow creation.
// Omit this for time-held escrows.
"Condition": condition,
// Fulfillment of the condition, passed on escrow creation
// Fulfillment of the condition, passed on escrow creation.
// Omit this for time-held escrows.
"Fulfillment": fulfillment,
};

View File

@@ -14,7 +14,11 @@ escrow_sequence = 30215126
sender_wallet = generate_faucet_wallet(client=client)
# Build escrow cancel transaction
cancel_txn = EscrowCancel(account=sender_wallet.address, owner=sender_wallet.address, offer_sequence=escrow_sequence)
cancel_txn = EscrowCancel(
account=sender_wallet.address,
owner=sender_wallet.address,
offer_sequence=escrow_sequence
)
# Autofill, sign, then submit transaction and wait for result
stxn_response = submit_and_wait(cancel_txn, client, sender_wallet)

View File

@@ -34,7 +34,8 @@ create_txn = EscrowCreate(
destination=receiver_addr,
finish_after=claim_date,
cancel_after=expiry_date,
condition=condition)
condition=condition # Omit this for time-held escrows
)
# Autofill, sign, then submit transaction and wait for result
stxn_response = submit_and_wait(create_txn, client, sender_wallet)

View File

@@ -25,7 +25,13 @@ fulfillment = "A0228020AED2C5FE4D147D310D3CFEBD9BFA81AD0F63CE1ADD92E00379DDDAF8E
sender_wallet = generate_faucet_wallet(client=client)
# Build escrow finish transaction
finish_txn = EscrowFinish(account=sender_wallet.address, owner=escrow_creator, offer_sequence=escrow_sequence, condition=condition, fulfillment=fulfillment)
finish_txn = EscrowFinish(
account=sender_wallet.address,
owner=escrow_creator,
offer_sequence=escrow_sequence, # The sequence number of the escrow transaction
condition=condition, # Omit this for time-held escrows
fulfillment=fulfillment # Omit this for time-held escrows
)
# Autofill, sign, then submit transaction and wait for result
stxn_response = submit_and_wait(finish_txn, client, sender_wallet)

View File

@@ -22,6 +22,7 @@ async function multisigning(): Promise<void> {
const { wallet: wallet1 } = await client.fundWallet()
const { wallet: wallet2 } = await client.fundWallet()
const { wallet: walletMaster } = await client.fundWallet()
const signerListSet: SignerListSet = {
TransactionType: 'SignerListSet',
Account: walletMaster.classicAddress,
@@ -56,9 +57,14 @@ async function multisigning(): Promise<void> {
const accountSetTx = await client.autofill(accountSet, 2)
console.log('AccountSet transaction is ready to be multisigned:')
console.log(accountSetTx)
const { tx_blob: tx_blob1 } = wallet1.sign(accountSetTx, true)
const { tx_blob: tx_blob2 } = wallet2.sign(accountSetTx, true)
const multisignedTx = multisign([tx_blob1, tx_blob2])
console.log("Successfully multisigned the transaction")
console.log(multisignedTx)
const submitResponse = await client.submit(multisignedTx)
if (submitResponse.result.engine_result === 'tesSUCCESS') {
@@ -79,4 +85,4 @@ async function multisigning(): Promise<void> {
await client.disconnect()
}
void multisigning()
void multisigning()

View File

@@ -2,7 +2,7 @@
* Extract best paths from RipplePathFind to trade with and send a payment using paths.
* Reference: https://xrpl.org/paths.html
*/
import { Client, Payment, RipplePathFindResponse } from 'xrpl'
import { Client, Payment, RipplePathFindResponse, RipplePathFindRequest } from 'xrpl'
const client = new Client('wss://s.altnet.rippletest.net:51233')
@@ -17,7 +17,7 @@ async function createTxWithPaths(): Promise<void> {
issuer: 'rVnYNK9yuxBz4uP8zC8LEFokM2nqH3poc',
}
const request = {
const request: RipplePathFindRequest = {
command: 'ripple_path_find',
source_account: wallet.classicAddress,
source_currencies: [

View File

@@ -27,8 +27,9 @@ const softwallets = [
alt: "Gatehub",
imgclasses: "invertible-img",
},
{ href: "https://gemwallet.com/", id: "wallet-gem", alt: "Gem Wallet" },
{ href: "https://gemwallet.app/", id: "wallet-gem", alt: "Gem Wallet" },
{ href: "https://coin.space/", id: "wallet-coin", alt: "Coin Space" },
{ href: "https://crossmark.io/", id: "wallet-crossmark", alt: "Crossmark Wallet" },
];
const hardwallets = [

View File

@@ -0,0 +1,79 @@
---
category: 2025
date: "2025-07-23"
template: '../../@theme/templates/blogpost'
seo:
description: Learn how Frii Pay built a crypto payment solution on the XRP Ledger (XRPL). This case study details their journey, technical integration, and market impact.
labels:
- Case Study
markdown:
editPage:
hide: true
---
# Frii Pay & XRPL: Next-Gen Crypto Payment Solution
One of the promising players leveraging XRPL's payment capabilities is [Frii Pay](https://friipay.io/) — a crypto-native payment solution, focused on widening access to low-cost, [real-time digital payments](/docs/use-cases/payments) at point of sale, and introducing the benefits of blockchain finance to mainstream businesses and consumers alike.
This case study explores how Frii Pay utilizes XRPL technology, its value proposition, and the business interest and traction it has achieved, serving as a model for payment businesses building on the XRP Ledger (XRPL).
<!-- BREAK -->
<iframe width="560" height="315" src="https://www.youtube.com/embed/qEcuJCB1tXI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## How Frii Pay Utilizes XRPL Technology for Payments
Frii Pays core infrastructure is purpose-built on the XRP Ledger, leveraging its decentralized, fast, and scalable blockchain environment to deliver seamless payment experiences.
### Key ways Frii Pay leverages XRPL
* **[Stablecoin Payments](/docs/use-cases/tokenization/stablecoin-issuer)**: Frii Pay issues and supports [multiple stablecoins](https://ripple.com/insights/the-rise-of-global-stablecoins-on-the-xrpl/) (e.g. RLUSD) directly on the XRPL, ensuring price-stable crypto payments while maintaining high transaction speed and low fees.
* **Instant Settlement Layer**: Utilizing XRPL's average settlement time of 3-5 seconds, Frii Pay enables real-time cross-border and domestic payments without intermediaries.
* **On-Ledger Tokenization**: Frii Pay uses [XRPLs native tokenization features](/docs/use-cases/tokenization/real-world-assets) to issue coupons and loyalty rewards in the form of merchant-specific tokens or digital money, creating new and engaging consumer interactions by unlocking the programmable finance capabilities of the XRPL.
* **Real-time Currency Conversion**: Frii Pay utilizes the XRPLs [Decentralized Exchange (DEX)](/docs/concepts/tokens/decentralized-exchange) to enable consumers to pay using any tradable currency in their wallet, while ensuring the merchant receives the exact currency and amount they have requested.
* **Compliance**: Frii Pays architecture incorporates XRPLs compliance-ready infrastructure, facilitating KYC/AML-integrated payment rails that can interact with traditional financial systems to on and off ramp funds for all users.
## Benefits of XRPL for Payment Companies like Frii Pay
Frii Pays value proposition revolves around providing frictionless, stable, and cost-effective payment infrastructure to businesses, powered by XRPL.
In addition, the application leverages consumer spending data with the real-time, cross-border capabilities of XRPL to introduce new and interesting payment experiences that benefit merchants, consumers, and even brands.
Imagine spending $100 on a meal and having your $10 loyalty discount sent instantly to a wallet on the other side of the world to pay for a gift, medical treatment, or education.
### How XRPL Adds Value to Frii Pays Crypto Payment Solution
Frii Pay abstracts blockchain complexity for businesses by providing merchant SDKs, customer-facing wallets, payment APIs, settlement & reconciliation dashboards. This allows merchants to accept crypto payments without technical blockchain expertise while tapping into XRPLs efficiency. They have also expanded their solution to support payments online and via unattended kiosks.
## Frii Pay's Business Traction and Impact with XRPL
Since the launch of its XRPL-based payment ecosystem, Frii Pay has achieved significant traction.
Key results of the partnership include:
* **Payment Terminal Compatibility**: Frii Pay has developed its terminal software to be compatible with **50+ million existing card payment terminals worldwide**.
* **Merchants & Acquiring Bank Relationships**: Frii Pay has established relationships with a number of acquiring banks covering the UK and Europe to offer crypto acceptance, digital loyalty and digital couponing on XRPL alongside traditional card payments through existing POS terminals.
* **Merchant Network**: In the UK, Frii Pay has established a **network of over 900 merchants** who can accept crypto payments once regulation allows.
* **Consumer Engagement**: Frii Pay has initiated a program to educate **250 million university students worldwide** on using digital wallets and digital currencies.
* **Student POC Deployment**: Frii Pay has successfully launched a Proof-of-Concept (POC) with The University of Birmingham, providing students with a free mobile wallet powered by XRPL, offering coupons for free products, and loyalty discounts at merchants in and around the university campus. The service received **100% uptake** by their pilot cohort, who have been providing feedback to refine the solution and will open up to all **40,000 students** in the 2024-2025 academic year.
* **Merchant & Consumer Early Adopter Feedback Includes**:
* A smooth transaction experience validation only takes 3-5 seconds.
* Interest in new methods to engage with each other, pay, and get paid.
* Enthusiasm for saving and spending in digital assets or other currencies.
* A need for lower transaction fees offered by XRPL compared to card networks.
* Immediate settlement (seconds instead of days).
* Increased customer engagement via loyalty rewards issued on XRPL.
## Driving Innovation in the Crypto Payment Ecosystem
Frii Pay illustrates the real-world use case of XRPL technology in payments. By building an accessible, stablecoin payment infrastructure on XRPL, Frii Pay has addressed the core challenges of legacy payment systems: cost, speed, transparency, and global reach.
To find out more about XRPLs payment capabilities and start building, visit [XRP Ledger Developer Resources](https://xrpl.org/docs).

View File

@@ -6,6 +6,7 @@
- group: '2025'
expanded: false
items:
- page: 2025/frii-pay-xrpl-case-study-crypto-payment-solution.md
- page: 2025/rippled-2.5.0.md
- page: 2025/fixes-enabled-dnfts-expected.md
- page: 2025/clio-2.4.1.md

View File

@@ -828,11 +828,9 @@ const CommunityPage: React.FC = () => {
{translate("RippleX Bug Bounty Program")}
</h6>
<h6 className="card-subtitle">
{translate(
"Contribute to the XRP Ledger's"
)}
{translate("community.index.security.subtitle-1", "Contribute to the XRP Ledger's")}
<br/>
Security
{translate("community.index.security.subtitle-2", "Security")}
</h6>
<p className="card-description">
{translate(
@@ -840,13 +838,16 @@ const CommunityPage: React.FC = () => {
)}
<p className="card-description">
{
translate("Use this program to report bugs in RippleX/rippled. Send a detailed report of a qualifying bug to ")
translate("community.index.security.description-1", "Use this program to report bugs in RippleX/rippled. Send a detailed report of a qualifying bug to ")
}
<a href="mailto:bugs@ripple.com">bugs@ripple.com</a>
{
translate("community.index.security.description-2", " and use the ")
}
<a href="https://ripple.com/files/bug-bounty.asc">{translate("community.index.security.description-3", "Public Key.")}</a>
{
translate("community.index.security.description-4", " ")
}
<a href="mailto:bugs@ripple.com">bugs@ripple.com</a>
{
translate(" and use the ")
}
<a href="https://ripple.com/files/bug-bounty.asc">Public Key.</a>
</p>
</p>
<div className="card-links">

View File

@@ -0,0 +1,22 @@
Each member of the `AcceptedCredentials` array is an inner object named `Credential` with the following nested fields:
| Field | JSON Type | [Internal Type][] | Required? | Description |
|:-----------------|:---------------------|:------------------|:----------|--------------|
| `Issuer` | String - [Address][] | AccountID | Yes | The issuer of the credential. |
| `CredentialType` | String | Blob | Yes | The type of credential, as hexadecimal. This is an arbitrary value from 1 to 64 bytes that the issuer sets when they issue a credential. |
{% admonition type="info" name="Note" %}
In the usual JSON format, inner objects are wrapped in an object with one field, whose name defines the inner object type. In this case, the wrapping field is named `Credential`. For example:
```json
"AcceptedCredentials": [
{
"Credential": {
"Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
"CredentialType": "6D795F63726564656E7469616C"
}
},
// ... additional Credential inner objects ...
]
```
{% /admonition %}

View File

@@ -260,6 +260,10 @@
[許可型ドメイン]: /@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md
[PriceOracle amendment]: /resources/known-amendments.md#priceoracle
[MPToken entry]: /docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md
[MPTokenAuthorize transaction]: /docs/references/protocol/transactions/types/mptokenauthorize.md
[MPTokenIssuanceCreate transaction]: /docs/references/protocol/transactions/types/mptokenissuancecreate.md
[MPTokenIssuanceDestroy transaction]: /docs/references/protocol/transactions/types/mptokenissuancedestroy.md
[MPTokenIssuanceSet transaction]: /docs/references/protocol/transactions/types/mptokenissuanceset.md
[MPTokensV1_1 amendment]: /resources/known-amendments.md#priceoracle
[RFC-1751]: https://tools.ietf.org/html/rfc1751
[Reporting Mode]: /docs/concepts/networks-and-servers/rippled-server-modes.md#reporting-mode

View File

@@ -129,7 +129,7 @@ _Figure 7: An XRP Ledger Server Calculates a Ledger Validation — Each server a
Validators each relay their results in the form of a signed message containing the hash of the ledger version they calculated. These messages, called _validations_, allow each server to compare the ledger it computed with those of its peers.
[{% inline-svg file="/docs/img/consensus-declare-validation.svg" /%}](/docs/img/consensus-declare-validation.svg "Figure 8: Ledger is Validated When Supermajority of Peers Calculate the Same Result Result")
[{% inline-svg file="/docs/img/consensus-declare-validation.svg" /%}](/docs/img/consensus-declare-validation.svg "Figure 8: Ledger is Validated When Supermajority of Trusted Validators Calculate the Same Result Result")
_Figure 8: Ledger is Validated When Supermajority of Peers Calculate the Same Result — Each server compares its calculated ledger with the hashes received from its chosen validators. If not in agreement, the server must recalculate or retrieve the correct ledger._

View File

@@ -1,6 +1,4 @@
---
html: clustering.html
parent: networks-and-servers.html
seo:
description: Run rippled servers in a cluster to share the load of cryptography between them.
labels:
@@ -8,13 +6,13 @@ labels:
---
# Clustering
If you are running multiple `rippled` servers in a single datacenter, you can configure those servers into a cluster to maximize efficiency. Running your `rippled` servers in a cluster provides the following benefits:
Clustering is a configuration operation for `rippled` servers that improves efficiency among mutually trusted servers. Clustering should only be used for servers that are located within the same datacenter and are operated by the same organization. Clustering provides the following benefits:
- Clustered `rippled` servers share the work of cryptography. If one server has verified the authenticity of a message, the other servers in the cluster trust it and do not re-verify.
- Clustered servers share the work of cryptography. If one server has verified the authenticity of a message, the other servers in the cluster trust it and do not re-verify.
- Clustered servers share information about peers and API clients that are misbehaving or abusing the network. This makes it harder to attack all servers of the cluster at once.
- Clustered servers always propagate transactions throughout the cluster, even if the transaction does not meet the current load-based transaction fee on some of them.
If you are running a validator as a [private peer](peer-protocol.md#private-peers), Ripple recommends using a cluster of `rippled` servers as proxy servers.
If you are running a validator as a [private peer](peer-protocol.md#private-peers), it's recommended to run a cluster of servers as proxies, since a cluster is more resilient to failure than individual servers.
## See Also

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 192 KiB

View File

@@ -207,14 +207,21 @@ This configuration connects your validator to the network using three [public hu
_**To connect your validator to the network using public hubs:**_
1. In your validator's `rippled.cfg` file, include the following `[ips_fixed]` stanza. The two values, `r.ripple.com 51235`, and `sahyadri.isrdc.in 51235`, are default public hubs. This stanza tells `rippled` to always attempt to maintain peer connections with these public hubs.
1. In your validator's `rippled.cfg` file, include the following `[ips_fixed]` stanza. This stanza tells `rippled` to always attempt to maintain peer connections with these public hubs.
```
[ips_fixed]
r.ripple.com 51235
sahyadri.isrdc.in 51235
hubs.xrpkuwait.com 51235
hub.xrpl-commons.org 51235
```
{% admonition type="info" name="Note" %}
The above list may evolve over time. To ensure you're using the most current set of public hubs, refer to the official [`rippled-example.cfg`](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg) maintained by XRPLF.
{% /admonition %}
{% admonition type="warning" name="Caution" %}This configuration connects your validator to the network using default public hubs. Because these are the _default_ public hubs, they may sometimes be too busy to provide your validator with a connection to the network. To help avoid this issue, connect to more public hubs and, even better, connect to non-default public hubs.{% /admonition %}
You can include the IP addresses of other `rippled` servers here, but _**only**_ if you can expect them to:

View File

@@ -1,371 +1,12 @@
---
html: build-run-rippled-in-reporting-mode.html
parent: install-rippled.html
seo:
description: Build and run a special operating mode of rippled that handles remote procedure calls (RPC) for validated data.
labels:
- Core Server
- Blockchain
top_nav_grouping: Popular Pages
description: Reporting mode was a rippled server build specialized for for API usage. It has been deprecated in favor of the Clio server.
status: removed
---
# Build and Run `rippled` in Reporting Mode
[Reporting mode](../../concepts/networks-and-servers/rippled-server-modes.md) is a mode of the XRP Ledger core server specialized for serving [HTTP and WebSocket APIs](../../references/http-websocket-apis/index.md).
**Reporting mode** was a build option of the `rippled` server, specialized for serving [HTTP and WebSocket APIs](../../references/http-websocket-apis/index.md). It has been removed in favor of the [Clio server](../../concepts/networks-and-servers/the-clio-server.md).
In reporting mode, the server does not connect to the peer-to-peer network. Instead, it uses gRPC to get validated data from one or more trusted servers that are connected to the P2P network.
It can then efficiently handle API calls, reducing the load on `rippled` servers running in P2P mode.
[{% inline-svg file="/docs/img/reporting-mode-basic-architecture.svg" /%}](/docs/img/reporting-mode-basic-architecture.svg "Figure 1: Working of `rippled` in reporting mode")
The reporting mode of `rippled` uses two datastores:
* The primary persistent datastore for `rippled` that includes transaction metadata, account states, and ledger headers. You can use NuDB (included with the source) or [Cassandra](https://cassandra.apache.org/) as the primary persistent datastore. If you use Cassandra, multiple reporting mode servers can share access to data in a single Cassandra instance or cluster.
* [PostgreSQL](https://www.postgresql.org/) database to hold relational data, which is used mainly by [tx method][] and [account_tx method][].
When a reporting mode server receives an API request, it loads the data from these data stores if possible. For requests that require data from the P2P network, the reporting mode forwards the request to a P2P server, and then passes the response back to the client.
Multiple reporting mode servers can share access to the same network accessible databases (PostgreSQL and Cassandra); at any given time, only one reporting mode server writes to the databases, while all the others read from the databases.
## How to Run Reporting Mode
### Prerequisites
1. Ensure that your system meets the [system requirements](system-requirements.md).
{% admonition type="info" name="Note" %}If you choose to use Cassandra as the database, the disk requirements for `rippled` will be lower as the data will not be stored on your local disk. {% /admonition %}
2. You also need to run at least one `rippled` server in P2P mode.
3. A compatible version of CMake must be installed.
4. Install and configure the datastores required to run `rippled` in reporting mode.
1. Install PostgreSQL.
2. Install and configure the database to be used as the primary persistent datastore. You can choose to use Cassandra or NuDB.
3. On macOS, you need to manually install the Cassandra cpp driver. On all other platforms, the Cassandra driver is built as part of the `rippled` build.
```
brew install cassandra-cpp-driver
```
#### Install PostgreSQL
**Install PostgreSQL on Linux**
1. Download and [install PostgreSQL on Linux](https://www.postgresqltutorial.com/install-postgresql-linux/).
2. Connect to the PostgreSQL Database Server using `psql`, and create a user `newuser` and a database `reporting`.
```
psql postgres
CREATE ROLE newuser WITH LOGIN PASSWORD password;
ALTER ROLE newuser CREATEDB;
\q
psql postgres -U newuser
postgres=# create database reporting;
```
**Install PostgreSQL on macOS**
1. Download and install PostgreSQL on macOS.
```
brew install postgres
brew services start postgres
```
2. Connect to the PostgreSQL Database Server using `psql` and create a user `newuser` and a database `reporting`.
```
psql postgres
CREATE ROLE newuser WITH LOGIN PASSWORD password;
ALTER ROLE newuser CREATEDB;
\q
psql postgres -U newuser
postgres=# create database reporting;
```
#### Install and Configure the Primary Persistent Datastore
**Cassandra**
Install Cassandra and then create a keyspace for `rippled`, with replication. <!-- SPELLING_IGNORE: keyspace -->
While a replication factor of 3 is recommended, when running locally, replication is not needed and you can set `replication_factor` to 1.
```
$ cqlsh [host] [port]
> CREATE KEYSPACE `rippled` WITH REPLICATION =
{'class' : 'SimpleStrategy', 'replication_factor' : 1 };
```
**NuDB**
If youre running `rippled` in reporting mode for your local network, you can choose to use NuDB instead of Cassandra as your backend database.
NuDB is installed as part of your `rippled` build setup and does not require any additional installation steps.
### Steps
1. Build `rippled` for reporting mode on [Ubuntu or macOS](https://github.com/XRPLF/rippled/blob/release/BUILD.md).
{% tabs %}
```{% label="Linux" %}
wget https://github.com/Kitware/CMake/releases/download/v3.16.3/cmake-3.16.3-Linux-x86_64.sh
sudo sh cmake-3.16.3-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir
cmake -B build -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel $(nproc)
```
```{% label="macOS" %}
cmake -B build -G "Unix Makefiles" -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel $(nproc)
```
{% /tabs %}
2. Create a configuration file to run `rippled` in reporting mode.
Make a copy of the example config file, `rippled-example.cfg`, and save it as `rippled-reporting-mode.cfg` in a location that enables you to run `rippled` as a non-root user. For example:
```
mkdir -p $HOME/.config/ripple
cp <RIPPLED_SOURCE>/cfg/rippled-example.cfg $HOME/.config/ripple/rippled-reporting-mode.cfg
```
3. Edit rippled-reporting-mode.cfg to set necessary file paths. The user you plan to run `rippled` as must have write permissions to all of the paths you specify here.
1. Set the `[node_db]` path to the location where you want to store the ledger database.
2. Set the `[database_path]` to the location where you want to store other database data. (This includes an SQLite database with configuration data, and is typically one level above the `[node_db]` path field.)
3. Set the `[debug_logfile]` to a path where `rippled` can write logging information.
Note that these are the only configurations required for `rippled` to start up successfully. All other configurations are optional and can be tweaked after you have a working server.
4. Edit the `rippled-reporting-mode.cfg` file to enable reporting mode:
1. Uncomment the `[reporting]` stanza or add a new one:
```
[reporting]
etl_source
read_only=0
```
2. List the `rippled` sources (ETL sources) to extract data from. These `rippled` servers must have gRPC enabled.
NOTE: Only include servers that you trust as reporting mode does not connect to the P2P network and hence cannot verify that the data actually matches the network consensus ledger.
```
[etl_source]
source_grpc_port=50051
source_ws_port=6006
source_ip=127.0.0.1
```
5. Configure the databases
1. Specify the Postgres DB for `[ledger_tx_tables]`:
```
[ledger_tx_tables]
conninfo = postgres://newuser:password@127.0.0.1/reporting
use_tx_tables=1
```
2. Specify the database for `[node_db]`.
{% tabs %}
```{% label="NuDB" %}
[node_db]
type=NuDB
path=/home/ubuntu/ripple/
[ledger_history]
1000000
```
```{% label="Cassandra" %}
[node_db]
type=Cassandra
[ledger_history]
1000000
```
{% /tabs %}
6. Modify the configuration for `rippled` to open up ports.
1. Open the public websocket port:
```
[port_ws_admin_local]
port = 6006
ip = 127.0.0.1
admin = 127.0.0.1
protocol = ws
```
2. Open the gRPC port:
```
[port_grpc]
port = 60051
ip = 0.0.0.0
```
3. Add a secured gateway to the IP of your reporting system:
```
secure_gateway = 127.0.0.1
```
7. Run `rippled` in reporting mode:
```
./rippled --conf /home/ubuntu/.config/ripple/rippled-reporting-example.cfg
```
### What to Expect
Here are the excerpts of what you can expect to see on your terminal.
```text
Loading: "/home/ubuntu/.config/ripple/rippled-reporting-example.cfg"
2021-Dec-09 21:31:52.245577 UTC JobQueue:NFO Using 10 threads
2021-Dec-09 21:31:52.255422 UTC LedgerConsensus:NFO Consensus engine started (cookie: 17859050541656985684)
2021-Dec-09 21:31:52.256542 UTC ReportingETL::ETLSource:NFO Using IP to connect to ETL source: 127.0.0.1:50051
2021-Dec-09 21:31:52.257784 UTC ReportingETL::ETLSource:NFO Made stub for remote = { validated_ledger : , ip : 127.0.0.1 , web socket port : 6006, grpc port : 50051 }
2021-Dec-09 21:31:52.258032 UTC ReportingETL::LoadBalancer:NFO add : added etl source - { validated_ledger : , ip : 127.0.0.1 , web socket port : 6006, grpc port : 50051 }
2021-Dec-09 21:31:52.258327 UTC Application:NFO process starting: rippled-1.8.1+DEBUG
2021-Dec-09 21:31:52.719186 UTC PgPool:DBG max_connections: 18446744073709551615, timeout: 600, connection params: port: 5432, hostaddr: 127.0.0.1, user: newuser, password: *, channel_binding: prefer, dbname: reporting_test_core, host: 127.0.0.1, options: , sslmode: prefer, sslcompression: 0, sslsni: 1, ssl_min_protocol_version: TLSv1.2, gssencmode: prefer, krbsrvname: postgres, target_session_attrs: any
2021-Dec-09 21:31:52.788851 UTC PgPool:NFO server message: NOTICE: relation "version" already exists, skipping
2021-Dec-09 21:31:53.282807 UTC TaggedCache:DBG LedgerCache target size set to 384
2021-Dec-09 21:31:53.282892 UTC TaggedCache:DBG LedgerCache target age set to 240000000000
2021-Dec-09 21:31:53.283741 UTC Amendments:DBG Amendment 98DECF327BF79997AEC178323AD51A830E457BFC6D454DAF3E46E5EC42DC619F (CheckCashMakesTrustLine) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.283836 UTC Amendments:DBG Amendment 157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1 (Checks) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.283917 UTC Amendments:DBG Amendment 1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146 (CryptoConditions) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.283975 UTC Amendments:DBG Amendment 86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 (CryptoConditionsSuite) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284016 UTC Amendments:DBG Amendment 30CD365592B8EE40489BA01AE2F7555CAC9C983145871DC82A42A31CF5BAE7D9 (DeletableAccounts) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284062 UTC Amendments:DBG Amendment F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064 (DepositAuth) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284099 UTC Amendments:DBG Amendment 3CBC5C4E630A1B82380295CDA84B32B49DD066602E74E39B85EF64137FA65194 (DepositPreauth) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284126 UTC Amendments:DBG Amendment DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF (EnforceInvariants) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284153 UTC Amendments:DBG Amendment 07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104 (Escrow) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284189 UTC Amendments:DBG Amendment 42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE (FeeEscalation) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284216 UTC Amendments:DBG Amendment 740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11 (Flow) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284241 UTC Amendments:DBG Amendment 3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC (FlowCross) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284284 UTC Amendments:DBG Amendment AF8DF7465C338AE64B1E937D6C8DA138C0D63AD5134A68792BBBE1F63356C422 (FlowSortStrands) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284337 UTC Amendments:DBG Amendment 1F4AFA8FA1BC8827AD4C0F682C03A8B671DCDF6B5C4DE36D44243A684103EF88 (HardenedValidations) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284412 UTC Amendments:DBG Amendment 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 (MultiSign) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284455 UTC Amendments:DBG Amendment 586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D (MultiSignReserve) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284491 UTC Amendments:DBG Amendment B4E4F5D2D6FB84DF7399960A732309C9FD530EAE5941838160042833625A6076 (NegativeUNL) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284528 UTC Amendments:DBG Amendment 08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647 (PayChan) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284592 UTC Amendments:DBG Amendment 00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC (RequireFullyCanonicalSig) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284649 UTC Amendments:DBG Amendment CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E (SortedDirectories) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284703 UTC Amendments:DBG Amendment 532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164 (TickSize) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284787 UTC Amendments:DBG Amendment 955DF3FA5891195A9DAEFA1DDC6BB244B545DDE1BAA84CBB25D5F12A8DA68A0C (TicketBatch) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284950 UTC Amendments:DBG Amendment 6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC (TrustSetAuth) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.284997 UTC Amendments:DBG Amendment B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD (fix1201) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285025 UTC Amendments:DBG Amendment E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA (fix1368) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285067 UTC Amendments:DBG Amendment 42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC (fix1373) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285103 UTC Amendments:DBG Amendment 6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1 (fix1512) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285129 UTC Amendments:DBG Amendment 67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172 (fix1513) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285153 UTC Amendments:DBG Amendment 5D08145F0A4983F23AFFFF514E83FAD355C5ABFBB6CAB76FB5BC8519FF5F33BE (fix1515) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285176 UTC Amendments:DBG Amendment B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D (fix1523) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285202 UTC Amendments:DBG Amendment 1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454 (fix1528) is supported and will be down voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285256 UTC Amendments:DBG Amendment CA7C02118BA27599528543DFE77BA6838D1B0F43B447D4D7F53523CE6A0E9AC2 (fix1543) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285290 UTC Amendments:DBG Amendment 7117E2EC2DBF119CA55181D69819F1999ECEE1A0225A7FD2B9ED47940968479C (fix1571) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285343 UTC Amendments:DBG Amendment FBD513F1B893AC765B78F250E6FFA6A11B573209D1842ADC787C850696741288 (fix1578) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285381 UTC Amendments:DBG Amendment 58BE9B5968C4DA7C59BA900961828B113E5490699B21877DEF9A31E9D0FE5D5F (fix1623) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285424 UTC Amendments:DBG Amendment 25BA44241B3BD880770BFA4DA21C7180576831855368CBEC6A3154FDE4A7676E (fix1781) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285464 UTC Amendments:DBG Amendment 4F46DF03559967AC60F2EB272FEFE3928A7594A45FF774B87A7E540DB0F8F068 (fixAmendmentMajorityCalc) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285500 UTC Amendments:DBG Amendment 8F81B066ED20DAECA20DF57187767685EEF3980B228E0667A650BAF24426D3B4 (fixCheckThreading) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285527 UTC Amendments:DBG Amendment C4483A1896170C66C098DEA5B0E024309C60DC960DE5F01CD7AF986AA3D9AD37 (fixMasterKeyAsRegularKey) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285550 UTC Amendments:DBG Amendment 621A0B264970359869E3C0363A899909AAB7A887C8B73519E4ECF952D33258A8 (fixPayChanRecipientOwnerDir) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285575 UTC Amendments:DBG Amendment 89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953 (fixQualityUpperBound) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285614 UTC Amendments:DBG Amendment B6B3EEDC0267AB50491FDC450A398AF30DBCD977CECED8BEF2499CAB5DAC19E2 (fixRmSmallIncreasedQOffers) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285651 UTC Amendments:DBG Amendment 452F5906C46D46F407883344BFDD90E672B672C5E9943DB4891E3A34FEEEB9DB (fixSTAmountCanonicalize) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.285725 UTC Amendments:DBG Amendment 2CD5286D8D687E98B41102BDD797198E81EA41DF7BD104E6561FEB104EFF2561 (fixTakerDryOfferRemoval) is supported and will be up voted if not enabled on the ledger.
2021-Dec-09 21:31:53.290446 UTC Server:NFO Opened 'port_rpc_admin_local' (ip=127.0.0.1:7005, admin IPs:127.0.0.1, http)
2021-Dec-09 21:31:53.290834 UTC Server:NFO Opened 'port_ws_admin_local' (ip=127.0.0.1:7006, admin IPs:127.0.0.1, ws)
2021-Dec-09 21:31:53.290984 UTC Application:WRN Running in standalone mode
2021-Dec-09 21:31:53.291048 UTC NetworkOPs:NFO STATE->full
2021-Dec-09 21:31:53.291192 UTC Application:FTL Startup RPC:
{
"command" : "log_level",
"severity" : "debug"
}
2021-Dec-09 21:31:53.291347 UTC RPCHandler:DBG RPC call log_level completed in 2.2e-08seconds
2021-Dec-09 21:31:53.291440 UTC Application:FTL Result:
{
"warnings" :
[
{
"id" : 1004,
"message" : "This is a reporting server. The default behavior of a reporting server is to only return validated data. If you are looking for not yet validated data, include \"ledger_index : current\" in your request, which will cause this server to forward the request to a p2p node. If the forward is successful the response will include \"forwarded\" : \"true\""
}
]
}
2021-Dec-09 21:31:53.291502 UTC ReportingETL:NFO Starting reporting etl
2021-Dec-09 21:31:53.291605 UTC Application:NFO Application starting. Version is 1.8.1+DEBUG
2021-Dec-09 21:31:53.291747 UTC LoadManager:DBG Starting
2021-Dec-09 21:31:53.291846 UTC gRPC Server:NFO Starting gRPC server at 0.0.0.0:60051
2021-Dec-09 21:31:53.293246 UTC LedgerCleaner:DBG Started
2021-Dec-09 21:31:53.295543 UTC ReportingETL::ETLSource:DBG handleMessage : Received a message on ledger subscription stream. Message : {
"result" : {},
"status" : "success",
"type" : "response"
}
- { validated_ledger : , ip : 127.0.0.1 , web socket port : 6006, grpc port : 50051 }
2021-Dec-09 21:31:53.368075 UTC ReportingETL:NFO monitor : Database is empty. Will download a ledger from the network.
2021-Dec-09 21:31:53.368183 UTC ReportingETL:NFO monitor : Waiting for next ledger to be validated by network...
```
## Frequently Asked Questions
<!-- STYLE_OVERRIDE: frequently -->
**Do I need to run more than one instance of `rippled` to use reporting mode?**
Yes. A `rippled` server running in reporting mode does not connect to the peer-to-peer network, but instead extracts validated data from one or more `rippled` servers that are connected to the network, so you need to run at least one P2P mode server.
**Ive already installed `rippled`. Can I update the configuration file to enable reporting mode and restart `rippled`?**
No. Currently, you need to download the source and build `rippled` for reporting mode. There are initiatives in progress to provide packages for reporting mode.
**To run `rippled` in reporting mode, I need at least one `rippled` server running in P2P mode too. Does this mean I need double the disk space?**
The answer depends on the location of your primary data store. If you use Cassandra as the primary data store, the reporting mode server stores much less data on its local disk. The PostgreSQL server can be remote as well. You can have multiple reporting mode servers share the same data this way.
Lastly, the P2P mode server only needs to keep very recent history, while the reporting mode server keeps long term history.
For more information on system requirements to run `rippled`, see the [`rippled` system requirements](system-requirements.md).
**How can I confirm the validity of the data that comes from the PostgreSQL or Cassandra database?**
When `rippled` runs in reporting mode, it only serves validated data from the ETL source specified in the config file. If you are using someone else's `rippled` server in P2P mode as the ETL source, you are implicitly trusting that server. If not, you need to run your own `rippled` node in P2P mode.
**Is it possible to make traditional SQL queries to the relational database rather than using the API?**
Technically, you *can* directly access the database if you want. However, the data is stored as binary blobs and you have to decode the blobs to access the data in them. This makes traditional SQL queries much less useful since they cannot find and filter the individual fields of the data.
Instead, see: [Install Clio on Ubuntu Linux](./install-clio-on-ubuntu.md).
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -9,7 +9,6 @@ seo:
---
# Installation
Install and update XRP Ledger servers including the core server, rippled, and API server, Clio.
Install and update the core XRP Ledger server (`rippled`) or the API server (Clio).
{% child-pages /%}

View File

@@ -8,7 +8,7 @@ labels:
---
# Install Clio on Ubuntu Linux
This page describes the recommended instructions for installing the latest stable version of Clio on **Ubuntu Linux 20.04 or higher** using the [`apt`](https://ubuntu.com/server/docs) utility.
This page describes the recommended instructions for installing the latest stable version of Clio on **Ubuntu Linux 22.04 or higher** using the [`apt`](https://ubuntu.com/server/docs) utility.
These instructions install an Ubuntu package that has been compiled and published by Ripple. You can also:
@@ -93,11 +93,11 @@ Before you install Clio, you must meet the following requirements.
5. Add the appropriate Ripple repository for your operating system version:
```
echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \
echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb noble stable" | \
sudo tee -a /etc/apt/sources.list.d/ripple.list
```
The above example is appropriate for **Ubuntu 20.04 Focal Fossa**.
The above example is appropriate for **Ubuntu 24.04 Noble Numbat**.
If you want access to development or pre-release versions, use one of the following instead of `stable`:

View File

@@ -1,17 +1,14 @@
---
html: install-rippled-on-centos-rhel-with-yum.html
parent: install-rippled.html
seo:
description: Install a precompiled rippled binary on CentOS or Red Hat Enterprise Linux.
description: Install a precompiled rippled binary on Red Hat Enterprise Linux.
labels:
- Core Server
---
# Install on CentOS/Red Hat with yum
# Install on Red Hat Enterprise Linux
This page describes the recommended instructions for installing the latest stable version of `rippled` on **CentOS 7** or **Red Hat Enterprise Linux 7**, using Ripple's [yum](https://en.wikipedia.org/wiki/Yellowdog_Updater,_Modified) repository.
These instructions install a binary that has been compiled by Ripple.
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Red Hat Enterprise Linux**, using a binary that has been compiled and published by Ripple as an `rpm` package.
Currently, **Red Hat Enterprise Linux (RHEL) 9.6 is supported on x86_64 processors**. You may also be able to adapt these instructions to similar Linux distributions including CentOS or Rocky Linux, but other configurations are not officially supported.
## Prerequisites

View File

@@ -8,9 +8,9 @@ labels:
---
# Install on Ubuntu or Debian Linux
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux 18.04 or higher** or **Debian 10 or higher**, using the [`apt`](https://ubuntu.com/server/docs) utility.
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux**, using a binary that has been compiled and published by Ripple as a `deb` package.
These instructions install a binary that has been compiled by Ripple.
Currently, **Ubuntu 22.04 and Ubuntu 24.04 on x86_64 processors** have received the highest level of support and testing. Packages are also available for **Debian Linux 12 Bookworm**. You may be able to adapt these instructions to other Linux distributions that also use the `apt` package manager, but other configurations are not officially supported.
## Prerequisites
@@ -40,7 +40,6 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
sudo gpg --dearmor -o /etc/apt/keyrings/ripple.gpg
```
4. Check the fingerprint of the newly-added key:
```
@@ -56,22 +55,19 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
sub rsa3072 2019-02-14 [E] [expires: 2026-02-17]
```
In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the second line, starting with `C001`.)
5. Add the appropriate Ripple repository for your operating system version:
```
echo "deb [signed-by=/etc/apt/keyrings/ripple.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \
echo "deb [signed-by=/etc/apt/keyrings/ripple.gpg] https://repos.ripple.com/repos/rippled-deb noble stable" | \
sudo tee -a /etc/apt/sources.list.d/ripple.list
```
The above example is appropriate for **Ubuntu 20.04 Focal Fossa**. For other operating systems, replace the word `focal` with one of the following:
The above example is appropriate for **Ubuntu 24.04 Noble Numbat**. For other operating systems, replace the word `noble` with one of the following:
- `buster` for **Debian 10 Buster**
- `bullseye` for **Debian 11 Bullseye**
- `bookworm` for **Debian 12 Bookworm**
- `bionic` for **Ubuntu 18.04 Bionic Beaver**
- `jammy` for **Ubuntu 22.04 Jammy Jellyfish**
- `noble` for **Ubuntu 24.04 Noble Numbat**
@@ -88,7 +84,6 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
sudo apt -y update && sudo apt -y install rippled
```
7. Check the status of the `rippled` service:
```
@@ -101,7 +96,6 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
sudo systemctl start rippled.service
```
8. Optional: allow `rippled` to bind to privileged ports.
This allows you to serve incoming API requests on port 80 or 443. (If you want to do so, you must also update the config file's port settings.)
@@ -110,7 +104,6 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
sudo setcap 'cap_net_bind_service=+ep' /opt/ripple/bin/rippled
```
9. Optional: configure core dumps
By default Ubuntu is not configured to produce core files useful for debugging crashes.

View File

@@ -1,129 +0,0 @@
---
html: rippled-1-3-migration-instructions.html
parent: install-rippled.html
seo:
description: Use these instructions to upgrade rippled packages from 1.2.x or below to 1.3.x or higher.
status: removed
---
# rippled v1.3.x Migration Instructions
This document describes the migration process for upgrading from `rippled` 1.2.4 or earlier to `rippled` v1.3 or later. This migration process is necessary because the `rippled` install process has changed as of version 1.3.
This document provides migration steps for upgrading on supported platforms:
- [CentOS or Red Hat Enterprise Linux (RHEL)](#migration-on-centos-or-red-hat-enterprise-linux-rhel)
- [Ubuntu Linux](#migration-on-ubuntu-linux)
For other platforms, see the updated instructions for compiling from source. ([Ubuntu](build-on-linux-mac-windows.md), [macOS](build-on-linux-mac-windows.md), or [Windows](https://github.com/XRPLF/rippled/tree/develop/Builds/VisualStudio2017))
## Migration on CentOS or Red Hat Enterprise Linux (RHEL)
Ripple's official RPM repository and instructions for using it have changed. If you have [automatic updates](update-rippled-automatically-on-linux.md) enabled, your system should perform the migration automatically. To migrate manually from the old repository to the new one, complete the following steps:
1. Stop the `rippled` server.
```
$ sudo systemctl stop rippled.service
```
2. Remove the old Ripple repository package.
```
$ sudo rpm -e ripple-repo
```
The `rippled-repo` package is now **DEPRECATED**. The package has been updated one last time for version 1.3.1. In the future, any changes to the repositories will require manual changes to the `ripple.repo` file. <!-- STYLE_OVERRIDE: will -->
3. Add Ripple's new yum repository:
```
$ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
[ripple-stable]
name=XRP Ledger Packages
baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/
enabled=1
gpgcheck=0
gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key
repo_gpgcheck=1
REPOFILE
```
4. Install the new `rippled` package:
```
$ sudo yum install rippled
```
Version 1.3.1 does not require any changes to your config files (`rippled.cfg` and `validators.txt`). This update procedure leaves your existing config files in place.
5. Reload systemd unit files:
```
$ sudo systemctl daemon-reload
```
6. Start the `rippled` service:
```
$ sudo systemctl start rippled.service
```
{% admonition type="danger" name="Warning" %}If you use [automatic updates](update-rippled-automatically-on-linux.md), they should continue working after performing this migration process. However, **the `ripple-repo` package is now deprecated**. As a consequence, in the future, any changes to Ripple's repositories may require you to manually update your repos file.{% /admonition %}
## Migration on Ubuntu Linux
Prior to version 1.3, the supported way to install `rippled` on Ubuntu Linux was using Alien to install the RPM package. Starting with `rippled` v1.3.1, Ripple provides a native package for Ubuntu and Debian Linux, which is the recommended way of installing it. If you already have the RPM package installed, complete the [installation steps](install-rippled-on-ubuntu.md) to upgrade the package and switch over to the native APT (`.deb`) package.
If you have made any changes to your config files (`/opt/ripple/etc/rippled.cfg` and `/opt/ripple/etc/validators.txt`), `apt` may prompt you during installation asking if you want to overwrite your config files with the newest versions from the packages. Version 1.3 does not require any changes to the config file, so you can safely keep your existing config files unchanged.
After installing the native APT package for 1.3, you need to reload/restart the service:
1. Reload systemd unit files:
```
$ sudo systemctl daemon-reload
```
2. Restart the `rippled` service:
```
$ sudo systemctl restart rippled.service
```
If you no longer need Alien for any other packages, you may optionally uninstall it and its dependencies using the following steps:
1. Uninstall Alien:
```
$ sudo apt -y remove alien
```
2. Uninstall unused dependencies:
```
$ sudo apt -y autoremove
```
### Automatic Updates
The `rippled` v1.3 package includes an updated auto-update script that works on Ubuntu and Debian Linux. For more information, see [Update `rippled` Automatically on Linux](update-rippled-automatically-on-linux.md).
## See Also
- **[`rippled` v1.3.1 Release Notes](https://github.com/XRPLF/rippled/releases/1.3.1)**
- **Concepts:**
- [The `rippled` Server](../../concepts/networks-and-servers/index.md)
- [Consensus](../../concepts/consensus-protocol/index.md)
- **Tutorials:**
- [Update Automatically on Linux](update-rippled-automatically-on-linux.md)
- [Troubleshoot rippled](../troubleshooting/index.md)
- [Get Started with the rippled API](../../tutorials/http-websocket-apis/build-apps/get-started.md)
- **References:**
- [rippled API Reference](../../references/http-websocket-apis/index.md)
- [`rippled` Commandline Usage](../commandline-usage.md)
- [server_info method][]
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -1,16 +1,16 @@
---
html: system-requirements.html
parent: install-rippled.html
seo:
description: Hardware and software requirements for running rippled.
description: Hardware and software requirements for running rippled or Clio.
labels:
- Core Server
---
# System Requirements
The following system requirements apply to both the core XRP Ledger server, `rippled`, and the Clio server for API access.
## Recommended Specifications
For reliable performance in production environments, it is recommended to run an XRP Ledger (`rippled`) server on bare metal with the following characteristics or better:
For reliable performance in production environments, it is recommended to run a server on bare metal with the following characteristics or better:
- Operating System: Ubuntu (LTS), Red Hat Enterprise Linux (latest release), or a compatible Linux distribution.
- CPU: 3+ GHz 64-bit x86_64 processor with 8+ cores.
@@ -28,6 +28,7 @@ For testing purposes, you can run an XRP Ledger server on commodity hardware wit
- Operating System: macOS, Windows (64-bit), or most Linux distributions (Red Hat, Ubuntu, and Debian supported).
- CPU: 64-bit x86_64, 4+ cores.
- For development purposes, it is also possible to compile `rippled` for some Apple Silicon or ARM processors. See the [Build instructions](https://github.com/XRPLF/rippled/blob/develop/BUILD.md) for guidance. However, architectures other than x86_64 are not officially supported and are not recommended for production.
- Disk: SSD / NVMe (10,000 IOPS sustained - not burst or peak - or better). Minimum 50 GB for the database partition. Do not use Amazon Elastic Block Store (AWS EBS) because its latency is too high to sync reliably.
- RAM: 16 GB+.

View File

@@ -1,6 +1,4 @@
---
html: update-rippled-automatically-on-linux.html
parent: install-rippled.html
seo:
description: Set up automatic updates for rippled on Linux.
labels:
@@ -9,13 +7,13 @@ labels:
---
# Update Automatically on Linux
On Linux, you can set up `rippled` to automatically upgrade to the latest version with a one-time `cron` configuration. Ripple recommends enabling automatic updates if possible.
On Linux, you can set up `rippled` to automatically upgrade to the latest version with a one-time `cron` configuration.
These instructions assume you have already installed `rippled` [from the `yum` repository (CentOS/RedHat)](install-rippled-on-centos-rhel-with-yum.md) or [using `apt` (Ubuntu/Debian)](install-rippled-on-ubuntu.md).
These instructions assume you have already installed `rippled` from a package on [Red Hat Enterprise Linux](install-rippled-on-rhel.md), [Ubuntu Linux, or Debian Linux](install-rippled-on-ubuntu.md).
To set up automatic updates, complete the following steps:
1. Check that `/opt/ripple/etc/update-rippled-cron` exists. If it does not, update manually ([CentOS/Red Hat](update-rippled-manually-on-centos-rhel.md) or [Ubuntu/Debian](update-rippled-manually-on-ubuntu.md)).
1. Check that `/opt/ripple/etc/update-rippled-cron` exists. If it does not, update manually ([Red Hat](update-rippled-manually-on-rhel.md) or [Ubuntu/Debian](update-rippled-manually-on-ubuntu.md)).
2. Create a symlink in your `cron.d` folder to the `/opt/ripple/etc/update-rippled-cron` config file:
@@ -23,7 +21,7 @@ To set up automatic updates, complete the following steps:
sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/
```
This configuration runs a script to update the installed `rippled` package within an hour of each new release. To avoid network instability from too many servers updating at the same time, this script does not automatically restart the server, so it continues to run the old version until it restarts. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}Updated in: rippled 1.8.1{% /badge %}
This configuration runs a script to update the installed `rippled` package within an hour of each new release. To avoid network instability from too many servers updating at the same time, this script does not automatically restart the server, so it continues to run the old version until it restarts.
3. **Whenever a new release comes out,** you must manually restart the `rippled` service to switch to the updated software.

View File

@@ -1,40 +1,24 @@
---
html: update-rippled-manually-on-centos-rhel.html
parent: install-rippled.html
seo:
description: Manually update rippled on CentOS or Red Hat Enterprise Linux.
labels:
- Core Server
- Security
---
# Update Manually on CentOS/Red Hat
# Update Manually on Red Hat Enterprise Linux
This page describes how to update manually to the latest release of `rippled` on CentOS or Red Hat Enterprise Linux. Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.md) instead, where possible.
This page describes how to update manually to the latest release of `rippled` on Red Hat Enterprise Linux. You can also set up [automatic updates](update-rippled-automatically-on-linux.md).
These instructions assume you have already [installed `rippled` from the `yum` repository](install-rippled-on-centos-rhel-with-yum.md).
These instructions assume you have already [installed `rippled` on a supported version of Red Hat Enterprise Linux using Ripple's `rpm` package distribution](install-rippled-on-rhel.md). If you are upgrading from `rippled` 1.6.x or older, remove it and perform a fresh install instead.
{% admonition type="success" name="Tip" %}To perform these steps all at once, you can run the `/opt/ripple/bin/update-rippled.sh` script, which is included with the `rippled` package. This script should be run as a `sudo` user.{% /admonition %}
To update manually, complete the following steps:
1. If you are upgrading to `rippled` 1.7.0 from an earlier version, re-add the repository to get Ripple's updated GPG key. Otherwise, skip this step:
```
$ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
[ripple-stable]
name=XRP Ledger Packages
enabled=1
gpgcheck=0
repo_gpgcheck=1
baseurl=https://repos.ripple.com/repos/rippled-rpm/stable
gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key
REPOFILE
```
1. Download and install the latest `rippled` package:
```
$ sudo yum update rippled
sudo yum update rippled
```
This update procedure leaves your existing config files in place.
@@ -42,13 +26,13 @@ To update manually, complete the following steps:
2. Reload the `systemd` unit files:
```
$ sudo systemctl daemon-reload
sudo systemctl daemon-reload
```
3. Restart the `rippled` service:
```
$ sudo service rippled restart
sudo service rippled restart
```
@@ -58,7 +42,6 @@ To update manually, complete the following steps:
- [The `rippled` Server](../../concepts/networks-and-servers/index.md)
- [Consensus](../../concepts/consensus-protocol/index.md)
- **Tutorials:**
- [`rippled` v1.3.x Migration Instructions](rippled-1-3-migration-instructions.md) <!-- Note: remove when versions older than v1.3 are basically extinct -->
- [Troubleshoot rippled](../troubleshooting/index.md)
- **References:**
- [rippled API Reference](../../references/http-websocket-apis/index.md)

View File

@@ -1,6 +1,4 @@
---
html: update-rippled-manually-on-ubuntu.html
parent: install-rippled.html
seo:
description: Manually update rippled on Ubuntu Linux.
labels:
@@ -9,18 +7,9 @@ labels:
---
# Update Manually on Ubuntu or Debian
This page describes how to update manually to the latest release of `rippled` on Ubuntu Linux. These instructions assume you have already [installed `rippled` using the native package](install-rippled-on-ubuntu.md). Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.md) instead, where possible.
This page describes how to manually update to the latest release of `rippled` on Ubuntu Linux. You can also set up [automatic updates](update-rippled-automatically-on-linux.md).
{% admonition type="warning" name="Caution" %}
Ripple renewed the GPG key used to sign binary packages shortly before the release of v1.7.0. If you are upgrading from a version earlier than 1.7.0, you must first download and manually trust the updated public key as follows:
```
wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | \
sudo apt-key add -
```
For more information, see the [`rippled` 1.7.0 release notes](https://xrpl.org/blog/2021/rippled-1.7.0.html#upgrading-special-action-required).
{% /admonition %}
These instructions assume you have already [installed `rippled` on a supported version of Ubuntu using Ripple's `deb` package](install-rippled-on-ubuntu.md). If you are upgrading from `rippled` 1.6.x or older, remove it and perform a fresh install instead.
{% admonition type="success" name="Tip" %}To perform these steps all at once, you can run the `/opt/ripple/bin/update-rippled.sh` script, which is included with the `rippled` package and is compatible with Ubuntu and Debian. This script should be run as a `sudo` user.{% /admonition %}
@@ -29,25 +18,25 @@ To update manually, complete the following steps:
1. Update repositories:
```
$ sudo apt -y update
sudo apt -y update
```
2. Upgrade the `rippled` package:
```
$ sudo apt -y upgrade rippled
sudo apt -y upgrade rippled
```
3. Reload the `systemd` unit files:
```
$ sudo systemctl daemon-reload
sudo systemctl daemon-reload
```
4. Restart the `rippled` service:
```
$ sudo service rippled restart
sudo systemctl restart rippled
```
@@ -57,7 +46,6 @@ To update manually, complete the following steps:
- [The `rippled` Server](../../concepts/networks-and-servers/index.md)
- [Consensus](../../concepts/consensus-protocol/index.md)
- **Tutorials:**
- [`rippled` v1.3.x Migration Instructions](rippled-1-3-migration-instructions.md) <!-- Note: remove when versions older than v1.3 are basically extinct -->
- [Troubleshoot rippled](../troubleshooting/index.md)
- **References:**
- [rippled API Reference](../../references/http-websocket-apis/index.md)

View File

@@ -131,7 +131,7 @@ For a more thorough explanation of various types of log messages, see [Understan
If you have problems diagnosing the problem, or you are unable to resolve the problem with any of the common fixes, you may want to ask for help in a support forum or the [GitHub issues](https://github.com/XRPLF/rippled/issues). When asking for help, you can use an info collection script to gather information about your system to help others diagnose the issue.
The official package installation (for [Ubuntu/Debian](../installation/install-rippled-on-ubuntu.md) or [CentOS/RedHat](../installation/install-rippled-on-centos-rhel-with-yum.md)) installs such a script by default, to `/opt/ripple/bin/getRippledInfo`. If you compiled `rippled` yourself, you can find the same script [in the `rippled` source code repository](https://github.com/XRPLF/rippled/blob/develop/bin/getRippledInfo).
The official package installation (for [Ubuntu/Debian](../installation/install-rippled-on-ubuntu.md) or [CentOS/RedHat](../installation/install-rippled-on-rhel.md)) installs such a script by default, to `/opt/ripple/bin/getRippledInfo`. If you compiled `rippled` yourself, you can find the same script [in the `rippled` source code repository](https://github.com/XRPLF/rippled/blob/develop/bin/getRippledInfo).
To use the script:

View File

@@ -47,3 +47,7 @@ The XRP Ledger is an opensource project with publicly available client libraries
Next: [Transactions and Requests](transactions-and-requests.md)
## See Also
For more information on which wallets are supported on the XRP Ledger, see [Wallets](../../about/xrp#wallets).

View File

@@ -35,7 +35,7 @@ The following script is a sample that can be created as `/etc/logrotate.d/ripple
You can configure parameters such as `minsize` and `rotate` depending on the amount of logs you keep. Use the `log_level` setting in your `rippled.cfg` file to configure how verbose your server's logs are. This sample script is based on standard `log_level` and stores approximately 2 weeks worth of logs in a compressed format.
The official packages [for CentOS/Red Hat](../../../../infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md) and [Ubuntu or Debian](../../../../infrastructure/installation/install-rippled-on-ubuntu.md) provide the script `/etc/logrotate.d/rippled` by default. You can make modifications to this as required. Your modifications will not be overwritten on package upgrades. <!-- STYLE_OVERRIDE: will -->
The official packages [for CentOS/Red Hat](../../../../infrastructure/installation/install-rippled-on-rhel.md) and [Ubuntu or Debian](../../../../infrastructure/installation/install-rippled-on-ubuntu.md) provide the script `/etc/logrotate.d/rippled` by default. You can make modifications to this as required. Your modifications will not be overwritten on package upgrades. <!-- STYLE_OVERRIDE: will -->
{% admonition type="info" name="Note" %}You should have only one system log rotation script per application. Please ensure that you do not have any other log rotation that handles the same directory.{% /admonition %}

View File

@@ -338,7 +338,7 @@ Some fields specify a _type_ of asset, which could be XRP or a fungible [token](
### Object Fields
[STObject]: #object-fields
[Object]: #object-fields
Some fields, such as `SignerEntry` (in [SignerListSet transactions][]), and `Memo` (in `Memos` arrays) are objects (called the "STObject" type). The serialization of objects is very similar to that of arrays, with one difference: **object members must be placed in canonical order** within the object field, where array fields have an explicit order already.

View File

@@ -27,7 +27,7 @@ Unlike full-fledged [ledger entries](../ledger-data/ledger-entry-types/index.md)
## NFTokenID
<!-- SPELLING_IGNORE: nftokenid -->
`NFTokenID`, optional, string, Hash256
`NFTokenID`, optional, string, UInt256
This composite field uniquely identifies a token, and consists of the following sections.

View File

@@ -10,7 +10,7 @@ Every entry in a [ledger](../../../concepts/ledgers/index.md)'s state data has t
| Field | JSON Type | [Internal Type][] | Required? | Description |
|:-------------------------|:----------|:------------------|:----------|:------------|
| `index` or `LedgerIndex` | String | Hash256 | No | The unique ID for this ledger entry. In JSON, this field is represented with different names depending on the context and API method. (Note, even though this is specified as "optional" in the code, every ledger entry should have one unless it's legacy data from very early in the XRP Ledger's history.) |
| `index` or `LedgerIndex` | String | UInt256 | No | The unique ID for this ledger entry. In JSON, this field is represented with different names depending on the context and API method. (Note, even though this is specified as "optional" in the code, every ledger entry should have one unless it's legacy data from very early in the XRP Ledger's history.) |
| `LedgerEntryType` | String | UInt16 | Yes | The type of ledger entry. Valid [ledger entry types](ledger-entry-types/index.md) include `AccountRoot`, `Offer`, `RippleState`, and others. |
| `Flags` | Number | UInt32 | Yes | Set of bit-flags for this ledger entry. |

View File

@@ -38,26 +38,26 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
| Field | JSON Type | [Internal Type][] | Required? | Description |
|:------------------------------|:----------|:------------------|:----------|:-------------|
| `Account` | String | AccountID | Yes | The identifying (classic) address of this [account](../../../../concepts/accounts/index.md). |
| `AccountTxnID` | String | Hash256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](../../transactions/common-fields.md#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](../../transactions/types/accountset.md#accountset-flags). |
| `AMMID` | String | Hash256 | No | _(Added by the [AMM amendment][])_ The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. |
| `AccountTxnID` | String | UInt256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](../../transactions/common-fields.md#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](../../transactions/types/accountset.md#accountset-flags). |
| `AMMID` | String | UInt256 | No | _(Added by the [AMM amendment][])_ The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. |
| `Balance` | String | Amount | No | The account's current [XRP balance in drops][XRP, in drops], represented as a string. |
| `BurnedNFTokens` | Number | UInt32 | No | How many total of this account's issued [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been burned. This number is always equal or less than `MintedNFTokens`. |
| `Domain` | String | Blob | No | A domain associated with this account. In JSON, this is the hexadecimal for the ASCII representation of the domain. [Cannot be more than 256 bytes in length.](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) |
| `EmailHash` | String | Hash128 | No | The md5 hash of an email address. Clients can use this to look up an avatar through services such as [Gravatar](https://en.gravatar.com/). |
| `EmailHash` | String | UInt128 | No | The md5 hash of an email address. Clients can use this to look up an avatar through services such as [Gravatar](https://en.gravatar.com/). |
| `FirstNFTokenSequence` | Number | UInt32 | No | The account's [Sequence Number][] at the time it minted its first [non-fungible-token](../../../../concepts/tokens/nfts/index.md). _(Added by the [fixNFTokenRemint amendment][])_ |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0061`, mapped to the string `AccountRoot`, indicates that this is an AccountRoot object. |
| `MessageKey` | String | Blob | No | A public key that may be used to send encrypted messages to this account. In JSON, uses hexadecimal. Must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. |
| `MintedNFTokens` | Number | UInt32 | No | How many total [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been minted by and on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ |
| `NFTokenMinter` | String | AccountID | No | Another account that can mint [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ |
| `OwnerCount` | Number | UInt32 | Yes | The number of objects this account owns in the ledger, which contributes to its owner reserve. |
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
| `RegularKey` | String | AccountID | No | The address of a [key pair](../../../../concepts/accounts/cryptographic-keys.md) that can be used to sign transactions for this account instead of the master key. Use a [SetRegularKey transaction][] to change this value. |
| `Sequence` | Number | UInt32 | Yes | The [sequence number](../../data-types/basic-data-types.md#account-sequence) of the next valid transaction for this account. |
| `TicketCount` | Number | UInt32 | No | How many [Tickets](../../../../concepts/accounts/tickets.md) this account owns in the ledger. This is updated automatically to ensure that the account stays within the hard limit of 250 Tickets at a time. This field is omitted if the account has zero Tickets. _(Added by the [TicketBatch amendment][].)_ |
| `TickSize` | Number | UInt8 | No | How many significant digits to use for exchange rates of Offers involving currencies issued by this address. Valid values are `3` to `15`, inclusive. _(Added by the [TickSize amendment][].)_ |
| `TransferRate` | Number | UInt32 | No | A [transfer fee](../../../../concepts/tokens/transfer-fees.md) to charge other users for sending currency issued by this account to each other. |
| `WalletLocator` | String | Hash256 | No | An arbitrary 256-bit value that users can set. |
| `WalletLocator` | String | UInt256 | No | An arbitrary 256-bit value that users can set. |
| `WalletSize` | Number | UInt32 | No | Unused. (The code supports this field but there is no way to set it.) |
## Special AMM AccountRoot Entries

View File

@@ -51,15 +51,15 @@ In addition to the [common fields](../common-fields.md), the {% code-page-name /
| `Amendments` | Array | Vector256 | No | Array of 256-bit [amendment IDs](../../../../concepts/networks-and-servers/amendments.md) for all currently enabled amendments. If omitted, there are no enabled amendments. |
| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `Amendments` objects. The value is always `0`. |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0066`, mapped to the string `Amendments`, indicates that this object describes the status of amendments to the XRP Ledger. |
| `Majorities` | Array | STArray | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. |
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `Majorities` | Array | Array | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. |
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
Each member of the `Majorities` field, if it is present, is an object with one field, `Majority`, whose contents are a nested object with the following fields:
| Name | JSON Type | [Internal Type][] | Description |
|-------------------|-----------|-------------------|-------------|
| `Amendment` | String | Hash256 | The Amendment ID of the pending amendment. |
| `Amendment` | String | UInt256 | The Amendment ID of the pending amendment. |
| `CloseTime` | Number | UInt32 | The [`close_time` field](../ledger-header.md) of the ledger version where this amendment most recently gained a majority. |
In the [amendment process](../../../../concepts/networks-and-servers/amendments.md#amendment-process), a consensus of validators adds a new amendment to the `Majorities` field using an [EnableAmendment][] pseudo-transaction with the `tfGotMajority` flag when 80% or more of validators support it. If support for a pending amendment goes below 80%, an [EnableAmendment][] pseudo-transaction with the `tfLostMajority` flag removes the amendment from the `Majorities` array. If an amendment remains in the `Majorities` field for at least 2 weeks, an [EnableAmendment][] pseudo-transaction with no flags removes it from `Majorities` and permanently adds it to the `Amendments` field.

View File

@@ -63,15 +63,15 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
| Field | JSON Type | [Internal Type][] | Required? | Description |
|:-----------------|:--------------------|:------------------|:----------|--------------|
| `Asset` | Object | STIssue | Yes | The definition for one of the two assets this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
| `Asset2` | Object | STIssue | Yes | The definition for the other asset this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
| `Account` | String | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. |
| `AuctionSlot` | Object | STObject | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). |
| `Asset` | Object | Issue | Yes | The definition for one of the two assets this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
| `Asset2` | Object | Issue | Yes | The definition for the other asset this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. |
| `Account` | String - [Address][] | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. |
| `AuctionSlot` | Object | Object | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). |
| `LPTokenBalance` | [Currency Amount][] | Amount | Yes | The total outstanding balance of liquidity provider tokens from this AMM instance. The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected. |
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnID` | String - [Hash][] | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `TradingFee` | Number | UInt16 | Yes | The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. The maximum value is 1000, for a 1% fee. |
| `VoteSlots` | Array | STArray | No | A list of vote objects, representing votes on the pool's trading fee. |
| `VoteSlots` | Array | Array | No | A list of vote objects, representing votes on the pool's trading fee. |
### Auction Slot Object
@@ -81,7 +81,7 @@ The `AuctionSlot` field contains an object with the following nested fields:
| Field | JSON Type | [Internal Type][] | Required? | Description |
|:----------------|:--------------------|:------------------|:----------|:--|
| `Account` | String - Address | AccountID | Yes | The current owner of this auction slot. |
| `AuthAccounts` | Array | STArray | No | A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance. |
| `AuthAccounts` | Array | Array | No | A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance. |
| `DiscountedFee` | String | UInt32 | Yes | The trading fee to be charged to the auction owner, in the same format as `TradingFee`. Normally, this is 1/10 of the normal fee for this AMM. |
| `Price` | [Currency Amount][] | Amount | Yes | The amount the auction owner paid to win this slot, in LP Tokens. |
| `Expiration` | String | UInt32 | Yes | The time when this slot expires, in [seconds since the Ripple Epoch][]. |

View File

@@ -43,10 +43,10 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. |
| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this Check, such as a hosted recipient at the destination address. |
| `Expiration` | Number | UInt32 | No | Indicates the time after which this Check is considered expired. See [Specifying Time][] for details. |
| `InvoiceID` | String | Hash256 | No | Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check. |
| `InvoiceID` | String | UInt256 | No | Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check. |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0043`, mapped to the string `Check`, indicates that this object is a Check object. |
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. |
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
| `SendMax` | String or Object | Amount | Yes | The maximum amount of currency this Check can debit the sender. If the Check is successfully cashed, the destination is credited in the same currency for up to this amount. |
| `Sequence` | Number | UInt32 | Yes | The sequence number of the [CheckCreate transaction][] that created this check. |

View File

@@ -38,11 +38,11 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
| `Expiration` | Number | UInt32 | No | Time after which the credential is expired, in [seconds since the Ripple Epoch][].
| `Issuer` | String - [Address][] | AccountID | Yes | The account that issued this credential. |
| `IssuerNode` | String | UInt64 | Yes | A hint indicating which page of the issuer's directory links to this entry, in case the directory consists of multiple pages. |
| `PreviousTxnID` | String - [Hash][] | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
| `Subject` | String - [Address][] | AccountID | Yes | The account that this credential is for. |
| `SubjectNode` | String | UInt64 | Yes | A hint indicating which page of the subject's owner directory links to this entry, in case the directory consists of multiple pages. |
| `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, for example a URL where a W3C-formatted Verifiable Credential can be retrieved. |
| `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, for example a URL where a W3C-formatted Verifiable Credential can be retrieved. |
## Credential Flags

View File

@@ -64,7 +64,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
| `AuthorizeCredentials` | Array | Array | No | The set of credentials that received preauthorization. (Any account with these credentials is preauthorized.) This array has a minimum length of 1 and a maximum length of 8 credentials. |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0070`, mapped to the string `DepositPreauth`, indicates that this is a DepositPreauth object. |
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. |
| `PreviousTxnID` | String - [Hash][] | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
Each entry must have _either_ the `Authorize` field or the `AuthorizeCredentials` field, but not both.

View File

@@ -39,7 +39,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
| `Data` | String | Blob | No | The public attestations of identity credentials associated with the DID. The `Data` field isn't checked for validity and is limited to a maximum length of 256 bytes. |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0049`, mapped to the string `DID`, indicates that this object is a DID object. |
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. |
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The index of the ledger that contains the transaction that most recently modified this object. |
| `URI` | String | Blob | No | The Universal Resource Identifier that points to the corresponding DID document or the data associated with the DID. This field can be an HTTP(S) URL or IPFS URI. This field isn't checked for validity and is limited to a maximum length of 256 bytes. |

View File

@@ -97,22 +97,22 @@ All types of directories are automatically updated by the protocol as necessary.
| Name | JSON Type | [Internal Type][] | Required? | Description |
|:--------------------|:----------|:------------------|:----------|:------------|
| `DomainID` | String | Hash256 | No | (Offer directories only) The ledger entry ID of a permissioned domain. If present, this order book belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). Otherwise, this order book is part of the open DEX. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
| `DomainID` | String | UInt256 | No | (Offer directories only) The ledger entry ID of a permissioned domain. If present, this order book belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). Otherwise, this order book is part of the open DEX. _(Requires the [PermissionedDEX amendment][] {% not-enabled /%})_ |
| `ExchangeRate` | String | UInt64 | No | (Offer directories only) **DEPRECATED**. Do not use. |
| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `DirectoryNode` objects. The value is always `0`. |
| `Indexes` | Array | Vector256 | Yes | The contents of this directory: an array of IDs of other objects. |
| `IndexNext` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the next object in the chain, wrapping around at the end. |
| `IndexPrevious` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the previous object in the chain, wrapping around at the beginning. |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0064`, mapped to the string `DirectoryNode`, indicates that this object is part of a directory. |
| `NFTokenID` | String | Hash256 | No | (NFT offer directories only) ID of the NFT in a buy or sell offer. |
| `NFTokenID` | String | UInt256 | No | (NFT offer directories only) ID of the NFT in a buy or sell offer. |
| `Owner` | String | AccountID | No | (Owner directories only) The address of the account that owns the objects in this directory. |
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `RootIndex` | String | Hash256 | Yes | The ID of root object for this directory. |
| `TakerGetsCurrency` | String | Hash160 | No | (Offer directories only) The currency code of the `TakerGets` amount from the offers in this directory. |
| `TakerGetsIssuer` | String | Hash160 | No | (Offer directories only) The issuer of the `TakerGets` amount from the offers in this directory. |
| `TakerPaysCurrency` | String | Hash160 | No | (Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. |
| `TakerPaysIssuer` | String | Hash160 | No | (Offer directories only) The issuer of the `TakerPays` amount from the offers in this directory. |
| `RootIndex` | String | UInt256 | Yes | The ID of root object for this directory. |
| `TakerGetsCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerGets` amount from the offers in this directory. |
| `TakerGetsIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerGets` amount from the offers in this directory. |
| `TakerPaysCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. |
| `TakerPaysIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerPays` amount from the offers in this directory. |
## {% $frontmatter.seo.title %} Flags

View File

@@ -49,7 +49,7 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
| `FinishAfter` | Number | UInt32 | No | The time, in [seconds since the Ripple Epoch][], after which this escrow can be finished. Any [EscrowFinish transaction][] before this time fails. (Specifically, this is compared with the close time of the previous validated ledger.) |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0075`, mapped to the string `Escrow`, indicates that this is an `Escrow` entry. |
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. |
| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. |
| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this escrow, such as a hosted recipient at the owner's address. |
| `TransferRate` | Number | UInt32 | No | The fee to charge when users finish an escrow, initially set on the creation of an escrow contract and updated on subsequent finish transactions. |

View File

@@ -35,7 +35,7 @@ In addition to the [common fields](../common-fields.md), the {% code-page-name /
| `ReferenceFeeUnits` | Number | UInt32 | Yes | The `BaseFee` translated into "fee units". |
| `ReserveBase` | Number | UInt32 | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. |
| `ReserveIncrement` | Number | UInt32 | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. |
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
{% admonition type="danger" name="Warning" %}The JSON format for this ledger entry type is unusual. The `BaseFee`, `ReserveBase`, and `ReserveIncrement` indicate drops of XRP but ***not*** in the usual format for [specifying XRP][Currency Amount].{% /admonition %}

View File

@@ -5,11 +5,9 @@ labels:
---
# MPToken
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_
An `MPToken` entry tracks [MPTs](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) held by an account that is not the token issuer. You can create or delete an empty `MPToken` entry by sending an [MPTokenAuthorize transaction][]. You can send and receive MPTs using several other transaction types including [Payment][] and [OfferCreate][] transactions.
The `MPToken` object represents a number of tokens held by an account that is not the token issuer. MPTs are acquired via ordinary payment or DEX transactions, and can optionally be redeemed or exchanged using these same types of transactions. The object key of the MPToken is derived from hashing the space key, the holder's address, and the `MPTokenIssuanceID`.
<!-- _(Added by the [MPTokensV1_1 amendment][].)_ -->
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_
## Example MPToken JSON
@@ -24,37 +22,36 @@ The `MPToken` object represents a number of tokens held by an account that is no
}
```
## MPTokenID
The `MPTokenID` is the result of SHA512-Half of the following values, concatenated in order:
- The `MPToken` space key (0x0074).
- The `MPTokenIssuanceID` for the issuance being held.
- The `AccountID` of the token holder.
## MPToken Fields
`MPToken` objects have the following fields.
In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields:
| Field Name | JSON Type | Internal Type | Description |
|:------------------|:----------|:--------------|:------------|
| `LedgerEntryType` | number | UInt16 | The value 0x007F, mapped to the string `MPToken`, indicates that this object describes an individual account's holding of an MPT. |
| `Account` | string | AccountID | The owner of the MPT. |
| `MPTokenIssuanceID` | string | UInt192 | The `MPTokenIssuance` identifier. |
| `MPTAmount` | string | UInt64 | This value specifies a positive amount of tokens currently held by the owner. Valid values for this field are between 0x0 and 0x7FFFFFFFFFFFFFFF. |
| `Flags` | number | UInt32 | (Default) See [MPToken Flags](#mptoken-flags) |
| `PreviousTxnID` | string | Hash256 | Transaction ID of the transaction that most recently modified this object. |
| `PreviousTxnLgrSeq` | number | UInt32 | The sequence of the ledger that contains the transaction that most recently modified this object. |
| `OwnerNode` | string | UInt64 | (Default) The page in the owner's directory where this item is referenced. |
| Field Name | JSON Type | Internal Type | Required? | Description |
|:--------------------|:---------------------|:--------------|:----------|:------------|
| `Account` | String - [Address][] | AccountID | Yes | The owner (holder) of these MPTs. |
| `MPTokenIssuanceID` | String - Hexadecimal | UInt192 | Yes | The `MPTokenIssuance` identifier. |
| `MPTAmount` | String - Number | UInt64 | Yes | The amount of tokens currently held by the owner. The minimum is 0 and the maximum is 2<sup>63</sup>-1. |
| `LockedAmount` | String - Number | UInt64 | No | The amount of tokens currently locked up (for example, in escrow or payment channels). _(Requires the [TokenEscrow amendment][] {% not-enabled /%}.)_ |
| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The sequence of the ledger that contains the transaction that most recently modified this object. |
| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. |
### MPToken Flags
Flags are properties or other options associated with the `MPToken` object.
{% code-page-name /%} entries can have the following flags combined in the `Flags` field:
| Flag Name | Flag Value | Description |
|:------------------|:-----------|:--------------------------------------------|
| `lsfMPTLocked` | `0x00000001` | If enabled, indicates that the MPT owned by this account is currently locked and cannot be used in any XRP transactions other than sending value back to the issuer. |
| `lsfMPTAuthorized` | `0x00000002` | (Only applicable for allow-listing) If set, indicates that the issuer has authorized the holder for the MPT. This flag can be set using a `MPTokenAuthorize` transaction; it can also be "un-set" using a `MPTokenAuthorize` transaction specifying the `tfMPTUnauthorize` flag. |
## MPToken ID Format
The ID of an `MPToken` entry is the [SHA-512Half][] of the following values, concatenated in order:
- The `MPToken` space key (0x0074).
- The `MPTokenIssuanceID` for the issuance being held.
- The `AccountID` of the token holder.
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -5,11 +5,9 @@ labels:
---
# MPTokenIssuance
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%})_
An `MPTokenIssuance` entry represents a single [MPT](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) issuance and holds data associated with the issuance itself. You can create an `MPTokenIssuance` using an [MPTokenIssuanceCreate transaction][], and can delete it with an [MPTokenIssuanceDestroy transaction][].
The `MPTokenIssuance` object represents a single MPT issuance and holds data associated with the issuance itself. Token issuances are created using the `MPTokenIssuanceCreate` transaction and can be destroyed by the `MPTokenIssuanceDestroy` transaction.
<!-- _(Added by the [MPTokensV1_1 amendment][].)_ -->
_(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_
## Example MPTokenIssuance JSON
@@ -22,29 +20,50 @@ The `MPTokenIssuance` object represents a single MPT issuance and holds data ass
"MaximumAmount": "100000000",
"OutstandingAmount": "100",
"TransferFee": 50000,
"MPTokenMetadata": "{
"name": "US Treasury Bill Token",
"symbol": "USTBT",
"issuer": "US Treasury",
"issueDate": "2024-03-25",
"maturityDate": "2025-03-25",
"faceValue": 1000,
"interestRate": 2.5,
"interestFrequency": "Quarterly",
"collateral": "US Government",
"jurisdiction": "United States",
"regulatoryCompliance": "SEC Regulations",
"securityType": "Treasury Bill",
"external_url": "https://example.com/t-bill-token-metadata.json"
}",
"MPTokenMetadata": "7B227469636B6572223A20225442494C4C222C20226E616D65223A2022542D42696C6C205969656C6420546F6B656E222C202264657363223A202241207969656C642D62656172696E6720737461626C65636F696E206261636B65642062792073686F72742D7465726D20552E532E205472656173757269657320616E64206D6F6E6579206D61726B657420696E737472756D656E74732E222C202269636F6E223A202268747470733A2F2F6578616D706C652E6F72672F7462696C6C2D69636F6E2E706E67222C202261737365745F636C617373223A2022727761222C202261737365745F737562636C617373223A20227472656173757279222C20226973737565725F6E616D65223A20224578616D706C65205969656C6420436F2E222C202275726C73223A205B7B2275726C223A202268747470733A2F2F6578616D706C657969656C642E636F2F7462696C6C222C202274797065223A202277656273697465222C20227469746C65223A202250726F647563742050616765227D2C207B2275726C223A202268747470733A2F2F6578616D706C657969656C642E636F2F646F6373222C202274797065223A2022646F6373222C20227469746C65223A20225969656C6420546F6B656E20446F6373227D5D2C20226164646974696F6E616C5F696E666F223A207B22696E7465726573745F72617465223A2022352E303025222C2022696E7465726573745F74797065223A20227661726961626C65222C20227969656C645F736F75726365223A2022552E532E2054726561737572792042696C6C73222C20226D617475726974795F64617465223A2022323034352D30362D3330222C20226375736970223A2022393132373936525830227D7D",
"OwnerNode": "74"
}
```
{% admonition type="success" name="Tip" %}
By convention, the metadata should decode to JSON data describing what the MPT represents. The [XLS-89d specification](https://github.com/XRPLF/XRPL-Standards/pull/293) defines a recommended format for metadata. For example, the above `MPTokenMetadata` field encodes the sample JSON from the XLS-89d spec, as a UTF-8 string with minimal whitespace.
{% /admonition %}
## MPTokenIssuance Fields
In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields:
| Field Name | JSON Type | Internal Type | Required? | Description |
|:--------------------|:---------------------|:--------------|:----------|:------------|
| `Issuer` | String - [Address][] | AccountID | Yes | The address of the account that controls both the issuance amounts and characteristics of a particular fungible token. |
| `AssetScale` | Number | UInt8 | Yes | Where to put the decimal place when displaying amounts of this MPT. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. For example, if a US Dollar Stablecoin has an asset scale of _2_, then 1 unit of that MPT would equal 0.01 US Dollars. This indicates to how many decimal places the MPT can be subdivided. The default is `0`, meaning that the MPT cannot be divided into smaller than 1 unit. |
| `MaximumAmount` | String - Number | UInt64 | No | The maximum number of MPTs that can exist at one time. If omitted, the maximum is currently limited to 2<sup>63</sup>-1. |
| `OutstandingAmount` | String - Number | UInt64 | Yes | The total amount of MPTs of this issuance currently in circulation. This value increases when the issuer sends MPTs to a non-issuer, and decreases whenever the issuer receives MPTs. |
| `TransferFee` | Number | UInt16 | Yes | This value specifies the fee, in tenths of a basis point, charged by the issuer for secondary sales of the token, if such sales are allowed at all. Valid values for this field are between 0 and 50,000 inclusive. A value of 1 is equivalent to 1/10 of a basis point or 0.001%, allowing transfer rates between 0% and 50%. A `TransferFee` of 50,000 corresponds to 50%. The default value for this field is 0. Any decimals in the transfer fee are rounded down. The fee can be rounded down to zero if the payment is small. Issuers should make sure that their MPT's `AssetScale` is large enough. |
| `MPTokenMetadata` | String - Hexadecimal | Blob | Yes | Arbitrary metadata about this issuance, in hex format. The limit for this field is 1024 bytes. |
| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. |
| `PreviousTxnID` | String - Hexadecimal | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. |
| `Sequence` | Number | UInt32 | Yes | The `Sequence` (or `Ticket`) number of the transaction that created this issuance. This helps to uniquely identify the issuance and distinguish it from any other later MPT issuances created by this account. |
### MPTokenIssuance Flags
Flags are properties or other options associated with the `MPToken` object. Except for `lsfMPTLocked`, which can be mutated via `MPTokenIssuanceSet` transactions, these flags are immutable: they can only be set during the `MPTokenIssuanceCreate` transaction and cannot be changed later.
| Flag Name | Flag Value | Description |
|:--------------------|:-------------|:------------------------------------------------|
| `lsfMPTLocked` | `0x00000001` | If set, indicates that all balances are locked. |
| `lsfMPTCanLock` | `0x00000002` | If set, indicates that the issuer can lock an individual balance or all balances of this MPT. If not set, the MPT cannot be locked in any way. |
| `lsfMPTRequireAuth` | `0x00000004` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. |
| `lsfMPTCanEscrow` | `0x00000008` | If set, indicates that individual holders can place their balances into an escrow. |
| `lsfMPTCanTrade` | `0x00000010` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX or AMM. |
| `lsfMPTCanTransfer` | `0x00000020` | If set, indicates that tokens held by non-issuers can be transferred to other accounts. If not set, indicates that tokens held by non-issuers cannot be transferred except back to the issuer; this enables use cases such as store credit. |
| `lsfMPTCanClawback` | `0x00000040` | If set, indicates that the issuer may use the `Clawback` transaction to claw back value from individual holders. |
## MPTokenIssuanceID
The key of an `MPTokenIssuance` object is the result of SHA512-Half of the following values, concatenated in order:
The ID of an `MPTokenIssuance` entry is the [SHA-512Half][] of the following values, concatenated in order:
- The `MPTokenIssuance` space key (0x007E).
- The transaction sequence number.
@@ -55,39 +74,4 @@ The `MPTokenIssuanceID` is a 192-bit integer, concatenated in order:
- The transaction sequence number.
- The AccountID of the issuer.
## MPTokenIssuance Fields
`MPTokenIssuance` objects have the following fields.
| Field Name | JSON Type | Internal Type | Description |
|:------------------|:----------|:--------------|:------------|
| `LedgerEntryType` | number | UInt16 | The value 0x007E, mapped to the string MPTokenIssuance, indicates that this object describes a Multi-Purpose Token (MPT). |
| `Flags` | number | UInt32 | See [MPTokenIssuance Flags](#mptokenissuance-flags) |
| `Issuer` | string | AccountID | The address of the account that controls both the issuance amounts and characteristics of a particular fungible token. |
| `AssetScale` | number | UInt8 | An asset scale is the difference, in orders of magnitude, between a standard unit and a corresponding fractional unit. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. If the fractional unit equals the standard unit, then the asset scale is 0. |
| `MaximumAmount` | string | UInt64 | This value is an unsigned number that specifies the maximum number of MPTs that can be distributed to non-issuing accounts (i.e., minted). For issuances that do not have a maximum limit, this value should be set to 0x7FFFFFFFFFFFFFFF. |
| `OutstandingAmount` | string | UInt64 | Specifies the sum of all token amounts that have been minted to all token holders. This value can be stored on ledger as a default type so that when its value is 0 it takes up less space on ledger. This value is increased whenever an issuer pays MPTs to a non-issuer account, and decreased whenever a non-issuer pays MPTs into the issuing account. |
| `TransferFee` | number | UInt16 | This value specifies the fee, in tenths of a basis point, charged by the issuer for secondary sales of the token, if such sales are allowed at all. Valid values for this field are between 0 and 50,000 inclusive. A value of 1 is equivalent to 1/10 of a basis point or 0.001%, allowing transfer rates between 0% and 50%. A `TransferFee` of 50,000 corresponds to 50%. The default value for this field is 0. Any decimals in the transfer fee are rounded down. The fee can be rounded down to zero if the payment is small. Issuers should make sure that their MPT's `AssetScale` is large enough. |
| `MPTokenMetadata` | string | Blob | Arbitrary metadata about this issuance, in hex format. The limit for this field is 1024 bytes. |
| `PreviousTxnID` | string | Hash256 | Transaction ID of the transaction that most recently modified this object. |
| `PreviousTxnLgrSeq` | number | UInt32 | The sequence of the ledger that contains the transaction that most recently modified this object. |
| `OwnerNode` | string | UInt64 | The page in the owner's directory where this item is referenced. |
| `Sequence` | number | UInt32 | A 32-bit unsigned integer that is used to ensure issuances from a given sender can only ever exist once, even if an issuance is later deleted. Whenever a new issuance is created, this value must match the account's current `Sequence` number. `Tickets` 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 account Sequence number. Whenever a transaction to create an MPT is included in a ledger, it uses up a sequence number (or Ticket), regardless of whether the transaction executed successfully or failed with a tec-class error code. Other transaction failures don't get included in ledgers, so they don't change the sender's sequence number (or have any other effects). It is possible for multiple unconfirmed MPT-creation transactions to have the same Issuer and sequence number. Such transactions are mutually exclusive, and at most one of them can be included in a validated ledger. (Any others ultimately have no effect.) |
### MPTokenIssuance Flags
Flags are properties or other options associated with the `MPToken` object. Except for `lsfMPTLocked`, which can be mutated via `MPTokenIssuanceSet` transactions, these flags are immutable: they can only be set during the `MPTokenIssuanceCreate` transaction and cannot be changed later.
| Flag Name | Flag Value | Description |
|:--------------------|:-----------|:------------------------------------------------|
| `lsfMPTLocked` | `0x00000001` | If set, indicates that all balances are locked. |
| `lsfMPTCanLock` | `0x00000002` | If set, indicates that the issuer can lock an individual balance or all balances of this MPT. If not set, the MPT cannot be locked in any way. |
| `lsfMPTRequireAuth` | `0x00000004` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. |
| `lsfMPTCanEscrow` | `0x00000008` | If set, indicates that individual holders can place their balances into an escrow. |
| `lsfMPTCanTrade` | `0x00000010` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX or AMM. |
| `lsfMPTCanTransfer` | `0x00000020` | If set, indicates that tokens held by non-issuers can be transferred to other accounts. If not set, indicates that tokens held by non-issuers cannot be transferred except back to the issuer; this enables use cases such as store credit. |
| `lsfMPTCanClawback` | `0x00000040` | If set, indicates that the issuer may use the `Clawback` transaction to claw back value from individual holders. |
{% raw-partial file="/docs/_snippets/common-links.md" /%}

View File

@@ -41,7 +41,7 @@ In addition to the [common fields](../common-fields.md), the {% code-page-name /
|:----------------------|:----------|:------------------|:----------|:---------------------|
| `DisabledValidators` | Array | Array | No | A list of `DisabledValidator` objects (see below), each representing a trusted validator that is currently disabled. |
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x004E`, mapped to the string `NegativeUNL`, indicates that this entry is the Negative UNL. |
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
| `ValidatorToDisable` | String | Blob | No | The public key of a trusted validator that is scheduled to be disabled in the next flag ledger. |
| `ValidatorToReEnable` | String | Blob | No | The public key of a trusted validator in the Negative UNL that is scheduled to be re-enabled in the next flag ledger. |

Some files were not shown because too many files have changed in this diff Show More