From 47a93382420b74d19d1cdfa01eb5455ddda48e63 Mon Sep 17 00:00:00 2001 From: tequ Date: Tue, 26 Mar 2024 17:15:54 +0900 Subject: [PATCH] =?UTF-8?q?[JA]=20replace`=E3=82=B5=E3=83=BC=E3=83=90?= =?UTF-8?q?=E3=83=BC`=20to=20`=E3=82=B5=E3=83=BC=E3=83=90`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- @i18n/ja/about/faq.md | 4 +- .../docs/_snippets/data_types/ledger_index.md | 2 +- .../docs/_snippets/data_types/public_key.md | 4 +- .../ja/docs/_snippets/ledger-objects-intro.md | 2 +- .../docs/_snippets/peer_reservation_object.md | 2 +- .../ja/docs/_snippets/post-rippled-install.md | 8 +- @i18n/ja/docs/_snippets/tutorial-sign-step.md | 2 +- .../docs/_snippets/unsynced_warning_logs.md | 2 +- .../consensus-principles-and-rules.md | 2 +- .../consensus-protections.md | 14 +-- .../consensus-protocol/consensus-structure.md | 50 +++++----- .../concepts/consensus-protocol/fee-voting.md | 2 +- .../docs/concepts/consensus-protocol/index.md | 8 +- .../consensus-protocol/invariant-checking.md | 2 +- .../consensus-protocol/negative-unl.md | 44 ++++----- .../networks-and-servers/amendments.md | 6 +- .../networks-and-servers/clustering.md | 16 +-- .../concepts/networks-and-servers/index.md | 28 +++--- .../networks-and-servers/ledger-history.md | 38 +++---- .../networks-and-servers/parallel-networks.md | 4 +- .../networks-and-servers/peer-protocol.md | 98 +++++++++---------- .../rippled-server-modes.md | 48 ++++----- .../networks-and-servers/the-clio-server.md | 32 +++--- .../transaction-censorship-detection.md | 16 +-- @i18n/ja/docs/concepts/payment-types/index.md | 5 +- .../tokens/decentralized-exchange/offers.md | 2 +- .../concepts/tokens/fungible-tokens/paths.md | 2 +- @i18n/ja/docs/concepts/transactions/fees.md | 2 +- .../transactions/finality-of-results/index.md | 10 +- .../look-up-transaction-results.md | 10 +- .../transaction-malleability.md | 6 +- @i18n/ja/docs/concepts/transactions/index.md | 6 +- .../reliable-transaction-submission.md | 26 ++--- .../concepts/transactions/secure-signing.md | 26 ++--- .../concepts/transactions/transaction-cost.md | 22 ++--- .../transactions/transaction-queue.md | 12 +-- .../docs/infrastructure/commandline-usage.md | 28 +++--- .../configure-amendment-voting.md | 8 +- ...onnect-your-rippled-to-the-xrp-test-net.md | 10 +- .../configure-advisory-deletion.md | 34 +++---- .../data-retention/configure-full-history.md | 54 +++++----- .../configure-history-sharding.md | 24 ++--- .../configure-online-deletion.md | 32 +++--- .../data-retention/history-sharding.md | 18 ++-- .../data-retention/online-deletion.md | 56 +++++------ .../configuration/enable-public-signing.md | 10 +- .../infrastructure/configuration/index.md | 4 +- .../peering/cluster-rippled-servers.md | 30 +++--- .../peering/configure-a-private-server.md | 30 +++--- .../peering/configure-the-peer-crawler.md | 2 +- .../peering/enable-link-compression.md | 2 +- .../peering/forward-ports-for-peering.md | 12 +-- .../configuration/peering/index.md | 6 +- .../manually-connect-to-a-specific-peer.md | 16 +-- .../peering/set-max-number-of-peers.md | 22 ++--- .../peering/use-a-peer-reservation.md | 58 +++++------ .../run-rippled-as-a-stock-server.md | 10 +- .../run-rippled-as-a-validator.md | 64 ++++++------ .../installation/capacity-planning.md | 56 +++++------ .../docs/infrastructure/installation/index.md | 4 +- .../installation/install-clio-on-ubuntu.md | 2 +- ...install-rippled-on-centos-rhel-with-yum.md | 4 +- .../installation/install-rippled-on-ubuntu.md | 6 +- .../rippled-1-3-migration-instructions.md | 4 +- .../installation/system-requirements.md | 2 +- .../update-rippled-automatically-on-linux.md | 6 +- .../update-rippled-manually-on-centos-rhel.md | 4 +- .../update-rippled-manually-on-ubuntu.md | 4 +- .../advance-the-ledger-in-stand-alone-mode.md | 2 +- ...load-a-saved-ledger-in-stand-alone-mode.md | 16 +-- .../run-private-network-with-docker.md | 2 +- ...-new-genesis-ledger-in-stand-alone-mode.md | 4 +- .../troubleshooting/diagnosing-problems.md | 50 +++++----- .../fix-sqlite-tx-db-page-size-issue.md | 34 +++---- .../health-check-interventions.md | 14 +-- .../infrastructure/troubleshooting/index.md | 4 +- .../troubleshooting/server-doesnt-sync.md | 40 ++++---- .../server-is-amendment-blocked.md | 6 +- .../troubleshooting/server-wont-start.md | 22 ++--- .../understanding-log-messages.md | 46 ++++----- @i18n/ja/docs/references/data-api.md | 2 +- .../admin-api-methods/index.md | 26 ++--- .../validation_create.md | 10 +- .../can_delete.md | 10 +- .../crawl_shards.md | 10 +- .../download_shard.md | 12 +-- .../ledger_request.md | 28 +++--- .../log_level.md | 2 +- .../logrotate.md | 2 +- .../peer-management-methods/connect.md | 8 +- .../peer-management-methods/index.md | 2 +- .../peer_reservations_add.md | 8 +- .../peer_reservations_del.md | 4 +- .../peer_reservations_list.md | 4 +- .../peer-management-methods/peers.md | 26 ++--- .../server-control-methods/index.md | 2 +- .../server-control-methods/ledger_accept.md | 8 +- .../server-control-methods/stop.md | 6 +- .../server-control-methods/validation_seed.md | 4 +- .../admin-api-methods/signing-methods/sign.md | 20 ++-- .../signing-methods/sign_for.md | 2 +- .../consensus_info.md | 10 +- .../status-and-debugging-methods/feature.md | 2 +- .../fetch_info.md | 10 +- .../get_counts.md | 8 +- .../status-and-debugging-methods/index.md | 2 +- .../status-and-debugging-methods/print.md | 4 +- .../validator_info.md | 2 +- .../validator_list_sites.md | 2 +- .../validators.md | 10 +- .../api-conventions/error-formatting.md | 14 +-- .../api-conventions/markers-and-pagination.md | 2 +- .../api-conventions/rate-limiting.md | 8 +- .../api-conventions/request-formatting.md | 4 +- .../api-conventions/response-formatting.md | 4 +- .../api-conventions/rippled-server-states.md | 22 ++--- .../references/http-websocket-apis/index.md | 2 +- .../peer-port-methods/health-check.md | 2 +- .../peer-port-methods/peer-crawler.md | 2 +- .../peer-port-methods/validator-list.md | 2 +- .../account-methods/account_channels.md | 6 +- .../account-methods/account_currencies.md | 2 +- .../account-methods/account_info.md | 2 +- .../account-methods/account_lines.md | 2 +- .../account-methods/account_nfts.md | 2 +- .../account-methods/account_objects.md | 4 +- .../account-methods/account_offers.md | 2 +- .../account-methods/account_tx.md | 18 ++-- .../account-methods/gateway_balances.md | 2 +- .../account-methods/noripple_check.md | 2 +- .../public-api-methods/clio-server/index.md | 2 +- .../public-api-methods/index.md | 18 ++-- .../ledger-methods/ledger.md | 4 +- .../ledger-methods/ledger_data.md | 6 +- .../ledger-methods/ledger_entry.md | 2 +- .../book_offers.md | 6 +- .../deposit_authorized.md | 2 +- .../nft_buy_offers.md | 2 +- .../nft_sell_offers.md | 2 +- .../path-and-order-book-methods/path_find.md | 10 +- .../ripple_path_find.md | 6 +- .../channel_authorize.md | 2 +- .../server-info-methods/index.md | 2 +- .../server-info-methods/server_info.md | 2 +- .../server-info-methods/server_state.md | 30 +++--- .../subscription-methods/index.md | 2 +- .../subscription-methods/subscribe.md | 34 +++---- .../subscription-methods/unsubscribe.md | 2 +- .../transaction-methods/submit.md | 22 ++--- .../transaction-methods/submit_multisigned.md | 2 +- .../transaction-methods/transaction_entry.md | 6 +- .../transaction-methods/tx_history.md | 2 +- .../utility-methods/json.md | 2 +- .../utility-methods/ping.md | 2 +- .../utility-methods/random.md | 2 +- .../docs/references/protocol/binary-format.md | 2 +- .../protocol/data-types/basic-data-types.md | 2 +- .../ledger-entry-types/nftokenpage.md | 2 +- .../ledger-entry-types/signerlist.md | 2 +- .../protocol/transactions/common-fields.md | 4 +- .../pseudo-transaction-types.md | 2 +- .../transactions/transaction-results/index.md | 16 +-- .../transaction-results/tec-codes.md | 2 +- .../transaction-results/tef-codes.md | 4 +- .../transaction-results/tel-codes.md | 22 ++--- .../transaction-results/tes-success.md | 2 +- .../protocol/transactions/types/ammbid.md | 2 +- .../protocol/transactions/types/payment.md | 2 +- @i18n/ja/docs/references/xrp-api.md | 2 +- @i18n/ja/docs/references/xrp-ledger-toml.md | 32 +++--- .../references/xrpljs2-migration-guide.md | 8 +- .../disable-master-key-pair.md | 4 +- .../offline-account-setup.md | 4 +- .../send-a-multi-signed-transaction.md | 2 +- .../set-up-multi-signing.md | 2 +- .../manage-account-settings/use-tickets.md | 4 +- @i18n/ja/docs/tutorials/how-tos/send-xrp.md | 12 +-- .../use-payment-channels/index.md | 12 +-- ...onitor-incoming-payments-with-websocket.md | 24 ++--- .../docs/tutorials/javascript/get-started.md | 6 +- @i18n/ja/docs/tutorials/public-servers.md | 20 ++-- .../tokenization/stablecoin-issuer.md | 2 +- @i18n/ja/resources/contribute-code/index.md | 2 +- .../contribute-documentation/index.md | 2 +- @i18n/ja/resources/known-amendments.md | 2 +- docs/_snippets/common-links.md | 2 +- docs/img/_sources/ecosystem.ja.uxf | 4 +- .../validator_info.md | 2 +- locale/ja/LC_MESSAGES/messages.po | 2 +- static/css/devportal2024-v1.css | 2 +- styles/_status-labels.scss | 2 +- 191 files changed, 1083 insertions(+), 1082 deletions(-) diff --git a/@i18n/ja/about/faq.md b/@i18n/ja/about/faq.md index b7455df9c9..01f325697d 100644 --- a/@i18n/ja/about/faq.md +++ b/@i18n/ja/about/faq.md @@ -57,7 +57,7 @@ name: よくある質問 #### バリデータの実行にはいくらかかりますか? -バリデータを実行するのに手数料やXRPは必要ありません。メールサーバーを稼働するための電気代相当です。 +バリデータを実行するのに手数料やXRPは必要ありません。メールサーバを稼働するための電気代相当です。 #### ユニークノードリスト(UNL)とは何ですか? @@ -113,7 +113,7 @@ XRP Ledgerのコンセンサスメカニズムが不利な状況でどのよう 同じネットワーク上で複数のUNLが使われても構いません。各運営者は自分のサーバのUNLをカスタマイズすることもできるし、別の推奨リストに従うこともできます。これらすべてのサーバは同じチェーンを実行し、互いにコンセンサスを得ることができます。 -しかし、もしあなたのUNLが他の人が使っているUNLと十分に重複していなければ、あなたのサーバーが他のネットワークからフォークしてしまう危険性があります。あなたのUNLが他の人が使っているUNLと90%以上重なっていれば、フォークから完全に保護されます。重複が少ない場合、同じチェーンをフォローできるかもしれませんが、重複が少ないほど、ネットワークの接続性が悪いほど、UNLに信頼できないバリデータや悪意のあるバリデータがあるほど、フォークする可能性が高くなります。 +しかし、もしあなたのUNLが他の人が使っているUNLと十分に重複していなければ、あなたのサーバが他のネットワークからフォークしてしまう危険性があります。あなたのUNLが他の人が使っているUNLと90%以上重なっていれば、フォークから完全に保護されます。重複が少ない場合、同じチェーンをフォローできるかもしれませんが、重複が少ないほど、ネットワークの接続性が悪いほど、UNLに信頼できないバリデータや悪意のあるバリデータがあるほど、フォークする可能性が高くなります。 ## XRPの役割 diff --git a/@i18n/ja/docs/_snippets/data_types/ledger_index.md b/@i18n/ja/docs/_snippets/data_types/ledger_index.md index bd7d105b1a..e8b593b59c 100644 --- a/@i18n/ja/docs/_snippets/data_types/ledger_index.md +++ b/@i18n/ja/docs/_snippets/data_types/ledger_index.md @@ -2,6 +2,6 @@ レジャーインデックスがレジャーの順番を示すのに対し、[ハッシュ][]値はレジャーの正確なコンテンツを示します。2つのレジャーが同じハッシュ値を持つ場合、それらは必ず同じものです。検証済みレジャーでは、ハッシュ値とレジャーインデックスは等しく有効で、1:1の関係です。しかし、進行中のレジャーに対しては、以下の理由によりその限りでありません。 -* ネットワーク全体でのトランザクションの伝搬遅延が原因で、2つの異なる`rippled`サーバーで、同じレジャーインデックスを持つ現行レジャーに対するコンテンツが異なる場合があります。 +* ネットワーク全体でのトランザクションの伝搬遅延が原因で、2つの異なる`rippled`サーバで、同じレジャーインデックスを持つ現行レジャーに対するコンテンツが異なる場合があります。 * 決済済みレジャーバージョンが複数あり、コンセンサスによる検証が競合している場合があります。このようなレジャーバージョンでは、レジャーインデックスは同じですが、コンテンツは異なります(ハッシュも異なります)。これらの決済済みレジャーのうち、検証済みになるのは1つだけです。 * 現行のオープンレジャーのハッシュは計算されません。これは、現行レジャーのレジャーインデックスは同じままであっても、コンテンツは時間とともに変化し、ハッシュが変わる可能性があるためです。レジャーのハッシュは、レジャーが閉鎖されるときにのみ計算されます。 diff --git a/@i18n/ja/docs/_snippets/data_types/public_key.md b/@i18n/ja/docs/_snippets/data_types/public_key.md index ef5f573ecd..2aeff9b554 100644 --- a/@i18n/ja/docs/_snippets/data_types/public_key.md +++ b/@i18n/ja/docs/_snippets/data_types/public_key.md @@ -1,8 +1,8 @@ XRP Ledgerは、以下のようなさまざまな状況で暗号署名を検証するために、公開鍵を使用します。 * トランザクションを承認するため。トランザクションに公開鍵が添付されます。公開鍵は、送信元のXRP Ledgerのアドレスか送信者のレギュラーキーアドレスに数学的に関連付けられている必要があります。 -* `rippled`サーバー間のピアツーピア通信の安全を確保するため。これには、データベースが空の状態でサーバーが起動する場合に、サーバーがランダムに生成する「ノード公開鍵」が使用されます。 -* コンセンサスプロセスの一環として検証投票に署名するため。これには、サーバーの運用者が[設定ファイルに定義](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)した「バリデータ公開鍵」が使用されます。 +* `rippled`サーバ間のピアツーピア通信の安全を確保するため。これには、データベースが空の状態でサーバが起動する場合に、サーバがランダムに生成する「ノード公開鍵」が使用されます。 +* コンセンサスプロセスの一環として検証投票に署名するため。これには、サーバの運用者が[設定ファイルに定義](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)した「バリデータ公開鍵」が使用されます。 バリデータ公開鍵とノード公開鍵は、まったく同じフォーマットを使用します。 diff --git a/@i18n/ja/docs/_snippets/ledger-objects-intro.md b/@i18n/ja/docs/_snippets/ledger-objects-intro.md index 544f87eb7d..57b7edee79 100644 --- a/@i18n/ja/docs/_snippets/ledger-objects-intro.md +++ b/@i18n/ja/docs/_snippets/ledger-objects-intro.md @@ -1,3 +1,3 @@ 各[レジャー](../concepts/ledgers/index.md)の状態ツリーは**レジャーオブジェクト**のセットで構成されており、それらが総合して共有レジャーのすべての設定、残高、関係を表します。 -rippledサーバーが互いに通信するために使用する[ピアプロトコル](../concepts/networks-and-servers/peer-protocol.md)では、レジャーオブジェクトは生[バイナリーフォーマット](../references/protocol/binary-format.md)で表されます。rippled APIでは、レジャーオブジェクトはJSONオブジェクトとして表されます。 +rippledサーバが互いに通信するために使用する[ピアプロトコル](../concepts/networks-and-servers/peer-protocol.md)では、レジャーオブジェクトは生[バイナリーフォーマット](../references/protocol/binary-format.md)で表されます。rippled APIでは、レジャーオブジェクトはJSONオブジェクトとして表されます。 diff --git a/@i18n/ja/docs/_snippets/peer_reservation_object.md b/@i18n/ja/docs/_snippets/peer_reservation_object.md index 0bcf6ebf3a..e09a1d0d76 100644 --- a/@i18n/ja/docs/_snippets/peer_reservation_object.md +++ b/@i18n/ja/docs/_snippets/peer_reservation_object.md @@ -1,4 +1,4 @@ | `Field` | 型 | 説明 | |:--------------|:-------|:----------------------------------------------------| -| `node` | 文字列 | この予約の対象となるピアサーバーの[ノード公開鍵][]([base58][])。 | +| `node` | 文字列 | この予約の対象となるピアサーバの[ノード公開鍵][]([base58][])。 | | `description` | 文字列 | _(省略される場合があります)_ このピアリザベーションの説明(ある場合)。 | diff --git a/@i18n/ja/docs/_snippets/post-rippled-install.md b/@i18n/ja/docs/_snippets/post-rippled-install.md index 83712f6420..ac81bdd5e6 100644 --- a/@i18n/ja/docs/_snippets/post-rippled-install.md +++ b/@i18n/ja/docs/_snippets/post-rippled-install.md @@ -2,17 +2,17 @@ `rippled`ログメッセージの詳細は、[ログメッセージについて](../infrastructure/troubleshooting/understanding-log-messages.md)を参照してください。 -`rippled`が残りのネットワークと同期されたら、ストック`rippled`サーバーが完全に機能するようになります。このサーバーを、ローカル署名やXRP LedgerへのAPIアクセスに使用できます。`rippled`サーバーがネットワークと同期されているかどうかを判別するには、[`rippled`サーバーの状況](../references/http-websocket-apis/api-conventions/rippled-server-states.md)を使用します。[`rippled`のコマンドラインインターフェイス](../tutorials/http-websocket-apis/build-apps/get-started.md#コマンドライン)を使用すれば、これを迅速にテストできます。 +`rippled`が残りのネットワークと同期されたら、ストック`rippled`サーバが完全に機能するようになります。このサーバを、ローカル署名やXRP LedgerへのAPIアクセスに使用できます。`rippled`サーバがネットワークと同期されているかどうかを判別するには、[`rippled`サーバの状況](../references/http-websocket-apis/api-conventions/rippled-server-states.md)を使用します。[`rippled`のコマンドラインインターフェイス](../tutorials/http-websocket-apis/build-apps/get-started.md#コマンドライン)を使用すれば、これを迅速にテストできます。 ```sh rippled server_info ``` -rippled APIを使用した`rippled`サーバーとの通信について詳しくは、[rippled API reference](../references/http-websocket-apis/index.md)を参照してください。 +rippled APIを使用した`rippled`サーバとの通信について詳しくは、[rippled API reference](../references/http-websocket-apis/index.md)を参照してください。 -ストック`rippled`サーバーを実行できたら、次に検証サーバーとして実行してみましょう。検証サーバーについて、そして検証サーバーを実行する理由については、[バリデータとしてのrippledの実行](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)を参照してください。 +ストック`rippled`サーバを実行できたら、次に検証サーバとして実行してみましょう。検証サーバについて、そして検証サーバを実行する理由については、[バリデータとしてのrippledの実行](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)を参照してください。 -`rippled`サーバーの起動でお困りですか? [rippledサーバーが起動しない](../infrastructure/troubleshooting/server-wont-start.md)を参照してください。 +`rippled`サーバの起動でお困りですか? [rippledサーバが起動しない](../infrastructure/troubleshooting/server-wont-start.md)を参照してください。 ### その他の構成 diff --git a/@i18n/ja/docs/_snippets/tutorial-sign-step.md b/@i18n/ja/docs/_snippets/tutorial-sign-step.md index 103acb01eb..8c03b53cc5 100644 --- a/@i18n/ja/docs/_snippets/tutorial-sign-step.md +++ b/@i18n/ja/docs/_snippets/tutorial-sign-step.md @@ -1,3 +1,3 @@ -トランザクションに署名する最も安全な方法は、[クライアントライブラリ](../references/client-libraries.md)を使用してローカルで署名することです。[signメソッド](../references/http-websocket-apis/admin-api-methods/signing-methods/sign.md)を使用してトランザクションに署名することもできますが、その場合は信頼できる暗号化された接続を使用するか、ローカル接続を使用して、自分が管理しているサーバーに対してのみに行うようにしてください。 +トランザクションに署名する最も安全な方法は、[クライアントライブラリ](../references/client-libraries.md)を使用してローカルで署名することです。[signメソッド](../references/http-websocket-apis/admin-api-methods/signing-methods/sign.md)を使用してトランザクションに署名することもできますが、その場合は信頼できる暗号化された接続を使用するか、ローカル接続を使用して、自分が管理しているサーバに対してのみに行うようにしてください。 いずれの場合も、後のために、署名したトランザクションの識別用ハッシュを書き留めておいてください。 diff --git a/@i18n/ja/docs/_snippets/unsynced_warning_logs.md b/@i18n/ja/docs/_snippets/unsynced_warning_logs.md index 7d4b70553d..4a5513cd92 100644 --- a/@i18n/ja/docs/_snippets/unsynced_warning_logs.md +++ b/@i18n/ja/docs/_snippets/unsynced_warning_logs.md @@ -1 +1 @@ -サーバー起動後の最初の5~15分間に、サーバーがネットワークの他の部分と同期せず、このようなメッセージが出力されることは特に異常な動作ではありません。サーバー起動後かなり経過してからこれらのメッセージが書き込まれる場合は、問題が発生している可能性があります。一般的な原因としては、ネットワーク接続の信頼性が低いことや、[ハードウェアのスペック](../infrastructure/installation/system-requirements.md)が不十分であることが考えられます。また、同じハードウェアで実行されている他のプロセスがリソースをめぐって`rippled`と競合している場合にも発生する可能性があります。(`rippled`とリソースをめぐって競合する可能性のある他のプロセスの例としては、スケジュール済みバックアップ、ウィルススキャナー、定期的なデータベースクリーナーなどがあります。) +サーバ起動後の最初の5~15分間に、サーバがネットワークの他の部分と同期せず、このようなメッセージが出力されることは特に異常な動作ではありません。サーバ起動後かなり経過してからこれらのメッセージが書き込まれる場合は、問題が発生している可能性があります。一般的な原因としては、ネットワーク接続の信頼性が低いことや、[ハードウェアのスペック](../infrastructure/installation/system-requirements.md)が不十分であることが考えられます。また、同じハードウェアで実行されている他のプロセスがリソースをめぐって`rippled`と競合している場合にも発生する可能性があります。(`rippled`とリソースをめぐって競合する可能性のある他のプロセスの例としては、スケジュール済みバックアップ、ウィルススキャナー、定期的なデータベースクリーナーなどがあります。) diff --git a/@i18n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md b/@i18n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md index 864cae77ec..44c9a650eb 100644 --- a/@i18n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md +++ b/@i18n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md @@ -18,7 +18,7 @@ XRP Ledgerのテクノロジーにより、ほぼリアルタイムでの決済 根本的には、XRP Ledgerはアカウント、残高、および資産取引オファーなどの情報を記録する共有データベースです。「トランザクション」と呼ばれる署名付きの指示により、アカウントの作成、支払いの実行、資産の取引などの変更が行われます。 -暗号化システムであるため、XRP Ledgerアカウントの所有者は _暗号ID_ により識別されます。暗号IDは、公開鍵/秘密鍵のペアに相当します。トランザクションは、暗号IDに一致する暗号署名によって承認されます。すべてのサーバーでは、同一の確定的な既知のルールに基づいてすべてのトランザクションが処理されます。最終的な目標は、ネットワーク内のすべてのサーバーがまったく同じレジャー状態の完全なコピーを保有できるようにし、1つの中央機関がトランザクションを調停する必要がないようにすることです。 +暗号化システムであるため、XRP Ledgerアカウントの所有者は _暗号ID_ により識別されます。暗号IDは、公開鍵/秘密鍵のペアに相当します。トランザクションは、暗号IDに一致する暗号署名によって承認されます。すべてのサーバでは、同一の確定的な既知のルールに基づいてすべてのトランザクションが処理されます。最終的な目標は、ネットワーク内のすべてのサーバがまったく同じレジャー状態の完全なコピーを保有できるようにし、1つの中央機関がトランザクションを調停する必要がないようにすることです。 ## 二重支払いの問題 diff --git a/@i18n/ja/docs/concepts/consensus-protocol/consensus-protections.md b/@i18n/ja/docs/concepts/consensus-protocol/consensus-protections.md index c5116e882a..a2c7fb64f4 100644 --- a/@i18n/ja/docs/concepts/consensus-protocol/consensus-protections.md +++ b/@i18n/ja/docs/concepts/consensus-protocol/consensus-protections.md @@ -16,11 +16,11 @@ XRP Ledgerコンセンサスプロトコルは、 _ビザンチンフォール ## 個々のバリデータの不適切な動作 -_バリデータ_ とは、新しいレジャーバージョンの決定プロセスにアクティブに参加するサーバーです。バリデータは、そのバリデータを信用するように設定されているサーバーにのみ影響を与えます(間接的な影響を含む)。一部バリデータの動作が不適切であってもコンセンサスを継続できます。このような不適切な動作には、以下のさまざまなケースがあります。 +_バリデータ_ とは、新しいレジャーバージョンの決定プロセスにアクティブに参加するサーバです。バリデータは、そのバリデータを信用するように設定されているサーバにのみ影響を与えます(間接的な影響を含む)。一部バリデータの動作が不適切であってもコンセンサスを継続できます。このような不適切な動作には、以下のさまざまなケースがあります。 - 使用できないかまたは過負荷状態である。 - ネットワークから部分的に切断されており、メッセージが遅延なしで届くのは一部の参加者に限られる。 -- 他のサーバーを欺くかまたはネットワークを停止する目的で意図的に動作している。 +- 他のサーバを欺くかまたはネットワークを停止する目的で意図的に動作している。 - 外部要因(抑圧的な政府からの脅威など)からのプレッシャーによって不正に動作している。 - バグまたは古いソフトウェアが原因で、わかりにくいメッセージまたは誤った形式のメッセージが偶発的に送信される。 @@ -33,7 +33,7 @@ _バリデータ_ とは、新しいレジャーバージョンの決定プロ ## ソフトウェアの脆弱性 -あらゆるソフトウェアシステムと同様に、XRP Ledgerコンセンサスプロトコル、広く導入されているソフトウェアパッケージ、またはその依存関係の実装に伴うバグ(または意図的に悪意のあるコード)の問題には、真剣に取り組む必要があります。巧妙に作成された入力を取り込んだサーバーをクラッシュさせるだけのバグであっても、ネットワークの進捗を妨害する目的で悪用される可能性があります。XRP Ledgerの開発者はこのような脅威に対処するため、次のようなさまざまな対策を導入しています。 +あらゆるソフトウェアシステムと同様に、XRP Ledgerコンセンサスプロトコル、広く導入されているソフトウェアパッケージ、またはその依存関係の実装に伴うバグ(または意図的に悪意のあるコード)の問題には、真剣に取り組む必要があります。巧妙に作成された入力を取り込んだサーバをクラッシュさせるだけのバグであっても、ネットワークの進捗を妨害する目的で悪用される可能性があります。XRP Ledgerの開発者はこのような脅威に対処するため、次のようなさまざまな対策を導入しています。 - [オープンソースコードベース](https://github.com/XRPLF/rippled/)。これにより、一般のユーザーが関連ソフトウェアをレビュー、コンパイルし、個別にテストできます。 - 公式XRP Ledgerリポジトリのあらゆる変更のための綿密で堅固なコードレビュープロセス。 @@ -46,9 +46,9 @@ _バリデータ_ とは、新しいレジャーバージョンの決定プロ _[シビル攻撃](https://en.wikipedia.org/wiki/Sybil_attack)_ とは、大量の偽IDを使ってネットワークのコントロールを試みる攻撃です。XRP Ledgerでは、シビル攻撃は多数のバリデータを操作して、他のバリデータにこれらのバリデータを信頼するように仕向ける形で攻撃をしかける可能性があります。このような攻撃は理論上は可能ですが、バリデータが信頼を得るには人間による介入が必要であるため、実際には非常に困難です。 -攻撃者が操作する検証サーバーの数に関係なく、既存の参加者が攻撃者のバリデータを信頼しない限りは、これらの参加者が何を検証済みと判断するかについて、このようなサーバーが影響を及ぼすことはできません。その他のサーバーは、バリデータリストまたは明示的な設定によって信頼できると設定されたバリデータのみを信頼します。(デフォルトのバリデータリストの仕組みの概要については、[バリデータ重複要件](#バリデータ重複要件)を参照してください。) +攻撃者が操作する検証サーバの数に関係なく、既存の参加者が攻撃者のバリデータを信頼しない限りは、これらの参加者が何を検証済みと判断するかについて、このようなサーバが影響を及ぼすことはできません。その他のサーバは、バリデータリストまたは明示的な設定によって信頼できると設定されたバリデータのみを信頼します。(デフォルトのバリデータリストの仕組みの概要については、[バリデータ重複要件](#バリデータ重複要件)を参照してください。) -この信頼は自動的に形成されるものではありません。したがってシビル攻撃を成功させるには、ターゲットとなる人物や企業が、攻撃者のバリデータを信頼してXRP Ledgerサーバーを再設定するように仕向けるという難しい作業をこなさなければなりません。ある人物または企業がだまされてXRP Ledgerサーバーを再設定したとしても、自らの設定を変更していない他の人物や企業に対する影響は最小限となります。 +この信頼は自動的に形成されるものではありません。したがってシビル攻撃を成功させるには、ターゲットとなる人物や企業が、攻撃者のバリデータを信頼してXRP Ledgerサーバを再設定するように仕向けるという難しい作業をこなさなければなりません。ある人物または企業がだまされてXRP Ledgerサーバを再設定したとしても、自らの設定を変更していない他の人物や企業に対する影響は最小限となります。 ## 51%攻撃 @@ -60,9 +60,9 @@ _[シビル攻撃](https://en.wikipedia.org/wiki/Sybil_attack)_ とは、大量 XRP Ledgerのすべての参加者が何を検証済みとみなすかについて合意するには、参加者はまず、他の参加者が選択したバリデータ群によく似た信頼できるバリデータ群を選択する必要があります。最悪のケースでは、重複が約90%未満のために一部の参加者間に不一致が生じる場合があります。そのため、業界やコミュニティによって運営されている信頼できる、よくメンテナンスされたサーバを含むことを意味する、推奨バリデータの署名されたリストがあります。 -デフォルトでは、XRP LedgerサーバーはXRPL財団やRippleが運用するバリデータリストサイトを使用するように設定されています。各サイトでは定期的に更新する推奨バリデータリスト(推奨 _ユニークノードリスト_ (UNL))が公開されています。このように設定されているサーバーは、最新バージョンのリストに含まれているすべてのバリデータを信頼します。これにより、同じリストを使用する他のサーバーと100%重複することが保証されます。デフォルトの設定には、サイトのコンテンツの真正性を検証する公開鍵が含まれています。サイトがダウンした場合、XRP Ledgerのピアツーピアネットワーク内のサーバー間でリストに対する署名済みの更新を直接中継できます。 +デフォルトでは、XRP LedgerサーバはXRPL財団やRippleが運用するバリデータリストサイトを使用するように設定されています。各サイトでは定期的に更新する推奨バリデータリスト(推奨 _ユニークノードリスト_ (UNL))が公開されています。このように設定されているサーバは、最新バージョンのリストに含まれているすべてのバリデータを信頼します。これにより、同じリストを使用する他のサーバと100%重複することが保証されます。デフォルトの設定には、サイトのコンテンツの真正性を検証する公開鍵が含まれています。サイトがダウンした場合、XRP Ledgerのピアツーピアネットワーク内のサーバ間でリストに対する署名済みの更新を直接中継できます。 -技術的には、サーバーを実行している場合、各自のリストサイトを設定するかまたは信頼できるバリデータを個別に明示的に選択することができますが、これらを行うことは推奨されません。選択したバリデータ群と他のサーバーとの重複が十分ではない場合、サーバーはネットワークの他の部分と不一致になる可能性があり、サーバーが不一致の状態でアクションを実行すると資金を失う可能性があります。 +技術的には、サーバを実行している場合、各自のリストサイトを設定するかまたは信頼できるバリデータを個別に明示的に選択することができますが、これらを行うことは推奨されません。選択したバリデータ群と他のサーバとの重複が十分ではない場合、サーバはネットワークの他の部分と不一致になる可能性があり、サーバが不一致の状態でアクションを実行すると資金を失う可能性があります。 コンセンサスプロトコルの設計を改善し、より多様性のあるバリデータリストを実現するための研究が進んでいます。詳細は、[コンセンサスの研究](consensus-research.md)ページを参照してください。 diff --git a/@i18n/ja/docs/concepts/consensus-protocol/consensus-structure.md b/@i18n/ja/docs/concepts/consensus-protocol/consensus-structure.md index e3cb115062..7131bd0a99 100644 --- a/@i18n/ja/docs/concepts/consensus-protocol/consensus-structure.md +++ b/@i18n/ja/docs/concepts/consensus-protocol/consensus-structure.md @@ -17,7 +17,7 @@ XRP Ledger上でアプリケーションを構築する場合は、XRP Ledger AP ## まえがき -ピアツーピアサーバーのXRP Ledgerネットワークは世界で共有されている台帳であり、ここから、アプリケーションはこの台帳の内容の状態に関して信頼できる情報を得ることができます。この状態に関する情報には以下の内容が含まれます。 +ピアツーピアサーバのXRP Ledgerネットワークは世界で共有されている台帳であり、ここから、アプリケーションはこの台帳の内容の状態に関して信頼できる情報を得ることができます。この状態に関する情報には以下の内容が含まれます。 - 各[アカウント](../accounts/index.md)の設定 - XRPおよび[トークン](../tokens/index.md)の残高 @@ -39,7 +39,7 @@ _図2: XRP Ledgerの履歴_ レジャーバージョンには2つの識別子があります。1つ目の識別子は、そのレジャーバージョンの _レジャーインデックス_ です。レジャーバージョンの番号は1つずつ増加します。例えば、現行のレジャーバージョンのレジャーインデックスが100の場合、1つ前はレジャーインデックス99、1つ後はレジャーインデックスは101です。もう1つの識別子は _レジャーハッシュ_ で、レジャーの内容のデジタル指紋を表します。 -サーバーがレジャーに適用するトランザクションを提案するときに、内容がわずかに異なる複数の候補レジャーバージョンが作成される場合があります。このような候補レジャーバージョンでは、レジャーインデックスは同じですがレジャーハッシュが異なります。多くの候補のうち、検証済みとなるのは1つだけです。それ以外の候補レジャーバージョンはすべて、破棄されます。そのため、履歴内の各レジャーインデックスに対して存在する検証済みのレジャーハッシュは1つのみです。 +サーバがレジャーに適用するトランザクションを提案するときに、内容がわずかに異なる複数の候補レジャーバージョンが作成される場合があります。このような候補レジャーバージョンでは、レジャーインデックスは同じですがレジャーハッシュが異なります。多くの候補のうち、検証済みとなるのは1つだけです。それ以外の候補レジャーバージョンはすべて、破棄されます。そのため、履歴内の各レジャーインデックスに対して存在する検証済みのレジャーハッシュは1つのみです。 レジャーに対するユーザーレベルの変更は、トランザクションによってなされます。[トランザクション](../../references/protocol/transactions/index.md)の例としては、決済、アカウントの設定またはトラストラインの変更、取引のオファー(注文)などがあります。各トランザクションは、レジャーに対する1つ以上の変更を承認するものであり、アカウント所有者によって暗号署名されます。アカウントの変更を承認したり、レジャーのそれ以外の内容を変更したりするには、トランザクションだけが唯一の方法です。 @@ -63,25 +63,25 @@ _図3: レジャーバージョンに適用されるトランザクション_ ## XRP Ledgerプロトコル - コンセンサスと検証 -ピアツーピアのXRP Ledgerネットワークは、トランザクションを承認して処理する多数の独立したXRP Ledgerサーバー(通常、[`rippled`](../networks-and-servers/index.md)を実行)で構成されています。クライアントアプリケーションは、トランザクションに署名してXRP Ledgerサーバーに送信します。サーバーは、これらの候補トランザクションを処理するためにネットワーク内を中継します。クライアントアプリケーションには、モバイルおよびウェブウォレット、金融機関へのゲートウェイ、電子取引プラットフォームなどがあります。 +ピアツーピアのXRP Ledgerネットワークは、トランザクションを承認して処理する多数の独立したXRP Ledgerサーバ(通常、[`rippled`](../networks-and-servers/index.md)を実行)で構成されています。クライアントアプリケーションは、トランザクションに署名してXRP Ledgerサーバに送信します。サーバは、これらの候補トランザクションを処理するためにネットワーク内を中継します。クライアントアプリケーションには、モバイルおよびウェブウォレット、金融機関へのゲートウェイ、電子取引プラットフォームなどがあります。 [![図4: XRP Ledgerプロトコルの参加者](/docs/img/xrp-ledger-network.ja.png)](/docs/img/xrp-ledger-network.ja.png) _図4: XRP Ledgerプロトコルの参加者_ -トランザクションを受信、中継、処理するサーバーは、追跡サーバーとバリデータのいずれかです。追跡サーバーの主な機能には、クライアントからのトランザクションの分散やレジャーに関する照会へのレスポンスが含まれます。検証サーバーは、追跡サーバーと同じ機能を実行し、さらにレジャー履歴を進めます3。 +トランザクションを受信、中継、処理するサーバは、追跡サーバとバリデータのいずれかです。追跡サーバの主な機能には、クライアントからのトランザクションの分散やレジャーに関する照会へのレスポンスが含まれます。検証サーバは、追跡サーバと同じ機能を実行し、さらにレジャー履歴を進めます3。 -クライアントアプリケーションによって送信されたトランザクションを受け入れるときに、各追跡サーバーは最後に検証されたレジャーを開始点として使用します。受け入れられたトランザクションは候補トランザクションとなります。サーバーから候補トランザクションがそれぞれのピアに中継され、候補トランザクションがネットワーク全体に伝達されます。理想的には、各候補トランザクションはすべてのサーバーに伝達される必要があります。その結果、各サーバーは最後に検証されたレジャーに同じ一連のトランザクションを適用できる可能性が高くなります。しかし、トランザクションが伝達されるまでには時間がかかるため、サーバーは常に同じ候補トランザクションを処理するわけではありません。このことを考慮に入れて、XRP Ledgerでは、コンセンサスと呼ばれるプロセスを使用して、同一のトランザクションが処理され、ピアツーピアのXRP Ledgerネットワーク全体で検証済みのレジャーの一貫性が確保できるようにしています。 +クライアントアプリケーションによって送信されたトランザクションを受け入れるときに、各追跡サーバは最後に検証されたレジャーを開始点として使用します。受け入れられたトランザクションは候補トランザクションとなります。サーバから候補トランザクションがそれぞれのピアに中継され、候補トランザクションがネットワーク全体に伝達されます。理想的には、各候補トランザクションはすべてのサーバに伝達される必要があります。その結果、各サーバは最後に検証されたレジャーに同じ一連のトランザクションを適用できる可能性が高くなります。しかし、トランザクションが伝達されるまでには時間がかかるため、サーバは常に同じ候補トランザクションを処理するわけではありません。このことを考慮に入れて、XRP Ledgerでは、コンセンサスと呼ばれるプロセスを使用して、同一のトランザクションが処理され、ピアツーピアのXRP Ledgerネットワーク全体で検証済みのレジャーの一貫性が確保できるようにしています。 ### コンセンサス -ネットワーク内のサーバーは、候補トランザクションに関する情報を共有します。コンセンサスプロセスを通じて、バリデータは、候補トランザクションの特定のサブセットが次のレジャーで考慮されることに同意します。コンセンサスとは、サーバーが提案や一連の候補トランザクションを中継する反復プロセスです。サーバーは、選択されたバリデータの圧倒的多数4が同じ候補トランザクションのセットについて合意するまで、提案の通信と更新を行います。 +ネットワーク内のサーバは、候補トランザクションに関する情報を共有します。コンセンサスプロセスを通じて、バリデータは、候補トランザクションの特定のサブセットが次のレジャーで考慮されることに同意します。コンセンサスとは、サーバが提案や一連の候補トランザクションを中継する反復プロセスです。サーバは、選択されたバリデータの圧倒的多数4が同じ候補トランザクションのセットについて合意するまで、提案の通信と更新を行います。 -コンセンサスの間、各サーバーは、そのサーバーの信頼できるバリデータ( _ユニークノードリスト(UNL)_ )と呼ばれる特定のサーバー群からの提案を評価します。5信頼できるバリデータとは、提案を評価するサーバーを欺こうと共謀しない、全体として「信頼できる」ネットワークのサブセットを表します。この「信頼」の定義では、選択された個々のバリデータが信頼されている必要はありません。バリデータの選択は、ネットワークに中継されたデータを改ざんする組織的な試みで共謀しないという想定に基づいて行われます6 +コンセンサスの間、各サーバは、そのサーバの信頼できるバリデータ( _ユニークノードリスト(UNL)_ )と呼ばれる特定のサーバ群からの提案を評価します。5信頼できるバリデータとは、提案を評価するサーバを欺こうと共謀しない、全体として「信頼できる」ネットワークのサブセットを表します。この「信頼」の定義では、選択された個々のバリデータが信頼されている必要はありません。バリデータの選択は、ネットワークに中継されたデータを改ざんする組織的な試みで共謀しないという想定に基づいて行われます6 [![図5: バリデータによるトランザクションセットの提案と修正](/docs/img/consensus-rounds.ja.png)](/docs/img/consensus-rounds.ja.png) -_図5: バリデータによるトランザクションセットの提案と修正 - コンセンサスの開始時点で、バリデータ毎に異なるトランザクションセットを持っている可能性があります。後のラウンドで、サーバーは現在の提案を信頼できるバリデータの提案と一致するように変更します。このプロセスでは、現在議論しているレジャーバージョンに適用するトランザクションと、それ以降のレジャーバージョンに適用するトランザクションを決定します。_ +_図5: バリデータによるトランザクションセットの提案と修正 - コンセンサスの開始時点で、バリデータ毎に異なるトランザクションセットを持っている可能性があります。後のラウンドで、サーバは現在の提案を信頼できるバリデータの提案と一致するように変更します。このプロセスでは、現在議論しているレジャーバージョンに適用するトランザクションと、それ以降のレジャーバージョンに適用するトランザクションを決定します。_ 合意済みの提案に含まれていない候補トランザクションは、その後も候補トランザクションとして残ります。これらは次のレジャーバージョンで再度検討される可能性があります。通常、1つのレジャーバージョンから除外されたトランザクションは、次のレジャーバージョンに含まれます。 @@ -89,7 +89,7 @@ _図5: バリデータによるトランザクションセットの提案と修 ### 検証 -検証は、全体のコンセンサスプロセスの第2段階です。このプロセスでは、すべてのサーバーで同じ結果が得られたことを確認し、あるレジャーバージョンが最終バージョンとして宣言されます。まれに、第一段階の[コンセンサスプロセスが失敗する場合](consensus-principles-and-rules.md#コンセンサス失敗の可能性)があります。検証によって後で確認が行われるため、サーバーは結果を確認し、それに応じて対処することができます。 +検証は、全体のコンセンサスプロセスの第2段階です。このプロセスでは、すべてのサーバで同じ結果が得られたことを確認し、あるレジャーバージョンが最終バージョンとして宣言されます。まれに、第一段階の[コンセンサスプロセスが失敗する場合](consensus-principles-and-rules.md#コンセンサス失敗の可能性)があります。検証によって後で確認が行われるため、サーバは結果を確認し、それに応じて対処することができます。 検証は、大きく分けて次の2つの部分に分かれます。 @@ -101,13 +101,13 @@ _図5: バリデータによるトランザクションセットの提案と修 #### 検証の計算と共有 -コンセンサスプロセスが完了すると、各サーバーは合意済みの一連のトランザクションから新しいレジャーを個別に計算します。各サーバーは、同じ規則に従って結果を次のように計算します。 +コンセンサスプロセスが完了すると、各サーバは合意済みの一連のトランザクションから新しいレジャーを個別に計算します。各サーバは、同じ規則に従って結果を次のように計算します。 1. 一つ前の検証済みのレジャーから始めます。 -2. すべてのサーバーが同じ方法で処理できるように、合意済みのトランザクションセットを _正規順序_ で並べ変えます。 +2. すべてのサーバが同じ方法で処理できるように、合意済みのトランザクションセットを _正規順序_ で並べ変えます。 - [正規順序](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/src/ripple/app/misc/CanonicalTXSet.cpp#L25-L36)は、トランザクションを受け取った順序ではありません(サーバーが同じトランザクションを異なる順序で受け取る可能性があるため)。参加者がトランザクションの順序付けで競合しないように、故意に操作するのが困難な正規順序を使います。 + [正規順序](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/src/ripple/app/misc/CanonicalTXSet.cpp#L25-L36)は、トランザクションを受け取った順序ではありません(サーバが同じトランザクションを異なる順序で受け取る可能性があるため)。参加者がトランザクションの順序付けで競合しないように、故意に操作するのが困難な正規順序を使います。 3. 指示に従って、各トランザクションを順番に処理します。それに応じてレジャーの状態データを更新します。 @@ -121,25 +121,25 @@ _図5: バリデータによるトランザクションセットの提案と修 5. 新しいレジャーバージョンの識別用ハッシュを計算します。 -[![図7: XRP Ledgerサーバーでレジャー検証を計算する](/docs/img/consensus-calculate-validation.ja.png)](/docs/img/consensus-calculate-validation.ja.png) +[![図7: XRP Ledgerサーバでレジャー検証を計算する](/docs/img/consensus-calculate-validation.ja.png)](/docs/img/consensus-calculate-validation.ja.png) -_図7: XRP Ledgerサーバーでレジャー検証を計算する - 各サーバーは、同意済みのトランザクションを前の検証済みレジャーに適用します。バリデータは結果をネットワーク全体に送信します。_ +_図7: XRP Ledgerサーバでレジャー検証を計算する - 各サーバは、同意済みのトランザクションを前の検証済みレジャーに適用します。バリデータは結果をネットワーク全体に送信します。_ #### 結果を比較する -バリデータはそれぞれ、計算したレジャーバージョンのハッシュを含む署名付きメッセージの形式で結果を中継します。 _検証_ と呼ばれるこれらのメッセージによって、各サーバーで計算したレジャーとそのピアのレジャーを比較することができます。 +バリデータはそれぞれ、計算したレジャーバージョンのハッシュを含む署名付きメッセージの形式で結果を中継します。 _検証_ と呼ばれるこれらのメッセージによって、各サーバで計算したレジャーとそのピアのレジャーを比較することができます。 [![図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが検証される](/docs/img/consensus-declare-validation.ja.png)](/docs/img/consensus-declare-validation.ja.png) -_図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが検証される - 各サーバーは、計算されたレジャーを、選択されたバリデータから受け取ったハッシュと比較します。一致しない場合、サーバーは正しいレジャーを再計算または取得する必要があります。_ +_図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが検証される - 各サーバは、計算されたレジャーを、選択されたバリデータから受け取ったハッシュと比較します。一致しない場合、サーバは正しいレジャーを再計算または取得する必要があります。_ -ネットワーク内のサーバーは、圧倒的多数のピアが同じ検証ハッシュに署名してそれをブロードキャストしたときに、そのレジャーインスタンスを検証済みと認識します 7。それ以降のトランザクションは、レジャーインデックスN+1の更新および検証済みのこのレジャーに適用されます。 +ネットワーク内のサーバは、圧倒的多数のピアが同じ検証ハッシュに署名してそれをブロードキャストしたときに、そのレジャーインスタンスを検証済みと認識します 7。それ以降のトランザクションは、レジャーインデックスN+1の更新および検証済みのこのレジャーに適用されます。 -サーバーが少数で、ピアと異なるレジャーを計算した場合、計算したレジャーは無視されます8。正しいレジャーを再計算するか、必要に応じて正しいレジャーを取得します。 +サーバが少数で、ピアと異なるレジャーを計算した場合、計算したレジャーは無視されます8。正しいレジャーを再計算するか、必要に応じて正しいレジャーを取得します。 -ネットワークで、検証に関する圧倒的多数の同意が得られない場合、コンセンサスプロセスで一貫した提案を作成するにはトランザクション量が多すぎるか、ネットワーク遅延が大きすぎることを意味します。この場合、サーバーはコンセンサスプロセスを繰り返します。コンセンサスが始まってから時間が経過するにつれて、各コンセンサスラウンドで不一致は減少するため、過半数のサーバーが同じ候補トランザクションのセットを受け取った可能性が高くなります。XRP Ledgerは、これらの状況に応じて[トランザクションコスト](../transactions/transaction-cost.md)と、コンセンサスを待つ時間を動的に調整します。 +ネットワークで、検証に関する圧倒的多数の同意が得られない場合、コンセンサスプロセスで一貫した提案を作成するにはトランザクション量が多すぎるか、ネットワーク遅延が大きすぎることを意味します。この場合、サーバはコンセンサスプロセスを繰り返します。コンセンサスが始まってから時間が経過するにつれて、各コンセンサスラウンドで不一致は減少するため、過半数のサーバが同じ候補トランザクションのセットを受け取った可能性が高くなります。XRP Ledgerは、これらの状況に応じて[トランザクションコスト](../transactions/transaction-cost.md)と、コンセンサスを待つ時間を動的に調整します。 -検証について圧倒的多数の合意が得られると、サーバーは検証済みの新しいレジャー、レジャーインデックスN+1との作業に入ることができます。最後のラウンドに含まれなかった候補トランザクションと、その間に送信された新しいトランザクションに対して、コンセンサスと検証プロセスが繰り返されます9。 +検証について圧倒的多数の合意が得られると、サーバは検証済みの新しいレジャー、レジャーインデックスN+1との作業に入ることができます。最後のラウンドに含まれなかった候補トランザクションと、その間に送信された新しいトランザクションに対して、コンセンサスと検証プロセスが繰り返されます9。 ## 要点 @@ -168,7 +168,7 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され - 結果コードが**tesSUCCESS**で`"validated": true`のトランザクションは、恒久的に成功しています。 - 結果コードがそれ以外の場合で`"validated": true`のトランザクションは、恒久的に失敗しています。 - トランザクションの`LastLedgerSequence`によって識別された検証済みレジャーを含め、これまでの検証済みのレジャーに出現しないトランザクションは、恒久的に失敗しています。 - - このようなケースを検出するために、レジャーの継続的な履歴を有するサーバーを使用には注意してください10。 + - このようなケースを検出するために、レジャーの継続的な履歴を有するサーバを使用には注意してください10。 - `LastLedgerSequence`で識別されるレジャーが検証されるまで、トランザクションの状態を繰り返し確認する必要がある場合があります。 ## 関連項目 @@ -197,20 +197,20 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され 2 – 例えば、Aliceが100ドルを持っていて、全額をBobに送信するシナリオを考えてみましょう。アプリケーションは最初にPaymentトランザクションを送信し、Aliceの残高を確認したらすぐにAPIから0ドルが返されます。この値は、候補トランザクションの暫定結果に基づいています。支払いが失敗し、Aliceの残高が100ドルのままになる(または他のトランザクションによって別の金額になる)場合があります。AliceからBobへの支払いが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ結果コードが**tesSUCCESS**になるまで、トランザクションの状況を確認することです。トランザクションが検証済みレジャーにあるが、結果コードが異なる場合、支払いは失敗したことを意味します。 -3 – 厳密に言えば、バリデータは追跡サーバーのサブセットです。同じ機能を提供することに加えて、「検証」メッセージを送信します。追跡サーバーは、レジャー履歴全体を保持しているか、部分的なレジャー履歴を保持しているかによって、さらに分類することができます。 +3 – 厳密に言えば、バリデータは追跡サーバのサブセットです。同じ機能を提供することに加えて、「検証」メッセージを送信します。追跡サーバは、レジャー履歴全体を保持しているか、部分的なレジャー履歴を保持しているかによって、さらに分類することができます。 4 – トランザクションを認識したピアの割合(%)がしきい値を下回った場合、コンセンサスのラウンドは失敗します。各ラウンドは反復プロセスです。第1ラウンドの開始時には、少なくともピアの50%が同意する必要があります。コンセンサスラウンドの最終的なしきい値は80%の合意です。これらの具体的な値は変更される可能性があります。 -5 – 各サーバーは独自の信頼できるバリデータを定義しますが、ネットワークの一貫性は、様々なサーバーで重複の度合いが高いバリデータのリストが選択されるかどうかにかかっています。このため、Rippleでは推奨するバリデータのリストを公開しています。 +5 – 各サーバは独自の信頼できるバリデータを定義しますが、ネットワークの一貫性は、様々なサーバで重複の度合いが高いバリデータのリストが選択されるかどうかにかかっています。このため、Rippleでは推奨するバリデータのリストを公開しています。 6 – 共謀しないとされるバリデータからだけでなくすべてのバリデータからの提案が評価される場合は、悪意のある攻撃者によって、無効なトランザクションが導入されたり、提案から有効なトランザクションが除外されたりする可能性があります。選択されたバリデータリストによって、[シビル攻撃](consensus-protections.md#シビル攻撃)から保護することができます。 7 – 2014年11月の時点で、圧倒的多数を表すしきい値として、少なくともピアの80%が検証すべきレジャーに同意する必要があります。これは、コンセンサスのラウンドで要求される割合と同じです。いずれのしきい値も変更される可能性があり、同じである必要はありません。 -8 – 実際には、サーバーは自身が少数であることを検知してから、すべてのピアの検証を受け取ります。ピアの20%以上から不一致の検証を受け取ると、その検証がしきい値の80%を満たしていないことが分かります。その時点で、レジャーの再計算を始めることができます。 +8 – 実際には、サーバは自身が少数であることを検知してから、すべてのピアの検証を受け取ります。ピアの20%以上から不一致の検証を受け取ると、その検証がしきい値の80%を満たしていないことが分かります。その時点で、レジャーの再計算を始めることができます。 9 – 実際には、効率的に実行できるように、検証の完了前に新しいコンセンサスのラウンドが開始されます。 -10 – `rippled`サーバーはレジャーの履歴全体がなくてもAPIリクエストにレスポンスすることができます。サービスやネットワーク接続が中断すると、そのサーバーのレジャー履歴にレジャーの不足や誤差が生じることがあります。時間の経過とともに、`rippled`によってその誤差は埋まります(そのように設定されている場合)。欠落しているトランザクションを検証する場合は、トランザクションが送信されてからLastLedgerSequenceまでの連続した完全なレジャーを持つサーバーに照らして検証することが重要です。特定のサーバーで利用できるcomplete_ledgersを判断するには、RPCサーバーの状態を使用します。 +10 – `rippled`サーバはレジャーの履歴全体がなくてもAPIリクエストにレスポンスすることができます。サービスやネットワーク接続が中断すると、そのサーバのレジャー履歴にレジャーの不足や誤差が生じることがあります。時間の経過とともに、`rippled`によってその誤差は埋まります(そのように設定されている場合)。欠落しているトランザクションを検証する場合は、トランザクションが送信されてからLastLedgerSequenceまでの連続した完全なレジャーを持つサーバに照らして検証することが重要です。特定のサーバで利用できるcomplete_ledgersを判断するには、RPCサーバの状態を使用します。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/concepts/consensus-protocol/fee-voting.md b/@i18n/ja/docs/concepts/consensus-protocol/fee-voting.md index 12ba8fdb21..e298939ae3 100644 --- a/@i18n/ja/docs/concepts/consensus-protocol/fee-voting.md +++ b/@i18n/ja/docs/concepts/consensus-protocol/fee-voting.md @@ -19,7 +19,7 @@ labels: | パラメーター | 説明 | 推奨される値 | |-----------|-------------|-------------------| -| `reference_fee` | リファレンストランザクション(最も安価なトランザクション)を送信するときに消却する必要があるXRPの額( _drop_ 単位)。(1 XRP = 100万drop)実際のトランザクションコストはこの値の数倍であり、個々のサーバーの負荷に基づいて動的に調整されます。 | `10` (0.00001 XRP) | +| `reference_fee` | リファレンストランザクション(最も安価なトランザクション)を送信するときに消却する必要があるXRPの額( _drop_ 単位)。(1 XRP = 100万drop)実際のトランザクションコストはこの値の数倍であり、個々のサーバの負荷に基づいて動的に調整されます。 | `10` (0.00001 XRP) | | `account_reserve` | アカウントの準備金に必要なXRPの最小額( _drop_ 単位)。これは、レジャーの新しいアカウントへの資金供給のために送金できる最小額です。 | `10000000` (10 XRP) | | `owner_reserve` | アドレスがレジャーで所有するオブジェクト _ごと_ に必要なXRPの額( _drop_ 単位)。 | `2000000` (2 XRP) | diff --git a/@i18n/ja/docs/concepts/consensus-protocol/index.md b/@i18n/ja/docs/concepts/consensus-protocol/index.md index 51761a8104..7b9763b797 100644 --- a/@i18n/ja/docs/concepts/consensus-protocol/index.md +++ b/@i18n/ja/docs/concepts/consensus-protocol/index.md @@ -49,9 +49,9 @@ XRP Ledger コンセンサスプロトコルの主な役割は、前のレジャ ## 信頼に基づく検証 -XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな効果を生み出すという基本的な原理に支えられています。ネットワークの各参加者は、一連の _バリデータ_ (検証者)を選択します。バリデータは常に誠実に行動することが期待されるさまざまな当事者によって運営されており、[コンセンサスにアクティブに参加するように特別に設定されたサーバー](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)上に存在します。さらに重要なことは、選択された一連のバリデータが互いに共謀して同じ方法を使ってルールを破ることはないということです。この一連バリデータのリストは、_ユニークノードリスト_(UNL)とも呼ばれます。 +XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな効果を生み出すという基本的な原理に支えられています。ネットワークの各参加者は、一連の _バリデータ_ (検証者)を選択します。バリデータは常に誠実に行動することが期待されるさまざまな当事者によって運営されており、[コンセンサスにアクティブに参加するように特別に設定されたサーバ](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)上に存在します。さらに重要なことは、選択された一連のバリデータが互いに共謀して同じ方法を使ってルールを破ることはないということです。この一連バリデータのリストは、_ユニークノードリスト_(UNL)とも呼ばれます。 -ネットワークが更新する中で、各サーバーは信頼できるバリデータ[³](#footnote-3)をモニターします。十分な数のバリデータが、一連の取引の発生を確認し、特定のレジャーにその結果が反映されたことに同意した場合、サーバーによってコンセンサスが宣言されます。バリデータ間で同意が得られない場合、バリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。このプロセスは、コンセンサスに達するまで何度か繰り返されます。 +ネットワークが更新する中で、各サーバは信頼できるバリデータ[³](#footnote-3)をモニターします。十分な数のバリデータが、一連の取引の発生を確認し、特定のレジャーにその結果が反映されたことに同意した場合、サーバによってコンセンサスが宣言されます。バリデータ間で同意が得られない場合、バリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。このプロセスは、コンセンサスに達するまで何度か繰り返されます。 [![図2: コンセンサスラウンドバリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。](/docs/img/consensus-rounds.ja.png)](/docs/img/consensus-rounds.ja.png) @@ -65,6 +65,6 @@ XRP Ledger コンセンサスプロトコルで、さまざまな課題や攻撃 1. XRP Ledgerの運用開始当初に起きた事故により、[1~32569番目までのレジャーが失われました](http://web.archive.org/web/20171211225452/https://forum.ripple.com/viewtopic.php?f=2&t=3613)。(この損失はレジャー履歴の第1週目に発生しています。)このため、現存する一番最初のレジャーは番号32570のレジャーです。XRP Ledgerの状態はすべてのレジャーバージョンに記録されるため、履歴がなくても継続することができます。新しいテストネットワークでは、レジャーインデックス1から始まります。 -2. Bitcoinでは、現在の状態は「UTXO」(Unspent Transaction Outputの略)と呼ばれることもあります。XRP Ledgerとは異なり、BitcoinサーバーではすべてのUTXOを把握し、新しい取引を処理できるように、トランザクション(取引)履歴全体をダウンロードする必要があります。2018年現在、Bitcoinの新しいサーバーでこれを行う必要がないように、最新のUTXOのサマリーを定期的に提供するようコンセンサスメカニズムを修正する提案がいくつかあります。EthereumはXRP Ledgerと類似したアプローチを使用しており、各ブロックには、 _状態ルート_ と呼ばれる現在の状態のサマリーがありますが、Ethereumは巨大な状態データを蓄積しているため同期するにはXRP Ledgerよりもより多くの時間を要します。 +2. Bitcoinでは、現在の状態は「UTXO」(Unspent Transaction Outputの略)と呼ばれることもあります。XRP Ledgerとは異なり、BitcoinサーバではすべてのUTXOを把握し、新しい取引を処理できるように、トランザクション(取引)履歴全体をダウンロードする必要があります。2018年現在、Bitcoinの新しいサーバでこれを行う必要がないように、最新のUTXOのサマリーを定期的に提供するようコンセンサスメカニズムを修正する提案がいくつかあります。EthereumはXRP Ledgerと類似したアプローチを使用しており、各ブロックには、 _状態ルート_ と呼ばれる現在の状態のサマリーがありますが、Ethereumは巨大な状態データを蓄積しているため同期するにはXRP Ledgerよりもより多くの時間を要します。 -3. 信頼できるバリデータをモニターするにあたり、サーバーが直接それに接続する必要はありません。XRP Ledgerのピアツーピアネットワークでは、サーバーが公開鍵によって互いを識別し、他のサーバーからのデジタル署名付きメッセージを中継する _ゴシッププロトコル_ によってモニターします。 +3. 信頼できるバリデータをモニターするにあたり、サーバが直接それに接続する必要はありません。XRP Ledgerのピアツーピアネットワークでは、サーバが公開鍵によって互いを識別し、他のサーバからのデジタル署名付きメッセージを中継する _ゴシッププロトコル_ によってモニターします。 diff --git a/@i18n/ja/docs/concepts/consensus-protocol/invariant-checking.md b/@i18n/ja/docs/concepts/consensus-protocol/invariant-checking.md index 5f0af96400..eaeb603a1f 100644 --- a/@i18n/ja/docs/concepts/consensus-protocol/invariant-checking.md +++ b/@i18n/ja/docs/concepts/consensus-protocol/invariant-checking.md @@ -21,7 +21,7 @@ labels: - XRP Ledgerのソースコードは複雑かつ膨大であり、コードが誤って実行される可能性が高いです。 - トランザクションを誤って実行した場合のコストは高く、どのような基準でも許容されるものではありません。 -具体的には、不正なトランザクションの実行により、無効または破損したデータが作成され、後にネットワーク上のサーバーを「動作不可能」な状態にすることで一貫してクラッシュさせ、ネットワーク全体を停止させる可能性があります。 +具体的には、不正なトランザクションの実行により、無効または破損したデータが作成され、後にネットワーク上のサーバを「動作不可能」な状態にすることで一貫してクラッシュさせ、ネットワーク全体を停止させる可能性があります。 不正なトランザクションの処理は、XRP Ledgerの信頼という価値を損なうことになります。不変性チェックは、信頼性という機能を付加するため、XRP Ledger 全体に価値を提供します。 diff --git a/@i18n/ja/docs/concepts/consensus-protocol/negative-unl.md b/@i18n/ja/docs/concepts/consensus-protocol/negative-unl.md index 2c7ba6f813..341c788046 100644 --- a/@i18n/ja/docs/concepts/consensus-protocol/negative-unl.md +++ b/@i18n/ja/docs/concepts/consensus-protocol/negative-unl.md @@ -10,15 +10,15 @@ labels: _([NegativeUNL Amendment](/resources/known-amendments.md#negativeunl)によって追加されました。)_ -ネガティブUNLは、XRP Ledgerの[コンセンサスプロトコル](index.md)の機能で、バリデータの部分的な停止中にネットワークの前進を可能にする _liveness_ を向上させるものです。ネガティブUNLを使用すると、サーバーは現在オンラインかつ稼働中のバリデータに基づいて有効なUNLを調整するため、信頼できるバリデータが複数オフラインの場合でも、新しい[レジャーバージョン](../ledgers/index.md) を _validated_ と宣言することができるようになるのです。 +ネガティブUNLは、XRP Ledgerの[コンセンサスプロトコル](index.md)の機能で、バリデータの部分的な停止中にネットワークの前進を可能にする _liveness_ を向上させるものです。ネガティブUNLを使用すると、サーバは現在オンラインかつ稼働中のバリデータに基づいて有効なUNLを調整するため、信頼できるバリデータが複数オフラインの場合でも、新しい[レジャーバージョン](../ledgers/index.md) を _validated_ と宣言することができるようになるのです。 ネガティブUNLは、部分的な停止中に結果を確定するネットワークの能力を向上させる以外、ネットワークのトランザクション処理方法やトランザクションの結果に影響を与えることはありません。 ## 背景 -XRP Ledgerプロトコルの各サーバーは、UNL(Unique Node List)と呼ばれる、共謀しないよう信頼できるバリデータのリストを持ち、各サーバーは、信頼できるバリデータが十分に新しいレジャーバージョンに合意したときのコンセンサスに基づいて、レジャーバージョンの検証を独自に決定しています。(デフォルトの構成では、リップル社が十分にユニークで信頼性が高く、独立性が高いと考えるバリデータからなる、リップル社が署名した推奨UNLを使用しています)。標準的な定足数要件は、信頼できるバリデータの少なくとも80%が合意することである。 +XRP Ledgerプロトコルの各サーバは、UNL(Unique Node List)と呼ばれる、共謀しないよう信頼できるバリデータのリストを持ち、各サーバは、信頼できるバリデータが十分に新しいレジャーバージョンに合意したときのコンセンサスに基づいて、レジャーバージョンの検証を独自に決定しています。(デフォルトの構成では、リップル社が十分にユニークで信頼性が高く、独立性が高いと考えるバリデータからなる、リップル社が署名した推奨UNLを使用しています)。標準的な定足数要件は、信頼できるバリデータの少なくとも80%が合意することである。 -信頼できるバリデータの20%超がオフラインになるか、ネットワークの残りの部分と通信できなくなると、ネットワークは定足数に達しないため、新しいレジャーの検証を停止する。これは、取引の結果が確定した後に変更されないようにするための設計上の選択である。このような状況では、残りのサーバーはまだオンラインであり、過去および暫定的なトランザクションデータを提供できるが、新しいトランザクションの最終的で不変の結果を確認することはできない。 +信頼できるバリデータの20%超がオフラインになるか、ネットワークの残りの部分と通信できなくなると、ネットワークは定足数に達しないため、新しいレジャーの検証を停止する。これは、取引の結果が確定した後に変更されないようにするための設計上の選択である。このような状況では、残りのサーバはまだオンラインであり、過去および暫定的なトランザクションデータを提供できるが、新しいトランザクションの最終的で不変の結果を確認することはできない。 しかしこれは、広く信頼されているバリデータがいくつかオフラインになった場合、ネットワークが前進しなくなる可能性があることを意味する。2020-10-06現在、リップル社が推奨するUNLには34人のバリデータがいるので、そのうち7人以上がオフラインになると、ネットワークの前進が止まってしまうことになります。さらに、1人または2人のバリデータが長期間オフラインになると、ネットワークは残りのバリデータ間の不一致の余地が少なくなり、コンセンサスの達成に時間がかかる可能性があります。 @@ -32,9 +32,9 @@ XRP Ledgerプロトコルの各サーバーは、UNL(Unique Node List)と呼 バリデータが一度に1つか2つオフラインになった場合、残りのバリデータはネガティブUNLを使用して、徐々に有効UNLを調整し、ネットワークが定足数を達成するのに _オンライン_ バリデータの80%しか必要としないようにすることができる。ネットワークが分断されるのを防ぐため、定足数はバリデータ _全体_ の60%以上というハードな最低値を持つ。 -20%以上のバリデータが突然一度にオフラインになった場合、残りのサーバーは新しいレジャーを検証するのに必要な定足数を達成できないため、新しいレジャーを検証することができない。しかし、そのようなサーバーでも、コンセンサスラウンドを重ねることで暫定的な前進は可能である。時間が経つにつれて、残りのバリデータは暫定的なレジャーにネガティブUNLの変更を適用し、有効なUNLを調整し続ける。最終的に、この状況が続けば、ネットワークは暫定的なレジャーのバージョンから調整後のネガティブUNLを使用して、レジャーの検証を完全に再開することが可能である。 +20%以上のバリデータが突然一度にオフラインになった場合、残りのサーバは新しいレジャーを検証するのに必要な定足数を達成できないため、新しいレジャーを検証することができない。しかし、そのようなサーバでも、コンセンサスラウンドを重ねることで暫定的な前進は可能である。時間が経つにつれて、残りのバリデータは暫定的なレジャーにネガティブUNLの変更を適用し、有効なUNLを調整し続ける。最終的に、この状況が続けば、ネットワークは暫定的なレジャーのバージョンから調整後のネガティブUNLを使用して、レジャーの検証を完全に再開することが可能である。 -スタンドアロンモードでは、サーバーはコンセンサスを使用しないので、ネガティブUNLは[スタンドアロンモード](../networks-and-servers/rippled-server-modes.md)に影響を及ぼさない。 +スタンドアロンモードでは、サーバはコンセンサスを使用しないので、ネガティブUNLは[スタンドアロンモード](../networks-and-servers/rippled-server-modes.md)に影響を及ぼさない。 ## 仕組み @@ -45,23 +45,23 @@ XRP Ledgerプロトコルの各サーバーは、UNL(Unique Node List)と呼 ### 信頼性評価 -ネットワーク上の各サーバーは、共謀しないように信頼するバリデータのリストであるUNLを持っています。(デフォルトでは、サーバーの正確なUNLはリップル社が公表している推奨バリデータリストに基づいて暗黙的に設定されます)。各サーバーは、信頼できるバリデータの「信頼性」を1つの指標で追跡します。それは、直近256件のレジャーのうち、バリデータの検証投票がサーバーの考えるコンセンサスと一致した割合です。言い換えれば +ネットワーク上の各サーバは、共謀しないように信頼するバリデータのリストであるUNLを持っています。(デフォルトでは、サーバの正確なUNLはリップル社が公表している推奨バリデータリストに基づいて暗黙的に設定されます)。各サーバは、信頼できるバリデータの「信頼性」を1つの指標で追跡します。それは、直近256件のレジャーのうち、バリデータの検証投票がサーバの考えるコンセンサスと一致した割合です。言い換えれば > 信頼性 = Va ÷ 256 -Vaは、サーバー側のコンセンサス見解と一致した過去256のレジャーに対して、1人のバリデータから受け取った検証票の総数である。 +Vaは、サーバ側のコンセンサス見解と一致した過去256のレジャーに対して、1人のバリデータから受け取った検証票の総数である。 この信頼性指標は、バリデータの可用性 _及び_ バリデータの挙動を測定するものである。バリデータがネットワークの他の部分と同期しており、採点サーバと同じプロトコル規則に従っている場合、そのバリデータの信頼性スコアは高くなるはずである。バリデータの信頼性スコアは、以下のような理由で低下することがある。 -- バリデータ間のネットワーク接続が悪いため、バリデータの検証票がサーバーに届かない。 +- バリデータ間のネットワーク接続が悪いため、バリデータの検証票がサーバに届かない。 - バリデータが動作を停止したり、過負荷になっている。 - 様々な理由により、バリデータはサーバと同じプロトコルルールに従わない。可能性としては、設定ミス、ソフトウェアのバグ、意図的に[異なるネットワーク](../networks-and-servers/parallel-networks.md)に従っている、または悪意ある行動などが考えられます。 バリデータの信頼性が**50%**である場合、そのバリデータはネガティブUNLに追加される候補である。ネガティブUNLから削除するには、バリデータの信頼性が**80%超**でなければならない。 -バリデータを含む各サーバーは、信頼できるバリデータ全員について独自に信頼性スコアを算出している。あるバリデータの信頼性について、サーバーが異なると結論が異なることがある。それは、そのバリデータの投票が一方のサーバーに届いて他方のサーバーに届かなかったり、特定のレジャーについて意見が異なることが多かったり少なかったりするためである。あるバリデータをネガティブUNLに追加または削除するには、信頼できるバリデータの総意として、あるバリデータが信頼性の閾値を超えるか下回るかに合意する必要がある。 +バリデータを含む各サーバは、信頼できるバリデータ全員について独自に信頼性スコアを算出している。あるバリデータの信頼性について、サーバが異なると結論が異なることがある。それは、そのバリデータの投票が一方のサーバに届いて他方のサーバに届かなかったり、特定のレジャーについて意見が異なることが多かったり少なかったりするためである。あるバリデータをネガティブUNLに追加または削除するには、信頼できるバリデータの総意として、あるバリデータが信頼性の閾値を超えるか下回るかに合意する必要がある。 -**ヒント:** バリデータは自分自身の信頼性を追跡するが、自分自身をネガティブUNLに加えることは提案しない。バリデータの信頼性測定は、バリデータの投票がネットワークを通じてどの程度うまく伝わるかを考慮できないので、外部のサーバーからの測定値よりも信頼性が低い。 +**ヒント:** バリデータは自分自身の信頼性を追跡するが、自分自身をネガティブUNLに加えることは提案しない。バリデータの信頼性測定は、バリデータの投票がネットワークを通じてどの程度うまく伝わるかを考慮できないので、外部のサーバからの測定値よりも信頼性が低い。 @@ -75,43 +75,43 @@ Vaは、サーバー側のコンセンサス見解と一致した過 **注記:** これは、[トランザクション](../transactions/index.md)や[疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)を行わずにレジャーの状態データを変更する唯一の機会です。 -2. ネガティブUNLが満杯でない場合、各サーバーは信頼度50%未満のバリデータの中から、**最大1つ**のバリデータをネガティブUNLに追加することを提案する。 -3. ネガティブUNLが空でない場合、各サーバーはネガティブUNLから**最大1つ**のバリデータを削除することを提案する。サーバーがバリデータをネガティブUNLから削除することを提案できる理由は2つある。 +2. ネガティブUNLが満杯でない場合、各サーバは信頼度50%未満のバリデータの中から、**最大1つ**のバリデータをネガティブUNLに追加することを提案する。 +3. ネガティブUNLが空でない場合、各サーバはネガティブUNLから**最大1つ**のバリデータを削除することを提案する。サーバがバリデータをネガティブUNLから削除することを提案できる理由は2つある。 - バリデータの信頼度が80%を超えている。 - - 自身のUNLにそのバリデーターを持たない。(バリデータが永久に停止した場合、このルールは、サーバーの設定済みUNLからバリデータが削除された後に、オンレジャーのネガティブUNLからバリデータが削除されることを確実にする)。 + - 自身のUNLにそのバリデーターを持たない。(バリデータが永久に停止した場合、このルールは、サーバの設定済みUNLからバリデータが削除された後に、オンレジャーのネガティブUNLからバリデータが削除されることを確実にする)。 4. ネガティブUNLの変更案がコンセンサスに達した場合、その変更は次のフラグレジャーから適用される予定である。この方法で最大1つの追加と1つの削除をスケジュールすることができる。 -ネガティブUNLにバリデータを追加したり削除したりする提案は[UNLModify pseudo-transactions][]の形式を取る。それぞれの擬似トランザクションは他の[擬似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)と同じように合意形成プロセスによって合意を得るか捨てられるかが決定される。言い換えると、あるバリデータがネガティブUNLに追加されたり削除されたりするためには、サーバーの総意として同じ変更を提案する必要がある。 +ネガティブUNLにバリデータを追加したり削除したりする提案は[UNLModify pseudo-transactions][]の形式を取る。それぞれの擬似トランザクションは他の[擬似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)と同じように合意形成プロセスによって合意を得るか捨てられるかが決定される。言い換えると、あるバリデータがネガティブUNLに追加されたり削除されたりするためには、サーバの総意として同じ変更を提案する必要がある。 ネガティブUNLの予定された有効な変更は、レジャーの状態データの中の[ネガティブUNLオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md)に追跡される。 ### ネガティブUNLの制限 -ネットワークが2つ以上のサブネットワークに分断されるのを防ぐために、ネガティブUNLは定足数要件をUNLエントリ全体の60%未満に減らすことができない。これを強制するために、サーバーはネガティブUNL上のバリデータ数がサーバーの設定済みUNL内のバリデータ数の25%(切り捨て)である場合、ネガティブUNLが"満杯"になったと見なす。(この25%は、25%のバリデータが削除された場合、残りの75%のバリデータの80%の合意は元の数の60%に等しいという計算に基づいている)。もしサーバーがネガティブUNLが一杯になったと判断した場合、ネガティブUNLへの新たな追加は提案されない。 +ネットワークが2つ以上のサブネットワークに分断されるのを防ぐために、ネガティブUNLは定足数要件をUNLエントリ全体の60%未満に減らすことができない。これを強制するために、サーバはネガティブUNL上のバリデータ数がサーバの設定済みUNL内のバリデータ数の25%(切り捨て)である場合、ネガティブUNLが"満杯"になったと見なす。(この25%は、25%のバリデータが削除された場合、残りの75%のバリデータの80%の合意は元の数の60%に等しいという計算に基づいている)。もしサーバがネガティブUNLが一杯になったと判断した場合、ネガティブUNLへの新たな追加は提案されない。 ### 複数のバリデーター候補から選択する -信頼性の閾値に基づき、複数のバリデータがネガティブUNLに追加される候補となる可能性がある。一度に最大1つのバリデータをネガティブUNLに追加できるので、サーバーはどのバリデータを追加するかを選択しなければならない。複数の候補がある場合、サーバーは以下のメカニズムでどの候補を提案するかを選択する。 +信頼性の閾値に基づき、複数のバリデータがネガティブUNLに追加される候補となる可能性がある。一度に最大1つのバリデータをネガティブUNLに追加できるので、サーバはどのバリデータを追加するかを選択しなければならない。複数の候補がある場合、サーバは以下のメカニズムでどの候補を提案するかを選択する。 1. 親レジャーバージョンのレジャーハッシュを取得する。 0. 各バリデータ候補の公開鍵を取得する。 0. 候補のバリデータと親レジャーのハッシュの排他的論理和(XOR)を計算する。 0. XOR演算の結果のうち、数値が最も小さいバリデータを提案する。 -あるフラグレジャーのネガティブUNLから削除される候補が複数ある場合、サーバーは同じメカニズムでそれらの中から選択します。 +あるフラグレジャーのネガティブUNLから削除される候補が複数ある場合、サーバは同じメカニズムでそれらの中から選択します。 このメカニズムには、いくつかの有用な特性があります。 -- すべてのサーバーが容易に入手でき、かつ迅速に計算できる情報を使用する。 -- 信頼できるバリデータのスコアが多少異なっていても、ほとんどのサーバーは同じ候補を選択する。これは、どのバリデータの信頼度が「最低」なのか「最高」なのかについて、 サーバ間で見解の相違があったとしても同様である。これは、あるバリデータが信頼性の閾値より上か下かについて、各サーバが意見を異にしている場合でさえも同様である。したがって、ネットワークは、どのバリデータを追加または削除するかについて、合意が得られる可能性が高い。 +- すべてのサーバが容易に入手でき、かつ迅速に計算できる情報を使用する。 +- 信頼できるバリデータのスコアが多少異なっていても、ほとんどのサーバは同じ候補を選択する。これは、どのバリデータの信頼度が「最低」なのか「最高」なのかについて、 サーバ間で見解の相違があったとしても同様である。これは、あるバリデータが信頼性の閾値より上か下かについて、各サーバが意見を異にしている場合でさえも同様である。したがって、ネットワークは、どのバリデータを追加または削除するかについて、合意が得られる可能性が高い。 - レジャーバージョンごとに同じ結果が出るとは限りません。もしネガティブUNLへのある変更案が合意に至らなかったとしても、ネットワークは毎回その1つのバリデータの追加や削除を試みて失敗し続けることはない。ネットワークは、後のフラグ付きレジャーで別の候補をネガティブUNLに追加・削除することを試みることができる。 ### 検証のフィルタリング -[コンセンサスプロセスの検証ステップ](consensus-structure.md#検証)では、親レジャーのネガティブUNLのバリデータを無効化します。各サーバーは無効化されたバリデータを取り除いた設定済みUNLからなる"有効UNL"を計算し、定足数を再計算します。(定足数は常に有効UNLの80%以上、かつ設定UNLの60%以上です)。無効化されたバリデータが検証票を送信した場合、サーバーは無効化されたバリデータの信頼性を計算するためにその票を追跡するが、あるバージョンのレジャーが合意に達したかどうかを判断するためにその票を使うことはありません。 +[コンセンサスプロセスの検証ステップ](consensus-structure.md#検証)では、親レジャーのネガティブUNLのバリデータを無効化します。各サーバは無効化されたバリデータを取り除いた設定済みUNLからなる"有効UNL"を計算し、定足数を再計算します。(定足数は常に有効UNLの80%以上、かつ設定UNLの60%以上です)。無効化されたバリデータが検証票を送信した場合、サーバは無効化されたバリデータの信頼性を計算するためにその票を追跡するが、あるバージョンのレジャーが合意に達したかどうかを判断するためにその票を使うことはありません。 **注記:** ネガティブUNLは、定足数を直接計算するのではなく、定足数の計算元となる信頼できるバリデータの合計を調整するものです。定足数はパーセンテージですが、投票数は整数であるため、信頼できるバリデータの合計を減らしても、定足数に達するために必要な投票数が変わるとは限りません。たとえば、総バリデータが15人である場合、80%はちょうど12人のバリデータである。これを14人に減らすと、80%は11.2人となり、定足数に達するには依然として12人の有効投票者が必要である。 @@ -121,7 +121,7 @@ Vaは、サーバー側のコンセンサス見解と一致した過 次の例は、ネガティブUNLが合意形成プロセスにどのような影響を与えるかを示している。 -1. サーバーのUNLが38人の信頼できるバリデータで構成されているとすると、80%の定足数は38人のうち少なくとも31人の信頼できるバリデータである。 +1. サーバのUNLが38人の信頼できるバリデータで構成されているとすると、80%の定足数は38人のうち少なくとも31人の信頼できるバリデータである。 [{% inline-svg file="/docs/img/negative-unl-01.ja.svg" /%}](/docs/img/negative-unl-01.ja.svg "Diagram: 通常の場合。ネガティブUNLは未使用、定足数は設定されたバリデータの80%である。") @@ -152,7 +152,7 @@ Vaは、サーバー側のコンセンサス見解と一致した過 [{% inline-svg file="/docs/img/negative-unl-09.ja.svg" /%}](/docs/img/negative-unl-09.ja.svg "Diagram: UnsteadyBを無効リストから削除。") -10. 最終的に、あなたはMissingAがおそらく戻ってこないと判断し、あなたのサーバーの設定されたUNLからそれを削除します。あなたのサーバーはそれ以降、各フラグレジャーからMissingAをネガティブUNLから削除することを提案し始める。 +10. 最終的に、あなたはMissingAがおそらく戻ってこないと判断し、あなたのサーバの設定されたUNLからそれを削除します。あなたのサーバはそれ以降、各フラグレジャーからMissingAをネガティブUNLから削除することを提案し始める。 [{% inline-svg file="/docs/img/negative-unl-10.ja.svg" /%}](/docs/img/negative-unl-10.ja.svg "Diagram: MissingAを設定済みUNLから削除した後、ネガティブUNLからも削除することを提案する。 ") diff --git a/@i18n/ja/docs/concepts/networks-and-servers/amendments.md b/@i18n/ja/docs/concepts/networks-and-servers/amendments.md index 8ea4cd7753..7ef4d7f0f2 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/amendments.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/amendments.md @@ -52,16 +52,16 @@ Amendmentが有効になるには、信頼できるバリデータの80%超か ### Amendmentブロックされたサーバ -AmendmentブロックはXRP Ledgerデータの正確性を守るためのセキュリティ機能です。Amendmentが有効になると、Amendmentのソースコードなしで以前のバージョンの`rippled`を実行しているサーバは、ネットワークのルールを認識できなくなります。レジャーデータを推測して誤って解釈するのではなく、これらのサーバーは**Amendmentブロック**された状態になります。Amendmentブロック状態のサーバは次のことが行えません。 +AmendmentブロックはXRP Ledgerデータの正確性を守るためのセキュリティ機能です。Amendmentが有効になると、Amendmentのソースコードなしで以前のバージョンの`rippled`を実行しているサーバは、ネットワークのルールを認識できなくなります。レジャーデータを推測して誤って解釈するのではなく、これらのサーバは**Amendmentブロック**された状態になります。Amendmentブロック状態のサーバは次のことが行えません。 * レジャーのバリデータの判断 * トランザクションの送信または処理 * 合意プロセスへの参加 * Amendmentへの投票 -`rippled`サーバーの投票設定は、そのサーバがAmendmentブロックされることに影響を与えません。`rippled`サーバは常に他のネットワークで有効になっているAmendmentに従うので、ブロックは単にルールの変更を認識するコードを持っているかどうかに基づいています。つまり、異なるAmendmentが有効になっている並列ネットワークにサーバを接続した場合も、Amendmentブロックされる可能性があるということです。例えば、XRP Ledgerの開発ネットでは通常、実験的なAmendmentが有効になっています。最新のプロダクションリリースのコードを使用している場合、あなたのサーバには実験的なAmendmentのコードが存在しない可能性が高いです。 +`rippled`サーバの投票設定は、そのサーバがAmendmentブロックされることに影響を与えません。`rippled`サーバは常に他のネットワークで有効になっているAmendmentに従うので、ブロックは単にルールの変更を認識するコードを持っているかどうかに基づいています。つまり、異なるAmendmentが有効になっている並列ネットワークにサーバを接続した場合も、Amendmentブロックされる可能性があるということです。例えば、XRP Ledgerの開発ネットでは通常、実験的なAmendmentが有効になっています。最新のプロダクションリリースのコードを使用している場合、あなたのサーバには実験的なAmendmentのコードが存在しない可能性が高いです。 -最新バージョンの`rippled`にアップグレードすることで、Amendmentブロックされたサーバーのブロックを解除することができます。 +最新バージョンの`rippled`にアップグレードすることで、Amendmentブロックされたサーバのブロックを解除することができます。 ### AmendmentブロックされたClioサーバ diff --git a/@i18n/ja/docs/concepts/networks-and-servers/clustering.md b/@i18n/ja/docs/concepts/networks-and-servers/clustering.md index c8ae9f3354..8a3d9fcf19 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/clustering.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/clustering.md @@ -2,20 +2,20 @@ html: clustering.html parent: networks-and-servers.html seo: - description: 暗号処理の負荷を分散させるためにクラスターでrippledサーバーを運用できます。 + description: 暗号処理の負荷を分散させるためにクラスターでrippledサーバを運用できます。 labels: - - コアサーバー + - コアサーバ --- # クラスター化 -1つのデータセンターで複数の`rippled`サーバーを運用している場合は、これらのサーバーをクラスターに編成して、効率性を最大化できます。`rippled`サーバーをクラスターで運用するメリットは以下のとおりです。 +1つのデータセンターで複数の`rippled`サーバを運用している場合は、これらのサーバをクラスターに編成して、効率性を最大化できます。`rippled`サーバをクラスターで運用するメリットは以下のとおりです。 -- クラスター化`rippled`サーバーは暗号処理を共有します。1台のサーバーがメッセージの真正性をすでに検証している場合、クラスターの他のサーバーはそのメッセージを信頼し、再検証を行いません。 -- クラスター化サーバーは、ネットワークで不適切な活動をしているかまたはネットワークを不正使用しているピアとAPIクライアントに関する情報を共有します。このため、クラスター内のすべてのサーバーを同時に攻撃することが難しくなります。 -- クラスター化サーバーは、一部のサーバーでの現行の負荷ベースのトランザクション手数料にトランザクションが対応していない場合を含め、常にクラスター全体にトランザクションを伝搬します。 +- クラスター化`rippled`サーバは暗号処理を共有します。1台のサーバがメッセージの真正性をすでに検証している場合、クラスターの他のサーバはそのメッセージを信頼し、再検証を行いません。 +- クラスター化サーバは、ネットワークで不適切な活動をしているかまたはネットワークを不正使用しているピアとAPIクライアントに関する情報を共有します。このため、クラスター内のすべてのサーバを同時に攻撃することが難しくなります。 +- クラスター化サーバは、一部のサーバでの現行の負荷ベースのトランザクション手数料にトランザクションが対応していない場合を含め、常にクラスター全体にトランザクションを伝搬します。 -バリデータを[プライベートピア](peer-protocol.md#プライベートピア)として実行している場合は、`rippled`サーバーのクラスターをプロキシサーバーとして使用することが推奨されます。 +バリデータを[プライベートピア](peer-protocol.md#プライベートピア)として実行している場合は、`rippled`サーバのクラスターをプロキシサーバとして使用することが推奨されます。 -クラスターでのサーバーの設定方法に関するチュートリアルについては、[`rippled`サーバーのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md)を参照してください。 +クラスターでのサーバの設定方法に関するチュートリアルについては、[`rippled`サーバのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md)を参照してください。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/concepts/networks-and-servers/index.md b/@i18n/ja/docs/concepts/networks-and-servers/index.md index ed449bb8cf..b711b08845 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/index.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/index.md @@ -2,36 +2,36 @@ html: networks-and-servers.html parent: concepts.html seo: - description: rippledは、XRP Ledgerを管理するコアとなるピアツーピアサーバーです。 + description: rippledは、XRP Ledgerを管理するコアとなるピアツーピアサーバです。 metadata: indexPage: true --- # ネットワークとサーバ -XRP Ledgerを動かすサーバーソフトウェアは、主に2種類あります。 +XRP Ledgerを動かすサーバソフトウェアは、主に2種類あります。 -- コアサーバーである`rippled`は、トランザクションを処理し、その結果についてコンセンサスを得るピアツーピアネットワークを実行します。 -- APIサーバーである[Clio](the-clio-server.md)は、台帳からデータをフェッチしたりクエリしたりするための強力なインターフェイスを提供します。 +- コアサーバである`rippled`は、トランザクションを処理し、その結果についてコンセンサスを得るピアツーピアネットワークを実行します。 +- APIサーバである[Clio](the-clio-server.md)は、台帳からデータをフェッチしたりクエリしたりするための強力なインターフェイスを提供します。 -誰でも必要に応じて、これらのタイプのサーバーの1つまたは両方のインスタンスを実行することができます。 +誰でも必要に応じて、これらのタイプのサーバの1つまたは両方のインスタンスを実行することができます。 -## 独自サーバーを運用する理由 +## 独自サーバを運用する理由 -簡単なユースケースや個別のサーバーであれば、無料の[公開サーバー][]を利用することも多いでしょう。しかし、XRP Ledgerの利用が本格化すればするほど、独自のインフラを持つことが重要になってきます。 +簡単なユースケースや個別のサーバであれば、無料の[公開サーバ][]を利用することも多いでしょう。しかし、XRP Ledgerの利用が本格化すればするほど、独自のインフラを持つことが重要になってきます。 -独自のサーバーを運用したいと思う理由はたくさんありますが、そのほとんどは、「自分のサーバーを信頼できる」「ワークロードをコントロールできる」「いつ、どのようにアクセスできるかを他人の判断に左右されない」ということに集約されます。もちろん、悪意のあるハッカーからサーバーを守るために、優れたネットワークセキュリティを実践する必要があります。 +独自のサーバを運用したいと思う理由はたくさんありますが、そのほとんどは、「自分のサーバを信頼できる」「ワークロードをコントロールできる」「いつ、どのようにアクセスできるかを他人の判断に左右されない」ということに集約されます。もちろん、悪意のあるハッカーからサーバを守るために、優れたネットワークセキュリティを実践する必要があります。 -利用しているサーバーを信頼する必要があります。悪意のあるサーバーに接続すると、そのサーバーに利用されたり、損害を受けたりする可能性があります。例えば、以下のようなことです。 +利用しているサーバを信頼する必要があります。悪意のあるサーバに接続すると、そのサーバに利用されたり、損害を受けたりする可能性があります。例えば、以下のようなことです。 -* 悪意のあるサーバーは、支払いを行っていないにもかかわらず、支払いを受けたと報告する可能性があります。 +* 悪意のあるサーバは、支払いを行っていないにもかかわらず、支払いを受けたと報告する可能性があります。 * 選択的に支払いパスや通貨交換のオファーを表示または非表示にすることができ、最良の取引を提供せず、彼ら自身の利益を確保する可能性があります。 -* もし、アドレスの秘密鍵を送信してしまった場合、サーバーの管理者はあなたに代わって任意のトランザクションを実行し、アドレスが保有するすべての資金を転送または破棄する可能性があります。 +* もし、アドレスの秘密鍵を送信してしまった場合、サーバの管理者はあなたに代わって任意のトランザクションを実行し、アドレスが保有するすべての資金を転送または破棄する可能性があります。 -さらに、独自のサーバーを運営することで、[管理者アクセス権限](../../tutorials/http-websocket-apis/build-apps/get-started.md#管理者アクセス権限)が与えられ、重要な管理者専用コマンドや負荷の高いコマンドを実行することができます。共有サーバーを使用する場合、同じサーバーの他のユーザーとサーバーの計算能力を共有することを考慮しなければいけません。WebSocket APIのコマンドの多くはサーバーに大きな負担をかけるので、サーバーには必要なときにレスポンスを縮小するオプションがあります。サーバーを他人と共有する場合、常に最良の結果を得られるとは限りません。 +さらに、独自のサーバを運営することで、[管理者アクセス権限](../../tutorials/http-websocket-apis/build-apps/get-started.md#管理者アクセス権限)が与えられ、重要な管理者専用コマンドや負荷の高いコマンドを実行することができます。共有サーバを使用する場合、同じサーバの他のユーザーとサーバの計算能力を共有することを考慮しなければいけません。WebSocket APIのコマンドの多くはサーバに大きな負担をかけるので、サーバには必要なときにレスポンスを縮小するオプションがあります。サーバを他人と共有する場合、常に最良の結果を得られるとは限りません。 -最後に、バリデーションサーバーを運用する場合、パブリックネットワークへのプロキシとしてストックサーバーを使用し、バリデーションサーバーをプライベートネットワークに置いて、ストックサーバーを通してのみ外部にアクセスできるようにすることができます。これにより、バリデーションサーバに侵入することがより困難になります。 +最後に、バリデーションサーバを運用する場合、パブリックネットワークへのプロキシとしてストックサーバを使用し、バリデーションサーバをプライベートネットワークに置いて、ストックサーバを通してのみ外部にアクセスできるようにすることができます。これにより、バリデーションサーバに侵入することがより困難になります。 -## サーバーの機能とトピックス +## サーバの機能とトピックス diff --git a/@i18n/ja/docs/concepts/networks-and-servers/ledger-history.md b/@i18n/ja/docs/concepts/networks-and-servers/ledger-history.md index 23594196af..77d216f8c9 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/ledger-history.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/ledger-history.md @@ -2,63 +2,63 @@ html: ledger-history.html parent: networks-and-servers.html seo: - description: rippledサーバーはトランザクションの変動金額と状態の履歴をローカルに保管します。 + description: rippledサーバはトランザクションの変動金額と状態の履歴をローカルに保管します。 labels: - データ保持 - ブロックチェーン - - コアサーバー + - コアサーバ --- # レジャー履歴 -[コンセンサスプロセス](../consensus-protocol/index.md)により、[検証済みレジャーバージョン](../ledgers/index.md)のチェーンが作成されます。各バージョンは、以前のバージョンに[トランザクション](../transactions/index.md)のセットを適用して生成されます。各[`rippled`サーバー](index.md)には、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバーに保管されるトランザクション履歴の量は、サーバーがオンラインであった期間と、サーバーが取得し、保持する履歴量の設定に応じて異なります。 +[コンセンサスプロセス](../consensus-protocol/index.md)により、[検証済みレジャーバージョン](../ledgers/index.md)のチェーンが作成されます。各バージョンは、以前のバージョンに[トランザクション](../transactions/index.md)のセットを適用して生成されます。各[`rippled`サーバ](index.md)には、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバに保管されるトランザクション履歴の量は、サーバがオンラインであった期間と、サーバが取得し、保持する履歴量の設定に応じて異なります。 -ピアツーピアのXRP Ledgerネットワーク内のサーバーは、コンセンサスプロセスの一環としてトランザクションやその他のデータを相互に共有します。各サーバーは個別に新しいレジャーバージョンを作成し、その結果を信頼できるバリデータと比較して、整合性を維持します。(信頼できるバリデータのコンセンサスがサーバーの結果と一致しない場合は、サーバーがピアから必要なデータを取得して整合性を維持します。)サーバーはピアから古いデータをダウンロードして、利用可能な履歴のギャップを埋めることができます。レジャーはデータの暗号[ハッシュ](../../references/protocol/data-types/basic-data-types.md#ハッシュ)を使用した構造となっているため、すべてのサーバーがデータの整合性の検証を行えます。 +ピアツーピアのXRP Ledgerネットワーク内のサーバは、コンセンサスプロセスの一環としてトランザクションやその他のデータを相互に共有します。各サーバは個別に新しいレジャーバージョンを作成し、その結果を信頼できるバリデータと比較して、整合性を維持します。(信頼できるバリデータのコンセンサスがサーバの結果と一致しない場合は、サーバがピアから必要なデータを取得して整合性を維持します。)サーバはピアから古いデータをダウンロードして、利用可能な履歴のギャップを埋めることができます。レジャーはデータの暗号[ハッシュ](../../references/protocol/data-types/basic-data-types.md#ハッシュ)を使用した構造となっているため、すべてのサーバがデータの整合性の検証を行えます。 ## データベース -サーバーはレジャーの状態データとトランザクションを _レジャーストアー_ と呼ばれるkey-valueストアで保持します。また、`rippled`にはいくつかのSQLiteデータベースファイルが維持されているので、トランザクション履歴などへより柔軟にアクセスし、特定の設定変更を追跡できます。 +サーバはレジャーの状態データとトランザクションを _レジャーストアー_ と呼ばれるkey-valueストアで保持します。また、`rippled`にはいくつかのSQLiteデータベースファイルが維持されているので、トランザクション履歴などへより柔軟にアクセスし、特定の設定変更を追跡できます。 -一般に、`rippled`サーバーが稼働していないときにはそのサーバーのすべてのデータベースファイルを安全に削除できます。(たとえばサーバーのストレージ設定を変更する場合や、Test Netから本番環境ネットワークに切り替える場合に、このような削除が必要となることがあります。) +一般に、`rippled`サーバが稼働していないときにはそのサーバのすべてのデータベースファイルを安全に削除できます。(たとえばサーバのストレージ設定を変更する場合や、Test Netから本番環境ネットワークに切り替える場合に、このような削除が必要となることがあります。) ## 利用可能な履歴 -設計上、XRP Ledgerのすべてのデータとトランザクションは公開されており、誰でもすべてのデータを検索または照会できます。ただし、サーバーが検索できるデータは、そのサーバーがローカルで使用できるデータに限られます。サーバーで利用できないレジャーバージョンやトランザクションを照会しようとすると、そのデータが見つからないというレスポンスがサーバーから返されます。必要な履歴を保持している他のサーバーに対して同じ照会を実行すると、正常なレスポンスが返されます。XRP Ledgerデータを使用する企業では、サーバーで利用可能な履歴の量に注意してください。 +設計上、XRP Ledgerのすべてのデータとトランザクションは公開されており、誰でもすべてのデータを検索または照会できます。ただし、サーバが検索できるデータは、そのサーバがローカルで使用できるデータに限られます。サーバで利用できないレジャーバージョンやトランザクションを照会しようとすると、そのデータが見つからないというレスポンスがサーバから返されます。必要な履歴を保持している他のサーバに対して同じ照会を実行すると、正常なレスポンスが返されます。XRP Ledgerデータを使用する企業では、サーバで利用可能な履歴の量に注意してください。 -[server_infoメソッド][]は、サーバーで利用可能なレジャーバージョンの数を`complete_ledgers`フィールドで報告します。 +[server_infoメソッド][]は、サーバで利用可能なレジャーバージョンの数を`complete_ledgers`フィールドで報告します。 ## 履歴の取得 -`rippled`サーバーは起動されると、最優先で最新の検証済みレジャーの完全なコピーを取得します。その後、サーバーは常にレジャーの進行状況を把握します。レジャー履歴を埋め戻すように設定されているサーバーでは、レジャー履歴が設定量に達するまで埋め戻されます。この設定量は、オンライン削除による削除が開始されるカットオフ値以下でなければなりません。 +`rippled`サーバは起動されると、最優先で最新の検証済みレジャーの完全なコピーを取得します。その後、サーバは常にレジャーの進行状況を把握します。レジャー履歴を埋め戻すように設定されているサーバでは、レジャー履歴が設定量に達するまで埋め戻されます。この設定量は、オンライン削除による削除が開始されるカットオフ値以下でなければなりません。 -履歴の埋め戻しは、サーバーの最も低い優先順位の1つであるため、特にサーバーが忙しい場合や、ハードウェアやネットワークのスペックが十分でない場合、不足する履歴を埋めるのに長い時間がかかることがあります。ハードウェアのスペックに関する推奨事項は、[容量計画](../../infrastructure/installation/capacity-planning.md)を参照してください。また、履歴を埋め戻すには、サーバーのダイレクトピアのうち少なくとも1つが該当する履歴を持っていることが必要です。サーバーのピアツーピア接続の管理については、[ピアリングの設定](../../infrastructure/configuration/peering/index.md)を参照してください。 +履歴の埋め戻しは、サーバの最も低い優先順位の1つであるため、特にサーバが忙しい場合や、ハードウェアやネットワークのスペックが十分でない場合、不足する履歴を埋めるのに長い時間がかかることがあります。ハードウェアのスペックに関する推奨事項は、[容量計画](../../infrastructure/installation/capacity-planning.md)を参照してください。また、履歴を埋め戻すには、サーバのダイレクトピアのうち少なくとも1つが該当する履歴を持っていることが必要です。サーバのピアツーピア接続の管理については、[ピアリングの設定](../../infrastructure/configuration/peering/index.md)を参照してください。 -XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要が[LedgerHashesオブジェクトタイプ](../../references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md)の形式で含まれています。サーバーはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。 +XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要が[LedgerHashesオブジェクトタイプ](../../references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md)の形式で含まれています。サーバはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。 ### 履歴の埋め戻し {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} -サーバーがダウンロードしようとする履歴の量は、その設定に依存します。サーバーは自動的に、**最も古い台帳までの履歴**をダウンロードしてギャップを埋めようとします。`[ledger_history]`設定を使用すると、サーバーがそれ以降の履歴を埋め戻すようにすることができます。ただし、[削除](../../infrastructure/configuration/data-retention/online-deletion.md)が予定されている台帳は、サーバーがダウンロードすることはありません。 +サーバがダウンロードしようとする履歴の量は、その設定に依存します。サーバは自動的に、**最も古い台帳までの履歴**をダウンロードしてギャップを埋めようとします。`[ledger_history]`設定を使用すると、サーバがそれ以降の履歴を埋め戻すようにすることができます。ただし、[削除](../../infrastructure/configuration/data-retention/online-deletion.md)が予定されている台帳は、サーバがダウンロードすることはありません。 -`[ledger_history]`設定は、現在有効な台帳の前から蓄積する台帳の最小数を定義します。ネットワークの[完全な履歴](#すべての履歴)をダウンロードするには、特別な値`full`を使用します。`[ledger_history]`設定を使用して、サーバーに _より少ない_ 履歴をダウンロードさせることはできません。サーバーが保存する履歴の量を減らすには、代わりに[オンライン削除](../../infrastructure/configuration/data-retention/online-deletion.md)設定を変更してください。 +`[ledger_history]`設定は、現在有効な台帳の前から蓄積する台帳の最小数を定義します。ネットワークの[完全な履歴](#すべての履歴)をダウンロードするには、特別な値`full`を使用します。`[ledger_history]`設定を使用して、サーバに _より少ない_ 履歴をダウンロードさせることはできません。サーバが保存する履歴の量を減らすには、代わりに[オンライン削除](../../infrastructure/configuration/data-retention/online-deletion.md)設定を変更してください。 ## すべての履歴 -XRP Ledgerネットワーク内の一部のサーバーは、「すべての履歴が記録される」サーバーとして設定されています。これらのサーバーは、使用可能なすべてのXRP Ledgerの履歴を収集しますが、**オンライン削除は使用しません**。このため他の追跡サーバーよりもかなり多くのディスク容量が必要です。 +XRP Ledgerネットワーク内の一部のサーバは、「すべての履歴が記録される」サーバとして設定されています。これらのサーバは、使用可能なすべてのXRP Ledgerの履歴を収集しますが、**オンライン削除は使用しません**。このため他の追跡サーバよりもかなり多くのディスク容量が必要です。 -XRP Ledger財団は、コミュニティメンバーが運営する一連の全履歴サーバーへのアクセスを提供しています(詳細は[xrplcluster.com](https://xrplcluster.com)を参照)。 -また、Ripple社は公開サービスとして、`s2.ripple.com`に一連の公開全履歴サーバーを提供しています。 +XRP Ledger財団は、コミュニティメンバーが運営する一連の全履歴サーバへのアクセスを提供しています(詳細は[xrplcluster.com](https://xrplcluster.com)を参照)。 +また、Ripple社は公開サービスとして、`s2.ripple.com`に一連の公開全履歴サーバを提供しています。 -**ヒント:** 一部の暗号資産ネットワークとは異なり、XRP Ledgerのサーバーは、現在の状態を認識して最新のトランザクションを把握するのにすべての履歴を必要としません。 +**ヒント:** 一部の暗号資産ネットワークとは異なり、XRP Ledgerのサーバは、現在の状態を認識して最新のトランザクションを把握するのにすべての履歴を必要としません。 すべての履歴の設定については、[完全な履歴の設定](../../infrastructure/configuration/data-retention/configure-full-history.md)を参照してください。 ## 履歴シャーディング -XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わりに、複数のサーバーがレジャー履歴の一部分を保管するように構成できます。これは[履歴シャーディング](../../infrastructure/configuration/data-retention/history-sharding.md)機能によって実現します。一定範囲のレジャー履歴が _シャードストアー_ という個別の保管領域に保管されます。ピアサーバーから(上記の[履歴の取得](#履歴の取得)で説明したとおり)特定のデータがリクエストされると、サーバーはレジャーストアーまたはシャードストアーのデータを使用してレスポンスできます。 +XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わりに、複数のサーバがレジャー履歴の一部分を保管するように構成できます。これは[履歴シャーディング](../../infrastructure/configuration/data-retention/history-sharding.md)機能によって実現します。一定範囲のレジャー履歴が _シャードストアー_ という個別の保管領域に保管されます。ピアサーバから(上記の[履歴の取得](#履歴の取得)で説明したとおり)特定のデータがリクエストされると、サーバはレジャーストアーまたはシャードストアーのデータを使用してレスポンスできます。 -オンライン削除ではシャードストアーのデータは削除**されません**。ただし、32768個以上のレジャーバージョンをサーバーのレジャーストアーに保持するようにオンライン削除が設定されていれば、レジャーストアーからデータが自動的に削除される前に、サーバーはレジャーストアーからシャードストアーにすべてのシャードをコピーできます。 +オンライン削除ではシャードストアーのデータは削除**されません**。ただし、32768個以上のレジャーバージョンをサーバのレジャーストアーに保持するようにオンライン削除が設定されていれば、レジャーストアーからデータが自動的に削除される前に、サーバはレジャーストアーからシャードストアーにすべてのシャードをコピーできます。 詳細は、[履歴シャーディングの設定](../../infrastructure/configuration/data-retention/configure-history-sharding.md)を参照してください。 diff --git a/@i18n/ja/docs/concepts/networks-and-servers/parallel-networks.md b/@i18n/ja/docs/concepts/networks-and-servers/parallel-networks.md index f7a8a13568..4eec281523 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/parallel-networks.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/parallel-networks.md @@ -14,7 +14,7 @@ XRP Ledgerコミュニティのメンバーが、メインネットに影響を | ネットワーク | アップグレード頻度 | 説明 | |:-----------|:----------------|:---------------------------------------------| -| Mainnet | 安定版リリース | ピアツーピアサーバーのネットワーク機能を備えた分散型の暗号台帳であり、[XRP](../../introduction/what-is-xrp.md)の土台となる[XRP Ledger](/about/)です。 | +| Mainnet | 安定版リリース | ピアツーピアサーバのネットワーク機能を備えた分散型の暗号台帳であり、[XRP](../../introduction/what-is-xrp.md)の土台となる[XRP Ledger](/about/)です。 | | Testnet | 安定版リリース | XRP Ledger上に構築したソフトウェアのテスト環境として動作する「代替環境」のネットワークです。本番環境のXRP Ledgerユーザーに影響を及ぼすことも、本物の通貨をリスクにさらすこともありません。Testnetの[Amendmentのステータス](/resources/known-amendments.md)は、Mainnetを厳密に反映するようになっていますが、分散型システムが持つ予測不可能な性質により、タイミングにわずかな違いが生じることがあります。 | | Devnet | ベータ版リリース | 次期リリースのプレビューネットワークです。XRP Ledgerのコアソフトウェアへの不安定な変更がテストされます。このAltNetを使用すると、開発者はまだMainnetで有効になっていないXRPLの計画段階の新機能やAmendmentを操作したり学習したりすることができます。 | | [Hooks V3 Testnet](https://hooks-testnet-v3.xrpl-labs.com/) | [Hooksサーバ](https://github.com/XRPL-Labs/xrpld-hooks) | [Hooks](https://xrpl-hooks.readme.io/)を使用したオンチェーン・スマートコントラクト機能のプレビューネットワークです。 | @@ -29,7 +29,7 @@ XRP Ledgerコミュニティのメンバーが、メインネットに影響を 使用するネットワークを定義する`rippled`の設定はありません。その代わり、信頼するバリデータのコンセンサスに基づいてどのレジャーを正しいレジャーとして受け入れるかを把握します。`rippled`インスタンスからなる異なるコンセンサスグループが、同じグループの他のメンバーだけを信頼する場合、各グループは引き続き並列ネットワークとして機能します。悪意のあるコンピューターや不適切に動作するコンピューターが両方のネットワークに接続している場合でも、各ネットワークのメンバーが、定数設定を超えて別のネットワークのメンバーを信頼するように設定されていない限り、コンセンサスプロセスに混乱は生じません。 -Ripple社は、TestnetとDevnetでメインサーバーを運用しています。[独自の`rippled`サーバーをTestnetに接続](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md)することも可能です。TestnetとDevnetでは、多様で検閲耐性のあるバリデータのセットは使用されていません。そのため、Ripple社はTestnetやDevnetを定期的にリセットできます。 +Ripple社は、TestnetとDevnetでメインサーバを運用しています。[独自の`rippled`サーバをTestnetに接続](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md)することも可能です。TestnetとDevnetでは、多様で検閲耐性のあるバリデータのセットは使用されていません。そのため、Ripple社はTestnetやDevnetを定期的にリセットできます。 ## 関連項目 diff --git a/@i18n/ja/docs/concepts/networks-and-servers/peer-protocol.md b/@i18n/ja/docs/concepts/networks-and-servers/peer-protocol.md index 1e271f686e..a33bde8deb 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/peer-protocol.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/peer-protocol.md @@ -2,40 +2,40 @@ html: peer-protocol.html parent: networks-and-servers.html seo: - description: ピアプロトコルは、rippledサーバーが互いに通信する言語を指定します。 + description: ピアプロトコルは、rippledサーバが互いに通信する言語を指定します。 labels: - - コアサーバー + - コアサーバ - ブロックチェーン --- # ピアプロトコル -XRP Ledgerのサーバーは、XRP Ledgerピアプロトコル(RTXP)を使用して相互に通信します。 +XRP Ledgerのサーバは、XRP Ledgerピアプロトコル(RTXP)を使用して相互に通信します。 -ピアプロトコルは、XRP Ledgerのサーバー間のメイン通信モードです。XRP Ledgerの動作、進捗状況、接続に関するすべての情報がピアプロトコルを通じて伝達されます。ピアツーピア通信の例を以下に示します。 +ピアプロトコルは、XRP Ledgerのサーバ間のメイン通信モードです。XRP Ledgerの動作、進捗状況、接続に関するすべての情報がピアプロトコルを通じて伝達されます。ピアツーピア通信の例を以下に示します。 -- ピアツーピアネットワーク内の他のサーバーへの接続のリクエスト、または接続スロットの使用可能性についてのアドバタイズ。 +- ピアツーピアネットワーク内の他のサーバへの接続のリクエスト、または接続スロットの使用可能性についてのアドバタイズ。 - ネットワークのその他の部分との候補トランザクションの共有。 - 履歴レジャーへのレジャーデータのリクエスト、またはレジャーデータの提供。 - コンセンサスのための一連のトランザクションの提示、またはコンセンサストランザクションセットの適用に関する算出結果の共有。 -ピアツーピア接続を確立するには、サーバーどうしをHTTPSで接続し、一方のサーバーはRTXPへの切り替えのために[HTTPアップグレード](https://tools.ietf.org/html/rfc7230#section-6.7)をリクエストします。(詳細は、[`rippled`リポジトリ](https://github.com/ripple/rippled)の[Overlay Network](https://github.com/XRPLF/rippled/blob/906ef761bab95f80b0a7e0cab3b4c594b226cf57/src/ripple/overlay/README.md#handshake)を参照してください。) +ピアツーピア接続を確立するには、サーバどうしをHTTPSで接続し、一方のサーバはRTXPへの切り替えのために[HTTPアップグレード](https://tools.ietf.org/html/rfc7230#section-6.7)をリクエストします。(詳細は、[`rippled`リポジトリ](https://github.com/ripple/rippled)の[Overlay Network](https://github.com/XRPLF/rippled/blob/906ef761bab95f80b0a7e0cab3b4c594b226cf57/src/ripple/overlay/README.md#handshake)を参照してください。) ## ピアの検出 -XRP Ledgerでは、「ゴシップ」プロトコルを使用して、XRP Ledgerネットワーク内でサーバーが互いを識別できるようにします。サーバーは、起動するたびに、以前に接続したその他のあらゆるピアに再接続します。フォールバックとして、[ハードコーディングされた公開ハブ](https://github.com/XRPLF/rippled/blob/fa57859477441b60914e6239382c6fba286a0c26/src/ripple/overlay/impl/OverlayImpl.cpp#L518-L525)を使用します。サーバーがピアに正常に接続されると、ピアを探している他のXRP Ledgerサーバーの接続情報(通常はIPアドレスとポート)をそのピアにリクエストします。その後、サーバーはそれらのサーバーに接続し、ピア接続するXRP Ledgerサーバーの接続情報をさらにリクエストできます。このプロセスにより、サーバーは十分なピア接続を確立し、単一のピアへの接続が失われた場合でも、ネットワークの残りの部分にその後も接続されます。 +XRP Ledgerでは、「ゴシップ」プロトコルを使用して、XRP Ledgerネットワーク内でサーバが互いを識別できるようにします。サーバは、起動するたびに、以前に接続したその他のあらゆるピアに再接続します。フォールバックとして、[ハードコーディングされた公開ハブ](https://github.com/XRPLF/rippled/blob/fa57859477441b60914e6239382c6fba286a0c26/src/ripple/overlay/impl/OverlayImpl.cpp#L518-L525)を使用します。サーバがピアに正常に接続されると、ピアを探している他のXRP Ledgerサーバの接続情報(通常はIPアドレスとポート)をそのピアにリクエストします。その後、サーバはそれらのサーバに接続し、ピア接続するXRP Ledgerサーバの接続情報をさらにリクエストできます。このプロセスにより、サーバは十分なピア接続を確立し、単一のピアへの接続が失われた場合でも、ネットワークの残りの部分にその後も接続されます。 -通常、サーバーが公開ハブに接続する必要があるのは1回のみです。他のピアを見つけるために、短時間のみ接続します。そうすることで、ネットワーク接続の安定性、ハブのビジー状態、およびサーバーが検出する他の高品質ピアの数に応じて、ハブにサーバーを引き続き接続するかどうかが異なります。サーバーでは、これらの他のピアのアドレスを保存するため、ネットワークの停止後または再起動後、それらのピアへの直接再接続を試行できます。 +通常、サーバが公開ハブに接続する必要があるのは1回のみです。他のピアを見つけるために、短時間のみ接続します。そうすることで、ネットワーク接続の安定性、ハブのビジー状態、およびサーバが検出する他の高品質ピアの数に応じて、ハブにサーバを引き続き接続するかどうかが異なります。サーバでは、これらの他のピアのアドレスを保存するため、ネットワークの停止後または再起動後、それらのピアへの直接再接続を試行できます。 -[peersメソッド][]は、サーバーが現在接続しているピアのリストを示します。 +[peersメソッド][]は、サーバが現在接続しているピアのリストを示します。 -価値の高いサーバー(重要な[バリデータ](rippled-server-modes.md#rippledサーバーのモード)など)によっては、ピア検出プロセスを通じて、サーバーを信頼性の低いピアに接続しないようにする場合があります。この場合、[プライベートピア](#プライベートピア)のみを使用するようにサーバーを構成できます。 +価値の高いサーバ(重要な[バリデータ](rippled-server-modes.md#rippledサーバのモード)など)によっては、ピア検出プロセスを通じて、サーバを信頼性の低いピアに接続しないようにする場合があります。この場合、[プライベートピア](#プライベートピア)のみを使用するようにサーバを構成できます。 ## ピアプロトコルポート -XRP Ledgerに参加するため、`rippled`サーバーはピアプロトコルを使用して任意のピアに接続します。(すべてのピアは、現行サーバーで[クラスター化されている](clustering.md)場合を除き、信頼できないものとして扱われます。) +XRP Ledgerに参加するため、`rippled`サーバはピアプロトコルを使用して任意のピアに接続します。(すべてのピアは、現行サーバで[クラスター化されている](clustering.md)場合を除き、信頼できないものとして扱われます。) -サーバーがピアポートで接続を送信 _かつ_ 受信できることが理想的です。`rippled`サーバーに、[ファイアウォール経由でピアプロトコルに使用するポートを転送する](../../infrastructure/configuration/peering/forward-ports-for-peering.md)必要があります。 +サーバがピアポートで接続を送信 _かつ_ 受信できることが理想的です。`rippled`サーバに、[ファイアウォール経由でピアプロトコルに使用するポートを転送する](../../infrastructure/configuration/peering/forward-ports-for-peering.md)必要があります。 [デフォルトの`rippled`構成ファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)は、すべてのネットワークインターフェイスにおいて、ポート51235で着信ピアプロトコル接続をリッスンします。使用するポートを変更するには、`rippled.cfg`ファイル内の該当するスタンザを編集します。 @@ -52,49 +52,49 @@ protocol = peer ## ノードキーペア -サーバーを初めて起動すると、ピアプロトコル通信でサーバー自体を識別するための _ノードキーペア_ が生成されます。サーバーはこのキーを使用して、ピアプロトコル通信のすべてに署名します。これにより、ピアツーピアネットワーク内の別のサーバーからのメッセージの整合性を、信頼できる方法で識別、検証できます。これは、そのサーバーのメッセージが信頼できないピアにより中継される場合も同様です。 +サーバを初めて起動すると、ピアプロトコル通信でサーバ自体を識別するための _ノードキーペア_ が生成されます。サーバはこのキーを使用して、ピアプロトコル通信のすべてに署名します。これにより、ピアツーピアネットワーク内の別のサーバからのメッセージの整合性を、信頼できる方法で識別、検証できます。これは、そのサーバのメッセージが信頼できないピアにより中継される場合も同様です。 -ノードキーペアはデータベースに保存され、サーバーの再起動時に再利用されます。サーバーのデータベースを削除すると、新しいノードキーペアが作成され、異なるアイデンティティでオンラインになります。データベースが削除されても同じキーペアを再利用するには、`[node_seed]`スタンザを使用してサーバーを設定できます。`[node_seed]`スタンザでの使用に適した値を生成するには、[validation_createメソッド][]を使用します。 +ノードキーペアはデータベースに保存され、サーバの再起動時に再利用されます。サーバのデータベースを削除すると、新しいノードキーペアが作成され、異なるアイデンティティでオンラインになります。データベースが削除されても同じキーペアを再利用するには、`[node_seed]`スタンザを使用してサーバを設定できます。`[node_seed]`スタンザでの使用に適した値を生成するには、[validation_createメソッド][]を使用します。 -また、ノードキーペアは、[ピアスロットの](#固定ピアとピアリザベーション)[クラスタリング](clustering.md)または[確保](#固定ピアとピアリザベーション)のために他のサーバーも識別します。サーバークラスターを使用している場合、一意の`[node_seed]`設定を使用してクラスター内の各サーバーを構成する必要があります。クラスターの設定についての詳細は、[`rippled`サーバーのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md)を参照してください。 +また、ノードキーペアは、[ピアスロットの](#固定ピアとピアリザベーション)[クラスタリング](clustering.md)または[確保](#固定ピアとピアリザベーション)のために他のサーバも識別します。サーバクラスターを使用している場合、一意の`[node_seed]`設定を使用してクラスター内の各サーバを構成する必要があります。クラスターの設定についての詳細は、[`rippled`サーバのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md)を参照してください。 ## 固定ピアとピアリザベーション -通常、`rippled`サーバーでは多数のピアを維持するよう試みるため、信頼性の低いピアの最大数まで自動接続されます。特定のピアサーバーへの接続を維持するように`rippled`サーバーを構成するには、いくつかの方法があります。 +通常、`rippled`サーバでは多数のピアを維持するよう試みるため、信頼性の低いピアの最大数まで自動接続されます。特定のピアサーバへの接続を維持するように`rippled`サーバを構成するには、いくつかの方法があります。 -- **固定ピア**を使用して、IPアドレスに基づき特定の他のピアへの接続を維持します。これは、ピアのIPアドレスが固定されている場合にのみ機能します。固定ピアを構成するには、構成スタンザ`[ips_fixed]`を使用します。これは、[クラスタリング](clustering.md)または[プライベートピア](#プライベートピア)の重要な部分です。固定ピアは構成ファイルで定義されているため、変更を適用するにはサーバーを再起動する必要があります。サーバーが同じユーザーまたは組織によって実行されている場合、固定ピアは、サーバーの接続状態を維持するのに最も有益です。 -- **ピアリザベーション**を使用して、特定のピアに優先順位を付けます。サーバーに特定のピアのピアリザベーションがある場合、既に最大数のピアに接続されていても、サーバーは常にそのピアからの接続リクエストを受け入れます。(これにより、サーバーでのピアの最大接続数を*超える*可能性があります。)[ノードキーペア](#ノードキーペア)によって確保済みピアを識別するため、可変IPアドレスを持つピアに対してもこれを行うことができます。ピアリザベーションは、管理コマンドを使用して構成され、サーバーデータベースに保存されるため、サーバーがオンラインの場合に調整することができ、再起動後も保存されます。ピアリザベーションは、さまざまなユーザーや組織が運営するサーバーを接続するのに最も有益です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} +- **固定ピア**を使用して、IPアドレスに基づき特定の他のピアへの接続を維持します。これは、ピアのIPアドレスが固定されている場合にのみ機能します。固定ピアを構成するには、構成スタンザ`[ips_fixed]`を使用します。これは、[クラスタリング](clustering.md)または[プライベートピア](#プライベートピア)の重要な部分です。固定ピアは構成ファイルで定義されているため、変更を適用するにはサーバを再起動する必要があります。サーバが同じユーザーまたは組織によって実行されている場合、固定ピアは、サーバの接続状態を維持するのに最も有益です。 +- **ピアリザベーション**を使用して、特定のピアに優先順位を付けます。サーバに特定のピアのピアリザベーションがある場合、既に最大数のピアに接続されていても、サーバは常にそのピアからの接続リクエストを受け入れます。(これにより、サーバでのピアの最大接続数を*超える*可能性があります。)[ノードキーペア](#ノードキーペア)によって確保済みピアを識別するため、可変IPアドレスを持つピアに対してもこれを行うことができます。ピアリザベーションは、管理コマンドを使用して構成され、サーバデータベースに保存されるため、サーバがオンラインの場合に調整することができ、再起動後も保存されます。ピアリザベーションは、さまざまなユーザーや組織が運営するサーバを接続するのに最も有益です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} -次の場合、`rippled`サーバーは、信頼性の低いピアには接続されません。 +次の場合、`rippled`サーバは、信頼性の低いピアには接続されません。 -- [プライベートピア](#プライベートピア)として構成されている場合、サーバーは固定ピアに _のみ_ 接続されます。 -- [スタンドアロンモード](rippled-server-modes.md#スタンドアロンモード)で実行されている場合、サーバーは _どの_ ピアにも接続されません。 +- [プライベートピア](#プライベートピア)として構成されている場合、サーバは固定ピアに _のみ_ 接続されます。 +- [スタンドアロンモード](rippled-server-modes.md#スタンドアロンモード)で実行されている場合、サーバは _どの_ ピアにも接続されません。 ## プライベートピア -`rippled`サーバーが「プライベート」サーバーとして動作するように設定し、そのIPアドレスを非公開にすることができます。これは、信頼できるバリデータなどの重要な`rippled`サーバーへのサービス拒否攻撃や侵入の試みに対する予防対策として有用です。ピアツーピアネットワークに参加するには、プライベートサーバーは1つ以上の非プライベートサーバーに接続するように設定されている必要があります。この非プライベートサーバーにより、メッセージがネットワークのその他の部分へ中継されます。 +`rippled`サーバが「プライベート」サーバとして動作するように設定し、そのIPアドレスを非公開にすることができます。これは、信頼できるバリデータなどの重要な`rippled`サーバへのサービス拒否攻撃や侵入の試みに対する予防対策として有用です。ピアツーピアネットワークに参加するには、プライベートサーバは1つ以上の非プライベートサーバに接続するように設定されている必要があります。この非プライベートサーバにより、メッセージがネットワークのその他の部分へ中継されます。 -**注意:** [固定ピア](#固定ピアとピアリザベーション)を使用せずにプライベートサーバーを構成すると、サーバーはネットワークに接続できないため、ネットワークの状態を認識したり、トランザクションをブロードキャストしたり、コンセンサスプロセスに参加したりすることができません。 +**注意:** [固定ピア](#固定ピアとピアリザベーション)を使用せずにプライベートサーバを構成すると、サーバはネットワークに接続できないため、ネットワークの状態を認識したり、トランザクションをブロードキャストしたり、コンセンサスプロセスに参加したりすることができません。 -サーバーをプライベートサーバーとして設定すると次のさまざまな影響が生じます。 +サーバをプライベートサーバとして設定すると次のさまざまな影響が生じます。 -- サーバーがピアツーピアネットワーク内の他のサーバーに接続するように明示的に設定されていない場合、サーバーは他のサーバーに発信接続しません。 -- サーバーは、他のサーバーからの接続を受け入れるように明示的に設定されていない場合、他のサーバーからの着信接続を受け入れません。 -- サーバーはそのダイレクトピアに対し、信頼できない通信([ピアクローラーAPIレスポンス](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を含む)の中ではサーバーのIPアドレスを公開しないように指示します。これは、[peers adminメソッド][peersメソッド]などの信頼できる通信には影響しません。 +- サーバがピアツーピアネットワーク内の他のサーバに接続するように明示的に設定されていない場合、サーバは他のサーバに発信接続しません。 +- サーバは、他のサーバからの接続を受け入れるように明示的に設定されていない場合、他のサーバからの着信接続を受け入れません。 +- サーバはそのダイレクトピアに対し、信頼できない通信([ピアクローラーAPIレスポンス](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を含む)の中ではサーバのIPアドレスを公開しないように指示します。これは、[peers adminメソッド][peersメソッド]などの信頼できる通信には影響しません。 - プライベートサーバーの設定に関係なく、バリデータは常にそのピアに対し、バリデータのIPアドレスを非公開にするように指示します。これにより、バリデータがサービス拒否攻撃を受け過剰な負荷がかかることから保護されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} + プライベートサーバの設定に関係なく、バリデータは常にそのピアに対し、バリデータのIPアドレスを非公開にするように指示します。これにより、バリデータがサービス拒否攻撃を受け過剰な負荷がかかることから保護されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} - **注意:** サーバーのソースコードを改ざんして、サーバーがこのリクエストを無視し、直近のピアのIPアドレスを共有する可能性があります。プライベートサーバーを、このように改ざんされていないことが確認されているサーバーにのみ接続するように設定してください。 + **注意:** サーバのソースコードを改ざんして、サーバがこのリクエストを無視し、直近のピアのIPアドレスを共有する可能性があります。プライベートサーバを、このように改ざんされていないことが確認されているサーバにのみ接続するように設定してください。 ### ピア接続設定のメリットとデメリット -XRP Ledgerで使用できるように、`rippled`サーバーをピアツーピアのオープンネットワークの残りの部分に接続する必要があります。大まかに言えば、`rippled`サーバーがネットワークに接続する方法には、次の3種類の構成があります。 +XRP Ledgerで使用できるように、`rippled`サーバをピアツーピアのオープンネットワークの残りの部分に接続する必要があります。大まかに言えば、`rippled`サーバがネットワークに接続する方法には、次の3種類の構成があります。 -- **検出されたピア**を使用します。サーバーは、検出された信頼の低いサーバーに接続し、それらのサーバーが適切に動作する限り接続を維持します。(たとえば、リクエストするデータはそれほど多くなく、ネットワーク接続は安定しているため、同じ[ネットワーク](parallel-networks.md)をフォローしているように見えます。)デフォルトでは、この構成に設定されています。 -- 同じユーザーまたは組織が実行する**プロキシを使用したプライベートサーバー**として使用します。プロキシは、プライベートサーバーとの固定ピア接続を維持するストック用の`rippled`サーバーです(検出されたピアにも接続されます)。 -- **公開ハブを使用するプライベートサーバー**として使用します。プロキシを使用する構成と似ていますが、サードパーティーによって異なります。 +- **検出されたピア**を使用します。サーバは、検出された信頼の低いサーバに接続し、それらのサーバが適切に動作する限り接続を維持します。(たとえば、リクエストするデータはそれほど多くなく、ネットワーク接続は安定しているため、同じ[ネットワーク](parallel-networks.md)をフォローしているように見えます。)デフォルトでは、この構成に設定されています。 +- 同じユーザーまたは組織が実行する**プロキシを使用したプライベートサーバ**として使用します。プロキシは、プライベートサーバとの固定ピア接続を維持するストック用の`rippled`サーバです(検出されたピアにも接続されます)。 +- **公開ハブを使用するプライベートサーバ**として使用します。プロキシを使用する構成と似ていますが、サードパーティーによって異なります。 各構成のメリットとデメリットは次のとおりです。 @@ -107,36 +107,36 @@ XRP Ledgerで使用できるように、`rippled`サーバーをピアツーピ 検出されたピア -プロキシを使用したプライベートサーバー +プロキシを使用したプライベートサーバ -公開ハブを使用するプライベートサーバー +公開ハブを使用するプライベートサーバ @@ -144,9 +144,9 @@ XRP Ledgerで使用できるように、`rippled`サーバーをピアツーピ -### プライベートサーバーの設定 +### プライベートサーバの設定 -サーバーをプライベートサーバーとして設定するには、設定ファイルの`[peer_private]`を`1`に設定します。詳細な手順については、[プライベートサーバーの設定](../../infrastructure/configuration/peering/configure-a-private-server.md)を参照してください。 +サーバをプライベートサーバとして設定するには、設定ファイルの`[peer_private]`を`1`に設定します。詳細な手順については、[プライベートサーバの設定](../../infrastructure/configuration/peering/configure-a-private-server.md)を参照してください。 ## 関連項目 @@ -155,8 +155,8 @@ XRP Ledgerで使用できるように、`rippled`サーバーをピアツーピ - [コンセンサス](../consensus-protocol/index.md) - [並列ネットワーク](parallel-networks.md) - **チュートリアル:** - - [rippledサーバーのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md) - - [プライベートサーバーの設定](../../infrastructure/configuration/peering/configure-a-private-server.md) + - [rippledサーバのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md) + - [プライベートサーバの設定](../../infrastructure/configuration/peering/configure-a-private-server.md) - [ピアクローラーの設定](../../infrastructure/configuration/peering/configure-the-peer-crawler.md) - [ピアリングのポート転送](../../infrastructure/configuration/peering/forward-ports-for-peering.md) - [特定のピアへの手動接続](../../infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md) diff --git a/@i18n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md b/@i18n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md index acdc706e8a..b5b1f2376c 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md @@ -2,49 +2,49 @@ html: rippled-server-modes.html parent: networks-and-servers.html seo: - description: ストックサーバー、バリデータサーバー、スタンドアロンモードで運用されるrippledサーバーなど、rippledサーバーのモードについて説明します。 + description: ストックサーバ、バリデータサーバ、スタンドアロンモードで運用されるrippledサーバなど、rippledサーバのモードについて説明します。 labels: - - コアサーバー + - コアサーバ --- -# rippledサーバーのモード +# rippledサーバのモード -`rippled`サーバーソフトウェアは、その設定に応じて以下のようなさまざまなモードで実行できます。 +`rippled`サーバソフトウェアは、その設定に応じて以下のようなさまざまなモードで実行できます。 - [**P2Pモード**](#p2pモード) - ピアツーピアネットワークをフォローし、トランザクションを処理し、ある程度の[レジャー履歴](ledger-history.md)を維持します。このモードは、以下の役割のいずれか、またはすべてを行うように設定することができます。 - [**バリデータ**](#バリデータ) - コンセンサスに参加することで、ネットワークの安全確保に貢献します。 - - [**APIサーバー**](#apiサーバー) - 共有レジャーからデータを読み込んだり、トランザクションを送信したり、レジャーのアクティビティを監視するための[APIアクセス](../../tutorials/http-websocket-apis/build-apps/get-started.md)を提供します。オプションとして、トランザクションやレジャーの履歴を完全に記録する [**全履歴サーバー**](#全履歴サーバー) とすることができます。 - - [**ハブサーバー**](#公開ハブ) - ピアツーピアネットワークの他の多くのメンバー間のメッセージを中継します。 -- [**レポートモード**](#レポートモード) - リレーショナルデータベースからのAPIリクエストに対応するための専用モードです。ピアツーピアネットワークには参加しないため、P2Pモードサーバーを実行し、信頼できるgRPC接続を使用してレポートモードサーバーに接続する必要があります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %} + - [**APIサーバ**](#apiサーバ) - 共有レジャーからデータを読み込んだり、トランザクションを送信したり、レジャーのアクティビティを監視するための[APIアクセス](../../tutorials/http-websocket-apis/build-apps/get-started.md)を提供します。オプションとして、トランザクションやレジャーの履歴を完全に記録する [**全履歴サーバ**](#全履歴サーバ) とすることができます。 + - [**ハブサーバ**](#公開ハブ) - ピアツーピアネットワークの他の多くのメンバー間のメッセージを中継します。 +- [**レポートモード**](#レポートモード) - リレーショナルデータベースからのAPIリクエストに対応するための専用モードです。ピアツーピアネットワークには参加しないため、P2Pモードサーバを実行し、信頼できるgRPC接続を使用してレポートモードサーバに接続する必要があります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %} - [**スタンドアロンモード**](#スタンドアロンモード) - テスト用のオフラインモードです。ピアツーピアネットワークに接続せず、コンセンサスも使用しません。 -また、[`rippled` API](../../references/http-websocket-apis/index.md)にローカルでアクセスするためのクライアントアプリケーションとして、`rippled`実行可能ファイルを実行できます。(この場合同じバイナリの2つのインスタンスを並列して実行できます。1つのインスタンスをサーバーとして実行し、もう1つのインスタンスをクライアントとして一時的に実行して終了します。) +また、[`rippled` API](../../references/http-websocket-apis/index.md)にローカルでアクセスするためのクライアントアプリケーションとして、`rippled`実行可能ファイルを実行できます。(この場合同じバイナリの2つのインスタンスを並列して実行できます。1つのインスタンスをサーバとして実行し、もう1つのインスタンスをクライアントとして一時的に実行して終了します。) 各モードで`rippled`を実行するためのコマンドについては、[rippledコマンドライン使用リファレンス](../../infrastructure/commandline-usage.md)を参照してください。 ## P2Pモード -P2Pモードは`rippled`サーバーのメインかつデフォルトのモードで、サーバーが行うべきほぼ全てのことを処理することができます。これらのサーバーは、トランザクションを処理し、XRP Ledgerの共有状態を維持するピアツーピア・ネットワークを形成しています。トランザクションを送信したり、レジャーデータを読んだり、その他ネットワークに参加したい場合、リクエストはどこかでP2Pモードのサーバーを経由しなければなりません。 +P2Pモードは`rippled`サーバのメインかつデフォルトのモードで、サーバが行うべきほぼ全てのことを処理することができます。これらのサーバは、トランザクションを処理し、XRP Ledgerの共有状態を維持するピアツーピア・ネットワークを形成しています。トランザクションを送信したり、レジャーデータを読んだり、その他ネットワークに参加したい場合、リクエストはどこかでP2Pモードのサーバを経由しなければなりません。 -P2Pモードのサーバーは、追加機能を提供するためにさらに細かく設定することができます。P2Pモードで動作し、設定ファイルを最小限に変更したサーバーは、_ストックサーバー_ とも呼ばれます。その他の構成は以下の通りです。 +P2Pモードのサーバは、追加機能を提供するためにさらに細かく設定することができます。P2Pモードで動作し、設定ファイルを最小限に変更したサーバは、_ストックサーバ_ とも呼ばれます。その他の構成は以下の通りです。 - [バリデータ](#バリデータ) -- [APIサーバー](#apiサーバー) +- [APIサーバ](#apiサーバ) - [公開ハブ](#公開ハブ) -P2Pモードのサーバーは、デフォルトで[Mainnet](parallel-networks.md)に接続します。 +P2Pモードのサーバは、デフォルトで[Mainnet](parallel-networks.md)に接続します。 -### APIサーバー +### APIサーバ -全てのP2Pモードサーバーは、トランザクションの送信、残高や設定の確認、サーバーの管理などの目的で、[API](../../references/http-websocket-apis/index.md)を提供しています。もしあなたがXRP Ledgerにデータを照会したり、ビジネス用途でトランザクションを送信するのであれば、[独自サーバーを運営する](index.md#独自サーバーを運用する理由)ことが有効でしょう。 +全てのP2Pモードサーバは、トランザクションの送信、残高や設定の確認、サーバの管理などの目的で、[API](../../references/http-websocket-apis/index.md)を提供しています。もしあなたがXRP Ledgerにデータを照会したり、ビジネス用途でトランザクションを送信するのであれば、[独自サーバを運営する](index.md#独自サーバを運用する理由)ことが有効でしょう。 -#### 全履歴サーバー +#### 全履歴サーバ -他のいくつかのブロックチェーンとは異なり、XRP Ledgerは、現在のステートの把握や新しいトランザクションの処理のために、サーバーが完全なトランザクション履歴を持つことを必要としません。サーバーの運用者は、一度にどれだけの[レジャー履歴](ledger-history.md)を保存するかを決めることができます。ただし、P2PモードサーバーがAPIリクエストに答えられるのは、ローカルで利用可能なレジャー履歴のみです。例えば、6ヶ月分の履歴を保存している場合、サーバーは1年前のトランザクションの結果を示すことはできません。[すべての履歴](ledger-history.md#すべての履歴)を持つAPIサーバーは、XRP Ledgerの開始以降のすべてのトランザクションと残高を報告できます。 +他のいくつかのブロックチェーンとは異なり、XRP Ledgerは、現在のステートの把握や新しいトランザクションの処理のために、サーバが完全なトランザクション履歴を持つことを必要としません。サーバの運用者は、一度にどれだけの[レジャー履歴](ledger-history.md)を保存するかを決めることができます。ただし、P2PモードサーバがAPIリクエストに答えられるのは、ローカルで利用可能なレジャー履歴のみです。例えば、6ヶ月分の履歴を保存している場合、サーバは1年前のトランザクションの結果を示すことはできません。[すべての履歴](ledger-history.md#すべての履歴)を持つAPIサーバは、XRP Ledgerの開始以降のすべてのトランザクションと残高を報告できます。 ### 公開ハブ -公開ハブは、他のサーバーへの[ピアプロトコル接続](peer-protocol.md)が多数あるストックサーバーを指します。ストックサーバーを _公開ハブ_ として実行することで、XRP Ledgerネットワークの効率的な接続を維持できます。適切に運用されている公開ハブには、以下の特徴があります。 +公開ハブは、他のサーバへの[ピアプロトコル接続](peer-protocol.md)が多数あるストックサーバを指します。ストックサーバを _公開ハブ_ として実行することで、XRP Ledgerネットワークの効率的な接続を維持できます。適切に運用されている公開ハブには、以下の特徴があります。 - 十分な帯域幅。 @@ -52,15 +52,15 @@ P2Pモードのサーバーは、デフォルトで[Mainnet](parallel-networks.m - メッセージを確実に中継する能力。 -サーバーをハブとして設定するには、許可される最大ピア数を増やし、ファイアウォールやNAT(ネットワークアドレス変換)ルーターで[適切なポートを転送](../../infrastructure/configuration/peering/forward-ports-for-peering.md)していることを確認する必要があります。 +サーバをハブとして設定するには、許可される最大ピア数を増やし、ファイアウォールやNAT(ネットワークアドレス変換)ルーターで[適切なポートを転送](../../infrastructure/configuration/peering/forward-ports-for-peering.md)していることを確認する必要があります。 ## バリデータ -XRP Ledgerの堅牢性は、他のバリデータが共謀しないことをそれぞれが信頼している、相互接続されたバリデータのネットワークに依存しています。他のP2Pモードサーバーと同様に、各トランザクションを処理し、レジャーの状態を計算することに加え、バリデータは[コンセンサスプロトコル](../consensus-protocol/index.md)に積極的に参加しています。もしあなたやあなたの組織がXRP Ledgerにアクセスするのであれば、バリデータとして1台のサーバーを稼働させ、コンセンサスプロセスに貢献することが望ましいでしょう。 +XRP Ledgerの堅牢性は、他のバリデータが共謀しないことをそれぞれが信頼している、相互接続されたバリデータのネットワークに依存しています。他のP2Pモードサーバと同様に、各トランザクションを処理し、レジャーの状態を計算することに加え、バリデータは[コンセンサスプロトコル](../consensus-protocol/index.md)に積極的に参加しています。もしあなたやあなたの組織がXRP Ledgerにアクセスするのであれば、バリデータとして1台のサーバを稼働させ、コンセンサスプロセスに貢献することが望ましいでしょう。 バリデーションはわずかな計算資源しか使用しませんが、1つの組織や団体が複数のバリデータを運用しても、共謀に対する保護が強化されるわけではないので、あまりメリットはないでしょう。各バリデータは一意の暗号鍵ペアで識別されるので、慎重に管理しなければいけません。複数のバリデータが鍵ペアを共有してはいけません。このような理由から、バリデーションはデフォルトで無効になっています。 -他の目的にも使用されているサーバーで、安全にバリデーションを有効にすることができます。このような構成は _汎用サーバー_ と呼ばれます。あるいは、他のタスクを実行しない _専用バリデータ_ を、P2Pモードの他の`rippled`サーバーと一緒に[クラスタ](clustering.md)で実行することもできます。 +他の目的にも使用されているサーバで、安全にバリデーションを有効にすることができます。このような構成は _汎用サーバ_ と呼ばれます。あるいは、他のタスクを実行しない _専用バリデータ_ を、P2Pモードの他の`rippled`サーバと一緒に[クラスタ](clustering.md)で実行することもできます。 バリデータの実行についての詳細は、[バリデータとしての`rippled`の実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)を参照してください。 @@ -69,16 +69,16 @@ XRP Ledgerの堅牢性は、他のバリデータが共謀しないことをそ ## レポートモード {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %} -レポートモードは、APIリクエストをより効率的に処理するために特化したモードです。このモードでは、サーバーは[gRPC](../../infrastructure/configuration/configure-grpc.md)を介して、P2Pモードで動作する別の`rippled`サーバーから最新の検証済みレジャーデータを取得し、そのデータをリレーショナルデータベース([PostgreSQL](https://www.postgresql.org/))にロードします。レポートモードサーバはピアツーピアネットワークに直接参加しませんが、トランザクションの送信などのリクエストを、使用しているP2Pモードサーバに転送することはできます。 +レポートモードは、APIリクエストをより効率的に処理するために特化したモードです。このモードでは、サーバは[gRPC](../../infrastructure/configuration/configure-grpc.md)を介して、P2Pモードで動作する別の`rippled`サーバから最新の検証済みレジャーデータを取得し、そのデータをリレーショナルデータベース([PostgreSQL](https://www.postgresql.org/))にロードします。レポートモードサーバはピアツーピアネットワークに直接参加しませんが、トランザクションの送信などのリクエストを、使用しているP2Pモードサーバに転送することはできます。 -複数のレポートモードサーバーは、PostgreSQLデータベースと[Apache Cassandra](https://cassandra.apache.org/)クラスタへのアクセスを共有し、各サーバーがすべてのデータの冗長コピーを必要とせずに大量の履歴を提供できます。レポートモードサーバは、基礎となるデータの保存方法の違いに対応するため、若干の変更を加えた同じ[`rippled` API](../../references/http-websocket-apis/index.md)を使ってこのデータを提供します。 +複数のレポートモードサーバは、PostgreSQLデータベースと[Apache Cassandra](https://cassandra.apache.org/)クラスタへのアクセスを共有し、各サーバがすべてのデータの冗長コピーを必要とせずに大量の履歴を提供できます。レポートモードサーバは、基礎となるデータの保存方法の違いに対応するため、若干の変更を加えた同じ[`rippled` API](../../references/http-websocket-apis/index.md)を使ってこのデータを提供します。 -最も注目すべきは、レポートモードのサーバーは、保留中や未検証のレジャーデータまたはトランザクションをレポートしないことです。この制限は、[分散型取引所](../tokens/decentralized-exchange/index.md)での裁定取引の実行など、流動的なデータへの迅速なアクセスに依存する特定の使用事例に関連しています。 +最も注目すべきは、レポートモードのサーバは、保留中や未検証のレジャーデータまたはトランザクションをレポートしないことです。この制限は、[分散型取引所](../tokens/decentralized-exchange/index.md)での裁定取引の実行など、流動的なデータへの迅速なアクセスに依存する特定の使用事例に関連しています。 ## スタンドアロンモード -スタンドアロンモードでは、サーバーはネットワークに接続せず、コンセンサスプロセスにも参加せずに動作します。コンセンサスプロセスがなければ、手動で台帳を進める必要があり、「closedレジャー」と「validatedレジャー」の区別はありません。しかし、サーバーは依然としてAPIアクセスを提供し、トランザクションを同じように処理します。これにより、以下のことが可能になります。 +スタンドアロンモードでは、サーバはネットワークに接続せず、コンセンサスプロセスにも参加せずに動作します。コンセンサスプロセスがなければ、手動で台帳を進める必要があり、「closedレジャー」と「validatedレジャー」の区別はありません。しかし、サーバは依然としてAPIアクセスを提供し、トランザクションを同じように処理します。これにより、以下のことが可能になります。 - 分散型ネットワーク上でAmendmentsが有効になる前に、[Amendmentsの影響をテストする](../../infrastructure/testing-and-auditing/test-amendments.md)。 - [新しいジェネシスレジャー](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md)を最初から作成する。 diff --git a/@i18n/ja/docs/concepts/networks-and-servers/the-clio-server.md b/@i18n/ja/docs/concepts/networks-and-servers/the-clio-server.md index d3fe98608b..fdab97fb90 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/the-clio-server.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/the-clio-server.md @@ -2,40 +2,40 @@ html: the-clio-server.html parent: networks-and-servers.html seo: - description: Clioは、API呼び出しに最適化されたXRP Ledgerサーバーです。 + description: Clioは、API呼び出しに最適化されたXRP Ledgerサーバです。 --- -# Clioサーバー +# Clioサーバ -Clioは、検証済みの台帳データに対するWebSocketまたはHTTP API呼び出しに最適化されたXRP Ledger APIサーバーです。 +Clioは、検証済みの台帳データに対するWebSocketまたはHTTP API呼び出しに最適化されたXRP Ledger APIサーバです。 -ClioサーバはP2Pネットワークに接続しません。代わりに、P2Pネットワークに接続されている指定された`rippled`サーバからデータを抽出します。APIコールを効率的に処理することで、ClioサーバーはP2Pモードで動作する`rippled`サーバーの負荷を軽減することができます。 +ClioサーバはP2Pネットワークに接続しません。代わりに、P2Pネットワークに接続されている指定された`rippled`サーバからデータを抽出します。APIコールを効率的に処理することで、ClioサーバはP2Pモードで動作する`rippled`サーバの負荷を軽減することができます。 -Clioは、検証済みの過去の台帳とトランザクションデータをスペース効率の良いフォーマットで保存し、`rippled`に比べて最大4倍少ないスペースで保存できます。ClioはCassandraまたはScyllaDBを使用し、スケーラブルな読み取りスループットを可能にします。複数のClioサーバーが同じデータセットへのアクセスを共有できるため、冗長なデータストレージや計算を必要とせず、Clioサーバーの高可用性クラスタを構築することが可能です。 +Clioは、検証済みの過去の台帳とトランザクションデータをスペース効率の良いフォーマットで保存し、`rippled`に比べて最大4倍少ないスペースで保存できます。ClioはCassandraまたはScyllaDBを使用し、スケーラブルな読み取りスループットを可能にします。複数のClioサーバが同じデータセットへのアクセスを共有できるため、冗長なデータストレージや計算を必要とせず、Clioサーバの高可用性クラスタを構築することが可能です。 -Clioは`rippled`サーバーにアクセスする必要があり、このサーバーはClioと同じマシン上で実行することも、別々に実行することも可能です。 +Clioは`rippled`サーバにアクセスする必要があり、このサーバはClioと同じマシン上で実行することも、別々に実行することも可能です。 Clioは完全な[HTTP / WebSocket API](../../references/http-websocket-apis/index.md)を提供していますが、デフォルトでは、検証済みのデータのみを返します。P2Pネットワークへのアクセスを必要とするリクエストに対しては、Clioは自動的にP2Pネットワーク上の`rippled`サーバにリクエストを転送し、レスポンスを返します。 -## Clioサーバーを運用する理由 +## Clioサーバを運用する理由 -独自のClioサーバーを運用する理由には様々なものがありますが、その多くは、P2Pネットワークに接続している`rippled`サーバーの負荷軽減、メモリ使用量とストレージのオーバーヘッドの低減、水平スケーリングの容易さ、APIリクエストのスループットの向上などに集約されるのではないでしょうか。 +独自のClioサーバを運用する理由には様々なものがありますが、その多くは、P2Pネットワークに接続している`rippled`サーバの負荷軽減、メモリ使用量とストレージのオーバーヘッドの低減、水平スケーリングの容易さ、APIリクエストのスループットの向上などに集約されるのではないでしょうか。 -* `rippled`サーバーの負荷軽減 - Clioサーバーはピアツーピア・ネットワークに接続しません。P2Pネットワークに接続されている1つ以上の信頼できる`rippled`サーバーから検証済みのデータを取得するためにgRPCを使用します。したがって、Clioサーバーはリクエストをより効率的に処理し、P2Pモードで動作する`rippled`サーバーの負荷を軽減することができます。 +* `rippled`サーバの負荷軽減 - Clioサーバはピアツーピア・ネットワークに接続しません。P2Pネットワークに接続されている1つ以上の信頼できる`rippled`サーバから検証済みのデータを取得するためにgRPCを使用します。したがって、Clioサーバはリクエストをより効率的に処理し、P2Pモードで動作する`rippled`サーバの負荷を軽減することができます。 * メモリ使用量とストレージのオーバーヘッドの低減 - ClioはデータベースとしてCassandraを使用し、データをスペース効率の良いフォーマットで保存するため、`rippled`に比べて最大4倍少ないスペースで保存できます。 -* 容易な水平スケーリング - 複数のClioサーバーが同じデータセットへのアクセスを共有できるため、Clioサーバーの高可用性クラスターを構築することが可能です。 +* 容易な水平スケーリング - 複数のClioサーバが同じデータセットへのアクセスを共有できるため、Clioサーバの高可用性クラスターを構築することが可能です。 -* APIリクエストのスループットの向上 - Clioサーバーは、1つまたは複数の信頼できる`rippled`サーバーから検証済みのデータを抽出し、このデータを効率的に保存します。そのため、APIコールを効率的に処理することができ、結果としてスループットが向上し、場合によってはレイテンシーも低下します。 +* APIリクエストのスループットの向上 - Clioサーバは、1つまたは複数の信頼できる`rippled`サーバから検証済みのデータを抽出し、このデータを効率的に保存します。そのため、APIコールを効率的に処理することができ、結果としてスループットが向上し、場合によってはレイテンシーも低下します。 -## Clioサーバーの仕組み +## Clioサーバの仕組み -[{% inline-svg file="/docs/img/clio-basic-architecture.svg" /%}](/docs/img/clio-basic-architecture.svg "図1: Clioサーバーの仕組み") +[{% inline-svg file="/docs/img/clio-basic-architecture.svg" /%}](/docs/img/clio-basic-architecture.svg "図1: Clioサーバの仕組み") -Clioサーバーは、トランザクションメタデータ、アカウントステート、台帳ヘッダーなどの有効な台帳データを永続的なデータストアに保存します。 +Clioサーバは、トランザクションメタデータ、アカウントステート、台帳ヘッダーなどの有効な台帳データを永続的なデータストアに保存します。 -ClioサーバーはAPIリクエストを受信すると、これらのデータストアからデータを検索します。P2Pネットワークからのデータを必要とするリクエストについては、ClioサーバーはリクエストをP2Pサーバーに転送し、レスポンスをクライアントに返します。 +ClioサーバはAPIリクエストを受信すると、これらのデータストアからデータを検索します。P2Pネットワークからのデータを必要とするリクエストについては、ClioサーバはリクエストをP2Pサーバに転送し、レスポンスをクライアントに返します。 以下のいずれかが当てはまる場合、Clioは**常に**`rippled`に転送します。 @@ -48,4 +48,4 @@ ClioサーバーはAPIリクエストを受信すると、これらのデータ - [Clio ソースコード](https://github.com/XRPLF/clio) - **チュートリアル:** - - [UbuntuにClioサーバーをインストールする](../../infrastructure/installation/install-clio-on-ubuntu.md) + - [UbuntuにClioサーバをインストールする](../../infrastructure/installation/install-clio-on-ubuntu.md) diff --git a/@i18n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md b/@i18n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md index 7d42b4c6a4..10e73b5410 100644 --- a/@i18n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md +++ b/@i18n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md @@ -2,7 +2,7 @@ html: transaction-censorship-detection.html parent: networks-and-servers.html seo: - description: XRP Ledgerでは取引検閲の自動検知機能がすべてのrippledサーバーで有効になっています。 + description: XRP Ledgerでは取引検閲の自動検知機能がすべてのrippledサーバで有効になっています。 labels: - ブロックチェーン --- @@ -10,9 +10,9 @@ labels: {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} -XRP Ledgerは、高い検閲耐性を実現できるように設計されています。この設計をサポートするために、XRP Ledgerでは、取引検閲の自動検知機能がすべての`rippled`サーバーで有効になっており、検閲によるネットワークへの影響の有無を、すべての参加者が確認できます。 +XRP Ledgerは、高い検閲耐性を実現できるように設計されています。この設計をサポートするために、XRP Ledgerでは、取引検閲の自動検知機能がすべての`rippled`サーバで有効になっており、検閲によるネットワークへの影響の有無を、すべての参加者が確認できます。 -`rippled`サーバーがネットワークと同期している間、検知機能は、`rippled`サーバーの観点から、[コンセンサス](../consensus-protocol/index.md)の最終ラウンドで受け入れられ、最後に検証されたレジャーに取り込まれるトランザクションをすべて追跡します。検知機能では、数回のコンセンサスラウンド後、検証済みのレジャーに取り込まれていないトランザクションの重大度が高くなるというログメッセージを発行します。 +`rippled`サーバがネットワークと同期している間、検知機能は、`rippled`サーバの観点から、[コンセンサス](../consensus-protocol/index.md)の最終ラウンドで受け入れられ、最後に検証されたレジャーに取り込まれるトランザクションをすべて追跡します。検知機能では、数回のコンセンサスラウンド後、検証済みのレジャーに取り込まれていないトランザクションの重大度が高くなるというログメッセージを発行します。 @@ -20,7 +20,7 @@ XRP Ledgerは、高い検閲耐性を実現できるように設計されてい 取引検閲検知機能の仕組みの概要を以下に示します。 -1. 検知機能は、`rippled`サーバーの最初のコンセンサス提案のすべてのトランザクションをトラッカーに追加します。 +1. 検知機能は、`rippled`サーバの最初のコンセンサス提案のすべてのトランザクションをトラッカーに追加します。 2. コンセンサスラウンドの終了時に、検知機能によって、検証済みのレジャーに取り込まれているトランザクションはすべて、トラッカーから削除されます。 @@ -28,7 +28,7 @@ XRP Ledgerは、高い検閲耐性を実現できるように設計されてい トランザクションがトラッカーに残っている限り、最大5つの警告メッセージに対して、検知機能は15個のレジャーごとにログに警告メッセージを発行し続けます。警告メッセージが5回発行されると、検知機能は、ログに最終的な[エラーメッセージ](#エラーメッセージの例)を発行し、警告およびエラーメッセージの発行を停止します。 - `rippled`サーバーログにこれらのメッセージが表示される場合、他のサーバーでトランザクションを取り込むことができない理由を調査する必要があります。まず、原因が悪意のある検閲よりも[誤検知](#誤検知の可能性)(無害なバグ)である可能性が高いと仮定します。 + `rippled`サーバログにこれらのメッセージが表示される場合、他のサーバでトランザクションを取り込むことができない理由を調査する必要があります。まず、原因が悪意のある検閲よりも[誤検知](#誤検知の可能性)(無害なバグ)である可能性が高いと仮定します。 @@ -56,11 +56,11 @@ LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 検知機能で誤検知メッセージが発行される可能性のあるシナリオを次に示します。 -- `rippled`サーバーでは、ネットワークの他の部分とは異なるコードでビルドを実行しています。そのため、トランザクションは`rippled`サーバー上で別の方法で適用され、結果として誤検知の原因になります。このような誤検知が発生することはほとんどありませんが、一般的に、正しいバージョンの`rippled`を実行することが重要です。 +- `rippled`サーバでは、ネットワークの他の部分とは異なるコードでビルドを実行しています。そのため、トランザクションは`rippled`サーバ上で別の方法で適用され、結果として誤検知の原因になります。このような誤検知が発生することはほとんどありませんが、一般的に、正しいバージョンの`rippled`を実行することが重要です。 -- `rippled`サーバーはネットワークと同期されていないため、現時点で認識されていません。 +- `rippled`サーバはネットワークと同期されていないため、現時点で認識されていません。 -- ネットワーク内の`rippled`サーバー(自身のサーバーも含まれる可能性が高い)は、`rippled`サーバーがトランザクションをネットワーク内の他の`rippled`サーバーに一貫性なく中継するバグのクラスの影響を受けています。 +- ネットワーク内の`rippled`サーバ(自身のサーバも含まれる可能性が高い)は、`rippled`サーバがトランザクションをネットワーク内の他の`rippled`サーバに一貫性なく中継するバグのクラスの影響を受けています。 現在、この予期しない動作の原因となる既知のバグはありません。ただし、バグの疑いがある影響を確認した場合は、[RippleのBug Bounty](https://ripple.com/bug-bounty/)プログラムへのご報告をお願いいたします。 diff --git a/@i18n/ja/docs/concepts/payment-types/index.md b/@i18n/ja/docs/concepts/payment-types/index.md index bce765983d..29448063c9 100644 --- a/@i18n/ja/docs/concepts/payment-types/index.md +++ b/@i18n/ja/docs/concepts/payment-types/index.md @@ -4,11 +4,12 @@ parent: concepts.html metadata: indexPage: true seo: - description: XRP LedgerはポイントツーポイントのXRPペイメントのほかに、より専門的な支払いタイプをサポートしています。 + title: ポイント・ツー・ポイント & 特別な支払いの種類 + description: XRP Ledgerはポイント・ツー・ポイントのXRPペイメントのほかに、特別な支払いタイプをサポートしています。XRP Ledgerの支払い方法については、こちらをご覧ください。 --- # 支払いのタイプ -XRP LedgerはポイントツーポイントのXRPペイメントのほかに、より専門的な支払いタイプをサポートしています。 +XRP Ledgerはポイント・ツー・ポイントのXRPペイメントのほかに、特別な支払いタイプをサポートしています。 {% child-pages /%} diff --git a/@i18n/ja/docs/concepts/tokens/decentralized-exchange/offers.md b/@i18n/ja/docs/concepts/tokens/decentralized-exchange/offers.md index bf8cc19cbc..d0b8ea63dd 100644 --- a/@i18n/ja/docs/concepts/tokens/decentralized-exchange/offers.md +++ b/@i18n/ja/docs/concepts/tokens/decentralized-exchange/offers.md @@ -90,7 +90,7 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 有効期限は秒単位で指定できますが、オファーが期限切れとなる時刻は、実際には正確ではありません。オファーが期限切れとなるのは、期限切れ時刻が直前の台帳のクローズ時刻より前か等しい場合です。それ以外の場合は、現実の時刻がオファー期限よりも後でも、オファーが約定する可能性があります。言い換えると、有効期限が最新の有効な台帳のクローズ時刻よりも遅ければ、実際の時計がどうであろうと、オファーはまだ「有効」なのです。 -これは、ネットワークのコンセンサス形成の仕組みによるものです。ピアツーピアネットワーク全体が合意に達するには、トランザクションを実行する際に、すべてのサーバーがどのオファーが期限切れであるかに合意する必要があります。個々のサーバーはシステム時刻の設定にわずかな違いがあるため、各サーバーが「現在」時刻を使用した場合、どのオファーが期限切れであるかについて同じ結論に達しない可能性があります。台帳のクローズ時刻は、その台帳のトランザクションが実行されるまで分からないため、サーバーは「前の台帳」の正式なクローズ時刻を代わりに使用します。[台帳のクローズ時刻は丸められます](../../ledgers/ledger-close-times.md)。このため、オファーが期限切れかどうかを判断するための時刻と実世界の時刻の差が生じる場合があるのです。 +これは、ネットワークのコンセンサス形成の仕組みによるものです。ピアツーピアネットワーク全体が合意に達するには、トランザクションを実行する際に、すべてのサーバがどのオファーが期限切れであるかに合意する必要があります。個々のサーバはシステム時刻の設定にわずかな違いがあるため、各サーバが「現在」時刻を使用した場合、どのオファーが期限切れであるかについて同じ結論に達しない可能性があります。台帳のクローズ時刻は、その台帳のトランザクションが実行されるまで分からないため、サーバは「前の台帳」の正式なクローズ時刻を代わりに使用します。[台帳のクローズ時刻は丸められます](../../ledgers/ledger-close-times.md)。このため、オファーが期限切れかどうかを判断するための時刻と実世界の時刻の差が生じる場合があるのです。 **注記:** 期限切れのOfferオブジェクトは、トランザクションによって削除されるまで、台帳内に残ります。それまでは、APIから取得したデータ([ledger_entryメソッド][]などを使用)に表示され続ける可能性があります。トランザクションは、有効期限が切れたOfferオブジェクトや資金不足のOfferオブジェクトを見つけると自動的に削除します。通常、オファーやクロスカレンシー決済を実行すると、そのOfferオブジェクトはマッチングまたはキャンセルされます。Offerオブジェクトに対応する所有者準備金は、Offerオブジェクトが実際に削除されたときにのみ再び利用可能になります。 diff --git a/@i18n/ja/docs/concepts/tokens/fungible-tokens/paths.md b/@i18n/ja/docs/concepts/tokens/fungible-tokens/paths.md index 54003ededd..3146bacabb 100644 --- a/@i18n/ja/docs/concepts/tokens/fungible-tokens/paths.md +++ b/@i18n/ja/docs/concepts/tokens/fungible-tokens/paths.md @@ -36,7 +36,7 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン ## Pathfinding -`rippled` APIではPathfindingに使用できるメソッドが2つあります。[ripple_path_findメソッド][]は、1回限りのパスセットの検索を実行します。[path_findメソッド][](WebSocketのみ)は、レジャーが閉鎖するか、またはサーバーがより適切なパスを検出するたびに、フォローアップレスポンスによって検索を拡大します。 +`rippled` APIではPathfindingに使用できるメソッドが2つあります。[ripple_path_findメソッド][]は、1回限りのパスセットの検索を実行します。[path_findメソッド][](WebSocketのみ)は、レジャーが閉鎖するか、またはサーバがより適切なパスを検出するたびに、フォローアップレスポンスによって検索を拡大します。 署名時に`rippled`によりパスが自動的に入力されるようにするには、[signメソッド][]または[`submit`コマンド(署名と送信モード)](../../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#署名と送信モード)へのリクエストに`build_path`フィールドを指定します。ただし、トラブルを回避するために、署名前にPathfindingを個別に実行し、結果を確認することが推奨されます。 diff --git a/@i18n/ja/docs/concepts/transactions/fees.md b/@i18n/ja/docs/concepts/transactions/fees.md index 1654f49718..c48177f437 100644 --- a/@i18n/ja/docs/concepts/transactions/fees.md +++ b/@i18n/ja/docs/concepts/transactions/fees.md @@ -8,7 +8,7 @@ labels: --- # 手数料(曖昧さの回避) -XRP Ledgerは分散型レジャーであり、暗号技術により保護され、サーバーで構成される分散型ピアツーピアネットワークで運用されます。つまり、Rippleを含め誰もネットワークアクセス料を要求できません。 +XRP Ledgerは分散型レジャーであり、暗号技術により保護され、サーバで構成される分散型ピアツーピアネットワークで運用されます。つまり、Rippleを含め誰もネットワークアクセス料を要求できません。 ただしXRP Ledgerのルールには、レジャーを悪用から保護するための中立的な手数料を含む各種手数料が設定されています。この中立的な手数料の受取先はありません。また、XRP Ledgerの内外でユーザーはさまざまな方法で相互に手数料を徴収できます。 diff --git a/@i18n/ja/docs/concepts/transactions/finality-of-results/index.md b/@i18n/ja/docs/concepts/transactions/finality-of-results/index.md index fd1b63f65a..cb84f72245 100644 --- a/@i18n/ja/docs/concepts/transactions/finality-of-results/index.md +++ b/@i18n/ja/docs/concepts/transactions/finality-of-results/index.md @@ -23,19 +23,19 @@ labels: | `tefPAST_SEQ` | 検証済みレジャーに同じシーケンス番号の別のトランザクションが含まれている場合は確定 | | `tefMAX_LEDGER` | 検証済みレジャーにトランザクションの`LastLedgerSequence`フィールドよりも大きい[レジャーインデックス][レジャーインデックス]があり、検証済みレジャーにそのトランザクションが含まれていない場合は確定 | -他のトランザクション結果は確定でない可能性があります。その場合、トランザクションはその後に成功または失敗する可能性があります(特に、条件の変更によってトランザクションの適用を妨げる原因がなくなった場合)。例えば、まだ存在していないアカウントにXRP以外の通貨を送信しようとしても失敗しますが、別のトランザクションで送信先アカウントを作成するのに十分なXRPを送信すれば成功します。サーバーは、一時的に失敗した署名付きのトランザクションを保存してから、事前に確認せずに後でそれを正常に適用する場合があります。 +他のトランザクション結果は確定でない可能性があります。その場合、トランザクションはその後に成功または失敗する可能性があります(特に、条件の変更によってトランザクションの適用を妨げる原因がなくなった場合)。例えば、まだ存在していないアカウントにXRP以外の通貨を送信しようとしても失敗しますが、別のトランザクションで送信先アカウントを作成するのに十分なXRPを送信すれば成功します。サーバは、一時的に失敗した署名付きのトランザクションを保存してから、事前に確認せずに後でそれを正常に適用する場合があります。 ## 未確定の結果はどのように変更できますか? -最初にトランザクションを送信すると、`rippled`サーバーはそのトランザクションを現在のオープンレジャーに暫定的に適用し、その結果から暫定的な[トランザクションの結果](../../../references/protocol/transactions/transaction-results/index.md)を返します。ただし、トランザクションの最終結果は、暫定的な結果とは大きく異なる場合があります。考えられる理由を以下に示します。 +最初にトランザクションを送信すると、`rippled`サーバはそのトランザクションを現在のオープンレジャーに暫定的に適用し、その結果から暫定的な[トランザクションの結果](../../../references/protocol/transactions/transaction-results/index.md)を返します。ただし、トランザクションの最終結果は、暫定的な結果とは大きく異なる場合があります。考えられる理由を以下に示します。 - トランザクションは、後のレジャーバージョンまで延期されるか、検証済みレジャーに取り込まれない場合があります。ほとんどの場合、XRP Ledgerでは、すべての有効なトランザクションをできるだけ早く処理するという原則に従います。ただし、次のような例外があります。 - 提案されたトランザクションが[コンセンサスラウンド](../../consensus-protocol/index.md)の開始時点で過半数のバリデータに中継されていない場合は、残りのバリデータがトランザクションを取得して有効であることを確認する時間を確保できるように、次のレジャーバージョンまで延期される場合があります。 - - アドレスが同じシーケンス番号を使用して2つの異なるトランザクションを送信する場合、それらのトランザクションのうち最大1つが検証されます。そのようなトランザクションが異なるパスのネットワーク経由で中継される場合、サーバーによっては、他の競合するトランザクションが先に過半数のサーバーに到達したために、暫定的に成功したトランザクションが失敗する可能性があります。 + - アドレスが同じシーケンス番号を使用して2つの異なるトランザクションを送信する場合、それらのトランザクションのうち最大1つが検証されます。そのようなトランザクションが異なるパスのネットワーク経由で中継される場合、サーバによっては、他の競合するトランザクションが先に過半数のサーバに到達したために、暫定的に成功したトランザクションが失敗する可能性があります。 - - ネットワークをスパムから保護するには、すべてのトランザクションでXRPの[トランザクションコスト](../transaction-cost.md)を消却し、XRP Ledgerピアツーピアネットワーク全体に中継する必要があります。ピアツーピアネットワークの負荷が大きいためにトランザクションコストが増加する場合、暫定的に成功したトランザクションは、コンセンサスを達成するのに十分なサーバーに中継されないか、後で[キューに入れられる](../transaction-queue.md)可能性があります。 + - ネットワークをスパムから保護するには、すべてのトランザクションでXRPの[トランザクションコスト](../transaction-cost.md)を消却し、XRP Ledgerピアツーピアネットワーク全体に中継する必要があります。ピアツーピアネットワークの負荷が大きいためにトランザクションコストが増加する場合、暫定的に成功したトランザクションは、コンセンサスを達成するのに十分なサーバに中継されないか、後で[キューに入れられる](../transaction-queue.md)可能性があります。 - 一時的なインターネットの停止または遅延により、`LastLedgerSequence`フィールドで設定されたトランザクションの指定有効期限内であっても、提案されたトランザクションが正常に中継されない場合があります。(トランザクションに有効期限が設定されていない場合、トランザクションは有効状態を維持し、後で成功する可能性がありますが、独自の方法では望ましくない場合があります。詳細は、[信頼できるトランザクションの送信](../reliable-transaction-submission.md)を参照してください。) @@ -49,7 +49,7 @@ labels: - 送金元に十分な資金がないために一時的に失敗した[Paymentトランザクション][]は、必要な資金を送金する別の取引が正規の順序で先に行われることにより、後で成功する可能性があります。逆も同様です。一時的に成功したトランザクションは、必要な資金を送金するトランザクションが標準的な順序に入れられたものの先に来なかったために失敗する可能性があります。 - **ヒント:** 上記の理由により、XRP Ledgerに対してテストを実行しており、同じデータに影響する複数のアカウントがある場合、必ずトランザクション間のレジャーが閉じられるまでお待ちください。[スタンドアロンモード](../../networks-and-servers/rippled-server-modes.md#スタンドアロンモード)のサーバーに対してテストを実行する場合は、[レジャーを手動で閉じる](../../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md)必要があります。 + **ヒント:** 上記の理由により、XRP Ledgerに対してテストを実行しており、同じデータに影響する複数のアカウントがある場合、必ずトランザクション間のレジャーが閉じられるまでお待ちください。[スタンドアロンモード](../../networks-and-servers/rippled-server-modes.md#スタンドアロンモード)のサーバに対してテストを実行する場合は、[レジャーを手動で閉じる](../../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md)必要があります。 ## 関連項目 diff --git a/@i18n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md b/@i18n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md index abcfd0b0c7..454b657325 100644 --- a/@i18n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md +++ b/@i18n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md @@ -20,9 +20,9 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 これらの手順で説明されているトランザクションの結果を理解するには、以下が必要となります。 - 理解する対象となるトランザクションがわかっている。トランザクションの[識別用ハッシュ][]がわかっていれば、それによりトランザクションを検索できます。また、最近のレジャーで実行されたトランザクションまたは特定のアカウントに最後に影響を及ぼしたトランザクションを確認することもできます。 -- 信頼できる情報と、トランザクションの送信日時に関する必要な履歴を提供する`rippled`サーバーにアクセスできる。 - - 最近送信したトランザクションの結果を確認する場合、トランザクションの送信時に使用したサーバーがネットワークと同期されていれば、そのサーバーにアクセスできるだけで十分です。 - - 古いトランザクションの結果については、[全履歴を記録するサーバー](../../networks-and-servers/ledger-history.md#すべての履歴)を使用できます。 +- 信頼できる情報と、トランザクションの送信日時に関する必要な履歴を提供する`rippled`サーバにアクセスできる。 + - 最近送信したトランザクションの結果を確認する場合、トランザクションの送信時に使用したサーバがネットワークと同期されていれば、そのサーバにアクセスできるだけで十分です。 + - 古いトランザクションの結果については、[全履歴を記録するサーバ](../../networks-and-servers/ledger-history.md#すべての履歴)を使用できます。 **ヒント:** この他にも、[Data API](../../../references/data-api.md)やエクスポートされた他のデータベースを使用するなど、XRP Ledgerからトランザクションのデータを照会する方法があります。ただし、これらのインターフェイスは正式なものではありません。このドキュメントでは、最も直接的で信頼できる結果を得るために、`rippled` APIを直接使用してデータを確認する方法を説明します。 @@ -34,10 +34,10 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 1. トランザクションが検証済みレジャーに記録されたか。 2. 記録されていた場合、結果としてレジャーの状態はどのように変化したか。 -検証済みレジャーにトランザクションが記録されていたかどうかを確認するには、通常、トランザクションが記録されている可能性のあるすべてのレジャーにアクセスする必要があります。最も簡単で確実な方法は、[全履歴を記録するサーバー](../../networks-and-servers/ledger-history.md#すべての履歴)でトランザクションを検索する方法です。[txメソッド][]、[account_txメソッド][]またはその他の`rippled`からのレスポンスを使用します。コンセンサスにより検証されたレジャーバージョンがこのレスポンスに使用されていることを示す`"validated": true`を検索します。 +検証済みレジャーにトランザクションが記録されていたかどうかを確認するには、通常、トランザクションが記録されている可能性のあるすべてのレジャーにアクセスする必要があります。最も簡単で確実な方法は、[全履歴を記録するサーバ](../../networks-and-servers/ledger-history.md#すべての履歴)でトランザクションを検索する方法です。[txメソッド][]、[account_txメソッド][]またはその他の`rippled`からのレスポンスを使用します。コンセンサスにより検証されたレジャーバージョンがこのレスポンスに使用されていることを示す`"validated": true`を検索します。 - 結果に`"validated": true`がない場合は、その結果は一時的である可能性があり、トランザクションの結果が最終的なものであるかどうかを知るには、レジャーが検証されるまで待機する必要があります。 -- 結果に目的のトランザクションが含まれていない場合、または`txnNotFound`エラーが返される場合は、サーバーにある利用可能な履歴に保存されているどのレジャーにもそのトランザクションはありません。ただし、このことだけでトランザクションが失敗したかどうかを判断できないことがあります。サーバーに保存されていない検証済みレジャーバージョンにトランザクションが記録されている、または今後検証されるレジャーにトランザクションが記録されている場合があるためです。以下を把握することで、トランザクションが記録されるレジャーの範囲を制限することができます。 +- 結果に目的のトランザクションが含まれていない場合、または`txnNotFound`エラーが返される場合は、サーバにある利用可能な履歴に保存されているどのレジャーにもそのトランザクションはありません。ただし、このことだけでトランザクションが失敗したかどうかを判断できないことがあります。サーバに保存されていない検証済みレジャーバージョンにトランザクションが記録されている、または今後検証されるレジャーにトランザクションが記録されている場合があるためです。以下を把握することで、トランザクションが記録されるレジャーの範囲を制限することができます。 - トランザクションが記録されている可能性のある最古のレジャー。つまり、**トランザクションを初めて送信した _後に_ 最初に検証されるレジャー**。 - トランザクションが記録されている可能性のある最新のレジャー。つまり、トランザクションの`LastLedgerSequence`フィールドで定義されるレジャー diff --git a/@i18n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md b/@i18n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md index 5d291e5db6..8965a3cc58 100644 --- a/@i18n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md +++ b/@i18n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md @@ -107,11 +107,11 @@ XRP Ledgerとのインフターフェイスに使用するソフトウェアか これにより、当初送信されたトランザクションと、不正使用者によって送信された改ざんバージョンが「競争」します。この2つのトランザクションが同時に記録されることはありません。いずれのトランザクションも有効ですが、`Sequence`番号をはじめ厳密に同一のトランザクションデータを含んでいるので、検証済みレジャーに記録できるのは常にいずれか1つになります。 - ピアツーピアネットワークのサーバーは、どちらが「最初に到着した」トランザクションであるか、またはどちらが元の送信者が意図したトランザクションであるかを認識できません。ネットワーク接続での遅延やその他の偶発的な事象により、バリデータはコンセンサス提案をファイナライズする時点で、いずれかのトランザクションだけを認識する結果になる可能性があります。この場合、いずれかのトランザクションが「競争に勝った」ことになります。 + ピアツーピアネットワークのサーバは、どちらが「最初に到着した」トランザクションであるか、またはどちらが元の送信者が意図したトランザクションであるかを認識できません。ネットワーク接続での遅延やその他の偶発的な事象により、バリデータはコンセンサス提案をファイナライズする時点で、いずれかのトランザクションだけを認識する結果になる可能性があります。この場合、いずれかのトランザクションが「競争に勝った」ことになります。 - もし不正使用者がピアツーピアネットワークで適切に接続しているいくつかのサーバーを乗っ取れば、これらのサーバーがバリデータとして信頼されていなくても、非正規トランザクションを確定できる確率を高めることができます。 + もし不正使用者がピアツーピアネットワークで適切に接続しているいくつかのサーバを乗っ取れば、これらのサーバがバリデータとして信頼されていなくても、非正規トランザクションを確定できる確率を高めることができます。 - 脆弱なシステムからのトランザクションを唯一受信したサーバーを不正使用者が乗っ取った場合、不正使用者はネットワークの他の部分に配信されるバージョンを容易に制御できるようになります。 + 脆弱なシステムからのトランザクションを唯一受信したサーバを不正使用者が乗っ取った場合、不正使用者はネットワークの他の部分に配信されるバージョンを容易に制御できるようになります。 6. 不正ユーザーのトランザクションがコンセンサスに達し、検証済みレジャーに記録されます。 diff --git a/@i18n/ja/docs/concepts/transactions/index.md b/@i18n/ja/docs/concepts/transactions/index.md index 5f9b92a8b4..0a9d12f5d8 100644 --- a/@i18n/ja/docs/concepts/transactions/index.md +++ b/@i18n/ja/docs/concepts/transactions/index.md @@ -16,7 +16,7 @@ _トランザクション(取引)_ は、XRP Ledgerを変更する唯一の ### トランザクションの識別 -署名付きトランザクションには、それを識別する固有の`"hash"`があります。トランザクションを送信すると、サーバーのレスポンスでハッシュが返されます。[account_txコマンド](../../references/http-websocket-apis/public-api-methods/account-methods/account_tx.md)を使用して、アカウントのトランザクション履歴でトランザクションを検索することもできます。 +署名付きトランザクションには、それを識別する固有の`"hash"`があります。トランザクションを送信すると、サーバのレスポンスでハッシュが返されます。[account_txコマンド](../../references/http-websocket-apis/public-api-methods/account-methods/account_tx.md)を使用して、アカウントのトランザクション履歴でトランザクションを検索することもできます。 だれでも最終的なステータスを確認として[ハッシュによってトランザクションを調べる](finality-of-results/look-up-transaction-results.md)ことができるため、トランザクションハッシュは「支払いの証明」として使用することができます。 @@ -60,9 +60,9 @@ XRP Ledgerにトランザクションを送信するには、いくつかの手 1. [未署名のトランザクションをJSON形式](#未署名のトランザクションの例)で作成します。 2. 1つ以上の署名を使用して[トランザクションを承認](#トランザクションの承認)します。 -3. `rippled`サーバーにトランザクションを送信します。トランザクションが適切に作成されている場合、サーバーはそのトランザクションを現行バージョンのレジャーに暫定的に適用し、そのトランザクションをピアツーピアネットワークの他のメンバーに中継します。 +3. `rippled`サーバにトランザクションを送信します。トランザクションが適切に作成されている場合、サーバはそのトランザクションを現行バージョンのレジャーに暫定的に適用し、そのトランザクションをピアツーピアネットワークの他のメンバーに中継します。 4. [コンセンサスプロセス](../consensus-protocol/index.md)によって、次の検証済みレジャーに含まれる暫定的なトランザクションが決定されます。 -5. `rippled`サーバーはそれらのトランザクションを正規順序で前のレジャーに適用し、それらの結果を共有します。 +5. `rippled`サーバはそれらのトランザクションを正規順序で前のレジャーに適用し、それらの結果を共有します。 6. 十分に[信頼できるバリデータ](../networks-and-servers/rippled-server-modes.md#バリデータ)がまったく同じレジャーを作成した場合、そのレジャーは _検証済み_ であると宣言され、そのレジャーの[トランザクションの結果](../../references/protocol/transactions/transaction-results/index.md)は不変となります。 XRP決済の送信に関する対話型チュートリアルについては、[Send XRP](../../tutorials/how-tos/send-xrp.md)を参照してください。 diff --git a/@i18n/ja/docs/concepts/transactions/reliable-transaction-submission.md b/@i18n/ja/docs/concepts/transactions/reliable-transaction-submission.md index bacfbd2ff4..aed4667e47 100644 --- a/@i18n/ja/docs/concepts/transactions/reliable-transaction-submission.md +++ b/@i18n/ja/docs/concepts/transactions/reliable-transaction-submission.md @@ -9,7 +9,7 @@ labels: --- # 信頼できるトランザクションの送信 -XRP Ledgerを使用する金融機関やその他のサービスは、ここで説明するベストプラクティスを使用し、迅速で確認可能な方法で、トランザクションが検証または拒否されるようにする必要があります。信頼できる(ローカルで運営されている)`rippled`サーバーにトランザクションを送信してください。 +XRP Ledgerを使用する金融機関やその他のサービスは、ここで説明するベストプラクティスを使用し、迅速で確認可能な方法で、トランザクションが検証または拒否されるようにする必要があります。信頼できる(ローカルで運営されている)`rippled`サーバにトランザクションを送信してください。 本書で説明されているベストプラクティスを使用すると、アプリケーションはアーカイブ中にトランザクションをXRP Ledgerに送信できます。 @@ -26,9 +26,9 @@ XRP Ledgerを使用する金融機関やその他のサービスは、ここで ## 背景 -XRP Ledgerプロトコルは、ネットワークのすべてのサーバーで共有されるレジャー(台帳)を提供します。[コンセンサスと検証のプロセス](../consensus-protocol/index.md)を通じ、ネットワークはトランザクションがレジャーに適用される(または除外される)順序に同意します。 +XRP Ledgerプロトコルは、ネットワークのすべてのサーバで共有されるレジャー(台帳)を提供します。[コンセンサスと検証のプロセス](../consensus-protocol/index.md)を通じ、ネットワークはトランザクションがレジャーに適用される(または除外される)順序に同意します。 -正しい形式のトランザクションを信頼できるXRP Ledgerサーバーに送信すると、数秒で検証または拒否されます。ただし、正しい形式のトランザクションであっても迅速に検証も拒否もされないことがあります。このような特殊なケースは、アプリケーションがトランザクションを送信した後にグローバル[トランザクションコスト](transaction-cost.md)が増加すると発生することがあります。トランザクションに指定された額よりもトランザクションコストが増加すると、そのトランザクションは次回の検証済みレジャーに含まれません。後日、グローバルトランザクションコストが下がった場合には、そのトランザクションは後のレジャーに含まれます。トランザクションに有効期限が指定されていない場合には、レジャーへの追加はいつになるか分かりません。 +正しい形式のトランザクションを信頼できるXRP Ledgerサーバに送信すると、数秒で検証または拒否されます。ただし、正しい形式のトランザクションであっても迅速に検証も拒否もされないことがあります。このような特殊なケースは、アプリケーションがトランザクションを送信した後にグローバル[トランザクションコスト](transaction-cost.md)が増加すると発生することがあります。トランザクションに指定された額よりもトランザクションコストが増加すると、そのトランザクションは次回の検証済みレジャーに含まれません。後日、グローバルトランザクションコストが下がった場合には、そのトランザクションは後のレジャーに含まれます。トランザクションに有効期限が指定されていない場合には、レジャーへの追加はいつになるか分かりません。 電源やネットワークに障害が発生した場合には、送信済みトランザクションのステータスの検出時にさらに多くの問題に直面します。アプリケーションは、トランザクションの適切な送信と、その後の正式結果の適切な受信の両方に十分な注意を払う必要があります。 @@ -46,15 +46,15 @@ XRP Ledgerには、[HTTP / WebSocket API](../../references/http-websocket-apis/i 4. 検証されたレジャーにはそのトランザクションが含まれ、その結果がレジャーの状態に反映されます。 - トランザクション結果は暫定的なものではなくなり、成功または失敗の結果は最終的かつ不変のものとなります。 -**注記:** `rippled`を介してトランザクションを送信すると、送信コマンドから返される成功ステータスコードによって、`rippled`サーバーがトランザクション候補を受信したことが示されます。このトランザクションは、検証されたレジャーに適用される場合とされない場合があります。 +**注記:** `rippled`を介してトランザクションを送信すると、送信コマンドから返される成功ステータスコードによって、`rippled`サーバがトランザクション候補を受信したことが示されます。このトランザクションは、検証されたレジャーに適用される場合とされない場合があります。 APIは、現在の進行中のレジャーにトランザクション候補を適用した結果に基づいて、暫定的な結果を返すことがあります。アプリケーションでは、この結果を、トランザクションの最終的な*不変の*結果と混同してはなりません。不変の結果は、検証済みのレジャーだけにあります。アプリケーションは、トランザクション結果を含むレジャーが検証されるまで、トランザクションのステータスを繰り返し照会する必要があります。 -トランザクションの適用時に、`rippled`サーバーは、*最後に検証されたレジャー*を使用します。これは、すでにネットワーク全体によって検証されたトランザクションに基づくレジャーの状態のスナップショットです。コンセンサスと検証のプロセスは、新しいトランザクションのセットを、最後に検証されたレジャーに正規の順序で適用します。その結果、新しい検証済みレジャーが出来上がります。この新しい検証済みレジャーバージョンとその前のバージョンによって、レジャー履歴が形成されます。 +トランザクションの適用時に、`rippled`サーバは、*最後に検証されたレジャー*を使用します。これは、すでにネットワーク全体によって検証されたトランザクションに基づくレジャーの状態のスナップショットです。コンセンサスと検証のプロセスは、新しいトランザクションのセットを、最後に検証されたレジャーに正規の順序で適用します。その結果、新しい検証済みレジャーが出来上がります。この新しい検証済みレジャーバージョンとその前のバージョンによって、レジャー履歴が形成されます。 レジャーの各バージョンにはレジャーインデックスが付けられており、前のレジャーバージョンのレジャーインデックスよりも1つ大きい値になります。また、各レジャーには識別用のハッシュ値があります。これは、レジャーの内容から決定される固有の値です。進行中のレジャーには多数のバージョンが存在することがあります。その場合、レジャーインデックスは同じですが、ハッシュ値が異なります。検証できるのは、1つのバージョンのみです。 -各検証済みレジャーには、トランザクションが適用される正規の順序があります。この順序は、レジャーの最終的なトランザクションセットに基づいて決定されます。これと異なり、各`rippled`サーバーの進行中のレジャーでは、トランザクションの受信時に増分計算されます。トランザクションを暫定的に実行する順序は、新しい検証済みレジャーを構築するためにトランザクションを実行する順序とは通常異なります。これが、トランザクションの暫定的な結果が最終結果とは異なる可能性がある理由の1つです。例えば、ある支払いが、同じオファーを使用する別の支払いの前と後のどちらで実行されるかによって、最終的な為替レートが異なることがあります。 +各検証済みレジャーには、トランザクションが適用される正規の順序があります。この順序は、レジャーの最終的なトランザクションセットに基づいて決定されます。これと異なり、各`rippled`サーバの進行中のレジャーでは、トランザクションの受信時に増分計算されます。トランザクションを暫定的に実行する順序は、新しい検証済みレジャーを構築するためにトランザクションを実行する順序とは通常異なります。これが、トランザクションの暫定的な結果が最終結果とは異なる可能性がある理由の1つです。例えば、ある支払いが、同じオファーを使用する別の支払いの前と後のどちらで実行されるかによって、最終的な為替レートが異なることがあります。 ### LastLedgerSequence @@ -162,11 +162,11 @@ For each persisted transaction without validated result: #### レジャーのギャップ -サーバーに、トランザクションが最初に送信されてから、レジャーが`LastLedgerSequence`によって識別された時点までを含む、継続したレジャー履歴がない場合には、トランザクションの最終結果を得られない可能性があります。(サーバーにないレジャーバージョンに結果が含まれている場合、成功したか失敗したかが分かりません。) +サーバに、トランザクションが最初に送信されてから、レジャーが`LastLedgerSequence`によって識別された時点までを含む、継続したレジャー履歴がない場合には、トランザクションの最終結果を得られない可能性があります。(サーバにないレジャーバージョンに結果が含まれている場合、成功したか失敗したかが分かりません。) -`rippled`サーバーにリソース(CPU/RAM/ディスクIO)の余裕がある場合には、不足しているレジャーバージョンを自動的に取得します。ただし、取得しようとするレジャーが[保管する履歴の設定期間](../networks-and-servers/ledger-history.md)よりも古い場合には取得されません。ギャップのサイズや、サーバーのリソース使用率に基づき、不足しているレジャーバージョンの取得には数分かかります。[ledger_requestメソッド][]を使用して、履歴レジャーバージョンを取得するようにサーバーにリクエストできます。しかし、そうしても、サーバーに設定された履歴範囲外のレジャーバージョンからのトランザクション結果は検索できない場合があります。 +`rippled`サーバにリソース(CPU/RAM/ディスクIO)の余裕がある場合には、不足しているレジャーバージョンを自動的に取得します。ただし、取得しようとするレジャーが[保管する履歴の設定期間](../networks-and-servers/ledger-history.md)よりも古い場合には取得されません。ギャップのサイズや、サーバのリソース使用率に基づき、不足しているレジャーバージョンの取得には数分かかります。[ledger_requestメソッド][]を使用して、履歴レジャーバージョンを取得するようにサーバにリクエストできます。しかし、そうしても、サーバに設定された履歴範囲外のレジャーバージョンからのトランザクション結果は検索できない場合があります。 -あるいは、`s2.ripple.com`にあるRippleの完全履歴サーバーなど、必要なレジャー履歴を含む別の`rippled`サーバーを使用して、トランザクションのステータスを検索することもできます。この目的には、信頼できるサーバーのみを使用してください。不正なサーバーは、トランザクションのステータスや結果について偽の情報を提供するようにプログラムされている可能性があります。 +あるいは、`s2.ripple.com`にあるRippleの完全履歴サーバなど、必要なレジャー履歴を含む別の`rippled`サーバを使用して、トランザクションのステータスを検索することもできます。この目的には、信頼できるサーバのみを使用してください。不正なサーバは、トランザクションのステータスや結果について偽の情報を提供するようにプログラムされている可能性があります。 ## 技術的応用 @@ -284,7 +284,7 @@ JSON-RPCリクエスト: } ``` -この例では、最後の検証済みレジャーインデックスは10268596(レスポンスの`result.state.validated_ledger`の下)です。この例では、レジャー履歴にギャップがあることも示されています。ここで使用されたサーバーは、ギャップの間(レジャー10256383から10256411)に適用されたトランザクションに関する情報を提供することはできません。その部分のレジャー履歴を取得するよう設定されていれば、最終的にサーバーで取得できます。 +この例では、最後の検証済みレジャーインデックスは10268596(レスポンスの`result.state.validated_ledger`の下)です。この例では、レジャー履歴にギャップがあることも示されています。ここで使用されたサーバは、ギャップの間(レジャー10256383から10256411)に適用されたトランザクションに関する情報を提供することはできません。その部分のレジャー履歴を取得するよう設定されていれば、最終的にサーバで取得できます。 #### トランザクションの生成 @@ -512,11 +512,11 @@ JSON-RPCリクエスト: } ``` -このトランザクションの例では、その時点の最後の検証済みレジャーに基づいて`LastLedgerSequence` 10268600を指定し、4を足します。不明のトランザクションが完全に失敗したかどうかを判断するには、`rippled`サーバーに、10268597から10268600のレジャーが必要です。サーバーの履歴にそれらの検証済みレジャーが存在し、**かつ**`tx`が`txnNotFound`が返される場合には、そのトランザクションは失敗であり、今後のレジャーに含めることはできません。この場合、アプリケーションのロジックで、同じアカウントシーケンスと更新された`LastLedgerSequence`を使用して代わりのトランザクションを作成して送信することが可能です。 +このトランザクションの例では、その時点の最後の検証済みレジャーに基づいて`LastLedgerSequence` 10268600を指定し、4を足します。不明のトランザクションが完全に失敗したかどうかを判断するには、`rippled`サーバに、10268597から10268600のレジャーが必要です。サーバの履歴にそれらの検証済みレジャーが存在し、**かつ**`tx`が`txnNotFound`が返される場合には、そのトランザクションは失敗であり、今後のレジャーに含めることはできません。この場合、アプリケーションのロジックで、同じアカウントシーケンスと更新された`LastLedgerSequence`を使用して代わりのトランザクションを作成して送信することが可能です。 -サーバーは、指定された`LastLedgerSequence`よりも小さい値の最後の検証済みレジャーインデックスをレポートする場合があります。その場合、`txnNotFound`に、(a)送信されたトランザクションがまだネットワークに配布されていないこと、または(b)トランザクションがネットワークに配布されたものの、まだ処理されていないことを示します。最初のケースに対処するために、アプリケーションは再度同じ署名済みのトランザクションを送信できます。トランザクションには固有のアカウントシーケンス番号がつけられているため、処理されるのは一度のみです。 +サーバは、指定された`LastLedgerSequence`よりも小さい値の最後の検証済みレジャーインデックスをレポートする場合があります。その場合、`txnNotFound`に、(a)送信されたトランザクションがまだネットワークに配布されていないこと、または(b)トランザクションがネットワークに配布されたものの、まだ処理されていないことを示します。最初のケースに対処するために、アプリケーションは再度同じ署名済みのトランザクションを送信できます。トランザクションには固有のアカウントシーケンス番号がつけられているため、処理されるのは一度のみです。 -最後に、サーバーにトランザクション履歴のギャップが1つ以上存在する場合があります。上記のレスポンスに示される`completed_ledgers`フィールドは、このrippledインスタンスの10256383から10256411のレジャーが不足していることを示しています。このトランザクションの例では、(トランザクションの送信時点と`LastLedgerSequence`に基づいて)トランザクションは10268597から10268600のレジャーのみに含まれるため、このギャップはここでは関係ありません。ただし、必要範囲のレジャーが不足している場合には、`txnNotFound`の結果が不変の結果であるかどうかを判断するために、アプリケーションは別のrippledサーバーに照会する(またはこのサーバーによって不足しているレジャーが取得されるまで待つ)必要があります。 +最後に、サーバにトランザクション履歴のギャップが1つ以上存在する場合があります。上記のレスポンスに示される`completed_ledgers`フィールドは、このrippledインスタンスの10256383から10256411のレジャーが不足していることを示しています。このトランザクションの例では、(トランザクションの送信時点と`LastLedgerSequence`に基づいて)トランザクションは10268597から10268600のレジャーのみに含まれるため、このギャップはここでは関係ありません。ただし、必要範囲のレジャーが不足している場合には、`txnNotFound`の結果が不変の結果であるかどうかを判断するために、アプリケーションは別のrippledサーバに照会する(またはこのサーバによって不足しているレジャーが取得されるまで待つ)必要があります。 ## その他のリソース diff --git a/@i18n/ja/docs/concepts/transactions/secure-signing.md b/@i18n/ja/docs/concepts/transactions/secure-signing.md index 2fdc1a4580..4562c157a9 100644 --- a/@i18n/ja/docs/concepts/transactions/secure-signing.md +++ b/@i18n/ja/docs/concepts/transactions/secure-signing.md @@ -11,14 +11,14 @@ labels: [トランザクション](index.md)をXRP Ledgerに送信するには、[秘密鍵](../accounts/cryptographic-keys.md)のセキュリティを損なわない方法でトランザクションにデジタル署名する必要があります。(他の人があなたの秘密鍵にアクセスできる場合、その人はあなたと同じようにあなたのアカウントを操作できるため、すべての資金が盗まれたり消却されたりする可能性があります。)このページでは、トランザクションに安全に署名できる環境の設定方法について説明します。 -**ヒント:** ネットワークにトランザクションを送信していない場合は、Rippleが運用しているサーバーなど、信頼できる公開サーバーを安全に使用して、着信トランザクションの監視やその他のネットワークアクティビティの読み取りを行うことができます。XRP Ledgerのすべてのトランザクション、残高、データは公開されています。 +**ヒント:** ネットワークにトランザクションを送信していない場合は、Rippleが運用しているサーバなど、信頼できる公開サーバを安全に使用して、着信トランザクションの監視やその他のネットワークアクティビティの読み取りを行うことができます。XRP Ledgerのすべてのトランザクション、残高、データは公開されています。 セキュリティのレベルが異なるさまざまな構成があるため、状況に応じて適したものは異なります。次の中からニーズに最適なものを選択してください。 - [`rippled`をローカルで実行](#ローカルでrippledを実行する)または[同じLAN内で実行](#同じlan内でrippledを実行する) - ローカル署名を行える[クライアントライブラリを使用](#ローカル署名機能のあるクライアントライブラリを使用する) - XRP Ledgerの署名に対応した[専用の署名デバイスを使用](#専用の署名デバイスを使用する) -- 信頼できる[リモート`rippled`マシンに接続するために安全なVPNを使用](#リモートrippledサーバーに対して安全なvpnを使用する) +- 信頼できる[リモート`rippled`マシンに接続するために安全なVPNを使用](#リモートrippledサーバに対して安全なvpnを使用する) @@ -27,7 +27,7 @@ labels: [{% inline-svg file="/docs/img/insecure-signing-options.svg" /%}](/docs/img/insecure-signing-options.svg "安全でない構成の図") -外部のソースからあなたの秘密鍵にアクセスできる構成は危険で、不正使用者によってあなたのすべてのXRP(およびあなたのXRP Ledgerのアドレスにあるすべてのもの)が盗まれる可能性があります。そのような構成の例としては、インターネット経由で他の人の`rippled`サーバーの[signメソッド][]を使用する構成や、秘密鍵をインターネットを経由してプレーンテキストで自己所有サーバーに送信する構成などがあります。 +外部のソースからあなたの秘密鍵にアクセスできる構成は危険で、不正使用者によってあなたのすべてのXRP(およびあなたのXRP Ledgerのアドレスにあるすべてのもの)が盗まれる可能性があります。そのような構成の例としては、インターネット経由で他の人の`rippled`サーバの[signメソッド][]を使用する構成や、秘密鍵をインターネットを経由してプレーンテキストで自己所有サーバに送信する構成などがあります。 秘密鍵の秘匿性は常に保持する必要があります。自分にメールで送信したり、人の目に触れるところで入力したりしてはいけません。秘密鍵を使用しないときは、決してプレーンテキストではなく、暗号化された形式で保存する必要があります。セキュリティと利便性のバランスは、アドレスの保有額によっても変わります。さまざまな目的に合わせてさまざまなセキュリティ構成の複数のアドレスを使用することをお勧めします。 @@ -36,7 +36,7 @@ labels: ## ローカルでrippledを実行する -[{% inline-svg file="/docs/img/secure-signing-local-rippled.svg" /%}](/docs/img/secure-signing-local-rippled.svg "署名にローカルrippledサーバーを使用する構成の図") +[{% inline-svg file="/docs/img/secure-signing-local-rippled.svg" /%}](/docs/img/secure-signing-local-rippled.svg "署名にローカルrippledサーバを使用する構成の図") この構成では、トランザクションを生成するマシンで`rippled`を実行します。 秘密鍵はマシンから出ていかないため、マシンへのアクセス権がない人は秘密鍵にアクセスできません。もちろん、マシンのセキュリティ保護に関する業界標準のプラクティスに従ってください。この構成を使用するには、次の手順を実行します。 @@ -44,24 +44,24 @@ labels: ローカルマシンが[`rippled`の最小システム要件](../../infrastructure/installation/system-requirements.md)を満たしていることを確認します。 -2. トランザクションに署名する必要がある場合は、`localhost`または`127.0.0.1`のサーバーに接続します。シングル署名の場合は[signメソッド][]、マルチシグの場合は[sign_forメソッド][]を使用します。 +2. トランザクションに署名する必要がある場合は、`localhost`または`127.0.0.1`のサーバに接続します。シングル署名の場合は[signメソッド][]、マルチシグの場合は[sign_forメソッド][]を使用します。 [構成ファイルの例](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073)では、ローカルループバックネットワーク上(127.0.0.1)のポート5005でJSON-RPC(HTTP)、ポート6006でWebSocket(WS)の接続をリッスンし、接続されるすべてのクライアントを管理者として扱っています。 **注意:** 署名に[コマンドラインAPI](../../references/http-websocket-apis/api-conventions/request-formatting.md#コマンドライン形式)を使用する場合は、コマンドラインでないクライアントで[Websocket APIやJSON-RPC APIを使用](../../tutorials/http-websocket-apis/build-apps/get-started.md)する場合よりもセキュリティが弱くなります。コマンドライン構文を使用すると、秘密鍵がシステムのプロセスリストで他のユーザーに見える可能性があり、シェル履歴にプレーンテキスト形式でキーが保存される可能性があります。 -3. サーバーの使用中は、稼働状態と最新状態を維持して、ネットワークと同期されるようにしておく必要があります。 +3. サーバの使用中は、稼働状態と最新状態を維持して、ネットワークと同期されるようにしておく必要があります。 - **注記:** トランザクションを送信していないときは`rippled`サーバーをオフにすることが _可能_ ですが、再び起動したときにネットワークとの同期に最大15分かかります。 + **注記:** トランザクションを送信していないときは`rippled`サーバをオフにすることが _可能_ ですが、再び起動したときにネットワークとの同期に最大15分かかります。 ## 同じLAN内でrippledを実行する -[{% inline-svg file="/docs/img/secure-signing-lan-rippled.svg" /%}](/docs/img/secure-signing-lan-rippled.svg "署名にLAN経由でrippledサーバーを使用する構成の図") +[{% inline-svg file="/docs/img/secure-signing-lan-rippled.svg" /%}](/docs/img/secure-signing-lan-rippled.svg "署名にLAN経由でrippledサーバを使用する構成の図") -この構成では、署名するトランザクションを生成するマシンと同じプライベートローカルエリアネットワーク(LAN)内の専用マシンで`rippled`サーバーを実行します。この構成では、`rippled`を実行する専用の1台のマシンを使用しながら、中程度のシステムスペックの1台以上のマシンでトランザクションの指示を組み立てることができます。自己所有のデータセンターやサーバールームがある場合に魅力的な選択肢です。 +この構成では、署名するトランザクションを生成するマシンと同じプライベートローカルエリアネットワーク(LAN)内の専用マシンで`rippled`サーバを実行します。この構成では、`rippled`を実行する専用の1台のマシンを使用しながら、中程度のシステムスペックの1台以上のマシンでトランザクションの指示を組み立てることができます。自己所有のデータセンターやサーバルームがある場合に魅力的な選択肢です。 -この構成を使用するには、`rippled`サーバーをLAN内の`wss`および`https`接続を受け入れるように設定します。[証明書ピンニング](https://en.wikipedia.org/wiki/Transport_Layer_Security#Certificate_pinning)を使用する場合は自己署名証明書を使用できます。あるいは、社内や既知の認証局が署名した証明書を使用できます。[Let's Encrypt](https://letsencrypt.org/)などの一部の認証局は無料で証明書を自動発行しています。 +この構成を使用するには、`rippled`サーバをLAN内の`wss`および`https`接続を受け入れるように設定します。[証明書ピンニング](https://en.wikipedia.org/wiki/Transport_Layer_Security#Certificate_pinning)を使用する場合は自己署名証明書を使用できます。あるいは、社内や既知の認証局が署名した証明書を使用できます。[Let's Encrypt](https://letsencrypt.org/)などの一部の認証局は無料で証明書を自動発行しています。 @@ -123,13 +123,13 @@ labels: この構成の設定は、特定のデバイスによって異なります。場合によっては、署名デバイスと通信するためにマシンで「マネージャー」アプリケーションを実行する必要があります。そのようなデバイスの設定と使用方法については、メーカーの手順を参照してください。 -## リモートrippledサーバーに対して安全なVPNを使用する +## リモートrippledサーバに対して安全なVPNを使用する [{% inline-svg file="/docs/img/secure-signing-over-vpn.svg" /%}](/docs/img/secure-signing-over-vpn.svg "VPNを経由してリモート`rippled`に安全に接続する構成の図") -この構成では、コロケーション施設や遠隔地のデータセンターなどにあるリモートでホストされている`rippled`サーバーを使用し、暗号化されたVPNを使用してそのサーバーに接続します。 +この構成では、コロケーション施設や遠隔地のデータセンターなどにあるリモートでホストされている`rippled`サーバを使用し、暗号化されたVPNを使用してそのサーバに接続します。 -この構成を使用するには、[プライベートLANで`rippled`を実行](#同じlan内でrippledを実行する)するための手順に従いますが、VPNを使用してリモート`rippled`サーバーのLANに接続します。VPNの設定手順は環境によって異なり、このガイドでは説明しません。 +この構成を使用するには、[プライベートLANで`rippled`を実行](#同じlan内でrippledを実行する)するための手順に従いますが、VPNを使用してリモート`rippled`サーバのLANに接続します。VPNの設定手順は環境によって異なり、このガイドでは説明しません。 ## 関連項目 diff --git a/@i18n/ja/docs/concepts/transactions/transaction-cost.md b/@i18n/ja/docs/concepts/transactions/transaction-cost.md index 7ee762f216..99f14110ef 100644 --- a/@i18n/ja/docs/concepts/transactions/transaction-cost.md +++ b/@i18n/ja/docs/concepts/transactions/transaction-cost.md @@ -42,8 +42,8 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ [FeeEscalation Amendment][]が有効な場合、トランザクションコストには以下の2つのしきい値があります。 -* トランザクションコストが`rippled`サーバーの[負荷ベーストランザクションコストのしきい値](#ローカル負荷コスト)を満たしていない場合、サーバーはそのトランザクションを完全に無視します。(このロジックはAmendmentの有無にかかわらず基本的に変わりません。) -* トランザクションコストが`rippled`サーバーの[オープンレジャーコストのしきい値](#オープンレジャーコスト)を満たしていない場合、サーバーはそのトランザクションを後のレジャーのキューに入れます。 +* トランザクションコストが`rippled`サーバの[負荷ベーストランザクションコストのしきい値](#ローカル負荷コスト)を満たしていない場合、サーバはそのトランザクションを完全に無視します。(このロジックはAmendmentの有無にかかわらず基本的に変わりません。) +* トランザクションコストが`rippled`サーバの[オープンレジャーコストのしきい値](#オープンレジャーコスト)を満たしていない場合、サーバはそのトランザクションを後のレジャーのキューに入れます。 これによってトランザクションは大まかに以下の3つのカテゴリーに分けられます。 @@ -54,13 +54,13 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ## ローカル負荷コスト -各`rippled`サーバーには、現在の負荷に基づいてコストしきい値が保持されています。送信するトランザクションの`Fee`値が`rippled`サーバーの現在の負荷ベーストランザクションコストより低い場合、そのサーバーはトランザクションの適用も中継もしません。(**注記:** [管理者接続](../../tutorials/http-websocket-apis/get-started.md)を介してトランザクションを送信する場合、トランザクションがスケーリングされていない最低トランザクションコストを満たすかぎり、サーバーはそのトランザクションを適用し、中継します。)トランザクションの`Fee`値が大半のサーバーの要件を満たさないかぎり、そのトランザクションが[コンセンサスプロセス](../consensus-protocol/index.md)を完了する可能性は極めて低くなります。 +各`rippled`サーバには、現在の負荷に基づいてコストしきい値が保持されています。送信するトランザクションの`Fee`値が`rippled`サーバの現在の負荷ベーストランザクションコストより低い場合、そのサーバはトランザクションの適用も中継もしません。(**注記:** [管理者接続](../../tutorials/http-websocket-apis/get-started.md)を介してトランザクションを送信する場合、トランザクションがスケーリングされていない最低トランザクションコストを満たすかぎり、サーバはそのトランザクションを適用し、中継します。)トランザクションの`Fee`値が大半のサーバの要件を満たさないかぎり、そのトランザクションが[コンセンサスプロセス](../consensus-protocol/index.md)を完了する可能性は極めて低くなります。 ## オープンレジャーコスト -`rippled`サーバーにはトランザクションコストを強制する2つ目のメカニズムがあり、 _オープンレジャーコスト_ と呼ばれます。トランザクションがXRPによるオープンレジャーコスト要件を満たす場合のみ、そのトランザクションをオープンレジャーに含めることができます。オープンレジャーコスト要件を満たさないトランザクションは、[次のレジャーのキューに入れられます](#キューに入れられたトランザクション)。 +`rippled`サーバにはトランザクションコストを強制する2つ目のメカニズムがあり、 _オープンレジャーコスト_ と呼ばれます。トランザクションがXRPによるオープンレジャーコスト要件を満たす場合のみ、そのトランザクションをオープンレジャーに含めることができます。オープンレジャーコスト要件を満たさないトランザクションは、[次のレジャーのキューに入れられます](#キューに入れられたトランザクション)。 -新しいレジャーバージョンごとに、サーバーは前のレジャーのトランザクション数に基づいてオープンレジャーに含めるトランザクション数のソフトリミットを選択します。オープンレジャーコストは、オープンレジャー内のトランザクション数がソフトリミットと等しくなるまでは、スケーリングされていない最低トランザクションコストと同じです。それを超えると、オープンレジャーコストはオープンレジャーに含まれるトランザクションごとに急激に増加します。次のレジャーでは、現行のレジャーにソフトリミットを超えるトランザクションが含まれていれば、サーバーはソフトリミットを高くし、コンセンサスプロセスに5秒より時間が掛かる場合はソフトリミットを低くします。 +新しいレジャーバージョンごとに、サーバは前のレジャーのトランザクション数に基づいてオープンレジャーに含めるトランザクション数のソフトリミットを選択します。オープンレジャーコストは、オープンレジャー内のトランザクション数がソフトリミットと等しくなるまでは、スケーリングされていない最低トランザクションコストと同じです。それを超えると、オープンレジャーコストはオープンレジャーに含まれるトランザクションごとに急激に増加します。次のレジャーでは、現行のレジャーにソフトリミットを超えるトランザクションが含まれていれば、サーバはソフトリミットを高くし、コンセンサスプロセスに5秒より時間が掛かる場合はソフトリミットを低くします。 オープンレジャーコストの水準は、絶対的なトランザクションコストではなく[標準的なトランザクションコストに比例](#手数料レベル)しています。標準よりも高い要件を持つトランザクションタイプ([マルチシグトランザクション](../accounts/multi-signing.md)など)は、オープンレジャーコストを満たすために最低限のトランザクションコスト要件を持つトランザクションよりも多く支払う必要があります。 @@ -68,7 +68,7 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ### キューに入れられたトランザクション -`rippled`が、サーバーのローカル負荷コストは満たすが[オープンレジャーコスト](#オープンレジャーコスト)は満たさないトランザクションを受け取った場合、サーバーはそのトランザクションが後のレジャーに「含まれる可能性」を判断します。その可能性が高いと判断すれば、サーバーはそのトランザクションをトランザクションキューに追加し、他のネットワークメンバーにトランザクションを中継します。そうでない場合、サーバーはトランザクションを破棄します。[トランザクションコストは検証済みレジャーに含まれるトランザクションにのみ適用される](#トランザクションコストと失敗したトランザクション)ため、サーバーは、トランザクションコストを支払わないトランザクションにより生じるネットワーク負荷量を最低限に抑えようとします。 +`rippled`が、サーバのローカル負荷コストは満たすが[オープンレジャーコスト](#オープンレジャーコスト)は満たさないトランザクションを受け取った場合、サーバはそのトランザクションが後のレジャーに「含まれる可能性」を判断します。その可能性が高いと判断すれば、サーバはそのトランザクションをトランザクションキューに追加し、他のネットワークメンバーにトランザクションを中継します。そうでない場合、サーバはトランザクションを破棄します。[トランザクションコストは検証済みレジャーに含まれるトランザクションにのみ適用される](#トランザクションコストと失敗したトランザクション)ため、サーバは、トランザクションコストを支払わないトランザクションにより生じるネットワーク負荷量を最低限に抑えようとします。 キューに入れられたトランザクションの詳細は、[トランザクションキュー](transaction-queue.md)を参照してください。 @@ -96,14 +96,14 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ### server_info -[server_infoメソッド][]は、`validated_ledger.base_fee_xrp`と同様に、前のレジャー時点のスケーリングされていない最低XRPコストを10進XRPの形式でレポートします。トランザクションを中継するために必要な実際のコストをスケーリングするには、その`base_fee_xrp`値に同じレスポンス内の`load_factor`パラメーターを掛けます。このパラメーターは、サーバーの現在の負荷レベルを表します。つまり、次の式になります。 +[server_infoメソッド][]は、`validated_ledger.base_fee_xrp`と同様に、前のレジャー時点のスケーリングされていない最低XRPコストを10進XRPの形式でレポートします。トランザクションを中継するために必要な実際のコストをスケーリングするには、その`base_fee_xrp`値に同じレスポンス内の`load_factor`パラメーターを掛けます。このパラメーターは、サーバの現在の負荷レベルを表します。つまり、次の式になります。 **XRP単位の現在のトランザクションコスト = `base_fee_xrp` × `load_factor`** ### server_state -[server_stateメソッド][]は、`rippled`の内部負荷計算の内容をそのままの表示形式で返します。この場合、有効負荷率は`load_base`に対する`load_factor`の割合です。`validated_ledger.base_fee`パラメーターは、[XRPのdrop](../../references/protocol/data-types/basic-data-types.md#通貨額の指定)単位の最低トランザクションコストをレポートします。この設計により、`rippled`では整数のみでトランザクションコストの計算ができ、サーバー負荷の微調整も十分に行えます。実際のトランザクションコストの計算は以下のようになります。 +[server_stateメソッド][]は、`rippled`の内部負荷計算の内容をそのままの表示形式で返します。この場合、有効負荷率は`load_base`に対する`load_factor`の割合です。`validated_ledger.base_fee`パラメーターは、[XRPのdrop](../../references/protocol/data-types/basic-data-types.md#通貨額の指定)単位の最低トランザクションコストをレポートします。この設計により、`rippled`では整数のみでトランザクションコストの計算ができ、サーバ負荷の微調整も十分に行えます。実際のトランザクションコストの計算は以下のようになります。 **drop単位の現在のトランザクションコスト = (`base_fee` × `load_factor`) ÷ `load_base`** @@ -133,15 +133,15 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ## トランザクションコストと失敗したトランザクション -トランザクションコストの目的はXRP Ledgerピアツーピアネットワークを過度な負荷から保護することであるため、トランザクションが成功するかどうかにかかわらず、ネットワークに分散されるすべてのトランザクションにコストが適用されます。ただし、共有のグローバルレジャーに作用するため、トランザクションを検証済みレジャーに含める必要があります。したがって、`rippled`サーバーは[`tec`ステータスコード](../../references/protocol/transactions/transaction-results/index.md)(「tec」は「トランザクションエンジン - 請求手数料のみ」(Transaction Engine - Claimed fee only)を表します)で、失敗したトランザクションをレジャーに含めようとします。 +トランザクションコストの目的はXRP Ledgerピアツーピアネットワークを過度な負荷から保護することであるため、トランザクションが成功するかどうかにかかわらず、ネットワークに分散されるすべてのトランザクションにコストが適用されます。ただし、共有のグローバルレジャーに作用するため、トランザクションを検証済みレジャーに含める必要があります。したがって、`rippled`サーバは[`tec`ステータスコード](../../references/protocol/transactions/transaction-results/index.md)(「tec」は「トランザクションエンジン - 請求手数料のみ」(Transaction Engine - Claimed fee only)を表します)で、失敗したトランザクションをレジャーに含めようとします。 トランザクションコストは、トランザクションが実際に検証済みレジャーに含められた場合に、送信者のXRP残高から差し引かれるだけです。このことは、トランザクションが成功するか`tec`コードとともに失敗するかにかかわらず適用されます。 -トランザクションの失敗が[確定](finality-of-results/index.md)である場合、`rippled`サーバーによるネットワークへの中継は行われません。トランザクションは検証済みレジャーに含まれないため、誰のXRP残高にも影響することはありません。 +トランザクションの失敗が[確定](finality-of-results/index.md)である場合、`rippled`サーバによるネットワークへの中継は行われません。トランザクションは検証済みレジャーに含まれないため、誰のXRP残高にも影響することはありません。 ### 不十分なXRP -`rippled`サーバーが最初にトランザクションを評価するとき、送信側アカウントにXRPトランザクションコストを支払うのに十分なXRP残高がない場合は、エラーコード`terINSUF_FEE_B`にてトランザクションを拒否します。これは`ter`(再試行)コードであるため、トランザクションの結果が[確定](finality-of-results/index.md)になるまで、`rippled`サーバーはネットワークへの中継を行わずにトランザクションを再試行します。 +`rippled`サーバが最初にトランザクションを評価するとき、送信側アカウントにXRPトランザクションコストを支払うのに十分なXRP残高がない場合は、エラーコード`terINSUF_FEE_B`にてトランザクションを拒否します。これは`ter`(再試行)コードであるため、トランザクションの結果が[確定](finality-of-results/index.md)になるまで、`rippled`サーバはネットワークへの中継を行わずにトランザクションを再試行します。 トランザクションはすでにネットワークに配信されているけれども、アカウントにトランザクションコストを支払うのに十分なXRPがない場合は、結果コード`tecINSUFF_FEE`が発生します。この場合、アカウントからは可能なかぎりすべてのXRPが支払われるため、最終的に0 XRPになります。これは、`rippled`がトランザクションをネットワークに中継するかどうかを進行中のレジャーに基づいて判断するために起こります。しかしコンセンサスレジャーを作成するときにトランザクションは破棄されるか並べ替えられることになります。 diff --git a/@i18n/ja/docs/concepts/transactions/transaction-queue.md b/@i18n/ja/docs/concepts/transactions/transaction-queue.md index 69429034b7..b963c25982 100644 --- a/@i18n/ja/docs/concepts/transactions/transaction-queue.md +++ b/@i18n/ja/docs/concepts/transactions/transaction-queue.md @@ -8,7 +8,7 @@ labels: --- # トランザクションキュー -`rippled`サーバーは、トランザクションキューを使用して[オープンレジャーコスト](transaction-cost.md#オープンレジャーコスト)を適用します。オープンレジャーコストにより、特定のレジャーの目標トランザクション数が設定され、オープンレジャーがこのサイズを超えると、必要なトランザクションコストが迅速に引き上げられます。`rippled`は引き上げられたトランザクションコストを支払うことができないトランザクションを無効にする代わりに、次のレジャーの構築に使用するトランザクションキューにそれらのトランザクションを入れようとします。 +`rippled`サーバは、トランザクションキューを使用して[オープンレジャーコスト](transaction-cost.md#オープンレジャーコスト)を適用します。オープンレジャーコストにより、特定のレジャーの目標トランザクション数が設定され、オープンレジャーがこのサイズを超えると、必要なトランザクションコストが迅速に引き上げられます。`rippled`は引き上げられたトランザクションコストを支払うことができないトランザクションを無効にする代わりに、次のレジャーの構築に使用するトランザクションキューにそれらのトランザクションを入れようとします。 ## トランザクションキューとコンセンサス @@ -20,9 +20,9 @@ labels: 2. **コンセンサスラウンド2** - バリデータは後のラウンドで自身の提案からトランザクションを削除する場合、そのトランザクションをキューに追加します。 -3. **コンセンサスラウンドN** - 十分な数のサーバーがトランザクションセットについて合意するまで、コンセンサスプロセスが継続されます。 +3. **コンセンサスラウンドN** - 十分な数のサーバがトランザクションセットについて合意するまで、コンセンサスプロセスが継続されます。 -4. **検証** - 複数のサーバーが、各々同一のレジャーを構築したことを確認し、そのレジャーが検証済みであると宣言します。 +4. **検証** - 複数のサーバが、各々同一のレジャーを構築したことを確認し、そのレジャーが検証済みであると宣言します。 5. **次の提案の作成** - 各バリデータは、キューに入れられているトランザクションを最初に使用して、次のレジャーバージョンの提案を準備します。 @@ -30,11 +30,11 @@ labels: このステップの後、プロセスが最初から繰り返されます。 -**注記:** 技術的には、上記のプロセスで説明したステップのいくつかは並行して発生します。これは、各サーバーは常に新しいトランザクションに備えて待機しており、前のレジャーバージョンのコンセンサスプロセスの実行中に次のレジャー提案の準備を開始するためです。 +**注記:** 技術的には、上記のプロセスで説明したステップのいくつかは並行して発生します。これは、各サーバは常に新しいトランザクションに備えて待機しており、前のレジャーバージョンのコンセンサスプロセスの実行中に次のレジャー提案の準備を開始するためです。 ## キューの制約事項 -`rippled`サーバーはさまざまな経験則によるテストを行って「レジャーに追加される可能性がある」トランザクションを推定します。現行の実装では、以下のルールに基づいてキューに入れるトランザクションが決定されます。 +`rippled`サーバはさまざまな経験則によるテストを行って「レジャーに追加される可能性がある」トランザクションを推定します。現行の実装では、以下のルールに基づいてキューに入れるトランザクションが決定されます。 - トランザクションは適切な形式で作成され、有効な署名によって[承認](index.md#トランザクションの承認)されている必要があります。 - `AccountTxnID`フィールドが指定されているトランザクションはキューに入れることができません。 @@ -62,7 +62,7 @@ labels: ## キュー内の順序 -トランザクションキュー内では、最も高いトランザクションコストを支払うトランザクションが一番になるようにトランザクションがランク付けされています。このランク付けはトランザクションの _絶対_ XRPコストではなく、 _[該当するトランザクションタイプの最小コスト](transaction-cost.md#特別なトランザクションコスト)に相対的な_ コストに基づいています。トランザクションコストが同額のトランザクションが複数ある場合は、サーバーが受信した順にランク付けされます。キュー内のトランザクションの順序にはその他の要因も影響します。たとえば、同一送信者からのトランザクションはその`Sequence`番号によりソートされ、順に送信されます。 +トランザクションキュー内では、最も高いトランザクションコストを支払うトランザクションが一番になるようにトランザクションがランク付けされています。このランク付けはトランザクションの _絶対_ XRPコストではなく、 _[該当するトランザクションタイプの最小コスト](transaction-cost.md#特別なトランザクションコスト)に相対的な_ コストに基づいています。トランザクションコストが同額のトランザクションが複数ある場合は、サーバが受信した順にランク付けされます。キュー内のトランザクションの順序にはその他の要因も影響します。たとえば、同一送信者からのトランザクションはその`Sequence`番号によりソートされ、順に送信されます。 キュー内のトランザクションの数が次のレジャーバージョンの予期サイズを超える場合には、キュー内のトランザクションの正確な順序に基づいて、次の処理レジャーバージョンに追加されるトランザクションが決定します。トランザクションの順序は**検証済みレジャー内でのトランザクションの実行順序には影響しません**。各検証済みレジャーバージョンでは、そのバージョンのトランザクションセットが[正規の順序](../consensus-protocol/consensus-structure.md#検証の計算と共有)で実行されます。 diff --git a/@i18n/ja/docs/infrastructure/commandline-usage.md b/@i18n/ja/docs/infrastructure/commandline-usage.md index 99ccc23a38..9f6f0811b3 100644 --- a/@i18n/ja/docs/infrastructure/commandline-usage.md +++ b/@i18n/ja/docs/infrastructure/commandline-usage.md @@ -3,7 +3,7 @@ html: commandline-usage.html name: コマンドラインの使い方 parent: infrastructure.html seo: - description: rippledサーバーのコマンドライン使用オプションです。 + description: rippledサーバのコマンドライン使用オプションです。 curated_anchors: - name: 使用できるモード anchor: "#使用できるモード" @@ -16,7 +16,7 @@ curated_anchors: - name: 単体テスト anchor: "#単体テスト" labels: - - コアサーバー + - コアサーバ --- # コマンドラインの使い方 @@ -25,8 +25,8 @@ labels: ## 使用できるモード - **デーモンモード** - デフォルトです。XRP Ledgerに接続して、トランザクションを処理し、レジャーデータベースを構築します。 -- **スタンドアロンモード** - `-a`または`--standalone`オプションを使用します。他のサーバーには接続できない以外は、デーモンモードと同様です。このモードは、トランザクション処理やその他の機能のテストに使用できます。 -- **クライアントモード** - APIメソッドの名前を指定して、別の`rippled`サーバーにJSON-RPCクライアントとして接続し、その後終了します。実行可能ファイルがすでに別のプロセスで実行中である場合に、このモードを使用してサーバーのステータスとレジャーデータを確認できます。 +- **スタンドアロンモード** - `-a`または`--standalone`オプションを使用します。他のサーバには接続できない以外は、デーモンモードと同様です。このモードは、トランザクション処理やその他の機能のテストに使用できます。 +- **クライアントモード** - APIメソッドの名前を指定して、別の`rippled`サーバにJSON-RPCクライアントとして接続し、その後終了します。実行可能ファイルがすでに別のプロセスで実行中である場合に、このモードを使用してサーバのステータスとレジャーデータを確認できます。 - **その他の使用法** - 以下の各コマンドを実行すると、`rippled`実行可能ファイルが何らかの情報を出力し、その後終了します。 - **ヘルプ** - 使用法の説明を出力するには、`-h`または`--help`を使用します。 - **単体テスト** - 単体テストを実行し、結果の概要を出力するには、`-u`または`--unittest`を使用します。rippledが正しくコンパイルされていることを確認する場合に便利です。 @@ -63,10 +63,10 @@ rippled [OPTIONS] | オプション | 説明 | |:--------------------|:-------------------------------------------------------| | `--fg` | デーモンをフォアグラウンドでシングルプロセスとして実行します。このオプションを指定しない場合、`rippled`は1番目のプロセスがモニターとして実行されている間に、デーモンの2番目のプロセスをフォークします。 | -| `--import` | 完全に起動する前に、別の`rippled`サーバーのレジャーストアーからレジャーデータをインポートしてください。構成ファイルに有効な`[import_db]`スタンザが指定されている必要があります。 | +| `--import` | 完全に起動する前に、別の`rippled`サーバのレジャーストアーからレジャーデータをインポートしてください。構成ファイルに有効な`[import_db]`スタンザが指定されている必要があります。 | | `--net` | **廃止予定** デバッグのためのオプションです。ネットワークからレジャーを取得できるようになるまで、ローカルレジャーを作成しません。 | | `--nodetoshard` | 完全に起動する前に、すべての完全な[履歴シャード](configuration/data-retention/history-sharding.md)をレジャーストアーからシャードストアーにコピーしてください(シャードストアーに設定されている最大ディスク容量まで)。CPUとI/Oを大量に使用します。注意: このコマンドは、データを(移動するのではなく)コピーするため、シャードストアーとレジャーストアーの両方にデータを保存するのに十分なディスク容量が必要です。 | -| `--quorum {QUORUM}` | これは[テストネットワーク](../concepts/networks-and-servers/parallel-networks.md)のブートストラップ用のオプションです。検証のための最小定数をオーバーライドするには、`{QUORUM}`の信頼できるバリデータの同意を必要とします。デフォルトでは、検証のための定数は、信頼できるバリデータの実際の数に基づき、安全な数に自動的に設定されます。一部のバリデータがオンラインではない場合、このオプションにより、標準定数よりも少ない数のバリデータで続行できるようになります。**警告:** 定数を手動で設定すると、設定した値が小さすぎるためにサーバーがネットワークの他の部分から分岐することを防ぐことができない可能性があります。このオプションは、コンセンサスを十分に理解し、標準以外の設定を使用する必要がある場合にのみ使用してください。 | +| `--quorum {QUORUM}` | これは[テストネットワーク](../concepts/networks-and-servers/parallel-networks.md)のブートストラップ用のオプションです。検証のための最小定数をオーバーライドするには、`{QUORUM}`の信頼できるバリデータの同意を必要とします。デフォルトでは、検証のための定数は、信頼できるバリデータの実際の数に基づき、安全な数に自動的に設定されます。一部のバリデータがオンラインではない場合、このオプションにより、標準定数よりも少ない数のバリデータで続行できるようになります。**警告:** 定数を手動で設定すると、設定した値が小さすぎるためにサーバがネットワークの他の部分から分岐することを防ぐことができない可能性があります。このオプションは、コンセンサスを十分に理解し、標準以外の設定を使用する必要がある場合にのみ使用してください。 | 次のフィールドは廃止されました: `--validateShards`。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}削除: rippled 1.7.0{% /badge %} @@ -84,11 +84,11 @@ rippled -a [OPTIONS] | オプション | 説明 | |:----------------------|:-----------------------------------------------------| -| `--ledger {LEDGER}` | `{LEDGER}`(レジャーハッシュまたはレジャーインデックス)により初期レジャーと識別されているレジャーバージョンを読み込みます。指定されたレジャーバージョンは、サーバーのレジャーストアーに格納される必要があります。 | +| `--ledger {LEDGER}` | `{LEDGER}`(レジャーハッシュまたはレジャーインデックス)により初期レジャーと識別されているレジャーバージョンを読み込みます。指定されたレジャーバージョンは、サーバのレジャーストアーに格納される必要があります。 | | `--ledgerfile {FILE}` | 指定された`{FILE}`からレジャーバージョンを読み込みます(このファイルには完全なレジャーがJSONフォーマットで格納されている必要があります)。このようなファイルの例については、付属の{% repo-link path="_api-examples/rippled-cli/ledger-file.json" %}`ledger-file.json`{% /repo-link %}を参照してください。 | | `--load` | **廃止予定** デバッグのためのオプションです。ディスク上のレジャーストアーから初期レジャーを読み込むだけです。 | -| `--replay` | デバッグのためのオプションです。`--ledger`と組み合わせて使用し、レジャーの閉鎖をリプレイします。サーバーのレジャーストアーには、当該レジャーとその直前のバージョンのレジャーがすでに格納されている必要があります。サーバーでは、前のレジャーをベースとして使用して、指定されたレジャーのすべてのトランザクションが処理されます。その結果、指定されたレジャーが再作成されます。デバッガーを使用して、特定のトランザクションの処理ロジックを分析するためのブレークポイントを追加できます。 | -| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバーに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](../concepts/networks-and-servers/amendments.md)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | +| `--replay` | デバッグのためのオプションです。`--ledger`と組み合わせて使用し、レジャーの閉鎖をリプレイします。サーバのレジャーストアーには、当該レジャーとその直前のバージョンのレジャーがすでに格納されている必要があります。サーバでは、前のレジャーをベースとして使用して、指定されたレジャーのすべてのトランザクションが処理されます。その結果、指定されたレジャーが再作成されます。デバッガーを使用して、特定のトランザクションの処理ロジックを分析するためのブレークポイントを追加できます。 | +| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](../concepts/networks-and-servers/amendments.md)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | | `--valid` | **廃止予定** デバッグのためのオプションです。ネットワークとの完全同期の前であっても、初期レジャーを有効なネットワークレジャーと見なします。 | ## クライアントモードのオプション @@ -97,7 +97,7 @@ rippled -a [OPTIONS] rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} ``` -クライアントモードでは、`rippled`実行可能ファイルが別の`rippled`サービスのクライアントとして動作します。(サービスは別のプロセスでローカルに実行されている同じ実行可能ファイルである場合や、別のサーバー上の`rippled`サーバーである場合があります。) +クライアントモードでは、`rippled`実行可能ファイルが別の`rippled`サービスのクライアントとして動作します。(サービスは別のプロセスでローカルに実行されている同じ実行可能ファイルである場合や、別のサーバ上の`rippled`サーバである場合があります。) クライアントモードで実行するには、いずれかの[`rippled` API](../references/http-websocket-apis/index.md)メソッドの[コマンドライン構文](../references/http-websocket-apis/api-conventions/request-formatting.md#コマンドライン形式)を指定します。 @@ -105,9 +105,9 @@ rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} | オプション | 説明 | |:------------------------|:---------------------------------------------------| -| `--rpc` | サーバーをクライアントモードで実行することを明示的に指定します。必須ではありません。 | -| `--rpc_ip {IP_ADDRESS}` | 指定されたIPアドレスの`rippled`サーバーに接続します。オプションでポート番号も指定します。 | -| `--rpc_port {PORT}` | **廃止予定** 指定されたポートで`rippled`サーバーに接続します。代わりに、`--rpc_ip`を使用してIPアドレスとともにポートを指定します。 | +| `--rpc` | サーバをクライアントモードで実行することを明示的に指定します。必須ではありません。 | +| `--rpc_ip {IP_ADDRESS}` | 指定されたIPアドレスの`rippled`サーバに接続します。オプションでポート番号も指定します。 | +| `--rpc_port {PORT}` | **廃止予定** 指定されたポートで`rippled`サーバに接続します。代わりに、`--rpc_ip`を使用してIPアドレスとともにポートを指定します。 | **ヒント:** 一部の引数では、マイナスの値を指定できます。APIコマンドの引数がオプションとして解釈されないようにするには、コマンド名の前に`--`引数を渡します。 @@ -137,7 +137,7 @@ rippled -u [OPTIONS] | オプション | 短縮形 | 説明 | |:-----------------------------------|:--------------|:------------------------| -| `--unittest-ipv6` | | 単体テストの実行時に[IPv6](https://en.wikipedia.org/wiki/IPv6)を使用してローカルサーバーに接続します。このオプションが指定されていない場合、単体テストではIPv4が代わりに使用されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %} | +| `--unittest-ipv6` | | 単体テストの実行時に[IPv6](https://en.wikipedia.org/wiki/IPv6)を使用してローカルサーバに接続します。このオプションが指定されていない場合、単体テストではIPv4が代わりに使用されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %} | | `--unittest-jobs {NUMBER_OF_JOBS}` | | 指定された数のプロセスを使用して単体テストを実行します。これにより、マルチコアシステムの単体テストをより短時間で終了できます。`{NUMBER_OF_JOBS}`には、使用するプロセスの数を示すプラスの整数値を指定します。 | | `--unittest-log` | | `--quiet`が指定されている場合でも、単体テストにてログへの書き込みができるようにします。(それ以外の影響はありません。) | | `--quiet` | `-q` | 単体テストの実行時に出力される診断メッセージの数が減少します。 | diff --git a/@i18n/ja/docs/infrastructure/configuration/configure-amendment-voting.md b/@i18n/ja/docs/infrastructure/configuration/configure-amendment-voting.md index 2ea76821c4..79d8c62e5d 100644 --- a/@i18n/ja/docs/infrastructure/configuration/configure-amendment-voting.md +++ b/@i18n/ja/docs/infrastructure/configuration/configure-amendment-voting.md @@ -2,14 +2,14 @@ html: configure-amendment-voting.html parent: configure-rippled.html seo: - description: プロトコル修正に伴うサーバーの投票を設定する。 + description: プロトコル修正に伴うサーバの投票を設定する。 labels: - - コアサーバー + - コアサーバ - ブロックチェーン --- # Amendment投票機能の設定 -バリデーターとして設定されたサーバーは、[feature メソッド][]を使ってXRP Ledgerプロトコルの[Amendment](../../concepts/networks-and-servers/amendments.md)に投票することができます。(この方法には[管理者アクセス](../../tutorials/http-websocket-apis/build-apps/get-started.md#管理者アクセス権限)が必要です). +バリデーターとして設定されたサーバは、[feature メソッド][]を使ってXRP Ledgerプロトコルの[Amendment](../../concepts/networks-and-servers/amendments.md)に投票することができます。(この方法には[管理者アクセス](../../tutorials/http-websocket-apis/build-apps/get-started.md#管理者アクセス権限)が必要です). 例えば、「SHAMapV2」Amendmentに反対票を投じるには、以下のコマンドを実行します。 @@ -59,7 +59,7 @@ rippled feature SHAMapV2 reject { "command": "feature", "feature": "SHAMapV2", "vetoed": true } ``` -変更を有効にするには、必ずサーバーを再起動してください。 +変更を有効にするには、必ずサーバを再起動してください。 **注意事項:** `[rpc_startup]` 節にあるコマンドは、サーバが起動するたびに実行され、サーバが動作している間に構成された投票設定を上書きすることができます。 diff --git a/@i18n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md b/@i18n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md index 6b3de38363..5cf3326b19 100644 --- a/@i18n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md +++ b/@i18n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md @@ -2,9 +2,9 @@ html: connect-your-rippled-to-the-xrp-test-net.html parent: configure-rippled.html seo: - description: rippledサーバーをTest Netに接続して、模造の資金を使って新しい機能を試したり、機能をテストしたりします。 + description: rippledサーバをTest Netに接続して、模造の資金を使って新しい機能を試したり、機能をテストしたりします。 labels: - - コアサーバー + - コアサーバ - ブロックチェーン - 開発 --- @@ -193,7 +193,7 @@ XChainBridge **警告:** メインネットまたはテストネットに接続するときは、`[features]`を使用しないでください。他のネットワークと異なる機能を強制的に有効にすると、サーバがネットワークから分断される可能性があります。 -## 4. サーバーを再起動する +## 4. サーバを再起動する ```sh $ sudo systemctl restart rippled @@ -203,9 +203,9 @@ $ sudo systemctl restart rippled 再起動後、ネットワークに同期するのに約5分から15分かかります。サーバの同期が完了すると、[server_infoメソッド][]は接続しているネットワークに基づいた`validated_ledger`オブジェクトを表示します。 -自分の`rippled`が正しいネットワークに接続されていることを確認するには、自分のサーバの結果をTestnetまたはDevnet上の[公開サーバ][public servers]と比較してください。`validated_ledger`オブジェクトの`seq`フィールドはどちらのサーバーでも同じはずです(チェックしている間に変更された場合は、1つか2つずれている可能性があります)。 +自分の`rippled`が正しいネットワークに接続されていることを確認するには、自分のサーバの結果をTestnetまたはDevnet上の[公開サーバ][public servers]と比較してください。`validated_ledger`オブジェクトの`seq`フィールドはどちらのサーバでも同じはずです(チェックしている間に変更された場合は、1つか2つずれている可能性があります)。 -次の例は、コマンドラインからサーバーの最新の検証済みレジャーをチェックする方法を示しています。 +次の例は、コマンドラインからサーバの最新の検証済みレジャーをチェックする方法を示しています。 ```sh rippled server_info | grep seq diff --git a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md index cc72b0f7d9..573bdc447c 100644 --- a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md +++ b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md @@ -4,20 +4,20 @@ parent: data-retention.html seo: description: 指示による削除を使用して、新しい履歴ができたときではなく、スケジュールで古いレジャー履歴を削除します。 labels: - - コアサーバー + - コアサーバ - データ保持 --- # 指示による削除の設定 -デフォルトの構成ファイルは、新しいレジャーバージョンが利用可能になると`rippled`が古いXRP Ledgerの履歴を自動的に削除するように設定されています。サーバーがピーク時にハードウェアリソースの大部分を使用する場合は、オフピーク時に実行するようスケジュールされたコマンドからの指示があった場合にのみ、レジャーを削除するようにサーバーを設定できます。これにより、オンライン削除がサーバーのパフォーマンスに及ぼす影響はほとんどなくなります。 +デフォルトの構成ファイルは、新しいレジャーバージョンが利用可能になると`rippled`が古いXRP Ledgerの履歴を自動的に削除するように設定されています。サーバがピーク時にハードウェアリソースの大部分を使用する場合は、オフピーク時に実行するようスケジュールされたコマンドからの指示があった場合にのみ、レジャーを削除するようにサーバを設定できます。これにより、オンライン削除がサーバのパフォーマンスに及ぼす影響はほとんどなくなります。 ## 前提条件 -このチュートリアルでは、ご使用のサーバーが以下の条件を満たしていることを前提としています。 +このチュートリアルでは、ご使用のサーバが以下の条件を満たしていることを前提としています。 - サポートされているオペレーティングシステムを使用している。Ubuntu Linux、Red Hat Enterprise Linux(RHEL)、CentOS -- `rippled`サーバーがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 +- `rippled`サーバがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 デフォルトの構成ファイルは、レジャーバージョンが2000個を超えるとオンライン削除を実行するよう設定されています。 @@ -31,11 +31,11 @@ labels: $ sudo yum install cronie ``` -- 選択した量の履歴をレジャーストアーに保管するのに十分なディスク容量がサーバーにある。 +- 選択した量の履歴をレジャーストアーに保管するのに十分なディスク容量がサーバにある。 - 各種設定で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)を参照してください。指示による削除が有効な場合、削除が実行されるまでにサーバーに蓄積可能な履歴の最大数は、`online_delete`設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を**加算**したものに相当します。 + 各種設定で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)を参照してください。指示による削除が有効な場合、削除が実行されるまでにサーバに蓄積可能な履歴の最大数は、`online_delete`設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を**加算**したものに相当します。 -- サーバーの使用率が最も低い時間帯を把握している。 +- サーバの使用率が最も低い時間帯を把握している。 ## 設定手順 @@ -55,7 +55,7 @@ labels: {% partial file="/@i18n/ja/docs/_snippets/conf-file-location.md" /%} -2. サーバーに対してオンライン削除を指示する[can_deleteメソッド][]の実行をテストします。 +2. サーバに対してオンライン削除を指示する[can_deleteメソッド][]の実行をテストします。 このコマンドの実行には[`rippled`コマンドラインインターフェイス](../../../tutorials/http-websocket-apis/build-apps/get-started.md#コマンドライン)を使用できます。例: @@ -63,7 +63,7 @@ labels: $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now ``` - レスポンスは、サーバーがそのレジャーストアーから削除するレジャーインデックスの最大値を示します。たとえば、以下のメッセージはレジャーインデックス43633667以下のレジャーバージョンを削除できることを示します。 + レスポンスは、サーバがそのレジャーストアーから削除するレジャーインデックスの最大値を示します。たとえば、以下のメッセージはレジャーインデックス43633667以下のレジャーバージョンを削除できることを示します。 ``` { @@ -74,7 +74,7 @@ labels: } ``` - サーバー内の _新しい_ 検証済みレジャーバージョンの数が、`online_delete`の設定以上となった場合にのみ、レジャーバージョンが削除されます。 + サーバ内の _新しい_ 検証済みレジャーバージョンの数が、`online_delete`の設定以上となった場合にのみ、レジャーバージョンが削除されます。 3. 前のステップでテストした`can_delete`メソッドを、予定した時刻に実行するように`cron`デーモンを設定します。 @@ -84,15 +84,15 @@ labels: $ crontab -e ``` - 以下の例では、サーバー時刻で毎日1:05 AMにサーバーが削除を実行するように設定されています。 + 以下の例では、サーバ時刻で毎日1:05 AMにサーバが削除を実行するように設定されています。 ``` 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now ``` - サーバーで設定されているタイムゾーンに基づいてコマンドが実行されるようにスケジュールしてください。 + サーバで設定されているタイムゾーンに基づいてコマンドが実行されるようにスケジュールしてください。 - **ヒント:**`advisory_delete`を無効にしている場合は、`cron`ジョブをオンラインで実行するようにスケジュールする必要はありません。この場合、サーバーの最も古いレジャーバージョンと現行の検証済みレジャーバージョンの差が`online_delete`の値以上である場合に、`rippled`によりオンライン削除が実行されます。 + **ヒント:**`advisory_delete`を無効にしている場合は、`cron`ジョブをオンラインで実行するようにスケジュールする必要はありません。この場合、サーバの最も古いレジャーバージョンと現行の検証済みレジャーバージョンの差が`online_delete`の値以上である場合に、`rippled`によりオンライン削除が実行されます。 4. `rippled`サービスを起動(または再起動)します。 @@ -100,19 +100,19 @@ labels: $ sudo systemctl restart rippled ``` -5. [server_infoメソッド][]を使用してサーバーの`complete_ledgers`範囲を定期的に調べ、レジャーがスケジュール通りに削除されていることを確認します。 +5. [server_infoメソッド][]を使用してサーバの`complete_ledgers`範囲を定期的に調べ、レジャーがスケジュール通りに削除されていることを確認します。 オンライン削除の実行後には`complete_ledgers`の最小レジャーインデックスが増加します。 - サーバーの使用率の状況と、一度に削除する履歴の量によっては、削除が完了するまでに数分間かかることがあります。 + サーバの使用率の状況と、一度に削除する履歴の量によっては、削除が完了するまでに数分間かかることがあります。 ## トラブルシューティング オンライン削除の設定後にオンライン削除が実行されていないようである場合は、以下を試してください。 -- `cron`ジョブを設定したユーザーに、コマンドラインクライアントとして`rippled`サーバーを実行できる権限があることを確認します。 +- `cron`ジョブを設定したユーザーに、コマンドラインクライアントとして`rippled`サーバを実行できる権限があることを確認します。 - cronジョブの構文とこのジョブの実行予定時刻を確認します。 - `rippled`実行可能ファイルが`cron`設定で指定したパスで使用可能であることを確認します。必要に応じて実行可能ファイルの絶対パス(`/opt/ripple/bin/rippled`など)を指定します。 -- `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを調べます。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 +- `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを調べます。このメッセージが出力されている場合、サーバがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md index 3d95c92b8c..2d538798ca 100644 --- a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md +++ b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md @@ -2,36 +2,36 @@ html: configure-full-history.html parent: data-retention.html seo: - description: 完全履歴サーバーは、運用のコストは高いものの、XRP Ledgerでこれまでに発生したすべてのトランザクションの記録を提供します。 + description: 完全履歴サーバは、運用のコストは高いものの、XRP Ledgerでこれまでに発生したすべてのトランザクションの記録を提供します。 labels: - - コアサーバー + - コアサーバ - データ保持 --- # 全履歴の設定 -デフォルトの構成では、新しいレジャーバージョンが利用可能になると`rippled`サーバーが古いXRP Ledger状態とトランザクションの履歴を自動的に削除するように設定されています。ほとんどのサーバーでは現在の状態を把握してトランザクションを処理するのに古い履歴は不要なため、この設定で十分です。ただし、一部のサーバーが可能な限り多くのXRP Ledgerの履歴を提供する場合、これはネットワークにとって有用であることがあります。 +デフォルトの構成では、新しいレジャーバージョンが利用可能になると`rippled`サーバが古いXRP Ledger状態とトランザクションの履歴を自動的に削除するように設定されています。ほとんどのサーバでは現在の状態を把握してトランザクションを処理するのに古い履歴は不要なため、この設定で十分です。ただし、一部のサーバが可能な限り多くのXRP Ledgerの履歴を提供する場合、これはネットワークにとって有用であることがあります。 ## 警告 -全履歴の保存にはコストがかかります。2018年12月11日の時点では、XRP Ledgerの全履歴が専有するディスク容量は約**9テラバイト**にのぼります。適切なサーバーパフォーマンスのためには、全履歴を高速なソリッドステートディスクドライブに保存する必要があります。このような大量のソリッドステートストレージは安価ではなく、また保管する必要のある履歴の合計量は毎日約12 GBずつ増加します。 +全履歴の保存にはコストがかかります。2018年12月11日の時点では、XRP Ledgerの全履歴が専有するディスク容量は約**9テラバイト**にのぼります。適切なサーバパフォーマンスのためには、全履歴を高速なソリッドステートディスクドライブに保存する必要があります。このような大量のソリッドステートストレージは安価ではなく、また保管する必要のある履歴の合計量は毎日約12 GBずつ増加します。 -ピアツーピアネットワークから全履歴を取得するには非常に長い時間がかかり(数か月)、また古い履歴を取得し、かつレジャーの新たな進展を常に把握するには、システムリソースとネットワークリソースを十分に備えたサーバーが必要となります。レジャー履歴の取得を迅速に開始するため、すでに大量の履歴をダウンロードしている別のサーバーオペレーターを探すこともできます。このようなオペレーターは、データベースダンプを提供できるか、または少なくとも、履歴の取得に十分な時間、あなたのサーバーをオペレーターのサーバーに明示的にピア接続することができます。サーバーはファイルからレジャー履歴を読み込み、インポートする履歴レジャーの整合性を検証できます。 +ピアツーピアネットワークから全履歴を取得するには非常に長い時間がかかり(数か月)、また古い履歴を取得し、かつレジャーの新たな進展を常に把握するには、システムリソースとネットワークリソースを十分に備えたサーバが必要となります。レジャー履歴の取得を迅速に開始するため、すでに大量の履歴をダウンロードしている別のサーバオペレーターを探すこともできます。このようなオペレーターは、データベースダンプを提供できるか、または少なくとも、履歴の取得に十分な時間、あなたのサーバをオペレーターのサーバに明示的にピア接続することができます。サーバはファイルからレジャー履歴を読み込み、インポートする履歴レジャーの整合性を検証できます。 -ネットワークへの参加、トランザクションの検証、またはネットワークの現在の状態の確認には、全履歴を記録するサーバーは必要ありません。全履歴が有用となるのは、過去に発生したトランザクションの結果や、過去の特定の時点におけるレジャーの状態を確認する場合だけです。このような情報を取得するには、必要とする履歴を保持している他のサーバーを利用する必要があります。 +ネットワークへの参加、トランザクションの検証、またはネットワークの現在の状態の確認には、全履歴を記録するサーバは必要ありません。全履歴が有用となるのは、過去に発生したトランザクションの結果や、過去の特定の時点におけるレジャーの状態を確認する場合だけです。このような情報を取得するには、必要とする履歴を保持している他のサーバを利用する必要があります。 全履歴は保管せずにXRP Ledgerネットワークの履歴の保管に参加したい場合には、[履歴シャーディングを構成](configure-history-sharding.md)すれば、レジャー履歴のグループをランダムに選択して保管できます。 ## 構成手順 -サーバーが全履歴を取得して保管するように構成するには、以下の手順を実行します。 +サーバが全履歴を取得して保管するように構成するには、以下の手順を実行します。 -1. `rippled`サーバーが稼働中の場合は停止します。 +1. `rippled`サーバが稼働中の場合は停止します。 ``` $ sudo systemctl stop rippled ``` -0. サーバーの構成ファイルで`[node_db]`スタンザの`online_delete`設定と`advisory_delete`設定を削除(またはコメントアウト)し、タイプをまだ`NuDB`に変更していない場合は変更します。 +0. サーバの構成ファイルで`[node_db]`スタンザの`online_delete`設定と`advisory_delete`設定を削除(またはコメントアウト)し、タイプをまだ`NuDB`に変更していない場合は変更します。 ``` [node_db] @@ -41,20 +41,20 @@ labels: #advisory_delete=0 ``` - 全履歴が記録されるサーバーでは、レジャーストアーにNuDBを使用します。これは、データベースがこれほど大きいと、RocksDBでは非常に大量のRAMが必要になるためです。詳細は、[容量の計画](../../installation/capacity-planning.md)を参照してください。パフォーマンス関連の構成オプション`open_files`、`filter_bits`、`cache_mb`、`file_size_mb`、および`file_size_mult`は、RocksDBのみに適用されるオプションであるため、デフォルトの`[node_db]`スタンザから削除できます。 + 全履歴が記録されるサーバでは、レジャーストアーにNuDBを使用します。これは、データベースがこれほど大きいと、RocksDBでは非常に大量のRAMが必要になるためです。詳細は、[容量の計画](../../installation/capacity-planning.md)を参照してください。パフォーマンス関連の構成オプション`open_files`、`filter_bits`、`cache_mb`、`file_size_mb`、および`file_size_mult`は、RocksDBのみに適用されるオプションであるため、デフォルトの`[node_db]`スタンザから削除できます。 - **注意:** RocksDBで履歴をすでにダウンロードしている場合は、NuDBへ切り替えるときに構成ファイルでデータベースのパスを変更するか、またはそのデータを削除する必要があります。`[node_db]`スタンザの`path`設定**および**`[database_path]`(SQLiteデータベース)設定の両方を変更する必要があります。このようにしないと、サーバーの[起動が失敗する](../../troubleshooting/server-wont-start.md#状態dbエラー)可能性があります。 + **注意:** RocksDBで履歴をすでにダウンロードしている場合は、NuDBへ切り替えるときに構成ファイルでデータベースのパスを変更するか、またはそのデータを削除する必要があります。`[node_db]`スタンザの`path`設定**および**`[database_path]`(SQLiteデータベース)設定の両方を変更する必要があります。このようにしないと、サーバの[起動が失敗する](../../troubleshooting/server-wont-start.md#状態dbエラー)可能性があります。 {% partial file="/@i18n/ja/docs/_snippets/conf-file-location.md" /%} -0. サーバーの構成ファイルで`[ledger_history]`スタンザを`full`に設定します。 +0. サーバの構成ファイルで`[ledger_history]`スタンザを`full`に設定します。 ``` [ledger_history] full ``` -0. 全履歴が保管されている1台以上のサーバーと明示的にピア接続するように、サーバーの構成ファイルで`[ips_fixed]`スタンザを設定します。 +0. 全履歴が保管されている1台以上のサーバと明示的にピア接続するように、サーバの構成ファイルで`[ips_fixed]`スタンザを設定します。 ``` [ips_fixed] @@ -62,11 +62,11 @@ labels: 50.22.123.215 ``` - サーバーのダイレクトピアの1つが使用可能な履歴データを保持している場合に限り、サーバーはピアツーピアネットワークから履歴データをダウンロードできます。全履歴をダウンロードする最も容易な方法は、すでに全履歴を保管しているサーバーとピア接続することです。 + サーバのダイレクトピアの1つが使用可能な履歴データを保持している場合に限り、サーバはピアツーピアネットワークから履歴データをダウンロードできます。全履歴をダウンロードする最も容易な方法は、すでに全履歴を保管しているサーバとピア接続することです。 - **ヒント:** Rippleは、すべての履歴が記録されるサーバーのプールを公開しています。これらのサーバーのIPアドレスを取得するには、ドメイン`s2.ripple.com`を数回解決します。これらのサーバーは公開サービスとして提供されているため、他のサーバーとのピア接続での可用性は限られており、またこれらのサーバーを悪用するとブロックされる可能性があることに注意してください。 + **ヒント:** Rippleは、すべての履歴が記録されるサーバのプールを公開しています。これらのサーバのIPアドレスを取得するには、ドメイン`s2.ripple.com`を数回解決します。これらのサーバは公開サービスとして提供されているため、他のサーバとのピア接続での可用性は限られており、またこれらのサーバを悪用するとブロックされる可能性があることに注意してください。 -0. 全履歴が記録されている別のサーバーからのデータベースダンプがあり、このダンプをベースとして利用できる場合は、サーバーの構成ファイルで`[import_db]`スタンザがインポート対象データを指し示すように設定します。(それ以外の場合はこのステップをスキップします。) +0. 全履歴が記録されている別のサーバからのデータベースダンプがあり、このダンプをベースとして利用できる場合は、サーバの構成ファイルで`[import_db]`スタンザがインポート対象データを指し示すように設定します。(それ以外の場合はこのステップをスキップします。) ``` [import_db] @@ -74,40 +74,40 @@ labels: path=/tmp/full_history_dump/ ``` -0. 以前に稼働していた`rippled`からの既存のデータベースファイルがサーバーにある場合は、そのデータベースファイルを削除します。 +0. 以前に稼働していた`rippled`からの既存のデータベースファイルがサーバにある場合は、そのデータベースファイルを削除します。 - オンライン削除を無効にすると、サーバーはオンライン削除が有効であった間にダウンロードしたデータをすべて無視するため、ディスク容量を空けることができます。次に例を示します。 + オンライン削除を無効にすると、サーバはオンライン削除が有効であった間にダウンロードしたデータをすべて無視するため、ディスク容量を空けることができます。次に例を示します。 ``` rm -r /var/lib/rippled/db/* ``` - **警告:** フォルダーを削除する前に、保持したいファイルがそのフォルダーに含まれていないことを確認してください。通常は安全に`rippled`サーバーのデータベースファイルをすべて削除できますが、この操作は、設定されているデータベースフォルダーが`rippled`のデータベース以外には使用されていない場合にのみ行ってください。 + **警告:** フォルダーを削除する前に、保持したいファイルがそのフォルダーに含まれていないことを確認してください。通常は安全に`rippled`サーバのデータベースファイルをすべて削除できますが、この操作は、設定されているデータベースフォルダーが`rippled`のデータベース以外には使用されていない場合にのみ行ってください。 -0. `rippled`サーバーを起動し、インポート可能なデータベースダンプがある場合にはインポートします。 +0. `rippled`サーバを起動し、インポート可能なデータベースダンプがある場合にはインポートします。 - `[Import_db]`で構成されている読み取り対象データベースダンプがある場合は、`--import` [コマンドラインオプション](../../commandline-usage.md#デーモンモードのオプション)を指定してサーバーを明示的に起動します。 + `[Import_db]`で構成されている読み取り対象データベースダンプがある場合は、`--import` [コマンドラインオプション](../../commandline-usage.md#デーモンモードのオプション)を指定してサーバを明示的に起動します。 ``` $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import ``` - 大量のデータベースダンプのインポートには数分から数時間かかることがあります。インポート中はサーバーは完全には起動せず、ネットワークと同期しません。インポートの状況を確認するには、サーバーログを参照してください。 + 大量のデータベースダンプのインポートには数分から数時間かかることがあります。インポート中はサーバは完全には起動せず、ネットワークと同期しません。インポートの状況を確認するには、サーバログを参照してください。 - データベースダンプをインポートしない場合は、サーバーを通常の方法で起動します。 + データベースダンプをインポートしない場合は、サーバを通常の方法で起動します。 ``` $ sudo systemctl start rippled ``` -0. `[import_db]`スタンザをサーバーの構成ファイルに追加した場合は、インポートの完了後にそのスタンザを削除してください。 +0. `[import_db]`スタンザをサーバの構成ファイルに追加した場合は、インポートの完了後にそのスタンザを削除してください。 - このようにしないと、次回の再起動時にサーバーが同じデータを再びインポートしようとします。 + このようにしないと、次回の再起動時にサーバが同じデータを再びインポートしようとします。 -0. [server_infoメソッド][]を使用して、サーバーの利用可能な履歴を監視します。 +0. [server_infoメソッド][]を使用して、サーバの利用可能な履歴を監視します。 `complete_ledgers`フィールドに表示される利用可能なレジャーの範囲は、時間の経過とともに増加します。 - 本番環境のXRP Ledgerの履歴で最も古い利用可能なレジャーバージョンは、レジャーインデックス**32570**です。レジャー履歴の最初の約2週間分は、当時のサーバーのバグが原因で失われています。Test Netやその他のチェーンでは通常、履歴の最初のバージョンはレジャーインデックス**1**です。 + 本番環境のXRP Ledgerの履歴で最も古い利用可能なレジャーバージョンは、レジャーインデックス**32570**です。レジャー履歴の最初の約2週間分は、当時のサーバのバグが原因で失われています。Test Netやその他のチェーンでは通常、履歴の最初のバージョンはレジャーインデックス**1**です。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-history-sharding.md b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-history-sharding.md index 8b92045e30..abffe09dac 100644 --- a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-history-sharding.md +++ b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-history-sharding.md @@ -5,27 +5,27 @@ seo: description: XRP Ledgerの履歴データのシャードを保存するようにサーバを設定します。 labels: - データ保持 - - コアサーバー + - コアサーバ --- # 履歴シャーディングの設定 -[履歴シャーディング](history-sharding.md)では、各サーバーで完全な履歴を保管することなく、履歴XRP Ledgerデータを保存できます。デフォルトでは`rippled`サーバーは履歴シャードを保管しません。 +[履歴シャーディング](history-sharding.md)では、各サーバで完全な履歴を保管することなく、履歴XRP Ledgerデータを保存できます。デフォルトでは`rippled`サーバは履歴シャードを保管しません。 -**ヒント:** バリデータおよび`rippled`追跡(またはストック)サーバーの両方で履歴シャードを保管するように設定できます。ただし`rippled`バリデータサーバーの経費を抑えるために、バリデータサーバーでシャードを保管するように設定 _しない_ ことが推奨されます。バリデータを実行していて、XRP Ledger履歴を保管したい場合は、履歴シャーディングを有効にして別の`rippled`サーバーを実行することが推奨されます。 +**ヒント:** バリデータおよび`rippled`追跡(またはストック)サーバの両方で履歴シャードを保管するように設定できます。ただし`rippled`バリデータサーバの経費を抑えるために、バリデータサーバでシャードを保管するように設定 _しない_ ことが推奨されます。バリデータを実行していて、XRP Ledger履歴を保管したい場合は、履歴シャーディングを有効にして別の`rippled`サーバを実行することが推奨されます。 レジャー履歴のシャードを保管できるよう`rippled`を設定するには、以下の手順を実行します。 ## 1. シャードストアーに割り当てる容量を決めます。 -履歴シャードを保管できるように`rippled`サーバーを設定する前に、履歴シャードストアーに割り当てるディスク容量を決定する必要があります。これはまた、デフォルトのレジャーストアーに保持する履歴の量にも影響します。シャードストアーのサイズを設定する際には、以下の点を考慮してください。 +履歴シャードを保管できるように`rippled`サーバを設定する前に、履歴シャードストアーに割り当てるディスク容量を決定する必要があります。これはまた、デフォルトのレジャーストアーに保持する履歴の量にも影響します。シャードストアーのサイズを設定する際には、以下の点を考慮してください。 -- レジャーストアー(`[node_db]`スタンザにより定義される)は、履歴シャードストアーとは別のストアーです。レジャーストアーはすべてのサーバーに必要であり、そこには一定範囲の最近の履歴が保管されている必要があります。保管する範囲は、`online_delete`パラメーターに使用可能な状態で維持するレジャーの数によって定義されます。(デフォルトの設定では、最新のレジャー2000個が保管されます。) +- レジャーストアー(`[node_db]`スタンザにより定義される)は、履歴シャードストアーとは別のストアーです。レジャーストアーはすべてのサーバに必要であり、そこには一定範囲の最近の履歴が保管されている必要があります。保管する範囲は、`online_delete`パラメーターに使用可能な状態で維持するレジャーの数によって定義されます。(デフォルトの設定では、最新のレジャー2000個が保管されます。) - レジャーストアーに215個以上のレジャー(32768)が保持されている場合は、レジャーストアーからシャードストアーへ最近の履歴のグループを効率的にインポートできます。 -- 履歴シャードストアー(`[shard_db]`スタンザにより定義される)は、履歴シャードを保管する場合にのみ必要です。履歴シャードを保管しないサーバーではこの構成スタンザを省略する必要があります。履歴シャードストアーのサイズは`max_size_gb`パラメーターでギガバイト単位で定義されます。サーバーは完全なシャードを保管するため、この容量を最大限利用します。履歴シャードストアーは、 _必ず_ ソリッドステートディスクまたは同様の高速なメディアに保管します。従来の回転式ハードディスクでは不十分です。 +- 履歴シャードストアー(`[shard_db]`スタンザにより定義される)は、履歴シャードを保管する場合にのみ必要です。履歴シャードを保管しないサーバではこの構成スタンザを省略する必要があります。履歴シャードストアーのサイズは`max_size_gb`パラメーターでギガバイト単位で定義されます。サーバは完全なシャードを保管するため、この容量を最大限利用します。履歴シャードストアーは、 _必ず_ ソリッドステートディスクまたは同様の高速なメディアに保管します。従来の回転式ハードディスクでは不十分です。 - シャードには214個のレジャー(16384)が含まれており、シャードの経過期間に応じて約200MB~4GBを専有します。古いシャードほどXRP Ledgerでのアクティビティが少ないため、サイズが小さくなります。 - 履歴シャードストアーとレジャーストアーはファイルパスを分けて保管する _必要があります_ 。必要に応じて、レジャーストアーと履歴ストアーをそれぞれ別のディスクやパーティションに配置するように設定できます。 - 完全なレジャー履歴をレジャーストアーと履歴シャードストアーの両方に保持できますが、冗長な処理となります。 -- シャードの取得にかかる時間、`rippled`サーバーに必要なファイルハンドル数、およびメモリーキャッシュ使用率は、シャードのサイズの影響を直接受けます。 +- シャードの取得にかかる時間、`rippled`サーバに必要なファイルハンドル数、およびメモリーキャッシュ使用率は、シャードのサイズの影響を直接受けます。 ## 2. rippled.cfgの編集 @@ -48,7 +48,7 @@ max_size_gb=50 詳細は、[rippled.cfgの設定例](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)の`[shard_db]`の例を参照してください。 -## 3. サーバーの再起動 +## 3. サーバの再起動 ``` systemctl restart rippled @@ -56,13 +56,13 @@ systemctl restart rippled ## 4. シャードのダウンロードの待機 -サーバーはネットワークと同期すると、履歴シャードのダウンロードを自動的に開始し、シャードストアーの空き容量を埋めます。ダウンロード対象のシャードを確認するには、シャードストアーを設定したフォルダー内に作成されるフォルダーを確認します。(これは`rippled.cfg`ファイルの`[shard_db]`スタンザの`path`フィールドによって定義されます。) +サーバはネットワークと同期すると、履歴シャードのダウンロードを自動的に開始し、シャードストアーの空き容量を埋めます。ダウンロード対象のシャードを確認するには、シャードストアーを設定したフォルダー内に作成されるフォルダーを確認します。(これは`rippled.cfg`ファイルの`[shard_db]`スタンザの`path`フィールドによって定義されます。) -このフォルダーには、サーバーに保管されている各シャードのフォルダーが番号付きで保存されています。常に、最大で1つのフォルダーに、未完了であることを示す`control.txt`ファイルが保存されています。 +このフォルダーには、サーバに保管されている各シャードのフォルダーが番号付きで保存されています。常に、最大で1つのフォルダーに、未完了であることを示す`control.txt`ファイルが保存されています。 -[download_shardメソッド][]を使用して、サーバーにアーカイブファイルからシャードをダウンロードしてインポートするように指示できます。 +[download_shardメソッド][]を使用して、サーバにアーカイブファイルからシャードをダウンロードしてインポートするように指示できます。 -サーバーとそのピアが使用できるシャードのリストを表示するには、[crawl_shardsメソッド][]か[ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を使用します。 +サーバとそのピアが使用できるシャードのリストを表示するには、[crawl_shardsメソッド][]か[ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を使用します。 ## 関連項目 diff --git a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md index 8ac59bfea6..a52e2fd4b6 100644 --- a/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md +++ b/@i18n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md @@ -2,31 +2,31 @@ html: configure-online-deletion.html parent: data-retention.html seo: - description: サーバーでどこまで古いトランザクション履歴を保持するかを設定します。 + description: サーバでどこまで古いトランザクション履歴を保持するかを設定します。 labels: - データ保持 - - コアサーバー + - コアサーバ --- # オンライン削除の設定 -`rippled`サーバーのデフォルトの構成では、最新2000個のレジャーバージョンよりも古い[履歴が削除され](online-deletion.md)、レジャー履歴は約15分間維持されます(現行のレジャー毎の間隔に基づく)。このページでは、削除までに`rippled`サーバーに保管される履歴の量を設定する方法を説明します。 +`rippled`サーバのデフォルトの構成では、最新2000個のレジャーバージョンよりも古い[履歴が削除され](online-deletion.md)、レジャー履歴は約15分間維持されます(現行のレジャー毎の間隔に基づく)。このページでは、削除までに`rippled`サーバに保管される履歴の量を設定する方法を説明します。 ## 前提条件 -このチュートリアルでは、ご使用のサーバーが以下の条件を満たしていることを前提としています。 +このチュートリアルでは、ご使用のサーバが以下の条件を満たしていることを前提としています。 - サポートされているオペレーティングシステムを使用している。Ubuntu Linux、Red Hat Enterprise Linux(RHEL)、CentOS -- `rippled`サーバーがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 +- `rippled`サーバがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 推奨されるプラットフォームのインストール手順に従えば、オンライン削除はデフォルトで有効となります。 -- 選択した量の履歴をレジャーストアーに保管するのに[十分なディスク容量](../../installation/capacity-planning.md)がサーバーにある。 +- 選択した量の履歴をレジャーストアーに保管するのに[十分なディスク容量](../../installation/capacity-planning.md)がサーバにある。 ## 構成手順 -サーバーに保管する履歴の量を変更するには、以下の手順を実行します。 +サーバに保管する履歴の量を変更するには、以下の手順を実行します。 1. 保管する履歴に相当するレジャーバージョンの数を決定します。 @@ -43,7 +43,7 @@ labels: advisory_delete=0 ``` - `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。自動削除が設定されている場合(デフォルト)、サーバーは通常、この数の約2倍のレジャーバージョンが蓄積されると削除を実行します。 + `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。自動削除が設定されている場合(デフォルト)、サーバは通常、この数の約2倍のレジャーバージョンが蓄積されると削除を実行します。 {% partial file="/@i18n/ja/docs/_snippets/conf-file-location.md" /%} @@ -53,23 +53,23 @@ labels: $ sudo systemctl restart rippled ``` -0. サーバーがネットワークと同期するまで待ちます。 +0. サーバがネットワークと同期するまで待ちます。 - ネットワークとシステムの能力と、サーバーがオフラインになっていた期間に応じて、完全な同期が完了するまでには5~15分かかります。 + ネットワークとシステムの能力と、サーバがオフラインになっていた期間に応じて、完全な同期が完了するまでには5~15分かかります。 - サーバーとネットワークの同期が完了すると、[server_infoメソッド][]が再び開き、`server_state`の値として`"full"`、`"proposing"`、`"validating"`のいずれかが報告されます。 + サーバとネットワークの同期が完了すると、[server_infoメソッド][]が再び開き、`server_state`の値として`"full"`、`"proposing"`、`"validating"`のいずれかが報告されます。 -0. [server_infoメソッド][]を使用してサーバーの`complete_ledgers`範囲を定期的に調べ、レジャーが削除されていることを確認します。 +0. [server_infoメソッド][]を使用してサーバの`complete_ledgers`範囲を定期的に調べ、レジャーが削除されていることを確認します。 - オンライン削除実行後の`complete_ledgers`範囲には、古いレジャーが使用できなくなったことが反映されます。サーバーに履歴が蓄積されるにつれ、使用可能なレジャーの総数が徐々に増加します。この数が設定した`online_delete`値の2倍に達し、オンライン削除が実行されるとレジャーの総数は減少します。 + オンライン削除実行後の`complete_ledgers`範囲には、古いレジャーが使用できなくなったことが反映されます。サーバに履歴が蓄積されるにつれ、使用可能なレジャーの総数が徐々に増加します。この数が設定した`online_delete`値の2倍に達し、オンライン削除が実行されるとレジャーの総数は減少します。 -0. `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを確認します。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 +0. `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを確認します。このメッセージが出力されている場合、サーバがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 - この状況が定期的に発生する場合は、サーバーのスペックが不十分で、オンライン削除の実行中にレジャーを最新状態に維持できていない可能性があります。同じハードウェア上の他のサービス(スケジュール済みバックアップやセキュリティスキャンなど)と`rippled`サーバーがリソースをめぐって競合していないことを確認してください。以下のいずれかの操作を実行できます。 + この状況が定期的に発生する場合は、サーバのスペックが不十分で、オンライン削除の実行中にレジャーを最新状態に維持できていない可能性があります。同じハードウェア上の他のサービス(スケジュール済みバックアップやセキュリティスキャンなど)と`rippled`サーバがリソースをめぐって競合していないことを確認してください。以下のいずれかの操作を実行できます。 - システムスペックを強化する。推奨事項については、[システム要件](../../installation/system-requirements.md)を参照してください。 - 設定を変更し、保管する履歴の量を減らす。(このチュートリアルのステップ2) - - サーバーの[`node_size`パラメーター](../../installation/capacity-planning.md)を変更する。 + - サーバの[`node_size`パラメーター](../../installation/capacity-planning.md)を変更する。 - レジャーストアーに[RocksDBの代わりにNuDB](../../installation/capacity-planning.md)を使用する。 - [指示による削除を使用してオンライン削除をスケジュールする](configure-advisory-deletion.md)。 diff --git a/@i18n/ja/docs/infrastructure/configuration/data-retention/history-sharding.md b/@i18n/ja/docs/infrastructure/configuration/data-retention/history-sharding.md index 6be7c44b78..33d6c7e860 100644 --- a/@i18n/ja/docs/infrastructure/configuration/data-retention/history-sharding.md +++ b/@i18n/ja/docs/infrastructure/configuration/data-retention/history-sharding.md @@ -2,20 +2,20 @@ html: history-sharding.html parent: data-retention.html seo: - description: 履歴シャーディングは、履歴レジャーデータを保持する任務をrippledサーバー間で分担するようにします。 + description: 履歴シャーディングは、履歴レジャーデータを保持する任務をrippledサーバ間で分担するようにします。 labels: - データ保持 - - コアサーバー + - コアサーバ --- # 履歴シャーディング {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}導入: rippled 0.90.0{% /badge %} -稼働中のサーバーは、ネットワーク実行時に検知または取得したレジャーに関するデータを格納したデータベースを作成します。各`rippled`サーバーは、そのレジャーのデータをレジャーストアーに保存しますが、保存されたレジャー数が設定された容量制限を超えると、オンライン削除ロジックによりこれらのデータベースがローテーションされます。 +稼働中のサーバは、ネットワーク実行時に検知または取得したレジャーに関するデータを格納したデータベースを作成します。各`rippled`サーバは、そのレジャーのデータをレジャーストアーに保存しますが、保存されたレジャー数が設定された容量制限を超えると、オンライン削除ロジックによりこれらのデータベースがローテーションされます。 -履歴シャーディングは、XRP Ledgerのトランザクション履歴をシャードと呼ばれるセグメントに分割し、XRP Ledgerネットワークのサーバー全体に分散します。シャードは、一連のレジャーです。`rippled`サーバーは、レジャーストアーとシャードストアーの両方にレジャーを同じ方法で保存します。 +履歴シャーディングは、XRP Ledgerのトランザクション履歴をシャードと呼ばれるセグメントに分割し、XRP Ledgerネットワークのサーバ全体に分散します。シャードは、一連のレジャーです。`rippled`サーバは、レジャーストアーとシャードストアーの両方にレジャーを同じ方法で保存します。 -履歴シャーディング機能を使用すると、個々の`rippled`サーバーが履歴データの保存する役割を担い、すべての履歴(数テラバイト)を保存する必要がなくなります。シャードストアーはレジャーストアーに代わるものではありませんが、XRP Ledgerネットワーク上の分散レジャー履歴への信頼性の高いパスを実現します。 +履歴シャーディング機能を使用すると、個々の`rippled`サーバが履歴データの保存する役割を担い、すべての履歴(数テラバイト)を保存する必要がなくなります。シャードストアーはレジャーストアーに代わるものではありませんが、XRP Ledgerネットワーク上の分散レジャー履歴への信頼性の高いパスを実現します。 [![XRP Ledgerネットワーク: レジャーストアーとシャードストアーの図](/docs/img/xrp-ledger-network-ledger-store-and-shard-store.ja.png)](/docs/img/xrp-ledger-network-ledger-store-and-shard-store.ja.png) @@ -23,15 +23,15 @@ labels: ## 履歴シャードの取得と共有 -`rippled` サーバーは履歴シャードを取得して保存します(この動作には設定が必要です)。このようなサーバーでは、ネットワークとの同期を実行し、設定された数の最新レジャーへのレジャー履歴の埋め戻しが完了した後で、シャードの取得が開始されます。ネットワークアクティビティがあまり発生しないこの期間に、`shard_db`を維持するように設定されている`rippled`サーバー が、シャードストアーに追加するシャードをランダムに選択します。ネットワークレジャー履歴が均等に分散される確率を高めるため、取得対象のシャードはランダムに選択され、現行シャードが特に優先されることはありません。 +`rippled` サーバは履歴シャードを取得して保存します(この動作には設定が必要です)。このようなサーバでは、ネットワークとの同期を実行し、設定された数の最新レジャーへのレジャー履歴の埋め戻しが完了した後で、シャードの取得が開始されます。ネットワークアクティビティがあまり発生しないこの期間に、`shard_db`を維持するように設定されている`rippled`サーバ が、シャードストアーに追加するシャードをランダムに選択します。ネットワークレジャー履歴が均等に分散される確率を高めるため、取得対象のシャードはランダムに選択され、現行シャードが特に優先されることはありません。 -シャードが選択されたら、レジャー取得プロセスが開始されます。最初にシャードの最後のレジャーのシーケンスが取得され、最初のシャードに向けて逆方向に処理が進められます。取得プロセスでは最初に、サーバーがローカルでデータを確認します。取得できないデータについては、サーバーはピア`rippled`サーバーにデータをリクエストします。リクエストされた期間のデータを供給できるサーバーは、履歴でレスポンスします。リクエスト側サーバーはこれらのレスポンスを結合し、シャードを作成します。シャードに特定範囲のレジャーがすべて含まれた状態になれば、シャードが完成します。 +シャードが選択されたら、レジャー取得プロセスが開始されます。最初にシャードの最後のレジャーのシーケンスが取得され、最初のシャードに向けて逆方向に処理が進められます。取得プロセスでは最初に、サーバがローカルでデータを確認します。取得できないデータについては、サーバはピア`rippled`サーバにデータをリクエストします。リクエストされた期間のデータを供給できるサーバは、履歴でレスポンスします。リクエスト側サーバはこれらのレスポンスを結合し、シャードを作成します。シャードに特定範囲のレジャーがすべて含まれた状態になれば、シャードが完成します。 -`rippled`サーバーが1つのシャードを完全に取得する前に容量不足になった場合、空き容量ができて処理を続行できるようになるまで取得プロセスを停止します。この後、古いシャードは完成された最新のシャードに置き換えられます。ディスク容量が十分にある場合は、`rippled`サーバーはシャードに割り当てられている最大ディスク容量(`max_size_gb`)に達するまで、ランダムに選択された追加のシャードを取得し、シャードストアーに追加します。 +`rippled`サーバが1つのシャードを完全に取得する前に容量不足になった場合、空き容量ができて処理を続行できるようになるまで取得プロセスを停止します。この後、古いシャードは完成された最新のシャードに置き換えられます。ディスク容量が十分にある場合は、`rippled`サーバはシャードに割り当てられている最大ディスク容量(`max_size_gb`)に達するまで、ランダムに選択された追加のシャードを取得し、シャードストアーに追加します。 ## XRP Ledgerネットワークデータの整合性 -すべてのレジャーの履歴は、特定範囲の履歴レジャーを維持することに同意したサーバー間で共有されます。これにより、各サーバーは維持することに同意したデータがすべてあることを確認し、プルーフツリーまたはレジャーデルタを作成できるようになります。履歴シャーディングが設定されている`rippled`サーバーは、保存するシャードをランダムに選択するため、すべての閉鎖済みレジャーの履歴全体が正規分布曲線で保存され、XRP Ledgerネットワークで履歴が均一に維持される確率が高くなります。 +すべてのレジャーの履歴は、特定範囲の履歴レジャーを維持することに同意したサーバ間で共有されます。これにより、各サーバは維持することに同意したデータがすべてあることを確認し、プルーフツリーまたはレジャーデルタを作成できるようになります。履歴シャーディングが設定されている`rippled`サーバは、保存するシャードをランダムに選択するため、すべての閉鎖済みレジャーの履歴全体が正規分布曲線で保存され、XRP Ledgerネットワークで履歴が均一に維持される確率が高くなります。 ## 関連項目 diff --git a/@i18n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md b/@i18n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md index fd12f2d8c3..6d90729a5f 100644 --- a/@i18n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md +++ b/@i18n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md @@ -5,60 +5,60 @@ seo: description: オンライン削除は古いトランザクションと状態の履歴を消去します。 labels: - データ保持 - - コアサーバー + - コアサーバ --- # オンライン削除 [[ソース]
](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/misc/SHAMapStoreImp.cpp "Source") -オンライン削除機能により、`rippled`サーバーはレジャーの古いバージョンのローカルコピーを削除できます。これにより、時間とともにディスク使用量が急増しないようにできます。デフォルトの構成ファイルにはオンライン削除の自動実行が設定されていますが、指示があった場合にのみオンライン削除を実行するようにも設定できます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.27.0" %}新規: rippled 0.27.0{% /badge %} +オンライン削除機能により、`rippled`サーバはレジャーの古いバージョンのローカルコピーを削除できます。これにより、時間とともにディスク使用量が急増しないようにできます。デフォルトの構成ファイルにはオンライン削除の自動実行が設定されていますが、指示があった場合にのみオンライン削除を実行するようにも設定できます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.27.0" %}新規: rippled 0.27.0{% /badge %} -サーバーは、レジャーおよびそのすべての残高と設定を、常に完全かつ _最新_ の状態に維持します。削除されるデータには、保存されている履歴よりも古いレジャー状態の古いトランザクションやバージョンがあります。 +サーバは、レジャーおよびそのすべての残高と設定を、常に完全かつ _最新_ の状態に維持します。削除されるデータには、保存されている履歴よりも古いレジャー状態の古いトランザクションやバージョンがあります。 -デフォルトの構成ファイルは、`rippled`サーバーが2000の最新レジャーバージョンを保持し、古いデータを自動的に削除するように設定されています。 +デフォルトの構成ファイルは、`rippled`サーバが2000の最新レジャーバージョンを保持し、古いデータを自動的に削除するように設定されています。 **ヒント:** オンライン削除を使用しても、同一期間のレジャーデータを保管するのに必要なディスク容量は時間の経過とともに増加します。これは、個々のレジャーバージョンのサイズが時間とともに増加する傾向にあるためです。蓄積データが増加するペースは、古いレジャーを削除しない場合に比べると、非常にゆっくりとしています。必要なディスク容量に関する詳細は、[容量の計画](../../installation/capacity-planning.md)を参照してください。 ## 背景 -`rippled`サーバーでは[レジャー履歴](../../../concepts/networks-and-servers/ledger-history.md)がその _レジャーストアー_ に保管されます。このデータは時間とともに蓄積されます。 +`rippled`サーバでは[レジャー履歴](../../../concepts/networks-and-servers/ledger-history.md)がその _レジャーストアー_ に保管されます。このデータは時間とともに蓄積されます。 レジャーストアー内ではレジャーデータの「重複排除」が行われます。つまり、バージョン間で変更されていないデータは1回だけ保存されます。レジャーストアーのレコード自体には、レコードが記録されているレジャーバージョンの記載はありません。オンライン削除処理において、古いレジャーバージョンでのみ使用されるレコードが特定されます。この処理には時間がかかり、またディスクI/Oとアプリケーションキャッシュに影響するため、レジャーを閉鎖するたびに古いデータを削除することは現実的ではありません。 ## オンライン削除の動作 -オンライン削除の設定では、`rippled`サーバーがレジャーストアーで使用可能な状態で維持するレジャーバージョンの数が設定されます。ただし、指定される数は目安であり、厳格に適用されるものではありません。 +オンライン削除の設定では、`rippled`サーバがレジャーストアーで使用可能な状態で維持するレジャーバージョンの数が設定されます。ただし、指定される数は目安であり、厳格に適用されるものではありません。 -- サーバーでは、設定された数のレジャーバージョンよりも新しいデータが削除されることはありませんが、長期にわたってサーバーが稼働していない場合や、ネットワークとの同期が失われた場合には、サーバーに含まれるレジャーバージョンの数が使用可能な数よりも少ないことがあります。(サーバーは一部の履歴の埋め戻しを試みます。詳細は、[履歴の取得](../../../concepts/networks-and-servers/ledger-history.md#履歴の取得)を参照してください。) +- サーバでは、設定された数のレジャーバージョンよりも新しいデータが削除されることはありませんが、長期にわたってサーバが稼働していない場合や、ネットワークとの同期が失われた場合には、サーバに含まれるレジャーバージョンの数が使用可能な数よりも少ないことがあります。(サーバは一部の履歴の埋め戻しを試みます。詳細は、[履歴の取得](../../../concepts/networks-and-servers/ledger-history.md#履歴の取得)を参照してください。) - オンライン削除の自動実行が設定されている場合、設定されているレジャーバージョンの数の2倍を超える数まで保存できる可能性があります。(オンライン削除を実行するたびに、保管されるレジャーバージョンの数が削減され、設定数に近くなります。) - PCサーバーがビジーのためオンライン削除が遅延すると、レジャーバージョンが蓄積し続けることがあります。正常に動作している場合には、サーバー内のレジャーバージョン数が設定された数の2倍に達した時点でオンライン削除が開始されますが、さらにいくつかのレジャーバージョンが蓄積するまではオンライン削除が完了しないことがあります。 + PCサーバがビジーのためオンライン削除が遅延すると、レジャーバージョンが蓄積し続けることがあります。正常に動作している場合には、サーバ内のレジャーバージョン数が設定された数の2倍に達した時点でオンライン削除が開始されますが、さらにいくつかのレジャーバージョンが蓄積するまではオンライン削除が完了しないことがあります。 -- 指示による削除が有効な場合、管理者が[can_deleteメソッド][]を呼び出すまで、サーバーが取得および作成したすべてのレジャーバージョンがサーバーに保存されます。 +- 指示による削除が有効な場合、管理者が[can_deleteメソッド][]を呼び出すまで、サーバが取得および作成したすべてのレジャーバージョンがサーバに保存されます。 - サーバーに保存されるデータ量は、[can_delete][can_deleteメソッド]を呼び出す頻度と、`online_delete`設定に指定されている期間の長さに応じて異なります。 + サーバに保存されるデータ量は、[can_delete][can_deleteメソッド]を呼び出す頻度と、`online_delete`設定に指定されている期間の長さに応じて異なります。 - - `online_delete`の間隔よりも頻繁に`can_delete`を呼び出す場合、サーバーには最大で **`online_delete`の値の2倍** にほぼ相当するレジャーバージョンが保存されます。(削除後には、この数はほぼ`online_delete`の値まで減少します。) + - `online_delete`の間隔よりも頻繁に`can_delete`を呼び出す場合、サーバには最大で **`online_delete`の値の2倍** にほぼ相当するレジャーバージョンが保存されます。(削除後には、この数はほぼ`online_delete`の値まで減少します。) - たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`に値50,000を指定している場合、削除実行前のサーバーには通常、最大100,000のレジャーバージョンが蓄積されます。削除実行後は、少なくとも50,000のレジャーバージョン(約 2日分)がサーバーに保持されます。この設定では、約1回おきに`can_delete`を呼び出しした場合、変更が生じません。これは、削除するのに十分な数のレジャーバージョンがサーバーにないためです。 + たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`に値50,000を指定している場合、削除実行前のサーバには通常、最大100,000のレジャーバージョンが蓄積されます。削除実行後は、少なくとも50,000のレジャーバージョン(約 2日分)がサーバに保持されます。この設定では、約1回おきに`can_delete`を呼び出しした場合、変更が生じません。これは、削除するのに十分な数のレジャーバージョンがサーバにないためです。 - - `online_delete`の間隔 _よりも少ない頻度で_ `can_delete`を呼び出す場合、最大で **`can_delete`呼び出しの間隔のほぼ2倍** の期間にわたりレジャーバージョンがサーバーに保管されます。(削除後には、この数は約1間隔分のデータまで減少します。) + - `online_delete`の間隔 _よりも少ない頻度で_ `can_delete`を呼び出す場合、最大で **`can_delete`呼び出しの間隔のほぼ2倍** の期間にわたりレジャーバージョンがサーバに保管されます。(削除後には、この数は約1間隔分のデータまで減少します。) - たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`値に2000を指定している場合、サーバーでは通常、削除が実行されるまでに最大で2日間分のレジャーバージョンが保管されます。削除の実行後は、サーバーには約1日分のレジャーバージョン(約25,000)が保持されますが、このレジャーバージョンの数が2000を下回ることはありません。 + たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`値に2000を指定している場合、サーバでは通常、削除が実行されるまでに最大で2日間分のレジャーバージョンが保管されます。削除の実行後は、サーバには約1日分のレジャーバージョン(約25,000)が保持されますが、このレジャーバージョンの数が2000を下回ることはありません。 -オンライン削除が有効であり、自動的に実行される場合(つまり指示による削除が無効な場合)、保管されるレジャーデータの量は、最低でもサーバーに設定された保持レジャーバージョン数に相当し、最大でその約2倍です。 +オンライン削除が有効であり、自動的に実行される場合(つまり指示による削除が無効な場合)、保管されるレジャーデータの量は、最低でもサーバに設定された保持レジャーバージョン数に相当し、最大でその約2倍です。 オンライン削除が実行されても、ディスク上のSQLiteデータベースファイルのサイズは減少しません。これらのファイルの中に新しいデータを入れるのに再利用できるスペースが確保されるだけです。オンライン削除によって、レジャーストアーが含まれるRocksDB または NuDB データベースファイルのサイズは _減少します_ 。 -サーバーでは、削除範囲を決定する際に検証済みレジャーバージョンの数だけがカウントされます。(ローカルネットワーク接続が停止していたか、グローバルXRP Ledgerネットワークがコンセンサスに達しなかったことが原因で)サーバーが新しいレジャーバージョンを検証できない例外的な状況にある場合、ネットワークが復旧した際に迅速に回復できるように、`rippled`は引き続きレジャーを閉鎖します。この場合、サーバーには未検証の閉鎖済みレジャーが多数蓄積されます。このような未検証レジャーは、オンライン削除の実行までにサーバーに保持される _検証済み_ レジャーの数には影響しません。 +サーバでは、削除範囲を決定する際に検証済みレジャーバージョンの数だけがカウントされます。(ローカルネットワーク接続が停止していたか、グローバルXRP Ledgerネットワークがコンセンサスに達しなかったことが原因で)サーバが新しいレジャーバージョンを検証できない例外的な状況にある場合、ネットワークが復旧した際に迅速に回復できるように、`rippled`は引き続きレジャーを閉鎖します。この場合、サーバには未検証の閉鎖済みレジャーが多数蓄積されます。このような未検証レジャーは、オンライン削除の実行までにサーバに保持される _検証済み_ レジャーの数には影響しません。 ### オンライン削除の中断 -[サーバーの状態](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md)が`full`より優先順位の低い状態になると、オンライン削除は自動的に停止します。この場合、サーバーはプレフィクス`SHAMapStore::WRN`が付いたログメッセージを書き込みます。サーバーは完全に同期された後、次の検証済みレジャーバージョン以降からオンライン削除の再開を試みます。 +[サーバの状態](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md)が`full`より優先順位の低い状態になると、オンライン削除は自動的に停止します。この場合、サーバはプレフィクス`SHAMapStore::WRN`が付いたログメッセージを書き込みます。サーバは完全に同期された後、次の検証済みレジャーバージョン以降からオンライン削除の再開を試みます。 -サーバーを停止した場合や、オンライン削除の実行中にサーバーがクラッシュした場合には、サーバーが再起動し、完全に同期されれば、オンライン削除が再開されます。 +サーバを停止した場合や、オンライン削除の実行中にサーバがクラッシュした場合には、サーバが再起動し、完全に同期されれば、オンライン削除が再開されます。 オンライン削除を一時的に無効にするには、引数`never`を指定した[can_deleteメソッド][]を使用できます。この変更は、[can_delete][can_delete method] をもう一度呼び出してオンライン削除を再度有効にするまで保持されます。オンライン削除の実行時点の制御についての詳細は、[指示による削除](#指示による削除)を参照してください。 @@ -67,13 +67,13 @@ labels: オンライン削除に関連する設定は以下のとおりです。 -- **`online_delete`** - 維持する検証済みレジャーバージョンの数を指定します。サーバーは、この数よりも古いレジャーバージョンをすべて定期的に削除します。数を指定しなければ、レジャーは削除されません。 +- **`online_delete`** - 維持する検証済みレジャーバージョンの数を指定します。サーバは、この数よりも古いレジャーバージョンをすべて定期的に削除します。数を指定しなければ、レジャーは削除されません。 デフォルトの構成ファイルでは、この値は2000に設定されています。この値に256未満の数は設定はできません。これは、[手数料投票](../../../concepts/consensus-protocol/fee-voting.md)や[Amendmentプロセス](../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)などのイベントで一度に更新されるレジャーの数が256であるためです。 - **注意:**`online_delete`を無効にして`rippled`を実行し、その後`online_delete`を有効にしてサーバーを再起動すると、`online_delete`が無効の間にサーバーがダウンロードした既存のレジャー履歴は無視されますが、削除されません。ディスク容量を節約するには、`online_delete`設定の変更後にサーバーを再起動する前に、既存の履歴を削除します。 + **注意:**`online_delete`を無効にして`rippled`を実行し、その後`online_delete`を有効にしてサーバを再起動すると、`online_delete`が無効の間にサーバがダウンロードした既存のレジャー履歴は無視されますが、削除されません。ディスク容量を節約するには、`online_delete`設定の変更後にサーバを再起動する前に、既存の履歴を削除します。 -- **`[ledger_history]`** - 検証済みレジャーの数(`online_delete`の値以下)を指定します。サーバーの検証済みレジャーバージョンの数がこの数よりも少ない場合、ピアからデータを取得してバージョンを埋め戻す操作が試行されます。 +- **`[ledger_history]`** - 検証済みレジャーの数(`online_delete`の値以下)を指定します。サーバの検証済みレジャーバージョンの数がこの数よりも少ない場合、ピアからデータを取得してバージョンを埋め戻す操作が試行されます。 この設定のデフォルト値はレジャー256個です。 @@ -85,11 +85,11 @@ labels: この設定はデフォルトで無効になっています。 -- **`[fetch_depth]`** - 検証済みレジャーバージョンの数を指定します。サーバーは、指定されている数のレジャーバージョンよりも古い履歴データに対するピアからの取得リクエストを受け入れません。使用可能なすべてのデータをピアに提供するには、値`full`を指定します。 +- **`[fetch_depth]`** - 検証済みレジャーバージョンの数を指定します。サーバは、指定されている数のレジャーバージョンよりも古い履歴データに対するピアからの取得リクエストを受け入れません。使用可能なすべてのデータをピアに提供するには、値`full`を指定します。 `fetch_depth`のデフォルトは`full`です(使用可能なすべてのデータを提供します)。 - `fetch_depth`設定と`online_delete`設定の両方が指定されている場合、`fetch_depth`には`online_delete`よりも大きな値を設定できません。`fetch_depth`に大きな値が設定されている場合、サーバーは`fetch_depth`の値が`online_delete`と同等であるものとして扱います。 + `fetch_depth`設定と`online_delete`設定の両方が指定されている場合、`fetch_depth`には`online_delete`よりも大きな値を設定できません。`fetch_depth`に大きな値が設定されている場合、サーバは`fetch_depth`の値が`online_delete`と同等であるものとして扱います。 次の図は、fetch_depthの仕組みを示します。 @@ -101,18 +101,18 @@ labels: デフォルトの構成ファイルでは、オンライン削除が定期的に自動で実行されるように設定されています。構成ファイルに`online_delete`間隔が指定されていない場合、オンライン削除は実行されません。構成ファイルで`advisory_delete`設定が有効になっている場合、オンライン削除は、管理者が[can_deleteメソッド][]を使用してオンライン削除をトリガーしたときにのみ実行されます。 -指示による削除とスケジュール済みジョブを使用すれば、閉鎖済みレジャーバージョン数の代わりに、時刻に基づいて自動削除をトリガーできます。サーバーの使用率が高い場合、オンライン削除によって負荷が追加されるとサーバーの処理が遅延し、コンセンサスネットワークと一時的に非同期になることがあります。この場合は、指示による削除を使用して、オンライン削除をオフピーク期間にのみ実行するようにスケジュールできます。 +指示による削除とスケジュール済みジョブを使用すれば、閉鎖済みレジャーバージョン数の代わりに、時刻に基づいて自動削除をトリガーできます。サーバの使用率が高い場合、オンライン削除によって負荷が追加されるとサーバの処理が遅延し、コンセンサスネットワークと一時的に非同期になることがあります。この場合は、指示による削除を使用して、オンライン削除をオフピーク期間にのみ実行するようにスケジュールできます。 -指示による削除はその他の目的でも使用できます。たとえば、トランザクションデータを削除する前に、そのデータが別のサーバーにバックアップされていることを手動で確認できます。あるいは、トランザクションデータを削除する前に、別のタスクによるそのデータの処理が完了していることを手動で確認できます。 +指示による削除はその他の目的でも使用できます。たとえば、トランザクションデータを削除する前に、そのデータが別のサーバにバックアップされていることを手動で確認できます。あるいは、トランザクションデータを削除する前に、別のタスクによるそのデータの処理が完了していることを手動で確認できます。 -`can_delete` API メソッドは、構成ファイルで `advisory_delete` が有効になっている場合は、一般的な自動削除または特定のレジャーバージョンまでの自動削除を有効または無効にできます。`rippled`サーバーの再起動前に構成ファイルで`advisory_delete`を無効にしている場合を除き、これらの設定はサーバーを再起動しても維持されます。 +`can_delete` API メソッドは、構成ファイルで `advisory_delete` が有効になっている場合は、一般的な自動削除または特定のレジャーバージョンまでの自動削除を有効または無効にできます。`rippled`サーバの再起動前に構成ファイルで`advisory_delete`を無効にしている場合を除き、これらの設定はサーバを再起動しても維持されます。 ## 仕組み -オンライン削除では2つのデータベースが作成されます。このため、「古い」読み取り専用データベースと、書き込み可能な「現行」データベースが常に存在します。`rippled`サーバーはいずれかのデータベースからオブジェクトを読み取ることができます。このため、現行レジャーバージョンにはいずれかのデータベースのオブジェクトが含まれます。レジャーバージョン間でレジャー内のオブジェクトに変更がない場合、そのオブジェクトのコピーが1つだけデータベースに残ります。これにより、オブジェクトのコピーが重複してサーバーに保存されることはありません。レジャーバージョンの更新によりオブジェクトが変更されると、サーバーは変更されたオブジェクトを「新しい」データベースに保存し、古いバージョンのオブジェクト(古いレジャーバージョンで使用されているオブジェクト)は「古い」データベースに残ります。 +オンライン削除では2つのデータベースが作成されます。このため、「古い」読み取り専用データベースと、書き込み可能な「現行」データベースが常に存在します。`rippled`サーバはいずれかのデータベースからオブジェクトを読み取ることができます。このため、現行レジャーバージョンにはいずれかのデータベースのオブジェクトが含まれます。レジャーバージョン間でレジャー内のオブジェクトに変更がない場合、そのオブジェクトのコピーが1つだけデータベースに残ります。これにより、オブジェクトのコピーが重複してサーバに保存されることはありません。レジャーバージョンの更新によりオブジェクトが変更されると、サーバは変更されたオブジェクトを「新しい」データベースに保存し、古いバージョンのオブジェクト(古いレジャーバージョンで使用されているオブジェクト)は「古い」データベースに残ります。 -オンライン削除を実行する場合、サーバーはまず、最も古いレジャーバージョンの中から保持するものを確認し、そのレジャーバージョンのすべてのオブジェクトを読み取り専用の「古い」データベースから「現行」データベースにコピーします。これにより、「現行」データベースには、選択したレジャーバージョンとそれ以降のすべての新しいバージョンで使用されるオブジェクトがすべて含まれることになります。次に、サーバーは「古い」データベースを削除し、既存の「現行」データベースを「古い」読み取り専用データベースにします。これ以降、サーバーは新しい「現行」データベースを始動し、新たな変更をすべてこのデータベースに保存します。 +オンライン削除を実行する場合、サーバはまず、最も古いレジャーバージョンの中から保持するものを確認し、そのレジャーバージョンのすべてのオブジェクトを読み取り専用の「古い」データベースから「現行」データベースにコピーします。これにより、「現行」データベースには、選択したレジャーバージョンとそれ以降のすべての新しいバージョンで使用されるオブジェクトがすべて含まれることになります。次に、サーバは「古い」データベースを削除し、既存の「現行」データベースを「古い」読み取り専用データベースにします。これ以降、サーバは新しい「現行」データベースを始動し、新たな変更をすべてこのデータベースに保存します。 [{% inline-svg file="/docs/img/online-deletion-process.ja.svg" /%}](/docs/img/online-deletion-process.ja.svg 'オンライン削除で2つのデータベースがどのように使用されるかを示す図') diff --git a/@i18n/ja/docs/infrastructure/configuration/enable-public-signing.md b/@i18n/ja/docs/infrastructure/configuration/enable-public-signing.md index 53d9cab740..e703fe7fa0 100644 --- a/@i18n/ja/docs/infrastructure/configuration/enable-public-signing.md +++ b/@i18n/ja/docs/infrastructure/configuration/enable-public-signing.md @@ -2,16 +2,16 @@ html: enable-public-signing.html parent: configure-rippled.html seo: - description: 他の人があなたのサーバーを使ってトランザクションに署名できるようにします。(非推奨) + description: 他の人があなたのサーバを使ってトランザクションに署名できるようにします。(非推奨) labels: - - コアサーバー + - コアサーバ - セキュリティ --- # パブリック署名の有効化 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %}デフォルトでは、`rippled`の署名メソッドは管理者接続に限定されています。v1.1.0以前のバージョンの`rippled`のように、署名メソッドをパブリックAPIメソッドとして使用できるようにするには、構成を変更することで、これを使用できるようにします。 -これにより、サーバーが「パブリック」[JSON-RPC接続およびWebSocket接続](../../tutorials/http-websocket-apis/build-apps/get-started.md)を受け入れる場合は、これらのパブリック接続で以下のメソッドが使用できるようになります。 +これにより、サーバが「パブリック」[JSON-RPC接続およびWebSocket接続](../../tutorials/http-websocket-apis/build-apps/get-started.md)を受け入れる場合は、これらのパブリック接続で以下のメソッドが使用できるようになります。 - [sign][signメソッド] - [sign_for][sign_forメソッド] @@ -19,7 +19,7 @@ labels: これらのメソッドを使用するにあたり、管理者接続からパブリック署名を有効にする必要は**ありません**。 -**注意:** パブリック署名を有効にすることは推奨されません。[wallet_proposeメソッド][]と同様に、署名コマンドでは管理レベルの権限を必要とするアクションは実行されませんが、署名コマンドを管理者接続に制限することにより、ユーザーが安全ではない通信経由で、またはユーザーの管理下にないサーバーとの間でシークレットキーを無責任に送受信することを防止します。 +**注意:** パブリック署名を有効にすることは推奨されません。[wallet_proposeメソッド][]と同様に、署名コマンドでは管理レベルの権限を必要とするアクションは実行されませんが、署名コマンドを管理者接続に制限することにより、ユーザーが安全ではない通信経由で、またはユーザーの管理下にないサーバとの間でシークレットキーを無責任に送受信することを防止します。 パブリック署名を有効にするには、以下の手順を実行します。 @@ -38,7 +38,7 @@ labels: true ``` -3. `rippled`サーバーを再起動します。 +3. `rippled`サーバを再起動します。 ``` systemctl restart rippled diff --git a/@i18n/ja/docs/infrastructure/configuration/index.md b/@i18n/ja/docs/infrastructure/configuration/index.md index c2151fa3ef..acb25a26d4 100644 --- a/@i18n/ja/docs/infrastructure/configuration/index.md +++ b/@i18n/ja/docs/infrastructure/configuration/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: rippledサーバーの構成をカスタマイズします。 + description: rippledサーバの構成をカスタマイズします。 --- # rippledの設定 -rippledサーバーの構成をカスタマイズします。 +rippledサーバの構成をカスタマイズします。 {% child-pages /%} diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md b/@i18n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md index d41ee432e1..080ec654e3 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md @@ -2,17 +2,17 @@ html: cluster-rippled-servers.html parent: configure-peering.html seo: - description: サーバーのグループで処理を分担するように設定して効率化します。 + description: サーバのグループで処理を分担するように設定して効率化します。 labels: - - コアサーバー + - コアサーバ --- -# rippledサーバーのクラスター化 +# rippledサーバのクラスター化 -1つのデータセンターで複数の`rippled`サーバーを稼働している場合は、これらのサーバーを[クラスター](../../../concepts/networks-and-servers/clustering.md)に構成して、効率を最大化できます。クラスター構成の設定は次のとおりです。 +1つのデータセンターで複数の`rippled`サーバを稼働している場合は、これらのサーバを[クラスター](../../../concepts/networks-and-servers/clustering.md)に構成して、効率を最大化できます。クラスター構成の設定は次のとおりです。 -1. 各サーバーのIPアドレスをメモします。 +1. 各サーバのIPアドレスをメモします。 -2. [validation_createメソッド][]を使用して各サーバーの一意のシードを生成します。 +2. [validation_createメソッド][]を使用して各サーバの一意のシードを生成します。 コマンドラインインターフェイスを使用する場合の例を以下に示します。 @@ -33,9 +33,9 @@ labels: 各レスポンスの`validation_seed`パラメーターと`validation_public_key`パラメーターを安全な場所に保存します。 -3. 各サーバーで[構成ファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)を編集し、以下のセクションを変更します。 +3. 各サーバで[構成ファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)を編集し、以下のセクションを変更します。 - 1. `[ips_fixed]`セクションに、クラスターの _その他の_ 各メンバーのIPアドレスとポートを記入します。各サーバーのポート番号は、サーバーの `rippled.cfg`に指定されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例: + 1. `[ips_fixed]`セクションに、クラスターの _その他の_ 各メンバーのIPアドレスとポートを記入します。各サーバのポート番号は、サーバの `rippled.cfg`に指定されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例: ``` [ips_fixed] @@ -43,18 +43,18 @@ labels: 192.168.0.2 51235 ``` - この例では、このサーバーがダイレクトピアツーピア接続の維持を常に試みる先のピアサーバーを特定しています。 + この例では、このサーバがダイレクトピアツーピア接続の維持を常に試みる先のピアサーバを特定しています。 - 2. `[node_seed]`セクションでは、サーバーのノードシードを、ステップ2で[validation_createメソッド][]を使用して生成した`validation_seed`の値の1つに設定します。各サーバーは一意のノードシードを使用する必要があります。例: + 2. `[node_seed]`セクションでは、サーバのノードシードを、ステップ2で[validation_createメソッド][]を使用して生成した`validation_seed`の値の1つに設定します。各サーバは一意のノードシードを使用する必要があります。例: ``` [node_seed] ssZkdwURFMBXenJPbrpE14b6noJSu ``` - この例では、ピアツーピア通信(検証メッセージを除く)の署名にサーバーが使用するキーペアを定義しています。 + この例では、ピアツーピア通信(検証メッセージを除く)の署名にサーバが使用するキーペアを定義しています。 - 3. `[cluster_nodes]`セクションでは、サーバーのクラスターのメンバーを設定します。これらのメンバーは`validation_public_key`の値で識別されます。各サーバーのクラスターの _その他の_ すべてのメンバーをここに記入する必要があります。任意で、各サーバーのカスタム名を追加します。例: + 3. `[cluster_nodes]`セクションでは、サーバのクラスターのメンバーを設定します。これらのメンバーは`validation_public_key`の値で識別されます。各サーバのクラスターの _その他の_ すべてのメンバーをここに記入する必要があります。任意で、各サーバのカスタム名を追加します。例: ``` [cluster_nodes] @@ -62,15 +62,15 @@ labels: n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman ``` - この例は、サーバーがクラスターのメンバーを認識するために使用するキーペアを定義しています。 + この例は、サーバがクラスターのメンバーを認識するために使用するキーペアを定義しています。 -4. 構成ファイルを保存した後、各サーバーで`rippled`を再起動します。 +4. 構成ファイルを保存した後、各サーバで`rippled`を再起動します。 ``` # systemctl restart rippled ``` -5. 各サーバーがクラスターのメンバーになっていることを確認するには、[peersメソッド][]を使用します。`cluster`フィールドに、各サーバーの公開鍵とカスタム名(構成している場合)のリストが表示されます。 +5. 各サーバがクラスターのメンバーになっていることを確認するには、[peersメソッド][]を使用します。`cluster`フィールドに、各サーバの公開鍵とカスタム名(構成している場合)のリストが表示されます。 コマンドラインインターフェイスを使用する場合の例を以下に示します。 diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md b/@i18n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md index 4bd3a6b30e..f244bd5228 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md @@ -2,27 +2,27 @@ html: configure-a-private-server.html parent: configure-peering.html seo: - description: サーバーが特定の信頼できるピアのみに接続するように設定します。 + description: サーバが特定の信頼できるピアのみに接続するように設定します。 labels: - - コアサーバー + - コアサーバ - セキュリティ --- -# プライベートサーバーの設定 +# プライベートサーバの設定 -[プライベートサーバー](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)は、オープンなピアツーピアネットワーク内の検出されたピアに直接接続するのではなく、特定の信頼できるピアのみを通じてネットワークに接続する`rippled`サーバーです。この種の構成は、[バリデータ](../server-modes/run-rippled-as-a-validator.md)に一般的に推奨される任意の対策ですが、その他の特定の目的でも役立ちます。 +[プライベートサーバ](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)は、オープンなピアツーピアネットワーク内の検出されたピアに直接接続するのではなく、特定の信頼できるピアのみを通じてネットワークに接続する`rippled`サーバです。この種の構成は、[バリデータ](../server-modes/run-rippled-as-a-validator.md)に一般的に推奨される任意の対策ですが、その他の特定の目的でも役立ちます。 ## 前提条件 -プライベートサーバーを使用するには、次の前提条件を満たしている必要があります。 +プライベートサーバを使用するには、次の前提条件を満たしている必要があります。 - [`rippled`をインストール](../../installation/index.md)して最新バージョンにアップデートし、まだ実行していない状態である必要があります。 - 自社で運用している**プロキシ**を通じて接続するか、**公開ハブ**を通じて接続するかを決める必要があります。これらの選択肢の違いについては、[ピアリング構成のメリットとデメリット](../../../concepts/networks-and-servers/peer-protocol.md#ピア接続設定のメリットとデメリット)を参照してください。 - - プロキシを使用している場合、`rippled`がインストールされていてプロキシとして使用し実行される別のマシンが必要です。これらのサーバーは、外部のネットワークとプライベートサーバーに接続できる必要があります。 + - プロキシを使用している場合、`rippled`がインストールされていてプロキシとして使用し実行される別のマシンが必要です。これらのサーバは、外部のネットワークとプライベートサーバに接続できる必要があります。 - どちらの構成でも、接続先のピアのIPアドレスとポートを把握しておく必要があります。 ## 手順 -特定のサーバーをプライベートピアとして設定するには、次の手順を実行します。 +特定のサーバをプライベートピアとして設定するには、次の手順を実行します。 1. `rippled`の構成ファイルを編集します。 @@ -53,7 +53,7 @@ labels: zaphod.alloy.ee 51235 ``` - サーバーが**プロキシ**を使用して接続している場合は、IPアドレスとポートが、プロキシとして使用している`rippled`サーバーの構成と一致している必要があります。これらの各サーバーについては、ポート番号が、サーバーの構成ファイルに記載されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例えば、構成は次のようになります。 + サーバが**プロキシ**を使用して接続している場合は、IPアドレスとポートが、プロキシとして使用している`rippled`サーバの構成と一致している必要があります。これらの各サーバについては、ポート番号が、サーバの構成ファイルに記載されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例えば、構成は次のようになります。 ``` [ips_fixed] @@ -65,30 +65,30 @@ labels: 公開ハブを使用している場合は、このステップをスキップします。 - プロキシを使用している場合、プライベートピアを含む[クラスターとしてプロキシを構成](cluster-rippled-servers.md)します。クラスターの各メンバーは、クラスターの_他の_各メンバーをリストにした`[ips_fixed]`スタンザを持っている必要があります。ただし、`[peer_private]`スタンザを持つのは**プライベートサーバーのみ**とします。 + プロキシを使用している場合、プライベートピアを含む[クラスターとしてプロキシを構成](cluster-rippled-servers.md)します。クラスターの各メンバーは、クラスターの_他の_各メンバーをリストにした`[ips_fixed]`スタンザを持っている必要があります。ただし、`[peer_private]`スタンザを持つのは**プライベートサーバのみ**とします。 - 各プロキシで`rippled`を再起動します。各プロキシサーバーで、次のようにします。 + 各プロキシで`rippled`を再起動します。各プロキシサーバで、次のようにします。 ``` sudo service systemctl restart rippled ``` -5. プライベートサーバーで`rippled`を起動します。 +5. プライベートサーバで`rippled`を起動します。 ``` sudo service systemctl start rippled ``` -6. [peersメソッド][]を使用して、プライベートサーバーが自身のピアに _のみ_ 接続していることを確認します。 +6. [peersメソッド][]を使用して、プライベートサーバが自身のピアに _のみ_ 接続していることを確認します。 - レスポンスの`peers`配列に、構成済みのピアのいずれでもない`address`を持つオブジェクトが含まれていてはなりません。含まれている場合は、構成ファイルを再度確認して、プライベートサーバーを再起動します。 + レスポンスの`peers`配列に、構成済みのピアのいずれでもない`address`を持つオブジェクトが含まれていてはなりません。含まれている場合は、構成ファイルを再度確認して、プライベートサーバを再起動します。 ## 次のステップ -追加の予防対策として、自身のピアでないサーバーからプライベートサーバーへの着信接続をブロックするようにファイアウォールを設定する必要があります。プロキシサーバーを実行している場合は、ファイヤーウォールを通じてプロキシに[ピアポートを転送](forward-ports-for-peering.md)するようにします。ただし、プライベートピアで**ない**ものに転送します。この設定方法の具体的な手順は、使用するファイアウォールによって異なります。 +追加の予防対策として、自身のピアでないサーバからプライベートサーバへの着信接続をブロックするようにファイアウォールを設定する必要があります。プロキシサーバを実行している場合は、ファイヤーウォールを通じてプロキシに[ピアポートを転送](forward-ports-for-peering.md)するようにします。ただし、プライベートピアで**ない**ものに転送します。この設定方法の具体的な手順は、使用するファイアウォールによって異なります。 -ファイアウォールがポート80で発信HTTP接続を**ブロックしない**ことを確認します。デフォルトの設定では、このポートを使用して**vl.ripple.com**から最新の推奨バリデータリストをダウンロードします。バリデータリストがないと、サーバーはどのバリデータを信頼してよいかわからず、ネットワークが、いつコンセンサスに至ったかを認識できません。 +ファイアウォールがポート80で発信HTTP接続を**ブロックしない**ことを確認します。デフォルトの設定では、このポートを使用して**vl.ripple.com**から最新の推奨バリデータリストをダウンロードします。バリデータリストがないと、サーバはどのバリデータを信頼してよいかわからず、ネットワークが、いつコンセンサスに至ったかを認識できません。 ## 関連項目 diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md b/@i18n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md index 2b53c04b2e..b8c0bb30e9 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md @@ -2,7 +2,7 @@ html: configure-the-peer-crawler.html parent: configure-peering.html seo: - description: rippledサーバーがステータスとピアについてどの程度の情報を公表するか設定します。 + description: rippledサーバがステータスとピアについてどの程度の情報を公表するか設定します。 labels: - Core Server - Security diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md b/@i18n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md index 57c09892d9..f12204bf12 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md @@ -8,7 +8,7 @@ labels: --- # 回線圧縮の有効化 -`rippled`サーバは[ピアツーピア通信](../../../concepts/networks-and-servers/peer-protocol.md)を圧縮することで帯域幅を節約できますが、その代償としてCPU使用率が高くなります。回線圧縮を有効にすると、サーバーは回線圧縮を有効にしているピアサーバとの通信を自動的に圧縮します。 +`rippled`サーバは[ピアツーピア通信](../../../concepts/networks-and-servers/peer-protocol.md)を圧縮することで帯域幅を節約できますが、その代償としてCPU使用率が高くなります。回線圧縮を有効にすると、サーバは回線圧縮を有効にしているピアサーバとの通信を自動的に圧縮します。 ## 手順 diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md b/@i18n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md index 70ba9b05a2..2f2d28e631 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md @@ -2,15 +2,15 @@ html: forward-ports-for-peering.html parent: configure-peering.html seo: - description: 受信ピアがrippledサーバーに接続できるようにファイアウォールを設定します。 + description: 受信ピアがrippledサーバに接続できるようにファイアウォールを設定します。 labels: - - コアサーバー + - コアサーバ --- # ピアリングのポート転送 -XRP Ledgerのピアツーピアネットワーク内にあるサーバーは、[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)を介して通信します。セキュリティとネットワークの他の部分との接続を両立させるために、ファイアウォールを使用して、サーバーをほとんどのポートから保護し、ピアプロトコルポートだけを開放するか転送するようにする必要があります。 +XRP Ledgerのピアツーピアネットワーク内にあるサーバは、[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)を介して通信します。セキュリティとネットワークの他の部分との接続を両立させるために、ファイアウォールを使用して、サーバをほとんどのポートから保護し、ピアプロトコルポートだけを開放するか転送するようにする必要があります。 -`rippled`サーバーの稼動中に、[server_infoメソッド][]を実行すると、いくつのピアがあるか確認することができます。`info`オブジェクトの`peers`フィールドは、サーバーに現在接続しているピアの数を示します。この数が10または11の場合、通常はファイアウォールが着信接続をブロックしていることを示します。 +`rippled`サーバの稼動中に、[server_infoメソッド][]を実行すると、いくつのピアがあるか確認することができます。`info`オブジェクトの`peers`フィールドは、サーバに現在接続しているピアの数を示します。この数が10または11の場合、通常はファイアウォールが着信接続をブロックしていることを示します。 ファイアウォールが着信ピア接続をブロックしていると思われるためピアが10個しかないことを示している`server_info`の結果の例(一部省略)は次のとおりです。 @@ -51,10 +51,10 @@ $ sudo firewall-cmd --add-forward-port=port=51235:proto=tcp:toport=51235 - **コンセプト:** - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) - - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - [容量の計画](../../installation/capacity-planning.md) - - [`rippled`サーバーのトラブルシューティング](../../troubleshooting/index.md) + - [`rippled`サーバのトラブルシューティング](../../troubleshooting/index.md) - **リファレンス:** - [connectメソッド][] - [peersメソッド][] diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/index.md b/@i18n/ja/docs/infrastructure/configuration/peering/index.md index 841ad6384f..0a37f520d7 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/index.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/index.md @@ -7,13 +7,13 @@ metadata: seo: description: サーバをピアツーピアネットワークに接続する方法を設定します。 labels: - - コアサーバー + - コアサーバ --- # ピアリングの設定 -XRP Ledgerのピアツーピアプロトコルは、ほとんどの場合、ピア接続を自動的に管理します。場合によっては、サーバーが接続するピアを手動で調整して、サーバーの可用性とネットワークの他の部分との接続性を最大限に高めたいというケースがあります。 +XRP Ledgerのピアツーピアプロトコルは、ほとんどの場合、ピア接続を自動的に管理します。場合によっては、サーバが接続するピアを手動で調整して、サーバの可用性とネットワークの他の部分との接続性を最大限に高めたいというケースがあります。 -同じデータセンター内で複数のサーバーを稼動させている場合は、[クラスター化](cluster-rippled-servers.md)して効率を向上させたいケースがあります。ピアツーピアネットワークのトポロジー内の重要なハブなど、稼動していないが接続を維持したいサーバー用の予約済みピアスロットを使うことができます。他のピアについては、サーバーはピアを自動検出し、その接続を管理しますが、望ましくない動作をするピアをブロックするように手動で介入することもできます。 +同じデータセンター内で複数のサーバを稼動させている場合は、[クラスター化](cluster-rippled-servers.md)して効率を向上させたいケースがあります。ピアツーピアネットワークのトポロジー内の重要なハブなど、稼動していないが接続を維持したいサーバ用の予約済みピアスロットを使うことができます。他のピアについては、サーバはピアを自動検出し、その接続を管理しますが、望ましくない動作をするピアをブロックするように手動で介入することもできます。 {% child-pages /%} diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md b/@i18n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md index b9876a6188..5d7fc90ceb 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md @@ -2,23 +2,23 @@ html: manually-connect-to-a-specific-peer.html parent: configure-peering.html seo: - description: rippledサーバーを特定のピアに接続します。 + description: rippledサーバを特定のピアに接続します。 labels: - - コアサーバー + - コアサーバ --- # 特定のピアへの手動接続 -サーバーをXRP Ledgerネットワーク内の特定の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)に手動で接続するには、次の手順を実行します。 +サーバをXRP Ledgerネットワーク内の特定の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)に手動で接続するには、次の手順を実行します。 -**ヒント:** サーバーが起動時にこのサーバーに自動的に接続して、以降も接続を維持するようにするには、そのピアに対して[ピアリザベーション](use-a-peer-reservation.md)を設定することができます。 +**ヒント:** サーバが起動時にこのサーバに自動的に接続して、以降も接続を維持するようにするには、そのピアに対して[ピアリザベーション](use-a-peer-reservation.md)を設定することができます。 ## 前提条件 - 接続先のピアのIPアドレスを把握しておく必要があります。 - 接続先のピアがXRP Ledger[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)に使用するポートを把握しておく必要があります。デフォルトでは、ポート51235です。 -- サーバーからピアへのネットワーク接続を用意する必要があります。例えば、ピアサーバーは[ファイアウォールを通じて適切なポートを転送する](forward-ports-for-peering.md)必要があります。 -- ピアサーバーに使用可能なピアスロットがある必要があります。ピアがすでにピアの最大数に達している場合、ピアサーバーのオペレーターに依頼して、サーバーの[ピアリザベーション](use-a-peer-reservation.md)を追加してもらいます。 +- サーバからピアへのネットワーク接続を用意する必要があります。例えば、ピアサーバは[ファイアウォールを通じて適切なポートを転送する](forward-ports-for-peering.md)必要があります。 +- ピアサーバに使用可能なピアスロットがある必要があります。ピアがすでにピアの最大数に達している場合、ピアサーバのオペレーターに依頼して、サーバの[ピアリザベーション](use-a-peer-reservation.md)を追加してもらいます。 ## 手順 @@ -63,10 +63,10 @@ rippled connect 169.54.2.151 51235 - **コンセプト:** - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) - - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - [容量の計画](../../installation/capacity-planning.md) - - [`rippled`サーバーのトラブルシューティング](../../troubleshooting/index.md) + - [`rippled`サーバのトラブルシューティング](../../troubleshooting/index.md) - **リファレンス:** - [connectメソッド][] - [peersメソッド][] diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md b/@i18n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md index b2a6230bdb..02c300bd40 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md @@ -2,17 +2,17 @@ html: set-max-number-of-peers.html parent: configure-peering.html seo: - description: rippledサーバーが接続するピアの最大数を設定します。 + description: rippledサーバが接続するピアの最大数を設定します。 labels: - - コアサーバー + - コアサーバ --- # ピアの最大数の設定 -`rippled`サーバーには、接続先の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)の数を定める設定可能なソフト最大数があります。ピアのデフォルトの最大数は**21**です。 +`rippled`サーバには、接続先の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)の数を定める設定可能なソフト最大数があります。ピアのデフォルトの最大数は**21**です。 -**注記:** 内部的に、サーバーは受信ピアと送信ピアのおおよそのクォータを生成します。[固定ピアやピアリザベーション](../../../concepts/networks-and-servers/peer-protocol.md#固定ピアとピアリザベーション)を使用している場合、あるいは[connectメソッド][]を使用して追加のピアに手動で接続している場合は、このソフト最大数を超える可能性があります。 +**注記:** 内部的に、サーバは受信ピアと送信ピアのおおよそのクォータを生成します。[固定ピアやピアリザベーション](../../../concepts/networks-and-servers/peer-protocol.md#固定ピアとピアリザベーション)を使用している場合、あるいは[connectメソッド][]を使用して追加のピアに手動で接続している場合は、このソフト最大数を超える可能性があります。 -サーバーが許可するピアの最大数を変更するには、以下の手順を実行します。 +サーバが許可するピアの最大数を変更するには、以下の手順を実行します。 1. `rippled`の構成ファイルを編集します。 @@ -29,13 +29,13 @@ labels: 30 ``` - スタンザの内容は、許可するピアの合計数を示す整数のみである必要があります。デフォルトでは、サーバーは受信ピアが約85%、送信ピアが約15%という比率を維持するように試みますが、送信ピアの最小数が10であるため、68未満の値にしても、サーバーが行う送信ピア接続の数は増えません。 + スタンザの内容は、許可するピアの合計数を示す整数のみである必要があります。デフォルトでは、サーバは受信ピアが約85%、送信ピアが約15%という比率を維持するように試みますが、送信ピアの最小数が10であるため、68未満の値にしても、サーバが行う送信ピア接続の数は増えません。 - `[peers_max]`値を10未満にした場合でも、サーバーはハードコーディングされた最小数である10台の送信ピアを許可するため、ネットワークとの接続を維持できます。すべての送信ピア接続をブロックするには、[サーバーをプライベートピアとして設定](../server-modes/run-rippled-as-a-validator.md#プロキシを使用した接続)します。 + `[peers_max]`値を10未満にした場合でも、サーバはハードコーディングされた最小数である10台の送信ピアを許可するため、ネットワークとの接続を維持できます。すべての送信ピア接続をブロックするには、[サーバをプライベートピアとして設定](../server-modes/run-rippled-as-a-validator.md#プロキシを使用した接続)します。 - **注意:** 接続先のピアサーバーが増えると、`rippled`サーバーが使用するネットワーク帯域幅も増えます。`rippled`サーバーに良好なネットワーク接続があり、使用する帯域幅のコストを許容できる場合にのみ、ピアサーバーの数に大きな値を設定してください。 + **注意:** 接続先のピアサーバが増えると、`rippled`サーバが使用するネットワーク帯域幅も増えます。`rippled`サーバに良好なネットワーク接続があり、使用する帯域幅のコストを許容できる場合にのみ、ピアサーバの数に大きな値を設定してください。 -3. `rippled`サーバーを再起動します。 +3. `rippled`サーバを再起動します。 ``` $ sudo systemctl restart rippled.service @@ -46,10 +46,10 @@ labels: - **コンセプト:** - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) - - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - [容量の計画](../../installation/capacity-planning.md) - - [`rippled`サーバーのトラブルシューティング](../../troubleshooting/index.md) + - [`rippled`サーバのトラブルシューティング](../../troubleshooting/index.md) - **リファレンス:** - [connectメソッド][] - [peersメソッド][] diff --git a/@i18n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md b/@i18n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md index 949d9f08ba..85188cffa0 100644 --- a/@i18n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md +++ b/@i18n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md @@ -4,39 +4,39 @@ parent: configure-peering.html seo: description: ピアリザベーションを使用して特定のピアへのより信頼できる接続を設定します。 lables: - - コアサーバー + - コアサーバ --- # ピアリザベーションの使用 -[ピアリザベーション][]を使用すると、`rippled`サーバーが予約とマッチしたピアからの通信を常に受け入れるように設定できます。このページでは、ピアリザベーションを使用して2台のサーバー間のピアツーピア通信を、各サーバーの管理者の協力のもと一貫して維持する方法について説明します。 +[ピアリザベーション][]を使用すると、`rippled`サーバが予約とマッチしたピアからの通信を常に受け入れるように設定できます。このページでは、ピアリザベーションを使用して2台のサーバ間のピアツーピア通信を、各サーバの管理者の協力のもと一貫して維持する方法について説明します。 -ピアリザベーションは、2台のサーバーが異なる組織によって運用されていて、着信接続を受信するサーバーが、多くのピアを持つ[ハブサーバー](../../../concepts/networks-and-servers/rippled-server-modes.md#公開ハブ)である場合に特に便利です。分かりやすいように、これらの手順では次の用語を使用します。 +ピアリザベーションは、2台のサーバが異なる組織によって運用されていて、着信接続を受信するサーバが、多くのピアを持つ[ハブサーバ](../../../concepts/networks-and-servers/rippled-server-modes.md#公開ハブ)である場合に特に便利です。分かりやすいように、これらの手順では次の用語を使用します。 -- **ストックサーバー**は発信接続を行うサーバーです。このサーバーは、ハブサーバー上のピアリザベーションを _使用_ します。 -- **ハブサーバー**は着信接続を受信するサーバーです。管理者は、このサーバーにピアリザベーションを _追加_ します。 +- **ストックサーバ**は発信接続を行うサーバです。このサーバは、ハブサーバ上のピアリザベーションを _使用_ します。 +- **ハブサーバ**は着信接続を受信するサーバです。管理者は、このサーバにピアリザベーションを _追加_ します。 -ただし、一方または両方のサーバーがハブ、バリデータ、ストックサーバーのいずれあっても、これらの手順を使用してピアリザベーションを設定できます。また、よりビジーな状態にあるサーバーから発信接続をする場合にもピアリザベーションを使用できますが、以下のプロセスではそのような構成については説明しません。 +ただし、一方または両方のサーバがハブ、バリデータ、ストックサーバのいずれあっても、これらの手順を使用してピアリザベーションを設定できます。また、よりビジーな状態にあるサーバから発信接続をする場合にもピアリザベーションを使用できますが、以下のプロセスではそのような構成については説明しません。 ## 前提条件 これらの手順を実行するには、次の前提条件を満たしている必要があります。 -- 両方のサーバーの管理者が`rippled`を[インストール](../../installation/index.md)して実行している。 -- 両方のサーバーの管理者が協力することに合意し、連絡が取り合える。秘密情報を共有する必要はないため、パブリックな通信チャネルを使用してもかまいません。 -- ハブサーバーが着信ピア接続を受信できる。ファイアウォールをそのように設定する手順については、[ピアリングのポート転送](forward-ports-for-peering.md)を参照してください。 -- 両方のサーバーが、同じ[XRP Ledgerネットワーク](../../../concepts/networks-and-servers/parallel-networks.md)(本番XRP Ledger、Testnet、Devnetなど)と同期するように設定されている。 +- 両方のサーバの管理者が`rippled`を[インストール](../../installation/index.md)して実行している。 +- 両方のサーバの管理者が協力することに合意し、連絡が取り合える。秘密情報を共有する必要はないため、パブリックな通信チャネルを使用してもかまいません。 +- ハブサーバが着信ピア接続を受信できる。ファイアウォールをそのように設定する手順については、[ピアリングのポート転送](forward-ports-for-peering.md)を参照してください。 +- 両方のサーバが、同じ[XRP Ledgerネットワーク](../../../concepts/networks-and-servers/parallel-networks.md)(本番XRP Ledger、Testnet、Devnetなど)と同期するように設定されている。 ## 手順 ピアリザベーションを使用するには、以下の手順に従います。 -### 1.(ストックサーバー)永続ノードキーペアを設定する +### 1.(ストックサーバ)永続ノードキーペアを設定する -ストックサーバーの管理者が、以下の手順を実行します。 +ストックサーバの管理者が、以下の手順を実行します。 -永続ノードキーペア値をすでにサーバーに設定している場合は、[ステップ2: ノード公開鍵をピアの管理者に連絡する](#2ストックサーバーのノード公開鍵を連絡する)に進んでください。(例えば、各サーバーの永続ノードキーペアは[サーバークラスターの設定](cluster-rippled-servers.md)の一環として設定します。) +永続ノードキーペア値をすでにサーバに設定している場合は、[ステップ2: ノード公開鍵をピアの管理者に連絡する](#2ストックサーバのノード公開鍵を連絡する)に進んでください。(例えば、各サーバの永続ノードキーペアは[サーバクラスターの設定](cluster-rippled-servers.md)の一環として設定します。) -**ヒント:** 永続ノードキーペアの設定は省略可能ですが、この設定をしておけば、サーバーのデータベースの消去や新規マシンへの移行が必要となった場合にピア接続の設定を容易に維持することができます。永続ノードキーペアを設定しない場合は、[server_infoメソッド][]のレスポンスの`pubkey_node`フィールドに表示される、サーバーが自動生成したノード公開鍵を使用できます。 +**ヒント:** 永続ノードキーペアの設定は省略可能ですが、この設定をしておけば、サーバのデータベースの消去や新規マシンへの移行が必要となった場合にピア接続の設定を容易に維持することができます。永続ノードキーペアを設定しない場合は、[server_infoメソッド][]のレスポンスの`pubkey_node`フィールドに表示される、サーバが自動生成したノード公開鍵を使用できます。 1. [validation_createメソッド][]を使用して新しいランダムキーペアを生成します。(`secret`値を省略します。) @@ -76,21 +76,21 @@ lables: ssZkdwURFMBXenJPbrpE14b6noJSu ``` - **警告:** すべてのサーバーの`[node_seed]`値が一意である必要があります。構成ファイルを別のサーバーにコピーする場合は、`[node_seed]`値を削除するか、変更してください。`[node_seed]`は公開しないようにします。不正使用者がこの値にアクセスできた場合、それを使用してサーバーを偽装し、XRP Ledgerのピアツーピア通信を行う可能性があります。 + **警告:** すべてのサーバの`[node_seed]`値が一意である必要があります。構成ファイルを別のサーバにコピーする場合は、`[node_seed]`値を削除するか、変更してください。`[node_seed]`は公開しないようにします。不正使用者がこの値にアクセスできた場合、それを使用してサーバを偽装し、XRP Ledgerのピアツーピア通信を行う可能性があります。 -4. `rippled`サーバーを再起動します。 +4. `rippled`サーバを再起動します。 ``` systemctl restart rippled ``` -### 2.ストックサーバーのノード公開鍵を連絡する +### 2.ストックサーバのノード公開鍵を連絡する -ストックサーバーの管理者が、ハブサーバーの管理者にストックサーバーのノード公開鍵を伝えます。(ステップ1の`validation_public_key`を使用します。)ハブサーバーの管理者はこの値を以降のステップで使用する必要があります。 +ストックサーバの管理者が、ハブサーバの管理者にストックサーバのノード公開鍵を伝えます。(ステップ1の`validation_public_key`を使用します。)ハブサーバの管理者はこの値を以降のステップで使用する必要があります。 -### 3.(ハブサーバー)ピアリザベーションを追加する +### 3.(ハブサーバ)ピアリザベーションを追加する -ハブサーバーの管理者が、以下の手順を実行します。 +ハブサーバの管理者が、以下の手順を実行します。 [peer_reservations_addメソッド][]を使用し、前のステップで入手したノード公開鍵を使用して予約を追加します。例: @@ -109,15 +109,15 @@ Connecting to 127.0.0.1:5005 **ヒント:** 説明はオプションのフィールドです。この予約は誰のためにしたものかを人間が読み取れる形式のメモを追加できます。 -### 4.ハブサーバーの現在のIPアドレスとピアポートを連絡する +### 4.ハブサーバの現在のIPアドレスとピアポートを連絡する -ハブサーバーの管理者は、サーバーの現在のIPアドレスとピアポートをストックサーバーの管理者に伝える必要があります。ハブサーバーが、ネットワークアドレス変換(NAT)を行なうファイアウォールの内側にある場合は、サーバーの _外部_ IPアドレスを使用します。デフォルトの構成ファイルは、ピアプロトコルにポート51235を使用します。 +ハブサーバの管理者は、サーバの現在のIPアドレスとピアポートをストックサーバの管理者に伝える必要があります。ハブサーバが、ネットワークアドレス変換(NAT)を行なうファイアウォールの内側にある場合は、サーバの _外部_ IPアドレスを使用します。デフォルトの構成ファイルは、ピアプロトコルにポート51235を使用します。 -### 5.(ストックサーバー)ピアサーバーに接続する +### 5.(ストックサーバ)ピアサーバに接続する -ストックサーバーの管理者が、以下の手順を実行します。 +ストックサーバの管理者が、以下の手順を実行します。 -[connectメソッド][]を使用して、サーバーをハブサーバーに接続します。例: +[connectメソッド][]を使用して、サーバをハブサーバに接続します。例: {% tabs %} @@ -154,19 +154,19 @@ rippled connect 169.54.2.151 51235 {% /tabs %} -ハブサーバーの管理者が上記の手順に従ってピアリザベーションを設定した場合、自動的に接続され、可能な限り接続が維持されます。 +ハブサーバの管理者が上記の手順に従ってピアリザベーションを設定した場合、自動的に接続され、可能な限り接続が維持されます。 ## 次のステップ -サーバーの管理者は、サーバーに設定された他のピアへの予約を管理できます。(他のサーバーからの予約は確認できません。)次のことを実行できます。 +サーバの管理者は、サーバに設定された他のピアへの予約を管理できます。(他のサーバからの予約は確認できません。)次のことを実行できます。 - [peer_reservations_addメソッド][]を使用して、ピアリザベーションの追加や説明の更新を行う。 -- [peer_reservations_listメソッド][]を使用して、予約先のサーバーを確認する。 +- [peer_reservations_listメソッド][]を使用して、予約先のサーバを確認する。 - [peer_reservations_delメソッド][]を使用して、予約を削除する。 - [peersメソッド][]を使用して、現在接続しているピアと使用している帯域幅の量を確認する。 -**ヒント:** 不正なピアからの接続を即座に切断するAPIメソッドはありませんが、`firewalld`などのソフトウェアファイアウォールを使用すれば、不正なピアからのサーバーへの接続をブロックできます。例については、コミュニティーによって作成された[rbhスクリプト](https://github.com/gnanderson/rbh)を参照してください。 +**ヒント:** 不正なピアからの接続を即座に切断するAPIメソッドはありませんが、`firewalld`などのソフトウェアファイアウォールを使用すれば、不正なピアからのサーバへの接続をブロックできます。例については、コミュニティーによって作成された[rbhスクリプト](https://github.com/gnanderson/rbh)を参照してください。 ## 関連項目 diff --git a/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md b/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md index 6375125dab..20063f6be0 100644 --- a/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md +++ b/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md @@ -4,14 +4,14 @@ parent: server-modes.html seo: description: XRPを統合する人のための汎用的な構成。 labels: - - コアサーバー + - コアサーバ --- -# ウォレットサーバーとしてのrippledの実行 +# ウォレットサーバとしてのrippledの実行 ストックサーバは`rippled`用の汎用的な設定です。ストックサーバを利用することで、XRP Ledgerにトランザクションを送信したり、レジャーの履歴にアクセスしたり、XRPやXRP Ledgerと統合するための最新の[ツール](../../../introduction/software-ecosystem.md)を利用したりすることができます。このサーバを使って、クライアントアプリケーションをXRP Ledgerに接続することができます。 -ウォレットサーバーは、次のすべてのことを行います。 +ウォレットサーバは、次のすべてのことを行います。 - [ピアネットワーク](../../../concepts/networks-and-servers/peer-protocol.md)に接続 @@ -25,9 +25,9 @@ labels: ## `rippled`のインストールと実行 -デフォルトのパッケージインストールでは、取引履歴の少ないストックサーバーがインストールされます。インストール手順については、[`rippled`のインストール](../../installation/index.md)をご覧ください。 +デフォルトのパッケージインストールでは、取引履歴の少ないストックサーバがインストールされます。インストール手順については、[`rippled`のインストール](../../installation/index.md)をご覧ください。 -インストール後、サーバーが一度に保存する履歴の量を調整することができます。この方法については、[オンライン削除の設定](../data-retention/configure-online-deletion.md)をご覧ください。 +インストール後、サーバが一度に保存する履歴の量を調整することができます。この方法については、[オンライン削除の設定](../data-retention/configure-online-deletion.md)をご覧ください。 ## トラブルシューティング diff --git a/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md b/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md index c6fdd7b1a8..571cc57852 100644 --- a/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md +++ b/@i18n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md @@ -2,16 +2,16 @@ html: run-rippled-as-a-validator.html parent: server-modes.html seo: - description: サーバーがコンセンサスレジャーで投票できるようにします。 + description: サーバがコンセンサスレジャーで投票できるようにします。 labels: - - コアサーバー + - コアサーバ - ブロックチェーン top_nav_grouping: 人気ページ top_nav_name: UNLに参加しよう --- # バリデータとしてのrippledの実行 -[バリデータモード](../../../concepts/networks-and-servers/rippled-server-modes.md)で実行されている[`rippled`サーバー](../../../concepts/networks-and-servers/index.md)は、ストックサーバーが実行するあらゆる処理を実行します。 +[バリデータモード](../../../concepts/networks-and-servers/rippled-server-modes.md)で実行されている[`rippled`サーバ](../../../concepts/networks-and-servers/index.md)は、ストックサーバが実行するあらゆる処理を実行します。 - [ピアのネットワーク](../../../concepts/networks-and-servers/peer-protocol.md)への接続 @@ -21,7 +21,7 @@ top_nav_name: UNLに参加しよう バリデータが _特異である_ のは、検証メッセージも発行するという点です。これらのメッセージは、[コンセンサスプロセス](../../../concepts/consensus-protocol/consensus-principles-and-rules.md#コンセンサスの仕組み)の進行中、XRP Ledgerネットワークによる評価の対象となる候補のトランザクションです。 -ただし、単に検証メッセージを発行するだけで、バリデータにコンセンサスプロセスでの発言権が自動的に付与されるわけではありません。他のサーバーがバリデータ(モードのサーバー)を彼らのユニークノードリスト(UNL)に追加しない限り、彼らは(バリデータモードのサーバーからの)検証メッセージを無視します。バリデータがUNLに含まれている場合、 _信頼できる_ バリデータであり、その提案は、信頼する側のサーバーによってコンセンサスプロセスで検討されます。 +ただし、単に検証メッセージを発行するだけで、バリデータにコンセンサスプロセスでの発言権が自動的に付与されるわけではありません。他のサーバがバリデータ(モードのサーバ)を彼らのユニークノードリスト(UNL)に追加しない限り、彼らは(バリデータモードのサーバからの)検証メッセージを無視します。バリデータがUNLに含まれている場合、 _信頼できる_ バリデータであり、その提案は、信頼する側のサーバによってコンセンサスプロセスで検討されます。 バリデータが _信頼できる_ バリデータではない場合も、ネットワークの全体的な健全性に関して、重要な役割を果たすことに変わりはありません。これらのバリデータは、信頼できるバリデータを評価するための基準の確立を支援します。例えば、信頼できるバリデータが、UNLに含まれていない多数のバリデータに対して異議を唱えている場合、問題があることを示しているおそれがあります。 @@ -31,7 +31,7 @@ top_nav_name: UNLに参加しよう ## 1. 優れたバリデータの特徴の理解 -バリデータ(サーバー)が以下の特質を常に備えるよう努めます。優れたバリデータであることは、`rippled`サーバーの運用者やバリデータリスト発行者(https://vl.ripple.com や https://vl.xrplf.orgなど)が、バリデータを彼らのUNLに追加する際に、バリデータを信頼する上で後押しになります。 +バリデータ(サーバ)が以下の特質を常に備えるよう努めます。優れたバリデータであることは、`rippled`サーバの運用者やバリデータリスト発行者(https://vl.ripple.com や https://vl.xrplf.orgなど)が、バリデータを彼らのUNLに追加する際に、バリデータを信頼する上で後押しになります。 - **可用性** @@ -55,17 +55,17 @@ top_nav_name: UNLに参加しよう -## 2. `rippled`サーバーのインストール +## 2. `rippled`サーバのインストール 詳細は、[`rippled`のインストール](../../installation/index.md)を参照してください。 -## 3. `rippled`サーバーで検証を有効化 +## 3. `rippled`サーバで検証を有効化 -`rippled`サーバーで検証を有効にすることは、サーバーの`rippled.cfg`ファイルにあるバリデータトークンを提供することを意味します。バリデータキーとトークンを安全に生成して管理するために、`validator-keys`ツール(`rippled` RPMに含まれる)を使用することをお勧めします。 +`rippled`サーバで検証を有効にすることは、サーバの`rippled.cfg`ファイルにあるバリデータトークンを提供することを意味します。バリデータキーとトークンを安全に生成して管理するために、`validator-keys`ツール(`rippled` RPMに含まれる)を使用することをお勧めします。 -バリデータ(サーバー)**以外の**場所で、以下の手順に従います。 +バリデータ(サーバ)**以外の**場所で、以下の手順に従います。 1. `validator-keys`ツールを`rippled` RPMを通じてまだインストールしていない場合は、手動でビルドして実行します。 @@ -121,7 +121,7 @@ top_nav_name: UNLに参加しよう VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== ``` -バリデータ(サーバー)で、以下の手順に従います。 +バリデータ(サーバ)で、以下の手順に従います。 1. `[validator_token]`とその値を、バリデータの`rippled.cfg`ファイルに追加します。 @@ -149,41 +149,41 @@ top_nav_name: UNLに参加しよう このセクションでは、バリデータをXRP Ledgerネットワークに接続するために使用できる3種類の構成について説明します。ユースケースに最適な構成を使用してください。 -- [検出されたピア](#検出されたピアを使用した接続): ピアツーピアネットワーク内の任意のサーバーに接続します。 +- [検出されたピア](#検出されたピアを使用した接続): ピアツーピアネットワーク内の任意のサーバに接続します。 -- [プロキシ](#プロキシを使用した接続): ストック`rippled`サーバーを、バリデータとピアツーピアネットワークの他の部分との間のプロキシとして実行します。 +- [プロキシ](#プロキシを使用した接続): ストック`rippled`サーバを、バリデータとピアツーピアネットワークの他の部分との間のプロキシとして実行します。 -- [公開ハブ](#公開ハブを使用した接続): 評価の高い特定の公開サーバーにのみ接続します。 +- [公開ハブ](#公開ハブを使用した接続): 評価の高い特定の公開サーバにのみ接続します。 これらのアプローチの違いについては、[ピア接続設定のメリットとデメリット](../../../concepts/networks-and-servers/peer-protocol.md#ピア接続設定のメリットとデメリット)を参照してください。 ### 検出されたピアを使用した接続 -この構成では、[検出されたピア](../../../concepts/networks-and-servers/peer-protocol.md#ピアの検出)を使用してバリデータをXRP Ledgerネットワークに接続します。これは`rippled`サーバーのデフォルトの動作です。 +この構成では、[検出されたピア](../../../concepts/networks-and-servers/peer-protocol.md#ピアの検出)を使用してバリデータをXRP Ledgerネットワークに接続します。これは`rippled`サーバのデフォルトの動作です。 _**検出されたピアを使用してバリデータをXRP Ledgerネットワークに接続するには、**_ バリデータの`rippled.cfg`ファイルで`[peer_private]`スタンザを省略するか、それを`0`に設定します。この構成の[サンプルのrippled.cfgファイル](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg)が提供されています。 ### プロキシを使用した接続 -この構成は、自社で運用するストック`rippled`サーバーを通じてバリデータをネットワークに接続します。これらのプロキシサーバーは、バリデータと発着信ネットワークトラフィックの間に設置します。 +この構成は、自社で運用するストック`rippled`サーバを通じてバリデータをネットワークに接続します。これらのプロキシサーバは、バリデータと発着信ネットワークトラフィックの間に設置します。 _**プロキシを使用してバリデータをXRP Ledgerネットワークに接続するには、次の手順を実行します。**_ -1. ストック`rippled`サーバーを設置します。詳細は、[rippledのインストール](../../installation/index.md)を参照してください。 +1. ストック`rippled`サーバを設置します。詳細は、[rippledのインストール](../../installation/index.md)を参照してください。 -2. バリデータとストック`rippled`サーバーを設定して、[クラスター](../peering/cluster-rippled-servers.md)内で実行します。 +2. バリデータとストック`rippled`サーバを設定して、[クラスター](../peering/cluster-rippled-servers.md)内で実行します。 -3. バリデータの`rippled.cfg`ファイルで、`[peer_private]`を`1`に設定します。そうすることで、バリデータのIPアドレスが転送されないようにします。詳細は、[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)を参照してください。また、これによりクラスター内でバリデータを実行するよう`[ips_fixed]`スタンザで定義したサーバー以外のサーバーに、バリデータが接続しないようになります。 +3. バリデータの`rippled.cfg`ファイルで、`[peer_private]`を`1`に設定します。そうすることで、バリデータのIPアドレスが転送されないようにします。詳細は、[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)を参照してください。また、これによりクラスター内でバリデータを実行するよう`[ips_fixed]`スタンザで定義したサーバ以外のサーバに、バリデータが接続しないようになります。 **警告:** バリデータのIPアドレスを、その他の方法で公開していないことを確認してください。 4. 以下のトラフィックのみを許可するように、バリデータのホストマシンのファイアウォールを構成します。 - - 着信トラフィック: 構成したクラスター内にあるストック`rippled`サーバーのIPアドレスが発信元である場合のみ + - 着信トラフィック: 構成したクラスター内にあるストック`rippled`サーバのIPアドレスが発信元である場合のみ - - 発信トラフィック: 構成したクラスター内にあるストック`rippled`サーバーのIPアドレスおよびポート443経由のが送信先である場合のみ + - 発信トラフィック: 構成したクラスター内にあるストック`rippled`サーバのIPアドレスおよびポート443経由のが送信先である場合のみ 5. `rippled`を再起動します。 @@ -191,7 +191,7 @@ _**プロキシを使用してバリデータをXRP Ledgerネットワークに $ sudo systemctl restart rippled.service ``` -6. いずれかのストック`rippled`サーバーにある[ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)エンドポイントを使用します。レスポンスには、バリデータが含まれていないはずです。これにより、バリデータの`[peer_private]`構成が機能していることが確認されます。バリデータの`[peer_private]`を有効にした場合の効果の1つは、バリデータのピアによって、ピアクローラーの結果にバリデータが含まれないことです。 +6. いずれかのストック`rippled`サーバにある[ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)エンドポイントを使用します。レスポンスには、バリデータが含まれていないはずです。これにより、バリデータの`[peer_private]`構成が機能していることが確認されます。バリデータの`[peer_private]`を有効にした場合の効果の1つは、バリデータのピアによって、ピアクローラーの結果にバリデータが含まれないことです。 ``` $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool @@ -216,15 +216,15 @@ _**公開ハブを使用してバリデータをネットワークに接続す **注意:** この構成では、デフォルトの公開ハブを使用してバリデータをネットワークに接続します。これらは _デフォルト_ の公開ハブであるため、ビジー状態になってバリデータにネットワークへの接続を提供できない場合があります。この問題を避けるために、接続する公開ハブの数を増やすか、デフォルトでない公開ハブに接続するようにします。 - 他の`rippled`サーバーのIPアドレスをここに記述することもできますが、それらのサーバーに対して以下の事項を期待できる場合に _**限ります**_ 。 + 他の`rippled`サーバのIPアドレスをここに記述することもできますが、それらのサーバに対して以下の事項を期待できる場合に _**限ります**_ 。 - メッセージを検閲することなく中継する。 - オンライン状態を常に維持する。 - - サーバーに対するDDoS攻撃を実行しない。 - - サーバーをクラッシュさせようとしない。 + - サーバに対するDDoS攻撃を実行しない。 + - サーバをクラッシュさせようとしない。 - 未知の相手にバリデータのIPアドレスを公開しない。 -2. また、バリデータの`rippled.cfg`ファイルに、次の`[peer_private]`スタンザを含めて、それを`1`に設定します。それにより、バリデータのピアに対して、バリデータのIPアドレスをブロードキャストしないよう指示することになります。また、バリデータに対して、`[ips_fixed]`スタンザで設定されているピアにのみ接続するよう指示することになります。これにより、既知の信頼できるピア`rippled`サーバーに対してのみ、バリデータが接続を確立し、IPアドレスを共有することが保証されます。 +2. また、バリデータの`rippled.cfg`ファイルに、次の`[peer_private]`スタンザを含めて、それを`1`に設定します。それにより、バリデータのピアに対して、バリデータのIPアドレスをブロードキャストしないよう指示することになります。また、バリデータに対して、`[ips_fixed]`スタンザで設定されているピアにのみ接続するよう指示することになります。これにより、既知の信頼できるピア`rippled`サーバに対してのみ、バリデータが接続を確立し、IPアドレスを共有することが保証されます。 ``` [peer_private] @@ -247,7 +247,7 @@ _**公開ハブを使用してバリデータをネットワークに接続す ここでは、バリデータがXRP Ledgerネットワークへの健全な接続を保持していることを検証する方法をいくつか紹介します。 -- [`peers`](../../../references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md)コマンドを使用して、バリデータに接続しているすべての`rippled`サーバーのリストを取得します。`peers`の配列が`null`である場合、ネットワークへの健全な接続が存在していません。このドキュメントの手順に従ってバリデータを設置した場合、`peers`の配列には、`[ips_fixed]`スタンザで定義されているピアの数と同数のオブジェクトが含まれています。 +- [`peers`](../../../references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md)コマンドを使用して、バリデータに接続しているすべての`rippled`サーバのリストを取得します。`peers`の配列が`null`である場合、ネットワークへの健全な接続が存在していません。このドキュメントの手順に従ってバリデータを設置した場合、`peers`の配列には、`[ips_fixed]`スタンザで定義されているピアの数と同数のオブジェクトが含まれています。 公開ハブを`[ips_fixed]`スタンザに記述した場合、そのハブがビジーになっているときは、バリデータの接続が拒否されることがあります。この場合、接続の数は、`[ips_fixed]`スタンザで設定した数よりも最終的に少なくなることがあります。初めて拒否された場合、バリデータは接続を再試行します。 @@ -255,7 +255,7 @@ _**公開ハブを使用してバリデータをネットワークに接続す - [`server_info`](../../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md)コマンドを使用して、バリデータに関するいくつかの基本情報を取得します。`server_state`は、`proposing`に設定されているはずです。`full`または`validating`に設定されている場合もありますが、`proposing`に移行するまでの数分間に限られます。 - `server_state`が`proposing`に設定されている時間が大部分を占めていない場合、XRP Ledgerネットワークにバリデータが完全に参加できていないことを示している可能性があります。サーバーの状態および`server_info`エンドポイントを使用してバリデータの問題を診断する方法の詳細は、[`rippled`サーバーの状態](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md)および[`server_info`の取得](../../troubleshooting/diagnosing-problems.md#server_infoの取得)を参照してください。 + `server_state`が`proposing`に設定されている時間が大部分を占めていない場合、XRP Ledgerネットワークにバリデータが完全に参加できていないことを示している可能性があります。サーバの状態および`server_info`エンドポイントを使用してバリデータの問題を診断する方法の詳細は、[`rippled`サーバの状態](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md)および[`server_info`の取得](../../troubleshooting/diagnosing-problems.md#server_infoの取得)を参照してください。 - [`validators`](../../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md)コマンドを使用して、バリデータによって使用される、公開済みかつ信頼できるバリデータの最新リストを取得します。`validator_list_expires`の値が、`never`(無期限)、期限が切れていない、または期限切れ間近のいずれかであることを確認してください。 @@ -273,13 +273,13 @@ _**公開ハブを使用してバリデータをネットワークに接続す ドメイン検証を提供するには、以下の手順に従います。 -1. バリデータと公に関連付ける、所有しているドメインの名前を選択します。そのドメインのポート443で外部に公開されるHTTPSサーバーを実行中であり、そのサーバーのTLS証明書に関連付けられている秘密鍵ファイルへのアクセス権を持っている必要があります。(注記: [TLSの旧称はSSLです](https://en.wikipedia.org/wiki/Transport_Layer_Security)。)DDoS攻撃への対策として、ドメイン名によってバリデータのIPアドレスが解決されないようにする必要があります。 +1. バリデータと公に関連付ける、所有しているドメインの名前を選択します。そのドメインのポート443で外部に公開されるHTTPSサーバを実行中であり、そのサーバのTLS証明書に関連付けられている秘密鍵ファイルへのアクセス権を持っている必要があります。(注記: [TLSの旧称はSSLです](https://en.wikipedia.org/wiki/Transport_Layer_Security)。)DDoS攻撃への対策として、ドメイン名によってバリデータのIPアドレスが解決されないようにする必要があります。 2. バリデータの公開鍵を公開し、特に他の`rippled`オペレーターに知らせます。例えば、Webサイト、ソーシャルメディア、[XRPChatコミュニティーフォーラム](https://www.xrpchat.com/)、またはプレスリリースでバリデータの公開鍵を公表できます。 3. この[Googleフォーム](https://docs.google.com/forms/d/e/1FAIpQLScszfq7rRLAfArSZtvitCyl-VFA9cNcdnXLFjURsdCQ3gHW7w/viewform)を使用して、自身のバリデータをXRP Chartsの[バリデータレジストリー](https://xrpcharts.ripple.com/#/validators)に登録するためのリクエストを送信します。バリデータをこのレジストリーに登録することは、そのバリデータとドメインを所有していることを示す、別の形での公的な証拠になります。フォームに漏れなく記入するには、以下の情報が必要です。 - 1. バリデータのサーバーで以下のコマンドを実行して、バリデータの公開鍵を検出します。 + 1. バリデータのサーバで以下のコマンドを実行して、バリデータの公開鍵を検出します。 $ /opt/ripple/bin/rippled server_info | grep pubkey_validator @@ -287,7 +287,7 @@ _**公開ハブを使用してバリデータをネットワークに接続す 返された値を、Googleフォームの**Validator Public Key**フィールドに入力します。 ``` - 2. WebドメインのTLS秘密鍵を使用して、バリデータの公開鍵に署名します。TLS秘密鍵ファイルをバリデータのサーバーに保存する必要はありません。 + 2. WebドメインのTLS秘密鍵を使用して、バリデータの公開鍵に署名します。TLS秘密鍵ファイルをバリデータのサーバに保存する必要はありません。 $ openssl dgst -sha256 -hex -sign /PATH/TO/YOUR/TLS.key <(echo YOUR_VALIDATOR_PUBLIC_KEY_HERE) @@ -328,9 +328,9 @@ _**公開ハブを使用してバリデータをネットワークに接続す - **コンセプト:** - [XRP Ledgerの概要](/about/) - - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [rippledサーバーのクラスター化](../peering/cluster-rippled-servers.md) + - [rippledサーバのクラスター化](../peering/cluster-rippled-servers.md) - [`rippled`のインストール](../../installation/index.md) - [容量の計画](../../installation/capacity-planning.md) - **リファレンス:** diff --git a/@i18n/ja/docs/infrastructure/installation/capacity-planning.md b/@i18n/ja/docs/infrastructure/installation/capacity-planning.md index edd2b7703b..bc4ae0c36a 100644 --- a/@i18n/ja/docs/infrastructure/installation/capacity-planning.md +++ b/@i18n/ja/docs/infrastructure/installation/capacity-planning.md @@ -4,16 +4,16 @@ parent: install-rippled.html seo: description: 本番環境のシステムスペックを計画して、rippledの構成を調整します。 labels: - - コアサーバー + - コアサーバ - データ保持 --- # 容量の計画 -このドキュメントでは、XRP Ledgerサーバーのパフォーマンスを調整・最適化するために使用できる、構成、ネットワーク、ハードウェアに関する推奨事項を説明しています。 +このドキュメントでは、XRP Ledgerサーバのパフォーマンスを調整・最適化するために使用できる、構成、ネットワーク、ハードウェアに関する推奨事項を説明しています。 -XRP Ledgerのサーバーの負荷は、複数の要因によって変化します。ひとつは、ネットワーク内の活動です。共有レジャーのデータサイズや送信されるトランザクションの総量は、グローバルなXRP Ledgerコミュニティ全体の有機的な要因に基づいて変化します。もうひとつの要因は、APIの使用状況です。異なる種類の[APIコール](../../references/http-websocket-apis/index.md)は、サーバーに異なる負荷をかけます。パブリックなAPIを提供しているサーバーと、特定の統合ソフトウェアにプライベートなAPIを提供しているサーバー、あるいはAPIを全く提供していないサーバーとでは、パフォーマンス特性が大きく異なります。 +XRP Ledgerのサーバの負荷は、複数の要因によって変化します。ひとつは、ネットワーク内の活動です。共有レジャーのデータサイズや送信されるトランザクションの総量は、グローバルなXRP Ledgerコミュニティ全体の有機的な要因に基づいて変化します。もうひとつの要因は、APIの使用状況です。異なる種類の[APIコール](../../references/http-websocket-apis/index.md)は、サーバに異なる負荷をかけます。パブリックなAPIを提供しているサーバと、特定の統合ソフトウェアにプライベートなAPIを提供しているサーバ、あるいはAPIを全く提供していないサーバとでは、パフォーマンス特性が大きく異なります。 -これらの要素を考慮して、構成するサーバーが現在および将来のXRP Ledgerネットワークの活動を処理する能力を持っていることを確認する必要があります。 +これらの要素を考慮して、構成するサーバが現在および将来のXRP Ledgerネットワークの活動を処理する能力を持っていることを確認する必要があります。 @@ -21,7 +21,7 @@ XRP Ledgerのサーバーの負荷は、複数の要因によって変化しま デフォルトの設定ファイルには、一般的なユースケースを幅広くカバーする設定が含まれています。お使いのハードウェアや使用目的に合わせて設定をカスタマイズすることで、より良いパフォーマンスを得ることができます。 -本セクションでの設定は、`rippled.cfg`ファイルのパラメータです。設定ファイルの例である `rippled-example.cfg` は、`rippled` GitHubリポジトリ の [`cfg` ディレクトリ](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg)からアクセスできます。サンプル設定ファイルの設定は、サーバーと一緒にインストールされたデフォルトの設定と一致しています。 +本セクションでの設定は、`rippled.cfg`ファイルのパラメータです。設定ファイルの例である `rippled-example.cfg` は、`rippled` GitHubリポジトリ の [`cfg` ディレクトリ](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg)からアクセスできます。サンプル設定ファイルの設定は、サーバと一緒にインストールされたデフォルトの設定と一致しています。 ### ノードサイズ @@ -34,17 +34,17 @@ XRP Ledgerのサーバーの負荷は、複数の要因によって変化しま それぞれの`[node_size]`には、それに対応する利用可能なRAMの要件があります。例えば、`[node_size]`を`huge`に設定した場合、`rippled`がスムーズに動作するためには、最低でも32GBの利用可能なRAMが必要です。 -サーバーを調整するために、まず`tiny`から初め、ユースケースの要件に合わせてサイズを徐々に`small`、`medium`と増やしていくと便利です。 +サーバを調整するために、まず`tiny`から初め、ユースケースの要件に合わせてサイズを徐々に`small`、`medium`と増やしていくと便利です。 | `rippled`で使用できるRAM | `node_size` 値 | 注記 | |:----------------------------|:------------------|:---------------------------| -| 8GB未満 | `tiny` | **非推奨** この設定をしたサーバーは、ビジー状態のネットワークに同期しないことがあります。 | -| 8GB | `small` | テストサーバーに推奨。 | +| 8GB未満 | `tiny` | **非推奨** この設定をしたサーバは、ビジー状態のネットワークに同期しないことがあります。 | +| 8GB | `small` | テストサーバに推奨。 | | 16GB | `medium` | `rippled-example.cfg`ファイルではこの値が使用されます。 | | 32GB | `large` | **非推奨** 実際には、この設定はほとんどの状況で `huge` よりもパフォーマンスが低下します。安定性を求めるのであれば、常に `huge` を使用してください。 | -| 64GB | `huge` | 実稼働サーバーに推奨。 | +| 64GB | `huge` | 実稼働サーバに推奨。 | -`node_size`パラメーターを無効な値に設定すると、[サーバーは起動しません](../troubleshooting/server-wont-start.md#node_sizeの値が正しくない)。 +`node_size`パラメーターを無効な値に設定すると、[サーバは起動しません](../troubleshooting/server-wont-start.md#node_sizeの値が正しくない)。 ### ノードDBタイプ @@ -55,7 +55,7 @@ XRP Ledgerのサーバーの負荷は、複数の要因によって変化しま - ほとんどのケースにおいて、ディスクのデータが膨大であってもパフォーマンスが一貫している`NuDB`を使用します。高速のSSDが必要です。[詳細はこちらをご覧ください。](#nudbの使用の詳細) -- HDD(非推奨)や、単に遅いSSDを使用している場合でも、`RocksDB`を使用してください。本番サーバーではこの設定は避けるべきです。[詳細はこちらをご覧ください。](#rocksdbの使用の詳細) +- HDD(非推奨)や、単に遅いSSDを使用している場合でも、`RocksDB`を使用してください。本番サーバではこの設定は避けるべきです。[詳細はこちらをご覧ください。](#rocksdbの使用の詳細) サンプルの`rippled-example.cfg`ファイルでは、`[node_db]`節の`type`フィールドが`NuDB`に設定されています。 @@ -63,7 +63,7 @@ XRP Ledgerのサーバーの負荷は、複数の要因によって変化しま [RocksDB](https://rocksdb.org/docs/getting-started.html)は、組み込み可能で永続的なkey-valueストアです。 -**注記:** 2021年後半、元帳の総サイズが大きくなったため、RocksDBを使用しているサーバーはメインネットとの同期を十分に維持できないことがありました。大容量のRAMがあれば問題ありませんが、通常はNuDBを使用してください。 +**注記:** 2021年後半、元帳の総サイズが大きくなったため、RocksDBを使用しているサーバはメインネットとの同期を十分に維持できないことがありました。大容量のRAMがあれば問題ありませんが、通常はNuDBを使用してください。 RocksDBは、SSDまたはHHDでの動作を想定しています。RocksDBは、NuDBに比べて必要とする[ディスク容量](#ディスク容量)が約3分の1少なくてすみ、I/O待ち時間が削減されます。ただし、I/O待ち時間が短い半面、データインデックスを格納するために、RocksDBは大量のRAMを必要とします。 @@ -90,7 +90,7 @@ advisory_delete=0 NuDBは、[格納されているデータ量に関係なく](#ディスク容量)、ほぼ一定したパフォーマンスとメモリーフットプリントを提供します。NuDBはSSDを _必要とします_ が、大容量のデータベースにアクセスするために使用するRAMがRocksDBよりも大幅に少なくなっています。 -本番サーバーは、NuDBを使用してユースケースに必要な履歴データ量を格納するように構成する必要があります。 +本番サーバは、NuDBを使用してユースケースに必要な履歴データ量を格納するように構成する必要があります。 NuDBには、`rippled.cfg`にパフォーマンス関連の構成オプションがありません。以下は、NuDBを使用する`rippled`における`[node_db]`の推奨構成です。 @@ -109,14 +109,14 @@ advisory_delete=0 サンプルの`rippled-example.cfg`ファイルの`[rpc_startup]`節では、ロギング詳細レベルが`warning`に設定されています。この設定を使用すると、より詳細なログ比べ、ディスク容量とI/O要件が大幅に緩和されます。ただし、より詳細なログレベルを設定すると、トラブルシューティングの際により細かな情報が得られます。 -**注意:** `[rpc_startup]`節で`log_level`コマンドを省略すると、サーバーは`debug`レべルでディスクにログを書き込み、`warning`レベルのログをコンソールに出力します。 `debug` レベルのログは、`warning`レベルに比べ、トランザクション量とクライアントアクティビティーに基づいて、一日当たりに必要なディスク容量が数GB多くなります。 +**注意:** `[rpc_startup]`節で`log_level`コマンドを省略すると、サーバは`debug`レべルでディスクにログを書き込み、`warning`レベルのログをコンソールに出力します。 `debug` レベルのログは、`warning`レベルに比べ、トランザクション量とクライアントアクティビティーに基づいて、一日当たりに必要なディスク容量が数GB多くなります。 ## ネットワークとハードウェア -XRP Ledgerネットワークの各サーバーは、ネットワークのすべての取引処理作業を行います。ネットワーク上の総活動量は変動しますが、ほとんどが時間の経過とともに増加していますので、現在のネットワーク活動に必要な容量よりも大きな容量のハードウェアを選択する必要があります。 +XRP Ledgerネットワークの各サーバは、ネットワークのすべての取引処理作業を行います。ネットワーク上の総活動量は変動しますが、ほとんどが時間の経過とともに増加していますので、現在のネットワーク活動に必要な容量よりも大きな容量のハードウェアを選択する必要があります。 -`rippled`サーバーが、これらのネットワーク要件とハードウェア要件を満たすようにすることは、XRP Ledgerネットワーク全体で一貫した優れたパフォーマンスを実現するために役立ちます。 +`rippled`サーバが、これらのネットワーク要件とハードウェア要件を満たすようにすることは、XRP Ledgerネットワーク全体で一貫した優れたパフォーマンスを実現するために役立ちます。 ### 推奨事項 @@ -129,18 +129,18 @@ XRP Ledgerネットワークの各サーバーは、ネットワークのすべ #### ディスク速度 -ストレージの速度は、サーバーの容量を左右する重要な要素の1つです。待ち時間の少ないランダム読み取りと高いスループットを備えた、グレードの高いソリッドステートディスク(SSD)の使用を _強くお勧めします。_ Rippleのエンジニアにより、以下の最大読み取り速度(秒)と書き込み速度(秒)が測定されています。 +ストレージの速度は、サーバの容量を左右する重要な要素の1つです。待ち時間の少ないランダム読み取りと高いスループットを備えた、グレードの高いソリッドステートディスク(SSD)の使用を _強くお勧めします。_ Rippleのエンジニアにより、以下の最大読み取り速度(秒)と書き込み速度(秒)が測定されています。 -- (使用率が高いパブリックサーバークラスターで)秒あたり10,000回の読み取り +- (使用率が高いパブリックサーバクラスターで)秒あたり10,000回の読み取り - (専用のパフォーマンステストで)秒あたり7,000回の書き込み #### ディスク容量 -`[node_db]`節はサーバの_レジャーの保存容量_を制御し、[レジャーの履歴](../../concepts/networks-and-servers/ledger-history.md)を保持します。必要なディスク容量は、どの程度の履歴をローカルに保存するかによって決まります。XRP Ledgerサーバーは、コンセンサス・プロセスを追跡し、レジャーの完全な状態を報告するために、最新の256以上のレジャーバージョンを保存する必要はありません。ただし、サーバーで照会できる実行済みトランザクションは、ローカルで保存されたレジャーバージョンにあるものだけです。`[node_db]`の`path`を設定して、レジャーの保存場所を決めてください。 +`[node_db]`節はサーバの_レジャーの保存容量_を制御し、[レジャーの履歴](../../concepts/networks-and-servers/ledger-history.md)を保持します。必要なディスク容量は、どの程度の履歴をローカルに保存するかによって決まります。XRP Ledgerサーバは、コンセンサス・プロセスを追跡し、レジャーの完全な状態を報告するために、最新の256以上のレジャーバージョンを保存する必要はありません。ただし、サーバで照会できる実行済みトランザクションは、ローカルで保存されたレジャーバージョンにあるものだけです。`[node_db]`の`path`を設定して、レジャーの保存場所を決めてください。 -保持するデータ量は、[オンライン削除](../configuration/data-retention/online-deletion.md)で管理できます。デフォルトの構成ファイルの設定では、サーバーは最新の2000のレジャーバージョンを保持します。オンライン削除を使用しないと、サーバーのディスク要件が際限なく増え続けます。 +保持するデータ量は、[オンライン削除](../configuration/data-retention/online-deletion.md)で管理できます。デフォルトの構成ファイルの設定では、サーバは最新の2000のレジャーバージョンを保持します。オンライン削除を使用しないと、サーバのディスク要件が際限なく増え続けます。 以下のテーブルは、本書の執筆時点(2018年12月13日)における、様々な履歴量の要件をまとめたものです。 @@ -163,7 +163,7 @@ XRP Ledgerネットワークの各サーバーは、ネットワークのすべ `[database_path]`では、個別のデータベースを設定します。これらには、トランザクションデータといくつかのランタイム設定が含まれます。 -一般的なルールとして、実行されていない`rippled`サーバーのデータベースファイル(レジャーストアとデータベースの両方)を安全に削除することができます。これにより、サーバーに保存されているレジャーの履歴はすべて消去されますが、そのデータをネットワークから再取得することができます。ただし、`[database_path]`にある`wallet.db`ファイルを削除すると、[Amendment 投票](../configuration/configure-amendment-voting.md)や[ピアリザベーション](../configuration/peering/use-a-peer-reservation.md)などのランタイムの設定変更を手動で再適用しなければなりません。 +一般的なルールとして、実行されていない`rippled`サーバのデータベースファイル(レジャーストアとデータベースの両方)を安全に削除することができます。これにより、サーバに保存されているレジャーの履歴はすべて消去されますが、そのデータをネットワークから再取得することができます。ただし、`[database_path]`にある`wallet.db`ファイルを削除すると、[Amendment 投票](../configuration/configure-amendment-voting.md)や[ピアリザベーション](../configuration/peering/use-a-peer-reservation.md)などのランタイムの設定変更を手動で再適用しなければなりません。 レジャー履歴を格納したくても、全履歴を格納するための十分な容量がない場合には、[履歴シャーディング](../configuration/data-retention/history-sharding.md)機能を使用して個別の共有ストアにランダムな範囲のレジャーを格納できます。履歴シャーディングは、`[shard_db]`節で構成されます。 @@ -172,7 +172,7 @@ XRP Ledgerネットワークの各サーバーは、ネットワークのすべ Amazon Web Services(AWS)は、人気のある仮想化ホスト環境です。AWSで`rippled`を実行することはできますが、Elastic Block Storage(EBS)は使用しないでください。詳しくは[システム要件](system-requirements.md)をご覧ください。 -AWSインスタンスストア(`ephemeral`ストレージ)では適切なパフォーマンスが提供されます。しかし、インスタンスを開始/停止するときなど、いくつかの状況でデータが失われる可能性があります。しかし、個々のXRP Ledgerサーバーは、通常、失われたレジャーの履歴を他サーバーから再取得することができるので、これは許容範囲内でしょう。設定内容は、より信頼性の高いストレージに保存する必要があります。 +AWSインスタンスストア(`ephemeral`ストレージ)では適切なパフォーマンスが提供されます。しかし、インスタンスを開始/停止するときなど、いくつかの状況でデータが失われる可能性があります。しかし、個々のXRP Ledgerサーバは、通常、失われたレジャーの履歴を他サーバから再取得することができるので、これは許容範囲内でしょう。設定内容は、より信頼性の高いストレージに保存する必要があります。 `[node_db]`節の`path`と`[database_path]`の両方が、適切なストレージを指していることを確認してください。 @@ -182,9 +182,9 @@ AWSインスタンスストア(`ephemeral`ストレージ)では適切なパ #### ネットワーク -企業や企業レベルのデータセンターでは、XRP Ledgerサーバーの稼働をサポートするために、非常に大きなネットワーク帯域幅が必要です。実際に必要な帯域幅は、ネットワークにおける現在のトランザクション量に応じて大きく変わります。サーバーの動作([レジャー履歴](../../concepts/networks-and-servers/ledger-history.md)の埋め戻しなど)もネットワークに影響します。一般的な家庭用インターネットでは、信頼性の高いサーバーを稼働させるには不十分です。 +企業や企業レベルのデータセンターでは、XRP Ledgerサーバの稼働をサポートするために、非常に大きなネットワーク帯域幅が必要です。実際に必要な帯域幅は、ネットワークにおける現在のトランザクション量に応じて大きく変わります。サーバの動作([レジャー履歴](../../concepts/networks-and-servers/ledger-history.md)の埋め戻しなど)もネットワークに影響します。一般的な家庭用インターネットでは、信頼性の高いサーバを稼働させるには不十分です。 -トランザクション量が非常に多い時期には、サーバーが100メガビット/秒のネットワークリンクを完全に飽和してしまうという報告を受けた事業者もあります。そのため、信頼性の高いパフォーマンスを実現するためには、ギガビット・ネットワーク・インターフェースが必要となります。 +トランザクション量が非常に多い時期には、サーバが100メガビット/秒のネットワークリンクを完全に飽和してしまうという報告を受けた事業者もあります。そのため、信頼性の高いパフォーマンスを実現するためには、ギガビット・ネットワーク・インターフェースが必要となります。 以下は、一般的なタスクで使用されるネットワーク帯域幅の例です。 @@ -200,17 +200,17 @@ AWSインスタンスストア(`ephemeral`ストレージ)では適切なパ ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - [`rippled`の構成](../configuration/index.md) - - [オンライ削除の設定](../configuration/data-retention/configure-online-deletion.md) - サーバーが一度に保持するレジャー履歴のバージョン数を調整します。 + - [オンライ削除の設定](../configuration/data-retention/configure-online-deletion.md) - サーバが一度に保持するレジャー履歴のバージョン数を調整します。 - [`rippled`のトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [logrotate メソッド][] - サーバーのデバッグログを閉じたり再開したりして、標準的なツールでローテーション可能にします。 - - [server_info メソッド][] - 同期の状態や、ディスク上で利用可能なレジャー履歴のバージョン数など、サーバーに関する一般的な情報を取得します。 + - [logrotate メソッド][] - サーバのデバッグログを閉じたり再開したりして、標準的なツールでローテーション可能にします。 + - [server_info メソッド][] - 同期の状態や、ディスク上で利用可能なレジャー履歴のバージョン数など、サーバに関する一般的な情報を取得します。 - [get_counts メソッド][] - 追加のサーバの正常情報、特にRAM内に様々な種類のオブジェクトをいくつ保持しているかを取得します。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/infrastructure/installation/index.md b/@i18n/ja/docs/infrastructure/installation/index.md index 9dc5eb96eb..91805fcfb9 100644 --- a/@i18n/ja/docs/infrastructure/installation/index.md +++ b/@i18n/ja/docs/infrastructure/installation/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: rippledサーバーをインストールして更新します。 + description: rippledサーバをインストールして更新します。 --- # rippledのインストール -rippledサーバーをインストールして更新します。 +rippledサーバをインストールして更新します。 {% child-pages /%} diff --git a/@i18n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md b/@i18n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md index f156d9cf57..a4b503a3ec 100644 --- a/@i18n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md +++ b/@i18n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md @@ -101,7 +101,7 @@ Clioをインストールする前に、以下の条件を満たしている必 6. Clioソフトウェアパッケージをインストールします。オプションは2つあります。 - - 同じマシン上で`rippled`を実行するには、両方のサーバーをセットアップする`clio`パッケージをインストールしてください: + - 同じマシン上で`rippled`を実行するには、両方のサーバをセットアップする`clio`パッケージをインストールしてください: ``` sudo apt -y install clio diff --git a/@i18n/ja/docs/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md b/@i18n/ja/docs/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md index f237c0dee7..eb356e55c5 100644 --- a/@i18n/ja/docs/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md +++ b/@i18n/ja/docs/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md @@ -4,7 +4,7 @@ parent: install-rippled.html seo: description: プリコンパイル済みのrippledバイナリーをCentOSまたはRed Hat Enterprise Linuxにインストールします。 labels: - - コアサーバー + - コアサーバ --- # yumを使用したCentOS/Red Hatへのインストール @@ -75,7 +75,7 @@ labels: ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - [rippledの構成](../configuration/index.md) diff --git a/@i18n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md b/@i18n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md index 9ee4234a8f..b067fa508f 100644 --- a/@i18n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md +++ b/@i18n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md @@ -4,7 +4,7 @@ parent: install-rippled.html seo: description: プリコンパイル済みのrippledバイナリーをUbuntu Linuxにインストールします。 labels: - - コアサーバー + - コアサーバ --- # UbuntuまたはDebian Linuxへのインストール @@ -77,7 +77,7 @@ labels: - `unstable` - プレインストールビルド([`release`ブランチ](https://github.com/XRPLF/rippled/tree/release)) - `nightly` - 実験/開発ビルド([`develop`ブランチ](https://github.com/XRPLF/rippled/tree/develop)) - **警告:** 安定版ではないナイトリービルドはいつの時点でも壊れる可能性があります。これらのビルドを本番環境のサーバーに使用しないでください。 + **警告:** 安定版ではないナイトリービルドはいつの時点でも壊れる可能性があります。これらのビルドを本番環境のサーバに使用しないでください。 6. Rippleリポジトリを取得します。 @@ -112,7 +112,7 @@ labels: ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - [rippledの構成](../configuration/index.md) diff --git a/@i18n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md b/@i18n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md index 43fa2f4e14..f232fed757 100644 --- a/@i18n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md +++ b/@i18n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md @@ -20,7 +20,7 @@ seo: Rippleの公式RPMリポジトリとそれを使用するための手順が変更されました。[自動更新](update-rippled-automatically-on-linux.md)を有効にしている場合は、システムで移行が自動的に実行されます。以前のリポジトリから新しいリポジトリに手動で移行するには、以下の手順を実行します。 -1. `rippled`サーバーを停止します。 +1. `rippled`サーバを停止します。 ``` $ sudo systemctl stop rippled.service @@ -114,7 +114,7 @@ Rippleの公式RPMリポジトリとそれを使用するための手順が変 - **[`rippled` v1.3.1リリースノート](https://github.com/XRPLF/rippled/releases/1.3.1)** - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - [Linuxでの自動更新](update-rippled-automatically-on-linux.md) diff --git a/@i18n/ja/docs/infrastructure/installation/system-requirements.md b/@i18n/ja/docs/infrastructure/installation/system-requirements.md index a56869c05c..328e34974b 100644 --- a/@i18n/ja/docs/infrastructure/installation/system-requirements.md +++ b/@i18n/ja/docs/infrastructure/installation/system-requirements.md @@ -4,7 +4,7 @@ parent: install-rippled.html seo: description: rippledのハードウェアやソフトウェアのシステム要件 labels: - - コアサーバー + - コアサーバ --- # システム要件 diff --git a/@i18n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md b/@i18n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md index de702e8843..82523008e1 100644 --- a/@i18n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md +++ b/@i18n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md @@ -4,7 +4,7 @@ parent: install-rippled.html seo: description: Linuxでrippledの自動更新を設定します。 labels: - - コアサーバー + - コアサーバ - セキュリティ --- # Linuxでの自動更新 @@ -23,7 +23,7 @@ Linuxでは、`rippled`が1回限りの`cron`構成を使用して最新バー $ sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ ``` - このcron構成は、インストール済みの`rippled`パッケージを新版のリリース後1時間以内に更新するためのスクリプトを実行します。同時に更新を実行しているすべてのサーバーが停止する可能性を抑えるため、このスクリプトは`rippled`サービスを再起動しません。手動再起動しますまで、以前のバージョンを実行し続けます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} + このcron構成は、インストール済みの`rippled`パッケージを新版のリリース後1時間以内に更新するためのスクリプトを実行します。同時に更新を実行しているすべてのサーバが停止する可能性を抑えるため、このスクリプトは`rippled`サービスを再起動しません。手動再起動しますまで、以前のバージョンを実行し続けます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} 3. 新しいリリースが公開された後、`rippled`サービスを手動再起動する。 @@ -39,7 +39,7 @@ Linuxでは、`rippled`が1回限りの`cron`構成を使用して最新バー ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - [容量の計画](capacity-planning.md) diff --git a/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-centos-rhel.md b/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-centos-rhel.md index 5e06fe4cc1..265d4287ae 100644 --- a/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-centos-rhel.md +++ b/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-centos-rhel.md @@ -4,7 +4,7 @@ parent: install-rippled.html seo: description: CentOSまたはRed Hat Enterprise Linuxでrippledを手動更新します。 labels: - - コアサーバー + - コアサーバ - セキュリティ --- # CentOS/Red Hatでの手動更新 @@ -53,7 +53,7 @@ labels: ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) diff --git a/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md b/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md index 714efddc3b..c0e72cf870 100644 --- a/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md +++ b/@i18n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md @@ -4,7 +4,7 @@ parent: install-rippled.html seo: description: Ubuntu Linuxでrippledを手動更新します。 labels: - - コアサーバー + - コアサーバ - セキュリティ --- # UbuntuまたはDebianでの手動更新 @@ -45,7 +45,7 @@ labels: ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) diff --git a/@i18n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md b/@i18n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md index 4127d2c5c9..5c49890719 100644 --- a/@i18n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md +++ b/@i18n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md @@ -4,7 +4,7 @@ parent: use-stand-alone-mode.html seo: description: レジャーを手動で閉鎖して、スタンドアロンモードでの処理を進めます。 labels: - - コアサーバー + - コアサーバ --- # スタンドアロンモードでレジャーを進める diff --git a/@i18n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md b/@i18n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md index 545e17919a..b009239250 100644 --- a/@i18n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md +++ b/@i18n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md @@ -4,11 +4,11 @@ parent: use-stand-alone-mode.html seo: description: 特定の保存済みレジャーからスタンドアロンモードで開始して、トランザクションのテストやリプレイを行います。 labels: - - コアサーバー + - コアサーバ --- # スタンドアロンモードでの保存済みレジャーの読み込み -以前にディスクに保存していた[履歴レジャーバージョン](../../concepts/ledgers/index.md)を使用して、`rippled`サーバーを[スタンドアロンモード](../../concepts/networks-and-servers/rippled-server-modes.md)で起動できます。例えば、以前に`rippled`サーバーをXRP Ledgerのピアツーピアネットワーク([本番Mainnet、Testnet、Devnetなど](../../concepts/networks-and-servers/parallel-networks.md))と同期していた場合は、過去にサーバーで使用できていた任意のレジャーバージョンを読み込むことができます。 +以前にディスクに保存していた[履歴レジャーバージョン](../../concepts/ledgers/index.md)を使用して、`rippled`サーバを[スタンドアロンモード](../../concepts/networks-and-servers/rippled-server-modes.md)で起動できます。例えば、以前に`rippled`サーバをXRP Ledgerのピアツーピアネットワーク([本番Mainnet、Testnet、Devnetなど](../../concepts/networks-and-servers/parallel-networks.md))と同期していた場合は、過去にサーバで使用できていた任意のレジャーバージョンを読み込むことができます。 履歴レジャーバージョンを読み込むことにより、レジャーを「リプレイ」して、トランザクションがネットワークのルールに従って処理されていたか検証したり、異なる[Amendment](../../concepts/networks-and-servers/amendments.md)を有効にした場合のトランザクションセットの処理の結果を比較したりすることができます。万が一、[XRP Ledgerのコンセンサスメカニズムに対する攻撃](../../concepts/consensus-protocol/consensus-protections.md)が発生して共有レジャーの状態に悪影響が及んでも、このプロセスを始めることで、バリデータのコンセンサスを以前の良好だったネットワークの状態に「ロールバック」できる可能性があります。 @@ -22,13 +22,13 @@ rippled --conf=/path/to/rippled.cfg ## 2. `rippled`が同期されるまで待ちます。 -[server_infoメソッド][]を使用して、ネットワークに対するサーバーの状態を確認します。`server_state`に以下のいずれかの値が示される場合は、サーバーは同期しています。 +[server_infoメソッド][]を使用して、ネットワークに対するサーバの状態を確認します。`server_state`に以下のいずれかの値が示される場合は、サーバは同期しています。 * `full` * `proposing` * `validating` -詳細は、[考えられるサーバーの状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)を参照してください。 +詳細は、[考えられるサーバの状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)を参照してください。 ## 3. (省略可)特定のレジャーバージョンを取得します。 @@ -48,13 +48,13 @@ rippled stop --conf=/path/to/rippled.cfg ## 5. スタンドアロンモードで`rippled`を起動します。 -最新のレジャーバージョンを読み込むには、`-a`オプションと`--load`オプションを指定してサーバーを起動します。 +最新のレジャーバージョンを読み込むには、`-a`オプションと`--load`オプションを指定してサーバを起動します。 ``` rippled -a --load --conf=/path/to/rippled.cfg ``` -特定の履歴レジャーを読み込むには、`--load`パラメーターと`--ledger`パラメーターを使用し、読み込むレジャーバージョンのレジャーインデックスまたは識別用ハッシュを指定してサーバーを起動します。 +特定の履歴レジャーを読み込むには、`--load`パラメーターと`--ledger`パラメーターを使用し、読み込むレジャーバージョンのレジャーインデックスまたは識別用ハッシュを指定してサーバを起動します。 ``` rippled -a --load --ledger 19860944 --conf=/path/to/rippled.cfg @@ -73,8 +73,8 @@ rippled ledger_accept --conf=/path/to/rippled.cfg ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) - - [`rippled`サーバーのモード](../../concepts/networks-and-servers/rippled-server-modes.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバのモード](../../concepts/networks-and-servers/rippled-server-modes.md) - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - [Amendment](../../concepts/networks-and-servers/amendments.md) - **リファレンス:** diff --git a/@i18n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md b/@i18n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md index 7ce6eda20c..3655674b76 100644 --- a/@i18n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md +++ b/@i18n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md @@ -5,7 +5,7 @@ parent: use-stand-alone-mode.html seo: description: DockerとDocker Composeを使って独自のXRPプライベートレジャーネットワークを構築する方法を紹介します。 labels: - - コアサーバー + - コアサーバ --- # プライベートネットワークをDockerで構築する diff --git a/@i18n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md b/@i18n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md index e4f6153f0d..091c608242 100644 --- a/@i18n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md +++ b/@i18n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md @@ -4,7 +4,7 @@ parent: use-stand-alone-mode.html seo: description: スタンドアロンモードで新しいジェネシスレジャーを開始します。 labels: - - コアサーバー + - コアサーバ --- # スタンドアロンモードでの新しいジェネシスレジャーの開始 @@ -28,6 +28,6 @@ rippled -a --start --conf=/path/to/rippled.cfg 新しいジェネシスレジャーでは、デフォルトでハードコーディングされる[準備金](../../concepts/accounts/reserves.md)は**200 XRP**です。この額は、新規アドレスに支給される最低額で、レジャーの1オブジェクトにつき**50 XRP**ずつ増加します。これらは本番環境ネットワークの現在の必要準備金よりも大きな値です。(関連項目: [手数料投票](../../concepts/consensus-protocol/fee-voting.md)) -デフォルトでは、新しいジェネシスレジャーでは[Amendment](../../concepts/networks-and-servers/amendments.md)が有効になっていません。`--start`を使用して新しいジェネシスレジャーを開始する場合、ジェネシスレジャーには、構成ファイルで明示的に無効にされたAmendmentを除き、`rippled`サーバーでネイティブにサポートされているすべてのAmendmentを有効にする[EnableAmendment疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/enableamendment.md)が含まれています。これらのAmendmentの効果は、直後のレジャーバージョンから反映されます。(留意事項: スタンドアロンモードでは[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.md)必要があります。){% badge href="https://github.com/XRPLF/rippled/releases/tag/0.50.0" %}新規: rippled 0.50.0{% /badge %} +デフォルトでは、新しいジェネシスレジャーでは[Amendment](../../concepts/networks-and-servers/amendments.md)が有効になっていません。`--start`を使用して新しいジェネシスレジャーを開始する場合、ジェネシスレジャーには、構成ファイルで明示的に無効にされたAmendmentを除き、`rippled`サーバでネイティブにサポートされているすべてのAmendmentを有効にする[EnableAmendment疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/enableamendment.md)が含まれています。これらのAmendmentの効果は、直後のレジャーバージョンから反映されます。(留意事項: スタンドアロンモードでは[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.md)必要があります。){% badge href="https://github.com/XRPLF/rippled/releases/tag/0.50.0" %}新規: rippled 0.50.0{% /badge %} {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md b/@i18n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md index fa35690376..6082b701e9 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md @@ -4,19 +4,19 @@ parent: troubleshoot-the-rippled-server.html seo: description: 情報を収集して問題の原因を特定します。 labels: - - コアサーバー + - コアサーバ --- # rippledの問題の診断 `rippled`で問題が発生した場合はまず、問題の特徴を正確に明らかにするため、詳細な情報を収集します。これにより、根本原因を洗い出して修正策を編み出すことが容易になります。 -サーバーが起動しない場合(クラッシュが発生した場合や自動的にシャットダウンした場合など)は、[rippledサーバーが起動しない](server-wont-start.md)で考えられる原因と修正策のリストを確認してください。 +サーバが起動しない場合(クラッシュが発生した場合や自動的にシャットダウンした場合など)は、[rippledサーバが起動しない](server-wont-start.md)で考えられる原因と修正策のリストを確認してください。 -このドキュメントでは、サーバーが稼働している場合(プロセスがアクティブだがネットワークと同期できない場合を含む)に発生する可能性がある問題の診断手順を説明します。 +このドキュメントでは、サーバが稼働している場合(プロセスがアクティブだがネットワークと同期できない場合を含む)に発生する可能性がある問題の診断手順を説明します。 ## server_infoの取得 -コマンドラインを使用して、ローカル`rippled`インスタンスからサーバーステータス情報を取得できます。例: +コマンドラインを使用して、ローカル`rippled`インスタンスからサーバステータス情報を取得できます。例: ``` rippled server_info @@ -24,11 +24,11 @@ rippled server_info このコマンドに対するレスポンスには大量の情報が含まれています。これについては、[server_infoメソッド][]で説明します。トラブルシューティングで最も重要なフィールドは以下のとおりです(最も一般的に使われるものから順に説明します)。 -- **`server_state`** - ほとんどの場合、このフィールドには`proposing`([バリデータとして設定されている](../configuration/server-modes/run-rippled-as-a-validator.md)サーバーの場合)または`full`(バリデータではないサーバーの場合)が表示されます。値が`connected`の場合は、サーバーはピアツーピアネットワークの他の部分と通信できますが、共有レジャーの状態を追跡するのに十分なデータがありません。通常、レジャーの残りの部分の状態を同期するには起動後約5~15分かかります。 +- **`server_state`** - ほとんどの場合、このフィールドには`proposing`([バリデータとして設定されている](../configuration/server-modes/run-rippled-as-a-validator.md)サーバの場合)または`full`(バリデータではないサーバの場合)が表示されます。値が`connected`の場合は、サーバはピアツーピアネットワークの他の部分と通信できますが、共有レジャーの状態を追跡するのに十分なデータがありません。通常、レジャーの残りの部分の状態を同期するには起動後約5~15分かかります。 - - サーバーが数時間にわたり`connected`状態である場合、または`full`あるいは`proposing`状態になってから`connected`状態に戻る場合は通常、サーバーがネットワークの他の部分よりも遅れています。最も一般的なボトルネックはディスクI/O、ネットワーク帯域幅、RAMです。 + - サーバが数時間にわたり`connected`状態である場合、または`full`あるいは`proposing`状態になってから`connected`状態に戻る場合は通常、サーバがネットワークの他の部分よりも遅れています。最も一般的なボトルネックはディスクI/O、ネットワーク帯域幅、RAMです。 - - 例えば、以下のサーバー状態情報は、正常なサーバーで同期が3分以内に完了しており(`disconnected`、`connected`、`syncing`の状態に分かれている)、現在は完全に同期された`proposing`状態が約90分間続いていることを示しています。 + - 例えば、以下のサーバ状態情報は、正常なサーバで同期が3分以内に完了しており(`disconnected`、`connected`、`syncing`の状態に分かれている)、現在は完全に同期された`proposing`状態が約90分間続いていることを示しています。 ``` $ ./rippled server_info @@ -69,32 +69,32 @@ rippled server_info } ``` - サーバーが同じ状態間で複数の`transitions`を示している場合、サーバーが同期状態を維持できなかったことを示します。`full`または`proposing`状態でない場合、サーバーはまだネットワークに同期されていません。長期の間には、インターネット接続が不安定になってサーバーの同期が時々失われる場合があります。そのためこれが問題になるのは、同期されていない時間がアップタイムのかなりの部分を占める場合のみです。アップタイムが約24時間経過した後に、`full`または`proposing`状態だった時間がサーバーの合計実行時間の99%に満たない場合、不安定になっている原因を調査することをお勧めします。 + サーバが同じ状態間で複数の`transitions`を示している場合、サーバが同期状態を維持できなかったことを示します。`full`または`proposing`状態でない場合、サーバはまだネットワークに同期されていません。長期の間には、インターネット接続が不安定になってサーバの同期が時々失われる場合があります。そのためこれが問題になるのは、同期されていない時間がアップタイムのかなりの部分を占める場合のみです。アップタイムが約24時間経過した後に、`full`または`proposing`状態だった時間がサーバの合計実行時間の99%に満たない場合、不安定になっている原因を調査することをお勧めします。 - - 同期の問題をデバッグする際の参考として、[サーバーが同期しない](server-doesnt-sync.md)を参照してください。 + - 同期の問題をデバッグする際の参考として、[サーバが同期しない](server-doesnt-sync.md)を参照してください。 -- **`complete_ledgers`** - このフィールドは、サーバーに完全なレジャーデータが保管されている[レジャーインデックス](../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)を示します。通常、正常なサーバーには連続した最新のレジャーのセット(`"12133424-12133858"`など)があります。 +- **`complete_ledgers`** - このフィールドは、サーバに完全なレジャーデータが保管されている[レジャーインデックス](../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)を示します。通常、正常なサーバには連続した最新のレジャーのセット(`"12133424-12133858"`など)があります。 - - 連続していない完全なレジャーのセット(`"11845721-12133420,12133424-12133858"`など)がある場合、サーバーで断続的な障害が発生したか、またはネットワークの他の部分との同期が一時的にできなかった可能性があります。このようなケースの最も一般的な原因は、ディスクI/Oまたはネットワーク帯域幅の不足です。 + - 連続していない完全なレジャーのセット(`"11845721-12133420,12133424-12133858"`など)がある場合、サーバで断続的な障害が発生したか、またはネットワークの他の部分との同期が一時的にできなかった可能性があります。このようなケースの最も一般的な原因は、ディスクI/Oまたはネットワーク帯域幅の不足です。 - - 通常、`rippled`サーバーはピアから最新のレジャー履歴をダウンロードします。レジャー履歴のギャップが数時間以上続く場合は、欠落データを所有しているピアに接続されていない可能性があります。この状況が発生した場合は、構成ファイルに次のスタンザを追加して再起動すれば、完全な履歴が保管されているRippleのパブリックサーバーの1つにサーバーを強制的にピア接続できます。 + - 通常、`rippled`サーバはピアから最新のレジャー履歴をダウンロードします。レジャー履歴のギャップが数時間以上続く場合は、欠落データを所有しているピアに接続されていない可能性があります。この状況が発生した場合は、構成ファイルに次のスタンザを追加して再起動すれば、完全な履歴が保管されているRippleのパブリックサーバの1つにサーバを強制的にピア接続できます。 ``` [ips_fixed] s2.ripple.com 51235 ``` -- **`amendment_blocked`** - このフィールドは通常`server_info`レスポンスでは省略されます。このフィールドの値が`true`の場合は、ネットワークにより承認された[Amendment](../../concepts/networks-and-servers/amendments.md)がサーバーに導入されていません。ほとんどの場合は、最新バージョンに[rippledを更新する](../installation/index.md)ことで修正できます。また[featureメソッド][]を使用して、現在有効なAmendment ID、サーバーでサポートされているAmendment ID、サーバーでサポートされていないAmendment IDを確認することもできます。 +- **`amendment_blocked`** - このフィールドは通常`server_info`レスポンスでは省略されます。このフィールドの値が`true`の場合は、ネットワークにより承認された[Amendment](../../concepts/networks-and-servers/amendments.md)がサーバに導入されていません。ほとんどの場合は、最新バージョンに[rippledを更新する](../installation/index.md)ことで修正できます。また[featureメソッド][]を使用して、現在有効なAmendment ID、サーバでサポートされているAmendment ID、サーバでサポートされていないAmendment IDを確認することもできます。 -- **`peers`** - このフィールドは、サーバーが接続しているXRP Ledgerピアツーピアネットワーク内のその他のサーバーの数を示します。特定のピアのみに接続するように明示的に構成されているサーバーを除き、正常なサーバーでは通常5~50ピアと表示されます。 +- **`peers`** - このフィールドは、サーバが接続しているXRP Ledgerピアツーピアネットワーク内のその他のサーバの数を示します。特定のピアのみに接続するように明示的に構成されているサーバを除き、正常なサーバでは通常5~50ピアと表示されます。 - - ピアの数が0の場合、サーバーがネットワークに接続できないか、またはシステムクロックが正しくない可能性があります。(サーバーのクロックを同期するため、すべてのサーバーで[NTP](http://www.ntp.org/)デーモンを実行することが推奨されます。) + - ピアの数が0の場合、サーバがネットワークに接続できないか、またはシステムクロックが正しくない可能性があります。(サーバのクロックを同期するため、すべてのサーバで[NTP](http://www.ntp.org/)デーモンを実行することが推奨されます。) - ピアの数が10の場合、`rippled`が[NAT](https://en.wikipedia.org/wiki/Network_address_translation)を使用したルーター経由での着信接続を受信できていない可能性があります。接続を改善するには、ルーターのファイアウォールがピアツーピア接続に使用するポート([デフォルトでは](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1065)ポート51235)を転送するように設定します。 -### サーバーからレスポンスがない場合 +### サーバからレスポンスがない場合 -`rippled`実行可能ファイルがクライアントとして`rippled`サーバーに接続できなかった場合、以下のメッセージが返されます。 +`rippled`実行可能ファイルがクライアントとして`rippled`サーバに接続できなかった場合、以下のメッセージが返されます。 ```json { @@ -107,24 +107,24 @@ rippled server_info 通常これはさまざまな問題の1つを示します。 -- `rippled`サーバーが起動したばかりであるか、または完全に稼働していません。サービスのステータスを確認してください。稼働している場合は数秒間待ってから再試行してください。 -- サーバーに接続するために異なる[パラメーターを`rippled`コマンドラインクライアントに](../commandline-usage.md#クライアントモードのオプション)渡す必要があります。 -- `rippled`サーバーがJSON-RPC接続を受け入れるように構成されていない可能性があります。 +- `rippled`サーバが起動したばかりであるか、または完全に稼働していません。サービスのステータスを確認してください。稼働している場合は数秒間待ってから再試行してください。 +- サーバに接続するために異なる[パラメーターを`rippled`コマンドラインクライアントに](../commandline-usage.md#クライアントモードのオプション)渡す必要があります。 +- `rippled`サーバがJSON-RPC接続を受け入れるように構成されていない可能性があります。 -## サーバーログの確認 +## サーバログの確認 -[デフォルトでは](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142)`rippled`はサーバーのデバッグログを`/var/log/rippled/debug.log`ファイルに書き込みます。このデバッグログの位置は、サーバーの構成ファイルにより異なる可能性があります。`rippled`サービスを(`systemctl`または`service`を使用して開始するのではなく)直接開始した場合、デフォルトではログメッセージはコンソールにも出力されます。 +[デフォルトでは](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142)`rippled`はサーバのデバッグログを`/var/log/rippled/debug.log`ファイルに書き込みます。このデバッグログの位置は、サーバの構成ファイルにより異なる可能性があります。`rippled`サービスを(`systemctl`または`service`を使用して開始するのではなく)直接開始した場合、デフォルトではログメッセージはコンソールにも出力されます。 -デフォルトの構成ファイルでは、起動時に[log_levelメソッド][]を内部で使用して、すべてのログメッセージカテゴリーでログレベルの重大度は「警告」に設定されています。デバッグログの詳細レベルを制御するには、[起動時に`--silent`コマンドラインオプションを使用し](../commandline-usage.md#詳細レベルのオプション)、サーバーの稼働中に[log_levelメソッド][]を使用します。(設定については構成ファイルの`[rpc_startup]`スタンザを参照してください。) +デフォルトの構成ファイルでは、起動時に[log_levelメソッド][]を内部で使用して、すべてのログメッセージカテゴリーでログレベルの重大度は「警告」に設定されています。デバッグログの詳細レベルを制御するには、[起動時に`--silent`コマンドラインオプションを使用し](../commandline-usage.md#詳細レベルのオプション)、サーバの稼働中に[log_levelメソッド][]を使用します。(設定については構成ファイルの`[rpc_startup]`スタンザを参照してください。) -`rippled`サーバーが起動中に多数の警告レベルの(`WRN`)メッセージを出力し、その後はときどきいくつかの警告レベルメッセージを出力することは正常です。サーバー起動時の最初の5~15分間に出力されるほとんどの警告は、**安全に無視**できます。 +`rippled`サーバが起動中に多数の警告レベルの(`WRN`)メッセージを出力し、その後はときどきいくつかの警告レベルメッセージを出力することは正常です。サーバ起動時の最初の5~15分間に出力されるほとんどの警告は、**安全に無視**できます。 さまざまな種類のログメッセージに関する詳しい説明については、[ログメッセージについて](understanding-log-messages.md)を参照してください。 ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [Amendment](../../concepts/networks-and-servers/amendments.md) - **チュートリアル:** - [容量の計画](../installation/capacity-planning.md) diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md b/@i18n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md index f42342af8b..24c031c8ac 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md @@ -2,37 +2,37 @@ html: fix-sqlite-tx-db-page-size-issue.html parent: troubleshoot-the-rippled-server.html seo: - description: rippledバージョン0.40.0以前で起動された完全履歴サーバーでのSQLiteのページサイズに関する問題を解決します。 + description: rippledバージョン0.40.0以前で起動された完全履歴サーバでのSQLiteのページサイズに関する問題を解決します。 --- # SQLiteトランザクションデータベースのページサイズの問題の解決 -全トランザクション履歴(または極めて大量のトランザクション履歴)が記録されている`rippled`サーバーと、0.40.0(2017年1月リリース)よりも古いバージョンの`rippled`で最初に作成されたデータベースでは、SQLiteデータベースのページサイズが原因でサーバーが適切に稼働しなくなる問題が発生する可能性があります。最近のトランザクション履歴のみが保管されているサーバー(デフォルト構成)と、バージョン0.40.0以降の`rippled`でデータベースファイルが作成されているサーバーでは、この問題が発生する可能性はそれほどありません。 +全トランザクション履歴(または極めて大量のトランザクション履歴)が記録されている`rippled`サーバと、0.40.0(2017年1月リリース)よりも古いバージョンの`rippled`で最初に作成されたデータベースでは、SQLiteデータベースのページサイズが原因でサーバが適切に稼働しなくなる問題が発生する可能性があります。最近のトランザクション履歴のみが保管されているサーバ(デフォルト構成)と、バージョン0.40.0以降の`rippled`でデータベースファイルが作成されているサーバでは、この問題が発生する可能性はそれほどありません。 このドキュメントでは、この問題の発生時に問題を検出し解決する手順を説明します。 ## 背景 -`rippled` サーバーではトランザクション履歴のコピーがSQLiteデータベースに保管されます。バージョン0.40.0より古い`rippled`では、このデータベースの容量は約2TBに設定されました。ほとんどの場合はこの容量で十分です。ただし、レジャー32570(本番環境XRP Ledgerの履歴で利用可能な最も古いレジャーバージョン)以降の全トランザクション履歴は、このSQLiteデータベースの容量を超える可能性があります。`rippled`サーバーバージョン0.40.0以降では、これよりも大きな容量でSQLiteデータベースファイルが作成されているため、この問題が発生する可能性は低くなります。 +`rippled` サーバではトランザクション履歴のコピーがSQLiteデータベースに保管されます。バージョン0.40.0より古い`rippled`では、このデータベースの容量は約2TBに設定されました。ほとんどの場合はこの容量で十分です。ただし、レジャー32570(本番環境XRP Ledgerの履歴で利用可能な最も古いレジャーバージョン)以降の全トランザクション履歴は、このSQLiteデータベースの容量を超える可能性があります。`rippled`サーババージョン0.40.0以降では、これよりも大きな容量でSQLiteデータベースファイルが作成されているため、この問題が発生する可能性は低くなります。 SQLiteデータベースの容量は、データベースの_ページサイズ_パラメーターによって決まります。この容量は、データベース作成後は容易に変更できません。(SQLiteの内部についての詳細は、[SQLite公式ドキュメント](https://www.sqlite.org/fileformat.html)を参照してください。)データベースが保管されているディスクとファイルシステムに空き容量がある場合でも、データベースが容量いっぱいになることがあります。以下の「[解決策](#解決策)」で説明するように、この問題を回避するためにページサイズを再構成するには、時間のかかる移行プロセスが必要です。 -**ヒント:** ほとんどの場合、`rippled`サーバーの稼働に全履歴が必要となることはありません。サーバーにトランザクションの全履歴が記録されていれば、長期分析やアーカイブ、または災害に対する事前対策に役立ちます。リソースを大量に消費せずにトランザクション履歴を保管する方法については、[履歴シャーディング](../configuration/data-retention/history-sharding.md)を参照してください。 +**ヒント:** ほとんどの場合、`rippled`サーバの稼働に全履歴が必要となることはありません。サーバにトランザクションの全履歴が記録されていれば、長期分析やアーカイブ、または災害に対する事前対策に役立ちます。リソースを大量に消費せずにトランザクション履歴を保管する方法については、[履歴シャーディング](../configuration/data-retention/history-sharding.md)を参照してください。 ## 検出 -サーバーがこの問題に対して脆弱である場合は、次の2種類の方法でこの問題を検出できます。 +サーバがこの問題に対して脆弱である場合は、次の2種類の方法でこの問題を検出できます。 -- ご使用の`rippled`サーバーが[バージョン1.1.0][新規: rippled 1.1.0]以降の場合、(問題が発生する前に)[事前に](#事前の検出)問題を検出できます。 -- (サーバーがクラッシュした場合)どの`rippled`バージョンでも、問題を[事後に](#事後の検出)特定できます。 +- ご使用の`rippled`サーバが[バージョン1.1.0][新規: rippled 1.1.0]以降の場合、(問題が発生する前に)[事前に](#事前の検出)問題を検出できます。 +- (サーバがクラッシュした場合)どの`rippled`バージョンでも、問題を[事後に](#事後の検出)特定できます。 -いずれの場合でも、問題を検出するには`rippled`のサーバーログへのアクセスが必要です。 +いずれの場合でも、問題を検出するには`rippled`のサーバログへのアクセスが必要です。 -**ヒント:** このデバッグログの位置は、`rippled`サーバーの構成ファイルの設定に応じて異なる可能性があります。[デフォルトの構成](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142)では、サーバーのデバッグログは`/var/log/rippled/debug.log`ファイルに書き込まれます。 +**ヒント:** このデバッグログの位置は、`rippled`サーバの構成ファイルの設定に応じて異なる可能性があります。[デフォルトの構成](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142)では、サーバのデバッグログは`/var/log/rippled/debug.log`ファイルに書き込まれます。 ### 事前の検出 -SQLiteのページサイズの問題を事前に検出するには、 **[rippled 1.1.0][新規: rippled 1.1.0]以上**を実行している必要があります。`rippled`サーバーは、以下のようなメッセージをデバッグログに定期的に(少なくとも2分間隔で)書き込みます。(ログエントリーの正確な数値とトランザクションデータベースへのパスは、ご使用の環境に応じて異なります。) +SQLiteのページサイズの問題を事前に検出するには、 **[rippled 1.1.0][新規: rippled 1.1.0]以上**を実行している必要があります。`rippled`サーバは、以下のようなメッセージをデバッグログに定期的に(少なくとも2分間隔で)書き込みます。(ログエントリーの正確な数値とトランザクションデータベースへのパスは、ご使用の環境に応じて異なります。) ```text Transaction DB pathname:/opt/rippled/transaction.db; SQLite page size:1024 @@ -42,15 +42,15 @@ Transaction DB pathname:/opt/rippled/transaction.db; SQLite page size:1024 `SQLite page size: 1024 bytes`という値は、トランザクションデータベースが小さいページサイズで構成されており、全トランザクション履歴に対応できる容量がないことを示しています。この値がすでに4096バイト以上の場合、SQLiteデータベースにはすでに全トランザクション履歴を保管できる十分な容量があり、このドキュメントで説明する移行を行う必要はありません。 -`rippled`サーバーは、このログメッセージに示されている`Free space`が524288000バイト(500MB)未満になると停止します。空き容量がこのしきい値に近づいている場合は、予期しない停止を回避するために[この問題を解決](#解決策)してください。 +`rippled`サーバは、このログメッセージに示されている`Free space`が524288000バイト(500MB)未満になると停止します。空き容量がこのしきい値に近づいている場合は、予期しない停止を回避するために[この問題を解決](#解決策)してください。 ### 事後の検出 -サーバーのSQLiteデータベース容量をすでに超えている場合には、`rippled`サービスがこの問題を示すログメッセージを書き込み、停止します。 +サーバのSQLiteデータベース容量をすでに超えている場合には、`rippled`サービスがこの問題を示すログメッセージを書き込み、停止します。 #### rippled 1.1.0以降 -`rippled`バージョン1.1.0以降では、サーバーは以下のようなメッセージをサーバーのデバッグログに書き込み、通常の方法でシャットダウンします。 +`rippled`バージョン1.1.0以降では、サーバは以下のようなメッセージをサーバのデバッグログに書き込み、通常の方法でシャットダウンします。 ```text Free SQLite space for transaction db is less than 512MB.To fix this, rippled @@ -60,7 +60,7 @@ Free SQLite space for transaction db is less than 512MB.To fix this, rippled #### rippled 1.1.0より前 -バージョン1.1.0より前の`rippled`では、サーバーが繰り返しクラッシュし、以下のようなメッセージがサーバーのデバッグログに書き込まれます。 +バージョン1.1.0より前の`rippled`では、サーバが繰り返しクラッシュし、以下のようなメッセージがサーバのデバッグログに書き込まれます。 ```text Terminating thread doJob:AcquisitionDone: unhandled @@ -71,7 +71,7 @@ Terminating thread doJob:AcquisitionDone: unhandled ## 解決策 -この問題を解決するには、このドキュメントで説明する手順に従い、サポートされているLinuxシステムで`rippled`を使用します。[推奨されるハードウェア構成](../installation/capacity-planning.md#推奨事項-1)とおおよそ一致するシステムスペックで全履歴を記録するサーバーの場合、このプロセスにかかる日数は2日を超える可能性があります。 +この問題を解決するには、このドキュメントで説明する手順に従い、サポートされているLinuxシステムで`rippled`を使用します。[推奨されるハードウェア構成](../installation/capacity-planning.md#推奨事項-1)とおおよそ一致するシステムスペックで全履歴を記録するサーバの場合、このプロセスにかかる日数は2日を超える可能性があります。 ### 前提条件 @@ -182,7 +182,7 @@ Terminating thread doJob:AcquisitionDone: unhandled 11. `rippled`サービスが正常に起動したかどうかを確認します。 - [コマンドラインインターフェイス](../../tutorials/http-websocket-apis/build-apps/get-started.md#コマンドライン)を使用してサーバーの状況を確認できます(サーバーがJSON-RPCリクエストを受け入れないように設定している場合を除く)。次に例を示します。 + [コマンドラインインターフェイス](../../tutorials/http-websocket-apis/build-apps/get-started.md#コマンドライン)を使用してサーバの状況を確認できます(サーバがJSON-RPCリクエストを受け入れないように設定している場合を除く)。次に例を示します。 ``` /opt/ripple/bin/rippled server_info @@ -190,7 +190,7 @@ Terminating thread doJob:AcquisitionDone: unhandled このコマンドの予期されるレスポンスの説明については、[server_infoメソッド][]ドキュメントを参照してください。 -12. サーバーのデバッグログを参照し、`SQLite page size`が現在4096であることを確認します。 +12. サーバのデバッグログを参照し、`SQLite page size`が現在4096であることを確認します。 ``` tail -F /var/log/rippled/debug.log diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md b/@i18n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md index d7eae87055..83f5fc0e15 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md @@ -4,7 +4,7 @@ parent: troubleshoot-the-rippled-server.html seo: description: 自動化されたインフラ監視の一環として、rippledサーバのヘルスチェックを使用します。 labels: - - コアサーバー + - コアサーバ --- # ヘルスチェックの導入 @@ -16,9 +16,9 @@ labels: ヘルスチェックの[metrics][]の中には、急速に正常でない範囲に変動し、その後すぐに自動的に回復するものがあります。ヘルスチェックが不正常なステータスを報告するたびにアラートを上げることは不要であり、望ましくありません。自動化されたモニタリングシステムは、health checkメソッドを頻繁に呼び出しますが、問題が深刻で一貫している場合にのみ、より高いレベルの介入に拡張する必要があります。 -例えば、1秒に1回サーバーのヘルスチェックを行う場合、サーバが「警告」ステータスを3回連続して報告した場合、または5秒間に4回報告した場合にアラートを発生させることができます。また、サーバが5秒間に2回"critical"ステータスを報告した場合にも、アラートを発生させることができます。通常、サーバが"warning"と報告するたびにアラートを発生させるのは過剰です。 +例えば、1秒に1回サーバのヘルスチェックを行う場合、サーバが「警告」ステータスを3回連続して報告した場合、または5秒間に4回報告した場合にアラートを発生させることができます。また、サーバが5秒間に2回"critical"ステータスを報告した場合にも、アラートを発生させることができます。通常、サーバが"warning"と報告するたびにアラートを発生させるのは過剰です。 -**ヒント:** サーバは通常、起動後の最初の数秒間は"critical"ステータスを報告し、ネットワークへの接続が確立されると"warning"ステータスに切り替わり、ネットワークへの同期が完了すると"healthy"ステータスを報告します。再起動後、追加の介入を行う前に、サーバーの同期に5~15分ほど時間が必要です。 +**ヒント:** サーバは通常、起動後の最初の数秒間は"critical"ステータスを報告し、ネットワークへの接続が確立されると"warning"ステータスに切り替わり、ネットワークへの同期が完了すると"healthy"ステータスを報告します。再起動後、追加の介入を行う前に、サーバの同期に5~15分ほど時間が必要です。 ## 特殊なケース @@ -35,8 +35,8 @@ labels: 以下のセクションでは、試みるべき一般的な介入と、それらの介入を促す可能性が最も高いヘルスチェックのステータスを提案します。自動化されたシステムや人間の管理者は、これらの介入やその他の介入によって選択的に状況を確認することができます。 -- [トラフィックのリダイレクト](#トラフィックのリダイレクト): 影響を受けたサーバーからトラフィックをリダイレクトします。 -- [再起動](#再起動): サーバーソフトウェアまたはハードウェアを再起動します。 +- [トラフィックのリダイレクト](#トラフィックのリダイレクト): 影響を受けたサーバからトラフィックをリダイレクトします。 +- [再起動](#再起動): サーバソフトウェアまたはハードウェアを再起動します。 - [更新](#更新): `rippled`をアップグレードします。 - [ネットワークの調査](#ネットワークの調査): 問題が他の場所で発生した場合のためにネットワークを調査します。 - [ハードウェアの交換](#ハードウェアの交換) @@ -71,7 +71,7 @@ $ sudo systemctl restart rippled.service ### 更新 -サーバがヘルスチェックで`"amendment_blocked": true`と報告した場合、これはXRP Ledgerがサーバが理解できない[プロトコルの修正(Amendment)](../../concepts/networks-and-servers/amendments.md)を有効にしたことを示しています。ネットワークの改訂されたルールを誤って解釈して損害を被らないようにするため、このようなサーバーは正常に動作する代わりに"amendment blocked(Amendmentブロック)"となります。 +サーバがヘルスチェックで`"amendment_blocked": true`と報告した場合、これはXRP Ledgerがサーバが理解できない[プロトコルの修正(Amendment)](../../concepts/networks-and-servers/amendments.md)を有効にしたことを示しています。ネットワークの改訂されたルールを誤って解釈して損害を被らないようにするため、このようなサーバは正常に動作する代わりに"amendment blocked(Amendmentブロック)"となります。 Amendmentブロックを解消するには、[サーバをアップデート](../installation/index.md)して、Amendmentプログラムを理解できる新しいバージョンのソフトウェアにしてください。 @@ -80,7 +80,7 @@ Amendmentブロックを解消するには、[サーバをアップデート](.. ### ネットワークの調査 -信頼性の低いネットワーク接続や不十分なネットワーク接続が原因で、サーバーが停止を報告することがあります。以下の[Metrics][]のwarningまたはcriticalの値は、ネットワークの問題を示している可能性があります。 +信頼性の低いネットワーク接続や不十分なネットワーク接続が原因で、サーバが停止を報告することがあります。以下の[Metrics][]のwarningまたはcriticalの値は、ネットワークの問題を示している可能性があります。 - `peers` - `server_state` diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/index.md b/@i18n/ja/docs/infrastructure/troubleshooting/index.md index be8f4b366c..7a64a0c05e 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/index.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: rippledサーバーのあらゆる種類の問題をトラブルシューティングします。 + description: rippledサーバのあらゆる種類の問題をトラブルシューティングします。 --- # rippledのトラブルシューティング -rippledサーバーのあらゆる種類の問題をトラブルシューティングします。 +rippledサーバのあらゆる種類の問題をトラブルシューティングします。 {% child-pages /%} diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md b/@i18n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md index 738993b69f..25ac422d9b 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md @@ -4,31 +4,31 @@ parent: troubleshoot-the-rippled-server.html seo: description: rippledサーバがXRP Ledgerの他の部分と同期できない問題のトラブルシューティング。 labels: - - コアサーバー + - コアサーバ --- -# rippledサーバーが同期しない +# rippledサーバが同期しない -このページでは、[`rippled`サーバー](../../concepts/networks-and-servers/index.md)が正常に起動したのに、ネットワークに完全に接続できずに[「connected」状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)のままになっている場合の原因について説明します。(サーバーが起動中または起動直後にクラッシュした場合は、[サーバーが起動しない](server-wont-start.md)を参照してください。) +このページでは、[`rippled`サーバ](../../concepts/networks-and-servers/index.md)が正常に起動したのに、ネットワークに完全に接続できずに[「connected」状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)のままになっている場合の原因について説明します。(サーバが起動中または起動直後にクラッシュした場合は、[サーバが起動しない](server-wont-start.md)を参照してください。) 以下の手順では、サポートされているプラットフォームに[`rippled`がインストール](../installation/index.md)されていることを前提としています。 ## 通常の同期動作 -ネットワークとの同期は、通常はおよそ5分から15分で完了します。その間に、サーバーは次のようなさまざまなことを行います。 +ネットワークとの同期は、通常はおよそ5分から15分で完了します。その間に、サーバは次のようなさまざまなことを行います。 - 推奨バリデータリストを読み込み(例: `vl.ripple.com`)、信頼できるバリデータを判断します。 -- [ピアサーバーを検出](../../concepts/networks-and-servers/peer-protocol.md#ピアの検出)して接続します。 +- [ピアサーバを検出](../../concepts/networks-and-servers/peer-protocol.md#ピアの検出)して接続します。 - 信頼できるバリデータをリッスンして、最近検証されたレジャーハッシュを見つけます。 - ピアから最新のレジャーを完全にダウンロードし、それを使ってレジャーデータの内部データベースを構築します。 - 新たにブロードキャストされたトランザクションを収集し、それを進行中のレジャーに適用します。 -サーバーがこれらのタスクを行うときにネットワークに同調して対応できなかった場合は、サーバーはネットワークと同期しない状態になります。 +サーバがこれらのタスクを行うときにネットワークに同調して対応できなかった場合は、サーバはネットワークと同期しない状態になります。 ## 最初のステップ: 再起動 -多くの同期の問題は、サーバーを再起動することで解決できます。最初に同期が失敗した原因がどのようなものであっても、2回目では成功する場合があります。 +多くの同期の問題は、サーバを再起動することで解決できます。最初に同期が失敗した原因がどのようなものであっても、2回目では成功する場合があります。 [server_infoメソッド][]で[`server_state`](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)が`proposing`または`full`以外の状態であると示され、`server_state_duration_us`が`900000000`(15分のマイクロ秒表記)より大きい場合は、`rippled`サービスをシャットダウンしてから数秒間待ち、再起動してください。場合によっては、マシン全体を再起動します。 @@ -43,36 +43,36 @@ labels: - **不十分なRAM。** メモリー要件はさまざまな要因に大きく左右されます。例えば、ネットワークの負荷やXRP Ledgerがどのように使われるかなど、予測しづらい要因もあるため、念のため最小システム要件よりも大きいメモリーを用意することをお勧めします。 - **品質の悪いネットワーク接続。** ネットワーク要件は、主にXRP Ledgerをユーザーがどのよう使うかによって左右されますが、接続が低速または不安定な場合、XRP Ledgerに追加された新しいトランザクションやデータとの同期がとれなくなる可能性があります。 -同期の問題が解消されない場合は、サーバーがシステム要件を満たしているかもう一度確認してください。サーバーの使用方法によっては、「最小」要件よりも高い「推奨」要件を満たす必要があります。「推奨」要件を満たしていても、まだ同期ができない場合は、このページの他の原因を試してみてください。 +同期の問題が解消されない場合は、サーバがシステム要件を満たしているかもう一度確認してください。サーバの使用方法によっては、「最小」要件よりも高い「推奨」要件を満たす必要があります。「推奨」要件を満たしていても、まだ同期ができない場合は、このページの他の原因を試してみてください。 ## バリデータリストを読み込めない -デフォルトの構成では、`vl.ripple.com`から受信した推奨バリデータリストを使用します。このリストは、Rippleの暗号鍵ペアで署名されており、有効期限が組み込まれています。サーバーが何らかの理由でリストを`vl.ripple.com`からダウンロードできない場合、サーバーは信頼できるバリデータのセットを選択せず、有効として宣言できるレジャーを決定できません。([Testnetや別の並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)に接続している場合、サーバーは代わりにそのネットワークの信頼できるバリデータのリストを使用します。) +デフォルトの構成では、`vl.ripple.com`から受信した推奨バリデータリストを使用します。このリストは、Rippleの暗号鍵ペアで署名されており、有効期限が組み込まれています。サーバが何らかの理由でリストを`vl.ripple.com`からダウンロードできない場合、サーバは信頼できるバリデータのセットを選択せず、有効として宣言できるレジャーを決定できません。([Testnetや別の並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)に接続している場合、サーバは代わりにそのネットワークの信頼できるバリデータのリストを使用します。) -[server_infoメソッド][]レスポンスの`validator_list`ブロックは、バリデータリストの有効期限などのステータスを示します。リストがあるが期限切れである場合、サーバーは以前はそのバリデータリストのサイトに接続できていたものの、その後接続できなくなった可能性があります。その場合、現在のリストはサーバーがそれより新しいリストをダウンロードできなかったために期限切れとなった可能性があります。 +[server_infoメソッド][]レスポンスの`validator_list`ブロックは、バリデータリストの有効期限などのステータスを示します。リストがあるが期限切れである場合、サーバは以前はそのバリデータリストのサイトに接続できていたものの、その後接続できなくなった可能性があります。その場合、現在のリストはサーバがそれより新しいリストをダウンロードできなかったために期限切れとなった可能性があります。 -また、[validator_list_sitesメソッド][]を使用して、より詳細な情報を取得することもできます。レスポンス内のバリデータサイトオブジェクトに`last_refresh_status`および`last_refresh_time`フィールドがない場合、サーバーからバリデータリストのサイトへの接続に問題があることを示しています。ファイアウォールの設定をチェックして、ポート80(HTTP)または443(HTTPS)の発信トラフィックをブロックしていないことを確認してください。また、DNSがバリデータリストのサイトのドメインを解決できることも確認してください。 +また、[validator_list_sitesメソッド][]を使用して、より詳細な情報を取得することもできます。レスポンス内のバリデータサイトオブジェクトに`last_refresh_status`および`last_refresh_time`フィールドがない場合、サーバからバリデータリストのサイトへの接続に問題があることを示しています。ファイアウォールの設定をチェックして、ポート80(HTTP)または443(HTTPS)の発信トラフィックをブロックしていないことを確認してください。また、DNSがバリデータリストのサイトのドメインを解決できることも確認してください。 ## 十分な数のピアがない -サーバーが十分な数の[ピアサーバー](../../concepts/networks-and-servers/peer-protocol.md)に接続していない場合、サーバーは十分なデータをダウンロードできず、ネットワークが新しいトランザクションを処理するときに同期がとれなくなる可能性があります。この問題は、ネットワーク接続の信頼性が低い場合や、十分な数の信頼できる固定ピアを追加せずにサーバーを[プライベートサーバー](../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として構成している場合に起こる可能性があります。 +サーバが十分な数の[ピアサーバ](../../concepts/networks-and-servers/peer-protocol.md)に接続していない場合、サーバは十分なデータをダウンロードできず、ネットワークが新しいトランザクションを処理するときに同期がとれなくなる可能性があります。この問題は、ネットワーク接続の信頼性が低い場合や、十分な数の信頼できる固定ピアを追加せずにサーバを[プライベートサーバ](../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として構成している場合に起こる可能性があります。 -[peersメソッド][]を使用して、サーバーの現在のピアについての情報を取得します。ピアの数が10または11の場合、ファイアウォールが着信ピア接続をブロックしていることを示しています。[ポートフォワーディングを設定](../configuration/peering/forward-ports-for-peering.md)して、より多くの着信接続を許可します。サーバーがプライベートサーバーとして構成されている場合は、構成ファイルの`[ips_fixed]`スタンザの内容と構文を再度確認し、可能であればプロキシと公開ハブをさらに追加します。 +[peersメソッド][]を使用して、サーバの現在のピアについての情報を取得します。ピアの数が10または11の場合、ファイアウォールが着信ピア接続をブロックしていることを示しています。[ポートフォワーディングを設定](../configuration/peering/forward-ports-for-peering.md)して、より多くの着信接続を許可します。サーバがプライベートサーバとして構成されている場合は、構成ファイルの`[ips_fixed]`スタンザの内容と構文を再度確認し、可能であればプロキシと公開ハブをさらに追加します。 ## データベースの破損 -まれに、`rippled`サーバーの内部データベースに保存されているデータが破損していることで同期の問題が発生する場合があります。サーバーが稼動中でなければ、ほとんどの場合、サーバーのデータベースを安全に削除できます。データの破損は、ディスクにコピーまたは書き込みするときに起こった一時的なハードウェア障害や、より深刻なディスク障害、別のプロセスがクラッシュしてディスクの誤った部分に書き込んだなど、さまざまな問題の結果として起こる可能性があります。 +まれに、`rippled`サーバの内部データベースに保存されているデータが破損していることで同期の問題が発生する場合があります。サーバが稼動中でなければ、ほとんどの場合、サーバのデータベースを安全に削除できます。データの破損は、ディスクにコピーまたは書き込みするときに起こった一時的なハードウェア障害や、より深刻なディスク障害、別のプロセスがクラッシュしてディスクの誤った部分に書き込んだなど、さまざまな問題の結果として起こる可能性があります。 -テストとして、十分な空き容量があれば、サーバーのデータベースへのパスを一時的に変更することで、現行のレジャーをダウンロードし直して、別の設定を保存できます。 +テストとして、十分な空き容量があれば、サーバのデータベースへのパスを一時的に変更することで、現行のレジャーをダウンロードし直して、別の設定を保存できます。 -**注記:** データベースのパスを変更した場合、サーバーはサーバーの現在の[ノードキーペア][]や[ピアリザベーション](../../concepts/networks-and-servers/peer-protocol.md#固定ピアとピアリザベーション)など、保存されている一部の設定を読み込めません。データベースのパスを変更することでサーバーの同期の問題が解決した場合は、これらの設定の一部を再作成することをお勧めします。 +**注記:** データベースのパスを変更した場合、サーバはサーバの現在の[ノードキーペア][]や[ピアリザベーション](../../concepts/networks-and-servers/peer-protocol.md#固定ピアとピアリザベーション)など、保存されている一部の設定を読み込めません。データベースのパスを変更することでサーバの同期の問題が解決した場合は、これらの設定の一部を再作成することをお勧めします。 -1. `rippled`サーバーが稼働中の場合は停止します。 +1. `rippled`サーバが稼働中の場合は停止します。 ``` $ sudo systemctl stop rippled @@ -98,19 +98,19 @@ labels: {% partial file="/@i18n/ja/docs/_snippets/conf-file-location.md" /%} -4. `rippled`サーバーを再起動します。 +4. `rippled`サーバを再起動します。 ``` $ sudo systemctl start rippled ``` - 新しいデータベースを使用してサーバーが同期に成功したら、以前のデータベースを格納していたフォルダーを削除できます。また、ハードウェア障害、特にディスクとRAMの障害を確認することもお勧めします。 + 新しいデータベースを使用してサーバが同期に成功したら、以前のデータベースを格納していたフォルダーを削除できます。また、ハードウェア障害、特にディスクとRAMの障害を確認することもお勧めします。 ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [ピアプロトコル](../../concepts/networks-and-servers/peer-protocol.md) - [技術に関するよくある質問](/about/faq.md) - **チュートリアル:** diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md b/@i18n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md index 899cd7ea58..984a5f6546 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md @@ -2,9 +2,9 @@ html: server-is-amendment-blocked.html parent: troubleshoot-the-rippled-server.html seo: - description: Amendmentによる変更を実行できないサーバーのトラブルシューティング + description: Amendmentによる変更を実行できないサーバのトラブルシューティング labels: - - コアサーバー + - コアサーバ --- # rippledサーバがAmendmentブロックされた @@ -27,7 +27,7 @@ Amendmentブロックされたサーバは、レジャーの有効性を判断 } ``` -次の`rippled`ログメッセージは、サーバーがAmendmentブロックされていることを示しています。 +次の`rippled`ログメッセージは、サーバがAmendmentブロックされていることを示しています。 ``` 2018-Feb-12 19:38:30 LedgerMaster:ERR One or more unsupported amendments activated: server blocked. diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/server-wont-start.md b/@i18n/ja/docs/infrastructure/troubleshooting/server-wont-start.md index 9b11e6bec3..25e133c897 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/server-wont-start.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/server-wont-start.md @@ -2,13 +2,13 @@ html: server-wont-start.html parent: troubleshoot-the-rippled-server.html seo: - description: rippledサーバーが起動しない原因となると思われる問題とその解決方法です。 + description: rippledサーバが起動しない原因となると思われる問題とその解決方法です。 labels: - - コアサーバー + - コアサーバ --- -# rippledサーバーが起動しない +# rippledサーバが起動しない -このページでは、[`rippled`サーバー](../../concepts/networks-and-servers/index.md)が起動しない際に考えられる原因とその修正方法を説明します。 +このページでは、[`rippled`サーバ](../../concepts/networks-and-servers/index.md)が起動しない際に考えられる原因とその修正方法を説明します。 以下の手順では、サポートされているプラットフォームに[`rippled`がインストール](../installation/index.md)されていることを前提としています。 @@ -103,7 +103,7 @@ Aborted (core dumped) ## データベースパスを作成できない -`rippled`が起動時にクラッシュし、以下のようなエラーが出力される場合は、その構成ファイルの`[database_path]`への書き込み権限がサーバーにありません。 +`rippled`が起動時にクラッシュし、以下のようなエラーが出力される場合は、その構成ファイルの`[database_path]`への書き込み権限がサーバにありません。 ```text Loading: "/home/rippled/.config/ripple/rippled.cfg" @@ -124,7 +124,7 @@ Aborted (core dumped) ## 状態DBエラー -`rippled`サーバーの状態データベースが破損している場合に、以下のエラーが発生する可能性があります。これは、予期しないシャットダウンが行われた場合、またはデータベースのタイプをRocksDBからNuDBに変更したが構成ファイルの`path`設定と`[database_path]`設定を変更しなかった場合に発生する可能性があります。 +`rippled`サーバの状態データベースが破損している場合に、以下のエラーが発生する可能性があります。これは、予期しないシャットダウンが行われた場合、またはデータベースのタイプをRocksDBからNuDBに変更したが構成ファイルの`path`設定と`[database_path]`設定を変更しなかった場合に発生する可能性があります。 ```text 2018-Aug-21 23:06:38.675117810 SHAMapStore:ERR state db error: @@ -148,7 +148,7 @@ mv /var/lib/rippled/db /var/lib/rippled/db-bak rm -r /var/lib/rippled/db ``` -**ヒント:** 一般に`rippled`データベースは安全に削除できます。これは、個々のサーバーはXRP Ledgerネットワーク内の他のサーバーからレジャー履歴を再ダウンロードできるためです。 +**ヒント:** 一般に`rippled`データベースは安全に削除できます。これは、個々のサーバはXRP Ledgerネットワーク内の他のサーバからレジャー履歴を再ダウンロードできるためです。 あるいは、構成ファイルでデータベースのパスを変更できます。例: @@ -170,7 +170,7 @@ path=/var/lib/rippled/custom_nudb_path Terminating thread rippled: main: unhandled St13runtime_error 'online_delete must not be less than ledger_history (currently 3000) ``` -`[ledger_history]`設定は、サーバーが埋め戻す履歴のレジャー数を表します。`online_delete`フィールド(`[node_db]`スタンザ)は、古い履歴を削除するときに維持する履歴のレジャー数を示します。サーバーがダウンロードしようとしている履歴レジャーを削除しないようにするため、`online_delete`の値は`[ledger_history]`以上でなければなりません。 +`[ledger_history]`設定は、サーバが埋め戻す履歴のレジャー数を表します。`online_delete`フィールド(`[node_db]`スタンザ)は、古い履歴を削除するときに維持する履歴のレジャー数を示します。サーバがダウンロードしようとしている履歴レジャーを削除しないようにするため、`online_delete`の値は`[ledger_history]`以上でなければなりません。 この問題を修正するには、`rippled.cfg`ファイルを編集し、`[ledger_history]`オプションまたは`online_delete`オプションのいずれかを変更または削除します。(`[ledger_history]`を省略すると、デフォルトの256レジャーバージョンに設定されるので、`online_delete`を残して指定する場合は256よりも大きな値にする必要があります。`online_delete`を省略すると、古いレジャーバージョンの自動削除が無効になります。) @@ -198,7 +198,7 @@ Terminating thread rippled: main: unhandled St13runtime_error 'shard path missin ## サポート対象外のシャードストアータイプ: RocksDB -RocksDBは、[履歴シャーディング](../configuration/data-retention/history-sharding.md)のバックエンドとしてサポートされなくなりました。RocksDBシャードストアーを定義している既存の構成がある場合は、サーバーが起動に失敗します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.3.1" %}新規: rippled 1.3.1{% /badge %} +RocksDBは、[履歴シャーディング](../configuration/data-retention/history-sharding.md)のバックエンドとしてサポートされなくなりました。RocksDBシャードストアーを定義している既存の構成がある場合は、サーバが起動に失敗します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.3.1" %}新規: rippled 1.3.1{% /badge %} この場合、log startupコマンドの直後にプロセスが終了し、出力ログの早い段階で次のようなメッセージが表示されます。 @@ -207,7 +207,7 @@ ShardStore:ERR Unsupported shard store type: RocksDB ``` -この問題を修正するには、以下のいずれかを行ってからサーバーを再起動します。 +この問題を修正するには、以下のいずれかを行ってからサーバを再起動します。 - 代わりにNuDBを使用するようにシャードストアーを変更します。 - 履歴シャーディングを無効にします。 @@ -216,7 +216,7 @@ ShardStore:ERR Unsupported shard store type: RocksDB ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [技術に関するよくある質問](/about/faq.md) - **チュートリアル:** - [ログメッセージについて](understanding-log-messages.md) diff --git a/@i18n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md b/@i18n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md index da57803404..ded819fc5a 100644 --- a/@i18n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md +++ b/@i18n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md @@ -4,17 +4,17 @@ parent: troubleshoot-the-rippled-server.html seo: description: デバッグログの警告メッセージとエラーメッセージを解釈して対応します。 labels: - - コアサーバー + - コアサーバ --- # ログメッセージについて -以下のセクションでは、[`rippled`サーバー](../../concepts/networks-and-servers/index.md)のデバッグログに出力される最も一般的なログメッセージタイプとその解釈を説明します。 +以下のセクションでは、[`rippled`サーバ](../../concepts/networks-and-servers/index.md)のデバッグログに出力される最も一般的なログメッセージタイプとその解釈を説明します。 これは、`rippled`の[問題を診断する](diagnosing-problems.md)上で重要なステップです。 ## クラッシュ -ログに記録されたランタイムエラーのメッセージは、サーバーがクラッシュしたことを示している可能性があります。このようなメッセージは通常、以下の例に示すいずれかのメッセージで始まります。 +ログに記録されたランタイムエラーのメッセージは、サーバがクラッシュしたことを示している可能性があります。このようなメッセージは通常、以下の例に示すいずれかのメッセージで始まります。 ``` Throw @@ -24,20 +24,20 @@ Throw Terminating thread rippled: main: unhandled St13runtime_error ``` -サーバーが起動時に常にクラッシュする場合は、[サーバーが起動しない](server-wont-start.md)で考えられる原因を参照してください。 +サーバが起動時に常にクラッシュする場合は、[サーバが起動しない](server-wont-start.md)で考えられる原因を参照してください。 -サーバーが稼働中にランダムにクラッシュする場合、または特定のコマンドを実行するとクラッシュする場合は、`rippled`が最新バージョンに[更新](../installation/index.md)されていることを確認してください。最新バージョンに更新済で、サーバーがクラッシュする場合は、以下の点を確認してください。 +サーバが稼働中にランダムにクラッシュする場合、または特定のコマンドを実行するとクラッシュする場合は、`rippled`が最新バージョンに[更新](../installation/index.md)されていることを確認してください。最新バージョンに更新済で、サーバがクラッシュする場合は、以下の点を確認してください。 -- サーバーのメモリーが不足していませんか。一部のシステムでは、OOM(Out Of Memory)Killerやその他の監視プロセスによって`rippled`が終了されることがあります。 -- サーバーが共有環境で稼働している場合、他のユーザーや管理者によってマシンまたはサービスが再起動されますか。たとえば、一部のホステッドプロバイダーは、長期にわたって共有マシンのリソースを大量に消費するサービスを自動的に終了します。 -- サーバーは`rippled`を実行するための[最小要件](../installation/system-requirements.md)を満たしていますか。[本番環境サーバーに関する推奨事項](../installation/system-requirements.md#推奨される仕様)を適用していますか。 +- サーバのメモリーが不足していませんか。一部のシステムでは、OOM(Out Of Memory)Killerやその他の監視プロセスによって`rippled`が終了されることがあります。 +- サーバが共有環境で稼働している場合、他のユーザーや管理者によってマシンまたはサービスが再起動されますか。たとえば、一部のホステッドプロバイダーは、長期にわたって共有マシンのリソースを大量に消費するサービスを自動的に終了します。 +- サーバは`rippled`を実行するための[最小要件](../installation/system-requirements.md)を満たしていますか。[本番環境サーバに関する推奨事項](../installation/system-requirements.md#推奨される仕様)を適用していますか。 上記のいずれにも該当しない場合は、その問題をセキュリティ上重要なバグとしてRippleに報告してください。Rippleでクラッシュを再現できる場合は、報奨を受領できる可能性があります。詳細はを参照してください。 ## Already validated sequence at or past -以下のようなログメッセージが出力される場合は、サーバーが異なるレジャーインデックスの検証を順不同で受信しています。 +以下のようなログメッセージが出力される場合は、サーバが異なるレジャーインデックスの検証を順不同で受信しています。 ```text 2018-Aug-28 22:55:58.316094260 Validations:WRN Val for 2137ACEFC0D137EFA1D84C2524A39032802E4B74F93C130A289CD87C9C565011 trusted/full from nHUeUNSn3zce2xQZWNghQvd9WRH6FWEnCBKYVJu2vAizMxnXegfJ signing key n9KcRZYHLU9rhGVwB9e4wEMYsxXvUfgFxtmX25pc1QPNgweqzQf5 already validated sequence at or past 12133663 src=1 @@ -45,14 +45,14 @@ Terminating thread rippled: main: unhandled St13runtime_error この種類のメッセージが時折発生しても通常は問題ありません。この種類のメッセージが同じ送信バリデータで頻繁に発生する場合は、以下のような問題がある可能性があります(可能性の高いものから順に示しています)。 -- メッセージを書き込むサーバーにネットワークの問題がある。 +- メッセージを書き込むサーバにネットワークの問題がある。 - メッセージに表示されているバリデータにネットワークの問題がある。 - メッセージに表示されているバリデータが悪意のある振る舞いをしている。 ## Connection reset by peer -以下のメッセージは、ピア`rippled`サーバーによって接続が閉じられたことを示します。 +以下のメッセージは、ピア`rippled`サーバによって接続が閉じられたことを示します。 ```text 2018-Aug-28 22:55:41.738765510 Peer:WRN [012] onReadMessage: Connection reset by peer @@ -63,7 +63,7 @@ Terminating thread rippled: main: unhandled St13runtime_error このようなメッセージが同時に大量に出力される場合は、以下のような問題がある可能性があります。 - 1つ以上の特定のピアへのインターネット接続が切断されている。 -- サーバーからのリクエストでピアに過剰な負担がかかり、ピアがサーバーをドロップした。 +- サーバからのリクエストでピアに過剰な負担がかかり、ピアがサーバをドロップした。 ## InboundLedger 11 timeouts for ledger @@ -72,9 +72,9 @@ Terminating thread rippled: main: unhandled St13runtime_error InboundLedger:WRN 11 timeouts for ledger 8265938 ``` -これは、サーバーがそのピアに対して特定のレジャーデータをリクエストする際に問題が発生していることを示しています。[レジャーインデックス](../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)が、[server_infoメソッド][]により報告される最新の検証済みレジャーのインデックスよりもかなり小さい場合は、サーバーが[履歴シャード](../configuration/data-retention/history-sharding.md)のダウンロード中である可能性があります。 +これは、サーバがそのピアに対して特定のレジャーデータをリクエストする際に問題が発生していることを示しています。[レジャーインデックス](../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)が、[server_infoメソッド][]により報告される最新の検証済みレジャーのインデックスよりもかなり小さい場合は、サーバが[履歴シャード](../configuration/data-retention/history-sharding.md)のダウンロード中である可能性があります。 -これは厳密には問題ではありませんが、レジャー履歴を迅速に取得したい場合は、`[ips_fixed]`構成スタンザを追加または編集してからサーバーを再起動することで、すべての履歴が記録されたピアに接続するように`rippled`を構成できます。たとえば、すべての履歴が記録されたRippleのサーバーに常に接続するには、以下のようにします。 +これは厳密には問題ではありませんが、レジャー履歴を迅速に取得したい場合は、`[ips_fixed]`構成スタンザを追加または編集してからサーバを再起動することで、すべての履歴が記録されたピアに接続するように`rippled`を構成できます。たとえば、すべての履歴が記録されたRippleのサーバに常に接続するには、以下のようにします。 ``` [ips_fixed] @@ -84,13 +84,13 @@ s2.ripple.com 51235 ## InboundLedger Want hash -以下のようなログメッセージは、サーバーが他のサーバーにレジャーデータをリクエストしていることを示しています。 +以下のようなログメッセージは、サーバが他のサーバにレジャーデータをリクエストしていることを示しています。 ```text InboundLedger:WRN Want: 5AE53B5E39E6388DBACD0959E5F5A0FCAF0E0DCBA45D9AB15120E8CDD21E019B ``` -これは、サーバーの同期中、埋め戻し中、[履歴シャード](../configuration/data-retention/history-sharding.md)のダウンロード中は正常です。 +これは、サーバの同期中、埋め戻し中、[履歴シャード](../configuration/data-retention/history-sharding.md)のダウンロード中は正常です。 ## LoadMonitor:WRN Job @@ -112,9 +112,9 @@ InboundLedger:WRN Want: 5AE53B5E39E6388DBACD0959E5F5A0FCAF0E0DCBA45D9AB15120E8CD ジョブの実行に時間がかかり、そのジョブの完了を他のジョブが待っている場合に、この2種類のメッセージが同時に出力されることがよくあります。 -サーバー起動後の**最初の数分間**にこの種類のメッセージがいくつか発生することは**特に異常な動作ではありません**。 +サーバ起動後の**最初の数分間**にこの種類のメッセージがいくつか発生することは**特に異常な動作ではありません**。 -サーバーの起動後5分以上にわたってこれらのメッセージが継続する場合、特に`run`時間が1000msを大きく上回る場合は、**サーバーに十分なリソース(ディスクI/O、RAM、CPUなど)がない**可能性があります。この原因として、使用しているハードウェアの性能が不十分であること、または同じハードウェアで実行されている他のプロセスがリソースをめぐって`rippled`と競合していることが考えられます。(`rippled`とリソースをめぐって競合する可能性のある他のプロセスの例としては、スケジュール済みバックアップ、ウィルススキャナー、定期的なデータベースクリーナーなどがあります。) +サーバの起動後5分以上にわたってこれらのメッセージが継続する場合、特に`run`時間が1000msを大きく上回る場合は、**サーバに十分なリソース(ディスクI/O、RAM、CPUなど)がない**可能性があります。この原因として、使用しているハードウェアの性能が不十分であること、または同じハードウェアで実行されている他のプロセスがリソースをめぐって`rippled`と競合していることが考えられます。(`rippled`とリソースをめぐって競合する可能性のある他のプロセスの例としては、スケジュール済みバックアップ、ウィルススキャナー、定期的なデータベースクリーナーなどがあります。) 考えられるもう1つの原因として、回転型ハードディスクでNuDBの使用を試みていることが挙げられます。NuDBはソリッドステートドライブ(SSD)でのみ使用してください。`rippled`のデータベースには常にSSDストレージの使用が推奨されますが、RocksDBを使用する回転型ディスクで`rippled`を正常に稼働できる _可能性があります_ 。回転型ディスクを使用している場合は、`[node_db]`と`[shard_db]`(使用している場合)の両方がRocksDBを使用するように設定されていることを確認してください。例: @@ -169,7 +169,7 @@ ShardStore:ERR shard 2731: No such file or directory ShardStore:ERR shard 2236: No such file or directory ``` -これは、サーバーが新しい履歴シャードの取得を開始しようとしたものの、シャードを格納するための新しいディレクトリーを作成できなかったことを示します。このバグにより、rippled 1.3.1は新しいシャードを取得できません。[修正は近日リリース予定](https://github.com/XRPLF/rippled/pull/3014)です。 +これは、サーバが新しい履歴シャードの取得を開始しようとしたものの、シャードを格納するための新しいディレクトリーを作成できなかったことを示します。このバグにより、rippled 1.3.1は新しいシャードを取得できません。[修正は近日リリース予定](https://github.com/XRPLF/rippled/pull/3014)です。 このエラーは、上記のバグのほかに、`rippled`が**起動後**に基となるファイルシステムに書き込めなくなった場合にも起こります。考えられる原因は次のとおりです。 @@ -177,12 +177,12 @@ ShardStore:ERR shard 2236: No such file or directory - ファイルシステムがアンマウントされた - シャードフォルダーが削除された -**ヒント:** 一般的に、サービスが停止している場合は、`rippled`のデータベースファイルを削除しても安全ですが、サーバーの稼働中には決してデータベースファイルを削除しないでください。 +**ヒント:** 一般的に、サービスが停止している場合は、`rippled`のデータベースファイルを削除しても安全ですが、サーバの稼働中には決してデータベースファイルを削除しないでください。 ## Unable to determine hash of ancestor -以下のようなログメッセージは、サーバーがピアからの検証メッセージを認識するけれども、サーバーが基盤としている親レジャーバージョンを認識しない場合に発生します。これは、サーバーがネットワークの他の部分と同期していない場合に発生することがあります。 +以下のようなログメッセージは、サーバがピアからの検証メッセージを認識するけれども、サーバが基盤としている親レジャーバージョンを認識しない場合に発生します。これは、サーバがネットワークの他の部分と同期していない場合に発生することがあります。 ```text 2018-Aug-28 22:56:22.256065549 Validations:WRN Unable to determine hash of ancestor seq=3 from ledger hash=00B1E512EF558F2FD9A0A6C263B3D922297F26A55AEB56A009341A22895B516E seq=12133675 @@ -194,7 +194,7 @@ ShardStore:ERR shard 2236: No such file or directory ## View of consensus changed during open -以下のようなログメッセージが出力される場合は、サーバーがネットワークの他の部分と同期していません。 +以下のようなログメッセージが出力される場合は、サーバがネットワークの他の部分と同期していません。 ```text 2018-Aug-28 22:56:22.368460130 LedgerConsensus:WRN View of consensus changed during open status=open, mode=proposing @@ -219,7 +219,7 @@ NetworkOPs:WRN We are not running on the consensus ledger ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - [技術に関するよくある質問](/about/faq.md) - **チュートリアル:** - [問題の診断](diagnosing-problems.md) diff --git a/@i18n/ja/docs/references/data-api.md b/@i18n/ja/docs/references/data-api.md index 7bf485ba87..e67b614a9e 100644 --- a/@i18n/ja/docs/references/data-api.md +++ b/@i18n/ja/docs/references/data-api.md @@ -14,6 +14,6 @@ nav_omit: true ## Alternatives -アカウント残高や取引履歴のリクエストなど、ほとんどの一般的な操作では、[WebSocket接続](../tutorials/http-websocket-apis/get-started.md#websocket-api)または[JSON-RPC(HTTP POST)](../tutorials/http-websocket-apis/build-apps/get-started.md#json-rpc)を使用して、セルフホストまたは[公開XRP Ledgerサーバー](../tutorials/public-servers.md)にリクエストすることとができます。 +アカウント残高や取引履歴のリクエストなど、ほとんどの一般的な操作では、[WebSocket接続](../tutorials/http-websocket-apis/get-started.md#websocket-api)または[JSON-RPC(HTTP POST)](../tutorials/http-websocket-apis/build-apps/get-started.md#json-rpc)を使用して、セルフホストまたは[公開XRP Ledgerサーバ](../tutorials/public-servers.md)にリクエストすることとができます。 詳細については、[HTTP / WebSocket APIsの使用を開始する](../tutorials/http-websocket-apis/build-apps/get-started.md)ページをご覧ください。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md index 288ddb1b0f..9078991e9d 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md @@ -2,15 +2,15 @@ html: admin-api-methods.html parent: http-websocket-apis.html seo: - description: これらの管理APIメソッドを使用してrippledサーバーを管理します。 + description: これらの管理APIメソッドを使用してrippledサーバを管理します。 labels: - - コアサーバー + - コアサーバ --- # 管理APIメソッド -`rippled`サーバーと直接通信する際には管理APIメソッドを使用します。管理メソッドは、信頼できるサーバー運用担当者のみを対象としています。管理メソッドには、サーバーの管理、監視、デバッグのためのコマンドが含まれています。 +`rippled`サーバと直接通信する際には管理APIメソッドを使用します。管理メソッドは、信頼できるサーバ運用担当者のみを対象としています。管理メソッドには、サーバの管理、監視、デバッグのためのコマンドが含まれています。 -管理コマンドを使用できるのは、管理者として、`rippled.cfg`ファイルに指定されているホストとポートで`rippled`サーバーに接続している場合に限られます。デフォルトでは、コマンドラインクライアントが管理接続を使用します。`rippled`への接続についての詳細は、[rippled API入門](../../../tutorials/http-websocket-apis/build-apps/get-started.md)を参照してください。 +管理コマンドを使用できるのは、管理者として、`rippled.cfg`ファイルに指定されているホストとポートで`rippled`サーバに接続している場合に限られます。デフォルトでは、コマンドラインクライアントが管理接続を使用します。`rippled`への接続についての詳細は、[rippled API入門](../../../tutorials/http-websocket-apis/build-apps/get-started.md)を参照してください。 ## [キー生成メソッド](key-generation-methods/index.md) @@ -28,30 +28,30 @@ labels: * **[`can_delete`](logging-and-data-management-methods/can_delete.md)** - 特定レジャーまでのレジャーのオンライン削除を許可します。 * **[`download_shard`](logging-and-data-management-methods/download_shard.md)** - レジャー履歴の特定のシャードをダウンロードします。 * **[`ledger_cleaner`](logging-and-data-management-methods/ledger_cleaner.md)** - レジャークリーナーサービスが破損データを確認するように設定します。 -* **[`ledger_request`](logging-and-data-management-methods/ledger_request.md)** - ピアサーバーに対し特定のレジャーバージョンを照会します。 +* **[`ledger_request`](logging-and-data-management-methods/ledger_request.md)** - ピアサーバに対し特定のレジャーバージョンを照会します。 * **[`log_level`](logging-and-data-management-methods/log_level.md)** - ログの詳細レベルを取得または変更します。 * **[`logrotate`](logging-and-data-management-methods/logrotate.md)** - ログファイルを再度開きます。 -## [サーバー制御メソッド](server-control-methods/index.md) +## [サーバ制御メソッド](server-control-methods/index.md) -rippledサーバーの管理には、以下のメソッドを使用します。 +rippledサーバの管理には、以下のメソッドを使用します。 -* **[`connect`](peer-management-methods/connect.md)** - rippledサーバーを特定のピアに強制的に接続します。 +* **[`connect`](peer-management-methods/connect.md)** - rippledサーバを特定のピアに強制的に接続します。 * **[`ledger_accept`](server-control-methods/ledger_accept.md)** - スタンドアロンモードでレジャーを閉鎖し、次のレジャーに進みます。 -* **[`stop`](server-control-methods/stop.md)** - rippledサーバーをシャットダウンします。 +* **[`stop`](server-control-methods/stop.md)** - rippledサーバをシャットダウンします。 * **[`validation_seed`](server-control-methods/validation_seed.md)** - 検証に使用するキーを一時的に設定します。 ## [ステータスおよびデバッグメソッド](status-and-debugging-methods/index.md) -ネットワークとサーバーのステータスを確認するには、以下のメソッドを使用します。 +ネットワークとサーバのステータスを確認するには、以下のメソッドを使用します。 * **[`consensus_info`](status-and-debugging-methods/consensus_info.md)** - 発生したコンセンサスの状態に関する情報を取得します。 * **[`feature`](status-and-debugging-methods/feature.md)** - プロトコルAmendmentに関する情報を取得します。 -* **[`fetch_info`](status-and-debugging-methods/fetch_info.md)** - サーバーとネットワークの同期に関する情報を取得します。 -* **[`get_counts`](status-and-debugging-methods/get_counts.md)** - サーバー内部とメモリー使用状況に関する統計情報を取得します。 -* **[`peers`](peer-management-methods/peers.md)** - 接続しているピアサーバーに関する情報を取得します。 +* **[`fetch_info`](status-and-debugging-methods/fetch_info.md)** - サーバとネットワークの同期に関する情報を取得します。 +* **[`get_counts`](status-and-debugging-methods/get_counts.md)** - サーバ内部とメモリー使用状況に関する統計情報を取得します。 +* **[`peers`](peer-management-methods/peers.md)** - 接続しているピアサーバに関する情報を取得します。 * **[`print`](status-and-debugging-methods/print.md)** - 内部サブシステムに関する情報を取得します。 * **[`validators`](status-and-debugging-methods/validators.md)** - 現在のバリデータに関する情報を取得します。 * **[`validator_list_sites`](status-and-debugging-methods/validator_list_sites.md)** - バリデータリストを公開するサイトに関する情報を取得します。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md index 926566ec78..aa0bc57abb 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md @@ -2,21 +2,21 @@ html: validation_create.html parent: key-generation-methods.html seo: - description: rippledサーバーがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵を生成します。 + description: rippledサーバがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵を生成します。 labels: - セキュリティ - - コアサーバー + - コアサーバ --- # validation_create [[ソース]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/ValidationCreate.cpp "Source") -`validation_create`コマンドキーを使用して、[`rippled`サーバーがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵](../../../../concepts/networks-and-servers/peer-protocol.md#ノードキーペア)を生成します。[wallet_proposeメソッド][]と同様に、このメソッドでは適切なフォーマットで一連のキーが単に生成されるだけです。XRP Ledgerのデータやサーバー構成は変更されません。 +`validation_create`コマンドキーを使用して、[`rippled`サーバがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵](../../../../concepts/networks-and-servers/peer-protocol.md#ノードキーペア)を生成します。[wallet_proposeメソッド][]と同様に、このメソッドでは適切なフォーマットで一連のキーが単に生成されるだけです。XRP Ledgerのデータやサーバ構成は変更されません。 _`validation_create`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ -サーバーを設定することにより、生成されたキーペアを検証の署名(検証キーペア)に使用するか、または通常のピアツーピア通信の署名([ノードキーペア](../../../../concepts/networks-and-servers/peer-protocol.md#ノードキーペア))に使用するかを指定できます。 +サーバを設定することにより、生成されたキーペアを検証の署名(検証キーペア)に使用するか、または通常のピアツーピア通信の署名([ノードキーペア](../../../../concepts/networks-and-servers/peer-protocol.md#ノードキーペア))に使用するかを指定できます。 -**ヒント:** 堅牢なバリデータを設定するには、`validator-keys`ツール(`rippled` RPMに付属)を使用してバリデータトークン(ローテーション可能)とオフラインマスターキーを生成してください。詳細は、[rippledサーバーで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバーで検証を有効化)を参照してください。 +**ヒント:** 堅牢なバリデータを設定するには、`validator-keys`ツール(`rippled` RPMに付属)を使用してバリデータトークン(ローテーション可能)とオフラインマスターキーを生成してください。詳細は、[rippledサーバで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバで検証を有効化)を参照してください。 ### リクエストのフォーマット diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md index e43a17246d..b396eb6205 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md @@ -9,7 +9,7 @@ labels: # can_delete [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/CanDelete.cpp "Source") -`can_delete`メソッドは[指示による削除が有効なオンライン削除](../../../../infrastructure/configuration/data-retention/online-deletion.md#指示による削除)を使用する`rippled`サーバーに削除が可能のレジャーバージョンを通知します。指定したレジャーバージョン以前が削除可能になります。指示による削除が有効ではない場合、このメソッドは何も行いません。 +`can_delete`メソッドは[指示による削除が有効なオンライン削除](../../../../infrastructure/configuration/data-retention/online-deletion.md#指示による削除)を使用する`rippled`サーバに削除が可能のレジャーバージョンを通知します。指定したレジャーバージョン以前が削除可能になります。指示による削除が有効ではない場合、このメソッドは何も行いません。 _`can_delete`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ @@ -55,7 +55,7 @@ rippled can_delete 11320417 | `Field` | 型 | 説明 | |:-------------|:------------------|:------------------------------------------| -| `can_delete` | 文字列 または整数 | _(省略可)_ 削除可能な最大レジャーバージョンの[レジャーインデックス][]。特殊ケース`never`を指定すると、オンライン削除が無効になります。特殊ケース`always`を指定すると、指示による削除が無効な場合と同様に、自動オンライン削除が有効になります。特殊ケース`now`を指定すると、設定されている`online_delete`値に一致するかまたはこの値を超える次の検証済みレジャーで、オンライン削除が1回実行されます。省略すると、サーバーは変更を行いません(ただし現在の`can_delete`の値でレスポンスします)。 | +| `can_delete` | 文字列 または整数 | _(省略可)_ 削除可能な最大レジャーバージョンの[レジャーインデックス][]。特殊ケース`never`を指定すると、オンライン削除が無効になります。特殊ケース`always`を指定すると、指示による削除が無効な場合と同様に、自動オンライン削除が有効になります。特殊ケース`now`を指定すると、設定されている`online_delete`値に一致するかまたはこの値を超える次の検証済みレジャーで、オンライン削除が1回実行されます。省略すると、サーバは変更を行いません(ただし現在の`can_delete`の値でレスポンスします)。 | ### レスポンスのフォーマット @@ -71,9 +71,9 @@ rippled can_delete 11320417 - [汎用エラータイプ][]のすべて。 - `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -- `lgrNotFound` リクエストの`can_delete`フィールドに指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 -- `notEnabled` - オンライン削除または指示による削除のいずれかがサーバーの設定で有効になっていない場合。 -- `notReady` - サーバーは現在オンライン削除を実行する準備ができていません。これは通常、サーバーが起動したが、検証済みレジャーをまだ取得していないことを意味します。 +- `lgrNotFound` リクエストの`can_delete`フィールドに指定されているレジャーが存在しないか、存在しているがサーバにはありません。 +- `notEnabled` - オンライン削除または指示による削除のいずれかがサーバの設定で有効になっていない場合。 +- `notReady` - サーバは現在オンライン削除を実行する準備ができていません。これは通常、サーバが起動したが、検証済みレジャーをまだ取得していないことを意味します。 ## 参照項目 diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md index 10dc7af2b6..6540182fa2 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md @@ -10,7 +10,7 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/CrawlShards.cpp "Source") -使用可能な[履歴レジャーデータのシャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)に関するピアサーバーからの情報をリクエストします。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} +使用可能な[履歴レジャーデータのシャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)に関するピアサーバからの情報をリクエストします。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} _`crawl_shards`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ @@ -52,10 +52,10 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな | `Field` | 型 | 説明 | |:---------|:--------|:--------------------------------------------------------| -| `pubkey` | ブール値 | _(省略可)_ `true`の場合、レスポンスには、クロールされたサーバーのノード公開鍵(ピアツーピア通信用)が含まれます。デフォルトは`false`です。 | +| `pubkey` | ブール値 | _(省略可)_ `true`の場合、レスポンスには、クロールされたサーバのノード公開鍵(ピアツーピア通信用)が含まれます。デフォルトは`false`です。 | | `limit` | 数値 | _(省略可)_ 検索の深さを示すホップ数。デフォルトは0で、ダイレクトピアのみを検索します。`1`を制限値にすると、ピアのピアも検索します。最大値は`3`です。 | -**注意:** `limit`が増加すると、検索される可能性のあるピアの数は、指数関数的に増加します。2または3を制限値にすると、サーバーがAPIリクエストにレスポンスするのに数秒かかる場合があります。 +**注意:** `limit`が増加すると、検索される可能性のあるピアの数は、指数関数的に増加します。2または3を制限値にすると、サーバがAPIリクエストにレスポンスするのに数秒かかる場合があります。 ### レスポンスのフォーマット @@ -117,12 +117,12 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな | `Field` | 型 | 説明 | |:------------------|:-------|:------------------------------------------------| -| `complete_shards` | 文字列 | _(省略可)_ ローカルサーバーで利用可能な[履歴シャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)の範囲。これは、空の文字列か、または連続していない範囲である場合があります。たとえば、`1-2,5,7-9`は、シャード1、2、5、7、8、9が利用可能であることを示します。このサーバーで履歴シャーディングが有効になっていない場合は省略されます。 | +| `complete_shards` | 文字列 | _(省略可)_ ローカルサーバで利用可能な[履歴シャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)の範囲。これは、空の文字列か、または連続していない範囲である場合があります。たとえば、`1-2,5,7-9`は、シャード1、2、5、7、8、9が利用可能であることを示します。このサーバで履歴シャーディングが有効になっていない場合は省略されます。 | | `peers` | 配列 | 各ピアが使用可能な履歴シャードを表す**ピアシャードオブジェクト**のリスト(以下を参照)。 | #### ピアシャードオブジェクト -レスポンスの`peers`配列のメンバーはそれぞれ、ピアツーピアネットワーク内の1つのサーバーを表すオブジェクトです。リストには、少なくとも1つの完全な[履歴シャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)が使用可能なピアのみが含まれます。配列の各オブジェクトには以下のフィールドが含まれます。 +レスポンスの`peers`配列のメンバーはそれぞれ、ピアツーピアネットワーク内の1つのサーバを表すオブジェクトです。リストには、少なくとも1つの完全な[履歴シャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)が使用可能なピアのみが含まれます。配列の各オブジェクトには以下のフィールドが含まれます。 | `Field` | 型 | 説明 | diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md index 5f674e9ebc..88215e4551 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md @@ -9,13 +9,13 @@ labels: # download_shard [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/DownloadShard.cpp "Source") -サーバーに対し、外部ソースから特定の[履歴レジャーデータのシャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)をダウンロードするように指示します。`rippled`サーバーで[履歴シャードが保管されるように設定する](../../../../infrastructure/configuration/data-retention/configure-history-sharding.md)必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %} +サーバに対し、外部ソースから特定の[履歴レジャーデータのシャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)をダウンロードするように指示します。`rippled`サーバで[履歴シャードが保管されるように設定する](../../../../infrastructure/configuration/data-retention/configure-history-sharding.md)必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %} _`download_shard`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ 外部ソースからHTTPSを使用してシャードが[lz4圧縮](https://lz4.github.io/lz4/) [tarアーカイブ](https://en.wikipedia.org/wiki/Tar_(computing))として提供される必要があります。アーカイブには、NuDB形式のシャードディレクトリとデータファイルが含まれている必要があります。 -通常、このメソッドを使用してシャードをダウンロードしてインポートすれば、ピアツーピアネットワークからシャードを個別に取得するよりも短い時間で取得できます。また、サーバーから提供される特定範囲のシャードまたはシャードのセットを選択する場合にもこのメソッドを使用できます。 +通常、このメソッドを使用してシャードをダウンロードしてインポートすれば、ピアツーピアネットワークからシャードを個別に取得するよりも短い時間で取得できます。また、サーバから提供される特定範囲のシャードまたはシャードのセットを選択する場合にもこのメソッドを使用できます。 ### リクエストのフォーマット @@ -69,7 +69,7 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな | `Field` | 型 | 説明 | |:--------|:-------|:----------------------------------------------------------| | `index` | 数値 | 取得するシャードのインデックス。本番環境のXRP Ledgerでは、最も古いシャードのインデックスは1であり、このシャードにはレジャー32750~32768が含まれています。次のシャードのインデックスは2であり、このシャードにはレジャー32769~49152が含まれています。 | -| `url` | 文字列 | このシャードをダウンロードできるURL。このURLは`https://`か`http://`かで始まり`.tar.lz4`(大文字小文字の区別なし)で終わる必要があります。このダウンロードを提供するWebサーバーは、信頼できる認証局(CA)によって署名された有効なTLS証明書を使用する必要があります。(`rippled`はオペレーティングシステムのCAストアーを使用します。) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | +| `url` | 文字列 | このシャードをダウンロードできるURL。このURLは`https://`か`http://`かで始まり`.tar.lz4`(大文字小文字の区別なし)で終わる必要があります。このダウンロードを提供するWebサーバは、信頼できる認証局(CA)によって署名された有効なTLS証明書を使用する必要があります。(`rippled`はオペレーティングシステムのCAストアーを使用します。) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | ### レスポンスのフォーマット @@ -110,13 +110,13 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな |:----------|:-------|:--------------------------------------------------------| | `message` | 文字列 | このリクエストに対応して実行されたアクションを説明するメッセージ。 | -**ヒント:** サーバーで使用可能なシャードを確認するには、[crawl_shardsメソッド[]を使用します。または、シャードストアーとして設定されたロケーションのサブフォルダー(`rippled.cfg`の`[shard_db]`の`path`パラメーター)を調べます。フォルダーには、シャードの番号に対応する名前が付いています。これらのフォルダーの1つに、シャードが未完了であることを示す`control.txt`ファイルが含まれていることがあります。 +**ヒント:** サーバで使用可能なシャードを確認するには、[crawl_shardsメソッド[]を使用します。または、シャードストアーとして設定されたロケーションのサブフォルダー(`rippled.cfg`の`[shard_db]`の`path`パラメーター)を調べます。フォルダーには、シャードの番号に対応する名前が付いています。これらのフォルダーの1つに、シャードが未完了であることを示す`control.txt`ファイルが含まれていることがあります。 ### 考えられるエラー - いずれかの[汎用エラータイプ][]。 -- `notEnabled` - サーバーでシャードストアーを使用するように設定されていません。 -- `tooBusy` - サーバーはすでに、ピアツーピアネットワークから、または以前の`download_shard`リクエストの結果として、シャードをダウンロード中です。 +- `notEnabled` - サーバでシャードストアーを使用するように設定されていません。 +- `tooBusy` - サーバはすでに、ピアツーピアネットワークから、または以前の`download_shard`リクエストの結果として、シャードをダウンロード中です。 - `invalidParams` - リクエストで1つ以上の必須フィールドが省略されていたか、または指定されたフィールドのデータタイプが誤っています。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md index 18e58bcd5c..636ad1ca70 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md @@ -2,14 +2,14 @@ html: ledger_request.html parent: logging-and-data-management-methods.html seo: - description: サーバーに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。 + description: サーバに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。 labels: - データ保持 --- # ledger_request [[ソース]](https://github.com/XRPLF/rippled/blob/e980e69eca9ea843d200773eb1f43abe3848f1a0/src/ripple/rpc/handlers/LedgerRequest.cpp "Source") -`ledger_request`コマンドは、サーバーに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。これは、サーバーが直接接続しているピアの1つにそのレジャーが存在している場合にのみ機能します。場合によっては、レジャーを完全に取得するにはこのコマンドを繰り返し実行する必要があります。 +`ledger_request`コマンドは、サーバに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。これは、サーバが直接接続しているピアの1つにそのレジャーが存在している場合にのみ機能します。場合によっては、レジャーを完全に取得するにはこのコマンドを繰り返し実行する必要があります。 *`ledger_request`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* @@ -47,9 +47,9 @@ rippled ledger_request 13800000 ### レスポンスのフォーマット -レスポンスは[標準フォーマット][]に従っています。ただし、_`rippled`サーバーに対してレジャーの取得開始を正常に指示できた場合でも_、指定されたレジャーがない場合には失敗を示すレスポンスがリクエストから返されます。 +レスポンスは[標準フォーマット][]に従っています。ただし、_`rippled`サーバに対してレジャーの取得開始を正常に指示できた場合でも_、指定されたレジャーがない場合には失敗を示すレスポンスがリクエストから返されます。 -**注記:** レジャーを取得するには、rippledサーバーのダイレクトピアの履歴にそのレジャーが含まれている必要があります。どのピアにもリクエストされたレジャーがない場合は、[connectメソッド][]または構成ファイルの`fixed_ips`セクションを使用して、`s2.ripple.com`にあるRippleのすべての履歴が記録されるサーバーを追加すれば、`ledger_request`リクエストを再度実行できます。 +**注記:** レジャーを取得するには、rippledサーバのダイレクトピアの履歴にそのレジャーが含まれている必要があります。どのピアにもリクエストされたレジャーがない場合は、[connectメソッド][]または構成ファイルの`fixed_ips`セクションを使用して、`s2.ripple.com`にあるRippleのすべての履歴が記録されるサーバを追加すれば、`ledger_request`リクエストを再度実行できます。 失敗した場合のレスポンスには、レジャーの取得状況が示されます。成功した場合のレスポンスには、[ledgerメソッド][]に類似したフォーマットでレジャーの情報が含まれます。 @@ -164,28 +164,28 @@ Connecting to 127.0.0.1:5005 3つのレスポンスのフォーマットは次のとおりです。 1. `lgrNotFound`エラーが返された場合、レスポンスの`acquiring`フィールドには、ピアツーピアネットワークからのレジャー取得状況を示す[レジャーリクエストオブジェクト](#レジャーリクエストオブジェクト)が指定されています。 -2. サーバーが現在データを取得中であるとレスポンスに示される場合、その結果の本文として、ピアツーピアネットワークからのレジャー取得状況を示す[レジャーリクエストオブジェクト](#レジャーリクエストオブジェクト)が表示されます。 +2. サーバが現在データを取得中であるとレスポンスに示される場合、その結果の本文として、ピアツーピアネットワークからのレジャー取得状況を示す[レジャーリクエストオブジェクト](#レジャーリクエストオブジェクト)が表示されます。 3. レジャーが完全に利用可能な場合、レスポンスには[レジャーヘッダー](../../../protocol/ledger-data/ledger-header.md)が表示されます。 ### レジャーリクエストオブジェクト -サーバーでレジャーの取得操作が進行中であり、まだ完了していない場合は、`rippled`サーバーはレジャー取得状況を示すレジャーリクエストオブジェクトを返します。このオブジェクトのフィールドを次に示します。 +サーバでレジャーの取得操作が進行中であり、まだ完了していない場合は、`rippled`サーバはレジャー取得状況を示すレジャーリクエストオブジェクトを返します。このオブジェクトのフィールドを次に示します。 | `Field` | 型 | 説明 | |:----------------------------|:-----------------|:----------------------------| -| `hash` | 文字列 | (省略される場合があります)リクエストされるレジャーの[ハッシュ][](サーバーがこのハッシュを認識している場合)。 | -| `have_header` | ブール値 | リクエストされたレジャーのヘッダーセクションがサーバーにあるかどうか。 | -| `have_state` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全な状態データがサーバーにあるかどうか。 | -| `have_transactions` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全なトランザクションセットがサーバーにあるかどうか。 | -| `needed_state_hashes` | 文字列の配列 | (省略される場合があります)サーバーが取得する必要がある完全な状態データ内のオブジェクトのハッシュ(最大16個)。 | -| `needed_transaction_hashes` | 文字列の配列 | (省略される場合があります)サーバーが取得する必要があるトランザクションセットのオブジェクトのハッシュ(最大16個)。 | -| `peers` | 数値 | このレジャーを見つけるためにサーバーが照会するピアの数。 | +| `hash` | 文字列 | (省略される場合があります)リクエストされるレジャーの[ハッシュ][](サーバがこのハッシュを認識している場合)。 | +| `have_header` | ブール値 | リクエストされたレジャーのヘッダーセクションがサーバにあるかどうか。 | +| `have_state` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全な状態データがサーバにあるかどうか。 | +| `have_transactions` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全なトランザクションセットがサーバにあるかどうか。 | +| `needed_state_hashes` | 文字列の配列 | (省略される場合があります)サーバが取得する必要がある完全な状態データ内のオブジェクトのハッシュ(最大16個)。 | +| `needed_transaction_hashes` | 文字列の配列 | (省略される場合があります)サーバが取得する必要があるトランザクションセットのオブジェクトのハッシュ(最大16個)。 | +| `peers` | 数値 | このレジャーを見つけるためにサーバが照会するピアの数。 | | `timeouts` | 数値 | これまでにこのレジャーの取得操作がタイムアウトした回数。 | ### 考えられるエラー * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。このエラーは、指定したレジャーインデックスが現在進行中のレジャーのインデックス以上である場合にも発生します。 -* `lgrNotFound` - レジャーがまだ利用可能ではない場合。これは、サーバーがレジャーの取得を開始していますが、リクエストされたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコード`ledgerNotFound`が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1] +* `lgrNotFound` - レジャーがまだ利用可能ではない場合。これは、サーバがレジャーの取得を開始していますが、リクエストされたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコード`ledgerNotFound`が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md index 528c61711b..b95d218891 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md @@ -9,7 +9,7 @@ labels: # log_level [[ソース]](https://github.com/XRPLF/rippled/blob/155fcdbcd0b4927152892c8c8be01d9cf62bed68/src/ripple/rpc/handlers/LogLevel.cpp "Source") -`log_level`コマンドは`rippled`サーバーのログ詳細レベルを変更するか、各ログメッセージカテゴリー(_パーティション_)の現在のログレベルを返します。 +`log_level`コマンドは`rippled`サーバのログ詳細レベルを変更するか、各ログメッセージカテゴリー(_パーティション_)の現在のログレベルを返します。 _`log_level`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md index fff402b880..90ecc65bad 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md @@ -33,7 +33,7 @@ labels: } ``` -保持するログの量に応じて、`minsize`や`rotate`などのパラメーターを構成できます。`rippled.cfg`ファイルの`log_level`設定を使用して、サーバーのログの詳細度を設定します。このサンプルスクリプトは標準の`log_level`に基づいており、約2週間分のログを圧縮形式で保存します。 +保持するログの量に応じて、`minsize`や`rotate`などのパラメーターを構成できます。`rippled.cfg`ファイルの`log_level`設定を使用して、サーバのログの詳細度を設定します。このサンプルスクリプトは標準の`log_level`に基づいており、約2週間分のログを圧縮形式で保存します。 `rippled` 1.3以降、スクリプト`/etc/logrotate.d/rippled`は、DEBおよびRPMパッケージによって自動的にインストールされます。この設定は、必要に応じて変更できます。パッケージのアップグレード時に変更内容が上書きされることはありません。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md index 43bfb58f58..cd8871cc64 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md @@ -2,14 +2,14 @@ html: connect.html parent: peer-management-methods.html seo: - description: 特定のピアrippledサーバーに強制的に接続します。 + description: 特定のピアrippledサーバに強制的に接続します。 labels: - - コアサーバー + - コアサーバ --- # connect [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/Connect.cpp "Source") -`connect`コマンドは、`rippled`サーバーを特定のピア`rippled`サーバーに強制的に接続します。 +`connect`コマンドは、`rippled`サーバを特定のピア`rippled`サーバに強制的に接続します。 *`connect`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* @@ -55,7 +55,7 @@ rippled connect 192.170.145.88 51235 | `Field` | 型 | 説明 | |:--------|:-------|:----------------------------------------------------------| -| `ip` | 文字列 | 接続するサーバーのIPアドレス。 | +| `ip` | 文字列 | 接続するサーバのIPアドレス。 | | `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは**2459**です。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} | ### レスポンスのフォーマット diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md index 8e57700a62..cab85ecd72 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md @@ -6,7 +6,7 @@ metadata: --- # ピア管理メソッド -以下のメソッドを使用して、サーバーのピアツーピア接続を管理することができます。 +以下のメソッドを使用して、サーバのピアツーピア接続を管理することができます。 {% child-pages /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md index d890338fba..26006e9f41 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md @@ -2,14 +2,14 @@ html: peer_reservations_add.html parent: peer-management-methods.html seo: - description: 特定のピアサーバー用の予約済みスロットを追加します。 + description: 特定のピアサーバ用の予約済みスロットを追加します。 labels: - - コアサーバー + - コアサーバ --- # peer_reservations_add [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L36 "Source") -この{% code-page-name /%}メソッドは、XRP Ledger[ピアツーピアネットワーク](../../../../concepts/networks-and-servers/peer-protocol.md)内の特定のピアサーバーの予約済みスロットを追加または更新します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} +この{% code-page-name /%}メソッドは、XRP Ledger[ピアツーピアネットワーク](../../../../concepts/networks-and-servers/peer-protocol.md)内の特定のピアサーバの予約済みスロットを追加または更新します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} _{% code-page-name /%}メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ @@ -57,7 +57,7 @@ rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1Uz | `Field` | 型 | 説明 | |:--------------|:-------|:----------------------------------------------------| | `public_key` | 文字列 | [base58][]での予約を追加するピアリザベーションの[ノード公開鍵][] 。 | -| `description` | 文字列 | _(省略可)_ ピアリザベーションに関するカスタムの説明。64文字を超える部分は、再起動時にサーバーによって切り捨てられます。 | +| `description` | 文字列 | _(省略可)_ ピアリザベーションに関するカスタムの説明。64文字を超える部分は、再起動時にサーバによって切り捨てられます。 | diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md index 6328510d75..c69af5fd67 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md @@ -2,9 +2,9 @@ html: peer_reservations_del.html parent: peer-management-methods.html seo: - description: 特定のピアサーバー用の予約済みスロットを削除します。 + description: 特定のピアサーバ用の予約済みスロットを削除します。 labels: - - コアサーバー + - コアサーバ --- # peer_reservations_del diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md index 8560f4ea79..c392e19efd 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md @@ -2,9 +2,9 @@ html: peer_reservations_list.html parent: peer-management-methods.html seo: - description: 特定のピアサーバー用の予約済みスロットをリスト表示します。 + description: 特定のピアサーバ用の予約済みスロットをリスト表示します。 labels: - - コアサーバー + - コアサーバ --- # peer_reservations_list [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L116 "Source") diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md index db814dc2b0..e83f1f3583 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md @@ -2,14 +2,14 @@ html: peers.html parent: peer-management-methods.html seo: - description: ピアプロトコルでこのサーバーに現在接続されているその他のすべてのrippledサーバーのリストを返します。 + description: ピアプロトコルでこのサーバに現在接続されているその他のすべてのrippledサーバのリストを返します。 labels: - - コアサーバー + - コアサーバ --- # peers [[ソース]](https://github.com/XRPLF/rippled/blob/52f298f150fc1530d201d3140c80d3eaf781cb5f/src/ripple/rpc/handlers/Peers.cpp "Source") -`peers`コマンドは、[ピアプロトコル](../../../../concepts/networks-and-servers/peer-protocol.md)でこのサーバーに現在接続されているその他のすべての`rippled`サーバーのリスト(各サーバーの接続状況と同期状況を含む)を返します。 +`peers`コマンドは、[ピアプロトコル](../../../../concepts/networks-and-servers/peer-protocol.md)でこのサーバに現在接続されているその他のすべての`rippled`サーバのリスト(各サーバの接続状況と同期状況を含む)を返します。 *`peers`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* @@ -383,10 +383,10 @@ Connecting to 127.0.0.1:5005 | `Field` | 型 | 説明 | |:----------|:-------|:--------------------------------------------------------| -| `cluster` | オブジェクト | [クラスターとして構成されている](../../../../concepts/networks-and-servers/clustering.md)場合は、同じクラスター内の他の`rippled`サーバーの概要。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | +| `cluster` | オブジェクト | [クラスターとして構成されている](../../../../concepts/networks-and-servers/clustering.md)場合は、同じクラスター内の他の`rippled`サーバの概要。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | | `peers` | 配列 | peerオブジェクトからなる配列。 | -`cluster`オブジェクトの各フィールドは、該当する`rippled`サーバーの識別用キーペアの公開鍵です。(これは、[server_infoメソッド][]で当該サーバーから`pubkey_node`として返される値と同じです。)そのフィールドの内容は、以下のフィールドを持つオブジェクトです。 +`cluster`オブジェクトの各フィールドは、該当する`rippled`サーバの識別用キーペアの公開鍵です。(これは、[server_infoメソッド][]で当該サーバから`pubkey_node`として返される値と同じです。)そのフィールドの内容は、以下のフィールドを持つオブジェクトです。 | `Field` | 型 | 説明 | |:--------|:-------|:----------------------------------------------------------| @@ -399,19 +399,19 @@ Connecting to 127.0.0.1:5005 | `Field` | 型 | 説明 | |:-------------------|:--------|:----------------------------------------------| | `address` | 文字列 | このピアが接続しているIPアドレスとポート。 | -| `cluster` | ブール値 | (省略される場合があります)`true`の場合、現在のサーバーとピアサーバーは同じ`rippled`クラスターに含まれています。 | -| `name` | 文字列 | (省略される場合があります)ピアが同じクラスターに含まれている場合、この名前は構成ファイルで定義されているそのピアサーバーの表示名です。 | +| `cluster` | ブール値 | (省略される場合があります)`true`の場合、現在のサーバとピアサーバは同じ`rippled`クラスターに含まれています。 | +| `name` | 文字列 | (省略される場合があります)ピアが同じクラスターに含まれている場合、この名前は構成ファイルで定義されているそのピアサーバの表示名です。 | | `complete_ledgers` | 文字列 | ピア`rippled`で利用可能なレジャーバージョンのシーケンス番号を示す範囲式 | -| `inbound` | ブール値 | (省略される場合があります)`true`の場合は、ピアはローカルサーバーに接続しています。 | +| `inbound` | ブール値 | (省略される場合があります)`true`の場合は、ピアはローカルサーバに接続しています。 | | `latency` | 数値 | ピアへのネットワーク遅延(ミリ秒単位) | | `ledger` | 文字列 | 最後に閉鎖されたピアのレジャーのハッシュ。 | -| `load` | 数値 | ピアサーバーによるローカルサーバーへの負荷の測定値。この数値が大きいほど負荷が高くなります。(負荷の測定単位は正式には定義されていません。) | -| `protocol` | 文字列 | (省略される場合があります)ピアが使用しているプロトコルバージョン(ローカルサーバーのプロトコルバージョンと異なる場合)。 | +| `load` | 数値 | ピアサーバによるローカルサーバへの負荷の測定値。この数値が大きいほど負荷が高くなります。(負荷の測定単位は正式には定義されていません。) | +| `protocol` | 文字列 | (省略される場合があります)ピアが使用しているプロトコルバージョン(ローカルサーバのプロトコルバージョンと異なる場合)。 | | `public_key` | 文字列 | (省略される場合があります)ピアのメッセージの整合性の検証に使用できる公開鍵。これは、検証に使用する公開鍵とは異なりますが、フォーマットは同じです。 | -| `sanity` | 文字列 | (省略される場合があります)このピアが現行サーバーと同じルールとレジャーシーケンスに従っているかどうか。値が`insane`の場合、ピアは並列ネットワークの一部である可能性があります。値が`unknown`の場合、現行サーバーはピアに互換性があるかどうかを把握していません。 | +| `sanity` | 文字列 | (省略される場合があります)このピアが現行サーバと同じルールとレジャーシーケンスに従っているかどうか。値が`insane`の場合、ピアは並列ネットワークの一部である可能性があります。値が`unknown`の場合、現行サーバはピアに互換性があるかどうかを把握していません。 | | `status` | 文字列 | (省略される場合があります)ピアからの最新のステータスメッセージ。`connecting`、`connected`、`monitoring`、`validating`、`shutting`のいずれかです。 | -| `uptime` | 数値 | `rippled`サーバーがこのピアに継続して接続していた秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | -| `version` | 文字列 | (省略される場合があります)ピアサーバーの`rippled`バージョン番号 | +| `uptime` | 数値 | `rippled`サーバがこのピアに継続して接続していた秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | +| `version` | 文字列 | (省略される場合があります)ピアサーバの`rippled`バージョン番号 | ### 考えられるエラー diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md index d10d25a027..ea9c8a5ed0 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md @@ -6,7 +6,7 @@ metadata: --- # サーバ操作メソッド -以下のメソッドを使用して、rippledサーバーを管理することができます。 +以下のメソッドを使用して、rippledサーバを管理することができます。 {% child-pages /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md index 89b271c797..c1e5ce9275 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md @@ -2,14 +2,14 @@ html: ledger_accept.html parent: server-control-methods.html seo: - description: スタンドアロンモードでサーバーが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。 + description: スタンドアロンモードでサーバが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。 labels: - - コアサーバー + - コアサーバ --- # ledger_accept [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/LedgerAccept.cpp "Source") -`ledger_accept`メソッドは、サーバーが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。このメソッドはテスト専用であり、`rippled`サーバーがスタンドアロンモードで実行されている場合にのみ使用できます。 +`ledger_accept`メソッドは、サーバが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。このメソッドはテスト専用であり、`rippled`サーバがスタンドアロンモードで実行されている場合にのみ使用できます。 *`ledger_accept`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* @@ -64,6 +64,6 @@ rippled ledger_accept ### 考えられるエラー * [汎用エラータイプ][]のすべて。 -* `notStandAlone` - `rippled`サーバーが現在スタンドアロンモードで実行されていない場合。 +* `notStandAlone` - `rippled`サーバが現在スタンドアロンモードで実行されていない場合。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md index c4975e446b..41c64884de 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md @@ -2,14 +2,14 @@ html: stop.html parent: server-control-methods.html seo: - description: サーバーのグレースフルシャットダウンを行います。 + description: サーバのグレースフルシャットダウンを行います。 labels: - - コアサーバー + - コアサーバ --- # stop [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Stop.cpp "Source") -サーバーのグレースフルシャットダウンを行います。 +サーバのグレースフルシャットダウンを行います。 _`stop`リクエストは、権限のないユーザーは実行できない*[管理メソッド](../index.md)です。_ diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md index 0af0610f29..cc626aec64 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md @@ -5,12 +5,12 @@ seo: description: 無効。rippledが検証の署名に使用するシークレット値を一時的に設定します。 status: removed labels: - - コアサーバー + - コアサーバ --- # validation_seed [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ValidationSeed.cpp "Source") -`validation_seed`コマンドは、rippledが検証の署名に使用するシークレット値を一時的に設定します。サーバーを再起動すると、この値は構成ファイルに基づいてリセットされます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.1-rc1" %}rippled 0.29.1 以降では無効{% /badge %} +`validation_seed`コマンドは、rippledが検証の署名に使用するシークレット値を一時的に設定します。サーバを再起動すると、この値は構成ファイルに基づいてリセットされます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.1-rc1" %}rippled 0.29.1 以降では無効{% /badge %} *`validation_seed`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md index d278bb8ac5..fbe3c87bcd 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md @@ -14,7 +14,7 @@ labels: {% partial file="/@i18n/ja/docs/_snippets/public-signing-note.md" /%} -**注意:** 独自の`rippled`サーバーを運用している場合を除き、このコマンドを使用するのではなく、[クライアントライブラリ](../../../client-libraries.md)を実行してください。詳細については[安全な署名の設定](../../../../concepts/transactions/secure-signing.md)を参照してください。 +**注意:** 独自の`rippled`サーバを運用している場合を除き、このコマンドを使用するのではなく、[クライアントライブラリ](../../../client-libraries.md)を実行してください。詳細については[安全な署名の設定](../../../../concepts/transactions/secure-signing.md)を参照してください。 ## リクエストのフォーマット リクエストのフォーマットの例: @@ -77,7 +77,7 @@ rippled sign s██████████████████████ {% /tabs %} -トランザクションに署名するには、[トランザクションを承認](../../../../concepts/transactions/index.md#トランザクションの承認)できるシークレットキーを提供する必要があります。通常、サーバーが秘密鍵を取得するシード値を提供します。これを行うには、以下の方法があります。 +トランザクションに署名するには、[トランザクションを承認](../../../../concepts/transactions/index.md#トランザクションの承認)できるシークレットキーを提供する必要があります。通常、サーバが秘密鍵を取得するシード値を提供します。これを行うには、以下の方法があります。 * `secret`フィールドにシードを指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 * `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません)。 @@ -87,26 +87,26 @@ rippled sign s██████████████████████ | `Field` | 型 | 説明 | |:---------------|:--------|:--------------------------------------------------| | `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md) | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | | `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | | `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | | `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | | `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。 | | `offline` | ブール値 | _(省略可)_ `true`の場合は、トランザクションの生成時に、トランザクションの詳細を[自動入力](#自動入力可能なフィールド)しないでください。デフォルトは`false`です。 | -| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | +| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。**注意:** サーバは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | | `fee_mult_max` | 整数 | _(省略可)_[自動的に提供される`Fee`フィールド](../../../protocol/transactions/common-fields.md#自動入力可能なフィールド)の上限値を設定します。現在の[トランザクションコストの負荷の乗数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](../../../../concepts/transactions/transaction-cost.md))を指定した場合は無視されます。デフォルトは`10`です。 | | `fee_div_max` | 整数 | _(省略可)_ 現在の[トランザクションコストの負荷の乗数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](../../../../concepts/transactions/transaction-cost.md))を指定した場合は無視されます。デフォルトは`1`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | ### 自動入力可能なフィールド -`tx_json`([トランザクションオブジェクト](../../../protocol/transactions/index.md))の特定のフィールドを省略すると、サーバーは自動的に入力しようとします。リクエストの`offline`を`true`と指定しない限り、サーバーは署名前に以下のフィールドを提供します。 +`tx_json`([トランザクションオブジェクト](../../../protocol/transactions/index.md))の特定のフィールドを省略すると、サーバは自動的に入力しようとします。リクエストの`offline`を`true`と指定しない限り、サーバは署名前に以下のフィールドを提供します。 -* `Sequence` - サーバーは、送信者のアカウント情報にある次のシーケンス番号を自動的に使用します。 +* `Sequence` - サーバは、送信者のアカウント情報にある次のシーケンス番号を自動的に使用します。 * **注意:** アカウントの次のシーケンス番号は、このトランザクションが適用されるまで増分されません。トランザクションの送信および個々のトランザクションへのレスポンスを待たずに複数のトランザクションに署名する場合は、最初のトランザクション以降の各トランザクションについて、正しいシーケンス番号を手動で提供する必要があります。 -* `Fee` - `Fee`パラメーターを省略した場合、サーバーは適切なトランザクションコストを自動的に入力しようとします。本番環境のXRP Ledgerでは、適切な`fee_mult_max`値を提供しない限り、この処理は`rpcHIGH_FEE`エラーで失敗します。 +* `Fee` - `Fee`パラメーターを省略した場合、サーバは適切なトランザクションコストを自動的に入力しようとします。本番環境のXRP Ledgerでは、適切な`fee_mult_max`値を提供しない限り、この処理は`rpcHIGH_FEE`エラーで失敗します。 * `fee_mult_max`パラメーターと`fee_div_max`パラメーターは、[リファレンストランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)に適用される負荷スケーリング乗数によって、自動的に提供されるトランザクションコストの上限値を設定します。デフォルト設定では、自動的に提供される値が10×の乗数より大きい場合、エラーが返されます。ただし、本番環境のXRP Ledgerでは、[1000×の負荷乗数を使用することが一般的](../../../../concepts/transactions/transaction-cost.md#現在のトランザクションコスト)です。 * コマンドライン構文では、`fee_mult_max`および`fee_div_max`はサポートされません。本番環境のXRP Ledgerの場合は、`Fee`値を提供する必要があります。 - * **注意:** 悪意のあるサーバーは、`fee_mult_max`や`fee_div_max`の値を無視して、きわめて大きなトランザクションコストを指定するおそれがあります。 + * **注意:** 悪意のあるサーバは、`fee_mult_max`や`fee_div_max`の値を無視して、きわめて大きなトランザクションコストを指定するおそれがあります。 * `Paths` - Payment型のトランザクションの場合(XRP間の移動を除く)、Pathsフィールドは、[ripple_path_findメソッド][]を使用した場合と同様に自動的に入力できます。`build_path`を指定した場合のみ入力されます。 ## レスポンスのフォーマット @@ -223,7 +223,7 @@ Connecting to 127.0.0.1:5005 * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `highFee` - トランザクションコストに適用される現在の負荷乗数が、自動的に提供されるトランザクションコストの上限を超えています。リクエストで指定する`fee_mult_max`を大きくするか(1000以上)、`tx_json`の`Fee`フィールドに値を手動で指定します。 -* `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。 -* `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。 +* `tooBusy` - トランザクションにパスが含まれていませんが、サーバがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。 +* `noPath` - トランザクションにパスが含まれておらず、サーバは、このペイメントの発生経路となるパスを検出できませんでした。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md index e620304883..72077cc200 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md @@ -99,7 +99,7 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ |:-------------|:---------------------|:---------------------------------------| | `account` | 文字列 - [アドレス][] | 署名を提供するアドレス。 | | `tx_json` | オブジェクト | 署名する[トランザクション](../../../protocol/transactions/index.md)。[signメソッド][]を使用する場合とは異なり、トランザクションのすべてのフィールド(`Fee`と`Sequence`を含む)を指定する必要があります。トランザクションに、空の文字列を値として指定した`SigningPubKey`フィールドを含める必要があります。このオブジェクトには、以前に収集した署名を持つ`Signers`配列を必要に応じて含めることができます。 | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | | `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | | `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | | `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md index 2b5ec65f80..0636542be5 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md @@ -5,7 +5,7 @@ seo: description: デバッグのためのコンセンサスプロセスに関する情報を返します。 labels: - ブロックチェーン - - コアサーバー + - コアサーバ --- # consensus_info [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ConsensusInfo.cpp "Source") @@ -222,13 +222,13 @@ Connecting to 127.0.0.1:5005 | `Field` | 型 | 説明 | |:-----------------|:--------|:------------------------------------------------| | `ledger_seq` | 数値 | 現在コンセンサスプロセスにあるレジャーのシーケンス番号。 | -| `our_position` | オブジェクト | コンセンサスプロセスにあるレジャーについてサーバーが予期する内容。 | +| `our_position` | オブジェクト | コンセンサスプロセスにあるレジャーについてサーバが予期する内容。 | | `peer_positions` | オブジェクト | コンセンサスプロセスにあるピアと各ピアが提案するレジャーバージョンのマップ。 | -| `proposers` | 数値 | このコンセンサスプロセスに参加している信頼できるバリデータの数。信頼できるバリデータは、このサーバー構成に応じて異なります。 | -| `synched` | ブール値 | このサーバー自体が、自分がネットワークと同期中であるとみなしているかどうか。 | +| `proposers` | 数値 | このコンセンサスプロセスに参加している信頼できるバリデータの数。信頼できるバリデータは、このサーバ構成に応じて異なります。 | +| `synched` | ブール値 | このサーバ自体が、自分がネットワークと同期中であるとみなしているかどうか。 | | `state` | 文字列 | 現在進行中のコンセンサスプロセスの部分: `open`、`consensus`、`finished`、または`accepted`。 | -`info`の唯一のフィールドが`"consensus": "none"`である最小限の結果となることもありますが、これは正常です。これは、サーバーがコンセンサスラウンドの合間にあることを示します。 +`info`の唯一のフィールドが`"consensus": "none"`である最小限の結果となることもありますが、これは正常です。これは、サーバがコンセンサスラウンドの合間にあることを示します。 `consensus_info`コマンドを短い間隔で連続して数回実行すると、このコマンドの結果が大きく変化することがあります。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md index 0464019fb7..6367936861 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md @@ -5,7 +5,7 @@ seo: description: Amendmentに関してこのサーバが認識している情報を返します。 labels: - ブロックチェーン - - コアサーバー + - コアサーバ --- # feature [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Feature1.cpp "Source") diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md index 2684104113..fe7c6d8558 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md @@ -2,14 +2,14 @@ html: fetch_info.html parent: status-and-debugging-methods.html seo: - description: このサーバーが現在ネットワークからフェッチしているオブジェクトに関する情報を返します。 + description: このサーバが現在ネットワークからフェッチしているオブジェクトに関する情報を返します。 labels: - - コアサーバー + - コアサーバ --- # fetch_info [[ソース]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/FetchInfo.cpp "Source") -`fetch_info`コマンドは、このサーバーが現在ネットワークからフェッチしているオブジェクトに関する情報と、その情報を所有しているピアの数を返します。これは現在の取得操作をリセットする場合にも使用できます。 +`fetch_info`コマンドは、このサーバが現在ネットワークからフェッチしているオブジェクトに関する情報と、その情報を所有しているピアの数を返します。これは現在の取得操作をリセットする場合にも使用できます。 _`fetch_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ @@ -154,8 +154,8 @@ Connecting to 127.0.0.1:5005 | `Field` | 型 | 説明 | |:----------------------|:------------------------|:---------------------------| | `hash` | 文字列 | フェッチ対象アイテムのハッシュ。 | -| `have_header` | ブール値 | レジャーの場合、このサーバーがすでにレジャーのヘッダーセクションを取得しているかどうか。 | -| `have_transactions` | ブール値 | レジャーの場合、このサーバーがすでにレジャーのトランザクションセクションを取得しているかどうか。 | +| `have_header` | ブール値 | レジャーの場合、このサーバがすでにレジャーのヘッダーセクションを取得しているかどうか。 | +| `have_transactions` | ブール値 | レジャーの場合、このサーバがすでにレジャーのトランザクションセクションを取得しているかどうか。 | | `needed_state_hashes` | (ハッシュ)文字列の配列 | まだ必要とされる、このアイテムの状態オブジェクトのハッシュ値。必要なハッシュの数が16を超えている場合、レスポンスには最初の16個のハッシュのみが含まれます。 | | `peers` | 数値 | このアイテムが利用可能であるピアの数。 | | `timeouts` | 数値 | このアイテムをフェッチしようとしてタイムアウトになった(2.5秒)回数。 | diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md index 077925c016..13e239db13 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md @@ -2,14 +2,14 @@ html: get_counts.html parent: status-and-debugging-methods.html seo: - description: サーバーの健全性に関するさまざまな統計情報を提供します。 + description: サーバの健全性に関するさまざまな統計情報を提供します。 labels: - - コアサーバー + - コアサーバ --- # get_counts [[ソース]](https://github.com/XRPLF/rippled/blob/c7118a183a660648aa88a3546a6b2c5bce858440/src/ripple/rpc/handlers/GetCounts.cpp "Source") -`get_counts`コマンドは、サーバーの健全性に関するさまざまな統計情報を提供します。そのほとんどは、現在メモリーに格納されている各種オブジェクトの数です。 +`get_counts`コマンドは、サーバの健全性に関するさまざまな統計情報を提供します。そのほとんどは、現在メモリーに格納されている各種オブジェクトの数です。 _`get_counts`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ @@ -147,7 +147,7 @@ Connecting to 127.0.0.1:5005 |:--------------|:-------|:----------------------------------------------------| | `Transaction` | 数値 | メモリー内の`Transaction`オブジェクトの数 | | `Ledger` | 数値 | メモリー内のレジャーの数 | -| `uptime` | 文字列 | このサーバーの連続稼働時間。 | +| `uptime` | 文字列 | このサーバの連続稼働時間。 | その他のほとんどのエントリーでは、値はメモリー内に現在保持されている当該タイプのオブジェクトの数を示します。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md index 6bea54c2bf..3df73594d0 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md @@ -6,7 +6,7 @@ metadata: --- # ステータスとデバッグのメソッド -以下のメソッドを使用して、ネットワークとサーバーのステータスを確認することができます。 +以下のメソッドを使用して、ネットワークとサーバのステータスを確認することができます。 {% child-pages /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md index 70cf057515..4824be5d20 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md @@ -4,7 +4,7 @@ parent: status-and-debugging-methods.html seo: description: さまざまな内部サブシステムの現在の状況を返します。 labels: - - コアサーバー + - コアサーバ --- # print [[ソース]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/Print.cpp "Source") @@ -233,7 +233,7 @@ Connecting to 127.0.0.1:5005 {% /tabs %} -レスポンスは[標準フォーマット][]に従っています。結果に含まれる追加フィールドは、`rippled`サーバーの内部状態に応じて異なります。このコマンドの実行結果は、予告なく変更されることがあります。 +レスポンスは[標準フォーマット][]に従っています。結果に含まれる追加フィールドは、`rippled`サーバの内部状態に応じて異なります。このコマンドの実行結果は、予告なく変更されることがあります。 ### 考えられるエラー diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md index 4255342257..ab3254791f 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md @@ -4,7 +4,7 @@ parent: status-and-debugging-methods.html seo: description: バリデータとして設定されている場合、サーバのバリデーション設定を取得します。 labels: - - コアサーバー + - コアサーバ - ブロックチェーン --- # validator_info diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md index d2000c693e..b135cbe5f4 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md @@ -5,7 +5,7 @@ seo: description: バリデータリストを処理するサイトのステータス情報を返します。 labels: - ブロックチェーン - - コアサーバー + - コアサーバ --- # validator_list_sites [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ValidatorListSites.cpp "Source") diff --git a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md index 0069a1c84c..63309932b4 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +++ b/@i18n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md @@ -2,15 +2,15 @@ html: validators.html parent: status-and-debugging-methods.html seo: - description: サーバーが使用する公開済みの信頼できるバリデータの最新リストに関する情報を返します。 + description: サーバが使用する公開済みの信頼できるバリデータの最新リストに関する情報を返します。 labels: - ブロックチェーン - - コアサーバー + - コアサーバ --- # validators [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Validators.cpp "Source") -`validators`コマンドは、サーバーが使用する公開済みの信頼できるバリデータの最新リストに関する情報を、人間が読み取れる形式で返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.80.1" %}新規: rippled 0.80.1{% /badge %} +`validators`コマンドは、サーバが使用する公開済みの信頼できるバリデータの最新リストに関する情報を、人間が読み取れる形式で返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.80.1" %}新規: rippled 0.80.1{% /badge %} *`validators`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* @@ -169,8 +169,8 @@ Connecting to 127.0.0.1:5005 | `publisher_lists` | 配列 | パブリッシャーリストオブジェクトの配列。 | | `signing_keys` | オブジェクト | バリデータマニフェストを使用している登録済みバリデータのマスター公開鍵から、現在の署名キーへのマッピング。 | | `trusted_validator_keys` | 配列 | 現在信頼されているバリデータの公開鍵の配列。 | -| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバーがさらに検証をリクエストする場合があります。 | -| `validator_list_expires` | 文字列 | 人間が読み取れる形式での現在のバリデータリストの有効期限、文字列`unknown`(サーバーが公開済みバリデータリストを読み込む必要がある場合)、または文字列`never`(サーバーが静的なバリデータリストを使用している場合)のいずれか。 | +| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバがさらに検証をリクエストする場合があります。 | +| `validator_list_expires` | 文字列 | 人間が読み取れる形式での現在のバリデータリストの有効期限、文字列`unknown`(サーバが公開済みバリデータリストを読み込む必要がある場合)、または文字列`never`(サーバが静的なバリデータリストを使用している場合)のいずれか。 | `publisher_lists`配列の各メンバーは、以下のフィールドを有するオブジェクトです。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md index e76bf6431d..3d6cdddd5d 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md +++ b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md @@ -6,7 +6,7 @@ seo: --- # エラーのフォーマット -エラーが発生する可能性のある状況をすべて挙げることは不可能です。トランスポートレイヤーで発生する場合(ネットワーク接続が失われる場合など)には、使用しているクライアントとトランスポートに応じてその結果は異なります。ただし、`rippled`サーバーがリクエストを正常に受信した場合、サーバーは標準のエラー形式でのレスポンスを試みます。 +エラーが発生する可能性のある状況をすべて挙げることは不可能です。トランスポートレイヤーで発生する場合(ネットワーク接続が失われる場合など)には、使用しているクライアントとトランスポートに応じてその結果は異なります。ただし、`rippled`サーバがリクエストを正常に受信した場合、サーバは標準のエラー形式でのレスポンスを試みます。 **注意:** リクエストの結果がエラーになった場合、レスポンスの一部としてリクエスト全体がコピーされます。このため、エラーのデバッグに取り組むことができます。ただし、これにはリクエストで渡した機密情報がすべて含まれます。エラーメッセージを共有するときには、アカウントの重要な機密情報を他のユーザーに誤って公開することがないように、十分に注意してください。 @@ -105,14 +105,14 @@ HTTPステータスコード200 OKが返されるその他のエラーの場合 すべてのメソッドは、以下のいずれかの値の`error`コードを返す可能性があります。 -* `unknownCmd` - リクエストに、`rippled`サーバーが認識する[コマンド](../index.md)が含まれていません。 +* `unknownCmd` - リクエストに、`rippled`サーバが認識する[コマンド](../index.md)が含まれていません。 * `jsonInvalid` -(WebSocketのみ)リクエストは適切なJSONオブジェクトではありません。 * この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 * `missingCommand` -(WebSocketのみ)リクエストに`command`フィールドが指定されていませんでした。 * この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 -* `tooBusy` - サーバーの負荷が高すぎるため、現在このコマンドを実行できません。管理者として接続している場合は、通常このエラーが返されることはありません。 -* `noNetwork` - サーバーとXRP Ledgerピアツーピアネットワークのその他の部分との接続で問題が発生しています(サーバーがスタンドアロンモードで実行されていません)。 -* `noCurrent` - 高い負荷、ネットワークの問題、バリデータ障害、誤った構成、またはその他の問題が原因で、サーバーが現行のレジャーを認識できません。 -* `noClosed` - サーバーに決済済みレジャーがありません。通常、このエラーは起動が完了していないことが原因で発生します。 +* `tooBusy` - サーバの負荷が高すぎるため、現在このコマンドを実行できません。管理者として接続している場合は、通常このエラーが返されることはありません。 +* `noNetwork` - サーバとXRP Ledgerピアツーピアネットワークのその他の部分との接続で問題が発生しています(サーバがスタンドアロンモードで実行されていません)。 +* `noCurrent` - 高い負荷、ネットワークの問題、バリデータ障害、誤った構成、またはその他の問題が原因で、サーバが現行のレジャーを認識できません。 +* `noClosed` - サーバに決済済みレジャーがありません。通常、このエラーは起動が完了していないことが原因で発生します。 * `wsTextRequired` -(WebSocketのみ)リクエストの[opcode](https://tools.ietf.org/html/rfc6455#section-5.2)がテキストではありません。 -* `amendmentBlocked` - サーバーの状態が[Amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked)であるため、XRP Ledgerネットワークとの同期を維持するために最新バージョンに更新する必要があります。 +* `amendmentBlocked` - サーバの状態が[Amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked)であるため、XRP Ledgerネットワークとの同期を維持するために最新バージョンに更新する必要があります。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md index c438a22d01..6d98a5e4f6 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md +++ b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md @@ -8,4 +8,4 @@ seo: 一部のメソッドから返されるデータは、1つのレスポンスに実質的に収まらないことがあります。結果全体が収まらない場合、レスポンスには`marker`フィールドが含まれます。このフィールドを使用することで、複数回の呼出しを通じてデータのページをさらに取得できます。各リクエストで直前のレスポンスの`marker`値を渡して、終わったところから再開します。レスポンスに`marker`が含まれていなければ、データセットの終わりに達しています。 -`marker`フィールドのフォーマットは意図的に未定義になっています。各サーバーで`marker`をそれぞれに合わせて定義できるので、このフィールドの形式は文字列、ネストオブジェクトなどさまざまです。異なるサーバー、または同じサーバーの異なるメソッドでは、異なる`marker`定義を使用できます。各`marker`は一時的であり、10分以上経過すると予期されているとおりに機能しなくなることがあります。 +`marker`フィールドのフォーマットは意図的に未定義になっています。各サーバで`marker`をそれぞれに合わせて定義できるので、このフィールドの形式は文字列、ネストオブジェクトなどさまざまです。異なるサーバ、または同じサーバの異なるメソッドでは、異なる`marker`定義を使用できます。各`marker`は一時的であり、10分以上経過すると予期されているとおりに機能しなくなることがあります。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md index aa25dcc12e..8e79829d05 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md +++ b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md @@ -4,7 +4,7 @@ parent: api-conventions.html seo: description: パブリックAPIがどのようにクライアントのリクエスト数を制限しているかについての説明です。 labels: - - コアサーバー + - コアサーバ --- # レート制限 @@ -12,9 +12,9 @@ labels: **ヒント:** レート制限は、クライアントが[管理者](../../../tutorials/http-websocket-apis/build-apps/get-started.md#管理者アクセス権限)として接続されているときには適用されません -クライアントがレート制限に近づいている場合、サーバーは[APIレスポンス](response-formatting.md)のトップレベルにフィールド`"warning": "load"`というフィールドを[APIレスポンス](response-formatting.md)のトップレベルに追加します。この警告はすべてのレスポンスに追加されるわけではありませんが、サーバはクライアントを切断する前に何度かこのような警告を送ることがあります。 +クライアントがレート制限に近づいている場合、サーバは[APIレスポンス](response-formatting.md)のトップレベルにフィールド`"warning": "load"`というフィールドを[APIレスポンス](response-formatting.md)のトップレベルに追加します。この警告はすべてのレスポンスに追加されるわけではありませんが、サーバはクライアントを切断する前に何度かこのような警告を送ることがあります。 -クライアントがレート制限を超えると、サーバーはそのクライアントを切断し、しばらくの間、クライアントのAPIアドレスからのリクエストを受け付けません。WebSocket APIとJSON-RPC APIでは、異なる切断メッセージを使用します。 +クライアントがレート制限を超えると、サーバはそのクライアントを切断し、しばらくの間、クライアントのAPIアドレスからのリクエストを受け付けません。WebSocket APIとJSON-RPC APIでは、異なる切断メッセージを使用します。 ## WebSocket APIの切断メッセージ @@ -37,7 +37,7 @@ ws.on('close', (code,reason) => { ## JSON-RPCのレート制限エラー -JSON-RPC APIリクエストの場合、クライアントがレート制限を超えると、サーバーはHTTPステータスコード**503 Service Unavailable**でレスポンスします。このレスポンスには、サーバに負荷がかかっていることを示すテキスト(JSONではありません)の本文が含まれます。 +JSON-RPC APIリクエストの場合、クライアントがレート制限を超えると、サーバはHTTPステータスコード**503 Service Unavailable**でレスポンスします。このレスポンスには、サーバに負荷がかかっていることを示すテキスト(JSONではありません)の本文が含まれます。 ```text 503 Service Unavailable diff --git a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md index a50c190277..3bbe05f8f8 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md +++ b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md @@ -8,7 +8,7 @@ seo: ## WebSocketフォーマット -`rippled`サーバーへのWebSocketを開いた後、以下の属性を使用して、コマンドを[JSON](https://en.wikipedia.org/wiki/JSON)オブジェクトとして送信できます。 +`rippled`サーバへのWebSocketを開いた後、以下の属性を使用して、コマンドを[JSON](https://en.wikipedia.org/wiki/JSON)オブジェクトとして送信できます。 * コマンド名を最上位の`"command"`フィールドに指定します。 * このコマンドのすべての関連パラメーターも最上位に指定します。 @@ -18,7 +18,7 @@ seo: ## JSON-RPCフォーマット -JSON-RPCリクエストを実行するには、`rippled`サーバーがJSON-RPC接続をリッスンしているポートおよびIPで、HTTP **POST**リクエストをルートパス(`/`)に送信します。HTTP/1.0またはHTTP/1.1を使用できます。HTTPSを使用する場合は、TLS v1.2を使用してください。セキュリティ上の理由から、`rippled`ではSSL v3以前を _サポートしていません_ 。 +JSON-RPCリクエストを実行するには、`rippled`サーバがJSON-RPC接続をリッスンしているポートおよびIPで、HTTP **POST**リクエストをルートパス(`/`)に送信します。HTTP/1.0またはHTTP/1.1を使用できます。HTTPSを使用する場合は、TLS v1.2を使用してください。セキュリティ上の理由から、`rippled`ではSSL v3以前を _サポートしていません_ 。 常に`Content-Type`ヘッダー(値`application/json`)を指定してください。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md index d547b5707d..c7794afa80 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md +++ b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md @@ -13,8 +13,8 @@ seo: | `Field` | 型 | 説明 | |:----------------|:---------|:------------------------------------------------| | `id` | (場合により異なる) | (WebSocketのみ)このレスポンスのリクエスト元となったリクエストで指定されているID。 | -| `status` | 文字列 | (WebSocketのみ)値が`success`である場合、リクエストがサーバーによって正常に受信され、理解されたことを示します。 | -| `result.status` | 文字列 | (JSON-RPCおよびコマンドライン)値が`success`である場合、リクエストがサーバーによって正常に受信され、理解されたことを示します。 | +| `status` | 文字列 | (WebSocketのみ)値が`success`である場合、リクエストがサーバによって正常に受信され、理解されたことを示します。 | +| `result.status` | 文字列 | (JSON-RPCおよびコマンドライン)値が`success`である場合、リクエストがサーバによって正常に受信され、理解されたことを示します。 | | `type` | 文字列 | (WebSocketのみ)値が`response`の場合、コマンドに対する正常なレスポンスであることを示します。[非同期の通知](../public-api-methods/subscription-methods/subscribe.md)では、`ledgerClosed`や`transaction`など異なる値が使用されます。 | | `result` | オブジェクト | クエリーの結果。内容はコマンドによって異なります。 | diff --git a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md index 6136f3e5a1..f0a8cc9c01 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md +++ b/@i18n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md @@ -4,22 +4,22 @@ parent: api-conventions.html seo: description: 一部のAPIメソッドで報告される状態情報の定義です。 labels: - - コアサーバー + - コアサーバ --- -# rippledサーバーの状態 +# rippledサーバの状態 -`rippled`サーバーの設定、稼働時間、その他の要素により、サーバーがグローバルなXRP Ledgerピアツーピアネットワークに参加する度合いは異なります。これは、[server_infoメソッド][]と[server_stateメソッド][]へのレスポンス内の`server_state`フィールドに示されます。レスポンスは昇順のやり取りに従い、後の値は前の値より優先されます。これらのレスポンスの定義を以下に示します(優先順位の高い順)。 +`rippled`サーバの設定、稼働時間、その他の要素により、サーバがグローバルなXRP Ledgerピアツーピアネットワークに参加する度合いは異なります。これは、[server_infoメソッド][]と[server_stateメソッド][]へのレスポンス内の`server_state`フィールドに示されます。レスポンスは昇順のやり取りに従い、後の値は前の値より優先されます。これらのレスポンスの定義を以下に示します(優先順位の高い順)。 | `Value` | 説明 | |:---------------|:------------------------------------------------------------| -| `disconnected` | サーバーはXRP Ledgerピアツーピアネットワークにまったく接続されていません。オフラインモードで稼働しているか、何らかの理由でネットワークにアクセスできない可能性があります。 | -| `connected` | サーバーはネットワークに接続されていると考えられます。 | -| `syncing` | サーバーは現在、レジャーバージョンの状態に追いついていません。(通常、サーバーが始動後に最新状態になるまで数分かかります。) | -| `tracking` | サーバーはネットワークに接続しています。 | -| `full` | サーバーはネットワークに完全に組み込まれ、検証にも参加できますが、参加していません(検証者として設定されていないことが原因と考えられます)。 | -| `validating` | サーバーは現在、レジャーの検証に参加しています。 | -| `proposing` | サーバーはレジャーの検証に参加しており、現在、自身のバージョンを提案中です。 | +| `disconnected` | サーバはXRP Ledgerピアツーピアネットワークにまったく接続されていません。オフラインモードで稼働しているか、何らかの理由でネットワークにアクセスできない可能性があります。 | +| `connected` | サーバはネットワークに接続されていると考えられます。 | +| `syncing` | サーバは現在、レジャーバージョンの状態に追いついていません。(通常、サーバが始動後に最新状態になるまで数分かかります。) | +| `tracking` | サーバはネットワークに接続しています。 | +| `full` | サーバはネットワークに完全に組み込まれ、検証にも参加できますが、参加していません(検証者として設定されていないことが原因と考えられます)。 | +| `validating` | サーバは現在、レジャーの検証に参加しています。 | +| `proposing` | サーバはレジャーの検証に参加しており、現在、自身のバージョンを提案中です。 | -**注記:** `full`、`validating`、`proposing`の区別は、グローバルネットワークの他者との同期の状況に基づいていますが、通常サーバーの上記の状態は一般的なオペレーションの中で変動します。 +**注記:** `full`、`validating`、`proposing`の区別は、グローバルネットワークの他者との同期の状況に基づいていますが、通常サーバの上記の状態は一般的なオペレーションの中で変動します。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/index.md b/@i18n/ja/docs/references/http-websocket-apis/index.md index 2d6e793b3c..a087c89a73 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/index.md @@ -6,7 +6,7 @@ metadata: --- # HTTP / WebSocket API リファレンス -XRP Ledgerを管理するコアのピアツーピアサーバーであるrippledと直接通信します。 +XRP Ledgerを管理するコアのピアツーピアサーバであるrippledと直接通信します。 {% child-pages /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md b/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md index 93c50c26ac..ef17f72566 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md +++ b/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md @@ -4,7 +4,7 @@ parent: peer-port-methods.html seo: description: サーバの状態を報告するための特別なAPIメソッドです。 labels: - - コアサーバー + - コアサーバ --- # ヘルスチェック [[ソース]](https://github.com/XRPLF/rippled/blob/de0c52738785de8bf837f9124da65c7905e7bb5a/src/ripple/overlay/impl/OverlayImpl.cpp#L1084-L1168 "ソース") diff --git a/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md b/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md index 53cad2638d..fc0bc16a7d 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md +++ b/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md @@ -35,7 +35,7 @@ JSONオブジェクトは次のフィールドを含んでいます。 |:-----------------|:-----------|:-------------------------------------------------| | `counts` | オブジェクト | _(省略可)_ [get_countsメソッド][]のレスポンスと同じように、このサーバの状態に関する統計情報を返します。デフォルトの設定では、このフィールドは報告されません。報告される情報には、レジャーデータベースとトランザクションデータベースのサイズ、アプリケーション内キャッシュのキャッシュヒット率、さまざまな種類のオブジェクトがメモリにキャッシュされている数などがあります。メモリに保存されるオブジェクトの種類には、レジャー(`Ledger`)、トランザクション(`STTx`)、検証メッセージ (`STValidation`)などがあります。 | | `overlay` | オブジェクト | _(省略可)_ [peersメソッド][]のレスポンスに似ています。`active`というフィールドがあり、これはオブジェクトの配列です(下記参照)。 | -| `server` | オブジェクト | _(省略可)_ このサーバに関する情報。[server_stateメソッド][]の公開フィールドを含みます。どの`rippled`バージョン(`build_version`)か、どの[レジャーバージョン](../../../concepts/networks-and-servers/ledger-history.md)が利用可能か(`complete_ledgers`)、サーバーの負荷量などです。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | +| `server` | オブジェクト | _(省略可)_ このサーバに関する情報。[server_stateメソッド][]の公開フィールドを含みます。どの`rippled`バージョン(`build_version`)か、どの[レジャーバージョン](../../../concepts/networks-and-servers/ledger-history.md)が利用可能か(`complete_ledgers`)、サーバの負荷量などです。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | | `unl` | オブジェクト | _(省略可)_ [validatorsメソッド][]や[validator_list_sitesメソッド][]のレスポンスと同様です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | | `version` | 数値 | このピアクローラのレスポンスのフォーマットのバージョンを示します。現在のピアクローラのバージョン番号は`2`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | diff --git a/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md b/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md index b85c99998f..57cc27dec0 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md +++ b/@i18n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md @@ -4,7 +4,7 @@ parent: peer-port-methods.html seo: description: 推奨バリデータリストを共有するための特別なAPIメソッド。 labels: - - コアサーバー + - コアサーバ - ブロックチェーン --- # バリデータリストメソッド diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md index f4460e1696..37c1814b98 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md @@ -63,7 +63,7 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK | `destination_account` | 文字列 | _(省略可)_ アカウントの一意のID。通常はアカウントの[アドレス][]です。指定されている場合、フィルタリングによりこのアカウントを送金先とするPayment Channelに絞り込まれます。 | | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用する[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `limit` | 整数 | _(省略可)_ 取得するトランザクション数を制限します。サーバーはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | +| `limit` | 整数 | _(省略可)_ 取得するトランザクション数を制限します。サーバはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | | `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | ## レスポンスのフォーマット @@ -168,7 +168,7 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK | `ledger_index` | 数値 | このレスポンスの生成に使用されたレジャーバージョンの[レジャーインデックス][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | | `validated` | ブール値 | _(省略される場合があります)_`true`の場合、このレスポンスの情報は検証済みレジャーバージョンから取り込まれます。trueでない場合、情報は変更されることがあります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | | `limit` | 数値 | _(省略される場合があります)_ このリクエストから実際に返されるchannelオブジェクトの数の制限。 | -| `marker` | [マーカー][] | _(省略される場合があります)_ ページネーションのサーバー定義の値。この値を次のコールに渡して、このコールで終わった箇所から結果の取得を再開します。この後に追加のページがない場合は省略されます。 | +| `marker` | [マーカー][] | _(省略される場合があります)_ ページネーションのサーバ定義の値。この値を次のコールに渡して、このコールで終わった箇所から結果の取得を再開します。この後に追加のページがない場合は省略されます。 | 各Channelオブジェクトのフィールドは次のとおりです。 @@ -192,6 +192,6 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md index 07d1a24349..2bd920b1f1 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md @@ -153,6 +153,6 @@ labels: * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md index 73b4f26784..8d354d2e31 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md @@ -255,7 +255,7 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。例えば、リクエストで`queue`を`true`と指定したが、現在開いているレジャーではない`ledger_index`を指定した場合です。 * `actNotFound` - リクエストの`account`フィールドに指定したアドレスが、レジャー内のアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 [手数料レベル]: ../../../../concepts/transactions/transaction-cost.md#手数料レベル diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md index 12196aed90..a4f30f1280 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md @@ -443,7 +443,7 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 * `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md index 9ff72b6161..bf3d483779 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md @@ -158,6 +158,6 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md index f92b2ae166..ffcf950d0a 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md @@ -1214,7 +1214,7 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated | `ledger_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | | `ledger_current_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用された現在処理中のレジャーバージョンのレジャーインデックス。 | | `limit` | 数値 | _(省略される場合があります)_ このリクエストで使用されていた制限(制限の使用がある場合)。 | -| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。 | +| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。 | | `validated` | 真偽値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | ## 考えられるエラー @@ -1222,6 +1222,6 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md index 08087e0047..66342fdc37 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md @@ -215,7 +215,7 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 * `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md index adcf3a975c..4760a8491d 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md @@ -67,14 +67,14 @@ rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 | `Field` | 型 | 説明 | |:-------------------|:-------------------------------------------|:-----------| | `account` | 文字列 | アカウントの一意のIDであり、最も一般的にはアカウントのアドレスが使用されます。 | -| `ledger_index_min` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最古のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最古のバージョンを使用するよう、サーバーに指示します。 | -| `ledger_index_max` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最新のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最新のバージョンを使用するよう、サーバーに指示します。 | +| `ledger_index_min` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最古のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最古のバージョンを使用するよう、サーバに指示します。 | +| `ledger_index_max` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最新のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最新のバージョンを使用するよう、サーバに指示します。 | | `ledger_hash` | 文字列 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]を参照してください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]を参照してください) | | `binary` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、JSONの代わりに16進文字列でトランザクションが返されます。 | | `forward` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、最も古いレジャーを先頭としてインデックスが付けられた値が返されます。そうしない場合、最新のレジャーを先頭として結果にインデックスが付けられます。(結果を示した各ページの中身は順序よく整理されていない場合がありますが、ページ全体としては順序付けされています。) | -| `limit` | 整数 | _(省略可能)_ デフォルトは変化します。取得するトランザクションの数を制限します。サーバーはこの値を受け入れる必要はありません。 | -| `marker` | [マーカー][] | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。サーバーが使用できるレジャーの範囲に変更があっても、この値は変わりません。 | +| `limit` | 整数 | _(省略可能)_ デフォルトは変化します。取得するトランザクションの数を制限します。サーバはこの値を受け入れる必要はありません。 | +| `marker` | [マーカー][] | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。サーバが使用できるレジャーの範囲に変更があっても、この値は変わりません。 | 次の各フィールドは省略可能とされていますが、リクエスト内で**1つ以上は使用する必要があります**: `ledger_index`、`ledger_hash`、`ledger_index_min`、または`ledger_index_max`。 @@ -572,12 +572,12 @@ rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 | `account` | 文字列 | 関連するアカウントを識別する一意の[アドレス][]。 | | `ledger_index_min` | 整数 - [レジャーインデックス][] | トランザクションで実際に検索された最古のレジャーのレジャーインデックス。 | | `ledger_index_max` | 整数 - [レジャーインデックス][] | トランザクションで実際に検索された最新のレジャーのレジャーインデックス。 | -| `limit` | 整数 | リクエストで使用される`limit`値。(サーバーによって強制される実際の制限値とは異なる場合があります。) | -| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | +| `limit` | 整数 | リクエストで使用される`limit`値。(サーバによって強制される実際の制限値とは異なる場合があります。) | +| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | | `transactions` | 配列 | 以降で説明する、リクエストの基準を満たすトランザクションの配列。 | | `validated` | ブール値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | -**注記:** サーバーから返される`ledger_index_min`および`ledger_index_max`の値がリクエストで指定したものとは異なる場合があります。例えば、サーバーに手元の指定したバージョンがない場合など。 +**注記:** サーバから返される`ledger_index_min`および`ledger_index_max`の値がリクエストで指定したものとは異なる場合があります。例えば、サーバに手元の指定したバージョンがない場合など。 各トランザクションのオブジェクトには以下のフィールドが含まれます。含まれるフィールドは、JSONまたは16進文字列(`"binary":true`)フォーマットのどちらでリクエストされたかによって異なります。 @@ -594,7 +594,7 @@ rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actMalformed` - リクエストの`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 -* `lgrIdxMalformed` - `ledger_index_min`または`ledger_index_max`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -* `lgrIdxsInvalid` - リクエストで`ledger_index_min`の前にある`ledger_index_max`を指定したか、[ネットワークと同期](../../../../infrastructure/troubleshooting/index.md)されていないためにサーバーに検証済みレジャーの範囲が存在しません。 +* `lgrIdxMalformed` - `ledger_index_min`または`ledger_index_max`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +* `lgrIdxsInvalid` - リクエストで`ledger_index_min`の前にある`ledger_index_max`を指定したか、[ネットワークと同期](../../../../infrastructure/troubleshooting/index.md)されていないためにサーバに検証済みレジャーの範囲が存在しません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md index 2eaccad95a..ec8d040b72 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md @@ -224,6 +224,6 @@ labels: * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `invalidHotWallet` - `hotwallet`フィールドに指定されている1つ以上のアドレスが、リクエストに指定されているアカウントが発行した通貨を保有しているアカウントの[アドレス][]ではありません。 * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md index aa8629a31e..cd343a1ee7 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md @@ -186,6 +186,6 @@ labels: * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバにはありません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/clio-server/index.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/clio-server/index.md index f9be649f83..3e9b66fe54 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/clio-server/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/clio-server/index.md @@ -6,7 +6,7 @@ metadata: --- # Clio Serverメソッド -以下のメソッドを使用して、ClioサーバーのAPIから情報を取得することができます。 +以下のメソッドを使用して、ClioサーバのAPIから情報を取得することができます。 {% child-pages /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/index.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/index.md index 9bec45563f..fba5c0dad7 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/index.md @@ -2,15 +2,15 @@ html: public-api-methods.html parent: http-websocket-apis.html seo: - description: パブリックAPIメソッドを使用して、rippledサーバーと直接通信します。 + description: パブリックAPIメソッドを使用して、rippledサーバと直接通信します。 labels: - - コアサーバー + - コアサーバ top_nav_grouping: 人気ページ top_nav_name: APIのメソッド --- # rippledのパブリックメソッド -以下のパブリックAPIメソッドを使用して、[XRP Ledgerサーバー](../../../concepts/networks-and-servers/index.md)と直接通信します。パブリックメソッドは必ずしも一般大衆向けに設計されたのではありませんが、サーバーに接続されたあらゆるクライアントが使用します。パブリックメソッドは、サーバーを運用している組織のメンバーまたは顧客向けのものと考えてください。 +以下のパブリックAPIメソッドを使用して、[XRP Ledgerサーバ](../../../concepts/networks-and-servers/index.md)と直接通信します。パブリックメソッドは必ずしも一般大衆向けに設計されたのではありませんが、サーバに接続されたあらゆるクライアントが使用します。パブリックメソッドは、サーバを運用している組織のメンバーまたは顧客向けのものと考えてください。 ## [アカウントメソッド](account-methods/index.md) @@ -75,19 +75,19 @@ Payment Channel は、2名の当事者間での一方向の繰り返しの支払 ## [サブスクリプションメソッド](subscription-methods/index.md) -以下のメソッドにより、各種イベントの発生時にサーバーからクライアントに更新が通知されるように設定できます。これにより、イベントを即座に把握し、対処することができます。_WebSocket APIのみ。_ +以下のメソッドにより、各種イベントの発生時にサーバからクライアントに更新が通知されるように設定できます。これにより、イベントを即座に把握し、対処することができます。_WebSocket APIのみ。_ * **[`subscribe`](subscription-methods/subscribe.md)** - 特定の対象について更新の通知を受けます。 * **[`unsubscribe`](subscription-methods/unsubscribe.md)** - 特定の対象についての更新の通知を停止します。 -## [サーバー情報メソッド](server-info-methods/index.md) +## [サーバ情報メソッド](server-info-methods/index.md) -以下のメソッドを使用して、`rippled`サーバーの現在の状態についての情報を取得します。 +以下のメソッドを使用して、`rippled`サーバの現在の状態についての情報を取得します。 * **[`fee`](server-info-methods/fee.md)** - トランザクションコストについての情報を取得します。 -* **[`server_info`](server-info-methods/server_info.md)** - サーバーのステータスを人間が読めるフォーマットで取得します。 -* **[`server_state`](server-info-methods/server_state.md)** - サーバーのステータスを機械が読み取れるフォーマットで取得します。 +* **[`server_info`](server-info-methods/server_info.md)** - サーバのステータスを人間が読めるフォーマットで取得します。 +* **[`server_state`](server-info-methods/server_state.md)** - サーバのステータスを機械が読み取れるフォーマットで取得します。 ## [ユーティリティメソッド](utility-methods/index.md) @@ -95,7 +95,7 @@ Payment Channel は、2名の当事者間での一方向の繰り返しの支払 以下のメソッドを使用して、pingや乱数生成などの便利なタスクを実行します。 * **[`json`](utility-methods/json.md)** - プロキシとして使用して、他のコマンドを実行します。コマンドのパラメーターをJSON値として受け入れます。_コマンドラインのみ。_ -* **[`ping`](utility-methods/ping.md)** - サーバーとの接続を確認します。 +* **[`ping`](utility-methods/ping.md)** - サーバとの接続を確認します。 * **[`random`](utility-methods/random.md)** - 乱数を生成します。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md index 4ccfd2c4f2..7c561473aa 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md @@ -144,8 +144,8 @@ rippled ledger current * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -* `noPermission` - `full`または`accounts`をtrueとして指定したが、管理者としてサーバーに接続していない場合(通常、管理者はローカルポートで接続する必要があります)。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +* `noPermission` - `full`または`accounts`をtrueとして指定したが、管理者としてサーバに接続していない場合(通常、管理者はローカルポートで接続する必要があります)。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md index 7c9c5ee735..d3027d5b1b 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md @@ -56,7 +56,7 @@ label: | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | | `binary` | ブール値 | (省略可、デフォルトではfalseです)trueに設定すると、レジャーオブジェクトがJSONではなくハッシュされた16進文字列として返されます。 | -| `limit` | 整数 | (省略可、デフォルト値は可変)取得するレジャーオブジェクトの数を制限します。サーバーはこの値に従う必要はありません。 | +| `limit` | 整数 | (省略可、デフォルト値は可変)取得するレジャーオブジェクトの数を制限します。サーバはこの値に従う必要はありません。 | | `marker` | [マーカー][] | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | `ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 @@ -249,7 +249,7 @@ label: | `ledger_index` | 符号なし整数 | このレジャーのシーケンス番号 | | `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | | `state` | 配列 | ツリーのデータが含まれているJSONオブジェクトの配列。以下のように定義されています。 | -| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | +| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | `state`配列の各オブジェクトのフォーマットは、リクエストで`binary`がtrueに設定されているかどうかによって異なります。各`state`オブジェクトには以下のフィールドが含まれます。 @@ -264,6 +264,6 @@ label: * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md index 7822987865..27069aa5d7 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md @@ -795,7 +795,7 @@ rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F0 * `deprecatedFeature` - 削除されたフィールド(`generator`など)がリクエストに指定されていました。 * `entryNotFound` - リクエストされたレジャーオブジェクトはレジャーに存在しません。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 * `malformedAddress` - リクエストの[アドレス][]フィールドが誤って指定されています。 * `malformedCurrency` - リクエストの[通貨コード][]フィールドが誤って指定されています。 * `malformedOwner` - リクエストの`escrow.owner`サブフィールドが誤って指定されています。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md index d58f61ece8..805e920d79 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md @@ -73,7 +73,7 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 |:---------------|:-------------------------------------------|:-------------------------------| | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `limit` | 符号なし整数 | _(省略可)_ 指定されている場合、サーバーはこの制限を超える数のオファーを結果に含めません。資金供給のないオファーはサーバーにより省略されるため、返される結果の総数はこの制限よりも少ないことがあります。 | +| `limit` | 符号なし整数 | _(省略可)_ 指定されている場合、サーバはこの制限を超える数のオファーを結果に含めません。資金供給のないオファーはサーバにより省略されるため、返される結果の総数はこの制限よりも少ないことがあります。 | | `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | | `taker` | 文字列 | _(省略可)_ パースペクティブとして使用するアカウントの[アドレス][]。このアカウントが発行した[資金供給のないオファー](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)は常にレスポンスに含まれます。(これを使用して、キャンセルしたい各自のオーダーを検索できます。) | | `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][通貨額]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | @@ -170,7 +170,7 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 | `ledger_current_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ この情報の取得時に使用した、現在処理中のレジャーバージョンの[レジャーインデックス][]。 | | `ledger_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略可)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンのレジャーインデックス。 | | `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | -| `marker` | [マーカー][] | _(省略される場合があります)_ レスポンスがページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。 | +| `marker` | [マーカー][] | _(省略される場合があります)_ レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。 | | `offers` | 配列 | Offerオブジェクトの配列。各オブジェクトには[Offer オブジェクト](../../../protocol/ledger-data/ledger-entry-types/offer.md)のフィールドが含まれています。 | `offers`配列の要素には、Offerの標準フィールドの他に以下のフィールドが含まれます。 @@ -186,7 +186,7 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 * `srcCurMalformed` - リクエストの`taker_pays`フィールドのフォーマットが適切ではありません。 * `dstAmtMalformed` - リクエストの`taker_gets`フィールドのフォーマットが適切ではありません。 * `srcIsrMalformed` - リクエストの`taker_pays`フィールドの`issuer`フィールドが無効です。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md index a5cf4ba70a..04a9122952 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md @@ -144,7 +144,7 @@ Loading: "/etc/rippled.cfg" * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actMalformed` - リクエストの`source_account`フィールドまたは`destination_account`フィールドに指定されている[アドレス][]のフォーマットが適切ではありません。(入力ミスが含まれていたり、長さが正しくない場合は、チェックサムは失敗します。) * `dstActNotFound` - リクエストの`destination_account`フィールドがレジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 * `srcActNotFound` - リクエストの`source_account`フィールドがレジャーのアカウントに対応していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md index 3944ef72f5..ec914f012a 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md @@ -128,6 +128,6 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md index 5368921d56..47fe0d2295 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md @@ -129,6 +129,6 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ * いずれかの[汎用エラータイプ][]。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md index 71ec0238ce..3533b3c438 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md @@ -18,12 +18,12 @@ path_findコマンドには3種類のモード(サブコマンド)があり * `close` - Pathfinding情報の送信を停止します * `status` - 現在処理中のPathfindingリクエストに関する情報を取得します -`rippled`サーバーは支払いを行うにあたり最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。サーバーの負荷が原因で、Pathfindingで最良のパスを検出できないことがあります。また、信頼できないサーバーからのPathfindingの結果には注意する必要があります。オペレーターの収益となるように、最良ではないパスを返すようにサーバーが改ざんされる可能性があります。Pathfindingについて信頼できる独自サーバーがない場合は、1つのサーバーから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバーからのPathfindingの結果を比較してください。(**注記:** サーバーから最良ではない結果が返されても、必ずしも悪意のある振る舞いの証拠とはなりません。サーバーの負荷が高い場合の症状である可能性もあります。) +`rippled`サーバは支払いを行うにあたり最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。サーバの負荷が原因で、Pathfindingで最良のパスを検出できないことがあります。また、信頼できないサーバからのPathfindingの結果には注意する必要があります。オペレーターの収益となるように、最良ではないパスを返すようにサーバが改ざんされる可能性があります。Pathfindingについて信頼できる独自サーバがない場合は、1つのサーバから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバからのPathfindingの結果を比較してください。(**注記:** サーバから最良ではない結果が返されても、必ずしも悪意のある振る舞いの証拠とはなりません。サーバの負荷が高い場合の症状である可能性もあります。) ## path_find create [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L50-L56 "Source") -`path_find`の`create`サブコマンドは、指定された特定アカウントから支払トランザクションを実行できるパスを探索する継続的なリクエストを作成し、別のアカウントが何らかの通貨で希望する額を受領できるようにします。初期レスポンスには2つのアドレス間で提案されるパスが含まれています。このパスにより、希望する額を受領できます。その後サーバーは、`"type": "path_find"`で有効なパスの更新を含む追加メッセージを送信します。更新の頻度はサーバーにより決定されますが、新しいレジャーバージョンがある場合には通常、数秒間に1回です。 +`path_find`の`create`サブコマンドは、指定された特定アカウントから支払トランザクションを実行できるパスを探索する継続的なリクエストを作成し、別のアカウントが何らかの通貨で希望する額を受領できるようにします。初期レスポンスには2つのアドレス間で提案されるパスが含まれています。このパスにより、希望する額を受領できます。その後サーバは、`"type": "path_find"`で有効なパスの更新を含む追加メッセージを送信します。更新の頻度はサーバにより決定されますが、新しいレジャーバージョンがある場合には通常、数秒間に1回です。 クライアントは一度に1つのPathfindingリクエストのみ実行できます。同じ接続ですでに他のPathfindingリクエストが実行されている場合、古いリクエストが自動的にクローズされ、新しいリクエストに置き換えられます。 @@ -64,7 +64,7 @@ path_findコマンドには3種類のモード(サブコマンド)があり | `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションに使用する[通貨額][]。`source_currencies`と同時に指定することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}新規: rippled 0.30.0{% /badge %} | | `paths` | 配列 | _(省略可)_ チェックする[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を表すオブジェクトの配列。すでに判明している特定パスの変更内容を常に把握する場合や、特定パスに沿った支払いにかかる総コストを確認する場合にこのフィールドを使用できます。 | -サーバーは`source_currencies`および`bridges`フィールドも認識しますが、これらのフィールドを使用した場合の結果は保証されません。これらのフィールドは将来のために予約されているものと考えてください。 +サーバは`source_currencies`および`bridges`フィールドも認識しますが、これらのフィールドを使用した場合の結果は保証されません。これらのフィールドは将来のために予約されているものと考えてください。 ### レスポンスのフォーマット @@ -468,7 +468,7 @@ path_findコマンドには3種類のモード(サブコマンド)があり ### 非同期フォローアップ -サーバーからは初期レスポンスの他に、時間の経過にともなう[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)のステータスを更新するため類似したフォーマットでさらにメッセージが送信されます。これらのメッセージには、元のWebSocketリクエストの`id`が含まれているので、どのリクエストからメッセージが送信されたかを確認できます。また、最上位レベルの`"type": "path_find"`フィールドは、追加レスポンスであることを示します。その他のフィールドは、初期レスポンスと同じ方法で定義されます。 +サーバからは初期レスポンスの他に、時間の経過にともなう[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)のステータスを更新するため類似したフォーマットでさらにメッセージが送信されます。これらのメッセージには、元のWebSocketリクエストの`id`が含まれているので、どのリクエストからメッセージが送信されたかを確認できます。また、最上位レベルの`"type": "path_find"`フィールドは、追加レスポンスであることを示します。その他のフィールドは、初期レスポンスと同じ方法で定義されます。 フォローアップに`"full_reply": true`が含まれている場合、これは現行レジャーの時点でrippledが検出できる最良のパスです。 @@ -500,7 +500,7 @@ path_find createリクエストからの非同期フォローアップの例を ## path_find close [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L58-L67 "Source") -`path_find`の`close`サブコマンドは、サーバーに対して現在実行中のPathfindingリクエストに関する情報の送信を停止するように指示します。 +`path_find`の`close`サブコマンドは、サーバに対して現在実行中のPathfindingリクエストに関する情報の送信を停止するように指示します。 ### リクエストのフォーマット リクエストのフォーマットの例: diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md index 968dd6f2c4..f3e67ca741 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md @@ -12,9 +12,9 @@ labels: `ripple_path_find`メソッドは、[path_findメソッド][]のシンプルなバージョンであり、すぐに利用できる[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を含む1つのレスポンスを返します。WebSocket APIとJSON-RPC APIの両方で使用できます。ただし、結果は時間の経過とともに古くなる傾向にあります。最新の状態を維持するために複数のコールを実行する代わりに、可能な場合には[path_findメソッド][]を使用して、継続的な更新をサブスクライブします。 -`rippled`サーバーは支払いを行うため最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。 +`rippled`サーバは支払いを行うため最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。 -**注意:** 信頼できないサーバーからのPathfindingの結果には注意してください。オペレーターの収益となるように、最良ではないパスを返すようにサーバーが改ざんされる可能性があります。サーバーの負荷が非常に高い場合にも不適切な結果が返される可能性があります。Pathfindingについて信頼できる独自サーバーがない場合は、1つのサーバーから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバーからのPathfindingの結果を比較してください。 +**注意:** 信頼できないサーバからのPathfindingの結果には注意してください。オペレーターの収益となるように、最良ではないパスを返すようにサーバが改ざんされる可能性があります。サーバの負荷が非常に高い場合にも不適切な結果が返される可能性があります。Pathfindingについて信頼できる独自サーバがない場合は、1つのサーバから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバからのPathfindingの結果を比較してください。 ## リクエストのフォーマット リクエストのフォーマットの例: @@ -341,7 +341,7 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" ## 考えられるエラー * [汎用エラータイプ][]のすべて。 -* `tooBusy` - サーバーの負荷が高すぎるため、パスを計算できません。管理者として接続している場合は、このエラーが返されることはありません。 +* `tooBusy` - サーバの負荷が高すぎるため、パスを計算できません。管理者として接続している場合は、このエラーが返されることはありません。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `srcActMissing` - `source_account`フィールドがリクエストで省略されています。 * `srcActMalformed` - リクエストの`source_account`フィールドのフォーマットが適切ではありません。 diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md index b7f696fefe..b6d76bc7e8 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md @@ -71,7 +71,7 @@ rippled channel_authorize s█████████████████ リクエストでは、`secret`、`seed`、`seed_hex`、`passphrase`のうち1つだけを指定する**必要があります**。 -**警告:** 信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて秘密鍵を送信しないでください。(これには、このリクエストの`secret`、`seed`、`seed_hex`、または`passphrase`フィールドも含まれます)このメソッドは、自身が実行するサーバー、または資金を預けている十分に信頼できるサーバーへの、安全で暗号化されたネットワーク接続でのみ使用してください。そうでない場合、盗聴者があなたの秘密鍵を使用してクレームに署名し、同じキーペアを使用してこのPayment Channelなどから資金をすべて持ち出す可能性があります。手順については、[安全な署名の設定](../../../../concepts/transactions/secure-signing.md)を参照してください。 +**警告:** 信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて秘密鍵を送信しないでください。(これには、このリクエストの`secret`、`seed`、`seed_hex`、または`passphrase`フィールドも含まれます)このメソッドは、自身が実行するサーバ、または資金を預けている十分に信頼できるサーバへの、安全で暗号化されたネットワーク接続でのみ使用してください。そうでない場合、盗聴者があなたの秘密鍵を使用してクレームに署名し、同じキーペアを使用してこのPayment Channelなどから資金をすべて持ち出す可能性があります。手順については、[安全な署名の設定](../../../../concepts/transactions/secure-signing.md)を参照してください。 ## レスポンスのフォーマット diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md index f1a6cb5363..859f5e40b3 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md @@ -6,7 +6,7 @@ metadata: --- # Server Infoメソッド -以下のメソッドを使用して、rippledサーバーの現在の状態についての情報を取得することができます。 +以下のメソッドを使用して、rippledサーバの現在の状態についての情報を取得することができます。 {% child-pages /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md index 2831e7c3c8..60db26d49e 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md @@ -4,7 +4,7 @@ parent: server-info-methods.html seo: description: サーバについての各種情報を、人間が読めるフォーマットでサーバにリクエストします。 labels: - - コアサーバー + - コアサーバ --- # server_info (rippled) [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ServerInfo.cpp "Source") diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md index ca36531372..01d441af3a 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md @@ -4,13 +4,13 @@ parent: server-info-methods.html seo: description: サーバの現在の状態に関するさまざまなマシンが読み取り可能な情報を問い合わせます。 labels: - - コアサーバー + - コアサーバ --- # server_state [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ServerState.cpp "Source") -`server_state`コマンドは、サーバーに対し`rippled`サーバーの現在の状態に関するさまざまな機械可読の情報を問い合わせます。レスポンスは[server_infoメソッド][]の場合とほぼ同じですが、読み取りやすい単位ではなく処理しやすい単位を使用します。(たとえば、XRP値は科学的記数法や10進数値の代わりに整数のdrop数で示され、時刻は秒単位ではなくミリ秒単位で示されます。) +`server_state`コマンドは、サーバに対し`rippled`サーバの現在の状態に関するさまざまな機械可読の情報を問い合わせます。レスポンスは[server_infoメソッド][]の場合とほぼ同じですが、読み取りやすい単位ではなく処理しやすい単位を使用します。(たとえば、XRP値は科学的記数法や10進数値の代わりに整数のdrop数で示され、時刻は秒単位ではなくミリ秒単位で示されます。) ## リクエストのフォーマット リクエストのフォーマットの例: @@ -270,11 +270,11 @@ Headers | `Field` | 型 | 説明 | |:---------------------------------|:-----------|:-----------------------| -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)の状態です。サーバーがAmendmentブロックではない場合、レスポンスではこのフィールドが省略されます。 | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)の状態です。サーバがAmendmentブロックではない場合、レスポンスではこのフィールドが省略されます。 | | `build_version` | 文字列 | 実行中の`rippled`バージョンのバージョン番号。 | -| `complete_ledgers` | 文字列 | ローカルの`rippled`がデータベース内に有するレジャーバージョンのシーケンス番号の範囲を示す表現。例えば、「2500-5000,32570-7695432」のように互いに素なシーケンスの場合があります。サーバーに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | +| `complete_ledgers` | 文字列 | ローカルの`rippled`がデータベース内に有するレジャーバージョンのシーケンス番号の範囲を示す表現。例えば、「2500-5000,32570-7695432」のように互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | | `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによって検証されていない、最新の閉鎖済みレジャーに関する情報。最新の検証済みレジャーが使用可能な場合、レスポンスではこのフィールドは省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | -| `io_latency_ms` | 数値 | I/O処理の待機に費やされた時間数(ミリ秒単位)。この数値が極端に低くない場合、`rippled`サーバーでは深刻な負荷の問題が発生している可能性があります。 | +| `io_latency_ms` | 数値 | I/O処理の待機に費やされた時間数(ミリ秒単位)。この数値が極端に低くない場合、`rippled`サーバでは深刻な負荷の問題が発生している可能性があります。 | | `jq_trans_overflow` | 文字列-数値 | Tこのサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](../../../../infrastructure/installation/capacity-planning.md)をご覧ください | | `last_close` | オブジェクト | サーバが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | | `last_close.converge_time` | 数値 | 直近で検証されたレジャーバージョンでコンセンサスに達するまでにかかった時間(ミリ秒)。 | @@ -282,24 +282,24 @@ Headers | `load` | オブジェクト | _(管理者専用)_ サーバの現在の負荷状態についての詳細な情報。 | | `load.job_types` | 配列 | _(管理者専用)_ サーバが実行している各種ジョブのレートや、各ジョブに要する時間についての情報。 | | `load.threads` | 数値 | _(管理者専用)_ サーバの主要なジョブプール内のスレッド数。 | -| `load_base` | 整数 | [トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)の計算で使用されるサーバー負荷のベースライン量です。`load_factor`が`load_base`と同等の場合、基本トランザクションコストのみが適用されます。`load_factor`が`load_base`よりも大きい場合、トランザクションコストにそれらの値の比率が乗算されます。たとえば`load_factor`が`load_base`の2倍である場合、トランザクションコストは2倍になります。 | -| `load_factor` | 数値 | サーバーが現在適用している負荷係数。トランザクションコストの乗数は、この値と`load_base`の比率によって決まります。負荷係数は、個別サーバーの最も高い負荷係数、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、およびネットワーク全体の負荷係数によって決定します。 | +| `load_base` | 整数 | [トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)の計算で使用されるサーバ負荷のベースライン量です。`load_factor`が`load_base`と同等の場合、基本トランザクションコストのみが適用されます。`load_factor`が`load_base`よりも大きい場合、トランザクションコストにそれらの値の比率が乗算されます。たとえば`load_factor`が`load_base`の2倍である場合、トランザクションコストは2倍になります。 | +| `load_factor` | 数値 | サーバが現在適用している負荷係数。トランザクションコストの乗数は、この値と`load_base`の比率によって決まります。負荷係数は、個別サーバの最も高い負荷係数、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、およびネットワーク全体の負荷係数によって決定します。 | | `load_factor_fee_escalation` | 整数 | (省略される場合があります)オープンレジャーに入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。 | | `load_factor_fee_queue` | 整数 | (省略される場合があります)キューが一杯になっている場合に、キューへ入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。 | | `load_factor_fee_reference` | 整数 | (省略される場合があります)負荷スケーリングのない[トランザクションコスト][]([手数料レベル][])。 | -| `load_factor_server` | 数値 | (省略される場合があります)サーバーが適用している負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | -| `peers` | 数値 | このサーバーが現在接続している他の`rippled`サーバーの数。 | +| `load_factor_server` | 数値 | (省略される場合があります)サーバが適用している負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | +| `peers` | 数値 | このサーバが現在接続している他の`rippled`サーバの数。 | | `ports` | 配列 | サーバがAPIコマンドを待ち受けているポートの一覧。配列の各エントリは[ポート記述子オブジェクト](#ポート記述子オブジェクト) となります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} | -| `pubkey_node` | 文字列 | ピアツーピア通信のためにこのサーバーを検証する際に使用される公開鍵。サーバーを初めて起動すると、サーバーにより _ノードキーペア_ が自動的に生成されます。(キーペアが削除されている場合、サーバーは新しいキーペアを作成できます。)`[node_seed]`構成オプションを使用して構成ファイルの永続値を設定できます。これは[クラスター化](../../../../concepts/networks-and-servers/clustering.md)で便利です。 | +| `pubkey_node` | 文字列 | ピアツーピア通信のためにこのサーバを検証する際に使用される公開鍵。サーバを初めて起動すると、サーバにより _ノードキーペア_ が自動的に生成されます。(キーペアが削除されている場合、サーバは新しいキーペアを作成できます。)`[node_seed]`構成オプションを使用して構成ファイルの永続値を設定できます。これは[クラスター化](../../../../concepts/networks-and-servers/clustering.md)で便利です。 | | `pubkey_validator` | 文字列 | _(管理者専用)_ このノードがレジャー検証の署名に使用する公開鍵。_検証キーペア_ は、`[validator_token]`構成フィールドまたは`[validation_seed]`構成フィールドから生成されます。 | | `reporting` | オブジェクト | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このサーバのレポートモード固有の設定に関する情報。 | | `reporting.etl_sources` | 配列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このレポートモードがデータを取得する P2P モードサーバのリスト。この配列の各エントリは[ETLソースオブジェクト](#etlソースオブジェクト)です。 | | `reporting.is_writer` | 真偽値 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ `true`の場合、このサーバは外部データベースにレジャーデータを書き込んでいます。`false`の場合、他のレポートモードサーバが共有データベースにデータを書き込んでいるか、読み取り専用に設定されているため、現在は書き込んでいません。 | | `reporting.last_publish_time` | 文字列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_このサーバが最後に有効なレジャーを[サブスクリプションストリーム](../subscription-methods/subscribe.md)に公開した日時を示すISO 8601タイムスタンプ。 | -| `server_state` | 文字列 | サーバーのネットワークへの参加度を示す文字列。詳細は、[考えられるサーバーの状態](../../api-conventions/rippled-server-states.md)をご覧ください。 | +| `server_state` | 文字列 | サーバのネットワークへの参加度を示す文字列。詳細は、[考えられるサーバの状態](../../api-conventions/rippled-server-states.md)をご覧ください。 | | `server_state_duration_us` | 数値 | サーバが現在の状態になってから経過した連続マイクロ秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} | -| `state_accounting` | オブジェクト | 各種[サーバ状態](../../api-conventions/rippled-server-states.md)のマップと、サーバーが各状態に費やした時間についての情報。これは、サーバーのネットワーク接続性の健全性を長期的に追跡するのに便利です。 | -| `state_accounting.*.duration_us` | 文字列 | サーバがこの状態になってから経過したマイクロ秒数。(サーバーが別の状態に移行するたびに更新されます。) | +| `state_accounting` | オブジェクト | 各種[サーバ状態](../../api-conventions/rippled-server-states.md)のマップと、サーバが各状態に費やした時間についての情報。これは、サーバのネットワーク接続性の健全性を長期的に追跡するのに便利です。 | +| `state_accounting.*.duration_us` | 文字列 | サーバがこの状態になってから経過したマイクロ秒数。(サーバが別の状態に移行するたびに更新されます。) | | `state_accounting.*.transitions` | 数値 | サーバがこの状態に移行した回数。 | | `time` | 文字列 | サーバの時計によるUTCでの現在時刻。 | | `uptime` | 数値 | サーバが連続稼働している秒数。 | @@ -310,8 +310,8 @@ Headers | `validated_ledger.reserve_base` | 符号なし整数 | すべてのアカウントで準備金として保有する必要がある最小額(XRPのdrop数) | | `validated_ledger.reserve_inc` | 符号なし整数 | アカウントがレジャー内に保有する各アイテムのアカウント準備金に追加する額(XRPのdrop数)。 | | `validated_ledger.seq` | 符号なし整数 | このレジャーの一意のシーケンス番号 | -| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバーがさらに検証をリクエストする場合があります。 | -| `validator_list_expires` | 数値 | _(管理者専用)_ 現在のバリデータリストが期限切れになる時点([Rippleエポック以降の経過秒数][])。サーバーが発行済みのバリデータリストをロードしていない場合は0。 | +| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバがさらに検証をリクエストする場合があります。 | +| `validator_list_expires` | 数値 | _(管理者専用)_ 現在のバリデータリストが期限切れになる時点([Rippleエポック以降の経過秒数][])。サーバが発行済みのバリデータリストをロードしていない場合は0。 | {% partial file="/@i18n/ja/docs/_snippets/etl-source-object.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md index e91b042fd8..b5375668f1 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md @@ -6,7 +6,7 @@ metadata: --- # Subscriptionメソッド -以下のメソッドを使用して、さまざまなイベントが発生したときに更新情報をサーバーからクライアントにプッシュできるようになるため、即座に情報を取得することができます。WebSocket APIのみ対応しています。 +以下のメソッドを使用して、さまざまなイベントが発生したときに更新情報をサーバからクライアントにプッシュできるようになるため、即座に情報を取得することができます。WebSocket APIのみ対応しています。 {% child-pages /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md index 634d857851..ede2d8abfe 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md @@ -2,7 +2,7 @@ html: subscribe.html parent: subscription-methods.html seo: - description: 特定のイベントが発生した場合に、定期的に通知するようサーバーにリクエストします。 + description: 特定のイベントが発生した場合に、定期的に通知するようサーバにリクエストします。 labels: - 支払い - アカウント @@ -12,7 +12,7 @@ labels: # subscribe [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Subscribe.cpp "Source") -`subscribe`メソッドは、特定のイベントが発生した場合に、定期的に通知するようサーバーにリクエストします。 +`subscribe`メソッドは、特定のイベントが発生した場合に、定期的に通知するようサーバにリクエストします。 ## リクエストのフォーマット リクエストのフォーマットの例: @@ -69,10 +69,10 @@ labels: | `Field` | 型 | 説明 | |:--------------------|:-------|:----------------------------------------------| | `streams` | 配列 | _(省略可)_ 以下に説明する、サブスクライブする汎用ストリームの文字列名の配列。 | -| `accounts` | 配列 | _(省略可)_ 検証済みトランザクションを監視するアカウントの一意のアドレスを持つ配列。これらのアドレスはXRP Ledgerの[base58][]フォーマットで記述されている必要があります。サーバーは、1つ以上のアカウントに影響するすべてのトランザクションについて通知を送信します。 | +| `accounts` | 配列 | _(省略可)_ 検証済みトランザクションを監視するアカウントの一意のアドレスを持つ配列。これらのアドレスはXRP Ledgerの[base58][]フォーマットで記述されている必要があります。サーバは、1つ以上のアカウントに影響するすべてのトランザクションについて通知を送信します。 | | `accounts_proposed` | 配列 | _(省略可)_ `accounts`と同様ですが、まだファイナライズされていないトランザクションを含みます。 | | `books` | 配列 | _(省略可)_ 以下に説明するとおり、更新の監視のために[オーダーブック](http://www.investopedia.com/terms/o/order-book.asp)を定義するオブジェクトの配列。 | -| `url` | 文字列 | (Websocketでは省略可、それ以外では必須)サーバーが各イベントのJSON-RPCコールバックを送信するURL。*管理者専用。* | +| `url` | 文字列 | (Websocketでは省略可、それ以外では必須)サーバが各イベントのJSON-RPCコールバックを送信するURL。*管理者専用。* | | `url_username` | 文字列 | _(省略可)_ コールバックURLで基本認証を行うためのユーザー名。 | | `url_password` | 文字列 | _(省略可)_ コールバックURLで基本認証を行うためのパスワード。 | @@ -80,13 +80,13 @@ labels: `streams`パラメーターは、以下のデフォルトの情報ストリームへのアクセスを可能にします。 -* `server` - `rippled`サーバーのステータス(ネットワーク接続など)が変更されるたびにメッセージを送信します。 +* `server` - `rippled`サーバのステータス(ネットワーク接続など)が変更されるたびにメッセージを送信します。 * `ledger` - コンセンサスプロセスで新しい検証済みレジャーが宣言されるたびにメッセージを送信します。 * `transactions` - 決済済みレジャーにトランザクションが追加されるたびにメッセージを送信します。 * `transactions_proposed` - 決済済みレジャーにトランザクションが追加される場合や、検証済みレジャーにまだ追加されておらず、今後も追加される見込みのない一部のトランザクションが決済済みレジャーに追加される場合に、メッセージを送信します。提案されたすべてのトランザクションが検証前に表示されるわけではありません。**注記:** 検証済みレジャーには[失敗したトランザクションも記録されます](../../../protocol/transactions/transaction-results/index.md)。これは、このようなトランザクションにはスパム対策のトランザクション手数料が課されるためです。 -* `validations` - サーバーがバリデータを信頼しているか否かにかかわらず、サーバーが検証メッセージを受信するたびに、メッセージを送信します。(個々の`rippled`は、サーバーが少なくとも定数の信頼できるバリデータから検証メッセージを受信した時点で、レジャーが検証済みであると宣言します。) -* `consensus` - サーバーがコンセンサスサイクルのフェーズ(open、establish、acceptedなど)を変更するたびにメッセージを送信します。 -* `peer_status` - **(管理者専用)** 接続しているピア`rippled`サーバーに関する情報(特にコンセンサスプロセスに関する情報)。 +* `validations` - サーバがバリデータを信頼しているか否かにかかわらず、サーバが検証メッセージを受信するたびに、メッセージを送信します。(個々の`rippled`は、サーバが少なくとも定数の信頼できるバリデータから検証メッセージを受信した時点で、レジャーが検証済みであると宣言します。) +* `consensus` - サーバがコンセンサスサイクルのフェーズ(open、establish、acceptedなど)を変更するたびにメッセージを送信します。 +* `peer_status` - **(管理者専用)** 接続しているピア`rippled`サーバに関する情報(特にコンセンサスプロセスに関する情報)。 `books`配列が指定されている場合、この配列の各要素は、以下のフィールドを持つオブジェクトです。 @@ -120,7 +120,7 @@ labels: レスポンスは[標準フォーマット][]に従っています。レスポンスに含まれるフィールドは、リクエストに指定されたサブスクリプションに応じて異なります。 * `accounts`および`accounts_proposed` - フィールドが返されません。 -* *Stream: server* - `load_base`(サーバーの現在の読み込みレベル)、`random`(ランダムに生成された値)などのサーバーのステータスに関する情報。これらの情報は変更される可能性があります。 +* *Stream: server* - `load_base`(サーバの現在の読み込みレベル)、`random`(ランダムに生成された値)などのサーバのステータスに関する情報。これらの情報は変更される可能性があります。 * *Stream: transactions*、*Stream: transactions_proposed*、*Stream: validations*、および*Stream: consensus* - フィールドは返されません。 * *Stream: ledger* - 手元にあるレジャーと現在の手数料体系に関する情報。`fee_base`(XRP単位のトランザクションの現行基本手数料)、`fee_ref`(手数料単位のトランザクションの現行基本手数料)、`ledger_hash`(最新の検証済みレジャーのハッシュ)、`reserve_base`(アカウントの最低必要準備金)などがあります。 * `books` - フィールドはデフォルトで返されません。リクエストが`"snapshot": true`に設定されている場合、`offers`(オーダーブックを定義するオファー定義オブジェクトの配列)を返します。 @@ -173,7 +173,7 @@ labels: | `reserve_base` | 数値 | アカウントの最低必要[準備金](../../../../concepts/accounts/reserves.md)([XRPのdrop数][])。このレジャーバージョンに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が含まれる場合は、次のレジャーバージョンから新しい基本準備金が適用されます。 | | `reserve_inc` | 数値 | アカウントがレジャーに所有しているオブジェクトごとの[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)([XRPのdrop数][])。レジャーに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が記録されている場合、このレジャー以降は新しい所有者準備金が適用されます。 | | `txn_count` | 数値 | このレジャーバージョンに含まれる新規トランザクションの数。 | -| `validated_ledgers` | 文字列 | _(省略される場合があります)_ サーバーで使用可能なレジャーの範囲。これは連続的ではない可能性があります。サーバーがネットワークに接続されていない場合や、サーバーが接続されていてもネットワークからレジャーをまだ取得していない場合は、このフィールドは返されません。 | +| `validated_ledgers` | 文字列 | _(省略される場合があります)_ サーバで使用可能なレジャーの範囲。これは連続的ではない可能性があります。サーバがネットワークに接続されていない場合や、サーバが接続されていてもネットワークからレジャーをまだ取得していない場合は、このフィールドは返されません。 | ## 検証ストリーム @@ -212,14 +212,14 @@ labels: | `Field`         | 型        | 説明     | |:------------------------|:-----------------|:--------------------------------| | `type` | 文字列 | 値`validationReceived`は、このメッセージが検証ストリームからであることを示します。 | -| `amendments` | 文字列の配列 | (省略される場合があります)このサーバーがプロトコルへの追加を求める[Amendment](../../../../concepts/networks-and-servers/amendments.md)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | -| `base_fee` | 整数 | (省略される場合があります)サーバーが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望するスケーリングされていないトランザクションコスト(`reference_fee`値)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | +| `amendments` | 文字列の配列 | (省略される場合があります)このサーバがプロトコルへの追加を求める[Amendment](../../../../concepts/networks-and-servers/amendments.md)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | +| `base_fee` | 整数 | (省略される場合があります)サーバが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望するスケーリングされていないトランザクションコスト(`reference_fee`値)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | | `flags` | 数値 | この検証メッセージに追加されるフラグのビットマスク。フラグ0x80000000は、検証の署名が完全に正規であることを示します。フラグ0x00000001は、完全な検証であることを示します。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | | `full` | ブール値 | `true`の場合は、完全な検証です。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | | `ledger_hash` | 文字列 | 提案されたレジャーの識別ハッシュを検証中です。 | | `ledger_index` | 文字列 - 整数 | 提案されたレジャーの[レジャーインデックス][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} | | `load_fee` | 整数 | (省略される場合があります)このバリデータにより現在施行されているローカルの負荷スケーリングされたトランザクションコスト(手数料単位)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | -| `master_key` | 文字列 | _(省略される場合があります)_ バリデータのマスター公開鍵(バリデータがXRP Ledgerの[base58][]フォーマットのバリデータトークンを使用している場合)。(関連項目: [`rippled`サーバーで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバーで検証を有効化)。){% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| `master_key` | 文字列 | _(省略される場合があります)_ バリデータのマスター公開鍵(バリデータがXRP Ledgerの[base58][]フォーマットのバリデータトークンを使用している場合)。(関連項目: [`rippled`サーバで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバで検証を有効化)。){% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | | `reserve_base` | 整数 | (省略される場合があります)このバリデータが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望する最低必要準備金(`account_reserve`値)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | | `reserve_inc` | 整数 | (省略される場合があります)このバリデータが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望する必要準備金(`owner_reserve`値)の増分。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | | `signature` | 文字列 | バリデータがこのレジャーへの投票に署名するときに使用する署名。 | @@ -367,7 +367,7 @@ labels: ## ピアステータスストリーム -管理者専用の`peer_status`ストリームは、このサーバーが接続している他の`rippled`サーバーの活動に関する大量の情報、特にコンセンサスプロセスでのサーバーのステータスを報告します。 +管理者専用の`peer_status`ストリームは、このサーバが接続している他の`rippled`サーバの活動に関する大量の情報、特にコンセンサスプロセスでのサーバのステータスを報告します。 ピアステータスストリームメッセージの例: @@ -383,7 +383,7 @@ labels: } ``` -ピアステータスストリームメッセージは、ピア`rippled`サーバーのステータスが変化したイベントを表します。これらのメッセージは、次のフィールドを持つJSONオブジェクトです。 +ピアステータスストリームメッセージは、ピア`rippled`サーバのステータスが変化したイベントを表します。これらのメッセージは、次のフィールドを持つJSONオブジェクトです。 | `Field`      | 値   | 説明      | |:-------------------|:-------|:-----------------------------------------------| @@ -549,7 +549,7 @@ labels: {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} -`consensus`ストリームは、[コンセンサスプロセス](../../../../concepts/consensus-protocol/index.md)でフェーズが変更されると、`consensusPhase`メッセージを送信します。このメッセージには、サーバーで実行されているコンセンサスの新しいフェーズが含まれます。 +`consensus`ストリームは、[コンセンサスプロセス](../../../../concepts/consensus-protocol/index.md)でフェーズが変更されると、`consensusPhase`メッセージを送信します。このメッセージには、サーバで実行されているコンセンサスの新しいフェーズが含まれます。 ```json { @@ -563,6 +563,6 @@ labels: | `Field`       | 型             | 説明        | |:--------------------|:--------------------------|:---------------------------| | `type` | 文字列 | `consensusPhase`は、このメッセージがコンセンサスストリームからのものであることを示します。 | -| `consensus` | 文字列 | サーバーで実行されている新しいコンセンサスフェーズ。値には、open、establish、acceptedなどがあります。 | +| `consensus` | 文字列 | サーバで実行されている新しいコンセンサスフェーズ。値には、open、establish、acceptedなどがあります。 | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md index c0fb471702..78aa486fd6 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md @@ -12,7 +12,7 @@ labels: # unsubscribe [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Unsubscribe.cpp "Source") -`unsubscribe`コマンドはサーバーに対して、特定のサブスクリプションまたは一連のサブスクリプションへのメッセージ送信の停止を指示します。 +`unsubscribe`コマンドはサーバに対して、特定のサブスクリプションまたは一連のサブスクリプションへのメッセージ送信の停止を指示します。 ## リクエストのフォーマット リクエストのフォーマットの例: diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md index 81f4123e7c..405540da01 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md @@ -26,7 +26,7 @@ labels: | `Field` | 型 | 説明 | |:------------|:--------|:-----------------------------------------------------| | `tx_blob` | 文字列 | 送信する署名済みトランザクションの16進表現。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)を送信することもできます。 | -| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバーにも中継されません。 | +| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバにも中継されません。 | ### リクエストのフォーマット @@ -71,7 +71,7 @@ submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534 このモードでは、トランザクションに署名してただちに送信します。このモードは、テストで使用することを目的としています。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)には使用できません。 - _デフォルトでは、署名と送信モードは[管理者専用](../../admin-api-methods/index.md)です。_ サーバーで[パブリック署名が有効になっている](../../../../infrastructure/configuration/enable-public-signing.md)場合は、パブリックメソッドとして使用できます。 + _デフォルトでは、署名と送信モードは[管理者専用](../../admin-api-methods/index.md)です。_ サーバで[パブリック署名が有効になっている](../../../../infrastructure/configuration/enable-public-signing.md)場合は、パブリックメソッドとして使用できます。 トランザクションの署名に使用するシークレットキーは、以下の方法で提供できます。 @@ -83,18 +83,18 @@ submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534 | `Field` | 型 | 説明 | |:---------------|:--------|:--------------------------------------------------| | `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md)。自動入力可能なフィールドについては、省略することも可能です。 | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | | `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | | `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | | `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | | `key_type` | 文字列 | _(省略可)_ このリクエストで提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | -| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバーにも中継されません。 | +| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバにも中継されません。 | | `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | -| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。トランザクションがXRP間の直接移動である場合は、このフィールドを省略してください。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | +| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。トランザクションがXRP間の直接移動である場合は、このフィールドを省略してください。**注意:** サーバは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | | `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)`Fee`パラメーターを省略する場合は、自動的に提供される`Fee`値が長期の基本トランザクションコストとこの値の積以下になるよう、このフィールドで制限します。 | -| `fee_div_max` | 整数 | (省略可。デフォルトは1)`fee_mult_max`と併用して、制限に使用される分数の乗数を作成します。具体的には、サーバーは基本[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を`fee_mult_max`で乗算した後、この値で除算して上限値(整数値に丸められます)を割り出します。自動的に提供される`Fee`値が上限値を超えている場合、submitコマンドは失敗します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | +| `fee_div_max` | 整数 | (省略可。デフォルトは1)`fee_mult_max`と併用して、制限に使用される分数の乗数を作成します。具体的には、サーバは基本[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を`fee_mult_max`で乗算した後、この値で除算して上限値(整数値に丸められます)を割り出します。自動的に提供される`Fee`値が上限値を超えている場合、submitコマンドは失敗します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | -サーバーによって特定のフィールドにどのように値が自動入力されるかについては、[signメソッド][]を参照してください。 +サーバによって特定のフィールドにどのように値が自動入力されるかについては、[signメソッド][]を参照してください。 ### リクエストのフォーマット リクエストのフォーマットの例: @@ -284,14 +284,14 @@ Connecting to 127.0.0.1:5005 ## 考えられるエラー * いずれかの[汎用エラータイプ][]。 -* `amendmentBlocked` - `rippled`サーバーでの[修正がブロックされている](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)ため、トランザクションをネットワークに送信できません。 -* `highFee` - `fee_mult_max`パラメーターが指定されましたが、サーバーの現在の手数料の乗数が指定値を超えています(署名と送信モードのみ)。 +* `amendmentBlocked` - `rippled`サーバでの[修正がブロックされている](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)ため、トランザクションをネットワークに送信できません。 +* `highFee` - `fee_mult_max`パラメーターが指定されましたが、サーバの現在の手数料の乗数が指定値を超えています(署名と送信モードのみ)。 * `internalJson` - トランザクションをJSONへとシリアル化するときに、内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 * `internalSubmit` - トランザクションを送信するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 * `internalTransaction` - トランザクションを処理するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `invalidTransaction` - トランザクションの形式が誤っているか、その他の理由で無効なものになっています。 -* `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。(署名と送信モードのみ)。 -* `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。(署名と送信モードのみ)。 +* `noPath` - トランザクションにパスが含まれておらず、サーバは、このペイメントの発生経路となるパスを検出できませんでした。(署名と送信モードのみ)。 +* `tooBusy` - トランザクションにパスが含まれていませんが、サーバがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。(署名と送信モードのみ)。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md index c23aa5cd17..95505faa64 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md @@ -139,7 +139,7 @@ rippled submit_multisigned '{ | `Field` | 型 | 説明 | |:------------|:--------|:-----------------------------------------------------| | `tx_json` | オブジェクト | `Signers`からなる配列が指定された[JSONフォーマットのトランザクション](../../../protocol/transactions/index.md)。成功させるには、署名の重みが[SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)の定数以上でなければなりません。 | -| `fail_hard` | ブール値 | (省略可、デフォルトではfalseです)trueで、かつトランザクションがローカルで失敗する場合は、このトランザクションの再試行や、他のサーバーへのリレーは行わないでください。 | +| `fail_hard` | ブール値 | (省略可、デフォルトではfalseです)trueで、かつトランザクションがローカルで失敗する場合は、このトランザクションの再試行や、他のサーバへのリレーは行わないでください。 | ## レスポンスのフォーマット diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md index 80cba42f6c..c60601aec5 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md @@ -210,18 +210,18 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA | `metadata` | オブジェクト | [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | | `tx_json` | オブジェクト | [Transactionオブジェクト](../../../protocol/transactions/index.md)のJSON表現。 | -サーバーがトランザクションの検出に失敗する原因として、次のようなものが考えられます。 +サーバがトランザクションの検出に失敗する原因として、次のようなものが考えられます。 * トランザクションが存在しません。 * トランザクションが存在しますが、指定のレジャーバージョンに含まれていません。 -* サーバーには、使用可能な指定のレジャーバージョンがありません。正しいバージョンを保管する別のサーバーからのレスポンスは、異なる可能性があります。 +* サーバには、使用可能な指定のレジャーバージョンがありません。正しいバージョンを保管する別のサーバからのレスポンスは、異なる可能性があります。 ## 考えられるエラー * いずれかの[汎用エラータイプ][]。 * `fieldNotFoundTransaction` - `tx_hash`フィールドがリクエストで省略されています。 * `notYetImplemented` - レジャーバージョンがリクエストに指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 * `transactionNotFound` - リクエストに指定されているトランザクションが指定のレジャーで見つかりませんでした。(トランザクションが異なるレジャーバージョンにあるか、またはトランザクションがまったく使用できない可能性があります。) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md index def7bfa1e6..bf8050b1d7 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md @@ -898,6 +898,6 @@ rippled tx_history 0 * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noPermission` - `start`フィールドに指定されている値が10000を超えていますが、サーバーに管理者として接続していません。 +* `noPermission` - `start`フィールドに指定されている値が10000を超えていますが、サーバに管理者として接続していません。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md index 7ec50aab93..984ab0c487 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md @@ -4,7 +4,7 @@ parent: utility-methods.html seo: description: コマンドのパラメーターをJSON値として受け入れ、他のコマンドを実行します。 labels: - - コアサーバー + - コアサーバ --- # json diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md index b08214cfda..9f986b3915 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md @@ -4,7 +4,7 @@ parent: utility-methods.html seo: description: 確認レスポンスを返します。これにより、接続のステータスと遅延をテストできます。 labels: - - コアサーバー + - コアサーバ --- # ping [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Ping.cpp "Source") diff --git a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md index d4fbf659e3..c00071e4ab 100644 --- a/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md +++ b/@i18n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md @@ -4,7 +4,7 @@ parent: utility-methods.html seo: description: クライアントが乱数生成のエントロピー生成源として使用する乱数を提供します。 labels: - - コアサーバー + - コアサーバ --- # random [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Random.cpp "Source") diff --git a/@i18n/ja/docs/references/protocol/binary-format.md b/@i18n/ja/docs/references/protocol/binary-format.md index ffd8b69329..135c9f93aa 100644 --- a/@i18n/ja/docs/references/protocol/binary-format.md +++ b/@i18n/ja/docs/references/protocol/binary-format.md @@ -17,7 +17,7 @@ curated_anchors: # バイナリフォーマット [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source") -このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、[サーバー間のピアツーピア通信](../../concepts/networks-and-servers/peer-protocol.md)を含む他の用途にも使用されます。通常、[`rippled` API](../http-websocket-apis/index.md)は、JSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。 +このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、[サーバ間のピアツーピア通信](../../concepts/networks-and-servers/peer-protocol.md)を含む他の用途にも使用されます。通常、[`rippled` API](../http-websocket-apis/index.md)は、JSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。 トランザクションをJSONまたはその他の表現から正規バイナリフォーマットへシリアル化するプロセスのステップを、以下にまとめます。 diff --git a/@i18n/ja/docs/references/protocol/data-types/basic-data-types.md b/@i18n/ja/docs/references/protocol/data-types/basic-data-types.md index f68a4739e6..7f2898cb7a 100644 --- a/@i18n/ja/docs/references/protocol/data-types/basic-data-types.md +++ b/@i18n/ja/docs/references/protocol/data-types/basic-data-types.md @@ -95,7 +95,7 @@ APIメソッドの多くは、レジャーのインスタンスを指定する * `closed`: 変更できないように閉鎖され、検証を提案されている最新のレジャー - * `current`: サーバーで現在処理中のレジャーバージョン + * `current`: サーバで現在処理中のレジャーバージョン 上記3つのフォーマットすべてを受け入れる、廃止予定の`ledger`パラメーターもあります。このパラメーターは使用*しないでください*。今後予告なしに廃止される可能性があります。 diff --git a/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md b/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md index 7b0981c368..72d8b3ffb4 100644 --- a/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +++ b/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md @@ -79,7 +79,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ### `NFToken`オブジェクトの削除 -`NFToken`は同じ手法で削除することもできます。ページ内の`NFToken`の数がある閾値を下回ると、サーバーはそのページを前後のページと統合して準備金を取り戻そうとします。 +`NFToken`は同じ手法で削除することもできます。ページ内の`NFToken`の数がある閾値を下回ると、サーバはそのページを前後のページと統合して準備金を取り戻そうとします。 ### {% $frontmatter.seo.title %}の準備金 diff --git a/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md b/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md index 458c677689..d7e0b76028 100644 --- a/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md +++ b/@i18n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md @@ -76,7 +76,7 @@ _([MultiSign Amendment][]により追加されました。)_ | `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチシグは、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 | | `WalletLocator` | 文字列 | Hash256 | (省略可)任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。[ExpandedSignerList amendment][]により追加されました。 | -マルチシグトランザクションを処理する際に、サーバーはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.md)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。 +マルチシグトランザクションを処理する際に、サーバはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.md)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。 ## {% $frontmatter.seo.title %}のフラグ diff --git a/@i18n/ja/docs/references/protocol/transactions/common-fields.md b/@i18n/ja/docs/references/protocol/transactions/common-fields.md index c054e4c4b2..d7a2ec9472 100644 --- a/@i18n/ja/docs/references/protocol/transactions/common-fields.md +++ b/@i18n/ja/docs/references/protocol/transactions/common-fields.md @@ -46,7 +46,7 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク ## 自動入力可能なフィールド -一部のフィールドについては、トランザクションの署名前に、`rippled`サーバーによって、または署名に使用される[ripple-lib][]などのライブラリーによって値を自動入力できます。値を自動入力するには、最新の状態を取得するためのXRP Ledgerへのアクティブな接続が必要です。したがって、オフラインでは実行できません。[ripple-lib][]と`rippled`のどちらも、以下の値を自動的に提供できます。 +一部のフィールドについては、トランザクションの署名前に、`rippled`サーバによって、または署名に使用される[ripple-lib][]などのライブラリーによって値を自動入力できます。値を自動入力するには、最新の状態を取得するためのXRP Ledgerへのアクティブな接続が必要です。したがって、オフラインでは実行できません。[ripple-lib][]と`rippled`のどちらも、以下の値を自動的に提供できます。 * `Fee` - ネットワークに基づいて[トランザクションコスト][]を自動的に入力します。 @@ -54,7 +54,7 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク * `Sequence` - トランザクションを送信する側のアカウントの次のシーケンス番号を自動的に使用します。 -本番システムについては、これらのフィールドの値がサーバーによって入力される状態に _しない_ ことをお勧めします。例えば、ネットワークの負荷が一時的に急上昇したためにトランザクションコストが高騰した場合、トランザクションによっては、一時的な高額のコストを支払うよりも、必要に応じて待機し、コストが低下してから送信したほうが好ましいことがあります。 +本番システムについては、これらのフィールドの値がサーバによって入力される状態に _しない_ ことをお勧めします。例えば、ネットワークの負荷が一時的に急上昇したためにトランザクションコストが高騰した場合、トランザクションによっては、一時的な高額のコストを支払うよりも、必要に応じて待機し、コストが低下してから送信したほうが好ましいことがあります。 [Paymentトランザクション][]タイプの[`Paths`フィールド](types/payment.md#パス)についても、値を自動入力できます。 diff --git a/@i18n/ja/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md b/@i18n/ja/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md index c81013f764..44b270fa03 100644 --- a/@i18n/ja/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md +++ b/@i18n/ja/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md @@ -10,7 +10,7 @@ labels: --- # 疑似トランザクション -疑似トランザクションはユーザーにより送信されることがなく、またネットワークで伝搬されません。その代わりに、サーバーは提案されたレジャーに疑似トランザクションを直接挿入することを選択できます。十分な数のサーバーがこの疑似トランザクションを挿入し、疑似トランザクションがコンセンサスを通過すると、この疑似トランザクションはレジャーに記録され、それ以降レジャーデータに表示されます。 +疑似トランザクションはユーザーにより送信されることがなく、またネットワークで伝搬されません。その代わりに、サーバは提案されたレジャーに疑似トランザクションを直接挿入することを選択できます。十分な数のサーバがこの疑似トランザクションを挿入し、疑似トランザクションがコンセンサスを通過すると、この疑似トランザクションはレジャーに記録され、それ以降レジャーデータに表示されます。 通常のトランザクションの必須フィールドの中には、疑似トランザクションには不適切なものがあります。このような場合、疑似トランザクションのデフォルト値は以下のようになります。 diff --git a/@i18n/ja/docs/references/protocol/transactions/transaction-results/index.md b/@i18n/ja/docs/references/protocol/transactions/transaction-results/index.md index 27943e922f..ed78cccc91 100644 --- a/@i18n/ja/docs/references/protocol/transactions/transaction-results/index.md +++ b/@i18n/ja/docs/references/protocol/transactions/transaction-results/index.md @@ -2,7 +2,7 @@ html: transaction-results.html parent: transaction-formats.html seo: - description: rippledサーバーのトランザクション結果の解釈の仕方について説明します。 + description: rippledサーバのトランザクション結果の解釈の仕方について説明します。 labels: - トランザクション送信 --- @@ -10,27 +10,27 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/TER.h "Source") -`rippled`サーバーは、トランザクション結果の要約を結果コードで示し、結果コードは`engine_result`や`meta.TransactionResult`などのフィールドに記述されます。これらのコードは、それぞれ異なるプレフィクスを付加した複数のカテゴリーに分類されます。 +`rippled`サーバは、トランザクション結果の要約を結果コードで示し、結果コードは`engine_result`や`meta.TransactionResult`などのフィールドに記述されます。これらのコードは、それぞれ異なるプレフィクスを付加した複数のカテゴリーに分類されます。 | カテゴリー | プレフィクス | 説明 | |:----------------------|:------------------------|:---------------------------| | コストの請求のみ | [tec](tec-codes.md) | トランザクションは意図された目的を果さず、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | -| 失敗 | [tef](tef-codes.md) | サーバーの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | -| ローカルエラー | [tel](tel-codes.md) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバーでエラーが発生しました。サーバーまたは時間を変えて再送信すると、別のレスポンスを得られる可能性があります。 | +| 失敗 | [tef](tef-codes.md) | サーバの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | +| ローカルエラー | [tel](tel-codes.md) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバでエラーが発生しました。サーバまたは時間を変えて再送信すると、別のレスポンスを得られる可能性があります。 | | 形式が正しくないトランザクション | [tem](tem-codes.md) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 | | 再試行 | [ter](ter-codes.md) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 | | 成功 | [tes](tes-success.md) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | **警告:** トランザクションの暫定的な結果コードは、最終的な結果とは異なるものになる場合があります。暫定的に成功とされたトランザクションが最終的に失敗する場合や、暫定的に失敗とされたトランザクションが最終的に成功する場合もあります。暫定的に失敗とされたトランザクションが、最終的に別のコードで失敗とされる場合もあります。トランザクションの結果が最終的なものとなるタイミングを判断する方法については、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)を参照してください。 -ローカルエラー(`tel`)と形式が正しくないトランザクション(`tem`)の違いは、プロトコルレベルでのルールの問題です。例えば、トランザクションに含めることができるパスの最大数について、プロトコルでは上限が設定されていないとします。一方、サーバーでは、処理できるパスの数について上限を定義している場合があります。2つのサーバーがあり、設定がそれぞれ異なっている場合、一方はパスが多いという理由でトランザクションの`tel`エラーを返すのに対して、他方のサーバーではトランザクションが正常に処理されることもあります。コンセンサスを獲得したトランザクションを処理できるサーバーが十分にある場合、検証済みレジャーに含まれる可能性はあります。 +ローカルエラー(`tel`)と形式が正しくないトランザクション(`tem`)の違いは、プロトコルレベルでのルールの問題です。例えば、トランザクションに含めることができるパスの最大数について、プロトコルでは上限が設定されていないとします。一方、サーバでは、処理できるパスの数について上限を定義している場合があります。2つのサーバがあり、設定がそれぞれ異なっている場合、一方はパスが多いという理由でトランザクションの`tel`エラーを返すのに対して、他方のサーバではトランザクションが正常に処理されることもあります。コンセンサスを獲得したトランザクションを処理できるサーバが十分にある場合、検証済みレジャーに含まれる可能性はあります。 -これに対して、`tem`エラーは、設定にかかわらずトランザクションを適用できるサーバーが存在しないことを示唆しています。トランザクションがプロトコルのルールに違反しているか、許容限度を超えてあいまいであるか、完全に無意味なものになっています。形式が正しくないトランザクションが有効なものになる可能性があるのは、プロトコルに変更が生じた場合のみです。例えば、新しい機能が採用された場合、当該の機能を使用するトランザクションは、当該の機能がまだ採用されていない古いソフトウェアを実行しているサーバーによって、形式が正しくないと見なされる可能性があります。 +これに対して、`tem`エラーは、設定にかかわらずトランザクションを適用できるサーバが存在しないことを示唆しています。トランザクションがプロトコルのルールに違反しているか、許容限度を超えてあいまいであるか、完全に無意味なものになっています。形式が正しくないトランザクションが有効なものになる可能性があるのは、プロトコルに変更が生じた場合のみです。例えば、新しい機能が採用された場合、当該の機能を使用するトランザクションは、当該の機能がまだ採用されていない古いソフトウェアを実行しているサーバによって、形式が正しくないと見なされる可能性があります。 ## 即時のレスポンス -[submitメソッド][]から返されるレスポンスには、トランザクションのローカル処理中に発生した事項を示す、`rippled`サーバーからの暫定的な結果が含まれています。 +[submitメソッド][]から返されるレスポンスには、トランザクションのローカル処理中に発生した事項を示す、`rippled`サーバからの暫定的な結果が含まれています。 `submit`からのレスポンスに含まれているのは、以下のフィールドです。 @@ -48,6 +48,6 @@ labels: "engine_result_message": "The transaction was applied.Only final in a validated ledger." ``` -**注記:** この段階で成功の結果が表示されたとしても、トランザクションが完全に成功したことを示すわけではありません。ローカルのサーバーに保持されている暫定バージョンのレジャーに対して、正常に適用されたにすぎません。この段階での失敗の結果も、暫定的なものであり変化する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)を参照してください。 +**注記:** この段階で成功の結果が表示されたとしても、トランザクションが完全に成功したことを示すわけではありません。ローカルのサーバに保持されている暫定バージョンのレジャーに対して、正常に適用されたにすぎません。この段階での失敗の結果も、暫定的なものであり変化する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)を参照してください。 {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md index ccb02b2061..300c9a8af6 100644 --- a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md +++ b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md @@ -45,7 +45,7 @@ labels: | `tecNO_PERMISSION` | 139 | 送信者にはこの操作を実行する権限がありません。たとえば[EscrowFinishトランザクション][]が`FinishAfter`時刻に達する前に保留中の支払をリリースしようとしたか、送信者が所有していないChannelで誰かが[PaymentChannelFund][]を使用しようとしたか、または[Payment][]が「DepositAuth」フラグが有効になっているアカウントに資金の送金を試みました。 | | `tecNO_REGULAR_KEY` | 131 | [AccountSetトランザクション][]がマスターキーを無効にしようとしましたが、アカウントにはマスターキー以外で[トランザクションを承認する](../../../../concepts/transactions/index.md#トランザクションの承認)方法がありません。[マルチシグ](../../../../concepts/accounts/multi-signing.md)が有効な場合、このコードは廃止予定であり、代わりに`tecNO_ALTERNATIVE_KEY`が使用されます。 | | `tecNO_TARGET` | 138 | トランザクションが参照するEscrowレジャーオブジェクトまたはPayChannelレジャーオブジェクトが存在していません。これらのオブジェクトは、これまでに存在したことがないか、すでに削除されています。(たとえば、別の[EscrowFinishトランザクション][]で保留中の支払がすでに実行されている場合などです。)あるいは、支払先アカウントで`asfDisallowXRP`が設定されているため、このアカウントは[PaymentChannelCreate][]トランザクションまたは[EscrowCreate][]トランザクションの宛先に指定できません。 | -| `tecOVERSIZE` | 145 | サーバーがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1" %}新規: rippled 0.29.0-hf1{% /badge %} | +| `tecOVERSIZE` | 145 | サーバがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1" %}新規: rippled 0.29.0-hf1{% /badge %} | | `tecOWNERS` | 132 | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](../types/accountset.md#accountsetのフラグ)フラグを有効にできません。 | | `tecPATH_DRY` | 128 | トランザクションが失敗しました。指定されたパスに、送信の実行に十分な流動性がありませんでした。つまり、支払元アカウントと支払先アカウントはトラストラインにより関連付けされていません。 | | `tecPATH_PARTIAL` | 101 | トランザクションが失敗しました。指定されたパスに、全額を送金するのに十分な流動性がありませんでした。 | diff --git a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md index 73b33c529e..82c2eee1cc 100644 --- a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md +++ b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md @@ -22,9 +22,9 @@ labels: | `tefBAD_QUORUM` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 | | `tefBAD_SIGNATURE` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 | | `tefCREATED` | **廃止予定。** | -| `tefEXCEPTION` | トランザクションの処理中に、サーバーが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | +| `tefEXCEPTION` | トランザクションの処理中に、サーバが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | | `tefFAILURE` | トランザクション適用中の不明な障害。 | -| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバーが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | +| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | | `tefINVARIANT_FAILED` | [トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を請求しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]により追加されました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | | `tefMASTER_DISABLED` | トランザクションはアカウントのマスターキーで署名されていましたが、アカウントに`lsfDisableMaster`フィールドが設定されていました。 | | `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](../../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 | diff --git a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md index d3fabdd9e6..05c29e7865 100644 --- a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md +++ b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md @@ -2,33 +2,33 @@ html: tel-codes.html parent: transaction-results.html seo: - description: telコードは、トランザクションを処理するローカルサーバーでのエラーを示します。 + description: telコードは、トランザクションを処理するローカルサーバでのエラーを示します。 labels: - トランザクション送信 --- # telコード -これらのコードは、トランザクションを処理するローカルサーバーでのエラーを示します。構成や負荷レベルが異なる別のサーバーでは同じトランザクションが正常に処理される場合があります。-399から-300までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 +これらのコードは、トランザクションを処理するローカルサーバでのエラーを示します。構成や負荷レベルが異なる別のサーバでは同じトランザクションが正常に処理される場合があります。-399から-300までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 **注意:** `tel`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼性の高いトランザクション送信](../../../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 | コード | 説明 | |:----------------------|:-----------------------------------------------------| | `telBAD_DOMAIN` | トランザクションで指定されたドメイン値([AccountSetトランザクション][]の`Domain`フィールドなど)は、レジャーに保管するには長すぎます。 | -| `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバーが処理できません。 | +| `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバが処理できません。 | | `telBAD_PUBLIC_KEY` | トランザクションで指定された公開鍵値([AccountSetトランザクション][]の`MessageKey`フィールドなど)の長すぎます。 | -| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしていませんが、[キュー制限](../../../../concepts/transactions/transaction-queue.md#キューの制約事項)を満たしていなかったため、サーバーはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 | -| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバーへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバーへ送信を試みることができます。 | -| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またこのサーバーのトランザクションキューが一杯であるため、サーバーはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバーへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。 | +| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしていませんが、[キュー制限](../../../../concepts/transactions/transaction-queue.md#キューの制約事項)を満たしていなかったため、サーバはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 | +| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバへの送信を試みることができます。 | +| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバへの送信を試みることができます。 | +| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバへの送信を試みることができます。 | +| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバへ送信を試みることができます。 | +| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またこのサーバのトランザクションキューが一杯であるため、サーバはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。 | | `telFAILED_PROCESSING` | トランザクションの処理中に不明なエラーが発生しました。 | -| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバーの負荷レベルに基づいて定められるサーバーの現在の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)要件を満たすのに十分な値ではありあません。 | +| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバの負荷レベルに基づいて定められるサーバの現在の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)要件を満たすのに十分な値ではありあません。 | | `telLOCAL_ERROR` | 不明なローカルエラー。 | | `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | トランザクションは[`NetworkID`フィールド](../common-fields.md#networkidフィールド)を指定していますが、現在のネットワークルールでは`NetworkID`フィールドは指定しないことになっています。(メインネットやその他のチェーンIDが1024以下のネットワークではこのフィールドは使用されません)。もしトランザクションが`NetworkID`を使用しないネットワーク向けであった場合、そのフィールドを削除して再試行してください。トランザクションが別のネットワーク向けだった場合は、正しいネットワークに接続されているサーバに送信してください。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | | `telNO_DST`_`PARTIAL` | トランザクションは、新しいアカウントに資金を供給するためのXRPによる支払いですが、[tfPartialPaymentフラグ](../../../../concepts/payment-types/partial-payments.md)が有効になっていました。これは許可されていません。 | | `telREQUIRES_NETWORK_ID` | トランザクションは[`NetworkID`フィールド](../common-fields.md#networkidフィールド)を指定していません。トランザクションが`NetworkID`を必要とするネットワーク向けであった場合、フィールドを追加して再試行してください。トランザクションが別のネットワーク向けであった場合、正しいネットワークに接続されているサーバに送信してください。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | -| `telWRONG_NETWORK` | トランザクションが現在のネットワークに対して間違った [`NetworkID` 値](../common-fields.md#networkidフィールド) を指定しています。目的のネットワークに対して正しい `NetworkID`値を指定するか、正しいネットワークに接続されているサーバーにトランザクションを送信してください。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | +| `telWRONG_NETWORK` | トランザクションが現在のネットワークに対して間違った [`NetworkID` 値](../common-fields.md#networkidフィールド) を指定しています。目的のネットワークに対して正しい `NetworkID`値を指定するか、正しいネットワークに接続されているサーバにトランザクションを送信してください。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md index 30fbaff37b..d5a59064ab 100644 --- a/@i18n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md +++ b/@i18n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md @@ -12,6 +12,6 @@ labels: | コード | 説明 | |:-----------|:----------------------------------------------------------------| -| `tesSUCCESS` | トランザクションが適用され、他のサーバーに転送されました。検証済みレジャーにこのコードが記録されている場合は、トランザクションの成功が最終的な結果となります。 | +| `tesSUCCESS` | トランザクションが適用され、他のサーバに転送されました。検証済みレジャーにこのコードが記録されている場合は、トランザクションの成功が最終的な結果となります。 | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@i18n/ja/docs/references/protocol/transactions/types/ammbid.md b/@i18n/ja/docs/references/protocol/transactions/types/ammbid.md index 653b89da86..178eaa5977 100644 --- a/@i18n/ja/docs/references/protocol/transactions/types/ammbid.md +++ b/@i18n/ja/docs/references/protocol/transactions/types/ammbid.md @@ -105,7 +105,7 @@ AMMのLPトークンを使って落札すると、落札に利用したLPトー P = M ``` -**注記:** レジャーを作成する際に、ネットワーク上のすべてのサーバーが同じ結果になるように、時間の計測は前回のレジャーの[正規の閉鎖時刻](../../../../concepts/ledgers/ledger-close-times.md)に基づいており、これはおおよその目安の時間です。 +**注記:** レジャーを作成する際に、ネットワーク上のすべてのサーバが同じ結果になるように、時間の計測は前回のレジャーの[正規の閉鎖時刻](../../../../concepts/ledgers/ledger-close-times.md)に基づいており、これはおおよその目安の時間です。 ## 払い戻し diff --git a/@i18n/ja/docs/references/protocol/transactions/types/payment.md b/@i18n/ja/docs/references/protocol/transactions/types/payment.md index 68568882a1..18e4fc5772 100644 --- a/@i18n/ja/docs/references/protocol/transactions/types/payment.md +++ b/@i18n/ja/docs/references/protocol/transactions/types/payment.md @@ -93,7 +93,7 @@ Payment型のトランザクションでは、資金供給のないアドレス * XRP間の送金。 * 送信者と受信者を接続するトラストライン上での直接送金。 -`Paths`フィールドを指定すると、サーバーは、提供されたセットと _デフォルトパス_ の中から、使用するパス(指定されたアカウントに接続する上で、最も直行となる経路)をトランザクション処理時に判別します。このように決定された判別は、コストを最小化しようとするものですが、完璧であることは保証されません。 +`Paths`フィールドを指定すると、サーバは、提供されたセットと _デフォルトパス_ の中から、使用するパス(指定されたアカウントに接続する上で、最も直行となる経路)をトランザクション処理時に判別します。このように決定された判別は、コストを最小化しようとするものですが、完璧であることは保証されません。 `Paths`フィールドを、空の配列としたり、メンバーがすべて空の配列あるような配列としたりすることはできません。 diff --git a/@i18n/ja/docs/references/xrp-api.md b/@i18n/ja/docs/references/xrp-api.md index dbb5c4a8cd..ce540fae50 100644 --- a/@i18n/ja/docs/references/xrp-api.md +++ b/@i18n/ja/docs/references/xrp-api.md @@ -11,4 +11,4 @@ filters: --- # XRP-API -XRP-API サーバーは、XRP Ledger への REST ライクな代替インターフェースを提供しますが、現在安定したソフトウェアとは言えず、積極的なサポートは行っていません。 +XRP-API サーバは、XRP Ledger への REST ライクな代替インターフェースを提供しますが、現在安定したソフトウェアとは言えず、積極的なサポートは行っていません。 diff --git a/@i18n/ja/docs/references/xrp-ledger-toml.md b/@i18n/ja/docs/references/xrp-ledger-toml.md index 302bc0dc87..9161736b2e 100644 --- a/@i18n/ja/docs/references/xrp-ledger-toml.md +++ b/@i18n/ja/docs/references/xrp-ledger-toml.md @@ -28,7 +28,7 @@ XRP Ledgerバリデータを実行するか、ビジネスにXRP Ledgerを使用 ## ファイルの提供方法 -`xrp-ledger.toml`ファイルは、Webサーバーより提供することを前提としています。このファイルは、次のURLで提供できます。 +`xrp-ledger.toml`ファイルは、Webサーバより提供することを前提としています。このファイルは、次のURLで提供できます。 ``` https://{DOMAIN}/.well-known/xrp-ledger.toml @@ -43,7 +43,7 @@ https://xrp.services.example.com/.well-known/xrp-ledger.toml ### プロトコル -上記の内容は、セキュリティ上、**HTTPSプロトコル**経由で提供する必要があります。その際、[TLS](https://tools.ietf.org/html/rfc8446)の最新の安全なバージョンと、既知の認証局によって署名された有効な証明書を使用します。(注記: TLSは以前はSSLと呼ばれていましたが、現在それらのバージョンは安全とは言えません。)つまり、`xrp-ledger.toml`ファイルをホストするための前提条件は、適切に構成されたHTTPSのWebサーバーを用意することです。 +上記の内容は、セキュリティ上、**HTTPSプロトコル**経由で提供する必要があります。その際、[TLS](https://tools.ietf.org/html/rfc8446)の最新の安全なバージョンと、既知の認証局によって署名された有効な証明書を使用します。(注記: TLSは以前はSSLと呼ばれていましたが、現在それらのバージョンは安全とは言えません。)つまり、`xrp-ledger.toml`ファイルをホストするための前提条件は、適切に構成されたHTTPSのWebサーバを用意することです。 プレーンHTTPプロトコルは中間者攻撃に対して脆弱です。例えば、一部のインターネットサービスは、プレーンHTTP経由で取得したコンテンツを、独自の広告が挿入されるように改変していることが知られています。同様の技術によって`xrp-ledger.toml`ファイルの内容が誤って伝達され、スクリプトの誤動作または虚偽的な動作につながる可能性を防ぐため、プレーンHTTP経由で提供される`xrp-ledger.toml`ファイルの内容を信頼すべきではありません。 @@ -69,21 +69,21 @@ https://xrp.services.example.com/.well-known/xrp-ledger.toml #### CORS -他のWebサイト上のスクリプトでファイルを照会できるようにするには、ファイルに対して[CORS][]を有効にする必要があります。具体的には、サーバーで`xrp-ledger.toml`を提供するときに次のヘッダーを付加する必要があります。 +他のWebサイト上のスクリプトでファイルを照会できるようにするには、ファイルに対して[CORS][]を有効にする必要があります。具体的には、サーバで`xrp-ledger.toml`を提供するときに次のヘッダーを付加する必要があります。 ``` Access-Control-Allow-Origin: * ``` -このヘッダーが付加されるようにサーバーを構成する方法については、[CORSセットアップ](#corsの設定)を参照してください。 +このヘッダーが付加されるようにサーバを構成する方法については、[CORSセットアップ](#corsの設定)を参照してください。 #### その他のヘッダー -サーバーでは、必要に応じて、圧縮、キャッシュ制御、リダイレクト、関連リソースのリンクなど、他の標準HTTPヘッダーを使用できます。 +サーバでは、必要に応じて、圧縮、キャッシュ制御、リダイレクト、関連リソースのリンクなど、他の標準HTTPヘッダーを使用できます。 ### 生成 -`xrp-ledger.toml`ファイルは、Webサーバーに格納されている実際のファイルである場合もあれば、Webサーバーによってオンデマンドで生成される場合もあります。ファイルで提供されるコンテンツまたはWebサイトの構成によっては、後者の方が望ましい場合があります。 +`xrp-ledger.toml`ファイルは、Webサーバに格納されている実際のファイルである場合もあれば、Webサーバによってオンデマンドで生成される場合もあります。ファイルで提供されるコンテンツまたはWebサイトの構成によっては、後者の方が望ましい場合があります。 ## 内容 @@ -169,7 +169,7 @@ symbol = "😆" # In practical situations, it may be unwise to use emoji ### バリデータ -バリデータリストには、操作するサーバーの検証に関する情報が表示されます。バリデータリストは、(存在する場合)各エントリが二重角括弧のヘッダー`[[VALIDATORS]]`を使用する複数のテーブルの配列でなければなりません。各エントリで、別個の検証サーバーが示されます。 +バリデータリストには、操作するサーバの検証に関する情報が表示されます。バリデータリストは、(存在する場合)各エントリが二重角括弧のヘッダー`[[VALIDATORS]]`を使用する複数のテーブルの配列でなければなりません。各エントリで、別個の検証サーバが示されます。 ファイル内の _最初の_`[[VALIDATORS]]`エントリは、プライマリのバリデータとして扱われます。本番環境のXRP Ledgerで1つ以上のバリデータを実行する場合は、他のバリデータに信頼されるバリデータを最初に配置する必要があります。 @@ -180,8 +180,8 @@ _各_`[[VALIDATORS]]`エントリごとに、以下から任意のフィール | `public_key` | 文字列 | XRP Ledgerのbase58形式でエンコードされた、プライマリバリデータのマスター公開鍵(通常、先頭は`n`)。 | | `network` | 文字列 | このバリデータがフォローするネットワークチェーン。省略された場合、クライアントはバリデータが本番環境のXRP Ledgerをフォローすると想定する必要があります。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | `owner_country` | 文字列 | ISO-3166-2形式の国コード(2桁)。あなた(バリデータの所有者)が属する主な法的管轄域を表します。 | -| `server_country` | 文字列 | ISO-3166-2形式の国コード(2桁)。この検証サーバーがある物理的な場所を表します。 | -| `unl` | 文字列 | HTTPS URL。このバリデータが信頼する、他のバリデータのリストを確認できます。バリデータがUNL推奨のバリデータリストサイトを使用するように構成されている場合は、サーバーの構成と一致しなければなりません。本番環境のXRP Ledgerネットワークの場合は、`https://vl.ripple.com`(末尾のスラッシュは省略可)を使用します。 | +| `server_country` | 文字列 | ISO-3166-2形式の国コード(2桁)。この検証サーバがある物理的な場所を表します。 | +| `unl` | 文字列 | HTTPS URL。このバリデータが信頼する、他のバリデータのリストを確認できます。バリデータがUNL推奨のバリデータリストサイトを使用するように構成されている場合は、サーバの構成と一致しなければなりません。本番環境のXRP Ledgerネットワークの場合は、`https://vl.ripple.com`(末尾のスラッシュは省略可)を使用します。 | ### アカウント @@ -206,16 +206,16 @@ _各_`[[VALIDATORS]]`エントリごとに、以下から任意のフィール 必要に応じて、他の連絡先情報を指定することができます。(カスタムフィールドについては、[カスタムフィールド](#カスタムフィールド)を参照してください。) -### サーバー +### サーバ -サーバーリストには、パブリックアクセスで実行するXRP Ledgerサーバー(`rippled`)に関する情報が表示されます。サーバーリストは、(存在する場合)各エントリが二重角括弧を含んだヘッダー`[[SERVERS]]`を使用する複数のテーブルの配列でなければなりません。各エントリは、異なるサーバーまたはサーバークラスターを示します。 _各_`[[SERVERS]]`エントリごとに、以下から任意のフィールドを指定することができます。 +サーバリストには、パブリックアクセスで実行するXRP Ledgerサーバ(`rippled`)に関する情報が表示されます。サーバリストは、(存在する場合)各エントリが二重角括弧を含んだヘッダー`[[SERVERS]]`を使用する複数のテーブルの配列でなければなりません。各エントリは、異なるサーバまたはサーバクラスターを示します。 _各_`[[SERVERS]]`エントリごとに、以下から任意のフィールドを指定することができます。 | フィールド | 型 | 説明 | |:--------|:-------|:-----------------------------------------------------| | `json_rpc` | 文字列(URL) | 公開JSON-RPC APIを提供するURL。先頭は`http://`または`https://`である必要があります。公開APIに対してはHTTPSが推奨されます。 | | `ws` | 文字列(URL) | 公開WebSocket APIを提供するURL。先頭は`ws://`または`wss://`である必要があります。公開APIに対してはWSSが推奨されます。 | -| `peer` | 文字列(URL) | サーバーがXRP LedgerのピアプロトコルをリッスンしているURL。他のXRP Ledgerサーバーは、このURLで接続できます。サーバーよりピアクローラーレスポンスが提供される場合は、このURLに`crawl`が付加されて提供されます。 | -| `network` | 文字列 | このサーバーがフォローするネットワークチェーン。省略された場合、クライアントはサーバーが本番環境のXRP Ledgerをフォローすると想定する必要があります。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | +| `peer` | 文字列(URL) | サーバがXRP LedgerのピアプロトコルをリッスンしているURL。他のXRP Ledgerサーバは、このURLで接続できます。サーバよりピアクローラーレスポンスが提供される場合は、このURLに`crawl`が付加されて提供されます。 | +| `network` | 文字列 | このサーバがフォローするネットワークチェーン。省略された場合、クライアントはサーバが本番環境のXRP Ledgerをフォローすると想定する必要があります。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | このセクションのすべてのURLの末尾にスラッシュを付けることが推奨されます。省略された場合、クライアントアプリケーションでは、末尾にスラッシュが含まれていると想定します。 @@ -243,7 +243,7 @@ XRP Ledgerで資産、トークン、または通貨を発行する場合は、` ## CORSの設定 -`xrp-ledger.toml`ファイルに対してCross-Origin Resource Sharing([CORS][])を許可するようにWebサーバーを構成する必要があります。この構成は、Webサーバーによって異なります。 +`xrp-ledger.toml`ファイルに対してCross-Origin Resource Sharing([CORS][])を許可するようにWebサーバを構成する必要があります。この構成は、Webサーバによって異なります。 Apache HTTP Serverを実行する場合は、以下の内容を構成ファイルに追加します。 @@ -253,7 +253,7 @@ Apache HTTP Serverを実行する場合は、以下の内容を構成ファイ ``` -または、以下の内容をサーバーの`/.well-known/`ディレクトリ内の`.htaccess`ファイルに追加できます。 +または、以下の内容をサーバの`/.well-known/`ディレクトリ内の`.htaccess`ファイルに追加できます。 ``` @@ -269,7 +269,7 @@ location /.well-known/xrp-ledger.toml { } ``` -他のWebサーバーについては、[サーバーにCORSサポートを追加したい](https://enable-cors.org/server.html)を参照してください。マネージドホスティングを使用する場合、特定のパスでCORSを有効にする方法については、Webホストのドキュメントを参照してください。(Webサイト全体でCORSを有効にすることはあまりないと思われます。) +他のWebサーバについては、[サーバにCORSサポートを追加したい](https://enable-cors.org/server.html)を参照してください。マネージドホスティングを使用する場合、特定のパスでCORSを有効にする方法については、Webホストのドキュメントを参照してください。(Webサイト全体でCORSを有効にすることはあまりないと思われます。) [CORS]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS diff --git a/@i18n/ja/docs/references/xrpljs2-migration-guide.md b/@i18n/ja/docs/references/xrpljs2-migration-guide.md index 9dc3d5d9b3..416070c1b4 100644 --- a/@i18n/ja/docs/references/xrpljs2-migration-guide.md +++ b/@i18n/ja/docs/references/xrpljs2-migration-guide.md @@ -54,7 +54,7 @@ const xrpl = require("xrpl"); ## バリデーション結果 -デフォルトでは、ripple-lib 1.xにおけるほとんどのメソッドは、[コンセンサスプロセス](../concepts/consensus-protocol/index.md)によって検証された最終結果をリターンするのみでした。xrpl.jsと同等の多くのメソッドは、WebSocket APIをコールするために[`Client.request()`メソッド](https://js.xrpl.org/classes/Client.html#request)を使用します。WebSocket APIにおいて、XRP Ledgerサーバーのデフォルト設定では、検証済みデータだけはなく未検証のデータを含むことがあります。 +デフォルトでは、ripple-lib 1.xにおけるほとんどのメソッドは、[コンセンサスプロセス](../concepts/consensus-protocol/index.md)によって検証された最終結果をリターンするのみでした。xrpl.jsと同等の多くのメソッドは、WebSocket APIをコールするために[`Client.request()`メソッド](https://js.xrpl.org/classes/Client.html#request)を使用します。WebSocket APIにおいて、XRP Ledgerサーバのデフォルト設定では、検証済みデータだけはなく未検証のデータを含むことがあります。 [分散型取引所](../concepts/tokens/decentralized-exchange/index.md)の状態を調べる時のように、完了見込みの多数のトランザクション結果が保留中であるため、現時点のオープンレジャーを使用したい場合があります。また、完了したトランザクション結果を取り込んだ検証済みのレジャーを使用したい場合もあります。 @@ -83,8 +83,8 @@ console.log(trustlines.result) xrpl.jsには、トランザクションの署名および送信のための、また、XRP Ledgerブロックチェーンのトランザクション最終結果の確認を待機するための特有の補助機能があります: -- トランザクション送信および[最終結果](../concepts/transactions/finality-of-results/index.md)の待機のために`submitAndWait()`を使用します。トランザクションが検証された場合、これは[txメソッド][]レスポンスにリゾルブし、そうでない場合、例外処理(exception)となります。例外処理(exception)は、トランザクションが検証されなかったことを保証しません。例えば、サーバーに[より大きなギャップ](../concepts/transactions/reliable-transaction-submission.md#ledger-gaps)がある場合、トランザクションは、そのギャップの中で検証される可能性があります。 -- 即時の送信およびリターンのために`submit()`を使用します。これは[submitメソッド][]レスポンスにリゾルブし、仮の(最終ではない)結果を表示します。もしXRP Ledgerサーバーへのトランザクション送信に問題があった場合、このメソッドは例外処理(exception)のみとなります。 +- トランザクション送信および[最終結果](../concepts/transactions/finality-of-results/index.md)の待機のために`submitAndWait()`を使用します。トランザクションが検証された場合、これは[txメソッド][]レスポンスにリゾルブし、そうでない場合、例外処理(exception)となります。例外処理(exception)は、トランザクションが検証されなかったことを保証しません。例えば、サーバに[より大きなギャップ](../concepts/transactions/reliable-transaction-submission.md#ledger-gaps)がある場合、トランザクションは、そのギャップの中で検証される可能性があります。 +- 即時の送信およびリターンのために`submit()`を使用します。これは[submitメソッド][]レスポンスにリゾルブし、仮の(最終ではない)結果を表示します。もしXRP Ledgerサーバへのトランザクション送信に問題があった場合、このメソッドは例外処理(exception)のみとなります。 どちらのメソッドに関しても、準備済みトランザクション説明と[`Wallet`インスタンス](#キーおよびウォレット)をパスすることによって、署名済みトランザクションをメソッドに直接パス、もしくは、送信直前にトランザクションに署名することができます。 @@ -210,7 +210,7 @@ const signed = wallet.sign(tx_json) ## イベントおよびサブスクリプション -1.xでは、`RippleAPI`クラスの`.on()`メソッドを使用してレジャーイベントとAPIエラーにサブスクリプションできました。もしくは、`.connection.on()`を使用して特定のWebSocketメッセージタイプにサブスクリプションできました。これらは、[`Client.on()`メソッド](https://js.xrpl.org/classes/Client.html#on)に統合されました。さらに、XRP Ledgerサーバーに接続する際、クライアントライブラリは、自動的にレジャークローズイベントにサブスクリプションしなくなったため、ハンドラを追加するだけでなく、レジャークローズイベントを取得するために **明確に台帳ストリームにサブスクリプションする必要があります** 。 +1.xでは、`RippleAPI`クラスの`.on()`メソッドを使用してレジャーイベントとAPIエラーにサブスクリプションできました。もしくは、`.connection.on()`を使用して特定のWebSocketメッセージタイプにサブスクリプションできました。これらは、[`Client.on()`メソッド](https://js.xrpl.org/classes/Client.html#on)に統合されました。さらに、XRP Ledgerサーバに接続する際、クライアントライブラリは、自動的にレジャークローズイベントにサブスクリプションしなくなったため、ハンドラを追加するだけでなく、レジャークローズイベントを取得するために **明確に台帳ストリームにサブスクリプションする必要があります** 。 レジャークローズイベントにサブスクリプションするには、`Client.(method)`を使用し、`"streams": ["ledger"]`で[subscribeメソッド][]をコールします。イベントハンドラを追加するには、`Client.on(event_type, callback)`を使用します。これらのコールは任意の順で実行可能です。 diff --git a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md index 860ddbde37..b631c6b390 100644 --- a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md +++ b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md @@ -47,7 +47,7 @@ labels: トランザクションの署名には、**マスターキーペア**を使用する必要があります。 -**注意:** 自分が管理していないサーバーに秘密鍵を提出したり、暗号化されていない状態でネットワーク上に送信したりしないでください。これらの例は、[ローカルの `rippled` サーバー](../../../concepts/transactions/secure-signing.md#ローカルでrippledを実行する) を使っていることを前提にしています。他の[安全な署名方法](../../../concepts/transactions/secure-signing.md)を使っている場合は、これらの手順を変更する必要があります。 +**注意:** 自分が管理していないサーバに秘密鍵を提出したり、暗号化されていない状態でネットワーク上に送信したりしないでください。これらの例は、[ローカルの `rippled` サーバ](../../../concepts/transactions/secure-signing.md#ローカルでrippledを実行する) を使っていることを前提にしています。他の[安全な署名方法](../../../concepts/transactions/secure-signing.md)を使っている場合は、これらの手順を変更する必要があります。 #### リクエストの例 @@ -174,7 +174,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% /tabs %} -サーバーがトランザクションに正常に署名したことを示す `"status": "success"` を探してください。代わりに `"status": "error"` が表示された場合は、 `error` と `error_message` フィールドをチェックして、より詳しい情報を確認してください。よくある可能性としては、以下のようなものがあります。 +サーバがトランザクションに正常に署名したことを示す `"status": "success"` を探してください。代わりに `"status": "error"` が表示された場合は、 `error` と `error_message` フィールドをチェックして、より詳しい情報を確認してください。よくある可能性としては、以下のようなものがあります。 - `"error": "badSecret"` は通常、リクエストの`secret`にタイプミスがあったことを意味します。 - `"error": "masterDisabled"` は、このアドレスのマスターキーペアが _既に_ 無効であることを意味します。 diff --git a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md index 96286a931b..a69307c9b5 100644 --- a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md +++ b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md @@ -18,7 +18,7 @@ labels: オフライン署名を使用するには、次の前提条件を満たしている必要があります。 - オフラインマシンとして使用する1台のコンピューターを用意していること。このマシンは[サポートされているオペレーティングシステム](../../../infrastructure/installation/system-requirements.md)でセットアップされている必要があります。オフラインセットアップの手順については、使用するオペレーティングシステムのサポートを参照してください(例: [Red Hat Enterprise Linux DVD ISOインストール手順](https://access.redhat.com/solutions/7227))。使用するソフトウェアと物理メディアがマルウェアに感染していないことを確認します。 -- オンラインマシンとして使用する別のコンピューターを用意していること。このマシンは`rippled`を実行する必要はありませんが、XRP Ledgerネットワークに接続し、共有レジャーの状態についての正確な情報を受信できる必要があります。例えば、[公開サーバーへのWebSocket接続](../../http-websocket-apis/get-started.md)を使用できます。 +- オンラインマシンとして使用する別のコンピューターを用意していること。このマシンは`rippled`を実行する必要はありませんが、XRP Ledgerネットワークに接続し、共有レジャーの状態についての正確な情報を受信できる必要があります。例えば、[公開サーバへのWebSocket接続](../../http-websocket-apis/get-started.md)を使用できます。 - 署名済みのトランザクションバイナリデータをオフラインマシンからオンラインマシンに転送する安全な方法を用意していること。 - その方法の1つは、オフラインマシンでQRコードジェネレーターを使用し、オンラインマシンでQRコードスキャナーを使用することです。(この場合、「オンラインマシン」はスマートフォンなどの携帯デバイスだとよいでしょう。) - 別の方法としては、物理メディアを使ってオフラインマシンからオンラインマシンにファイルをコピーします。この方法を使用する場合、オフラインマシンが悪意のあるソフトウェアに感染するおそれのある物理メディアは使用しないよう注意します。(例えば、オンラインマシンとオフラインマシンで同じUSBドライブを再利用しないようにします。) @@ -312,7 +312,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" ### 10.オフラインマシンのステータスの調整 -オフラインマシンに戻り、カスタムサーバーに保存されている設定に必要な変更を加えます。例えば次のような変更です。 +オフラインマシンに戻り、カスタムサーバに保存されている設定に必要な変更を加えます。例えば次のような変更です。 - アカウントの現在の`Sequence`番号を更新する。すべてのトランザクションが検証済みレジャーに含まれている場合(成功または`tec`コードで終了)、オフラインマシンに保存されているシーケンス番号はすでに正確であるはずです。含まれていない場合は、保存されているシーケンス番号を、前のステップでメモした`Sequence`値と一致するように変更する必要があります。 - 新しいトランザクションで適切な`LastLedgerSequence`値を使用できるように、現在のレジャーインデックスを更新する。(新しいトランザクションを生成する直前に必ずこれを行う必要があります。) diff --git a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md index cb4684f6d0..45ee0fc289 100644 --- a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md +++ b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md @@ -285,7 +285,7 @@ Connecting to 127.0.0.1:5005 本番環境のネットワークでは、`validated`フィールドがブール値`true`に設定されていることも確認する必要があります。このフィールドが`true`ではない場合は、コンセンサスプロセスの完了までしばらく待機する必要があるか、または何らかの理由でトランザクションをレジャーに記録できない可能性があります。 -スタンドアロンモードでは、サーバーは手動で閉鎖されたレジャーを自動的に`validated`とみなします。 +スタンドアロンモードでは、サーバは手動で閉鎖されたレジャーを自動的に`validated`とみなします。 ``` $ rippled tx BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6 diff --git a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md index a7d95fe43c..41e9344973 100644 --- a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md +++ b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md @@ -21,7 +21,7 @@ labels: - [MultiSignReserve Amendment][]が有効ではないテストネットワークでは、マルチシグを使用するには[アカウント準備金](../../../concepts/accounts/reserves.md)に通常よりも多くのXRPが必要となります。必要額は、リストの署名者の数に応じて増加します。 -- XRP Ledgerフォーマットでキーペアを生成するツールを利用できる必要があります。この処理に`rippled`サーバーを使用する場合は、[wallet_proposeメソッド][]が管理者専用であるため、管理者アクセス権限が必要です。 +- XRP Ledgerフォーマットでキーペアを生成するツールを利用できる必要があります。この処理に`rippled`サーバを使用する場合は、[wallet_proposeメソッド][]が管理者専用であるため、管理者アクセス権限が必要です。 - あるいは、すでにXRP Ledgerアドレスを持っている人をあなたのアドレスの署名者として承認するには、その人または組織のアカウントアドレスを知っている必要があります。 diff --git a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md index 0a40876193..c21fe3ee80 100644 --- a/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md +++ b/@i18n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md @@ -45,7 +45,7 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 ### 2. ネットワークへの接続 -トランザクションをネットワークに送信するには、ネットワークに接続している必要があります。チケットは今のところDevnetでしか利用できないので、Devnetサーバーに接続する必要があります。例えば、以下のようになります。 +トランザクションをネットワークに送信するには、ネットワークに接続している必要があります。チケットは今のところDevnetでしか利用できないので、Devnetサーバに接続する必要があります。例えば、以下のようになります。 {% tabs %} @@ -205,7 +205,7 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 TicketCreateトランザクションをすぐに送信する予定がない場合は、トランザクションが期限切れにならないように、`LastLedgerSequence`を設定しないようにする必要があります。これを行う方法はライブラリによって異なります。 - **xrpl.js:** トランザクションの自動入力の際に、`"LastLedgerSequence": null`を指定する。 -- **`rippled`:** 用意された指示から`LastLedgerSequence`を省略します。サーバーはデフォルトでは値を提供しません。 +- **`rippled`:** 用意された指示から`LastLedgerSequence`を省略します。サーバはデフォルトでは値を提供しません。 {% /admonition %} {% interactive-block label="Prepare Ticketed Tx" steps=$frontmatter.steps %} diff --git a/@i18n/ja/docs/tutorials/how-tos/send-xrp.md b/@i18n/ja/docs/tutorials/how-tos/send-xrp.md index aae9f39db0..d47c2b7c08 100644 --- a/@i18n/ja/docs/tutorials/how-tos/send-xrp.md +++ b/@i18n/ja/docs/tutorials/how-tos/send-xrp.md @@ -31,11 +31,11 @@ steps: ['Generate', 'Connect', 'Prepare', 'Sign', 'Submit', 'Wait', 'Check'] ## Testnetでの送金 -### 1. Testnetサーバーへの接続 +### 1. Testnetサーバへの接続 -必須の自動入力可能フィールドに入力されるようにするために、ripple-libを、アカウントの現在のステータスと共有レジャー自体を取得できるサーバーに接続する必要があります。(セキュリティを高めるために、トランザクションの署名はオフライン中に行うことを推奨します。ただしその場合は、自動入力可能フィールドに手動で入力する必要があります。)トランザクションの送信先となるネットワークに接続する必要があります。 +必須の自動入力可能フィールドに入力されるようにするために、ripple-libを、アカウントの現在のステータスと共有レジャー自体を取得できるサーバに接続する必要があります。(セキュリティを高めるために、トランザクションの署名はオフライン中に行うことを推奨します。ただしその場合は、自動入力可能フィールドに手動で入力する必要があります。)トランザクションの送信先となるネットワークに接続する必要があります。 -以下のサンプルコードでは公開XRP Testnetサーバーに接続します。 +以下のサンプルコードでは公開XRP Testnetサーバに接続します。 {% tabs %} @@ -175,7 +175,7 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si - 送信元および送信先の正しいアドレスを使用しているか。 - トランザクションの他のフィールドへの入力漏れ、ステップのスキップ、その他の入力ミスがないか。 - トランザクションの送信に必要なTest Net XRPが十分にあるか。送金できるXRPの額は、[必要準備金](../../concepts/accounts/reserves.md)によって制限されています。現時点では、20XRPに加えて、レジャー内に保有している各「オブジェクト」につき5XRPずつ追加となります。(Test Net Faucetを使用して新しいアドレスを生成した場合は、保有するオブジェクトはありません。) -- テストネットワークのサーバーに接続しているか。 +- テストネットワークのサーバに接続しているか。 他の可能性については、[トランザクション結果](../../references/protocol/transactions/transaction-results/index.md)の完全なリストを参照してください。 @@ -248,7 +248,7 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si 本番XRP LedgerでXRPを送金する場合も、大部分の手順は同じです。ただし、必要なセットアップでは重要な相違点がいくつかあります。 - [実際のXRPは無料で取得できません。](#実際のxrpアカウントの取得) -- [本番XRP Ledgerネットワークと同期されているサーバーに接続する必要があります。](#本番xrp-ledgerへの接続) +- [本番XRP Ledgerネットワークと同期されているサーバに接続する必要があります。](#本番xrp-ledgerへの接続) ### 実際のXRPアカウントの取得 @@ -291,7 +291,7 @@ System.out.println(generationResult.seed()); // Example: sp6JS7f14BuwFY8Mw6bTtLK ### 本番XRP Ledgerへの接続 -XRP Ledgerと同期しているサーバーを指定する必要があります。多くの場合は公開サーバーを、以下のスニペットなどで使用できます。 +XRP Ledgerと同期しているサーバを指定する必要があります。多くの場合は公開サーバを、以下のスニペットなどで使用できます。 {% tabs %} diff --git a/@i18n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md b/@i18n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md index b9b32907ce..58398c3c99 100644 --- a/@i18n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md +++ b/@i18n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md @@ -2,14 +2,14 @@ html: use-payment-channels.html parent: use-specialized-payment-types.html seo: - description: Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的なPayment Channelの使用方法を、ローカルのrippledサーバーのJSON-RPC APIを使用する例を使って説明します。 + description: Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的なPayment Channelの使用方法を、ローカルのrippledサーバのJSON-RPC APIを使用する例を使って説明します。 labels: - Payment Channel - スマートコントラクト --- # Payment Channelの使用 -Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的な[Payment Channel](../../../../concepts/payment-types/payment-channels.md)の使用方法を、ローカル`rippled`サーバーの[JSON-RPC API](../../../../references/http-websocket-apis/index.md)を使用する例を使って説明します。 +Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的な[Payment Channel](../../../../concepts/payment-types/payment-channels.md)の使用方法を、ローカル`rippled`サーバの[JSON-RPC API](../../../../references/http-websocket-apis/index.md)を使用する例を使って説明します。 このチュートリアルを進めるにあたって[資金供給されているXRP Ledgerアカウント](../../../../concepts/accounts/index.md)を所有するユーザーが2名いれば理想的です。ただし、2つのXRP Ledgerアドレスを管理する1名のユーザーとしてこのチュートリアルを進めることもできます。 @@ -26,9 +26,9 @@ Payment Channelは、少額の単位に分割可能な「非同期」のXRPペ **ヒント:** この例では、Channelの公開鍵は支払人のマスターキーペアの公開鍵です。これは完全に安全であり有効です。また、支払人のみが異なるキーペアの公開鍵と秘密鍵を把握している場合に限り、そのキーペアを使用することも完全に安全であり有効です。 -また、トランザクションの送信先`rippled`サーバーも必要です。このチュートリアルの例では、`rippled`サーバーがテストマシン(`localhost`)で稼働しており、このテストマシンはポート**5005**で非暗号化JSON-RPC APIエンドポイントに接続しています。 +また、トランザクションの送信先`rippled`サーバも必要です。このチュートリアルの例では、`rippled`サーバがテストマシン(`localhost`)で稼働しており、このテストマシンはポート**5005**で非暗号化JSON-RPC APIエンドポイントに接続しています。 -実際のXRPを送金せずにテストを実施するには、Test Net XRPを保有する[XRP Ledger Testnet](/resources/dev-tools/xrp-faucets)のアドレスを使用できます。XRP Ledger Test Netを使用する場合、`http://localhost:5005/`ではなく`https://api.altnet.rippletest.net:51234`に接続することで、Test NetサーバーのJSON-RPC APIを使用できます。 +実際のXRPを送金せずにテストを実施するには、Test Net XRPを保有する[XRP Ledger Testnet](/resources/dev-tools/xrp-faucets)のアドレスを使用できます。XRP Ledger Test Netを使用する場合、`http://localhost:5005/`ではなく`https://api.altnet.rippletest.net:51234`に接続することで、Test NetサーバのJSON-RPC APIを使用できます。 Payment Channelに使用できるXRPの額に制限はありません。このチュートリアルで使用されているサンプルの値では、Payment Channelで100 XRP(`100000000` drop)が少なくとも1日間は確保されます。 @@ -58,7 +58,7 @@ Payment Channelに使用できるXRPの額に制限はありません。この **ヒント:** 「決済遅延」の設定だけが決済を遅延するわけでわありません。レジャーバージョンが閉鎖すると即時に決済が遅延されます(3~5秒)。「決済遅延」とは、Channel閉鎖の強制的な遅延です。これにより、受取人が決済を完了できるようになります。 -以下の例は、JSON-RPC APIを使用してローカル`rippled`サーバーへ[送信](../../../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#署名と送信モード)することでPayment Channelを作成する方法を示しています。Payment Channelは、決済を1日遅らせて[サンプルの支払人](#サンプルの値)(rN7n7...)から[サンプルの受取人](#サンプルの値)(rf1Bi...)に100 XRPを割り当てます。公開鍵はサンプルの支払人のマスター公開鍵(16進数)です。 +以下の例は、JSON-RPC APIを使用してローカル`rippled`サーバへ[送信](../../../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#署名と送信モード)することでPayment Channelを作成する方法を示しています。Payment Channelは、決済を1日遅らせて[サンプルの支払人](#サンプルの値)(rN7n7...)から[サンプルの受取人](#サンプルの値)(rf1Bi...)に100 XRPを割り当てます。公開鍵はサンプルの支払人のマスター公開鍵(16進数)です。 **注記:** Payment Channelは1つのオブジェクトとして支払人の[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)に反映されます。所有者は少なくとも、Payment Channelに割り当てられたXRPを差引き後に、準備金を維持するのに十分なXRPを保有している必要があります。 @@ -369,7 +369,7 @@ Content-Type: application/json - `account_channels`リクエストに正しいレジャーバージョンが指定されていなかった。(最新の検証済みバージョンを確認するには、`"ledger_index":"validated”`を使用します) - 受取人は以前にXRPを清算したものの、記録し忘れていた。 - 受取人がXRPの清算を試行し、暫定的な結果を記録したが、トランザクションの最終的な検証済みの結果がこれとは異なり、受取人はこの最終検証済み結果を記録し忘れていた。 - - 受取人が照会した`rippled`サーバーが、ネットワークの他の部分と同期していない状態であったか、または不明なバグが発生した。サーバーの状態を確認するには、[server_infoメソッド][]を使用します。(この状況を再現できる場合は、[問題を報告してください](https://github.com/XRPLF/rippled/issues/)。) + - 受取人が照会した`rippled`サーバが、ネットワークの他の部分と同期していない状態であったか、または不明なバグが発生した。サーバの状態を確認するには、[server_infoメソッド][]を使用します。(この状況を再現できる場合は、[問題を報告してください](https://github.com/XRPLF/rippled/issues/)。) 受取人がPayment Channelの署名と現行状態の両方を確認した後で、XRPをまだ受領していない場合、XRPを清算するトランザクションがChannelの有効期限より前に処理される限り、XRPを確実に清算 _できます_ 。 diff --git a/@i18n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md b/@i18n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md index 03f7048ae0..4ce8248051 100644 --- a/@i18n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md +++ b/@i18n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md @@ -12,14 +12,14 @@ labels: このチュートリアルでは、[WebSocket `rippled` API](../../references/http-websocket-apis/index.md)を使用して、着信[ペイメント](../../concepts/payment-types/index.md)を監視する方法を説明します。すべてのXRP Ledgerトランザクションは公開されているため、誰もが任意のアドレスへの着信ペイメントを監視できます。 -WebSocketは、クライアントとサーバーが1つの接続を確立し、その接続を経由して両方向にメッセージを送信するモデルに従います。この接続は、明示的に閉じる(または接続に障害が発生する)まで続きます。これは、リクエストごとにクライアントが新しい接続を開いて閉じるHTTPベースのAPIモデル(JSON-RPCやRESTful APIなど)とは対照的です[¹](#footnote-1)。 +WebSocketは、クライアントとサーバが1つの接続を確立し、その接続を経由して両方向にメッセージを送信するモデルに従います。この接続は、明示的に閉じる(または接続に障害が発生する)まで続きます。これは、リクエストごとにクライアントが新しい接続を開いて閉じるHTTPベースのAPIモデル(JSON-RPCやRESTful APIなど)とは対照的です[¹](#footnote-1)。 **ヒント:** このページの例はJavaScriptを使用しているため、Webブラウザーでネイティブに実行できます。JavaScriptで開発している場合は、[JavaScript向けxrpl.jsライブラリ](https://js.xrpl.org/)も利用すると、一部の作業を簡素化できます。このチュートリアルでは、xrpl.jsを使用できないその他のプログラミング言語にステップを適合できるよう、xrpl.jsを使用 _しない_ でトランザクションを監視する方法を説明します。 ## 前提条件 - このページの例では、すべての主要な最新ブラウザーで使用できるJavaScriptおよびWebSocketプロトコルを使用しています。JavaScriptにある程度習熟し、WebSocketクライアントを使用する他のプログラミング言語の専門知識があれば、選択する言語に手順を適合させながら進めていくことができます。 -- 安定したインターネット接続と`rippled`サーバーへアクセスが必要です。埋め込まれている例では、Rippleの公開サーバーのプールに接続します。[独自の`rippled`サーバーを運用](../../infrastructure/installation/index.md)する場合は、ローカルでそのサーバーに接続することもできます。 +- 安定したインターネット接続と`rippled`サーバへアクセスが必要です。埋め込まれている例では、Rippleの公開サーバのプールに接続します。[独自の`rippled`サーバを運用](../../infrastructure/installation/index.md)する場合は、ローカルでそのサーバに接続することもできます。 - 丸め方によるエラーを発生させることなくXRPの価値を適切に処理するには、64ビット符号なし整数で計算できる数値タイプを使用できる必要があります。このチュートリアルの例では、[big.js](https://github.com/MikeMcl/big.js/)を使用しています。[トークン](../../concepts/tokens/index.md)を使用する場合は、さらに高い精度が求められます。詳細は、[通貨の精度](../../references/protocol/data-types/currency-formats.md#xrpの精度)を参照してください。 @@ -39,9 +39,9 @@ function writeToConsole(console_selector, message) { ## 1. XRP Ledgerへの接続 -着信ペイメントを監視する最初のステップとして、XRP Ledger、つまり`rippled`サーバーに接続します。 +着信ペイメントを監視する最初のステップとして、XRP Ledger、つまり`rippled`サーバに接続します。 -以下のJavaScriptコードでは、Rippleの公開サーバーのクラスターの1つに接続します。その後、コンソールにメッセージを記録し、[pingメソッド][]を使用してリクエストを送信します。次に、サーバー側からのメッセージを受信するときに、ハンドラーを設定してコンソールに再度メッセージを記録します。 +以下のJavaScriptコードでは、Rippleの公開サーバのクラスターの1つに接続します。その後、コンソールにメッセージを記録し、[pingメソッド][]を使用してリクエストを送信します。次に、サーバ側からのメッセージを受信するときに、ハンドラーを設定してコンソールに再度メッセージを記録します。 ```js const socket = new WebSocket('wss://s.altnet.rippletest.net:51233') @@ -64,13 +64,13 @@ socket.addEventListener('close', (event) => { }) ``` -上記の例では、[Test Net](/resources/dev-tools/xrp-faucets)上にあるRippleの公開APIサーバーの1つに対して、安全な接続(`wss://`)を開きます。代わりにデフォルトの構成を使用してローカルで運用している`rippled`サーバーに接続するには、最初の行に以下を使用して、ローカルのポート**6006**で _安全ではない_ 接続(`ws://`)を開きます。 +上記の例では、[Test Net](/resources/dev-tools/xrp-faucets)上にあるRippleの公開APIサーバの1つに対して、安全な接続(`wss://`)を開きます。代わりにデフォルトの構成を使用してローカルで運用している`rippled`サーバに接続するには、最初の行に以下を使用して、ローカルのポート**6006**で _安全ではない_ 接続(`ws://`)を開きます。 ```js const socket = new WebSocket('ws://localhost:6006') ``` -**ヒント:** デフォルトでは、ローカル`rippled`サーバーに接続することで、インターネット上の公開サーバーに接続する際に使用できる[パブリックメソッド](../../references/http-websocket-apis/public-api-methods/index.md)以外に、すべての[管理メソッド](../../references/http-websocket-apis/admin-api-methods/index.md)と、[server_info][server_infoメソッド]などの一部のレスポンスに含まれる管理者専用データを利用できます。 +**ヒント:** デフォルトでは、ローカル`rippled`サーバに接続することで、インターネット上の公開サーバに接続する際に使用できる[パブリックメソッド](../../references/http-websocket-apis/public-api-methods/index.md)以外に、すべての[管理メソッド](../../references/http-websocket-apis/admin-api-methods/index.md)と、[server_info][server_infoメソッド]などの一部のレスポンスに含まれる管理者専用データを利用できます。 例: @@ -116,15 +116,15 @@ $("#connect-socket-button").click((event) => { ## 2. ハンドラーへの着信メッセージのディスパッチ -WebSocket接続では、複数のメッセージをどちらの方向にも送信することが可能で、リクエストとレスポンスの間に厳密な1:1の相互関係がないため、各着信メッセージに対応する処理を識別する必要があります。この処理をコーディングする際の優れたモデルとして、「ディスパッチャー」関数の設定が挙げられます。この関数は着信メッセージを読み取り、各メッセージを正しいコードのパスに中継して処理します。メッセージを適切にディスパッチできるように、`rippled`サーバーでは、すべてのWebSocketメッセージで`type`フィールドを使用できます。 +WebSocket接続では、複数のメッセージをどちらの方向にも送信することが可能で、リクエストとレスポンスの間に厳密な1:1の相互関係がないため、各着信メッセージに対応する処理を識別する必要があります。この処理をコーディングする際の優れたモデルとして、「ディスパッチャー」関数の設定が挙げられます。この関数は着信メッセージを読み取り、各メッセージを正しいコードのパスに中継して処理します。メッセージを適切にディスパッチできるように、`rippled`サーバでは、すべてのWebSocketメッセージで`type`フィールドを使用できます。 -- クライアント側からのリクエストへの直接のレスポンスとなるメッセージの場合、`type`は文字列の`response`です。この場合、サーバーは以下も提供します。 +- クライアント側からのリクエストへの直接のレスポンスとなるメッセージの場合、`type`は文字列の`response`です。この場合、サーバは以下も提供します。 - このレスポンスに対するリクエストで指定された`id`に一致する`id`フィールド(レスポンスが順序どおりに到着しない可能性があるため、これは重要です)。 - APIがリクエストの処理に成功したかどうかを示す`status`フィールド。文字列値`success`は、[成功したレスポンス](../../references/http-websocket-apis/api-conventions/response-formatting.md)を示します。文字列値`error`は、[エラー](../../references/http-websocket-apis/api-conventions/error-formatting.md)を示します。 - **警告:** トランザクションを送信する際、WebSocketメッセージの先頭にある`success`の`status`は、必ずしもトランザクション自体が成功したことを意味しません。これは、サーバーによってリクエストが理解されたということのみを示します。トランザクションの実際の結果を確認するには、[トランザクションの結果の確認](../../concepts/transactions/finality-of-results/look-up-transaction-results.md)を参照してください。 + **警告:** トランザクションを送信する際、WebSocketメッセージの先頭にある`success`の`status`は、必ずしもトランザクション自体が成功したことを意味しません。これは、サーバによってリクエストが理解されたということのみを示します。トランザクションの実際の結果を確認するには、[トランザクションの結果の確認](../../concepts/transactions/finality-of-results/look-up-transaction-results.md)を参照してください。 - [サブスクリプション](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md)からのフォローアップメッセージの場合、`type`は、新しいトランザクション、レジャーまたは検証の通知など、フォローアップメッセージのタイプを示します。または継続している[pathfindingリクエスト](../../references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md)のフォローアップを示します。クライアントがこれらのメッセージを受信するのは、それらをサブスクライブしている場合のみです。 @@ -266,7 +266,7 @@ $("#dispatch_ping").click((event) => { トランザクションがアカウントに影響を及ぼすたびに即座に通知を取得するには、[subscribeメソッド][]を使用してアカウントをサブスクライブします。実際には、このアカウントはあなた自身のアカウントでなくてもかまいません。すべてのトランザクションは公開されているため、任意のアカウントで、または複数のアカウントでもサブスクライブできます。 -1つ以上のアカウントをサブスクライブした場合、指定したアカウントのいずれかに何らかの影響を及ぼす各検証済みトランザクションについて、`"type": "transaction"`が含まれるメッセージがサーバーから送信されます。これを確認するには、トランザクションメッセージで`"validated": true`を探します。 +1つ以上のアカウントをサブスクライブした場合、指定したアカウントのいずれかに何らかの影響を及ぼす各検証済みトランザクションについて、`"type": "transaction"`が含まれるメッセージがサーバから送信されます。これを確認するには、トランザクションメッセージで`"validated": true`を探します。 以下のコードサンプルは、Test Net Faucetの送信側アドレスをサブスクライブします。このコードサンプルでは、前のステップのディスパッチャーにハンドラーを追加することで、該当する各トランザクションのメッセージを記録します。 @@ -341,7 +341,7 @@ WS_HANDLERS["transaction"] = log_tx アカウントをサブスクライブすると、 _アカウントへのすべてのトランザクションとアカウントからのすべてのトランザクション_ 、および _アカウントに間接的に影響を及ぼすトランザクション_ に関するメッセージが表示されます。この例として、[トークン](../../concepts/tokens/index.md)の取引があります。アカウントが着信ペイメントを受け取った日時を認識することを目的とする場合、トランザクションストリームを絞り込んで、実際に支払われた額に基づいて支払いを処理する必要があります。以下の情報を探します。 -- **`validated`フィールド**は、トランザクションの結果が[最終的である](../../concepts/transactions/finality-of-results/index.md)ことを示します。これは、`accounts`をサブスクライブする場合に常に当てはまりますが、`accounts_proposed`または`transactions_proposed`ストリーム _も_ サブスクライブしている場合は、サーバーは未確認のトランザクションに関して同様のメッセージを同じ接続で送信します。予防策として、`validated`フィールドを常に確認することをお勧めします。 +- **`validated`フィールド**は、トランザクションの結果が[最終的である](../../concepts/transactions/finality-of-results/index.md)ことを示します。これは、`accounts`をサブスクライブする場合に常に当てはまりますが、`accounts_proposed`または`transactions_proposed`ストリーム _も_ サブスクライブしている場合は、サーバは未確認のトランザクションに関して同様のメッセージを同じ接続で送信します。予防策として、`validated`フィールドを常に確認することをお勧めします。 - **`meta.TransactionResult`フィールド**は、[トランザクションの結果](../../references/protocol/transactions/transaction-results/index.md)です。結果が`tesSUCCESS`でない場合は、トランザクションは失敗したため、値を送信できません。 @@ -495,7 +495,7 @@ $("#tx_read").click((event) => { ## 脚注 -[1.](#from-footnote-1)実際には、HTTPベースのAPIを何度も呼び出す場合、クライアントとサーバーは複数のリクエストとレスポンスを処理する際に同じ接続を再利用できます。この方法は、[HTTP永続接続、またはキープアライブ](https://en.wikipedia.org/wiki/HTTP_persistent_connection)と呼ばれます。開発の観点から見ると、基本となる接続が新しい場合でも、再利用される場合でも、HTTPベースのAPIを使用するコードは同じです。 +[1.](#from-footnote-1)実際には、HTTPベースのAPIを何度も呼び出す場合、クライアントとサーバは複数のリクエストとレスポンスを処理する際に同じ接続を再利用できます。この方法は、[HTTP永続接続、またはキープアライブ](https://en.wikipedia.org/wiki/HTTP_persistent_connection)と呼ばれます。開発の観点から見ると、基本となる接続が新しい場合でも、再利用される場合でも、HTTPベースのAPIを使用するコードは同じです。 ## 関連項目 diff --git a/@i18n/ja/docs/tutorials/javascript/get-started.md b/@i18n/ja/docs/tutorials/javascript/get-started.md index d01257ec83..c2b8e8a99c 100644 --- a/@i18n/ja/docs/tutorials/javascript/get-started.md +++ b/@i18n/ja/docs/tutorials/javascript/get-started.md @@ -96,7 +96,7 @@ const xrpl = require("xrpl") 前節のサンプルコードでは、利用可能な[並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)の1つであるTestnetに接続する方法を紹介しました。本番環境に移行するには、XRP Ledger Mainnetに接続する必要があります。それには2つの方法があります。 -* [コアサーバをインストール](../../infrastructure/installation/index.md) (`rippled`)して、自分でノードを動かしてみましょう。コアサーバーはデフォルトではMainnetに接続しますが、設定を変更してTestnetやDevnetを使うこともできます](connect-your-rippled-to-thexrp-test-net.html)。[独自のコアサーバーを運用するのには良い理由があります](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server)。独自のサーバーを走らせた場合、次のようにして接続することができます。 +* [コアサーバをインストール](../../infrastructure/installation/index.md) (`rippled`)して、自分でノードを動かしてみましょう。コアサーバはデフォルトではMainnetに接続しますが、設定を変更してTestnetやDevnetを使うこともできます](connect-your-rippled-to-thexrp-test-net.html)。[独自のコアサーバを運用するのには良い理由があります](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server)。独自のサーバを走らせた場合、次のようにして接続することができます。 ``` const MY_SERVER = "ws://localhost:6006/" @@ -104,9 +104,9 @@ const xrpl = require("xrpl") await client.connect() ``` - デフォルト値の詳細については、[コアサーバー設定ファイル](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562)の例を参照してください。 + デフォルト値の詳細については、[コアサーバ設定ファイル](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562)の例を参照してください。 -* 利用可能な[公開サーバー][]を利用する: +* 利用可能な[公開サーバ][]を利用する: ``` const PUBLIC_SERVER = "wss://xrplcluster.com/" diff --git a/@i18n/ja/docs/tutorials/public-servers.md b/@i18n/ja/docs/tutorials/public-servers.md index a06217a198..205e0bc492 100644 --- a/@i18n/ja/docs/tutorials/public-servers.md +++ b/@i18n/ja/docs/tutorials/public-servers.md @@ -2,22 +2,22 @@ html: public-servers.html parent: get-started.html seo: - description: これらの公開サーバーを利用して、自社のインフラを必要とせずにXRP Ledgerにアクセスします。 + description: これらの公開サーバを利用して、自社のインフラを必要とせずにXRP Ledgerにアクセスします。 labels: - - コアサーバー + - コアサーバ --- -# 公開サーバー +# 公開サーバ -[自分で`rippled`サーバーを運営しない](../infrastructure/installation/index.md)場合は、以下の公開サーバーを利用して、トランザクションを送信したり、レジャーからデータを取得したりすることができます。 +[自分で`rippled`サーバを運営しない](../infrastructure/installation/index.md)場合は、以下の公開サーバを利用して、トランザクションを送信したり、レジャーからデータを取得したりすることができます。 | 運営者 | [ネットワーク][] | JSON-RPC URL | WebSocket URL | 尾行 | |:----------|:------------|:-------------|:--------------|:---------------------| -| XRP Ledger 財団 | **Mainnet** | `https://xrplcluster.com/`
`https://xrpl.ws/` [²][] | `wss://xrplcluster.com/`
`wss://xrpl.ws/` [²][] | CORSをサポートする全履歴サーバークラスター | -| Ripple[¹][] | **Mainnet** | `https://s1.ripple.com:51234/` | `wss://s1.ripple.com/` | 汎用サーバークラスター | +| XRP Ledger 財団 | **Mainnet** | `https://xrplcluster.com/`
`https://xrpl.ws/` [²][] | `wss://xrplcluster.com/`
`wss://xrpl.ws/` [²][] | CORSをサポートする全履歴サーバクラスター | +| Ripple[¹][] | **Mainnet** | `https://s1.ripple.com:51234/` | `wss://s1.ripple.com/` | 汎用サーバクラスター | | Ripple[¹][] | **Mainnet** | `https://s2.ripple.com:51234/` | `wss://s2.ripple.com/` | [全履歴サーバ](../concepts/networks-and-servers/ledger-history.md#すべての履歴) クラスター | -| Ripple[¹][] | Testnet | `https://s.altnet.rippletest.net:51234/` | `wss://s.altnet.rippletest.net:51233/` | Testnet 公開サーバー | -| XRPL Labs | Testnet | `https://testnet.xrpl-labs.com/` | `wss://testnet.xrpl-labs.com/` | CORSをサポートする Testnet 公開サーバー | -| Ripple[¹][] | Devnet | `https://s.devnet.rippletest.net:51234/` | `wss://s.devnet.rippletest.net:51233/` | Devnet 公開サーバー | +| Ripple[¹][] | Testnet | `https://s.altnet.rippletest.net:51234/` | `wss://s.altnet.rippletest.net:51233/` | Testnet 公開サーバ | +| XRPL Labs | Testnet | `https://testnet.xrpl-labs.com/` | `wss://testnet.xrpl-labs.com/` | CORSをサポートする Testnet 公開サーバ | +| Ripple[¹][] | Devnet | `https://s.devnet.rippletest.net:51234/` | `wss://s.devnet.rippletest.net:51233/` | Devnet 公開サーバ | | Ripple[¹][] | Sidechain-Devnet | `https://sidechain-net2.devnet.rippletest.net:51234/` | `wss://sidechain-net2.devnet.rippletest.net:51233/` | クロスチェーンブリッジ機能をテストするためのサイドチェーンDevnet。Devnetはロックチェーンとして機能し、このサイドチェーンは発行チェーンとして機能します。 | | XRPL Labs | Xahau Testnet | `https://xahau-test.net/` | `wss://xahau-test.net/` | [Hooksが有効な](https://hooks.xrpl.org/) Xahau Testnet | @@ -25,7 +25,7 @@ labels: [¹]: #footnote-1 [²]: #footnote-2 -¹ Ripple社の公開サーバーは、持続的な利用やビジネスでの利用には適しておらず、いつでも利用できなくなる可能性があります。定期的に使用する場合は、ご自身で`rippled`サーバーを運用するか、信頼できる人と契約してください。Ripple社の公開クラスターには[Reporting Mode][]サーバが含まれています。 +¹ Ripple社の公開サーバは、持続的な利用やビジネスでの利用には適しておらず、いつでも利用できなくなる可能性があります。定期的に使用する場合は、ご自身で`rippled`サーバを運用するか、信頼できる人と契約してください。Ripple社の公開クラスターには[Reporting Mode][]サーバが含まれています。 ² `xrpl.ws`は`xrplcluster.com`のエイリアスです。しかし、`.ws` というトップレベルドメインの信頼性は、本番での使用には適さないかもしれません。 diff --git a/@i18n/ja/docs/use-cases/tokenization/stablecoin-issuer.md b/@i18n/ja/docs/use-cases/tokenization/stablecoin-issuer.md index 1baf177cff..14d6e13378 100644 --- a/@i18n/ja/docs/use-cases/tokenization/stablecoin-issuer.md +++ b/@i18n/ja/docs/use-cases/tokenization/stablecoin-issuer.md @@ -37,7 +37,7 @@ XRPLで作成できる通貨トークンには、法定通貨担保、暗号資 小規模なユースケースや個人であれば、無料のパブリックサーバを利用することができます。しかし、XRP Ledgerの利用が本格的になればなるほど、独自のインフラを持つことが重要になります。 -独自のサーバを運用すべき理由はたくさんありますが、そのほとんどは、「自分のサーバが信頼できる」、「ワークロードをコントロールできる」、「いつ、どのようにアクセスするかを他人に依存しない」という点に集約されます。[独自サーバを運用する理由](../../concepts/networks-and-servers/index.md#独自サーバーを運用する理由)をご覧ください。 +独自のサーバを運用すべき理由はたくさんありますが、そのほとんどは、「自分のサーバが信頼できる」、「ワークロードをコントロールできる」、「いつ、どのようにアクセスするかを他人に依存しない」という点に集約されます。[独自サーバを運用する理由](../../concepts/networks-and-servers/index.md#独自サーバを運用する理由)をご覧ください。 または、OpenNodeのような外部のノードサービスプロバイダを使用することもできます。[OpenNode](https://www.opennodecloud.com)をご覧ください。 diff --git a/@i18n/ja/resources/contribute-code/index.md b/@i18n/ja/resources/contribute-code/index.md index 2892ff0d52..3297d7df45 100644 --- a/@i18n/ja/resources/contribute-code/index.md +++ b/@i18n/ja/resources/contribute-code/index.md @@ -20,7 +20,7 @@ XRP Ledgerを動かすソフトウェアはオープンソースです。コミ | ライセンス | [Multiple; ISC (permissive)](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md) | | プログラム言語 | C++ | -何から始めたらいいか分からないという方のために、Dev Null Productionsは、XRP Ledgerサーバー(`rippled`)のコア実装の仕組みや機能を説明した、詳細かつ充実した[**ソースコード・ガイド**](https://xrpintel.com/source)を提供しています。 +何から始めたらいいか分からないという方のために、Dev Null Productionsは、XRP Ledgerサーバ(`rippled`)のコア実装の仕組みや機能を説明した、詳細かつ充実した[**ソースコード・ガイド**](https://xrpintel.com/source)を提供しています。 ## XRP Ledgerの規格 diff --git a/@i18n/ja/resources/contribute-documentation/index.md b/@i18n/ja/resources/contribute-documentation/index.md index 899e05d1a6..d76ee85222 100644 --- a/@i18n/ja/resources/contribute-documentation/index.md +++ b/@i18n/ja/resources/contribute-documentation/index.md @@ -151,7 +151,7 @@ seo: | トークン | IOU, issuances, issues, 発行済み通貨 | XRP Ledgerのトークンは、_IOU_ という名前から想像されるように、レジャーの外部にある価値を表すことはできません。必要であれば、_代替可能トークン_ を使用して、非代替性トークン(NFT)と区別してください。 | | ウォレット | ウォレット | 文脈によっては、_ウォレット_ はハードウェア、ソフトウェア、暗号鍵ペア、またはオンラインサービスを指します。意味が明確になるように十分な文脈を提供するか、_キーペア_ や _クライアントアプリケーション_ などの別の表現を使用してください。 | | XRP | Ripple, リップル | XRP Ledgerのネイティブデジタルアセットまたは暗号通貨。XRPはレジャーの外部の価値を表すトークンではありません。 | -| XRP Ledger | Ripple, リップル, Ripple Network, リップルネットワーク, RCL | XRP Ledgerは、過去に様々な場面で「リップルネットワーク」や「リップルコンセンサスレジャー」あるいは「RCL」と呼ばれていました。これらの名称は、コアサーバーのリファレンス実装を開発しているRipple(Ripple Labs)の社名と類似しているため、紛らわしく、廃止されました。 | +| XRP Ledger | Ripple, リップル, Ripple Network, リップルネットワーク, RCL | XRP Ledgerは、過去に様々な場面で「リップルネットワーク」や「リップルコンセンサスレジャー」あるいは「RCL」と呼ばれていました。これらの名称は、コアサーバのリファレンス実装を開発しているRipple(Ripple Labs)の社名と類似しているため、紛らわしく、廃止されました。 | | XRPL | XRPL | _XRP Ledger_ の略です。_XRPL_ は不明瞭で、_XRP_ のタイプミスのように見えることがあります。 | ## Frontmatterのフィールド diff --git a/@i18n/ja/resources/known-amendments.md b/@i18n/ja/resources/known-amendments.md index 291c41b7ee..bc4e38e12b 100644 --- a/@i18n/ja/resources/known-amendments.md +++ b/@i18n/ja/resources/known-amendments.md @@ -491,7 +491,7 @@ XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これ 提案されたトランザクションに[トランザクションコスト](../docs/concepts/transactions/transaction-cost.md)を適用する方法を変更します。トランザクションコストの高いトランザクションの優先順位が高くなるよう、コンセンサスプロセスを変更します。 -この修正により、前のコンセンサスラウンドに含められなかったトランザクションに固定サイズのトランザクションキューが導入されます。コンセンサスネットワーク内の`rippled`サーバーに重い負荷が課されている場合、トランザクションコストの低いトランザクションは後のレジャーのキューに入れられます。各コンセンサスラウンドでは、トランザクションコスト(`Fee`値)が高いキューのトランザクションが優先され、コンセンサスネットワークで処理できる限りのトランザクションが含められます。トランザクションキューが一杯になると、トランザクションコストが最も低いトランザクションから順にキューから完全に除外されます。 +この修正により、前のコンセンサスラウンドに含められなかったトランザクションに固定サイズのトランザクションキューが導入されます。コンセンサスネットワーク内の`rippled`サーバに重い負荷が課されている場合、トランザクションコストの低いトランザクションは後のレジャーのキューに入れられます。各コンセンサスラウンドでは、トランザクションコスト(`Fee`値)が高いキューのトランザクションが優先され、コンセンサスネットワークで処理できる限りのトランザクションが含められます。トランザクションキューが一杯になると、トランザクションコストが最も低いトランザクションから順にキューから完全に除外されます。 コンセンサスネットワークに重い負荷がかかる一方で、正規のユーザーは高めのトランザクションコストを支払い、トランザクションを確実に処理することができます。この状況は、未処理の低コストのトランザクションが完全に処理または除外されるまで続きます。 diff --git a/docs/_snippets/common-links.md b/docs/_snippets/common-links.md index c87417a201..dbc40367ca 100644 --- a/docs/_snippets/common-links.md +++ b/docs/_snippets/common-links.md @@ -701,7 +701,7 @@ [レジャーインデックス]: /docs/references/protocol/data-types/basic-data-types.md#レジャーインデックス [レジャーフォーマット]: /docs/references/protocol/ledger-data/index.md [レポートモード]: /docs/concepts/networks-and-servers/rippled-server-modes.md#レポートモード -[公開サーバー]: /docs/tutorials/public-servers.md +[公開サーバ]: /docs/tutorials/public-servers.md [共通フィールド]: /docs/references/protocol/transactions/common-fields.md [内部の型]: /docs/references/protocol/binary-format.md [手数料レベル]: /docs/concepts/transactions/transaction-cost.md#手数料レベル diff --git a/docs/img/_sources/ecosystem.ja.uxf b/docs/img/_sources/ecosystem.ja.uxf index 6a1bd753c1..c460a7d021 100644 --- a/docs/img/_sources/ecosystem.ja.uxf +++ b/docs/img/_sources/ecosystem.ja.uxf @@ -11,7 +11,7 @@ halign=left -rippledサーバー +rippledサーバ @@ -252,7 +252,7 @@ drawArc(0,height*3/5,width,height*2/5,180,180,true) fg=black bg=white //Paramete 220 77 - rippledサーバー + rippledサーバ (直接ピアおよび間接ピア) halign=left diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md index 755852c979..11c5087e99 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md @@ -4,7 +4,7 @@ parent: status-and-debugging-methods.html seo: description: Get the server's validation settings, if configured as a validator. labels: - - コアサーバー + - コアサーバ - ブロックチェーン --- # validator_info diff --git a/locale/ja/LC_MESSAGES/messages.po b/locale/ja/LC_MESSAGES/messages.po index 2614b1f8ce..3bb8dcc913 100644 --- a/locale/ja/LC_MESSAGES/messages.po +++ b/locale/ja/LC_MESSAGES/messages.po @@ -3858,7 +3858,7 @@ msgstr "目次" #~ "engineers, server operators and validators." #~ msgstr "" -#~ "XRP Ledgerは、誰でも構築が可能なオープンソース技術です。ソフトウェアエンジニア、サーバーオペレーター、バリデータなど多様な参加者で構成されるグローバルな「XRPコミュニティ」が、XRP " #~ "Ledgerを管理しています。" diff --git a/static/css/devportal2024-v1.css b/static/css/devportal2024-v1.css index 074921915b..3985c3315e 100644 --- a/static/css/devportal2024-v1.css +++ b/static/css/devportal2024-v1.css @@ -3,4 +3,4 @@ * Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--blue: #19A3FF;--indigo: #6610f2;--purple: #9A52FF;--pink: #FF198B;--red: #dc3545;--orange: #FF6719;--yellow: #FAFF19;--green: #32E685;--teal: #20c997;--cyan: #17a2b8;--white: #FFFFFF;--gray: #454549;--gray-dark: #232325;--primary: #9A52FF;--secondary: #E0E0E1;--success: #32E685;--info: #19A3FF;--warning: #FAFF19;--danger: #FF198B;--light: #FFFFFF;--dark: #111112;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-family-monospace: "Space Mono", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#e0e0e1;text-align:left;background-color:#111112}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#fff;text-decoration:none;background-color:transparent}a:hover{color:#9a52ff;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:"Space Mono",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#e0e0e1;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2;color:#fff}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}small,.small{font-size:0.875em;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:0.875em;color:#454549}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#111112;border:1px solid #c1c1c2;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#454549}code{font-size:87.5%;color:#e0e0e1;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#111112;border-radius:4px;box-shadow:inset 0 -0.1rem 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;font-size:87.5%;color:#111112}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-xl,.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-lg,.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-md,.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-sm,.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col,.col-auto,.col-12,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media(min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media(min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media(min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media(min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{width:100%;margin-bottom:1rem;color:#e0e0e1}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #c1c1c2}.table thead th{vertical-align:bottom;border-bottom:2px solid #c1c1c2}.table tbody+tbody{border-top:2px solid #c1c1c2}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #c1c1c2}.table-bordered th,.table-bordered td{border:1px solid #c1c1c2}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#e0e0e1;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#e3cfff}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#caa5ff}.table-hover .table-primary:hover{background-color:#d4b6ff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#d4b6ff}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f6f6f7}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#efefef}.table-hover .table-secondary:hover{background-color:#e9e9eb}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e9e9eb}.table-success,.table-success>th,.table-success>td{background-color:#c6f8dd}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#94f2c0}.table-hover .table-success:hover{background-color:#aff5cf}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#aff5cf}.table-info,.table-info>th,.table-info>td{background-color:#bfe5ff}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#87cfff}.table-hover .table-info:hover{background-color:#a6dbff}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#a6dbff}.table-warning,.table-warning>th,.table-warning>td{background-color:#feffbf}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#fcff87}.table-hover .table-warning:hover{background-color:#feffa6}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#feffa6}.table-danger,.table-danger>th,.table-danger>td{background-color:#ffbfdf}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#ff87c3}.table-hover .table-danger:hover{background-color:#ffa6d2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ffa6d2}.table-light,.table-light>th,.table-light>td{background-color:#fff}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fff}.table-hover .table-light:hover{background-color:#f2f2f2}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#f2f2f2}.table-dark,.table-dark>th,.table-dark>td{background-color:#bcbcbd}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#838384}.table-hover .table-dark:hover{background-color:#afafb0}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#afafb0}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#232325;border-color:#363639}.table .thead-light th{color:#343437;background-color:#e0e0e1;border-color:#c1c1c2}.table-dark{color:#fff;background-color:#232325}.table-dark th,.table-dark td,.table-dark thead th{border-color:#363639}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media(max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media(max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media(max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media(max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.25em + 2rem + 2px);padding:1rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;background-color:#232325;background-clip:padding-box;border:1px solid transparent;border-radius:4px;box-shadow:none;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#fff;background-color:#232325;border-color:#e4d2ff;outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.form-control::placeholder{color:#a2a2a4;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#454549;opacity:1}input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #fff}select.form-control:focus::-ms-value{color:#fff;background-color:#232325}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(1rem + 1px);padding-bottom:calc(1rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.25}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:1rem 0;margin-bottom:0;font-size:1rem;line-height:1.25;color:#e0e0e1;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{color:#e0e0e1}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#32e685}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;line-height:1.5;color:#111112;background-color:rgba(50,230,133,.9);border-radius:4px}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#32e685;padding-right:calc(1.25em + 2rem) !important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.3125em + 0.5rem) center;background-size:calc(0.625em + 1rem) calc(0.625em + 1rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:6rem !important;background-position:right 3rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.25em + 2rem);background-position:top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#32e685;padding-right:calc(0.75em + 4rem) !important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat,#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 2.5rem/calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#32e685}.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip{display:block}.was-validated .custom-control-input:valid~.custom-control-label,.custom-control-input.is-valid~.custom-control-label{color:#32e685}.was-validated .custom-control-input:valid~.custom-control-label::before,.custom-control-input.is-valid~.custom-control-label::before{border-color:#32e685}.was-validated .custom-control-input:valid:checked~.custom-control-label::before,.custom-control-input.is-valid:checked~.custom-control-label::before{border-color:#5feca0;background-color:#5feca0}.was-validated .custom-control-input:valid:focus~.custom-control-label::before,.custom-control-input.is-valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before{border-color:#32e685}.was-validated .custom-file-input:valid~.custom-file-label,.custom-file-input.is-valid~.custom-file-label{border-color:#32e685}.was-validated .custom-file-input:valid:focus~.custom-file-label,.custom-file-input.is-valid:focus~.custom-file-label{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#ff198b}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;line-height:1.5;color:#fff;background-color:rgba(255,25,139,.9);border-radius:4px}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ff198b;padding-right:calc(1.25em + 2rem) !important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.3125em + 0.5rem) center;background-size:calc(0.625em + 1rem) calc(0.625em + 1rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:6rem !important;background-position:right 3rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.25em + 2rem);background-position:top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#ff198b;padding-right:calc(0.75em + 4rem) !important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat,#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e") center right 2.5rem/calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#ff198b}.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip{display:block}.was-validated .custom-control-input:invalid~.custom-control-label,.custom-control-input.is-invalid~.custom-control-label{color:#ff198b}.was-validated .custom-control-input:invalid~.custom-control-label::before,.custom-control-input.is-invalid~.custom-control-label::before{border-color:#ff198b}.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,.custom-control-input.is-invalid:checked~.custom-control-label::before{border-color:#ff4ca5;background-color:#ff4ca5}.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,.custom-control-input.is-invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before{border-color:#ff198b}.was-validated .custom-file-input:invalid~.custom-file-label,.custom-file-input.is-invalid~.custom-file-label{border-color:#ff198b}.was-validated .custom-file-input:invalid:focus~.custom-file-label,.custom-file-input.is-invalid:focus~.custom-file-label{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#e0e0e1;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:1rem 1.5rem;font-size:0.875rem;line-height:1.25;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#e0e0e1;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:none}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled).active{box-shadow:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#9a52ff;border-color:#9a52ff;box-shadow:none}.btn-primary:hover{color:#fff;background-color:#842cff;border-color:#7c1fff}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#842cff;border-color:#7c1fff;box-shadow:0 0 0 .2rem rgba(169,108,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#7c1fff;border-color:#7512ff}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(169,108,255,.5)}.btn-secondary{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1;box-shadow:none}.btn-secondary:hover{color:#111112;background-color:#cdcdce;border-color:#c6c6c8}.btn-secondary:focus,.btn-secondary.focus{color:#111112;background-color:#cdcdce;border-color:#c6c6c8;box-shadow:0 0 0 .2rem rgba(193,193,194,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#111112;background-color:#c6c6c8;border-color:#c0c0c2}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(193,193,194,.5)}.btn-success{color:#111112;background-color:#32e685;border-color:#32e685;box-shadow:none}.btn-success:hover{color:#fff;background-color:#1ad772;border-color:#19cc6c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#1ad772;border-color:#19cc6c;box-shadow:0 0 0 .2rem rgba(45,198,116,.5)}.btn-success.disabled,.btn-success:disabled{color:#111112;background-color:#32e685;border-color:#32e685}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#19cc6c;border-color:#18c166}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(45,198,116,.5)}.btn-info{color:#fff;background-color:#19a3ff;border-color:#19a3ff;box-shadow:none}.btn-info:hover{color:#fff;background-color:#0091f2;border-color:#0089e5}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#0091f2;border-color:#0089e5;box-shadow:0 0 0 .2rem rgba(60,177,255,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#0089e5;border-color:#0082d8}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,177,255,.5)}.btn-warning{color:#111112;background-color:#faff19;border-color:#faff19;box-shadow:none}.btn-warning:hover{color:#111112;background-color:#ecf200;border-color:#e0e500}.btn-warning:focus,.btn-warning.focus{color:#111112;background-color:#ecf200;border-color:#e0e500;box-shadow:0 0 0 .2rem rgba(215,219,24,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#111112;background-color:#faff19;border-color:#faff19}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#111112;background-color:#e0e500;border-color:#d4d800}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(215,219,24,.5)}.btn-danger{color:#fff;background-color:#ff198b;border-color:#ff198b;box-shadow:none}.btn-danger:hover{color:#fff;background-color:#f20078;border-color:#e50072}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#f20078;border-color:#e50072;box-shadow:0 0 0 .2rem rgba(255,60,156,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#e50072;border-color:#d8006b}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,60,156,.5)}.btn-light{color:#111112;background-color:#fff;border-color:#fff;box-shadow:none}.btn-light:hover{color:#111112;background-color:#ececec;border-color:#e6e6e6}.btn-light:focus,.btn-light.focus{color:#111112;background-color:#ececec;border-color:#e6e6e6;box-shadow:0 0 0 .2rem rgba(219,219,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#111112;background-color:#fff;border-color:#fff}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#111112;background-color:#e6e6e6;border-color:#dfdfdf}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(219,219,219,.5)}.btn-dark{color:#fff;background-color:#111112;border-color:#111112;box-shadow:none}.btn-dark:hover{color:#fff;background-color:#000;border-color:#000}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#000;border-color:#000;box-shadow:0 0 0 .2rem rgba(53,53,54,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#111112;border-color:#111112}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#000;border-color:#000}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(53,53,54,.5)}.btn-outline-primary{color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:hover{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#9a52ff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.btn-outline-secondary{color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:hover{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#e0e0e1;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.btn-outline-success{color:#32e685;border-color:#32e685}.btn-outline-success:hover{color:#111112;background-color:#32e685;border-color:#32e685}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#32e685;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#111112;background-color:#32e685;border-color:#32e685}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.btn-outline-info{color:#19a3ff;border-color:#19a3ff}.btn-outline-info:hover{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#19a3ff;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.btn-outline-warning{color:#faff19;border-color:#faff19}.btn-outline-warning:hover{color:#111112;background-color:#faff19;border-color:#faff19}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#faff19;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#111112;background-color:#faff19;border-color:#faff19}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.btn-outline-danger{color:#ff198b;border-color:#ff198b}.btn-outline-danger:hover{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ff198b;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.btn-outline-light{color:#fff;border-color:#fff}.btn-outline-light:hover{color:#111112;background-color:#fff;border-color:#fff}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#fff;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#111112;background-color:#fff;border-color:#fff}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-dark{color:#111112;border-color:#111112}.btn-outline-dark:hover{color:#fff;background-color:#111112;border-color:#111112}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#111112;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#111112;border-color:#111112}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.btn-link{font-weight:400;color:#fff;text-decoration:none}.btn-link:hover{color:#9a52ff;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#454549;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.width{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#e0e0e1;text-align:left;list-style:none;background-color:#111112;background-clip:padding-box;border:1px solid #111112;border-radius:4px;box-shadow:0px 5px 40px #000}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:0;border-right:.4em solid transparent;border-bottom:.4em solid;border-left:.4em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid transparent;border-right:0;border-bottom:.4em solid transparent;border-left:.4em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.34em;vertical-align:.34em;content:"";border-top:.4em solid transparent;border-right:.4em solid;border-bottom:.4em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=top],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #000}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#fff;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#9a52ff;text-decoration:none;background-color:#111112}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:transparent}.dropdown-item.disabled,.dropdown-item:disabled{color:#838386;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:0.875rem;color:#454549;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:none}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.form-control:not(:last-child),.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:1rem 1.5rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;text-align:center;white-space:nowrap;background-color:#454549;border:1px solid transparent;border-radius:4px}.input-group-text input[type=radio],.input-group-text input[type=checkbox]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + 0.5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:2.5rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;print-color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#9a52ff;background-color:#9a52ff}.custom-control-input:focus~.custom-control-label::before{box-shadow:none,0 0 0 .2rem rgba(154,82,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#e4d2ff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#fff;border-color:#fff}.custom-control-input[disabled]~.custom-control-label,.custom-control-input:disabled~.custom-control-label{color:#454549}.custom-control-input[disabled]~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before{background-color:#454549}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#232325;border:1px solid #838386;box-shadow:none}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:4px}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23FFFFFF' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#9a52ff;background-color:#9a52ff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23FFFFFF' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23FFFFFF'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(0.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#838386;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#232325;transform:translateX(0.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.25em + 2rem + 2px);padding:1rem 2.5rem 1rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;vertical-align:middle;background:#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat;border:1px solid transparent;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);appearance:none}.custom-select:focus{border-color:#e4d2ff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(154,82,255,.25)}.custom-select:focus::-ms-value{color:#fff;background-color:#232325}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:1.5rem;background-image:none}.custom-select:disabled{color:#454549;background-color:#e0e0e1}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #fff}.custom-select-sm{height:calc(1.5em + 0.5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.25em + 2rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.25em + 2rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#e4d2ff;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.custom-file-input[disabled]~.custom-file-label,.custom-file-input:disabled~.custom-file-label{background-color:#454549}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.25em + 2rem + 2px);padding:1rem 1.5rem;overflow:hidden;font-weight:400;line-height:1.25;color:#fff;background-color:#232325;border:1px solid transparent;border-radius:4px;box-shadow:none}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.25em + 2rem);padding:1rem 1.5rem;line-height:1.25;color:#fff;content:"Browse";background-color:#454549;border-left:inherit;border-radius:0 4px 4px 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#fff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#c1c1c2;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#fff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#c1c1c2;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#fff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-fill-lower{background-color:#c1c1c2;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#c1c1c2;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#838386}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#838386}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#838386}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:1rem 2rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#454549;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #c1c1c2}.nav-tabs .nav-link{margin-bottom:-1px;background-color:transparent;border:1px solid transparent;border-top-left-radius:4px;border-top-right-radius:4px}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:#e0e0e1 #e0e0e1 #c1c1c2}.nav-tabs .nav-link.disabled{color:#454549;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#343437;background-color:#111112;border-color:#c1c1c2 #c1c1c2 #111112}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:4px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#9a52ff}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:1.25rem;padding-bottom:1.25rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:1rem;padding-bottom:1rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media(max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media(max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media(max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media(max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:#454549}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:#454549;border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23454549' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#454549}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:#fff}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:#9a52ff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:#fff;border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#fff}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#232325;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:8px}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:7px;border-top-right-radius:7px}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:7px;border-bottom-left-radius:7px}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:2rem}.card-title{margin-bottom:2rem}.card-subtitle{margin-top:-1rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:2rem}.card-header{padding:2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:7px 7px 0 0}.card-footer{padding:2rem 2rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 7px 7px}.card-header-tabs{margin-right:-1rem;margin-bottom:-2rem;margin-left:-1rem;border-bottom:0}.card-header-pills{margin-right:-1rem;margin-left:-1rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:7px}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:7px;border-top-right-radius:7px}.card-img,.card-img-bottom{border-bottom-right-radius:7px;border-bottom-left-radius:7px}.card-deck .card{margin-bottom:1.25rem}@media(min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-1.25rem;margin-left:-1.25rem}.card-deck .card{flex:1 0 0%;margin-right:1.25rem;margin-bottom:0;margin-left:1.25rem}}.card-group>.card{margin-bottom:15px}@media(min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:2rem}@media(min-width: 576px){.card-columns{column-count:3;column-gap:2rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#111112;border-radius:4px}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#454549;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#a2a2a4}.pagination{display:flex;padding-left:0;list-style:none;border-radius:4px}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#fff;background-color:#fff;border:1px solid #c1c1c2}.page-link:hover{z-index:2;color:#9a52ff;text-decoration:none;background-color:#e0e0e1;border-color:#c1c1c2}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.page-item:last-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#9a52ff;border-color:#9a52ff}.page-item.disabled .page-link{color:#454549;pointer-events:none;cursor:auto;background-color:#fff;border-color:#c1c1c2}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:8px;border-bottom-left-radius:8px}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:8px;border-bottom-right-radius:8px}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#9a52ff}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#7c1fff}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.badge-secondary{color:#111112;background-color:#e0e0e1}a.badge-secondary:hover,a.badge-secondary:focus{color:#111112;background-color:#c6c6c8}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.badge-success{color:#111112;background-color:#32e685}a.badge-success:hover,a.badge-success:focus{color:#111112;background-color:#19cc6c}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.badge-info{color:#fff;background-color:#19a3ff}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#0089e5}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.badge-warning{color:#111112;background-color:#faff19}a.badge-warning:hover,a.badge-warning:focus{color:#111112;background-color:#e0e500}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.badge-danger{color:#fff;background-color:#ff198b}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#e50072}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.badge-light{color:#111112;background-color:#fff}a.badge-light:hover,a.badge-light:focus{color:#111112;background-color:#e6e6e6}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.badge-dark{color:#fff;background-color:#111112}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#000}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e0e0e1;border-radius:8px}@media(min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:4px}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#502b85;background-color:#ebdcff;border-color:#e3cfff}.alert-primary hr{border-top-color:#d4b6ff}.alert-primary .alert-link{color:#391f5e}.alert-secondary{color:#747475;background-color:#f9f9f9;border-color:#f6f6f7}.alert-secondary hr{border-top-color:#e9e9eb}.alert-secondary .alert-link{color:#5b5b5b}.alert-success{color:#1a7845;background-color:#d6fae7;border-color:#c6f8dd}.alert-success hr{border-top-color:#aff5cf}.alert-success .alert-link{color:#114e2d}.alert-info{color:#0d5585;background-color:#d1edff;border-color:#bfe5ff}.alert-info hr{border-top-color:#a6dbff}.alert-info .alert-link{color:#083757}.alert-warning{color:#82850d;background-color:#feffd1;border-color:#feffbf}.alert-warning hr{border-top-color:#feffa6}.alert-warning .alert-link{color:#555708}.alert-danger{color:#850d48;background-color:#ffd1e8;border-color:#ffbfdf}.alert-danger hr{border-top-color:#ffa6d2}.alert-danger .alert-link{color:#57082f}.alert-light{color:#858585;background-color:#fff;border-color:#fff}.alert-light hr{border-top-color:#f2f2f2}.alert-light .alert-link{color:#6c6c6c}.alert-dark{color:#090909;background-color:#cfcfd0;border-color:#bcbcbd}.alert-dark hr{border-top-color:#afafb0}.alert-dark .alert-link{color:#000}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;line-height:0;font-size:0.75rem;background-color:#111112;border-radius:4px;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#9a52ff;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:4px}.list-group-item-action{width:100%;color:#343437;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#343437;text-decoration:none;background-color:#f5f5f7}.list-group-item-action:active{color:#e0e0e1;background-color:#e0e0e1}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#111112;border:1px solid #232325}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#e0e0e1;pointer-events:none;background-color:#111112}.list-group-item.active{z-index:2;color:#fff;background-color:#9a52ff;border-color:#9a52ff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#502b85;background-color:#e3cfff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#502b85;background-color:#d4b6ff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#502b85;border-color:#502b85}.list-group-item-secondary{color:#747475;background-color:#f6f6f7}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#747475;background-color:#e9e9eb}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#747475;border-color:#747475}.list-group-item-success{color:#1a7845;background-color:#c6f8dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#1a7845;background-color:#aff5cf}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1a7845;border-color:#1a7845}.list-group-item-info{color:#0d5585;background-color:#bfe5ff}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0d5585;background-color:#a6dbff}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0d5585;border-color:#0d5585}.list-group-item-warning{color:#82850d;background-color:#feffbf}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#82850d;background-color:#feffa6}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#82850d;border-color:#82850d}.list-group-item-danger{color:#850d48;background-color:#ffbfdf}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#850d48;background-color:#ffa6d2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#850d48;border-color:#850d48}.list-group-item-light{color:#858585;background-color:#fff}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#858585;background-color:#f2f2f2}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#858585;border-color:#858585}.list-group-item-dark{color:#090909;background-color:#bcbcbd}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#090909;background-color:#afafb0}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#090909;border-color:#090909}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#ff198b;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#ff198b;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:0.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#454549;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#000;background-clip:padding-box;border:1px solid #e0e0e1;border-radius:8px;box-shadow:0 .25rem .5rem rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #c1c1c2;border-top-left-radius:7px;border-top-right-radius:7px}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #c1c1c2;border-bottom-right-radius:7px;border-bottom-left-radius:7px}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:min-content}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.5)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:4px}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:8px;box-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 8px}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=top]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=top]>.arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=top]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=top]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=right]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=right]>.arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem;margin:8px 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=right]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=right]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=bottom]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=bottom]>.arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=bottom]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=bottom]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^=left]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=left]>.arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem;margin:8px 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=left]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=left]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:#fff;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:7px;border-top-right-radius:7px}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#e0e0e1}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentcolor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#9a52ff !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#7c1fff !important}.bg-secondary{background-color:#e0e0e1 !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#c6c6c8 !important}.bg-success{background-color:#32e685 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#19cc6c !important}.bg-info{background-color:#19a3ff !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#0089e5 !important}.bg-warning{background-color:#faff19 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#e0e500 !important}.bg-danger{background-color:#ff198b !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#e50072 !important}.bg-light{background-color:#fff !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#e6e6e6 !important}.bg-dark{background-color:#111112 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#000 !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #c1c1c2 !important}.border-top{border-top:1px solid #c1c1c2 !important}.border-right{border-right:1px solid #c1c1c2 !important}.border-bottom{border-bottom:1px solid #c1c1c2 !important}.border-left{border-left:1px solid #c1c1c2 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#9a52ff !important}.border-secondary{border-color:#e0e0e1 !important}.border-success{border-color:#32e685 !important}.border-info{border-color:#19a3ff !important}.border-warning{border-color:#faff19 !important}.border-danger{border-color:#ff198b !important}.border-light{border-color:#fff !important}.border-dark{border-color:#111112 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:4px !important}.rounded{border-radius:4px !important}.rounded-top{border-top-left-radius:4px !important;border-top-right-radius:4px !important}.rounded-right{border-top-right-radius:4px !important;border-bottom-right-radius:4px !important}.rounded-bottom{border-bottom-right-radius:4px !important;border-bottom-left-radius:4px !important}.rounded-left{border-top-left-radius:4px !important;border-bottom-left-radius:4px !important}.rounded-lg{border-radius:8px !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media(min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media(min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media(min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media(min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714286%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media(min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media(min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media(min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media(min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media(min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media(min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media(min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media(min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports(position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-0.25rem !important}.mt-n1,.my-n1{margin-top:-0.25rem !important}.mr-n1,.mx-n1{margin-right:-0.25rem !important}.mb-n1,.my-n1{margin-bottom:-0.25rem !important}.ml-n1,.mx-n1{margin-left:-0.25rem !important}.m-n2{margin:-0.5rem !important}.mt-n2,.my-n2{margin-top:-0.5rem !important}.mr-n2,.mx-n2{margin-right:-0.5rem !important}.mb-n2,.my-n2{margin-bottom:-0.5rem !important}.ml-n2,.mx-n2{margin-left:-0.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media(min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-0.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-0.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-0.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-0.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-0.25rem !important}.m-sm-n2{margin:-0.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-0.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-0.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-0.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-0.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media(min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-0.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-0.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-0.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-0.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-0.25rem !important}.m-md-n2{margin:-0.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-0.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-0.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-0.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-0.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media(min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-0.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-0.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-0.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-0.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-0.25rem !important}.m-lg-n2{margin:-0.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-0.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-0.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-0.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-0.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media(min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-0.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-0.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-0.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-0.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-0.25rem !important}.m-xl-n2{margin:-0.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-0.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-0.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-0.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-0.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:"Space Mono",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media(min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#9a52ff !important}a.text-primary:hover,a.text-primary:focus{color:#6d06ff !important}.text-secondary{color:#e0e0e1 !important}a.text-secondary:hover,a.text-secondary:focus{color:#b9b9bb !important}.text-success{color:#32e685 !important}a.text-success:hover,a.text-success:focus{color:#16b560 !important}.text-info{color:#19a3ff !important}a.text-info:hover,a.text-info:focus{color:#007acc !important}.text-warning{color:#faff19 !important}a.text-warning:hover,a.text-warning:focus{color:#c7cc00 !important}.text-danger{color:#ff198b !important}a.text-danger:hover,a.text-danger:focus{color:#cc0065 !important}.text-light{color:#fff !important}a.text-light:hover,a.text-light:focus{color:#d9d9d9 !important}.text-dark{color:#111112 !important}a.text-dark:hover,a.text-dark:focus{color:#000 !important}.text-body{color:#e0e0e1 !important}.text-muted{color:#e0e0e1 !important}.text-black-50{color:rgba(0,0,0,.5) !important}.text-white-50{color:rgba(255,255,255,.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;word-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #838386;page-break-inside:avoid}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #c1c1c2 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#c1c1c2}.table .thead-dark th{color:inherit;border-color:#c1c1c2}}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}pre,code{font-feature-settings:"liga" 0;font-variant-ligatures:none}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:bold}h1,.h1{font-size:3.875rem;line-height:70px}@media(max-width: 480px){h1,.h1{font-size:2.625rem;line-height:48px}}h2,.h2{font-size:3.5rem;line-height:62px}@media(max-width: 767.98px){h2,.h2{font-size:1.75rem;line-height:34px}}@media(max-width: 767.98px){h2-sm,.h2-sm{font-size:1.75rem !important;line-height:34px !important}}h3,.h3{font-size:3rem;line-height:52px}@media(max-width: 767.98px){h3,.h3{font-size:1.5rem;line-height:28px}}@media(max-width: 767.98px){h3-sm,.h3-sm{font-size:1.5rem;line-height:28px}}h4,.h4{font-size:2rem;line-height:38px}@media(max-width: 767.98px){h4,.h4{font-size:1.25rem;line-height:26px}}h5,.h5{font-size:1.5rem;line-height:32px}@media(max-width: 767.98px){h5,.h5{font-size:1.125rem;line-height:26px}}h6,.h6{font-size:1.25rem;line-height:26px}@media(max-width: 767.98px){h6,.h6{font-size:1rem;line-height:24px}}.longform{font-size:1.5rem;line-height:32px;color:#f5f5f7;font-weight:500}@media(max-width: 767.98px){.longform{font-size:1.25rem;line-height:26px}}.numbers{font-size:6rem;line-height:104px;font-weight:bold;color:#fff}@media(max-width: 767.98px){.numbers{font-size:3.875rem;line-height:70px}}p{font-size:1rem;line-height:24px}.fs-base{font-size:1rem}.fs-3{font-size:.75rem;line-height:1rem}.fs-4-5{font-size:1.125rem}.fs-5{font-size:1.25rem}.fs-5-5{font-size:1.375rem}.fs-6{font-size:1.5rem}.normal{font-weight:normal}.bold{font-weight:bold}.text-largest{font-size:1.5rem;font-weight:normal}.text-large{font-size:1.125rem}.text-small{font-size:.875rem}.text-smaller{font-size:.75rem}.text-smallest{font-size:.625rem}.arrow-link{text-decoration:none}.arrow-link:after{content:url(../img/icon-long-arrow.svg);width:28px;padding-left:7px;transition:all .2s ease-in-out;display:inline-block;text-decoration:none}.arrow-link:hover:after{padding-left:14px}.lang-ja{font-family:"Work Sans","Noto Sans JP",sans-serif}.lang-ja h1,.lang-ja h2,.lang-ja h3,.lang-ja h4,.lang-ja h5,.lang-ja .github-edit-wrap .github-edit,.lang-ja .navbar .navbar-nav .nav-link,.lang-ja article .children-display li a,.lang-ja .right-sidebar .level-1 a,.lang-ja .right-sidebar .separator{font-family:"Work Sans","Noto Sans JP",sans-serif}.search .input-group-text{border-width:0;color:#fff;background-color:#232325;border-radius:4px 0 0 4px;padding:.5rem .5rem .5rem 1rem;line-height:1.5}.search .ds-input{background-color:#232325;border-radius:0 4px 4px 0;padding:.75rem 1rem .75rem .5rem;width:100%;border:1px solid #232325}.search .ds-input:focus{box-shadow:none;border-color:#9a52ff}.search .algolia-autocomplete{flex-grow:1}#algolia-autocomplete-listbox-0{z-index:1100 !important}.xrp-ledger-dev-portal .DocSearch-Modal{top:85px;background-color:#232325;box-shadow:none}.xrp-ledger-dev-portal .DocSearch-Form{box-shadow:inset 0 0 0 2px #9a52ff;background-color:#232325}.xrp-ledger-dev-portal .DocSearch-Hit-source{color:#9a52ff}.xrp-ledger-dev-portal .DocSearch-Hits mark{color:#9a52ff}.xrp-ledger-dev-portal .DocSearch-Hit-source,.xrp-ledger-dev-portal .DocSearch-Hit-Container,.xrp-ledger-dev-portal .DocSearch-Footer{background-color:#232325}.xrp-ledger-dev-portal .DocSearch-Hit a{background-color:#232325;box-shadow:none}.xrp-ledger-dev-portal .DocSearch-Hit-source{color:#a2a2a4}.xrp-ledger-dev-portal .DocSearch-Input{color:#fff}.xrp-ledger-dev-portal .DocSearch-Hit-title,.xrp-ledger-dev-portal .DocSearch-Hit-path,.xrp-ledger-dev-portal .DocSearch-Label,.xrp-ledger-dev-portal .DocSearch-Help{color:#f5f5f7 !important}.xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a{background:#343437}.xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-Container{background-color:#343437}.xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a mark{color:#9a52ff !important}.xrp-ledger-dev-portal .DocSearch-Prefill{color:#9a52ff}.xrp-ledger-dev-portal .DocSearch-Button{background:#232325;width:100%}.xrp-ledger-dev-portal .DocSearch-Button:hover{background:#232325;border-radius:40px;box-shadow:inset 0 0 0 2px #9a52ff}.xrp-ledger-dev-portal .DocSearch-Button:hover .DocSearch-Button-Placeholder{color:#fff}.xrp-ledger-dev-portal .DocSearch-Search-Icon{color:#fff !important}.xrp-ledger-dev-portal .DocSearch-Modal{margin-top:-20px;max-width:55%;margin-right:13.5em}@media(max-width: 991.98px){.xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu{min-width:unset}.xrp-ledger-dev-portal .DocSearch-Modal{top:127px;max-width:100%;margin-left:10px;margin-right:20px}}.xrp-ledger-dev-portal .DocSearch-Container{z-index:99999 !important;background-color:transparent !important}.xrp-ledger-dev-portal .DocSearch-Logo svg .cls-1,.xrp-ledger-dev-portal .DocSearch-Logo svg .cls-2{fill:#fff}.xrp-ledger-dev-portal .DocSearch-Commands-Key{color:#232325}.xrp-ledger-dev-portal #centersearchboxcontainer{justify-content:center}.xrp-ledger-dev-portal #topsearchboxcontainer{justify-content:right}.xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background-color:#111112;border:0;border-radius:8px}.xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu::before{background-color:#111112;border:0}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion{background-color:#111112}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header{color:#fff;border:0;border-bottom:2px solid #9a52ff;font-weight:bold}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{color:#fff}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--title{color:#fff}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text{font-size:.8rem;color:#e0e0e1}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#fff;background-color:#343437}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:none;background-color:#343437}#xrp-ledger-dev-portal{overflow:auto !important}body{position:relative}section{position:relative}.landing{padding:0}.square{position:relative;flex-basis:calc(50% - 30px);margin:15px;box-sizing:border-box;justify-content:center;align-items:center;border-radius:8px}.square::before{content:"";display:block;padding-top:100%}@media(min-width: 992px){.square{flex-basis:calc(25% - 30px)}}.square-50{flex-basis:calc(50% - 30px)}@media(max-width: 767.98px){.square-50{flex-basis:calc(50% - 20px)}}.nav-grid-lg{display:flex;flex-direction:column}.nav-grid-lg .nav-item{width:100%}.nav-grid-lg .nav-item .nav-link{display:flex}.nav-grid-lg .nav-item .nav-link span{flex-grow:0}.nav-grid-lg .nav-item .nav-link img{max-height:2rem}.nav-grid-lg .nav-grid-head{margin-top:2.5rem}@media(min-width: 992px){.nav-grid-lg{display:grid;grid-auto-flow:column;grid-column-gap:80px}.nav-grid-lg .nav-grid-head{margin-top:0}}.col-lg{padding-left:0;padding-right:0}@media(min-width: 992px){.cols-of-1{grid-template-rows:repeat(1, min-content)}}@media(min-width: 992px){.cols-of-2{grid-template-rows:repeat(2, min-content)}}@media(min-width: 992px){.cols-of-3{grid-template-rows:repeat(3, min-content)}}@media(min-width: 992px){.cols-of-4{grid-template-rows:repeat(4, min-content)}}@media(min-width: 992px){.cols-of-5{grid-template-rows:repeat(5, min-content)}}@media(min-width: 992px){.cols-of-6{grid-template-rows:repeat(6, min-content)}}.card-grid{display:grid;grid-gap:40px;padding:0;width:100%;grid-template-columns:1fr}@media(min-width: 992px){.card-grid{grid-gap:80px}}.card-grid .col{padding-left:0;padding-right:0;min-width:100%}.card-grid.card-grid-4xN{grid-auto-rows:auto;grid-template-columns:repeat(2, 1fr)}@media(min-width: 992px){.card-grid.card-grid-4xN{grid-template-columns:repeat(4, 1fr)}}.card-grid.card-grid-3xN{grid-auto-rows:auto}@media(min-width: 992px){.card-grid.card-grid-3xN{grid-template-columns:1fr 1fr 1fr}}.card-grid.card-grid-2xN{grid-template-columns:1fr 1fr;grid-auto-rows:auto}@media(max-width: 991.98px){.card-grid.card-grid-2xN{grid-template-columns:1fr}}.card-grid.card-grid-1x2{grid-template-columns:1fr 2fr;grid-auto-rows:auto}@media(max-width: 991.98px){.card-grid.card-grid-1x2{display:flex}}.card-grid .card{padding:20px;border:0;min-height:264px}@media(min-width: 768px){.card-grid .card{min-height:347px}}@media(min-width: 992px){.card-grid .card{padding:40px}}.card-grid .card .card-body{padding:8px;padding-bottom:24px}.card-grid .card .card-body .card-icon-container{width:50px;height:50px}.card-grid .card .card-body .card-icon-container img{width:70%;height:70%}.card-grid.section-hero{padding-left:0}.container-new{display:flex;flex-wrap:wrap;margin:0 auto;padding:0 32px;max-width:100%;z-index:1}@media(min-width: 768px){.container-new{max-width:608px}}@media(min-width: 992px){.container-new{max-width:942px}}@media(min-width: 1200px){.container-new{max-width:1280px}}@media(max-width: 991.98px){article{overflow-wrap:break-word;word-wrap:break-word;overflow:hidden}}@media(max-width: 480px){html{overflow-x:hidden !important}}@media(max-width: 400px){.navbar .navbar-brand .brand-text{margin-right:0;letter-spacing:-0.08rem}.navbar .navbar-brand{margin-right:0}.navbar .navbar-brand .logo{margin-right:0;margin-left:-1rem}.btn{white-space:normal}}.timeline-wrapper{z-index:999;position:relative}.timeline:before{content:"";position:absolute;top:-40px;left:18px;height:95%;width:4px;background:linear-gradient(180deg, #feff01 0%, #ff2d9a 33%, #a3088f 66%, rgba(44, 4, 128, 0.85) 100%)}@media(max-width: 991.98px){.timeline:before{left:8px}}.timeline-dot{margin-top:94px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#111112;box-sizing:border-box}.timeline-block:first-child .timeline-dot{border:3px solid #faff19}.timeline-block:nth-child(2) .timeline-dot{border:3px solid #ff884b}.timeline-block:nth-child(3) .timeline-dot{border:3px solid #c000e5}.timeline-block:nth-child(4) .timeline-dot{border:3px solid #40004c}.timeline-block{display:flex;position:relative;z-index:1}.timeline-content{flex-grow:1;position:relative;margin-left:1.25em}.timeline h4{margin-top:-4px}@media(min-width: 768px){.timeline:before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.timeline-dot{-ms-flex-order:1;order:1;margin-left:calc(5% - 9px);will-change:transform}.timeline-block:nth-child(even){-ms-flex-direction:row-reverse;flex-direction:row-reverse}.timeline-dot{margin-right:calc(5% - 9px)}.timeline-content{width:45%;-ms-flex-positive:0;flex-grow:0;will-change:transform;margin:0;--line-height-multiplier: 1.2}}@media(min-width: 992px){[data-component-name="TableOfContent/TableOfContent"]{margin-right:32px}}aside li a{color:#fff;text-decoration:none;font-size:1.05rem}aside .sidenav_cat_title{color:#fff}aside a:hover,aside .sidenav_cat_title:hover{color:#9a52ff}aside a.active,aside a.active:hover,aside .active>a,aside .active>a:hover{color:#9a52ff;font-weight:700}aside a.active-parent,aside .active-parent>a{font-weight:700}.page-toc .level-1 a,.command-list .separator{font-weight:700;color:#fff}.nav-toggler{position:absolute;width:1.75em;height:1.75em;line-height:0;display:grid;justify-content:center;align-content:center}.nav-toggler::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}.nav-toggler:empty::after{margin-left:0}.nav-toggler::after{transition-duration:.3s}.nav-toggler.collapsed::after{transform:rotate(-90deg)}.dactyl-tree-nav nav{margin-left:1rem;padding-left:0;border-left:1px solid #fff}.dactyl-tree-nav nav .nav-link:hover,.dactyl-tree-nav nav .nav-link:active{border-left:1px solid #9a52ff;margin-left:-1px}.dactyl-tree-nav nav .active>.nav-link{border-left:2px solid #9a52ff;margin-left:-1px;padding-left:calc(1rem - 1px)}.dactyl-tree-nav .nav-item{position:relative}.dactyl-tree-nav .nav-item .nav-link{padding:.25rem 1rem;font-size:.9rem}.dactyl-tree-nav .nav-item.nav-parent{padding-top:0}.dactyl-tree-nav .nav-item.nav-parent .nav-link{padding-left:0;padding-top:0;font-size:1.125rem;line-height:initial}.dactyl-tree-nav .nav-item .nav-toggler+.nav-link{padding-left:2rem}.dactyl-tree-nav>.nav-item{padding:.5rem 0;font-size:1.125rem}.dactyl-tree-nav>.nav-item>.nav-link{font-weight:bold}.dactyl-tree-nav .collapsing.nav{flex-wrap:unset}.toc-header{font-weight:bold;font-size:14px;padding:1rem 0}.toc-header h4{line-height:20px;font-size:1.2em;padding:0;margin:0}#page-toc-wrapper .card-body{list-style-type:none}.page-toc,.command-list{padding-left:0;border-left:1px solid #fff}.page-toc li,.command-list li{list-style-type:none;padding:0}.page-toc li.separator,.command-list li.separator{padding:.25rem 1rem}.page-toc li a,.command-list li a{display:block;margin-top:5px;padding:.25rem 1rem;font-size:.9rem}.page-toc li a:hover,.page-toc li a .active,.command-list li a:hover,.command-list li a .active{text-decoration:none;border-left:1px solid #9a52ff;margin-left:-1px}.page-toc li.active a,.page-toc li.active a:hover,.command-list li.active a,.command-list li.active a:hover{border-left:2px solid #9a52ff;padding-left:calc(1rem - 1px);margin-left:-1px}.page-toc .level-3,.command-list .level-3{margin-left:16px;border-left:1px solid #fff;margin-bottom:0;padding-bottom:5px}.page-toc .level-3 a,.command-list .level-3 a{margin-top:0;padding-bottom:5px}.page-toc.no-sideline,.command-list.no-sideline{border-left:0}.page-toc.no-sideline a:hover,.page-toc.no-sideline a.active,.command-list.no-sideline a:hover,.command-list.no-sideline a.active{border-left:0;margin-left:0}.command-list li a{margin-top:0}.h32{height:32px}.w32{width:32px}.h36{height:36px}.w36{width:36px}.h40{height:40px}.w40{width:40px}.w44{width:44px}.w48{width:48px}.w-100{width:100%}.min-vh100{min-height:100vh}.vw100{width:100vw;min-width:100%}@media(max-width: 767.98px){.mb-3-sm-i{margin-bottom:1rem !important}}.ml-5{margin-left:1.25rem}@media(min-width: 768px){.ml-5-until-md{margin-left:1.25rem}}.mr-5{margin-right:1.25rem}@media(min-width: 768px){.mr-5-until-md{margin-right:1.25rem}}.mb-6{margin-bottom:1.5rem}@media(max-width: 767.98px){.mb-6-sm{margin-bottom:1.5rem}}.mt-6{margin-top:1.5rem}@media(min-width: 576px){.mt-6-until-sm{margin-top:1.5rem !important}}.mb-8{margin-bottom:2rem}@media(max-width: 767.98px){.mb-8-sm{margin-bottom:2rem}}.mt-8{margin-top:2rem}@media(min-width: 576px){.mt-8-until-sm{margin-top:2rem !important}}.mt-9{margin-top:2.25rem}.mb-9{margin-bottom:2.25rem}.mt-10{margin-top:2.5rem}@media(max-width: 767.98px){.mt-10-sm{margin-top:2.5rem}}.mb-10{margin-bottom:2.5rem}@media(min-width: 576px){.mb-10-until-sm{margin-bottom:2.5rem}}@media(max-width: 767.98px){.mb-10-sm{margin-bottom:2.5rem}}.ml-10{margin-left:2.5rem}.mr-10{margin-right:2.5rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}@media(min-width: 576px){.mx-10-until-sm{margin-left:2.5rem;margin-right:2.5rem}}@media(min-width: 768px){.mx-10-until-md{margin-left:2.5rem;margin-right:2.5rem}}@media(max-width: 767.98px){.mx-10-sm{margin-left:2.5rem;margin-right:2.5rem}}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mt-13{margin-top:3.25rem}.mb-13{margin-bottom:3.25rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}@media(max-width: 767.98px){.mt-16-sm{margin-top:4rem}}.mb-16{margin-bottom:4rem}@media(max-width: 767.98px){.mb-16-sm{margin-bottom:4rem}}.mb-18{margin-bottom:4.5rem}.mt-20{margin-top:5rem}@media(max-width: 767.98px){.mt-20-sm{margin-top:5rem}}@media(min-width: 576px){.mt-20-until-sm{margin-top:5rem}}.mb-20{margin-bottom:5rem}@media(max-width: 767.98px){.mb-20-sm{margin-bottom:5rem}}@media(min-width: 576px){.mb-20-until-sm{margin-bottom:5rem}}.my-20{margin-top:5rem;margin-bottom:5rem}.my-26{margin-top:6.5rem;margin-bottom:6.5rem}.mb-30{margin-bottom:7.5rem}.mt-30{margin-top:7.5rem}@media(min-width: 576px){.mt-30-until-sm{margin-top:7.5rem}}.mt-40{margin-top:10rem}@media(min-width: 576px){.mt-40-until-sm{margin-top:10rem}}.mb-40{margin-bottom:10rem}@media(min-width: 576px){.mb-40-until-sm{margin-bottom:10rem}}.mb-49{margin-bottom:12.25rem}.mb-50{margin-bottom:12.5rem}@media(min-width: 576px){.mb-50-until-sm{margin-bottom:12.5rem}}@media(max-width: 767.98px){.pl-0-sm{padding-left:0 !important}}@media(max-width: 767.98px){.pr-0-sm{padding-right:0 !important}}@media(max-width: 767.98px){.pt-3-sm{padding-top:1rem !important}}.p-6{padding:1.5rem}@media(max-width: 767.98px){.p-6-sm{padding:1.5rem}}.p-8{padding:2rem}@media(max-width: 767.98px){.p-8-sm{padding:2rem}}.p-10{padding:2.5rem}@media(min-width: 576px){.p-10-until-sm{padding:2.5rem}}.py-20{padding-bottom:5rem;padding-top:5rem}.px-20{padding-left:5rem;padding-right:5rem}.pt-20{padding-top:5rem}.pb-20{padding-bottom:5rem}.py-26{padding-top:6.5rem;padding-bottom:6.5rem}@media(max-width: 767.98px){.py-26{padding-top:2.5rem;padding-bottom:2.5rem}}.pt-26{padding-top:2.5rem}@media(min-width: 576px){.pt-26-until-sm{padding-top:6.5rem}}.pb-26{padding-bottom:6.5rem}@media(min-width: 576px){.pb-26-until-sm{padding-bottom:6.5rem}}.pt-30{padding-top:7.5rem}.pb-30{padding-bottom:7.5rem}.pt-40{padding-top:10rem}@media(min-width: 576px){.pt-40-until-sm{padding-top:10rem}}.pb-40{padding-bottom:10rem}.pb-50{padding-bottom:12.5rem}.pt-50{padding-top:12.5rem}.py-50{padding-bottom:12.5rem;padding-top:12.5rem}@media(min-width: 576px){.py-50-until-sm{padding-bottom:12.5rem;padding-top:12.5rem}}.floating-nav{top:6rem}.last-section{margin-bottom:100px}.bottom-0{bottom:0}.justify-center{justify-content:center}@media(max-width: 767.98px){.justify-center-sm{justify-content:center}}@media(max-width: 575.98px){.overflow-xs{overflow:scroll}.overflow-x-xs{overflow-x:scroll;overflow-y:hidden}}@media(min-width: 768px){.position-sm-absolute{position:absolute}}.va-middle{vertical-align:middle}.ls-none{list-style:none}.no-wrap{white-space:nowrap}.align-items-stretch{align-items:stretch}.underline{text-decoration:underline}@media(max-width: 575.98px){.d-none-xs{display:none}}@media(max-width: 767.98px){.d-none-sm{display:none}}@media(min-width: 992px){.d-none-lg{display:none}}.d-block{display:block}.border-green{border:1px solid #9a52ff}.border-none{border:none !important}.grey-400{color:#a2a2a4}.grey-500{color:#838386}.grey-700{color:#343437}.white{color:#fff}.stat-highlight{color:#32e685}.br-8{border-radius:8px}@media(max-width: 767.98px){br.until-sm{content:""}}.z-index-1{z-index:1}.bb-gray{border-bottom:1px solid #454549}@keyframes arrowDance{0%{padding-left:7px}50%{padding-left:14px}100%{padding-left:7px}}@keyframes arrowDance2{0%{right:0}50%{right:7px}100%{right:0}}@keyframes arrowDanceDiag{0%{right:7px;margin-top:0}50%{right:0;margin-top:-7px}100%{right:7px;margin-top:0}}.btn,article a.button,article .btn{font-weight:bold;cursor:pointer;text-decoration:none;transition:.2s;padding:.5rem 1rem;line-height:16px}article a.button{padding:.5rem 1rem;margin:0 .5rem;display:inline-block}.btn.disabled,button.disabled,.btn[disabled=disabled],button[disabled=disabled]{cursor:not-allowed}.btn-primary code,.btn-secondary code{color:inherit}.btn-primary{background:#7919ff;font-weight:bold;color:#fff;border:none;border-color:transparent}.btn-primary:hover{background:#5f00e5}.btn-primary.disabled,.btn-primary[disabled=disabled]{background:#4a00b2}.btn-primary.disabled:hover,.btn-primary[disabled=disabled]:hover{background:#4a00b2}@media(max-width: 767.98px){.btn-arrow{display:block;width:100%}}.btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right.svg);position:relative;top:1px;vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.btn-arrow:hover{background:#5f00e5 !important;border:none}.btn-arrow:hover::after{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.btn-arrow-out::after{background-position:left 0px bottom 0px;content:" ";background-image:url(../img/icons/arrow-up-right-white.svg);background-repeat:no-repeat;display:inline-block;padding:4px 8px 4px 12px;transition:background-position .3s ease-in-out;margin-left:4px}.btn-arrow-out:hover::after{background-position:left 4px bottom 4px}@media(max-width: 767.98px){.btn-arrow-out{display:block;width:100%}}.jump-to-top{display:none;position:fixed;bottom:36px;right:36px;font-weight:700;z-index:1000}.jump-to-top::after{display:none}.accordian-row{background:#232325;border-radius:5px;padding:32px}.accordian-row h3 a{position:relative;padding-right:2rem}.accordian-row h3 a:hover{color:#fff}.accordian-row .chevron{position:absolute;top:0;right:0}article table{clear:right;margin-bottom:48px}article table code{word-break:normal;white-space:nowrap;overflow-wrap:normal}article table th{border-bottom:2px solid #e0e0e1}article table tr{border-bottom:1px solid #e0e0e1}article table th,article table td{padding:.2em;vertical-align:text-top}article table td:nth-child(1){font-weight:bold}.landing-table th,.landing-table tr{border-bottom:2px solid #454549}.landing-table td{width:33.33%;padding:16px 40px 16px 0}.landing-table td:nth-child(1){font-weight:normal}@media(max-width: 767.98px){.landing-table td{font-size:.875rem}}.landing-table tr:last-child{border-bottom:none}.landing-table tbody td{color:#e0e0e1}.dblue{color:#454549}#overview-table td:nth-child(1){width:40%}#overview-table td:nth-child(2){width:30%}#overview-table tbody td{padding:2rem .75rem}@media(max-width: 991.98px){#overview-table{font-size:.875rem}#overview-table thead .h4{font-size:1.125rem}}article table{clear:right;margin-bottom:48px}article table code{word-break:normal;white-space:nowrap;overflow-wrap:normal}article table th{border-bottom:2px solid #e0e0e1}article table tr{border-bottom:1px solid #e0e0e1}article table th,article table td{padding:.2em;vertical-align:text-top}article table td:nth-child(1){font-weight:bold}.landing-table th,.landing-table tr{border-bottom:2px solid #454549}.landing-table td{width:33.33%;padding:16px 40px 16px 0}.landing-table td:nth-child(1){font-weight:normal}@media(max-width: 767.98px){.landing-table td{font-size:.875rem}}.landing-table tr:last-child{border-bottom:none}.landing-table tbody td{color:#e0e0e1}.dblue{color:#454549}#overview-table td:nth-child(1){width:40%}#overview-table td:nth-child(2){width:30%}#overview-table tbody td{padding:2rem .75rem}@media(max-width: 991.98px){#overview-table{font-size:.875rem}#overview-table thead .h4{font-size:1.125rem}}#use_case_companies_list #threezy .biz-logo{max-height:40px;content:url("../img/uses/modallogos/threezy.png")}html.light .cryptum{content:url(../img/uses/lightmode/cryptum.jpg) !important;height:58px;max-width:max-content;width:184px;max-height:none;margin:0px;padding-bottom:10px}.xrp-ledger{content:url(../img/uses/modallogos/xrp-ledger.png)}html.light .xrp-ledger{content:url(../img/uses/lightmode/xrp-ledger.png)}.gatehub{content:url(../img/uses/modallogos/gatehub.png)}html.light .gatehub{content:url(../img/uses/lightmode/gatehub.png)}.towolabs{content:url(../img/uses/modallogos/towolabs.png)}html.light .towolabs{content:url(../img/uses/lightmode/towolabs.png)}.xrpscan{content:url(../img/uses/modallogos/xrpscan.png)}html.light .xrpscan{content:url(../img/uses/lightmode/xrpscan.png)}.xrp-toolkit{content:url(../img/uses/modallogos/xrp-toolkit.png)}html.light .xrp-toolkit{content:url(../img/uses/lightmode/xrp-toolkit.png)}.bithomp{content:url(../img/uses/modallogos/bithomp.png)}html.light .bithomp{content:url(../img/uses/lightmode/bithomp.png)}.onthedex{content:url(../img/uses/modallogos/onthedex.png)}html.light .onthedex{content:url(../img/uses/lightmode/onthedex.png)}.cryptum{content:url(../img/uses/modallogos/cryptum.png)}html.light .cryptum{content:url(../img/uses/lightmode/cryptum.png)}.evernode{content:url(../img/uses/modallogos/evernode.png)}html.light .evernode{content:url(../img/uses/lightmode/evernode.png)}.threezy{content:url(../img/uses/modallogos/threezy.png)}html.light .threezy{content:url(../img/uses/lightmode/threezy.png)}.tokenize{content:url(../img/uses/modallogos/tokenize.png)}html.light .tokenize{content:url(../img/uses/lightmode/tokenize.png)}.multichain{content:url(../img/uses/modallogos/multichain.png)}html.light .multichain{content:url(../img/uses/lightmode/multichain.png)}.crossmark{content:url(../img/uses/modallogos/crossmark.png)}html.light .crossmark{content:url(../img/uses/lightmode/crossmark.png)}.edge{content:url(../img/uses/modallogos/edge.png)}html.light .edge{content:url(../img/uses/lightmode/edge.png)}.gem-wallet{content:url(../img/uses/modallogos/gem-wallet.png)}html.light .gem-wallet{content:url(../img/uses/lightmode/gem-wallet.png)}.xumm{content:url(../img/uses/modallogos/xumm.png)}html.light .xumm{content:url(../img/uses/lightmode/xumm.png)}.aesthetes{content:url(../img/uses/modallogos/aesthetes.png)}html.light .aesthetes{content:url(../img/uses/lightmode/aesthetes.png)}.audiotarky{content:url(../img/uses/modallogos/audiotarky.png)}html.light .audiotarky{content:url(../img/uses/lightmode/audiotarky.png)}.nftmaster{content:url(../img/uses/modallogos/nftmaster.png)}html.light .nftmaster{content:url(../img/uses/lightmode/nftmaster.png)}.peerkat{content:url(../img/uses/modallogos/peerkat.png)}html.light .peerkat{content:url(../img/uses/lightmode/peerkat.png)}.sologenic_dex{content:url(../img/uses/modallogos/sologenic_dex.png)}html.light .sologenic_dex{content:url(../img/uses/lightmode/sologenic_dex.png)}.xrp-cafe{content:url(../img/uses/modallogos/xrp-cafe.png)}html.light .xrp-cafe{content:url(../img/uses/lightmode/xrp-cafe.png)}.xrp-oval{content:url(../img/uses/modallogos/xrp-oval.png)}html.light .xrp-oval{content:url(../img/uses/lightmode/xrp-oval.png)}.sologenic_dex{content:url(../img/uses/modallogos/sologenic_dex.png)}html.light .sologenic_dex{content:url(../img/uses/lightmode/sologenic_dex.png)}.xpmarket{content:url(../img/uses/modallogos/xpmarket.png)}html.light .xpmarket{content:url(../img/uses/lightmode/xpmarket.png)}.forte{content:url(../img/uses/modallogos/forte.png)}html.light .forte{content:url(../img/uses/lightmode/forte.png)}.ledger-city{content:url(../img/uses/modallogos/ledger-city.png)}html.light .ledger-city{content:url(../img/uses/lightmode/ledger-city.png)}.anchain{content:url(../img/uses/modallogos/anchain.png)}html.light .anchain{content:url(../img/uses/lightmode/anchain.png)}.ripple{content:url(../img/uses/modallogos/ripple.png)}html.light .ripple{content:url(../img/uses/lightmode/ripple.png)}.supermojo{content:url(../img/uses/modallogos/supermojo.png)}html.light .supermojo{content:url(../img/uses/lightmode/supermojo.png)}.ripple{content:url(../img/uses/modallogos/ripple.png)}html.light .ripple{content:url(../img/uses/lightmode/ripple.png)}.carbonland-trust{content:url(../img/uses/modallogos/carbonland-trust.png)}html.light .carbonland-trust{content:url(../img/uses/lightmode/carbonland-trust.png)}.gatehub{content:url(../img/uses/modallogos/gatehub.png)}html.light .gatehub{content:url(../img/uses/lightmode/gatehub.png)}.bitgo{content:url(../img/uses/modallogos/bitgo.png)}html.light .bitgo{content:url(../img/uses/lightmode/bitgo.png)}.arrow-button.left-arrow img{content:url(../img/uses/left-arrow.svg)}.arrow-button.right-arrow img{content:url(../img/uses/right-arrow.svg)}.html.light .arrow-button.left-arrow img{content:url(../img/uses/left-arrow-light.svg)}.html.light .arrow-button.right-arrow img{content:url(../img/uses/right-arrow-light.svg)}.related-tasks-links a{color:#454549;text-decoration:none}.related-tasks-links a:hover{color:#000}.arrows-container{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;z-index:10}@media only screen and (max-width: 768px){.arrows-container{top:30px}}.arrow-button{background-color:transparent;border:none;cursor:pointer}.arrow-button img{width:40px;height:40px}.left-arrow{margin-left:40px}@media only screen and (max-width: 768px){.left-arrow{margin-left:0px}}.right-arrow{margin-right:40px}@media only screen and (max-width: 768px){.right-arrow{margin-right:0px}}.modal-uses{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.4)}.modal-content-uses{position:relative;background-color:#232325;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);padding:20px;width:60% !important;height:60%;display:flex;flex-direction:column;align-items:center;overflow:scroll}.modal-content-uses::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%, #19ff83 100.32%)}.content-section{width:100%;display:flex;justify-content:center;align-items:center;margin-bottom:20px}.section-image{display:block}.section-text-title{font-family:"Work Sans";font-style:normal;font-weight:500;font-size:24px;line-height:32px;text-align:center;color:#fff}.section-text-description{max-width:320px;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:16px;line-height:24px;text-align:center;color:#c1c1c2}.apps-built{position:relative;top:17px;left:50px;font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#e0e0e1}.numbers-animation{width:218px;height:96px}.arrow-animation{position:relative;right:23px;top:-11px;width:60px !important}.explore-projects{font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#7919ff;position:relative;top:-9px;right:27px}.section-separator{width:50%;border:0;border-top:1px solid #ccc}.threezy-logo{margin:4px;max-height:38px}.blockforce-logo{margin:0px !important;max-height:45px !important}.Evernode-logo{margin-right:39px}.logo-grid{display:grid;grid-template-rows:repeat(2, 1fr);grid-template-columns:repeat(4, 1fr);grid-gap:8px;justify-items:center}.flex-center{display:flex;justify-content:center}.top-row,.bottom-row{display:flex;justify-content:center}@media only screen and (max-width: 768px){.top-row,.bottom-row{flex-wrap:wrap}}.logo-item{max-height:30px;max-width:130px;margin:10px 11px}.close{color:#aaa;float:right;font-size:28px;font-weight:bold;cursor:pointer}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.use-case-circle{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;border:1px solid #343437;border-radius:50%;margin-bottom:30px;cursor:pointer}@media(min-width: 768px){.use-case-circle{aspect-ratio:1/1;min-width:200px !important;min-height:200px !important}}@media(min-width: 992px){.use-case-circle{aspect-ratio:1/1;min-width:250px !important;min-height:250px !important}}.use-case-circle:hover{border-color:#838386}.circle-content{display:flex;flex-direction:column;align-items:center;gap:13px}.circle-img{width:40px;height:40px}.circle-text{font-family:"Work Sans";font-style:normal;font-weight:700;white-space:nowrap;font-size:16px;margin-bottom:0px}.join-xrpl-section{display:flex;flex-direction:column;align-items:center}.colorful-join-text-wrapper{display:flex;justify-content:center;flex-direction:column;padding:0 5%;box-sizing:border-box}@media(min-width: 992px){.colorful-join-text-wrapper{padding:0 4%}}.colorful-join-text{display:block;width:100%;text-align:left;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:32px;line-height:38px;background:linear-gradient(90deg, #feff01 0%, #ff2d9a 30.82%, #e24cff 64.01%, #9a52ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#numbersAnimation{display:block}#numbersAnimationLight{display:none}html.light .section-separator{background:#c1c1c2}html.light .section-text-description{color:#343437}html.light .modal-content-uses{background:#fff}html.light #numbersAnimation{display:none}html.light #numbersAnimationLight{display:block}html.light .apps-built{position:relative;top:17px;left:50px;font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#232325}html.light .colorful-join-text{display:block;width:100%;text-align:left;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:32px;line-height:38px;background:linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media(min-width: 992px){html.light .colorful-join-text{width:750px}}@media(min-width: 992px){.colorful-join-text{width:750px}}.pill-box{display:inline-flex;align-items:center;justify-content:center;padding:3.69087px 29.527px;width:73.05px;height:37.38px;background:#7919ff;border:3.69087px solid #5f00e5;border-radius:184.543px}.pill-number{font-family:"Work Sans";font-style:normal;font-weight:600;font-size:22.1452px;color:#f0e5ff}.use-case-steps h2{margin-top:10px;margin-bottom:10px;font-size:1.728em;line-height:32px;font-weight:700}.use-case-steps h2 a{text-decoration:none}.use-case-steps h2:first-of-type:before{display:none}.use-case h1{font-size:2.4em;padding-bottom:10px}.use-case-steps h2:before{margin-top:-30px;height:0}.use-case-steps h2:first-of-type{margin-top:-30px}.related-tasks-links ul{list-style-type:none;padding-left:0}.related-tasks-links ul li{margin:0px;padding-top:2px}.related-tasks-links a:hover::after{padding-left:.5em}.related-tasks-links a::after{content:" ➝";padding-left:0;transition:all .2s ease-in-out}.github-edit-wrap .github-edit{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E");background-size:24px 24px;background-position:left 12px center;background-repeat:no-repeat;padding-left:48px;text-decoration:none;margin-bottom:1rem;margin-top:0}[data-component-name="Layout/RootLayout"]{padding-top:80px}.top-nav{background-color:#111112;height:80px;padding:0}.top-nav .navbar-brand{text-decoration:none;white-space:pre;-webkit-transition:opacity .2s ease,color .2s ease;transition:opacity .2s ease,color .2s ease;padding-left:2rem}.top-nav .navbar-brand .logo{margin-left:0;content:url(../img/XRPLedger_DevPortal-white.svg);width:162px;height:40px;display:block}.top-nav .navbar-brand:hover{opacity:.75}@media(max-width: 991.98px){.top-nav .navbar-brand{padding-left:2rem}.top-nav .navbar-brand img{width:120px}}.top-nav .nav-item{font-weight:600}@media(min-width: 992px){.top-nav #topnav-pages{flex-grow:1}}.top-nav #topnav-pages .nav-link{color:#f5f5f7;font-size:1rem;line-height:1.25rem;text-decoration:none;font-weight:600}.top-nav .dropdown-toggle{position:relative}.top-nav .dropdown-menu{border-width:0}.top-nav .dropdown-menu h5{font-weight:400;font-size:12px;color:#a2a2a4;margin-bottom:0}.top-nav .dropdown-menu .dropdown-item{line-height:1rem;padding:.75rem 0;white-space:normal}.top-nav .dropdown-menu .dropdown-item.dropdown-hero{width:100%;display:flex;padding:1rem 2rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero>img{width:68px;height:68px;background-color:#232325;border-radius:4px;flex-grow:0;padding:.75rem;margin-right:2rem;margin-top:auto;margin-bottom:auto}.top-nav .dropdown-menu .dropdown-item.dropdown-hero p{font-size:14px;color:#c1c1c2;margin:0;white-space:normal}.top-nav .dropdown-menu .dropdown-item.dropdown-hero h4{font-size:1.25rem;font-weight:600;margin-bottom:0;line-height:2rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover h4{color:#9a52ff}.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover p{font-weight:400}.top-nav .dropdown-menu .dropdown-item:last-child{padding-bottom:0}.top-nav .dropdown-menu .dropdown-item:first-child{padding-top:0}.top-nav .dropdown-menu .col-for-get_started{background-color:#232325}.top-nav .dropdown-menu a:hover{color:#9a52ff;background-color:inherit}.top-nav .dropdown-menu h5:hover{background-color:inherit}.top-nav #topnav-search{flex-grow:1}.top-nav #topnav-search .input-group{flex-grow:1;flex-wrap:nowrap}@media(max-width: 991.98px){.top-nav #topnav-search .form-inline{padding:1rem 2rem}}.top-nav #topnav-search .input-group-text{height:40px}.top-nav #topnav-search .ds-input{height:40px}.top-nav #topnav-language .dropdown-item{font-weight:600}@media(min-width: 992px){.top-nav{padding:0 2rem}.top-nav .navbar-brand{margin-left:0;padding-left:0}.top-nav .dropdown-toggle::after{display:none}.top-nav .dropdown-toggle>span{border-bottom:2px solid transparent}.top-nav .dropdown .dropdown-toggle:hover>span:not(.chevron){padding-bottom:8px;border-bottom:2px solid #9a52ff;margin-bottom:-8px}.top-nav .dropdown-menu{border-radius:0 0 8px 8px;padding:2.5rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero{padding:0}.top-nav .dropdown-menu.show{display:grid;gap:40px}.top-nav .dropdown-menu.show#topnav_dd_about{grid-template-columns:180px 180px 180px}.top-nav .dropdown-menu.show#topnav_dd_docs{grid-template-columns:180px 180px 260px;left:-200px}.top-nav .dropdown-menu.show#topnav_dd_community{grid-template-columns:200px}.top-nav .dropdown-menu.show#topnav_dd_resources{grid-template-columns:195px 180px 180px;left:-200px}.top-nav .dropdown-menu.show .dropdown-hero{grid-row:1;grid-column:1/4}.top-nav .dropdown-menu.show #dropdown-hero-for-docs{grid-column:1/3}.top-nav .dropdown-menu.show .col-for-xrp_ledger{grid-row:1/3;grid-column:1}.top-nav .dropdown-menu.show .col-for-xrp{grid-column:2}.top-nav .dropdown-menu.show .col-for-sustainability,.top-nav .dropdown-menu.show .col-for-持続可能性{grid-column:2}.top-nav .dropdown-menu.show .col-for-about,.top-nav .dropdown-menu.show .col-for-概要{grid-row:1/3;grid-column:3}.top-nav .dropdown-menu.show .col-for-article_types{grid-column:1;grid-row:2}.top-nav .dropdown-menu.show .col-for-use_cases{grid-column:2;grid-row:2}.top-nav .dropdown-menu.show .col-for-get_started{grid-column:3;grid-row:1/3;margin:-40px -40px -40px 0;padding:40px}.top-nav .dropdown-menu.show .col-for-development{grid-column:1}.top-nav .dropdown-menu.show .col-for-current-status,.top-nav .dropdown-menu.show .col-for-現在のステータス{grid-column:2}.top-nav .dropdown-menu.show .col-for-join-in,.top-nav .dropdown-menu.show .col-for-参加する{grid-column:3}.top-nav .dropdown-menu.smaller-dropdown{min-width:180px;padding:1.25rem}.top-nav #topnav-pages{flex-grow:0}}@media(min-width: 992px)and (min-width: 992px)and (max-width: 1133px){.top-nav #topnav-pages .nav-link{padding:1rem 1rem}}@media(min-width: 992px){.top-nav #topnav-language{flex-grow:0}.top-nav #topnav-language hr{display:none}.top-nav #topnav-language #language_selector_header_btn{padding-right:0}}@media(min-width: 992px)and (min-width: 992px)and (max-width: 1133px){.top-nav #topnav-language #language_selector_header_btn{padding-left:1rem}}@media(min-width: 992px)and (min-width: 1200px){.top-nav #topnav-search{margin-left:3.5rem;margin-right:.5rem}.top-nav #topnav-language{margin-right:.5rem}.top-nav #topnav-button{margin-left:.2rem;margin-right:1rem}}@media(max-width: 991.98px){.top-nav .navbar-toggler{border:0;padding:30px 2rem;font-size:1rem;display:inline-block}.top-nav .navbar-toggler .navbar-toggler-icon{background:none;height:20px;width:20px;position:relative}.top-nav .navbar-toggler .navbar-toggler-icon::after,.top-nav .navbar-toggler .navbar-toggler-icon::before,.top-nav .navbar-toggler .navbar-toggler-icon div{position:absolute;content:" ";background-color:#f5f5f7;display:block;width:100%;height:3px;transition:all .2s ease}.top-nav .navbar-toggler .navbar-toggler-icon::before{top:0}.top-nav .navbar-toggler .navbar-toggler-icon::after{bottom:0}.top-nav .navbar-toggler .navbar-toggler-icon div{top:calc(50% - 1.5px)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::before{transform:translateY(8px) rotate(135deg)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::after{transform:translateY(-9px) rotate(-135deg)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon div{transform:scale(0)}.top-nav .navbar-nav{align-items:unset !important}.top-nav .navbar-nav #topnav-theme{background-color:#111112;padding:1rem}.top-nav .navbar-nav #topnav-button{background-color:#111112;padding:1rem 1.5rem}.top-nav .navbar-nav #topnav-search{background-color:#111112}.top-nav .navbar-nav #topnav-search [data-component-name="Search/MobileSearchTrigger"]{padding:2rem;cursor:pointer}.top-nav .navbar-nav .nav-link,.top-nav .navbar-collapse>.nav-item{line-height:150%;background:#111112}.top-nav .navbar-nav .nav-link label,.top-nav .navbar-collapse>.nav-item label{margin-bottom:0}.top-nav .navbar-nav .nav-link{padding:1rem 2rem}.top-nav .dropdown-menu{margin:0;width:100%;overflow:auto;transition:all .2s ease;height:0;display:block;padding:0;border-radius:0}.top-nav .dropdown-menu.show{height:calc(100vh - 80px - 52px)}.top-nav .dropdown-menu.show>:last-child{padding-bottom:4rem}.top-nav .dropdown-menu.show#topnav_dd_docs{display:grid;grid-template-columns:minmax(187px, 1fr) minmax(187px, 1fr);gap:1px;left:-200px}.top-nav .dropdown-menu.show#topnav_dd_docs .dropdown-hero{grid-column:1/3;grid-row:1}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-document_types{grid-column:1;grid-row:2}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-use_cases{grid-column:2;grid-row:2}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-get_started{grid-column:1/3;grid-row:4;margin:-1px;padding-top:33px}.top-nav .dropdown-menu .navcol{padding:1rem 2rem}.top-nav .dropdown-menu.smaller-dropdown{padding:0 2rem}.top-nav .dropdown-menu.smaller-dropdown.show{padding:1rem 2rem;height:auto}.top-nav .dropdown-menu .dropdown-hero:first-child{padding-top:1rem}.top-nav .dropdown-toggle:not(.with-caret)::before,.top-nav .dropdown-toggle:not(.with-caret)::after{border:0;font-family:FontAwesome;color:#9a52ff;font-size:.75rem;transition:all .2s ease;overflow:clip;width:1rem}.top-nav .dropdown-toggle:not(.with-caret)::before{content:"";display:inline-block;margin-bottom:-5px}.top-nav .dropdown-toggle:not(.with-caret)::after{content:"";position:absolute;right:2rem}.top-nav .dropdown.show .dropdown-toggle::after{text-indent:5rem}.top-nav .dropdown:not(.show) .dropdown-toggle::before{width:0;height:0;text-indent:-5rem}.top-nav .dropdown-toggle.with-caret::after{border:0}.top-nav #top-main-nav{padding-top:72px;position:relative;transition:padding-top .2s ease}.top-nav #top-main-nav.submenu-expanded{padding-top:0}.top-nav #top-main-nav.submenu-expanded .dropdown:not(.show) .dropdown-toggle{display:none}.top-nav #top-main-nav.submenu-expanded #topnav-search{height:0;overflow:clip;padding-top:0;padding-bottom:0}.top-nav #topnav-search{position:absolute;top:0;width:100%;height:72px;transition:all .2s ease}.top-nav #topnav-search .input-group{flex-wrap:nowrap}.top-nav #topnav-language hr{border-top:1px solid #232325;margin-top:.25rem;margin-bottom:.25rem;display:static}}article h1:before,article h2:before,article h3:before,article h4:before,article h5:before,article h6:before,.interactive-block:before{display:block;content:" ";margin-top:-40px;height:40px;visibility:hidden;pointer-events:none}a{z-index:1}.chevron{position:relative;display:inline-block;width:.75rem;height:.5625rem}.chevron span{position:absolute;top:.25rem;display:inline-block;width:.5rem;height:.15rem;background-color:#9a52ff;transition:all .2s ease;border:none}.chevron:not(.expander) span:first-of-type{left:0;transform:rotate(45deg)}.chevron:not(.expander) span:last-of-type{right:0;transform:rotate(-45deg)}.chevron.active span:first-of-type{transform:rotate(-45deg)}.chevron.active span:first-of-type{transform:rotate(45deg)}.dropdown.show .chevron span:first-of-type,.expander:not(.collapsed) .chevron span:first-of-type{transform:rotate(-45deg)}.dropdown.show .chevron span:last-of-type,.expander:not(.collapsed) .chevron span:last-of-type{transform:rotate(45deg)}#topnav-theme>div{border-radius:var(--language-picker-border-radius);color:var(--language-picker-text-color);background-color:var(--language-picker-background-color);border:1px solid var(--language-picker-border-color);padding:var(--language-picker-input-padding-vertical) var(--language-picker-input-padding-horizontal);min-height:var(--language-picker-min-height)}@media(max-width: 991.98px){.navbar-collapse,.dropdown-menu{box-shadow:0px 25px 40px -20px #000}}.top-banner{display:flex;align-items:center;justify-content:center;height:46px;background:url(../img/backgrounds/bg-apex-banner.svg);background-position:center !important;background-size:cover;background-color:#7919ff;color:#fff}.top-banner .inner-apex{display:flex;justify-content:center;align-items:center}.top-banner .apex-banner-text{color:#fff;font-family:"Work Sans";font-size:20px;font-style:normal;font-weight:600;line-height:24px}.top-banner .apex-btn{margin-left:16px;color:var(--Gray-100, #000) !important;font-family:"Work Sans";font-size:16px;font-style:normal;display:flex;justify-content:center;font-weight:600;align-items:center;line-height:100%;letter-spacing:-0.16px;padding:2px 4px;border-radius:100px !important;background:#18ff83 !important;text-decoration:none !important;width:135px;height:28px}@media(max-width: 1024px){.top-banner{background:url(../img/backgrounds/bg-apex-banner-md.svg)}.top-banner .apex-banner-text{font-size:18px}.top-banner .apex-btn{width:122px;height:26px;font-size:14px;letter-spacing:-0.14px}}@media(max-width: 535px){.top-banner{background:url(../img/backgrounds/bg-apex-banner-sm.svg)}.top-banner .apex-btn{margin-left:0;width:85px;height:16px;font-size:10px;line-height:100%;letter-spacing:-0.1px}.top-banner .apex-banner-text{font-size:12px;line-height:12px}.top-banner .inner-apex{flex-direction:column;gap:8px}}[data-component-name="Markdown/MarkdownWrapper"] article{padding-bottom:50px}[data-component-name="Markdown/MarkdownWrapper"] article p code,[data-component-name="Markdown/MarkdownWrapper"] article table code,[data-component-name="Markdown/MarkdownWrapper"] article li>code{background-color:#0a2e1b;color:#5beb9d}[data-component-name="Markdown/MarkdownWrapper"] article a{text-decoration:underline}[data-component-name="Markdown/MarkdownWrapper"] article h1{font-size:3rem;margin-top:32px;line-height:1.2;font-weight:700}[data-component-name="Markdown/MarkdownWrapper"] article h1:first-child{margin-top:0;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h2,[data-component-name="Markdown/MarkdownWrapper"] article h2.md{margin-top:2.5rem;margin-bottom:1.5rem;font-size:2.5rem;font-weight:600;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h3,[data-component-name="Markdown/MarkdownWrapper"] article h3.md{font-size:2.125rem;margin-top:2rem;margin-bottom:1rem;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h4{font-size:1.75rem;margin-top:1.5rem;margin-bottom:.5rem;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h5{font-size:1.25rem;margin-top:1.25rem;line-height:1.2;font-weight:700}[data-component-name="Markdown/MarkdownWrapper"] article h6{font-size:1rem;margin-top:1rem;line-height:1.2;font-weight:700}[data-component-name="Markdown/MarkdownWrapper"] article li{margin:6px;margin-top:24px}[data-component-name="Markdown/MarkdownWrapper"] article li p{margin:0}[data-component-name="Markdown/MarkdownWrapper"] article a[title=Source]{float:right;padding-left:20px}[data-component-name="Markdown/MarkdownWrapper"] article h1.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h2.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h3.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h4.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h5.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h6.invisible{font-size:0;line-height:0;margin:0}[data-component-name="Markdown/MarkdownWrapper"] article h1.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h2.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h3.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h4.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h5.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h6.invisible .hover_anchor{display:none}[data-component-name="Markdown/MarkdownWrapper"] article .shield{display:inline-block !important;vertical-align:middle}.blurb a{text-decoration:underline}.hover_anchor{visibility:hidden;padding-left:1rem;font-size:1.25rem}h1:hover .hover_anchor,h2:hover .hover_anchor,h3:hover .hover_anchor,h4:hover .hover_anchor,h5:hover .hover_anchor,h6:hover .hover_anchor{visibility:visible;text-decoration:none}pre{color:#fff;background-color:#232325;word-wrap:normal;padding:2rem;border-radius:4px}pre code{white-space:pre;color:#fff;background-color:#232325}.multicode{padding:0;z-index:1;position:relative}.multicode pre{background:none;border:none;border-radius:0;padding:0;clear:both}.multicode pre code{overflow:auto;max-height:24em;border-radius:0 4px 4px 4px;display:block;padding:2rem}.multicode pre code.expanded{overflow:visible;max-height:none;position:absolute;min-width:100%}.multicode ul{margin:0 !important;padding:0}.multicode ul li{display:block;float:left;list-style-type:none;margin-right:0px;margin-left:0px;border:0;clear:none}.multicode a{text-decoration:none;color:#fff;background-color:transparent;padding:.75rem 2rem;margin:0;border-radius:4px 4px 0 0}.multicode a.current{background-color:#232325}.multicode a:hover{text-decoration:none;background-color:#232325;color:#9a52ff;padding-bottom:.625rem}.multicode .btn{z-index:10}.multicode .codetabs{position:relative;z-index:10}.clipboard-btn{z-index:10;margin-right:10px}.codehilite{background:#232325;color:#fff}.codehilite .c,.codehilite .ch,.codehilite .cm,.codehilite .cp,.codehilite .cpf,.codehilite .c1,.codehilite .cs{color:#838386}.codehilite .k,.codehilite .kc,.codehilite .kd,.codehilite .kn,.codehilite .kp,.codehilite .kr,.codehilite .kt{color:#ff6719}.codehilite .m,.codehilite .mb,.codehilite .mh,.codehilite .mi,.codehilite .mo,.codehilite .il{color:#19a3ff}.codehilite .n,.codehilite .na,.codehilite .nb,.codehilite .nc,.codehilite .nd,.codehilite .ne,.codehilite .nf,.codehilite .ni,.codehilite .nl,.codehilite .nn,.codehilite .nt,.codehilite .nv,.codehilite .nx,.codehilite .bp,.codehilite .fm,.codehilite .py{color:#fff}.codehilite .p{color:#e0e0e1}.codehilite .s,.codehilite .s1,.codehilite .s2,.codehilite .sa,.codehilite .sb,.codehilite .sc,.codehilite .dl,.codehilite .sd,.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sr,.codehilite .ss,.codehilite .sx{color:#28b86a}.codehilite{background:transparent;position:relative}.codehilite .btn-group{top:1rem;right:1rem;position:absolute}.multicode .codehilite .btn-group{top:70px;right:20px}#redocly_root .cm-foldPlaceholder{background-color:#232325;border:none;font-size:18px}article img{max-width:100%;height:auto}article svg{max-width:100%}article .floating-diagram{margin:.5rem;float:left}article li{clear:left}html:not(.light) article svg[fill=black]{fill:#fff;stroke:#fff}html:not(.light) article svg[fill=black] *[fill=white]{fill:#000}html:not(.light) article svg[fill=black] *[stroke=white]{stroke:#000}html:not(.light) article svg[fill=black] *[fill=black]{fill:#fff}html:not(.light) article svg[fill=black] *[stroke=black]{stroke:#fff}html:not(.light) article svg[fill=black] g[fill=blue]{fill:#19a3ff}html:not(.light) article svg[fill=black] g[stroke=blue]{stroke:#19a3ff}html:not(.light) article svg[fill=black] g[fill="rgb(120,120,120)"]{fill:#e0e0e1}html:not(.light) article svg[fill=black] g[stroke="rgb(120,120,120)"]{stroke:#e0e0e1}html:not(.light) article svg[fill=black] g[fill="rgb(200,200,200)"]{fill:#343437}html:not(.light) article svg[fill=black] g[fill="rgb(70,70,70)"]{fill:#838386}html:not(.light) article svg[fill=black] g[stroke="rgb(70,70,70)"]{stroke:#838386}html:not(.light) article svg[fill=black] g[fill="rgb(29,180,255)"]{fill:#9a52ff}html:not(.light) article svg[fill=black] g[stroke="rgb(29,180,255)"]{stroke:#9a52ff}html:not(.light) article svg[fill=black] rect[stroke="rgb(245,247,249)"]{stroke:#000}html:not(.light) article svg[fill=black] g[fill=lime],html:not(.light) article svg[fill=black] g[fill="rgb(0,255,0)"]{fill:#9a52ff}html:not(.light) article svg[fill=black] g[stroke=lime],html:not(.light) article svg[fill=black] g[stroke="rgb(0,255,0)"]{stroke:#9a52ff}html:not(.light) article svg[fill=black] g[fill=yellow],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#faff19}html:not(.light) article svg[fill=black] g[fill=yellow] path[stroke=black],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"] path[stroke=black]{stroke:#000}html:not(.light) article svg[fill=black] g[fill=red],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#ff198b}html:not(.light) article svg[fill=black] g[stroke=red],html:not(.light) article svg[fill=black] g[stroke="rgb(255,255,0)"]{stroke:#ff198b}html:not(.light) article svg[fill=black] g[fill=yellow]+g text,html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]+g text{fill:#000}html:not(.light) article svg[fill=black] g[fill=lime]+g text{fill:#000}html:not(.light) article svg[fill=none] path[fill="#000000"]{fill:#fff}html:not(.light) article svg[fill=none] path[stroke="#000000"]{stroke:#fff}html:not(.light) article svg[fill=none] path[fill="#ffffff"]{fill:#000}html:not(.light) article svg[fill=none] path[stroke="#ffffff"]{stroke:#000}html:not(.light) article svg[fill=none] path[fill="#23292f"],html:not(.light) article svg[fill=none] path[fill="#23282f"]{fill:#fff}html:not(.light) article svg[fill=none] path[stroke="#23292f"],html:not(.light) article svg[fill=none] path[stroke="#23282f"]{stroke:#fff}html:not(.light) article svg[fill=none] path[fill="#2c3e50"],html:not(.light) article svg[fill=none] path[fill="#2b3e51"]{fill:#e0e0e1}html:not(.light) article svg[fill=none] path[stroke="#2c3e50"],html:not(.light) article svg[fill=none] path[stroke="#2b3e51"]{stroke:#e0e0e1}html:not(.light) article svg[fill=none] path[fill="#1c2835"]{fill:#f5f5f7}html:not(.light) article svg[fill=none] path[stroke="#1c2835"]{stroke:#f5f5f7}html:not(.light) article svg[fill=none] path[fill="#21aa47"]{fill:#32e685}html:not(.light) article svg[fill=none] path[stroke="#21aa47"]{stroke:#32e685}html:not(.light) article svg[fill=none] path[fill="#e64b3b"]{fill:#dc3545}html:not(.light) article svg[fill=none] path[stroke="#e64b3b"]{stroke:#dc3545}html:not(.light) article svg[fill=none] path[stroke="#27a2db"],html:not(.light) article svg[fill=none] path[stroke="#00aae4"]{stroke:#9a52ff}html:not(.light) article svg[fill=none] path[fill="#27a2db"],html:not(.light) article svg[fill=none] path[fill="#00aae4"]{fill:#9a52ff}html:not(.light) article svg[fill=none] path[fill="#e6e7e8"]{fill:#232325}html:not(.light) article svg[fill=none] path[stroke="#e6e7e8"]{stroke:#232325}html:not(.light) article svg[fill=none] path[stroke="#ffbf27"]{stroke:#d919ff}html:not(.light) article svg[fill=none] path[fill="#00ff00"]{fill:#32e685}html:not(.light) article svg[fill=none] path[stroke="#00ff00"]{stroke:#32e685}html:not(.light) article svg[fill=none] path[fill="#ff00ff"]{fill:#ff198b}html:not(.light) article svg[fill=none] path[stroke="#ff00ff"]{stroke:#ff198b}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#ffffff"]{stop-color:#343437}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#e6e7e8"]{stop-color:#232325}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#dbdcdd"]{stop-color:#000}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#b1b3b5"]{stop-color:#111112}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#29a1da"]{stop-color:#2dcf78}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#2789b9"]{stop-color:#5beb9d}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#6bc1ec"]{stop-color:#adf5ce}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#8ad6f4"]{stop-color:#84f0b6}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#fab913"]{stop-color:#f2b2ff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#fad26b"]{stop-color:#ea80ff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#f8a136"]{stop-color:#e24cff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#f7931a"]{stop-color:#c000e5}html.light svg[fill=black] g[fill=blue]{fill:#006bb2}html.light svg[fill=black] g[stroke=blue]{stroke:#19a3ff}html.light svg[fill=black] g[fill="rgb(120,120,120)"]{fill:#343437}html.light svg[fill=black] g[stroke="rgb(120,120,120)"]{stroke:#343437}html.light svg[fill=black] g[fill="rgb(200,200,200)"]{fill:#a2a2a4}html.light svg[fill=black] g[fill="rgb(70,70,70)"]{fill:#343437}html.light svg[fill=black] g[stroke="rgb(70,70,70)"]{stroke:#343437}html.light svg[fill=black] g[fill="rgb(29,180,255)"]{fill:#19a3ff}html.light svg[fill=black] g[stroke="rgb(29,180,255)"]{stroke:#006bb2}html.light svg[fill=black] rect[stroke="rgb(245,247,249)"]{stroke:#fcfcfd}html.light svg[fill=black] g[fill=lime],html.light svg[fill=black] g[fill="rgb(0,255,0)"]{fill:#5beb9d}html.light svg[fill=black] g[stroke=lime],html.light svg[fill=black] g[stroke="rgb(0,255,0)"]{stroke:#28b86a}html.light svg[fill=black] g[fill=yellow],html.light svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#fcff80}html.light svg[fill=black] g[fill=red],html.light svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#ff4ba4}html.light svg[fill=black] g[stroke=red],html.light svg[fill=black] g[stroke="rgb(255,255,0)"]{stroke:#ff198b}html.light svg[fill=none] rect[fill="#111112"]{fill:#f5f5f7}html.light svg[fill=none] path[fill=white]{fill:#000}html.light svg[fill=none] path[fill="#343437"]{fill:#c1c1c2}html.light svg[fill=none] path[fill="#A2A2A4"],html.light svg[fill=none] rect[fill="#A2A2A4"],html.light svg[fill=none] ellipse[fill="#A2A2A4"]{fill:#454549}html.light svg[fill=none] path[fill="#232325"]{fill:#e0e0e1}html.light svg[fill=none] path[fill="#F5F5F7"]{fill:#111112}html.light svg[fill=none] path[stroke="#F5F5F7"]{stroke:#111112}html.light svg[fill=none] path[stroke="#FF198B"]{stroke:#b20058}html.light svg[fill=none] linearGradient stop[stop-color="#F5F5F7"]{stop-color:#111112}html.light svg[fill=none] linearGradient stop[stop-color="#C1C1C2"]{stop-color:#343437}.external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:16px;padding:0 4px 0 8px;width:16px;height:16px;background-position:center;transition:transform 100ms ease-in-out}.external-link:hover::after{transform:translate(3px, -3px)}.external-link .fa-external-link{display:none}.top-nav .dropdown .external-link::after,.xrpl-footer .external-link::after{background-position:left 6px bottom 1px;width:2rem}@-moz-document url-prefix(){@supports(animation: calc(0s)){.top-nav .dropdown .external-link::after,.xrpl-footer .external-link::after{background-position:left 8px bottom 2px}}}.top-nav .dropdown .external-link:hover::after,.xrpl-footer .external-link:hover::after{background-position:left 8px bottom 3px}.q-wrapper .external-link::after{background-position:left 0 bottom 7px}.q-wrapper .external-link:hover::after{background-position:left 4px bottom 11px}.li-links{position:relative;border-bottom:2px solid #454549}.li-links a{width:100%;padding:16px 0}.li-links a::after{position:absolute;right:4px;content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:1.5rem;padding:0 .5rem;background-position:left 0 bottom -0.1rem;transition:background-position 100ms ease-in-out}.li-links a:hover::after{background-position:left .2rem bottom .1rem}[data-component-name="Footer/Footer"]{padding:7.5rem 2rem}[data-component-name="Footer/Footer"] [data-component-name="Footer/FooterColumn"]{text-shadow:#111112 0px 0px 2px,#111112 1px 1px 2px,#111112 2px 2px 3px,#111112 2px 2px 4px,#111112 2px 2px 5px,#111112 2px 2px 6px,#111112 -1px -1px 2px,#111112 -2px -2px 3px,#111112 -2px -2px 4px}@media(min-width: 992px){[data-component-name="Footer/Footer"]{background-image:url(../img/backgrounds/footer.svg);background-size:cover;background-repeat:no-repeat;background-position:bottom right}}@media(max-width: 991.98px){[data-component-name="Footer/Footer"] .col-lg:not(:first-child){margin-top:4rem}}[data-component-name="Footer/Footer"] h5{font-size:1rem;font-weight:600;color:#a2a2a4}[data-component-name="Footer/Footer"] .nav-link{padding:.75rem 0;line-height:1}[data-component-name="Footer/Footer"] .absolute-bottom-footer{font-size:10px;line-height:1rem}@media(max-width: 991.98px){[data-component-name="Footer/Footer"] .absolute-bottom-footer .copyright-license{margin-top:3rem}}.devportal-callout.tip,.devportal-callout.ヒント{border-color:#32e685}.devportal-callout.tip>strong:first-child:before,.devportal-callout.ヒント>strong:first-child:before{color:#32e685}.devportal-callout.note>strong:first-child:before,.devportal-callout.注記>strong:first-child:before{color:#19a3ff}.devportal-callout.note,.devportal-callout.注記{border-color:#19a3ff}.devportal-callout.caution,.devportal-callout.注意{border-color:#faff19}.devportal-callout.caution>strong:first-child:before,.devportal-callout.注意>strong:first-child:before{color:#faff19}.devportal-callout.warning,.devportal-callout.警告{border-color:#ff198b}.devportal-callout.warning>strong:first-child:before,.devportal-callout.警告>strong:first-child:before{color:#ff198b}blockquote,.devportal-callout{border-style:solid;border-radius:0;border-width:1px;border-left-width:4px;padding:5px;padding-left:25px;page-break-inside:avoid}.devportal-callout>strong:first-child{display:block;page-break-after:avoid}.devportal-callout.tip>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.note>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.caution>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.warning>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}@media(min-width: 992px){.card,.cta-card,.q-wrapper{box-shadow:0px 5px 40px #000}}#code-samples-deck .card{box-shadow:none;margin:0 2rem 5rem 2rem}#code-samples-deck .card-header{border-bottom:none;background-color:unset}#code-samples-deck .card-footer{background-color:unset;font-size:initial}#code-samples-deck .card-deck .card a{margin:0 2.5rem 5rem 2.5rem}#code-samples-deck .circled-logo{margin-left:-15px}@media(min-width: 992px){.code-contribute{width:75vw;position:relative;left:20%;right:20%;margin-left:-30vw;margin-right:-30vw}}.contribute::before{content:"";display:block;height:2px;width:100%;position:absolute;top:0}.contribute .dot{height:16px;width:16px;background-color:#111112;border-radius:50%;border:3px solid #fbff4c;display:inline-block;position:absolute;top:-7px;left:-6px}@media(max-width: 991.98px){.contribute::before{left:0;height:100%;width:2px;top:15px}.contribute .dot{top:5px;left:-6px}}.contribute_1::before{background:-webkit-linear-gradient(left, #feff01, #ff2d9a)}.contribute_1 .dot{border-color:#fbff4c}.contribute_2::before{background:-webkit-linear-gradient(left, #ff2d9a, #e24cff)}.contribute_2 .dot{border-color:#ff198b}.contribute_3::before{background:-webkit-linear-gradient(left, #e24cff, #9a52ff)}.contribute_3 .dot{border-color:#c000e5}.contribute_4::before{background:-webkit-linear-gradient(left, #9a52ff, #9a52ff)}.contribute_4 .dot{border-color:#9a52ff}.card>img{border-radius:8px 8px 0 0}.card-body>p,.card-body>p:not(:last-child){padding:0;margin-bottom:2rem}main a.card{border:0;color:#fff}a.card:hover,a:hover .card-new,[data-component-name="Markdown/MarkdownWrapper"] a.card{text-decoration:none !important}a.card:hover h3{text-decoration:underline}.circled-logo{background-color:#454549;border-radius:50%;padding:.65rem;width:50px;height:50px;margin-bottom:.75rem;border:2px solid #232325}.circled-logo img{width:26px;height:26px;display:inline-block}.light .circled-logo{border:none}.card-deck{margin-top:2.5rem;margin-left:-1.25rem;margin-right:-1.25rem;margin-bottom:5rem;flex-grow:1}@media(min-width: 992px){.card-deck{margin-top:5rem}}.card-deck .card{flex-grow:0;flex-basis:100%;margin:0 1.25rem 5rem 1.25rem;background-position:bottom;background-repeat:no-repeat;background-size:contain}.card-deck.row-cols-1 .card{flex-basis:100%;min-height:264px}@media(min-width: 768px){.card-deck.row-cols-1 .card{min-height:347px}}@media(min-width: 1200px){.card-deck.row-cols-lg-3{margin-left:-2.5rem;margin-right:-2.5rem}}@media(min-width: 992px){.card-deck.row-cols-lg-3 .card{flex-basis:calc(33% - 2.5rem )}}@media(min-width: 1200px){.card-deck.row-cols-lg-3 .card{margin:0 2.5rem 5rem 2.5rem;flex-basis:calc(33% - 5rem )}}@media(min-width: 992px){.card-deck.row-cols-lg-4 .card{flex-basis:calc(25% - 2.5rem )}}.card-deck a.card{transition:all .35s ease-out;cursor:pointer}.card-deck a.card:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}.card-deck .card-footer{font-size:0;padding:1rem;background-position:bottom;background-repeat:no-repeat;background-size:cover;border-top:0}@media(max-width: 991.98px){.card-deck{margin-top:2rem}.card-deck .card-body{padding:1rem}.card-deck.row-cols-1 .card{margin:.75rem .75rem 5rem .75rem;max-width:calc(100% - 1.5rem)}.card-deck.row-cols-2 .card{margin:.75rem;max-width:calc(50% - 1.5rem)}}main article .card-grid.card-grid-3xN{grid-gap:1rem}main article .card-grid.card-grid-3xN .card{padding:0;margin:.5rem}main article .card-grid.card-grid-3xN .card .card-body{padding:1rem}main article .card-grid.card-grid-3xN .card .card-icon-container{width:50px;height:50px;background:#454549;display:flex;justify-content:center;align-items:center;border-radius:50%;margin-bottom:12px}main article .card-grid.card-grid-3xN .card .card-icon-container img{width:70%;height:70%}main article .card-grid.card-grid-3xN .card .card-footer{font-size:0;line-height:0;padding:1rem;background-position:bottom;background-repeat:no-repeat;background-size:cover;border-top:0}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-green-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-magenta-3.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-green-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-light-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3col-orange-yellow-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-pink-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-green-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-magenta.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-purple2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-neutral-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-purple-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3col-light-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-blue-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-dark-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-magenta-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3-col-light-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-magenta-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-orange-3.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-blue-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3-col-light-blue2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-orange-yellow.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3-col-pink.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-green-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-orange-2.svg")}.cta-card{text-align:center;background-color:#232325}.breadcrumbs-wrap{position:relative;z-index:11;padding:0 0 2rem 0}.interactive-block .breadcrumbs-wrap{padding:0}.breadcrumb-item+.breadcrumb-item:before{content:"";font-family:FontAwesome;padding-right:5px}.breadcrumbs-wrap .breadcrumb{padding:0;margin-bottom:0;font-size:.833em}.breadcrumb-item a{color:#e0e0e1;text-decoration:none}.breadcrumb-item a:hover{color:#9a52ff}.landing .container-fluid.section-hero,.landing .section-hero.container-sm,.landing .section-hero.container-md,.landing .section-hero.container-lg,.landing .section-hero.container-xl{padding:48px 0}.landing article .children-display>ul>li,.landing article .curated-links>ul>li{margin-top:24px}.landing article .children-display li a,.landing article .curated-links li a{font-weight:700;font-size:1.25rem;text-decoration:none}.landing article .children-display li a:hover,.landing article .curated-links li a:hover{text-decoration:underline}.landing section:first-of-type h1:first-child{margin-top:0;line-height:1.2}.landing .level-1,.landing .level-2{margin-top:0}.landing .curated-links ul,.landing .curated-links ol,.landing .children-display ul{padding-left:0;margin-bottom:0}.landing .section-hero .blurb{font-size:1.2em;line-height:1.71em}.landing .doc-index .level-1{list-style-type:disc;margin-left:1rem}.landing .doc-index .level-2{list-style-type:circle;margin-left:2rem}.landing .doc-index .level-3{list-style-type:square;margin-left:3rem}.landing .doc-index .level-4{list-style-type:disc;margin-left:4rem}.landing .doc-index .level-5{margin-left:5rem;list-style-type:circle}.landing .doc-index .level-6{margin-left:6rem;list-style-type:square}.landing p a,.landing h5 a{color:#9a52ff;font-weight:600}.landing p a:hover,.landing h5 a:hover{text-decoration:underline}.landing .display-4{margin-bottom:1.5rem}.landing #test-net-servers h3{font-size:1.4rem;font-weight:700}.landing #test-net-servers pre{overflow-x:auto}.landing section:first-of-type{border-top-width:0}.landing #main_content_wrapper{border-bottom:none;margin-top:80px}.landing .marketing-wrapper{margin-top:10rem;margin-bottom:6rem}@media(max-width: 767.98px){.landing .marketing-wrapper{margin-top:6rem}}.landing .nav .nav-link{padding:1rem 2rem 1rem 0;color:#e0e0e1;border-bottom:1px solid #232325;position:relative}.landing .nav .nav-link:hover{color:#9a52ff}.landing .nav .nav-link:not(.external-link)::after{content:" ";background-image:url(../img/icons/arrow-right-purple.svg);background-repeat:no-repeat;background-position:center;background-size:1rem;position:absolute;right:0;width:1.5rem;height:1.5rem;transition:all .2s ease}.landing .nav .nav-link:not(.external-link):hover::after{animation:arrowDance2 1.2s infinite}.landing .nav .nav-link.external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;position:absolute;background-position:center;background-size:.75rem;right:7px;width:1.5rem;height:1.5rem;transition:all .2s ease}.landing .nav .nav-link.external-link:hover::after{animation:arrowDanceDiag 1.2s infinite}.landing .card-body .nav .nav-link{border-bottom:1px solid #454549}.alert-info{color:#fff;background-color:#006bb2;border-width:0}.alert-info a{text-decoration:underline;color:#fff}.alert-info a:hover{color:#e0e0e1}.highlight-subcard{margin:1.5rem 0;padding:1rem;border:2px solid #fff;background:#111112}.interactive-block-inner{border:1px dashed #9a52ff;padding:10px;margin:5px}.interactive-block-ui>button{margin:10px 0}.interactive-block input:invalid{box-shadow:inset 0 0 5px 5px #ff198b}.interactive-block .breadcrumbs-wrap{margin-bottom:11px}.interactive-block .breadcrumb-item{margin-top:6px}.interactive-block .breadcrumb-item a{text-decoration:none}.interactive-block .breadcrumb-item.current a{font-weight:bold}.interactive-block .breadcrumb-item.active a{color:#b480ff}.interactive-block .breadcrumb-item.disabled a{color:#454549}.interactive-block .breadcrumb-item.done a:after{content:"";font-family:FontAwesome;color:#e0e0e1;padding-right:5px;padding-left:5px}.interactive-block .waiting-for-tx{word-break:break-word}.ws-console{height:200px;overflow:auto}.status{cursor:help;padding:1px 2px;font-weight:normal;text-indent:0}.status.not_enabled{color:#faff19}.status.removed{color:#ff198b}.labels-wrap ul::before{content:"";font-family:FontAwesome;font-size:1.5rem}.labels-wrap .list-inline-item{margin-top:.5rem}.pg-category{color:#a2a2a4}.pg-category::after{content:"";font-family:FontAwesome;padding-left:5px}.label{border-radius:100px;border-width:0;padding:.5rem 1rem;font-weight:bold;text-decoration:none !important;text-align:center;white-space:nowrap;background-color:#111112;color:#c1c1c2}.label .badge-pill{width:24px;height:24px;border-radius:50px;margin-left:.5rem;font-weight:400;line-height:23px;font-size:16px;padding:0;margin-top:-2px}html.light .label{background-color:#e0e0e1;color:#232325}html.light .label .badge-pill{color:#e0e0e1;background-color:#232325}html.light .label:hover{background-color:#c1c1c2;color:#111112}html.light .label:hover .badge-pill{color:#c1c1c2;background-color:#111112}.label .badge-pill{color:#111112;background-color:#c1c1c2}.label:hover{color:#e0e0e1;background-color:#232325}.label:hover .badge-pill{color:#232325;background-color:#e0e0e1}.label.label-accounts,.label.label-payment-channels,.label.label-amm,.label.label-アカウント,.label.label-payment-channel,.label.label-use-infrastructure,.label.label-use-security,.label.chip-indigo{background-color:#20004c;color:#b480ff}.label.label-accounts .badge-pill,.label.label-payment-channels .badge-pill,.label.label-amm .badge-pill,.label.label-アカウント .badge-pill,.label.label-payment-channel .badge-pill,.label.label-use-infrastructure .badge-pill,.label.label-use-security .badge-pill,.label.chip-indigo .badge-pill{color:#20004c;background-color:#b480ff}.label.label-accounts:hover,.label.label-payment-channels:hover,.label.label-amm:hover,.label.label-アカウント:hover,.label.label-payment-channel:hover,.label.label-use-infrastructure:hover,.label.label-use-security:hover,.label.chip-indigo:hover{background-color:#350080;color:#d2b2ff}.label.label-accounts:hover .badge-pill,.label.label-payment-channels:hover .badge-pill,.label.label-amm:hover .badge-pill,.label.label-アカウント:hover .badge-pill,.label.label-payment-channel:hover .badge-pill,.label.label-use-infrastructure:hover .badge-pill,.label.label-use-security:hover .badge-pill,.label.chip-indigo:hover .badge-pill{color:#350080;background-color:#d2b2ff}html.light .label.label-accounts,html.light .label.label-payment-channels,html.light .label.label-amm,html.light .label.label-アカウント,html.light .label.label-payment-channel,html.light .label.label-use-infrastructure,html.light .label.label-use-security,html.light .label.chip-indigo{background-color:#d2b2ff;color:#350080}html.light .label.label-accounts .badge-pill,html.light .label.label-payment-channels .badge-pill,html.light .label.label-amm .badge-pill,html.light .label.label-アカウント .badge-pill,html.light .label.label-payment-channel .badge-pill,html.light .label.label-use-infrastructure .badge-pill,html.light .label.label-use-security .badge-pill,html.light .label.chip-indigo .badge-pill{color:#d2b2ff;background-color:#350080}html.light .label.label-accounts:hover,html.light .label.label-payment-channels:hover,html.light .label.label-amm:hover,html.light .label.label-アカウント:hover,html.light .label.label-payment-channel:hover,html.light .label.label-use-infrastructure:hover,html.light .label.label-use-security:hover,html.light .label.chip-indigo:hover{background-color:#b480ff;color:#20004c}html.light .label.label-accounts:hover .badge-pill,html.light .label.label-payment-channels:hover .badge-pill,html.light .label.label-amm:hover .badge-pill,html.light .label.label-アカウント:hover .badge-pill,html.light .label.label-payment-channel:hover .badge-pill,html.light .label.label-use-infrastructure:hover .badge-pill,html.light .label.label-use-security:hover .badge-pill,html.light .label.chip-indigo:hover .badge-pill{color:#b480ff;background-color:#20004c}.label.label-blockchain,.label.label-xrp,.label.label-ブロックチェーン,.label.label-non-fungible-tokens-nfts,.label.label-use-nfts,.label.chip-green{background-color:#145c35;color:#84f0b6}.label.label-blockchain .badge-pill,.label.label-xrp .badge-pill,.label.label-ブロックチェーン .badge-pill,.label.label-non-fungible-tokens-nfts .badge-pill,.label.label-use-nfts .badge-pill,.label.chip-green .badge-pill{background-color:#84f0b6;color:#145c35}.label.label-blockchain:hover,.label.label-xrp:hover,.label.label-ブロックチェーン:hover,.label.label-non-fungible-tokens-nfts:hover,.label.label-use-nfts:hover,.label.chip-green:hover{background-color:#1e8a50;color:#adf5ce}.label.label-blockchain:hover .badge-pill,.label.label-xrp:hover .badge-pill,.label.label-ブロックチェーン:hover .badge-pill,.label.label-non-fungible-tokens-nfts:hover .badge-pill,.label.label-use-nfts:hover .badge-pill,.label.chip-green:hover .badge-pill{background-color:#adf5ce;color:#1e8a50}html.light .label.label-blockchain,html.light .label.label-xrp,html.light .label.label-ブロックチェーン,html.light .label.label-non-fungible-tokens-nfts,html.light .label.label-use-nfts,html.light .label.chip-green{background-color:#adf5ce;color:#145c35}html.light .label.label-blockchain .badge-pill,html.light .label.label-xrp .badge-pill,html.light .label.label-ブロックチェーン .badge-pill,html.light .label.label-non-fungible-tokens-nfts .badge-pill,html.light .label.label-use-nfts .badge-pill,html.light .label.chip-green .badge-pill{color:#adf5ce;background-color:#145c35}html.light .label.label-blockchain:hover,html.light .label.label-xrp:hover,html.light .label.label-ブロックチェーン:hover,html.light .label.label-non-fungible-tokens-nfts:hover,html.light .label.label-use-nfts:hover,html.light .label.chip-green:hover{background-color:#84f0b6;color:#000}html.light .label.label-blockchain:hover .badge-pill,html.light .label.label-xrp:hover .badge-pill,html.light .label.label-ブロックチェーン:hover .badge-pill,html.light .label.label-non-fungible-tokens-nfts:hover .badge-pill,html.light .label.label-use-nfts:hover .badge-pill,html.light .label.chip-green:hover .badge-pill{color:#84f0b6;background-color:#000}.label.label-checks,.label.label-core-server,.label.label-コアサーバー,.label.label-use-interoperability,.label.label-use-web_monetization,.label.chip-purple{background-color:#40004c;color:#ea80ff}.label.label-checks .badge-pill,.label.label-core-server .badge-pill,.label.label-コアサーバー .badge-pill,.label.label-use-interoperability .badge-pill,.label.label-use-web_monetization .badge-pill,.label.chip-purple .badge-pill{background-color:#ea80ff;color:#40004c}.label.label-checks:hover,.label.label-core-server:hover,.label.label-コアサーバー:hover,.label.label-use-interoperability:hover,.label.label-use-web_monetization:hover,.label.chip-purple:hover{background-color:#6b0080;color:#f2b2ff}.label.label-checks:hover .badge-pill,.label.label-core-server:hover .badge-pill,.label.label-コアサーバー:hover .badge-pill,.label.label-use-interoperability:hover .badge-pill,.label.label-use-web_monetization:hover .badge-pill,.label.chip-purple:hover .badge-pill{background-color:#f2b2ff;color:#6b0080}html.light .label.label-checks,html.light .label.label-core-server,html.light .label.label-コアサーバー,html.light .label.label-use-interoperability,html.light .label.label-use-web_monetization,html.light .label.chip-purple{background-color:#f2b2ff;color:#6b0080}html.light .label.label-checks .badge-pill,html.light .label.label-core-server .badge-pill,html.light .label.label-コアサーバー .badge-pill,html.light .label.label-use-interoperability .badge-pill,html.light .label.label-use-web_monetization .badge-pill,html.light .label.chip-purple .badge-pill{color:#f2b2ff;background-color:#6b0080}html.light .label.label-checks:hover,html.light .label.label-core-server:hover,html.light .label.label-コアサーバー:hover,html.light .label.label-use-interoperability:hover,html.light .label.label-use-web_monetization:hover,html.light .label.chip-purple:hover{background-color:#ea80ff;color:#40004c}html.light .label.label-checks:hover .badge-pill,html.light .label.label-core-server:hover .badge-pill,html.light .label.label-コアサーバー:hover .badge-pill,html.light .label.label-use-interoperability:hover .badge-pill,html.light .label.label-use-web_monetization:hover .badge-pill,html.light .label.chip-purple:hover .badge-pill{color:#ea80ff;background-color:#40004c}.label.label-cross-currency,.label.label-security,.label.label-クロスカレンシー,.label.label-セキュリティ,.label.label-use-gaming,.label.label-use-defi,.label.chip-yellow{background-color:#4b4c00;color:#fcff80}.label.label-cross-currency .badge-pill,.label.label-security .badge-pill,.label.label-クロスカレンシー .badge-pill,.label.label-セキュリティ .badge-pill,.label.label-use-gaming .badge-pill,.label.label-use-defi .badge-pill,.label.chip-yellow .badge-pill{background-color:#fcff80;color:#4b4c00}.label.label-cross-currency:hover,.label.label-security:hover,.label.label-クロスカレンシー:hover,.label.label-セキュリティ:hover,.label.label-use-gaming:hover,.label.label-use-defi:hover,.label.chip-yellow:hover{background-color:#7d8000;color:#fdffb2}.label.label-cross-currency:hover .badge-pill,.label.label-security:hover .badge-pill,.label.label-クロスカレンシー:hover .badge-pill,.label.label-セキュリティ:hover .badge-pill,.label.label-use-gaming:hover .badge-pill,.label.label-use-defi:hover .badge-pill,.label.chip-yellow:hover .badge-pill{background-color:#fdffb2;color:#7d8000}html.light .label.label-cross-currency,html.light .label.label-security,html.light .label.label-クロスカレンシー,html.light .label.label-セキュリティ,html.light .label.label-use-gaming,html.light .label.label-use-defi,html.light .label.chip-yellow{background-color:#fdffb2;color:#7d8000}html.light .label.label-cross-currency .badge-pill,html.light .label.label-security .badge-pill,html.light .label.label-クロスカレンシー .badge-pill,html.light .label.label-セキュリティ .badge-pill,html.light .label.label-use-gaming .badge-pill,html.light .label.label-use-defi .badge-pill,html.light .label.chip-yellow .badge-pill{color:#fdffb2;background-color:#7d8000}html.light .label.label-cross-currency:hover,html.light .label.label-security:hover,html.light .label.label-クロスカレンシー:hover,html.light .label.label-セキュリティ:hover,html.light .label.label-use-gaming:hover,html.light .label.label-use-defi:hover,html.light .label.chip-yellow:hover{background-color:#fcff80;color:#4b4c00}html.light .label.label-cross-currency:hover .badge-pill,html.light .label.label-security:hover .badge-pill,html.light .label.label-クロスカレンシー:hover .badge-pill,html.light .label.label-セキュリティ:hover .badge-pill,html.light .label.label-use-gaming:hover .badge-pill,html.light .label.label-use-defi:hover .badge-pill,html.light .label.chip-yellow:hover .badge-pill{color:#fcff80;background-color:#4b4c00}.label.label-decentralized-exchange,.label.label-smart-contracts,.label.label-transaction-sending,.label.label-分散型取引所,.label.label-スマートコントラクト,.label.label-トランザクション送信,.label.label-use-developer_tooling,.label.label-use-payments,.label.chip-blue{background-color:#002e4c;color:#80ccff}.label.label-decentralized-exchange .badge-pill,.label.label-smart-contracts .badge-pill,.label.label-transaction-sending .badge-pill,.label.label-分散型取引所 .badge-pill,.label.label-スマートコントラクト .badge-pill,.label.label-トランザクション送信 .badge-pill,.label.label-use-developer_tooling .badge-pill,.label.label-use-payments .badge-pill,.label.chip-blue .badge-pill{background-color:#80ccff;color:#002e4c}.label.label-decentralized-exchange:hover,.label.label-smart-contracts:hover,.label.label-transaction-sending:hover,.label.label-分散型取引所:hover,.label.label-スマートコントラクト:hover,.label.label-トランザクション送信:hover,.label.label-use-developer_tooling:hover,.label.label-use-payments:hover,.label.chip-blue:hover{background-color:#004d80;color:#b2e0ff}.label.label-decentralized-exchange:hover .badge-pill,.label.label-smart-contracts:hover .badge-pill,.label.label-transaction-sending:hover .badge-pill,.label.label-分散型取引所:hover .badge-pill,.label.label-スマートコントラクト:hover .badge-pill,.label.label-トランザクション送信:hover .badge-pill,.label.label-use-developer_tooling:hover .badge-pill,.label.label-use-payments:hover .badge-pill,.label.chip-blue:hover .badge-pill{background-color:#b2e0ff;color:#004d80}html.light .label.label-decentralized-exchange,html.light .label.label-smart-contracts,html.light .label.label-transaction-sending,html.light .label.label-分散型取引所,html.light .label.label-スマートコントラクト,html.light .label.label-トランザクション送信,html.light .label.label-use-developer_tooling,html.light .label.label-use-payments,html.light .label.chip-blue{background-color:#b2e0ff;color:#004d80}html.light .label.label-decentralized-exchange .badge-pill,html.light .label.label-smart-contracts .badge-pill,html.light .label.label-transaction-sending .badge-pill,html.light .label.label-分散型取引所 .badge-pill,html.light .label.label-スマートコントラクト .badge-pill,html.light .label.label-トランザクション送信 .badge-pill,html.light .label.label-use-developer_tooling .badge-pill,html.light .label.label-use-payments .badge-pill,html.light .label.chip-blue .badge-pill{color:#b2e0ff;background-color:#004d80}html.light .label.label-decentralized-exchange:hover,html.light .label.label-smart-contracts:hover,html.light .label.label-transaction-sending:hover,html.light .label.label-分散型取引所:hover,html.light .label.label-スマートコントラクト:hover,html.light .label.label-トランザクション送信:hover,html.light .label.label-use-developer_tooling:hover,html.light .label.label-use-payments:hover,html.light .label.chip-blue:hover{background-color:#80ccff;color:#002e4c}html.light .label.label-decentralized-exchange:hover .badge-pill,html.light .label.label-smart-contracts:hover .badge-pill,html.light .label.label-transaction-sending:hover .badge-pill,html.light .label.label-分散型取引所:hover .badge-pill,html.light .label.label-スマートコントラクト:hover .badge-pill,html.light .label.label-トランザクション送信:hover .badge-pill,html.light .label.label-use-developer_tooling:hover .badge-pill,html.light .label.label-use-payments:hover .badge-pill,html.light .label.chip-blue:hover .badge-pill{color:#80ccff;background-color:#002e4c}.label.label-escrow,.label.label-tokens,.label.label-development,.label.label-トークン,.label.label-開発,.label.label-use-wallet,.label.label-use-sustainability,.label.chip-orange{background-color:#4c1a00;color:#ffaa80}.label.label-escrow .badge-pill,.label.label-tokens .badge-pill,.label.label-development .badge-pill,.label.label-トークン .badge-pill,.label.label-開発 .badge-pill,.label.label-use-wallet .badge-pill,.label.label-use-sustainability .badge-pill,.label.chip-orange .badge-pill{background-color:#ffaa80;color:#4c1a00}.label.label-escrow:hover,.label.label-tokens:hover,.label.label-development:hover,.label.label-トークン:hover,.label.label-開発:hover,.label.label-use-wallet:hover,.label.label-use-sustainability:hover,.label.chip-orange:hover{background-color:#802b00;color:#ffccb2}.label.label-escrow:hover .badge-pill,.label.label-tokens:hover .badge-pill,.label.label-development:hover .badge-pill,.label.label-トークン:hover .badge-pill,.label.label-開発:hover .badge-pill,.label.label-use-wallet:hover .badge-pill,.label.label-use-sustainability:hover .badge-pill,.label.chip-orange:hover .badge-pill{background-color:#ffccb2;color:#802b00}html.light .label.label-escrow,html.light .label.label-tokens,html.light .label.label-development,html.light .label.label-トークン,html.light .label.label-開発,html.light .label.label-use-wallet,html.light .label.label-use-sustainability,html.light .label.chip-orange{background-color:#ffccb2;color:#802b00}html.light .label.label-escrow .badge-pill,html.light .label.label-tokens .badge-pill,html.light .label.label-development .badge-pill,html.light .label.label-トークン .badge-pill,html.light .label.label-開発 .badge-pill,html.light .label.label-use-wallet .badge-pill,html.light .label.label-use-sustainability .badge-pill,html.light .label.chip-orange .badge-pill{color:#ffccb2;background-color:#802b00}html.light .label.label-escrow:hover,html.light .label.label-tokens:hover,html.light .label.label-development:hover,html.light .label.label-トークン:hover,html.light .label.label-開発:hover,html.light .label.label-use-wallet:hover,html.light .label.label-use-sustainability:hover,html.light .label.chip-orange:hover{background-color:#ffaa80;color:#4c1a00}html.light .label.label-escrow:hover .badge-pill,html.light .label.label-tokens:hover .badge-pill,html.light .label.label-development:hover .badge-pill,html.light .label.label-トークン:hover .badge-pill,html.light .label.label-開発:hover .badge-pill,html.light .label.label-use-wallet:hover .badge-pill,html.light .label.label-use-sustainability:hover .badge-pill,html.light .label.chip-orange:hover .badge-pill{color:#ffaa80;background-color:#4c1a00}.label.label-fees,.label.label-payments,.label.label-data-retention,.label.label-手数料,.label.label-支払い,.label.label-データ保持,.label.label-use-exchanges,.label.label-use-custody,.label.chip-magenta{background-color:#4c0026;color:#ff80bf}.label.label-fees .badge-pill,.label.label-payments .badge-pill,.label.label-data-retention .badge-pill,.label.label-手数料 .badge-pill,.label.label-支払い .badge-pill,.label.label-データ保持 .badge-pill,.label.label-use-exchanges .badge-pill,.label.label-use-custody .badge-pill,.label.chip-magenta .badge-pill{background-color:#ff80bf;color:#4c0026}.label.label-fees:hover,.label.label-payments:hover,.label.label-data-retention:hover,.label.label-手数料:hover,.label.label-支払い:hover,.label.label-データ保持:hover,.label.label-use-exchanges:hover,.label.label-use-custody:hover,.label.chip-magenta:hover{background-color:#80003f;color:#ffb2d8}.label.label-fees:hover .badge-pill,.label.label-payments:hover .badge-pill,.label.label-data-retention:hover .badge-pill,.label.label-手数料:hover .badge-pill,.label.label-支払い:hover .badge-pill,.label.label-データ保持:hover .badge-pill,.label.label-use-exchanges:hover .badge-pill,.label.label-use-custody:hover .badge-pill,.label.chip-magenta:hover .badge-pill{background-color:#ffb2d8;color:#80003f}html.light .label.label-fees,html.light .label.label-payments,html.light .label.label-data-retention,html.light .label.label-手数料,html.light .label.label-支払い,html.light .label.label-データ保持,html.light .label.label-use-exchanges,html.light .label.label-use-custody,html.light .label.chip-magenta{background-color:#ffb2d8;color:#80003f}html.light .label.label-fees .badge-pill,html.light .label.label-payments .badge-pill,html.light .label.label-data-retention .badge-pill,html.light .label.label-手数料 .badge-pill,html.light .label.label-支払い .badge-pill,html.light .label.label-データ保持 .badge-pill,html.light .label.label-use-exchanges .badge-pill,html.light .label.label-use-custody .badge-pill,html.light .label.chip-magenta .badge-pill{color:#ffb2d8;background-color:#80003f}html.light .label.label-fees:hover,html.light .label.label-payments:hover,html.light .label.label-data-retention:hover,html.light .label.label-手数料:hover,html.light .label.label-支払い:hover,html.light .label.label-データ保持:hover,html.light .label.label-use-exchanges:hover,html.light .label.label-use-custody:hover,html.light .label.chip-magenta:hover{background-color:#ff80bf;color:#4c0026}html.light .label.label-fees:hover .badge-pill,html.light .label.label-payments:hover .badge-pill,html.light .label.label-data-retention:hover .badge-pill,html.light .label.label-手数料:hover .badge-pill,html.light .label.label-支払い:hover .badge-pill,html.light .label.label-データ保持:hover .badge-pill,html.light .label.label-use-exchanges:hover .badge-pill,html.light .label.label-use-custody:hover .badge-pill,html.light .label.chip-magenta:hover .badge-pill{color:#ff80bf;background-color:#4c0026}.tag-cloud .list-inline-item{margin-top:1.5rem}.command-list-wrapper{position:sticky;top:calc(var(--navbar-height) + var(--toc-offset-top));max-height:calc(100vh - var(--navbar-height) - var(--toc-offset-top));overflow-y:auto;width:var(--toc-width)}#tx-sender-history .list-group-item{font-size:small;color:#454549}.response-metadata .timestamp{color:#454549}.throbber{width:24px;height:24px}#connection-status .card-body{border-left:0}#connection-status-item.active{background-color:#32e685;border-color:#32e685}.api-input-area .btn-group>.send-request.btn{border-bottom-right-radius:4px;border-top-right-radius:4px}#tx-sender-history ul{overflow:auto;height:220px;border:1px solid #e0e0e1}.progress small{margin-top:.5rem}.page-tx-sender .input-group .form-control,.interactive-block-ui .input-group .form-control{flex:1 1 20%;height:auto}.bootstrap-growl{max-width:90vw !important;overflow:hidden}.list-group-item-danger,#tx-sender-history .list-group-item-danger{background-color:#ff80bf;color:#000}.list-group-item-danger a,#tx-sender-history .list-group-item-danger a{color:#000}.list-group-item-danger a:hover,#tx-sender-history .list-group-item-danger a:hover{color:#000;text-decoration:underline}.rpc-tool .main h1::before,.rpc-tool .main h2::before,.rpc-tool .main h3::before{display:none}@media print{.multicode>div{display:block !important}.multicode>em,.multicode>p>em{display:block !important;page-break-after:avoid}.multicode>p{display:block !important}.code_toggler{display:none}pre{white-space:pre-wrap;max-height:none !important;overflow:visible;page-break-inside:auto;word-wrap:break-word}pre code{white-space:pre-wrap !important;color:#22252b !important}code{white-space:pre-wrap !important;color:#22252b !important}.codehilite .n,.codehilite .na,.codehilite .nb,.codehilite .nc,.codehilite .nd,.codehilite .ne,.codehilite .nf,.codehilite .ni,.codehilite .nl,.codehilite .nn,.codehilite .nt,.codehilite .nv,.codehilite .nx,.codehilite .bp,.codehilite .fm,.codehilite .py{color:#22252b}article a[title=Source]{float:none}header,footer,aside{display:none !important}.navbar{display:none !important}article,#main_content_body{position:static;display:block;width:auto;height:auto;color:#000 !important;max-width:100%;overflow:visible !important}body{overflow:visible;background:#fff}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:#000}.interactive-block{display:none}.container{margin-top:1rem !important}}#home-purple{position:absolute;left:0;top:-400px}#home-green{position:absolute;right:-3px;top:60px}.sidelinks:hover{color:#9a52ff}.sidelinks.active{color:#9a52ff;font-weight:bold}.page-home #home-hero-graphic{content:url("../img/home-hero.svg");margin-left:auto;width:856px;margin-right:auto;margin-bottom:24px;max-width:100%}.page-home #benefits-list #public{content:url("../img/icons/public.svg")}.page-home #benefits-list #streamlined{content:url("../img/icons/streamlined.svg")}.page-home #benefits-list #performance{content:url("../img/icons/performance.svg")}.page-home #benefits-list #low-cost{content:url("../img/icons/low-cost.svg")}.page-home #benefits-list #community{content:url("../img/icons/community.svg")}.page-home #benefits-list #reliability{content:url("../img/icons/reliability.svg")}.page-home #advanced-features .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-pink-purple.svg")}.page-home #advanced-features .card:nth-child(2) .card-footer{background-image:url("../img/cards/3col-neutral-blue.svg")}.page-home #advanced-features .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-light-green.svg")}.page-home #advanced-features .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-orange.svg")}.page-home #advanced-features .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-purple-blue-2.svg")}.page-home #get-started .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-orange-yellow.svg")}.page-home #get-started .card:nth-child(2) .card-footer{background-image:url("../img/cards/3col-magenta-orange.svg")}.page-home #get-started .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-green.svg")}.page-home #get-started .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-light-blue.svg")}.page-home #get-started .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-green-blue.svg")}.cta{position:absolute}.cta-top-left{top:0;left:0}.cta-bottom-right{bottom:0;right:0}.landing-bg{opacity:.6}@media(min-width: 768px){.landing-bg{opacity:1}}.landing-builtin-bg::before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background-repeat:no-repeat;background-position-x:left;background-position-y:top;opacity:.6}@media(min-width: 768px){.landing-builtin-bg::before{opacity:1}}#xrp-overview-blue{position:absolute;top:0;left:0}@media(max-width: 767.98px){#xrp-mark-overview{height:40px;margin-top:16px}}#wallets #wallet-ledger{content:url("../img/wallets/ledger.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-secalot{content:url("../img/wallets/secalot.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-trezor{content:url("../img/wallets/trezor.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-xumm{content:url("../img/wallets/xumm.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-trust{content:url("../img/wallets/trust.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-gatehub{content:url("../img/wallets/gatehub.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-towo{content:url("../img/wallets/towo.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-keystone{content:url("../img/wallets/keystone.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-dcent{content:url("../img/wallets/dcent.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-coin{content:url("../img/wallets/coin.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#top-exchanges #exch-bitstamp{content:url("../img/exchanges/bitstamp.svg")}#top-exchanges #exch-kraken{content:url("../img/exchanges/kraken.svg")}#top-exchanges #exch-cex-io{content:url("../img/exchanges/cex-io.svg")}#top-exchanges #exch-liquid{content:url("../img/exchanges/liquid.svg")}#top-exchanges #exch-lmax{content:url("../img/exchanges/lmax.svg")}#top-exchanges #exch-bitfinex{content:url("../img/exchanges/bitfinex.svg")}#top-exchanges #exch-etoro{content:url("../img/exchanges/etoro.svg")}#top-exchanges #exch-bittrex{content:url("../img/exchanges/bittrex.png")}#top-exchanges #exch-currency-com{content:url("../img/exchanges/currency-com.png")}#top-exchanges #exch-ftx{content:url("../img/exchanges/ftx.png")}#xrpl-overview-purple{position:absolute;top:40px;left:0}@media(max-width: 767.98px){#xrpl-overview-purple{top:0;left:-20vw}}#xrpl-overview-orange{position:absolute;top:80px;right:-4px}#use-cases-orange{position:absolute;top:-480px;right:-4px}#validator-graphic{content:url(../img/validators.svg)}.page-uses .container-new{padding-left:16px;padding-right:16px}.page-uses h1{font-size:42px}.page-uses::before{transform:scaleX(-1);background-image:url(../img/backgrounds/use-cases-blue.svg)}.page-uses .card-grid{grid-gap:8px}.page-uses .card-grid img{max-height:40px}.page-uses .modal{padding:0}.page-uses .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#000;background-clip:padding-box;border:none;border-radius:0;box-shadow:none;outline:none;background:#111112}.page-uses .modal-header{border:none;background:#111112;box-shadow:0px 1px 2px #000}.page-uses .modal-header .cancel .chevron{transform:rotate(90deg)}.page-uses .modal-header .apply .chevron{transform:rotate(-90deg)}.page-uses .modal-footer{border:none;background:#111112;box-shadow:0px -1px 2px #000;align-items:unset;padding:.75rem;flex-direction:column;flex-wrap:wrap}.page-uses .card-title{margin-bottom:.5rem;line-height:26px}.page-uses .card-uses{padding:16px;margin:0;text-decoration:none;transition:all .35s ease-out}.page-uses .card-uses:hover{text-decoration:none;color:#e0e0e1;transform:translateY(-16px);text-decoration:none}.page-uses .card-body{background:#232325;border-radius:8px;height:100%;padding:32px;margin:0}.page-uses .page-events .label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.page-uses .category-header{font-weight:bold;color:#c1c1c2}.page-uses .light .category-checkbox label{color:#fff}.page-uses .category-checkbox{display:flex;align-items:center}.page-uses .category-checkbox label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.page-uses .category_count{margin-left:8px;padding:2px 16px;width:24px;height:16px;background:#350080;border-radius:100px;font-weight:600;font-size:12px;line-height:16px;color:#b480ff}.page-uses .category_sidebar{position:sticky;top:10px}.page-uses #infrastructure{content:url("../img/icons/usecases/ic_infrastructure.png")}.page-uses #developer_tooling{content:url("../img/icons/usecases/ic_developer_tooling.png")}.page-uses #interoperability{content:url("../img/icons/usecases/ic_interoperability.png")}.page-uses #wallet{content:url("../img/icons/usecases/ic_wallet.png")}.page-uses #nfts{content:url("../img/icons/usecases/ic_nfts.png")}.page-uses #exchanges{content:url("../img/icons/usecases/ic_exchanges.png")}.page-uses #gaming{content:url("../img/icons/usecases/ic_gaming.png")}.page-uses #security{content:url("../img/icons/usecases/ic_security.png")}.page-uses #payments{content:url("../img/icons/usecases/ic_payments.png")}.page-uses #web_monetization{content:url("../img/icons/usecases/ic_web_monetization.png")}.page-uses #sustainability{content:url("../img/icons/usecases/ic_sustainability.png")}.page-uses #cbdc{content:url("../img/icons/usecases/ic_cbdc.png")}.page-uses #other{content:url("../img/icons/usecases/ic_other.png")}.page-uses #carbon_markets{content:url("../img/icons/usecases/ic_carbon_markets.png")}.page-uses #custody{content:url("../img/icons/usecases/ic_custody.png")}.page-uses #defi{content:url("../img/icons/usecases/ic_defi.png")}.page-uses #use_case_companies_list #bithomp .biz-logo{max-height:40px;content:url("../img/uses/bithomp.svg")}.page-uses #use_case_companies_list #onthedex .biz-logo{max-height:40px;content:url("../img/uses/onthedex.svg")}.page-uses #use_case_companies_list #gatehub .biz-logo{max-height:40px;content:url("../img/uses/gatehub.svg")}.page-uses #use_case_companies_list #towo-labs .biz-logo{max-height:40px;content:url("../img/uses/towo-labs.svg")}.page-uses #use_case_companies_list #xrp-toolkit .biz-logo{max-height:40px;content:url("../img/uses/xrp-toolkit.svg")}.page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo{max-height:40px;content:url("../img/uses/xrpl-org-ledger-explorer.svg")}.page-uses #use_case_companies_list #xrpl-rosetta .biz-logo{max-height:40px;content:url("../img/uses/xrpl-rosetta.svg")}.page-uses #use_case_companies_list #xrpscan .biz-logo{max-height:40px;content:url("../img/uses/xrpscan.svg")}.page-uses #use_case_companies_list #evernode .biz-logo{max-height:40px;content:url("../img/uses/evernode.svg")}.page-uses #use_case_companies_list #cryptum .biz-logo{max-height:40px;content:url("../img/uses/cryptum.svg")}.page-uses #use_case_companies_list #x-tokenize .biz-logo{max-height:40px;content:url("../img/uses/x-tokenize.svg")}.page-uses #use_case_companies_list #multichain .biz-logo{max-height:40px;content:url("../img/uses/multichain.svg")}.page-uses #use_case_companies_list #xumm-wallet .biz-logo{max-height:40px;content:url("../img/uses/xumm-wallet.svg")}.page-uses #use_case_companies_list #gem-wallet .biz-logo{max-height:40px;content:url("../img/uses/gem-wallet.svg")}.page-uses #use_case_companies_list #aesthetes .biz-logo{max-height:40px;content:url("../img/uses/aesthetes.svg")}.page-uses #use_case_companies_list #audiotarky .biz-logo{max-height:40px;content:url("../img/uses/audiotarky.svg")}.page-uses #use_case_companies_list #xrp-cafe .biz-logo{max-height:40px;content:url("../img/uses/xrp-cafe.svg")}.page-uses #use_case_companies_list #nft-master .biz-logo{max-height:40px;content:url("../img/uses/nft-master.svg")}.page-uses #use_case_companies_list #onxrp .biz-logo{max-height:40px;content:url("../img/uses/onxrp.svg")}.page-uses #use_case_companies_list #peerkat .biz-logo{max-height:40px;content:url("../img/uses/peerkat.svg")}.page-uses #use_case_companies_list #sologenic-nft .biz-logo{max-height:40px;content:url("../img/uses/sologenic-nft.svg")}.page-uses #use_case_companies_list #sologenic-dex .biz-logo{max-height:40px;content:url("../img/uses/sologenic-dex.svg")}.page-uses #use_case_companies_list #xp-market .biz-logo{max-height:40px;content:url("../img/uses/xp-market.svg")}.page-uses #use_case_companies_list #ledger-city .biz-logo{max-height:40px;content:url("../img/uses/ledger-city.svg")}.page-uses #use_case_companies_list #forte .biz-logo{max-height:40px;content:url("../img/uses/forte.svg")}.page-uses #use_case_companies_list #anchain-ai .biz-logo{max-height:40px;content:url("../img/uses/anchain-ai.svg")}.page-uses #use_case_companies_list #coil .biz-logo{max-height:40px;content:url("../img/uses/coil.svg")}.page-uses #use_case_companies_list #carbonland-trust .biz-logo{max-height:40px;content:url("../img/uses/carbonland-trust.svg")}.page-uses #use_case_companies_list #casino-coin .biz-logo{max-height:40px;content:url("../img/uses/casino-coin.svg")}.page-uses #use_case_companies_list #bitgo .biz-logo{max-height:40px;content:url("../img/uses/bitgo.svg")}.page-uses #use_case_companies_list #bitpay .biz-logo{max-height:40px;content:url("../img/uses/bitpay.svg")}.page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo{max-height:40px;content:url("../img/uses/ripples-on-demand-liquidity.svg")}.page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo{max-height:40px;content:url("../img/uses/ripples-cbdc-platform.svg")}.page-uses #use_case_companies_list #momento .biz-logo{max-height:40px;content:url("../img/uses/momento.svg")}.page-uses #use_case_companies_list #Crossmark .biz-logo{max-height:40px;content:url("../img/uses/Crossmark.png")}.page-uses #use_case_companies_list #Edge .biz-logo{max-height:40px;content:url("../img/uses/Edge.png")}@media(min-width: 992px){.page-uses h1{font-size:62px}.page-uses .container-new{padding-left:64px;padding-right:64px}.page-uses .card-grid img{max-height:48px}.page-uses .card-grid{grid-gap:48px}.page-uses .card-uses{padding:24px}}#history-orange{position:absolute;top:0;right:-4px}#history-purple{position:absolute;top:-480px;left:-4px}.hidden-section{overflow:hidden;visibility:hidden;height:0}.hidden-section.show{overflow:auto;visibility:visible;height:auto}#impact-green{position:absolute;top:0;left:-4px;rotate:180deg}#impact-purple{position:absolute;top:100px;right:-4px}#impact-magenta{position:absolute;top:100px;right:-4px}#foundation-magenta{position:absolute;top:0px;left:0px}#foundation-orange{position:absolute;top:40px;right:-4px}.page-impact #map-light{display:none}.page-impact #map-dark{display:block}.page-impact .connect-list #connect-01{content:url("../img/impact/connect-01.svg")}.page-impact .connect-list #connect-02{content:url("../img/impact/connect-02.svg")}.page-impact .connect-list #connect-03{content:url("../img/impact/connect-03.svg")}.page-impact .connect-list #connect-04{content:url("../img/impact/connect-04.svg")}.page-funding .funding-list #funding-01{content:url("../img/funding/funding-01.svg")}.page-funding .funding-list #funding-02{content:url("../img/funding/funding-02.svg")}.page-funding .funding-list #funding-03{content:url("../img/funding/funding-03.svg")}.page-funding .funding-list #funding-04{content:url("../img/funding/funding-04.svg")}.page-funding #funding-orange{position:absolute;top:132px;left:-4px}@media(min-width: 992px){.page-funding .funding-box{min-height:200px}}.page-ambassadors #benefits-list #benefits-01{content:url("../img/ambassadors/benefits-01.svg")}.page-ambassadors #benefits-list #benefits-02{content:url("../img/ambassadors/benefits-02.svg")}.page-ambassadors #benefits-list #benefits-03{content:url("../img/ambassadors/benefits-03.svg")}.page-ambassadors #benefits-list #benefits-04{content:url("../img/ambassadors/benefits-04.svg")}.page-ambassadors #benefits-list #benefits-05{content:url("../img/ambassadors/benefits-05.svg")}.page-ambassadors #benefits-list #benefits-06{content:url("../img/ambassadors/benefits-06.svg")}.page-ambassadors #eligibility-list #eligibility-01{content:url("../img/ambassadors/eligibility-01.svg")}.page-ambassadors #eligibility-list #eligibility-02{content:url("../img/ambassadors/eligibility-02.svg")}.page-ambassadors #eligibility-list #eligibility-03{content:url("../img/ambassadors/eligibility-03.svg")}.page-ambassadors #eligibility-list #eligibility-04{content:url("../img/ambassadors/eligibility-04.svg")}.page-ambassadors #eligibility-list #eligibility-05{content:url("../img/ambassadors/eligibility-05.svg")}.page-ambassadors .btn{padding:.75rem}.page-ambassadors #container-scroll{height:160px;position:relative;overflow:hidden;margin-top:80px;margin-bottom:64px}.page-ambassadors .photobanner{position:absolute;top:0px;left:0px;overflow:hidden;white-space:nowrap;animation:bannermove 40s linear infinite}.page-ambassadors .photobanner-bottom{top:112px}.page-ambassadors .photobanner img{margin:0 .5em}@keyframes bannermove{0%{transform:translate(0, 0)}100%{transform:translate(-50%, 0)}}.page-ambassadors #carouselSlidesOnly{height:392px;margin-bottom:40px}@media(min-width: 992px){.page-ambassadors #carouselSlidesOnly{height:320px;margin-bottom:104px}}.page-ambassadors h6{font-size:1.25rem}.page-ambassadors .btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);vertical-align:middle;padding-left:8px;transition:transform .3s ease-out}.page-ambassadors .btn-arrow:hover{text-decoration:none;background:none !important;border:none}.page-ambassadors .btn-arrow:hover::after{background-position:left 4px bottom 4px;transform:translateX(4px)}.autoscroll-content{animation:autoscroll 15s linear infinite;white-space:nowrap;overflow:hidden;max-width:300px}#community-magenta{position:absolute;top:0px;left:0px}#community-purple{position:absolute;top:160px;right:0px}.page-events #event-hero-image{height:100%;min-height:209px;background:url(../img/events/event-hero1@2x.png);background-size:contain;background-repeat:no-repeat;background-position:center}.page-events #events-orange{position:absolute;top:0px;right:0px}.page-events .event-hero{color:#f5f5f7}.page-events .event-hero p{font-weight:500;font-size:24px;line-height:32px}.page-events .event-save-date{color:#fff;font-weight:bold;font-size:20px;line-height:26px}.page-events .event-small-gray{color:#e0e0e1}.page-events .btn{padding:.75rem}.page-events .event-card{max-width:311px;margin:32px auto;transition:all .35s ease-out;position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-clip:border-box;background-color:#232325;box-shadow:0px 5px 40px #000;border:1px solid rgba(0,0,0,.125);border-radius:8px;font-size:16px;line-height:24px;color:#e0e0e1}.page-events .event-card .event-card-header{position:relative;height:176px;background-size:contain !important;width:100%;border-radius:8px 8px 0 0}.page-events .event-card .event-card-title{position:absolute;bottom:32px;padding:0 32px;color:#f5f5f7;font-weight:bold;font-size:20px;line-height:28px}.page-events .event-card .event-card-body{padding:32px}.page-events .event-card .event-card-footer{padding:0 32px 32px}.page-events .event-card .event-card-footer .icon::before{height:24px;width:24px;content:"";margin-right:8px;background-size:contain;background-repeat:no-repeat}.page-events .event-card .icon-date::before{background:url(../img/events/event-date.svg)}.page-events .event-card .icon-location::before{background:url(../img/events/event-location.svg)}@media(min-width: 992px){.page-events .event-card{max-width:347px;margin:32px}.page-events .event-card-header{height:197px !important}}.page-events a.event-card:hover{transform:translateY(-16px);text-decoration:none}.page-events label{margin:0;padding-left:8px;color:#fff}.page-events .events-filter h6{font-size:16px}.page-events .events-filter{height:20px;width:20px}.page-events .events-filter[type=checkbox]::before{position:relative;display:block;width:20px;height:20px;content:"";background:#111112;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.page-events .events-filter[type=checkbox]::after{position:relative;display:block;top:-20px;width:20px;height:20px;content:"";background-repeat:no-repeat;background-position:center;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.page-events .events-filter[type=checkbox]:checked::before{background:#111112;border:none;border-radius:0}.page-events .events-filter[type=checkbox]:checked::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;background-color:#7919ff;border-width:2px;border-style:solid;border-color:#7919ff;border-radius:4px}.page-events .events-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}.page-events .events-filter[type=checkbox]:not(:disabled):hover::before{background:#111112;border:none;border-radius:0}.page-events .events-filter[type=checkbox]:not(:disabled):hover::after{background:#111112;border:none;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}#find-us-on-platforms .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-light-blue-3.svg)}#find-us-on-platforms .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-purple-blue-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-magenta-3.svg)}#find-us-on-platforms .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-green-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(5) .card-footer{background-image:url(../img/cards/4col-orange-yellow-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(6) .card-footer{background-image:url(../img/cards/4col-blue-purple.svg)}#find-us-on-platforms .card-deck .card:nth-child(7) .card-footer{background-image:url(../img/cards/4col-yellow-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(8) .card-footer{background-image:url(../img/cards/4col-orange-2.svg)}#find-us-on-platforms .card-deck .card{margin-bottom:2.5rem}.page-faq::before{background-image:url(../img/backgrounds/faq-bg.svg)}@media(min-width: 768px){.page-faq::before{background-size:contain}}@media(min-width: 992px){.page-faq article{max-width:704px;margin-left:auto;margin-right:auto}}.page-faq article h6:first-of-type{color:#32e685;margin-bottom:1rem;margin-top:2.5rem;font-size:1.25rem;line-height:26px;text-align:center}.page-faq article h6:first-of-type .hover_anchor{display:none}@media(min-width: 992px){.page-faq article h6:first-of-type{margin-top:6.5rem}}.page-faq article h1:first-of-type{font-size:2.625rem;line-height:1.2;margin-top:0;margin-bottom:5rem;text-align:center}.page-faq article h1:first-of-type .hover_anchor{display:none}@media(min-width: 992px){.page-faq article h1:first-of-type{font-size:3.875rem;margin-bottom:13rem}}.page-faq h2{margin-top:13rem;font-size:2rem;line-height:2.375rem;text-align:center;font-weight:700}.page-faq .q-wrapper,.mini-faq .q-wrapper{background:#232325;border-radius:4px;padding:2rem;padding-right:3rem;margin-bottom:3.5rem;position:relative;z-index:5;width:100%;transform:translateY(0%)}.page-faq .q-wrapper p a,.mini-faq .q-wrapper p a{text-decoration:none;font-weight:600;color:#9a52ff}.page-faq .q-wrapper p a:hover,.mini-faq .q-wrapper p a:hover{text-decoration:underline}.page-faq .q-wrapper h4,.mini-faq .q-wrapper h4{font-size:1.25rem;line-height:1.625rem;margin-top:0}.page-faq .q-wrapper h4::before,.mini-faq .q-wrapper h4::before{display:block;content:" ";margin-top:-40px;height:40px;visibility:hidden;pointer-events:none}.page-faq .q-wrapper h4>a,.mini-faq .q-wrapper h4>a{text-decoration:none}.page-faq .q-wrapper h4>a:hover,.mini-faq .q-wrapper h4>a:hover{text-decoration:underline;color:#fff}@media(max-width: 991.98px){.page-faq .q-wrapper h4,.mini-faq .q-wrapper h4{font-size:1rem;line-height:1.5rem}}.page-faq .q-wrapper h4 .chevron,.mini-faq .q-wrapper h4 .chevron{position:absolute;top:40px;right:2rem}.page-docs-index::before{background-position-x:right}.page-docs-index .center-search .input-group-text{height:56px;padding:.75rem .75rem .75rem 1rem;line-height:2rem}.page-docs-index .center-search .ds-input{height:56px;padding:.75rem 1rem .75rem .5rem}.page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-green.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-light-blue.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-orange.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-yellow.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-orange-yellow.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-magenta.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-blue-green.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-light-blue-2.svg)}.page-docs-index #docs-hot-topic .longform{margin-top:2.5rem}.page-docs-index #community-heading,.page-community #community-heading{padding-top:25rem;margin-top:0px}@media(max-width: 768px){.page-docs-index #community-heading,.page-community #community-heading{padding-top:31rem}}.page-docs-index #community-heading .hero-title,.page-community #community-heading .hero-title{position:absolute;bottom:0;left:50%;transform:translateX(-50%)}@media(min-width: 992px){.page-docs-index #community-heading,.page-community #community-heading{padding-left:0}.page-docs-index #community-heading .hero-title,.page-community #community-heading .hero-title{min-width:max-content;bottom:-83%}}.page-docs-index #community-heading .parallax,.page-community #community-heading .parallax{position:absolute;-webkit-transition:all .1s ease;-moz-transition:all .1s ease;-ms-transition:all .1s ease;-o-transition:all .1s ease;transition:all .1s ease}.page-docs-index #community-heading .one,.page-community #community-heading .one{top:160px;left:0%;opacity:.4}.page-docs-index #community-heading .two,.page-community #community-heading .two{top:130px;left:56%;height:320px;opacity:.4}.page-docs-index #community-heading .three,.page-community #community-heading .three{top:145px;right:16%;height:67px}.page-docs-index #community-heading .four,.page-community #community-heading .four{top:374px;left:8%;width:107px}.page-docs-index #community-heading .five,.page-community #community-heading .five{top:476px;width:152px;height:102px;right:5%;opacity:.4}.page-docs-index #run-a-network-node .card-deck .card:nth-child(1) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-yellow-2.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(2) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-purple.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(3) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-magenta-2.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-light-green.svg)}.page-docs-index #run-a-network-node,.page-community #run-a-network-node{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #run-a-network-node,.page-community #run-a-network-node{padding-top:104px;padding-bottom:104px}}.page-docs-index #run-a-network-node .text-cards,.page-community #run-a-network-node .text-cards{grid-gap:40px}.page-docs-index #run-a-network-node .text-cards h6::before,.page-community #run-a-network-node .text-cards h6::before{margin-top:0;height:unset}.page-docs-index #run-a-network-node .text-cards a,.page-community #run-a-network-node .text-cards a{font-size:1.25rem;line-height:26px;color:#fff;font-weight:bold}.page-docs-index #run-a-network-node .text-cards a:hover,.page-community #run-a-network-node .text-cards a:hover{text-decoration:none;background:none !important}.page-docs-index #run-a-network-node .text-cards .btn-arrow::after,.page-community #run-a-network-node .text-cards .btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.page-docs-index #xrpl-grants,.page-community #xrpl-grants{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-grants,.page-community #xrpl-grants{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-blog,.page-community #xrpl-blog{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-blog,.page-community #xrpl-blog{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-events,.page-community #xrpl-events{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-events,.page-community #xrpl-events{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-careers,.page-community #xrpl-careers{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-careers,.page-community #xrpl-careers{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-design-assets,.page-community #xrpl-design-assets{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-design-assets,.page-community #xrpl-design-assets{padding-top:104px;padding-bottom:208px}}.page-community #platform-github{content:url("../img/logos/github.svg")}.page-community #platform-twitch{content:url("../img/logos/twitch.svg")}.page-community #platform-stack-overflow{content:url("../img/logos/stack-overflow.svg")}.page-community #platform-twitter{content:url("../img/logos/twitter.svg")}.page-community #platform-discord{content:url("../img/logos/discord.svg")}.page-community #platform-youtube{content:url("../img/logos/youtube.svg")}.page-community #platform-devto{content:url("../img/logos/devto.svg")}.page-references #refs-types .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/3col-orange-2.svg)}.page-references #refs-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/3col-green-2.svg)}.page-references #refs-types .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/3col-magenta.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-light-blue-4.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-blue-green-2.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-yellow-3.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-purple-blue.svg)}.page-dev-tools #xrp-explorer .card-footer{background-image:url("../img/cards/3-col-orange.svg")}.page-dev-tools #bithomp-explorer .card-footer{background-image:url("../img/cards/3-col-light-blue.svg")}.page-dev-tools #xrpscan .card-footer{background-image:url("../img/cards/3-col-pink.svg")}.page-dev-tools #token-list .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}.page-dev-tools #websocket .card-footer{background-image:url("../img/cards/3-col-purple2.svg")}.page-dev-tools #rpc .card-footer{background-image:url("../img/cards/3-col-green.svg")}.page-dev-tools #technical-explorer .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}.page-dev-tools #faucets .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}.page-dev-tools #trasaction-sender .card-footer{background-image:url("../img/cards/3-col-light-blue2.svg")}.page-dev-tools #domain .card-footer{background-image:url("../img/cards/3-col-green-purple.svg")}.page-dev-tools #xrp-ledger .card-footer{background-image:url("../img/cards/3-col-dark-blue.svg")}.page-dev-tools #binary-visualizer .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}.page-dev-tools #token-metadata-lookup .card-footer{background-image:url("../img/cards/3-col-pink-purple.svg")}.page-dev-tools .nav-link{color:#a2a2a4;background-color:#111112;border-top:none;border-left:none;border-right:none;border-bottom-color:#454549}@media(max-width: 767.98px){.page-dev-tools .nav-tabs{display:flex;list-style:none;margin-left:0;padding-left:0;justify-content:space-between}.page-dev-tools .nav-item{display:inline-flex;width:auto;list-style:outside none none}.page-dev-tools .nav-link{display:inline-flex;width:auto;padding:1em 1em}}.page-dev-tools .nav-link.active{border-bottom-color:#9a52ff;color:#fff;font-weight:bold}.page-dev-tools .nav-tabs{border-bottom:1px solid #454549}.page-dev-tools .btn{padding:.75rem}html.light .page-dev-tools .nav-link{background-color:#f5f5f7}html.light .page-dev-tools .nav-link.active{border-bottom-color:#9a52ff;color:#000;font-weight:bold}html.light .page-dev-tools .nav-link{color:#000}html.light .page-dev-tools #trasaction-sender .card-footer{background-image:url("../img/cards/3-col-light-blue-2.svg")}.json-view{display:block;color:#4d4d4d;--json-property:#009033;--json-index:#676dff;--json-number:#676dff;--json-string:#b2762e;--json-boolean:#dc155e;--json-null:#dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover, .json-view .jv-size:hover + .jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy, .json-view--edit){display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0px 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover, .json-view--pair:hover)>:is(.json-view--copy, .json-view--edit){display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer}.json-view .cursor-pointer{cursor:pointer}.json-view_a11y{color:#545454;--json-property:#aa5d00;--json-index:#007299;--json-number:#007299;--json-string:green;--json-boolean:#d91e18;--json-null:#d91e18}.json-view_github{color:#005cc5;--json-property:#005cc5;--json-index:#005cc5;--json-number:#005cc5;--json-string:#032f62;--json-boolean:#005cc5;--json-null:#005cc5}.json-view_vscode{color:#005cc5;--json-property:#0451a5;--json-index:blue;--json-number:blue;--json-string:#a31515;--json-boolean:blue;--json-null:blue}.json-view_atom{color:#383a42;--json-property:#e45649;--json-index:#986801;--json-number:#986801;--json-string:#50a14f;--json-boolean:#0184bc;--json-null:#0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property:#3a9685;--json-index:#ae408b;--json-number:#ae408b;--json-string:#8123a9;--json-boolean:#0184bc;--json-null:#0184bc}.json-view{font-family:"Space Mono",monospace;padding:1em;background:#232325;overflow:hidden;color:#f5f5f7 !important;font-size:14px;letter-spacing:0}.json-view svg{height:11px !important;color:#f5f5f7}.jv-button{color:#ff6719 !important;font-size:14px}.jv-indent{border-left:1px solid #454549;margin:4px}.json-view--boolean{color:#e50071 !important}.json-view--pair{margin:4px}.json-view--property{color:#f5f5f7 !important}.json-view--null,.json-view--undefined{display:inline-block;padding:1px 2px;border-radius:3px;background-color:#454549;color:#f5f5f7 !important;font-size:11px}.json-view--number{color:#84f0b6 !important}.json-view--string{color:#ff6719 !important}.rpc-tool .nav-link{cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:6px 9px}.dev-blog .image-container{transform:translateY(15%);z-index:1}.dev-blog .text-bg{background-color:#232325;padding:60px 40px;width:100%;border-radius:30px}@media(min-width: 992px){.dev-blog .image-container{transform:translateX(15%)}.dev-blog .text-bg{padding:50px 60px}}.dev-blog .line-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.dev-blog #blog-purple{position:absolute;top:0px;left:0px}.dev-blog #card-date{color:#a2a2a4}.dev-blog .category-badge{max-width:180px;border-radius:30px;border:solid 2px;padding:1px;text-align:center;word-wrap:break-word;font-size:13px;font-weight:bold}.dev-blog .post-date{text-decoration:overline solid #32e685 10%}.dev-blog #general-badge{background-color:#343437;color:#fff}.dev-blog #release_notes-badge{background-color:#145c35;color:#32e685}.dev-blog #advisories-badge{background-color:#4c1a00;color:#ff6719}.dev-blog #amendments-badge{background-color:#4b4c00;color:#faff19}.dev-blog #development-badge{background-color:#20004c;color:#7919ff}.dev-blog #developer_reflections-badge{background-color:#002e4c;color:#19a3ff}.dev-blog #gateway_bulletins-badge{background-color:#40004c;color:#d919ff}.dev-blog #features-badge{background-color:#145c35;color:#32e685}.dev-blog #security-badge{background-color:#4c0026;color:#ff198b}.dev-blog #category-list #general{content:url("../img/blog/general.png");max-width:100%;width:100%}.dev-blog #category-list #developer_reflections{content:url("../img/blog/developer_reflections.png");max-width:100%;width:100%}.dev-blog #category-list #amendments{content:url("../img/blog/amendments.png");max-width:100%;width:100%}.dev-blog #category-list #advisories{content:url("../img/blog/advisories.png");max-width:100%;width:100%}.dev-blog #category-list #release_notes{content:url("../img/blog/release_notes.png");max-width:100%;width:100%}.dev-blog #category-list #development{content:url("../img/blog/development.png");max-width:100%;width:100%}.dev-blog #category-list #gateway_bulletins{content:url("../img/blog/gateway_bulletins.png");max-width:100%;width:100%}.dev-blog #category-list #features{content:url("../img/blog/features.png");max-width:100%;width:100%}.dev-blog #category-list #security{content:url("../img/blog/security.png");max-width:100%;width:100%}.dev-blog .category_sidebar{position:sticky;top:10px}.dev-blog .category-checkbox{display:flex;align-items:center}.dev-blog .dropdown{position:relative;display:inline-block}.dev-blog .dropdown-btn{color:#fff;background-color:#232325;border-color:#232325;border-style:solid;border-radius:4px;padding:8px 16px;font-size:16px;cursor:pointer;text-align:start;padding-right:10px}.dev-blog .dropdown-btn img{content:url("../img/icons/chevron-arrow-down.svg");width:10px;height:13px;padding:8px}.dev-blog .dropdown-content{display:flex;align-items:start;background-color:#232325;padding:16px 8px;width:254px;height:auto;border-radius:4px}.dev-blog .category-checkbox label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.dev-blog .category-header{font-weight:normal;width:200px;color:#f5f5f7}.dev-blog label{margin:0;padding-left:8px;color:#fff}.dev-blog .blog-filter h6{font-size:16px}.dev-blog .blog-filter[type=checkbox]::before{position:relative;display:block;width:20px;height:20px;content:"";background:#111112;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.dev-blog .blog-filter[type=checkbox]::after{position:relative;display:block;top:-20px;width:20px;height:20px;content:"";background-repeat:no-repeat;background-position:center;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.dev-blog .blog-filter[type=checkbox]:checked::before{background:#111112;border:none;border-radius:0}.dev-blog .blog-filter[type=checkbox]:checked::after{background-image:url(../img/blog/blog-check.svg);background-repeat:no-repeat;background-position:center;background-color:#7919ff;border-width:2px;border-style:solid;border-color:#7919ff;border-radius:4px}.dev-blog .blog-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/blog/blog-check.svg);background-repeat:no-repeat;background-position:center;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}.dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::before{background:#111112;border:none;border-radius:0}.dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::after{background:#111112;border:none;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}#feedback-content .docked-widget{border:none !important;background-color:transparent !important;position:static !important;box-shadow:none !important;width:auto !important}#feedback-content .widget-form-wrapper{position:static !important;box-shadow:none !important;display:block;background-color:#232325 !important;border-width:0 !important;padding:24px !important;border-radius:8px !important}#feedback-content .widget-form-wrapper div{background-color:#232325 !important}#feedback-content .widget-form-wrapper textarea{background-color:#fff !important;opacity:1 !important;border:none !important;border-radius:4px !important;margin:0 !important;width:100% !important;color:#000 !important}#feedback-content .widget-form-wrapper .widget-header-title{background:none !important;flex-grow:0 !important;padding-right:1rem !important;height:auto !important;padding:0 !important;margin-bottom:10px !important}#feedback-content .widget-form-wrapper .widget-header-footer{background:none !important}#feedback-content .widget-form-wrapper .widget-form-footer{padding-right:0 !important}#feedback-content .widget-form-wrapper .submit{background-color:#7919ff !important;font-weight:bold !important;color:#fff !important;border:none !important;border-color:transparent !important;border-radius:4px !important;margin:0 !important;margin-top:8px !important}#feedback-content .widget-form-wrapper .submit:hover{background:#5f00e5 !important}#feedback-content .widget-form-wrapper .submit.disabled,#feedback-content .widget-form-wrapper .submit[disabled=disabled]{background-color:#4a00b2 !important}#feedback-content .widget-form-wrapper .submit.disabled:hover,#feedback-content .widget-form-wrapper .submit[disabled=disabled]:hover{background-color:#4a00b2 !important}#feedback-content .widget-form-wrapper .cancel{margin:0 !important;margin-top:8px !important;color:#b480ff !important;font-weight:600 !important}#feedback-content #closeFeedback{display:none}#feedback-content .widget-helpful .widget-header{background-color:#232325 !important;border-radius:8px !important}#feedback-content .widget-helpful .widget-header-title{color:#fff !important}.video-image{transition:all .35s ease-out;cursor:pointer}.video-image:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}#video-overlay{position:fixed;top:0;left:0;z-index:1190;height:100%;width:100%;background:#fff;opacity:.6;display:none}#video{display:none;position:fixed;top:10%;left:15%;width:70%;z-index:1200}#video-container{position:relative;top:50%;left:50%;-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);max-width:982px;padding:0 20px}#videoWrapper{position:absolute;top:0;left:0;height:calc(90vh - 100px);width:80vw}#videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}#video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.video-external-link{color:#9a52ff;font-weight:600}.video-external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:24px;padding:9px 4px 0 8px;width:2rem;background-position:left 8px bottom 0px;transition:background-position 100ms ease-in-out}.video-external-link.video-external-link:hover::after{background-position:left 12px bottom 8px}.video-title{line-height:1.2}@media(min-width: 768px){.video-title{font-size:1rem}}@media(max-width: 768px){.page-community .sm-align-items-start{align-items:start !important}}.page-community .numbers-animation{width:218px;height:96px}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.page-community .bounce-arrow{animation:bounce 1.5s infinite;animation-timing-function:ease-in-out;height:26px;width:26px;position:relative;top:24px}.page-community .m-gif{height:108px}.page-community .middle-image{margin:0 auto;height:35px}.page-community .bg-hero{width:100%;height:635px}.page-community #center-image{cursor:pointer}.page-community .gradient-num-three{background:linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .middle-image-two{margin:0 auto;height:52px}.page-community .gradient-num-two{background:linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .gradient-num{background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .surround-gradient{background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .surround-gradient-two{background:linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .surround-gradient-three{background:linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .main-title{color:var(--black-black-0, #FFF);text-align:center;font-family:Work Sans;font-size:62px;font-style:normal;font-weight:700;line-height:70px}@media(max-width: 768px){.page-community .main-title{font-size:42px;line-height:52px;text-align:left}}.page-community .get-funding-btn{width:90%;margin:0 auto}@media(max-width: 768px){.page-community .cd-none-sm{display:none !important}}@media(min-width: 769px){.page-community .cd-none-lg{display:none !important}}.page-community .icon-date{padding-right:4px;content:url(../img/events/event-date.svg)}.page-community .icon-location{padding-right:4px;content:url(../img/events/event-location.svg)}.page-community .builders-wrap{white-space:nowrap}@media(min-width: 768px){.page-community .builders-wrap{white-space:normal}}.page-community #community-table{padding:20px 93px;max-width:1280px;margin:0 auto;border-radius:5px;padding-top:165px}@media(min-width: 992px){.page-community #community-table{padding-top:512px}}@media(max-width: 768px){.page-community #community-table{margin:0;padding:20px;margin-top:100px !important}}.page-community .eyebrow-convo{text-align:start;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:26px;padding-bottom:5px}.page-community .final-tr{border:none !important}.page-community #community-table h4{text-align:start;margin:10px 0;font-family:Work Sans;font-size:32px;font-style:normal;font-weight:700;line-height:38px}.page-community #community-table table{width:100%;margin-top:31px;border-collapse:collapse}.page-community #community-table tr{padding:10px 10px;border-bottom:1px solid #343437}.page-community #community-table td{overflow:hidden;max-width:34vw;position:relative;vertical-align:middle}.page-community .scrolling-text{display:inline-block}.page-community #community-table img{max-width:52px;height:29px}.page-community .td-img{padding:10px;width:69px}.page-community .td-img .discord-icon{content:url(../img/community/ic_discord.png)}.page-community .td-img .twitter-icon{content:url(../img/community/ic_twitter.png)}.page-community .td-img .youtube-icon{content:url(../img/community/ic_youtube.png)}.page-community .td-img .xrpl-icon{content:url(../img/community/ic_xrpl.png)}.page-community .td-img .github-icon{content:url(../img/community/ic_github.png)}.page-community .td-img .stackoverflow-icon{content:url(../img/community/ic_stackoverflow.png)}.page-community .text-external-link{display:inline-flex;align-items:center;margin-left:10px}.page-community .external-link-contribute{display:inline-block;vertical-align:middle;padding-right:41px;height:16px;background:url(../img/icons/arrow-up-right.svg) no-repeat center center;transition:transform .3s ease}.page-community .text-external-link:hover .external-link-contribute{transform:translate(5px, -5px)}.page-community table td{position:relative;padding-right:25px}.page-community table td .text-external-link{position:absolute;right:5px;top:50%;transform:translateY(-50%)}@media(max-width: 768px){.page-community #community-table img{width:96px;height:29px}.page-community #community-table{width:100%}.page-community .td-img{min-width:60px}}.page-community .funding-text{color:var(#FFFFFF);font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:44px;padding-bottom:4px}.page-community .xrpl-events-section{padding:50px 40px;margin:100px auto;display:flex;justify-content:space-around;align-items:center;max-width:1280px}@media screen and (max-width: 768px){.page-community .xrpl-events-section{flex-direction:column;align-items:start}.page-community .xrpl-events-section .header-div{text-align:center}.page-community .xrpl-events-section .header{display:flex;flex-direction:column;align-items:start}.page-community .xrpl-events-section .header h6{margin-bottom:.5rem;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:28px}.page-community .xrpl-events-section .header h4{font-family:Work Sans;font-size:28px;font-style:normal;font-weight:700;line-height:34px}.page-community .xrpl-events-section .description{text-align:start;margin-top:2rem;font-family:Work Sans;font-size:24px;font-style:normal;font-weight:500;line-height:28px}.page-community .xrpl-events-section .view-all-events-btn{float:left}.page-community .xrpl-events-section .upcoming-event{text-align:start;margin-top:2rem;padding:1rem 0}.page-community .xrpl-events-section .upcoming-event .days-count{margin-bottom:1rem}}.page-community .xrpl-events-section .header-div{padding-top:27px}.page-community .xrpl-events-section .header h6{padding-left:1.5px;font-family:"Work Sans",sans-serif;font-size:20px;font-weight:700;color:var(--black-black-0, #FFF);text-align:start}.page-community .xrpl-events-section .header h4{text-align:start;font-family:"Work Sans",sans-serif;font-size:32px;font-weight:700;color:var(--black-black-0, #FFF)}.page-community .xrpl-events-section .description{font-family:"Work Sans",sans-serif;font-size:20px;font-weight:500;max-width:444px;color:var(--black-black-10-gray-200, #E0E0E1);line-height:32px}.page-community .xrpl-events-section .view-all-events-btn{display:inline-block;margin-top:1rem}.page-community .xrpl-events-section .upcoming-event{margin-top:2rem}.page-community .xrpl-events-section .upcoming-event .upcoming-label{position:relative;top:7px;font-family:"Work Sans",sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--black-black-30, #C1C1C2)}.page-community .xrpl-events-section .upcoming-event .days-count{font-weight:300;margin-bottom:21px;line-height:99px;font-size:88px;background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.page-community .xrpl-events-section .upcoming-event .days-word{vertical-align:bottom;font-weight:normal;margin-bottom:21px;line-height:99px;font-size:40px;background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.page-community .xrpl-events-section .upcoming-event h5{font-family:"Work Sans",sans-serif;font-size:16px;font-weight:700;color:var(--black-black-10, #F5F5F7)}.page-community .xrpl-events-section .upcoming-event .event-details,.page-community .xrpl-events-section .upcoming-event .event-location{font-family:"Work Sans",sans-serif;font-size:12px;font-weight:600;color:var(--black-black-30, #C1C1C2)}.page-community .community-funding{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:1280px;margin:100px auto;padding-right:54px;padding-left:73px;margin-top:120px}.page-community .funding-section{flex:1;padding:20px;color:var(--black-black-0)}.page-community .small-text{color:var(--black-black-30, #C1C1C2);font-family:Work Sans;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;padding-left:11px;text-align:start}.page-community .funding-section h2{font-size:32px;font-weight:700;line-height:38px;margin-top:10px;margin-bottom:40px}.page-community .funding-section p{color:var(--black-black-20);font-size:24px;font-weight:500;line-height:32px;margin-bottom:40px}.page-community .stats{flex:1;display:flex;justify-content:space-between}@media(max-width: 768px){.page-community .stats{flex-direction:column;align-items:start;text-align:start;padding-left:7px}}.page-community .stacked-stats{display:flex;flex-direction:column;justify-content:space-between}.page-community .stat{align-self:center;text-align:center;margin:0 auto;display:flex;flex-direction:column}@media(max-width: 768px){.page-community .stat{margin:0px;text-align:start;align-self:start}}.page-community .number{opacity:1;font-size:88px;display:flex;padding:10px;align-items:center;line-height:96px;font-weight:300}@media screen and (max-width: 768px){.page-community .community-funding{flex-direction:column-reverse;padding-left:16px;padding-right:16px}.page-community .funding-section,.page-community .stats{width:100%}}.page-community .carousel{position:relative;width:1280px;margin:0 auto;margin-top:106px;max-width:100%}.page-community .carousel .flex-align{display:flex;align-items:center}@media(max-width: 768px){.page-community .carousel{width:100%}}.page-community .center-image-wrapper{position:relative;width:552px;height:314px}@media(max-width: 1118px){.page-community .center-image-wrapper{width:55%;height:auto}}@media(max-width: 768px){.page-community .center-image-wrapper{margin:0 auto;width:86%}}.page-community .image-container{display:flex;justify-content:space-around;align-items:center;overflow:hidden}.page-community .image-container img{max-width:100%;transition:transform .7s ease-in-out,opacity .7s ease-in-out}.page-community #center-image{width:100%}.page-community #left-image,.page-community #right-image{width:252px;height:144px;opacity:.7}@media(max-width: 1118px){.page-community #left-image,.page-community #right-image{width:15%;height:auto}}@media(max-width: 768px){.page-community #left-image,.page-community #right-image{display:none;margin:0}}.page-community #left-image.exit,.page-community #right-image.exit{transform:translateX(-100%);opacity:0}.page-community #left-image.enter,.page-community #right-image.enter{transform:translateX(100%);opacity:0}.page-community #center-image.exit{transform:scale(0.8);opacity:0}.page-community #center-image.enter{transform:scale(1);opacity:1}.page-community .nav-btn{position:absolute;top:50%;transform:translateY(-50%);font-size:24px;background:none;border:none;cursor:pointer}.page-community #prev-btn{left:0}.page-community #next-btn{right:0}.page-community .event-info{position:absolute;bottom:10px;left:32px;display:flex;flex-direction:column;gap:4px}@media(max-width: 768px){.page-community .event-info{left:7px}}.page-community .event-info span{color:#fff;font-family:Work Sans;font-size:12px;font-style:normal;font-weight:600;line-height:16px}.page-community .event-info .name{padding-bottom:5px;color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:24px}.page-community .arrow-wrapper{display:flex;justify-content:center;padding-top:24px}.page-community :root{--black-black-0: #FFF;--black-black-10: #F5F5F7;--black-black-30: #C1C1C2}.page-community .community-spotlight-wrapper{display:flex;padding:20px;max-width:1280px;min-height:582px;margin:100px auto;gap:48px;padding-right:54px;padding-left:73px}.page-community .community-spotlight{flex:1;display:flex;flex-direction:column;padding-right:10px}.page-community .projects-wrapper{flex:1;position:relative;display:flex;justify-content:center;gap:48px}@media(max-width: 768px){.page-community .projects-wrapper{gap:48px}}.page-community .project-card{background-color:transparent;border-radius:4px;height:fit-content;width:252px;max-height:456px}@media(max-width: 768px){.page-community .project-card{width:99%}}.page-community .project-card.bottom-right{align-self:end}.page-community .card-image{border-radius:4px;height:144px;width:252px;background-color:#2c2b2b;display:flex;align-items:center}.page-community .spotlight-title,.page-community .project-title{color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:16px}.page-community .spotlight-subtitle{color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:16px}.page-community .project-description{color:var(--black-black-30, #C1C1C2);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.page-community .card-details{background-color:transparent;display:flex;flex-direction:column;text-align:start;padding:15px;height:fit-content}.page-community .view-project{color:var(--blue-purple-blue-purple-50, #7919FF);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:16px;cursor:pointer;text-decoration:none}@media(max-width: 1076px){.page-community .project-card.bottom-right{align-self:auto}.page-community .community-spotlight-wrapper{flex-direction:column;align-items:center;margin-left:0px;padding-right:26px;padding-left:26px}.page-community .community-spotlight,.page-community .projects-wrapper{width:100%;margin:0;padding:0}.page-community .projects-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;position:static}.page-community .card-image{width:100%}.page-community .card-details{gap:16px;margin-top:10px}.page-community .project-card{position:static;margin:20px 0;height:fit-content}}.page-community .w-222{width:222px}.page-community .bottom-cards-section .com-card .card-content{display:flex;flex-direction:column;justify-content:space-between;gap:16px;position:relative;z-index:1;height:100%}.page-community .bottom-cards-section .com-card{border-radius:8px;padding:36px;background:#232325;min-width:352px;height:442px;max-width:352px;position:relative;display:flex;flex-direction:column;justify-content:space-between}.page-community .bottom-cards-section{display:flex;flex-direction:row;justify-content:center;gap:48px;max-width:1280px;margin:0 auto}.page-community .bottom-cards-section .com-card{padding:36px;background:#232325;min-width:352px;height:442px;max-width:352px;position:relative}.page-community .bottom-cards-section .com-card .top-left-img{position:absolute;top:0;height:292px;left:0;content:url(../img/community/card-bg-1.svg)}.page-community .bottom-cards-section .com-card .bottom-right-img{position:absolute;bottom:0;right:0;height:333px;content:url(../img/community/card-bg-2.svg)}.page-community .bottom-cards-section .com-card .top-right-img{height:390px;position:absolute;top:0;right:0;content:url(../img/community/card-bg-3.svg)}.page-community .bottom-cards-section .com-card .card-content{display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.page-community .bottom-cards-section .com-card .card-content .card-title{margin-bottom:0px !important;color:var(--black-black-0-white, #FFF);white-space:nowrap;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:26px}.page-community .bottom-cards-section .com-card .card-content .card-subtitle{color:var(--black-black-0, #FFF);font-family:Work Sans;font-size:24px;font-style:normal;font-weight:700;line-height:32px;margin-top:2px}.page-community .bottom-cards-section .com-card .card-content .card-description{color:var(--black-black-20, #E0E0E1);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:24px;margin-top:15px;margin-bottom:15px}.page-community .bottom-cards-section .com-card .card-content .card-links{display:flex;flex-direction:column;gap:8px}.page-community .bottom-cards-section .com-card .card-content .com-card-link{text-decoration:none;cursor:pointer;color:#9a52ff;font-family:Work Sans;font-size:16px;font-style:normal;font-weight:600;line-height:24px}@media(max-width: 767.98px){.page-community .bottom-cards-section .com-card .card-content .com-card-link{display:block;width:100%}}.page-community .bottom-cards-section .com-card .card-content .com-card-link::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);position:relative;top:1px;vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover{border:none}.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover::after{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}@media(max-width: 768px){.page-community .bottom-cards-section{flex-direction:column;align-items:center;padding:20px}.page-community .bottom-cards-section .com-card{margin-bottom:20px;display:block;width:100%}.page-community .com-card .top-left-img,.page-community .com-card .bottom-right-img,.page-community .com-card .top-right-img{position:static;display:block;width:100%;margin-bottom:15px}}.page-community .num-separator{width:32px;height:1px;background:var(--black-black-70, #343437);margin-bottom:32px;margin-top:1px}.page-community .stat-separator{width:32px;height:1px;background:var(--black-black-70, #343437);margin-bottom:32px;margin-top:8px}.page-community .ml-8{margin-left:8px}.page-community .ml-19{margin-left:19px}.page-community .ml-14{margin-left:11px}.page-community .header-div .header{gap:10px;display:flex;flex-direction:column;padding-bottom:35px}.page-community .spotlight-subtitle{font-size:32px;font-weight:700;line-height:38px;margin-top:10px;margin-bottom:40px}.page-community .spotlight-description{color:var(--black-black-20);font-size:24px;font-weight:500;line-height:32px;margin-bottom:40px}.sdk-img{align-self:center}.light .sdk-img{content:url(../img/graphics/sdk-white.png)}.light .ref-book-illustration{content:url(../img/graphics/ref-book-light.png)}.light .tutorial-illustration{content:url(../img/graphics/tutorials-illustration-light.png)}.light .concepts-doc-illustration{content:url(../img/graphics/concepts-docs-light.png)}.light .use-cases .wallet-illustration{content:url(../img/graphics/wallet-light.svg)}.light .use-cases .token-illustration{content:url(../img/graphics/tokens-light.png)}.light .use-cases .connections-illustration{content:url(../img/graphics/nodes-light.svg)}.light .quickstart-image{content:url(../img/graphics/getting-started-pages-light.png)}.light .dev-tools-img{content:url(../img/graphics/dev-tools-light.svg)}.light .dev-tools-link:hover p{color:#000}.dark .sdk-img{content:url(../img/graphics/sdk-black.png)}.dark .ref-book-illustration{content:url(../img/graphics/ref-book.png)}.dark .tutorial-illustration{content:url(../img/graphics/tutorials-illustration.png)}.dark .concepts-doc-illustration{content:url(../img/graphics/concepts-doc.png)}.dark .use-cases .wallet-illustration{content:url(../img/graphics/wallet-dark.png)}.dark .use-cases .token-illustration{content:url(../img/graphics/tokens-dark.png)}.dark .use-cases .connections-illustration{content:url(../img/graphics/nodes-dark.png)}.dark .quickstart-image{content:url(../img/graphics/getting-started-pages-dark.svg)}.dark .dev-tools-img{content:url(../img/graphics/dev-tools-dark.png)}.dark .dev-tools-link:hover p{color:#fff}.dark .flat-card-grid .nav-link:hover{color:#e0e0e1}.get-started-img,.flat-card{max-width:100%;max-height:100%}.faded-text{font-family:"Work Sans";font-style:normal;font-weight:400;font-size:15.5667px;line-height:23px}.page-docs-index section{padding-top:64px;padding-bottom:64px}.page-docs-index .dev-tools-link h6::before{margin-top:-20px;height:20px}.page-docs-index .dev-tools-link h6:hover{text-decoration:underline;text-decoration-color:#9a52ff;background:none !important}.page-docs-index .dev-tools-link:hover p{text-decoration:none !important;background:none !important;display:inline-block}.page-docs-index .dev-tools-link a:hover{color:#9a52ff;text-decoration:none !important}.page-docs-index .dev-tools-link .btn-arrow::after{content:url(../img/icons/arrow-right-purple.svg);width:1.5rem;height:1.5rem}.page-docs-index .langs>a{display:block}.page-docs-index .langs h5:hover{text-decoration:underline;text-decoration-color:#9a52ff;background:none !important}.page-docs-index .langs a:hover{text-decoration:none !important}.page-docs-index .langs .btn-arrow::after{content:url(../img/icons/arrow-right-purple.svg);vertical-align:baseline;width:1.5rem;height:1.5rem}.page-docs-index .langs h5{margin-block-start:0 !important}.page-docs-index .langs h5::before{margin-top:0;height:0}.page-docs-index h1{font-size:3.875rem}.page-docs-index .arrow-purple::after{content:url(../img/icons/arrow-right-purple.svg)}.page-docs-index .documentation-index:hover,.page-docs-index .documentation-index::after{color:#9a52ff;text-decoration:none !important;background:none !important}@media(max-width: 765px){.page-docs-index h1{font-size:3rem}.page-docs-index .flat-card-grid{grid-gap:24px}.page-docs-index .flat-card-grid .flat-card{padding:32px 12px}.page-docs-index::before{display:none}}#langs-cards{grid-gap:40px}@media(max-width: 991.98px){.page-docs-index .langs-cards{grid-template-columns:1fr 1fr;grid-auto-rows:auto}}.dev-tools-img{max-width:100%;max-height:100%;margin:auto}.page-docs .h4::before{margin-top:0;height:0}.page-docs .row{margin-right:0;margin-left:0}.page-docs .video-grid{grid-gap:35px}.page-docs .title-space{margin-bottom:16px}.page-docs .circled-logo{margin-left:.1rem}.flat-card-grid{grid-gap:15px;max-width:100%;min-height:384px}.flat-card-grid .flat-card{padding:32px 50px;height:100%;width:100%;box-shadow:none}.flat-card-grid .flat-card-padding{margin-bottom:75px}.flat-card-grid img{width:auto;height:115px;margin-left:auto;margin-right:auto}.flat-card-grid .nav-link{border:none !important}.flat-card-grid .nav-link:hover{text-decoration:underline;text-decoration-color:#9a52ff}.flat-card-grid .nav-link::after{content:none !important}@media(max-width: 991.98px){.flat-card-grid .flat-card-padding{margin-bottom:0}.flat-card-grid .nav-link::after{content:" " !important}.flat-card-grid .flat-card .btn{display:none}}.float-up-on-hover{transition:all .35s ease-out;cursor:pointer}.float-up-on-hover:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}.float-up-on-hover .video-image:hover{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}@media(min-width: 992px){.align-button-on-bottom .btn-primary{position:absolute;bottom:0}}.center-image{display:flex;justify-content:center}.quickstart-card .quickstart-image{margin-left:-20px;margin-right:-20px;margin-bottom:-20px}@media(min-width: 992px){.quickstart-card{margin-left:-32px;margin-right:-32px;margin-bottom:-32px;width:calc(100% + 64px)}}.explore-links .card-grid{grid-gap:40px}.full-documentation-link{margin-top:-35px}button.MarkpromptFloatingTrigger{bottom:4.5rem;border-radius:4px;right:16px;border:1px solid transparent}@media(min-width: 992px){button.MarkpromptFloatingTrigger{right:32px}}html.light .MarkpromptContentDialog a{color:#7919ff}html.light .MarkpromptContentDialog h3:not(.chip){color:#000}.MarkpromptExtendedFeedbackTextInput{background-color:#fff;color:#000}.MarkpromptOverlay{z-index:20}.osano-cm-close{box-sizing:content-box !important}.osano-cm-switch{box-sizing:content-box !important}.osano-cm-widget{right:16px;width:50px;height:50px;border:1px solid transparent}@media(min-width: 992px){.osano-cm-widget{right:32px}}html.light article p code,html.light article table code,html.light article li>code{background-color:#e0e0e1;color:#111112}html.light body{background-color:#f5f5f7;color:#000}html.light #topnav-theme .custom-theme-toggle .custom-control-label::before{background-color:transparent;background-position:bottom right;transform:rotate(-15deg)}html.light h1:not(.chip),html.light h2:not(.chip),html.light h3:not(.chip),html.light h4:not(.chip),html.light h5:not(.chip),html.light h6:not(.chip),html.light .h1:not(.chip),html.light .h2:not(.chip),html.light .h3:not(.chip),html.light .h4:not(.chip),html.light .h5:not(.chip),html.light .h6:not(.chip){color:#000}html.light h1.green-500,html.light h2.green-500,html.light h3.green-500,html.light h4.green-500,html.light h5.green-500,html.light h6.green-500,html.light .h1.green-500,html.light .h2.green-500,html.light .h3.green-500,html.light .h4.green-500,html.light .h5.green-500,html.light .h6.green-500{color:#28b86a;text-shadow:#fff 0 0 2px,#fff -1px -1px 2px,#fff 1px 1px 2px}html.light .bg-grey-800{background-color:#fcfcfd}html.light .grey-400{color:#454549}html.light .text-muted{color:#232325 !important}html.light .longform{color:#232325}html.light .numbers{color:#000}html.light .stat-highlight,html.light .eyebrow{color:#111112}html.light .invertible-img{filter:invert(100%)}html.light .arrow-link::after{content:url("../img/lightmode/icon-long-arrow.svg")}html.light .search .input-group-text,html.light .input-group .input-group-text,html.light .form-group .input-group-text{background-color:#e0e0e1;color:#232325}html.light .search label .input-group-text,html.light .search .form-control:not(.btn),html.light .input-group label .input-group-text,html.light .input-group .form-control:not(.btn),html.light .form-group label .input-group-text,html.light .form-group .form-control:not(.btn){color:#000;background-color:#e0e0e1;border-color:#e0e0e1}html.light .search .ds-input,html.light .input-group .ds-input,html.light .form-group .ds-input{color:#000;background-color:#e0e0e1;border-color:#e0e0e1}html.light .search .ds-input:focus,html.light .input-group .ds-input:focus,html.light .form-group .ds-input:focus{border-color:#9a52ff}html.light .list-group-item{border-color:#232325;background-color:#f5f5f7}html.light .list-group-item.disabled{color:#a2a2a4}html.light .progress{background-color:#e0e0e1}html.light .xrp-ledger-dev-portal .DocSearch-Modal{background:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Prefill{color:#7919ff}html.light .xrp-ledger-dev-portal .DocSearch-Button{background:var(--docsearch-searchbox-background)}html.light .xrp-ledger-dev-portal .DocSearch-Button:hover{box-shadow:inset 0 0 0 2px #7919ff;border-radius:40px;background:var(--docsearch-searchbox-background)}html.light .xrp-ledger-dev-portal .DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--docsearch-text-color)}html.light .xrp-ledger-dev-portal .DocSearch-Search-Icon{color:var(--docsearch-text-color) !important}html.light .xrp-ledger-dev-portal .DocSearch-Input{color:#111112}html.light .xrp-ledger-dev-portal .DocSearch-Hit-Select-Icon{color:#111112}html.light .xrp-ledger-dev-portal .DocSearch-Form{box-shadow:inset 0 0 0 2px #7919ff;background-color:var(--docsearch-searchbox-focus-background)}html.light .xrp-ledger-dev-portal .DocSearch-Hit-source{color:#7919ff;background:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Hits mark{color:#7919ff}html.light .xrp-ledger-dev-portal .DocSearch-Hit-Container{background:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Hit a{background-color:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Hit-content-wrapper .DocSearch-Hit-title{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit-content-wrapper .DocSearch-Hit-path{color:#454549 !important}html.light .xrp-ledger-dev-portal .DocSearch-Logo svg .cls-1,html.light .xrp-ledger-dev-portal .DocSearch-Logo svg .cls-2{fill:var(--docsearch-logo-color)}html.light .xrp-ledger-dev-portal .DocSearch-Hit-title,html.light .xrp-ledger-dev-portal .DocSearch-Hit-path,html.light .xrp-ledger-dev-portal .DocSearch-Label,html.light .xrp-ledger-dev-portal .DocSearch-Help{color:#454549 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a{background:#f5f5f7}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-Container{background-color:#f5f5f7}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-content-wrapper .DocSearch-Hit-title{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-content-wrapper .DocSearch-Hit-path{color:#454549 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-icon svg{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-action .DocSearch-Hit-action-button svg{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a mark{color:#7919ff !important}html.light .xrp-ledger-dev-portal .DocSearch-Footer{background:var(--docsearch-footer-background)}html.light .xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background-color:#fcfcfd}html.light .xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu::before{background-color:#fcfcfd}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion{background-color:#fcfcfd}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header{color:#000;border-bottom-color:#7919ff}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{color:#000}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--title{color:#000}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text{color:#232325}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#000;background-color:#c1c1c2}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{background-color:#c1c1c2}html.light a,html.light nav a,html.light a:not([role=button]){color:#000}html.light a.btn-primary,html.light nav a.btn-primary,html.light a:not([role=button]).btn-primary{color:#fff}html.light a.btn-primary:hover,html.light nav a.btn-primary:hover,html.light a:not([role=button]).btn-primary:hover{color:#fff}html.light a:hover,html.light a:active,html.light a.active,html.light nav a:hover,html.light nav a:active,html.light nav a.active,html.light a:not([role=button]):hover,html.light a:not([role=button]):active,html.light a:not([role=button]).active{color:#7919ff}html.light a:not(.btn):focus,html.light nav a:not(.btn):focus,html.light a:not([role=button]):not(.btn):focus{background-color:transparent}html.light a.card:hover,html.light:active,html.light.active{color:#000}html.light .landing-table tbody td{color:#232325}html.light .btn-outline-secondary,html.light article a.button,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary{color:#111112;border-color:#111112}html.light .btn-outline-secondary:not(:disabled):not(.disabled):hover,html.light .btn-outline-secondary:not(:disabled):not(.disabled):active,html.light article a.button:not(:disabled):not(.disabled):hover,html.light article a.button:not(:disabled):not(.disabled):active,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):hover,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):active{color:#9a52ff;border-color:#9a52ff;background-color:transparent}html.light .breadcrumb{background:#f5f5f7}html.light .breadcrumb-item a{color:#454549}html.light .breadcrumb-item a:hover{color:#9a52ff}html.light .top-nav{background:#f5f5f7}html.light .top-nav #topnav-pages .nav-link{color:#000}html.light .top-nav .navbar-brand .logo{content:url(../img/XRPLedger_DevPortal-black.svg);height:40px}html.light .top-nav #dropdown-hero-for-docs>img{content:url(../img/icons/lightmode/docs.svg)}html.light .top-nav #dropdown-hero-for-community>img{content:url(../img/icons/lightmode/contribute.svg)}html.light .top-nav .dropdown-menu{background-color:#f5f5f7;border-color:#f5f5f7;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .top-nav .dropdown-menu a:hover,html.light .top-nav .dropdown-menu a.active{color:#7919ff}html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero>img{background-color:#fcfcfd}html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero p{color:#343437}html.light .top-nav .dropdown-menu .dropdown-item.active{color:#7919ff}html.light .top-nav .dropdown-menu h5{color:#454549}html.light .top-nav .dropdown-menu .col-for-get_started{background-color:#e0e0e1}html.light .top-nav #topnav-button{background-color:#e0e0e1}@media(max-width: 991.98px){html.light .top-nav .navbar-toggler .navbar-toggler-icon::after,html.light .top-nav .navbar-toggler .navbar-toggler-icon::before,html.light .top-nav .navbar-toggler .navbar-toggler-icon div{background-color:#111112}html.light .top-nav .navbar-nav .nav-link,html.light .top-nav .navbar-collapse>.nav-item,html.light .top-nav .navbar-nav #topnav-theme,html.light .top-nav .navbar-nav #topnav-search{background:#e0e0e1}}html.light aside .sidenav_cat_title{color:#000}html.light .page-toc .level-1 a,html.light .command-list .separator{color:#000}html.light aside a:hover,html.light aside .sidenav_cat_title:hover,html.light aside a.active,html.light aside a.active:hover,html.light aside .active>a,html.light aside .active>a:hover{color:#7919ff}html.light .dactyl-tree-nav nav{border-left:1px solid #000}html.light .dactyl-tree-nav nav .nav-link:hover,html.light .dactyl-tree-nav nav .nav-link:active{border-left-color:#7919ff}html.light .dactyl-tree-nav nav .active>.nav-link{border-left-color:#7919ff}html.light .page-toc,html.light .command-list{border-left:1px solid #000}html.light .page-toc .level-3,html.light .command-list .level-3{border-left:1px solid #000}html.light .page-toc li a:hover,html.light .page-toc li a .active,html.light .command-list li a:hover,html.light .command-list li a .active{border-left-color:#7919ff}html.light .footer-brand .logo{filter:invert(100%)}html.light .copyright-license{text-shadow:#fff 0px 0px 2px,#fff 1px 1px 2px,#fff 2px 2px 3px,#fff 2px 2px 4px,#fff 2px 2px 5px,#fff 2px 2px 6px,#fff -1px -1px 2px,#fff -2px -2px 3px,#fff -2px -2px 4px}html.light a.osano-cm-link{color:#fff}html.light article .card,html.light .landing .card,html.light .cta-card,html.light aside .card{color:#000;background-color:#fcfcfd;box-shadow:0px 5px 20px 0px #c1c1c2}html.light #code-samples-deck .card{box-shadow:0px 5px 20px 0px #c1c1c2}html.light #code-samples-deck .card-header{border-bottom:none;background-color:#fcfcfd}html.light #code-samples-deck .card-footer{background-color:#fcfcfd}html.light .page-faq.landing-builtin-bg::before,html.light .mini-faq.landing-builtin-bg::before{opacity:.6}html.light .page-faq .q-wrapper,html.light .mini-faq .q-wrapper{background-color:#fcfcfd;color:#000;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .page-faq .q-wrapper>h4 a.expander:hover,html.light .mini-faq .q-wrapper>h4 a.expander:hover{color:#000}html.light .page-community .com-card{background:#fff}html.light .page-community .project-description{color:#343437}html.light .page-community #platform-stack-overflow{content:url("../img/logos/lightmode/stack-overflow.svg")}html.light .page-community #platform-discord{content:url("../img/logos/lightmode/discord.svg")}html.light .status.not_enabled{color:#aeb200}html.light .pg-category{color:#454549}html.light .landing .nav .nav-link{color:#232325;border-bottom-color:#c1c1c2}html.light .landing .circled-logo{background-color:#e0e0e1}html.light .landing .circled-logo img[src="assets/img/logos/globe.svg"]{filter:invert(100%)}html.light .landing p a,html.light .landing .longform a{color:#7919ff}html.light .devportal-callout.caution,html.light .devportal-callout.注意{border-color:#aeb200}html.light .devportal-callout.caution>strong:first-child::before,html.light .devportal-callout.注意>strong:first-child::before{color:#aeb200}html.light .devportal-callout.tip,html.light .devportal-callout.ヒント{border-color:#2dcf78}html.light .devportal-callout.tip>strong:first-child::before,html.light .devportal-callout.ヒント>strong:first-child::before{color:#2dcf78}html.light code{color:#000}html.light pre code,html.light pre{background-color:#e0e0e1}html.light .multicode a{color:#000}html.light .multicode a.current{color:#fff}html.light .multicode a:hover{text-decoration:none;background-color:#e0e0e1;color:#fff}html.light .multicode a:focus{background-color:#232325}html.light .codehilite .btn-outline-secondary{background-color:#232325;color:#f5f5f7;border-color:#f5f5f7}html.light .interactive-block .breadcrumb-item.done a::after{color:#145c35}html.light .modal-content{background-color:#fcfcfd}html.light .rpc-tool pre .toggle{color:#fff}html.light .rpc-tool pre .toggle:hover{color:#b480ff}html.light .page-home #home-hero-graphic{content:url("../img/lightmode/home-hero.svg")}html.light .page-home #benefits-list #public{content:url("../img/icons/lightmode/public.svg")}html.light .page-home #benefits-list #streamlined{content:url("../img/icons/lightmode/streamlined.svg")}html.light .page-home #benefits-list #performance{content:url("../img/icons/lightmode/performance.svg")}html.light .page-home #benefits-list #low-cost{content:url("../img/icons/lightmode/low-cost.svg")}html.light .page-home #benefits-list #community{content:url("../img/icons/lightmode/community.svg")}html.light .page-home #benefits-list #reliability{content:url("../img/icons/lightmode/reliability.svg")}html.light #validator-graphic{content:url("../img/lightmode/validators.svg")}html.light #wallets #wallet-xumm{content:url("../img/wallets/lightmode/xumm.svg")}html.light #wallets #wallet-bitfrost{content:url("../img/wallets/lightmode/bitfrost.png")}html.light #wallets #wallet-towo{content:url("../img/wallets/lightmode/towo.svg")}html.light #wallets #wallet-keystone{content:url("../img/wallets/lightmode/keystone.svg")}html.light #wallets #wallet-dcent{content:url("../img/wallets/lightmode/dcent.svg")}html.light #wallets #wallet-coin{content:url("../img/wallets/lightmode/coin.svg")}html.light #top-exchanges #exch-bitstamp{content:url("../img/exchanges/lightmode/bitstamp.svg")}html.light #top-exchanges #exch-cex-io{content:url("../img/exchanges/lightmode/cex-io.svg")}html.light #top-exchanges #exch-liquid{content:url("../img/exchanges/lightmode/liquid.svg")}html.light #top-exchanges #exch-bitfinex{content:url("../img/exchanges/lightmode/bitfinex.svg")}html.light #top-exchanges #exch-bittrex{content:url("../img/exchanges/lightmode/bittrex.png")}html.light #top-exchanges #exch-currency-com{content:url("../img/exchanges/lightmode/currency-com.png")}html.light #top-exchanges #exch-ftx{content:url("../img/exchanges/lightmode/ftx.png")}html.light #top-exchanges #exch-lmax{content:url("../img/exchanges/lightmode/lmax.png")}html.light .timeline-dot{background-color:#f5f5f7}html.light .page-uses .card-body{background:#fff;color:#343437}html.light .page-uses .modal-footer,html.light .page-uses .modal-header{background-color:#fcfcfd}html.light .page-uses #infrastructure{content:url("../img/icons/usecases/lightmode/ic_infrastructure.png")}html.light .page-uses #developer_tooling{content:url("../img/icons/usecases/lightmode/ic_developer_tooling.png")}html.light .page-uses #interoperability{content:url("../img/icons/usecases/lightmode/ic_interoperability.png")}html.light .page-uses #wallet{content:url("../img/icons/usecases/lightmode/ic_wallet.png")}html.light .page-uses #nfts{content:url("../img/icons/usecases/lightmode/ic_nfts.png")}html.light .page-uses #exchanges{content:url("../img/icons/usecases/lightmode/ic_exchanges.png")}html.light .page-uses #gaming{content:url("../img/icons/usecases/lightmode/ic_gaming.png")}html.light .page-uses #security{content:url("../img/icons/usecases/lightmode/ic_security.png")}html.light .page-uses #payments{content:url("../img/icons/usecases/lightmode/ic_payments.png")}html.light .page-uses #web_monetization{content:url("../img/icons/usecases/lightmode/ic_web_monetization.png")}html.light .page-uses #sustainability{content:url("../img/icons/usecases/lightmode/ic_sustainability.png")}html.light .page-uses #cbdc{content:url("../img/icons/usecases/lightmode/ic_cbdc.png")}html.light .page-uses #custody{content:url("../img/icons/usecases/lightmode/ic_custody.png")}html.light .page-uses #other{content:url("../img/icons/usecases/lightmode/ic_other.png")}html.light .page-uses #carbon_markets{content:url("../img/icons/usecases/lightmode/ic_carbon_markets.png")}html.light .page-uses #defi{content:url("../img/icons/usecases/lightmode/ic_defi.png")}html.light .page-uses .category-header{color:#343437}html.light .page-uses .category_count{background:#d2b2ff;color:#350080}html.light .page-uses .section-text-title{color:#000}html.light .page-uses #use_case_companies_list #bitgo .biz-logo{max-height:40px;content:url("../img/uses/lightmode/bitgo.svg")}html.light .page-uses #use_case_companies_list #sologenic-nft .biz-logo{max-height:40px;content:url("../img/uses/lightmode/sologenic-nft.svg")}html.light .page-uses #use_case_companies_list #carbonland-trust .biz-logo{max-height:40px;content:url("../img/uses/lightmode/carbonland-trust.svg")}html.light .page-uses #use_case_companies_list #x-tokenize .biz-logo{max-height:40px;content:url("../img/uses/lightmode/x-tokenize.svg")}html.light .page-uses #use_case_companies_list #casino-coin .biz-logo{max-height:40px;content:url("../img/uses/lightmode/casino-coin.svg")}html.light .page-uses #use_case_companies_list #xrp-cafe .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrp-cafe.svg")}html.light .page-uses #use_case_companies_list #coil .biz-logo{max-height:40px;content:url("../img/uses/lightmode/coil.svg")}html.light .page-uses #use_case_companies_list #xrp-toolkit .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrp-toolkit.svg")}html.light .page-uses #use_case_companies_list #cryptum .biz-logo{max-height:40px;content:url("../img/uses/lightmode/cryptum.svg")}html.light .page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpl-org-ledger-explorer.svg")}html.light .page-uses #use_case_companies_list #evernode .biz-logo{max-height:40px;content:url("../img/uses/lightmode/evernode.svg")}html.light .page-uses #use_case_companies_list #xrpl-rosetta .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpl-rosetta.svg")}html.light .page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo{max-height:40px;content:url("../img/uses/lightmode/ripples-cbdc-platform.svg")}html.light .page-uses #use_case_companies_list #xrpscan .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpscan.svg")}html.light .page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo{max-height:40px;content:url("../img/uses/lightmode/ripples-on-demand-liquidity.svg")}html.light .page-uses #use_case_companies_list #xumm-wallet .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xumm-wallet.svg")}html.light .page-uses #use_case_companies_list #sologenic-dex .biz-logo{max-height:40px;content:url("../img/uses/lightmode/sologenic-dex.svg")}html.light .page-uses #use_case_companies_list #Crossmark .biz-logo{max-height:40px;content:url("../img/uses/lightmode/Crossmark.png")}html.light .page-uses #use_case_companies_list #threezy .biz-logo{max-height:40px;content:url("../img/uses/lightmode/threezy.png")}html.light .page-uses #bitpay .biz-logo,html.light .page-uses #forte .biz-logo,html.light .page-uses #xrplorer .biz-logo,html.light .page-uses #gatehub .biz-logo{filter:invert(100%)}html.light .landing-bg{opacity:.4}@media(min-width: 768px){html.light .landing-bg{opacity:1}}html.light .landing-builtin-bg::before{opacity:.4}@media(min-width: 768px){html.light .landing-builtin-bg::before{opacity:1}}html.light #feedback-content .widget-form-wrapper{background-color:#fff !important}html.light #feedback-content .widget-form-wrapper div{background-color:#fff !important}html.light #feedback-content .widget-form-wrapper textarea{background-color:#f5f5f7 !important}html.light #feedback-content .widget-form-wrapper .widget-header-title{color:#111112 !important}html.light #feedback-content .widget-form-wrapper .cancel{color:#7919ff !important}html.light #feedback-content .widget-helpful .widget-header{background-color:#fff !important}html.light #feedback-content .widget-helpful .widget-header-title{color:#111112 !important}html.light #feedback-content .widget-helpful .widget-header-icon{filter:invert(100%)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/lightmode/4col-green.svg)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue.svg)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-yellow.svg)}html.light .page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-2.svg)}html.light .page-docs-index .funding-text,html.light .page-community .funding-text{color:#232325}html.light .page-docs-index .stat .small-text,html.light .page-community .stat .small-text{color:#232325}html.light .page-docs-index .project-card,html.light .page-community .project-card{background-color:transparent}html.light .page-docs-index .card-details,html.light .page-community .card-details{background-color:transparent}html.light .page-docs-index .card-image,html.light .page-community .card-image{background:#e0e0e1}html.light .page-docs-index #community-table tr,html.light .page-community #community-table tr{border-bottom:1px solid #34343740}html.light .page-docs-index .card-description,html.light .page-community .card-description{color:#343437 !important}html.light .page-docs-index .card-subtitle,html.light .page-community .card-subtitle{color:#111112 !important}html.light .page-docs-index .card-title,html.light .page-community .card-title{color:#111112 !important}html.light .page-docs-index .main-title,html.light .page-community .main-title{color:#111112}html.light .page-docs-index .event-location,html.light .page-community .event-location{color:#232325 !important}html.light .page-docs-index .event-details,html.light .page-community .event-details{color:#232325 !important}html.light .page-docs-index .upcoming-event .event-name,html.light .page-community .upcoming-event .event-name{color:#111112}html.light .page-docs-index .upcoming-label,html.light .page-community .upcoming-label{color:#232325 !important}html.light .page-docs-index .description,html.light .page-community .description{color:#232325}html.light .page-docs-index .events-text,html.light .page-community .events-text{color:#111112}html.light .page-docs-index .discord-icon,html.light .page-community .discord-icon{content:url(../img/community/ic_discord_light.png)}html.light .page-docs-index .twitter-icon,html.light .page-community .twitter-icon{content:url(../img/community/ic_twitter_light.png)}html.light .page-docs-index .youtube-icon,html.light .page-community .youtube-icon{content:url(../img/community/ic_youtube_light.png)}html.light .page-docs-index .xrpl-icon,html.light .page-community .xrpl-icon{content:url(../img/community/ic_xrpl_light.png)}html.light .page-docs-index .github-icon,html.light .page-community .github-icon{content:url(../img/community/ic_github_light.png)}html.light .page-docs-index .stackoverflow-icon,html.light .page-community .stackoverflow-icon{content:url(../img/community/ic_stackoverflow_light.png)}html.light .page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer,html.light .page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-light-green.svg)}html.light .page-docs-index #run-a-network-node .text-cards a,html.light .page-community #run-a-network-node .text-cards a{color:#000}html.light .page-docs-index #xrpl-blog .blog-graphic,html.light .page-community #xrpl-blog .blog-graphic{content:url(../img/community/lightmode/community-blog@2x.png)}html.light .page-docs-index #xrpl-events .text-light,html.light .page-community #xrpl-events .text-light{color:#000 !important}html.light .page-docs-index #xrplGrantsDark g,html.light .page-docs-index #xrplGrantsDark-small g,html.light .page-docs-index #careersDark g,html.light .page-docs-index #careersDark-small g,html.light .page-community #xrplGrantsDark g,html.light .page-community #xrplGrantsDark-small g,html.light .page-community #careersDark g,html.light .page-community #careersDark-small g{filter:invert(100%) brightness(0.8)}html.light #find-us-on-platforms .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-3.svg)}html.light .page-references #refs-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/3col-green-2.svg)}html.light .page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-4.svg)}html.light ::-webkit-input-placeholder{color:#454549}html.light :-ms-input-placeholder{color:#454549}html.light ::-moz-placeholder{color:#454549;opacity:1}html.light :-moz-placeholder{color:#454549;opacity:1}html.light .page-events label{color:#111112}html.light .page-events .event-card{color:#000;background-color:#fcfcfd;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .page-events a.event-card:hover{color:#000}html.light .page-events .event-hero{color:#111112}html.light .page-events .event-save-date{color:#111112}html.light .page-events .event-small-gray{color:#454549}html.light .page-events #event-hero-image{height:100%;min-height:209px;background:url(../img/events/event-hero1-light@2x.png);background-size:contain;background-repeat:no-repeat;background-position:center}html.light .page-events .icon-date::before{background:url(../img/events/event-date-light.svg)}html.light .page-events .icon-location::before{background:url(../img/events/event-location-light.svg)}html.light .page-events .events-filter[type=checkbox]::before{background-color:#f5f5f7}html.light .page-events .events-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;background-color:#5f00e5;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}html.light .page-events .events-filter[type=checkbox]:not(:disabled):hover::before{background-color:#f5f5f7}html.light .page-events .events-filter[type=checkbox]:not(:disabled):hover::after{background-color:#f5f5f7}html.light .page-ambassadors #benefits-list #benefits-01{content:url("../img/ambassadors/lightmode/benefits-01.svg")}html.light .page-ambassadors #benefits-list #benefits-02{content:url("../img/ambassadors/lightmode/benefits-02.svg")}html.light .page-ambassadors #benefits-list #benefits-03{content:url("../img/ambassadors/lightmode/benefits-03.svg")}html.light .page-ambassadors #benefits-list #benefits-04{content:url("../img/ambassadors/lightmode/benefits-04.svg")}html.light .page-ambassadors #benefits-list #benefits-05{content:url("../img/ambassadors/lightmode/benefits-05.svg")}html.light .page-ambassadors #benefits-list #benefits-06{content:url("../img/ambassadors/lightmode/benefits-06.svg")}html.light .page-ambassadors #eligibility-list #eligibility-01{content:url("../img/ambassadors/lightmode/eligibility-01.svg")}html.light .page-ambassadors #eligibility-list #eligibility-02{content:url("../img/ambassadors/lightmode/eligibility-02.svg")}html.light .page-ambassadors #eligibility-list #eligibility-03{content:url("../img/ambassadors/lightmode/eligibility-03.svg")}html.light .page-ambassadors #eligibility-list #eligibility-04{content:url("../img/ambassadors/lightmode/eligibility-04.svg")}html.light .page-ambassadors #eligibility-list #eligibility-05{content:url("../img/ambassadors/lightmode/eligibility-05.svg")}html.light .page-funding .funding-list #funding-01{content:url("../img/funding/lightmode/funding-01.svg")}html.light .page-funding .funding-list #funding-02{content:url("../img/funding/lightmode/funding-02.svg")}html.light .page-funding .funding-list #funding-03{content:url("../img/funding/lightmode/funding-03.svg")}html.light .page-funding .funding-list #funding-04{content:url("../img/funding/lightmode/funding-04.svg")}html.light .page-funding #xrplGrantsDark{filter:invert(100%) brightness(0.8)}html.light .page-impact .connect-list #connect-01{content:url("../img/impact/lightmode/connect-01.svg")}html.light .page-impact .connect-list #connect-02{content:url("../img/impact/lightmode/connect-02.svg")}html.light .page-impact .connect-list #connect-03{content:url("../img/impact/lightmode/connect-03.svg")}html.light .page-impact .connect-list #connect-04{content:url("../img/impact/lightmode/connect-04.svg")}html.light .page-impact #map-light{display:block}html.light .page-impact #map-dark{display:none}html.light main article .card-grid{color:#000}html.light main article .card-grid code{background-color:#d6fae7}html.light main article .card-grid .card-icon-container,html.light main article .card-grid.card-grid-3xN .card-icon-container{background:#c1c1c2}html.light [data-component-name="Footer/Footer"] [data-component-name="Footer/FooterColumn"]{text-shadow:#f5f5f7 0px 0px 2px,#f5f5f7 1px 1px 2px,#f5f5f7 2px 2px 3px,#f5f5f7 2px 2px 4px,#f5f5f7 2px 2px 5px,#f5f5f7 2px 2px 6px,#f5f5f7 -1px -1px 2px,#f5f5f7 -2px -2px 3px,#f5f5f7 -2px -2px 4px}html.light .dev-blog .text-bg{background-color:#fff}html.light .dev-blog #card-date{color:#454549}html.light .dev-blog .category-header{color:#111112}html.light .dev-blog label{color:#343437}html.light .dev-blog .blog-filter[type=checkbox]::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:checked::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/blog/blog-check-light-mode.svg)}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::after{background:#f5f5f7}html.light .dev-blog .post-date{text-decoration:overline solid #145c35 10%}html.light .dev-blog #general-badge{background-color:#fff;color:#343437}html.light .dev-blog #release_notes-badge{background-color:#32e685;color:#145c35}html.light .dev-blog #advisories-badge{background-color:#ff6719;color:#4c1a00}html.light .dev-blog #amendments-badge{background-color:#faff19;color:#4b4c00}html.light .dev-blog #development-badge{background-color:#7919ff;color:#20004c}html.light .dev-blog #developer_reflections-badge{background-color:#19a3ff;color:#002e4c}html.light .dev-blog #gateway_bulletins-badge{background-color:#d919ff;color:#40004c}html.light .dev-blog #features-badge{background-color:#32e685;color:#145c35}html.light .dev-blog #security-badge{background-color:#ff198b;color:#4c0026}html.light .dev-blog .dropdown-btn{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}html.light .dev-blog .dropdown-btn img{content:url("../img/icons/lightmode/chevron-arrow-down.svg")}html.light .dev-blog .dropdown-content{background-color:#e0e0e1} + */:root{--blue: #19A3FF;--indigo: #6610f2;--purple: #9A52FF;--pink: #FF198B;--red: #dc3545;--orange: #FF6719;--yellow: #FAFF19;--green: #32E685;--teal: #20c997;--cyan: #17a2b8;--white: #FFFFFF;--gray: #454549;--gray-dark: #232325;--primary: #9A52FF;--secondary: #E0E0E1;--success: #32E685;--info: #19A3FF;--warning: #FAFF19;--danger: #FF198B;--light: #FFFFFF;--dark: #111112;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-family-monospace: "Space Mono", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#e0e0e1;text-align:left;background-color:#111112}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#fff;text-decoration:none;background-color:transparent}a:hover{color:#9a52ff;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:"Space Mono",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#e0e0e1;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2;color:#fff}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}small,.small{font-size:0.875em;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:0.875em;color:#454549}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#111112;border:1px solid #c1c1c2;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#454549}code{font-size:87.5%;color:#e0e0e1;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#111112;border-radius:4px;box-shadow:inset 0 -0.1rem 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;font-size:87.5%;color:#111112}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-xl,.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-lg,.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-md,.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-sm,.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col,.col-auto,.col-12,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media(min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media(min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media(min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media(min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{width:100%;margin-bottom:1rem;color:#e0e0e1}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #c1c1c2}.table thead th{vertical-align:bottom;border-bottom:2px solid #c1c1c2}.table tbody+tbody{border-top:2px solid #c1c1c2}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #c1c1c2}.table-bordered th,.table-bordered td{border:1px solid #c1c1c2}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#e0e0e1;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#e3cfff}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#caa5ff}.table-hover .table-primary:hover{background-color:#d4b6ff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#d4b6ff}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f6f6f7}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#efefef}.table-hover .table-secondary:hover{background-color:#e9e9eb}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e9e9eb}.table-success,.table-success>th,.table-success>td{background-color:#c6f8dd}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#94f2c0}.table-hover .table-success:hover{background-color:#aff5cf}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#aff5cf}.table-info,.table-info>th,.table-info>td{background-color:#bfe5ff}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#87cfff}.table-hover .table-info:hover{background-color:#a6dbff}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#a6dbff}.table-warning,.table-warning>th,.table-warning>td{background-color:#feffbf}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#fcff87}.table-hover .table-warning:hover{background-color:#feffa6}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#feffa6}.table-danger,.table-danger>th,.table-danger>td{background-color:#ffbfdf}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#ff87c3}.table-hover .table-danger:hover{background-color:#ffa6d2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ffa6d2}.table-light,.table-light>th,.table-light>td{background-color:#fff}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fff}.table-hover .table-light:hover{background-color:#f2f2f2}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#f2f2f2}.table-dark,.table-dark>th,.table-dark>td{background-color:#bcbcbd}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#838384}.table-hover .table-dark:hover{background-color:#afafb0}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#afafb0}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#232325;border-color:#363639}.table .thead-light th{color:#343437;background-color:#e0e0e1;border-color:#c1c1c2}.table-dark{color:#fff;background-color:#232325}.table-dark th,.table-dark td,.table-dark thead th{border-color:#363639}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media(max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media(max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media(max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media(max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.25em + 2rem + 2px);padding:1rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;background-color:#232325;background-clip:padding-box;border:1px solid transparent;border-radius:4px;box-shadow:none;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#fff;background-color:#232325;border-color:#e4d2ff;outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.form-control::placeholder{color:#a2a2a4;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#454549;opacity:1}input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #fff}select.form-control:focus::-ms-value{color:#fff;background-color:#232325}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(1rem + 1px);padding-bottom:calc(1rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.25}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:1rem 0;margin-bottom:0;font-size:1rem;line-height:1.25;color:#e0e0e1;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{color:#e0e0e1}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#32e685}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;line-height:1.5;color:#111112;background-color:rgba(50,230,133,.9);border-radius:4px}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#32e685;padding-right:calc(1.25em + 2rem) !important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.3125em + 0.5rem) center;background-size:calc(0.625em + 1rem) calc(0.625em + 1rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:6rem !important;background-position:right 3rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.25em + 2rem);background-position:top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#32e685;padding-right:calc(0.75em + 4rem) !important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat,#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 2.5rem/calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#32e685}.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip{display:block}.was-validated .custom-control-input:valid~.custom-control-label,.custom-control-input.is-valid~.custom-control-label{color:#32e685}.was-validated .custom-control-input:valid~.custom-control-label::before,.custom-control-input.is-valid~.custom-control-label::before{border-color:#32e685}.was-validated .custom-control-input:valid:checked~.custom-control-label::before,.custom-control-input.is-valid:checked~.custom-control-label::before{border-color:#5feca0;background-color:#5feca0}.was-validated .custom-control-input:valid:focus~.custom-control-label::before,.custom-control-input.is-valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before{border-color:#32e685}.was-validated .custom-file-input:valid~.custom-file-label,.custom-file-input.is-valid~.custom-file-label{border-color:#32e685}.was-validated .custom-file-input:valid:focus~.custom-file-label,.custom-file-input.is-valid:focus~.custom-file-label{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#ff198b}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;line-height:1.5;color:#fff;background-color:rgba(255,25,139,.9);border-radius:4px}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ff198b;padding-right:calc(1.25em + 2rem) !important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.3125em + 0.5rem) center;background-size:calc(0.625em + 1rem) calc(0.625em + 1rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:6rem !important;background-position:right 3rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.25em + 2rem);background-position:top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#ff198b;padding-right:calc(0.75em + 4rem) !important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat,#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e") center right 2.5rem/calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#ff198b}.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip{display:block}.was-validated .custom-control-input:invalid~.custom-control-label,.custom-control-input.is-invalid~.custom-control-label{color:#ff198b}.was-validated .custom-control-input:invalid~.custom-control-label::before,.custom-control-input.is-invalid~.custom-control-label::before{border-color:#ff198b}.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,.custom-control-input.is-invalid:checked~.custom-control-label::before{border-color:#ff4ca5;background-color:#ff4ca5}.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,.custom-control-input.is-invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before{border-color:#ff198b}.was-validated .custom-file-input:invalid~.custom-file-label,.custom-file-input.is-invalid~.custom-file-label{border-color:#ff198b}.was-validated .custom-file-input:invalid:focus~.custom-file-label,.custom-file-input.is-invalid:focus~.custom-file-label{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#e0e0e1;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:1rem 1.5rem;font-size:0.875rem;line-height:1.25;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#e0e0e1;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:none}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled).active{box-shadow:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#9a52ff;border-color:#9a52ff;box-shadow:none}.btn-primary:hover{color:#fff;background-color:#842cff;border-color:#7c1fff}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#842cff;border-color:#7c1fff;box-shadow:0 0 0 .2rem rgba(169,108,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#7c1fff;border-color:#7512ff}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(169,108,255,.5)}.btn-secondary{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1;box-shadow:none}.btn-secondary:hover{color:#111112;background-color:#cdcdce;border-color:#c6c6c8}.btn-secondary:focus,.btn-secondary.focus{color:#111112;background-color:#cdcdce;border-color:#c6c6c8;box-shadow:0 0 0 .2rem rgba(193,193,194,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#111112;background-color:#c6c6c8;border-color:#c0c0c2}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(193,193,194,.5)}.btn-success{color:#111112;background-color:#32e685;border-color:#32e685;box-shadow:none}.btn-success:hover{color:#fff;background-color:#1ad772;border-color:#19cc6c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#1ad772;border-color:#19cc6c;box-shadow:0 0 0 .2rem rgba(45,198,116,.5)}.btn-success.disabled,.btn-success:disabled{color:#111112;background-color:#32e685;border-color:#32e685}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#19cc6c;border-color:#18c166}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(45,198,116,.5)}.btn-info{color:#fff;background-color:#19a3ff;border-color:#19a3ff;box-shadow:none}.btn-info:hover{color:#fff;background-color:#0091f2;border-color:#0089e5}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#0091f2;border-color:#0089e5;box-shadow:0 0 0 .2rem rgba(60,177,255,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#0089e5;border-color:#0082d8}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,177,255,.5)}.btn-warning{color:#111112;background-color:#faff19;border-color:#faff19;box-shadow:none}.btn-warning:hover{color:#111112;background-color:#ecf200;border-color:#e0e500}.btn-warning:focus,.btn-warning.focus{color:#111112;background-color:#ecf200;border-color:#e0e500;box-shadow:0 0 0 .2rem rgba(215,219,24,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#111112;background-color:#faff19;border-color:#faff19}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#111112;background-color:#e0e500;border-color:#d4d800}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(215,219,24,.5)}.btn-danger{color:#fff;background-color:#ff198b;border-color:#ff198b;box-shadow:none}.btn-danger:hover{color:#fff;background-color:#f20078;border-color:#e50072}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#f20078;border-color:#e50072;box-shadow:0 0 0 .2rem rgba(255,60,156,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#e50072;border-color:#d8006b}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,60,156,.5)}.btn-light{color:#111112;background-color:#fff;border-color:#fff;box-shadow:none}.btn-light:hover{color:#111112;background-color:#ececec;border-color:#e6e6e6}.btn-light:focus,.btn-light.focus{color:#111112;background-color:#ececec;border-color:#e6e6e6;box-shadow:0 0 0 .2rem rgba(219,219,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#111112;background-color:#fff;border-color:#fff}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#111112;background-color:#e6e6e6;border-color:#dfdfdf}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(219,219,219,.5)}.btn-dark{color:#fff;background-color:#111112;border-color:#111112;box-shadow:none}.btn-dark:hover{color:#fff;background-color:#000;border-color:#000}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#000;border-color:#000;box-shadow:0 0 0 .2rem rgba(53,53,54,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#111112;border-color:#111112}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#000;border-color:#000}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(53,53,54,.5)}.btn-outline-primary{color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:hover{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#9a52ff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.btn-outline-secondary{color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:hover{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#e0e0e1;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.btn-outline-success{color:#32e685;border-color:#32e685}.btn-outline-success:hover{color:#111112;background-color:#32e685;border-color:#32e685}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#32e685;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#111112;background-color:#32e685;border-color:#32e685}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.btn-outline-info{color:#19a3ff;border-color:#19a3ff}.btn-outline-info:hover{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#19a3ff;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.btn-outline-warning{color:#faff19;border-color:#faff19}.btn-outline-warning:hover{color:#111112;background-color:#faff19;border-color:#faff19}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#faff19;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#111112;background-color:#faff19;border-color:#faff19}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.btn-outline-danger{color:#ff198b;border-color:#ff198b}.btn-outline-danger:hover{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ff198b;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.btn-outline-light{color:#fff;border-color:#fff}.btn-outline-light:hover{color:#111112;background-color:#fff;border-color:#fff}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#fff;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#111112;background-color:#fff;border-color:#fff}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-dark{color:#111112;border-color:#111112}.btn-outline-dark:hover{color:#fff;background-color:#111112;border-color:#111112}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#111112;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#111112;border-color:#111112}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.btn-link{font-weight:400;color:#fff;text-decoration:none}.btn-link:hover{color:#9a52ff;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#454549;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.width{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#e0e0e1;text-align:left;list-style:none;background-color:#111112;background-clip:padding-box;border:1px solid #111112;border-radius:4px;box-shadow:0px 5px 40px #000}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:0;border-right:.4em solid transparent;border-bottom:.4em solid;border-left:.4em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid transparent;border-right:0;border-bottom:.4em solid transparent;border-left:.4em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.34em;vertical-align:.34em;content:"";border-top:.4em solid transparent;border-right:.4em solid;border-bottom:.4em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=top],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #000}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#fff;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#9a52ff;text-decoration:none;background-color:#111112}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:transparent}.dropdown-item.disabled,.dropdown-item:disabled{color:#838386;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:0.875rem;color:#454549;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:none}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.form-control:not(:last-child),.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:1rem 1.5rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;text-align:center;white-space:nowrap;background-color:#454549;border:1px solid transparent;border-radius:4px}.input-group-text input[type=radio],.input-group-text input[type=checkbox]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + 0.5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:2.5rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;print-color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#9a52ff;background-color:#9a52ff}.custom-control-input:focus~.custom-control-label::before{box-shadow:none,0 0 0 .2rem rgba(154,82,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#e4d2ff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#fff;border-color:#fff}.custom-control-input[disabled]~.custom-control-label,.custom-control-input:disabled~.custom-control-label{color:#454549}.custom-control-input[disabled]~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before{background-color:#454549}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#232325;border:1px solid #838386;box-shadow:none}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:4px}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23FFFFFF' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#9a52ff;background-color:#9a52ff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23FFFFFF' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23FFFFFF'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(0.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#838386;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#232325;transform:translateX(0.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.25em + 2rem + 2px);padding:1rem 2.5rem 1rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;vertical-align:middle;background:#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat;border:1px solid transparent;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);appearance:none}.custom-select:focus{border-color:#e4d2ff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(154,82,255,.25)}.custom-select:focus::-ms-value{color:#fff;background-color:#232325}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:1.5rem;background-image:none}.custom-select:disabled{color:#454549;background-color:#e0e0e1}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #fff}.custom-select-sm{height:calc(1.5em + 0.5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.25em + 2rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.25em + 2rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#e4d2ff;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.custom-file-input[disabled]~.custom-file-label,.custom-file-input:disabled~.custom-file-label{background-color:#454549}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.25em + 2rem + 2px);padding:1rem 1.5rem;overflow:hidden;font-weight:400;line-height:1.25;color:#fff;background-color:#232325;border:1px solid transparent;border-radius:4px;box-shadow:none}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.25em + 2rem);padding:1rem 1.5rem;line-height:1.25;color:#fff;content:"Browse";background-color:#454549;border-left:inherit;border-radius:0 4px 4px 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#fff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#c1c1c2;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#fff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#c1c1c2;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#fff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-fill-lower{background-color:#c1c1c2;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#c1c1c2;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#838386}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#838386}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#838386}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:1rem 2rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#454549;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #c1c1c2}.nav-tabs .nav-link{margin-bottom:-1px;background-color:transparent;border:1px solid transparent;border-top-left-radius:4px;border-top-right-radius:4px}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:#e0e0e1 #e0e0e1 #c1c1c2}.nav-tabs .nav-link.disabled{color:#454549;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#343437;background-color:#111112;border-color:#c1c1c2 #c1c1c2 #111112}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:4px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#9a52ff}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:1.25rem;padding-bottom:1.25rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:1rem;padding-bottom:1rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media(max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media(max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media(max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media(max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:#454549}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:#454549;border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23454549' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#454549}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:#fff}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:#9a52ff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:#fff;border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#fff}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#232325;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:8px}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:7px;border-top-right-radius:7px}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:7px;border-bottom-left-radius:7px}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:2rem}.card-title{margin-bottom:2rem}.card-subtitle{margin-top:-1rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:2rem}.card-header{padding:2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:7px 7px 0 0}.card-footer{padding:2rem 2rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 7px 7px}.card-header-tabs{margin-right:-1rem;margin-bottom:-2rem;margin-left:-1rem;border-bottom:0}.card-header-pills{margin-right:-1rem;margin-left:-1rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:7px}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:7px;border-top-right-radius:7px}.card-img,.card-img-bottom{border-bottom-right-radius:7px;border-bottom-left-radius:7px}.card-deck .card{margin-bottom:1.25rem}@media(min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-1.25rem;margin-left:-1.25rem}.card-deck .card{flex:1 0 0%;margin-right:1.25rem;margin-bottom:0;margin-left:1.25rem}}.card-group>.card{margin-bottom:15px}@media(min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:2rem}@media(min-width: 576px){.card-columns{column-count:3;column-gap:2rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#111112;border-radius:4px}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#454549;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#a2a2a4}.pagination{display:flex;padding-left:0;list-style:none;border-radius:4px}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#fff;background-color:#fff;border:1px solid #c1c1c2}.page-link:hover{z-index:2;color:#9a52ff;text-decoration:none;background-color:#e0e0e1;border-color:#c1c1c2}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.page-item:last-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#9a52ff;border-color:#9a52ff}.page-item.disabled .page-link{color:#454549;pointer-events:none;cursor:auto;background-color:#fff;border-color:#c1c1c2}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:8px;border-bottom-left-radius:8px}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:8px;border-bottom-right-radius:8px}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#9a52ff}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#7c1fff}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.badge-secondary{color:#111112;background-color:#e0e0e1}a.badge-secondary:hover,a.badge-secondary:focus{color:#111112;background-color:#c6c6c8}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.badge-success{color:#111112;background-color:#32e685}a.badge-success:hover,a.badge-success:focus{color:#111112;background-color:#19cc6c}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.badge-info{color:#fff;background-color:#19a3ff}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#0089e5}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.badge-warning{color:#111112;background-color:#faff19}a.badge-warning:hover,a.badge-warning:focus{color:#111112;background-color:#e0e500}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.badge-danger{color:#fff;background-color:#ff198b}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#e50072}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.badge-light{color:#111112;background-color:#fff}a.badge-light:hover,a.badge-light:focus{color:#111112;background-color:#e6e6e6}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.badge-dark{color:#fff;background-color:#111112}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#000}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e0e0e1;border-radius:8px}@media(min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:4px}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#502b85;background-color:#ebdcff;border-color:#e3cfff}.alert-primary hr{border-top-color:#d4b6ff}.alert-primary .alert-link{color:#391f5e}.alert-secondary{color:#747475;background-color:#f9f9f9;border-color:#f6f6f7}.alert-secondary hr{border-top-color:#e9e9eb}.alert-secondary .alert-link{color:#5b5b5b}.alert-success{color:#1a7845;background-color:#d6fae7;border-color:#c6f8dd}.alert-success hr{border-top-color:#aff5cf}.alert-success .alert-link{color:#114e2d}.alert-info{color:#0d5585;background-color:#d1edff;border-color:#bfe5ff}.alert-info hr{border-top-color:#a6dbff}.alert-info .alert-link{color:#083757}.alert-warning{color:#82850d;background-color:#feffd1;border-color:#feffbf}.alert-warning hr{border-top-color:#feffa6}.alert-warning .alert-link{color:#555708}.alert-danger{color:#850d48;background-color:#ffd1e8;border-color:#ffbfdf}.alert-danger hr{border-top-color:#ffa6d2}.alert-danger .alert-link{color:#57082f}.alert-light{color:#858585;background-color:#fff;border-color:#fff}.alert-light hr{border-top-color:#f2f2f2}.alert-light .alert-link{color:#6c6c6c}.alert-dark{color:#090909;background-color:#cfcfd0;border-color:#bcbcbd}.alert-dark hr{border-top-color:#afafb0}.alert-dark .alert-link{color:#000}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;line-height:0;font-size:0.75rem;background-color:#111112;border-radius:4px;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#9a52ff;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:4px}.list-group-item-action{width:100%;color:#343437;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#343437;text-decoration:none;background-color:#f5f5f7}.list-group-item-action:active{color:#e0e0e1;background-color:#e0e0e1}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#111112;border:1px solid #232325}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#e0e0e1;pointer-events:none;background-color:#111112}.list-group-item.active{z-index:2;color:#fff;background-color:#9a52ff;border-color:#9a52ff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#502b85;background-color:#e3cfff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#502b85;background-color:#d4b6ff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#502b85;border-color:#502b85}.list-group-item-secondary{color:#747475;background-color:#f6f6f7}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#747475;background-color:#e9e9eb}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#747475;border-color:#747475}.list-group-item-success{color:#1a7845;background-color:#c6f8dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#1a7845;background-color:#aff5cf}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1a7845;border-color:#1a7845}.list-group-item-info{color:#0d5585;background-color:#bfe5ff}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0d5585;background-color:#a6dbff}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0d5585;border-color:#0d5585}.list-group-item-warning{color:#82850d;background-color:#feffbf}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#82850d;background-color:#feffa6}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#82850d;border-color:#82850d}.list-group-item-danger{color:#850d48;background-color:#ffbfdf}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#850d48;background-color:#ffa6d2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#850d48;border-color:#850d48}.list-group-item-light{color:#858585;background-color:#fff}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#858585;background-color:#f2f2f2}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#858585;border-color:#858585}.list-group-item-dark{color:#090909;background-color:#bcbcbd}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#090909;background-color:#afafb0}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#090909;border-color:#090909}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#ff198b;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#ff198b;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:0.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#454549;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#000;background-clip:padding-box;border:1px solid #e0e0e1;border-radius:8px;box-shadow:0 .25rem .5rem rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #c1c1c2;border-top-left-radius:7px;border-top-right-radius:7px}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #c1c1c2;border-bottom-right-radius:7px;border-bottom-left-radius:7px}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:min-content}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.5)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:4px}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:8px;box-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 8px}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=top]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=top]>.arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=top]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=top]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=right]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=right]>.arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem;margin:8px 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=right]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=right]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=bottom]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=bottom]>.arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=bottom]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=bottom]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^=left]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=left]>.arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem;margin:8px 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=left]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=left]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:#fff;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:7px;border-top-right-radius:7px}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#e0e0e1}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentcolor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#9a52ff !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#7c1fff !important}.bg-secondary{background-color:#e0e0e1 !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#c6c6c8 !important}.bg-success{background-color:#32e685 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#19cc6c !important}.bg-info{background-color:#19a3ff !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#0089e5 !important}.bg-warning{background-color:#faff19 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#e0e500 !important}.bg-danger{background-color:#ff198b !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#e50072 !important}.bg-light{background-color:#fff !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#e6e6e6 !important}.bg-dark{background-color:#111112 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#000 !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #c1c1c2 !important}.border-top{border-top:1px solid #c1c1c2 !important}.border-right{border-right:1px solid #c1c1c2 !important}.border-bottom{border-bottom:1px solid #c1c1c2 !important}.border-left{border-left:1px solid #c1c1c2 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#9a52ff !important}.border-secondary{border-color:#e0e0e1 !important}.border-success{border-color:#32e685 !important}.border-info{border-color:#19a3ff !important}.border-warning{border-color:#faff19 !important}.border-danger{border-color:#ff198b !important}.border-light{border-color:#fff !important}.border-dark{border-color:#111112 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:4px !important}.rounded{border-radius:4px !important}.rounded-top{border-top-left-radius:4px !important;border-top-right-radius:4px !important}.rounded-right{border-top-right-radius:4px !important;border-bottom-right-radius:4px !important}.rounded-bottom{border-bottom-right-radius:4px !important;border-bottom-left-radius:4px !important}.rounded-left{border-top-left-radius:4px !important;border-bottom-left-radius:4px !important}.rounded-lg{border-radius:8px !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media(min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media(min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media(min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media(min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714286%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media(min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media(min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media(min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media(min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media(min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media(min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media(min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media(min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports(position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-0.25rem !important}.mt-n1,.my-n1{margin-top:-0.25rem !important}.mr-n1,.mx-n1{margin-right:-0.25rem !important}.mb-n1,.my-n1{margin-bottom:-0.25rem !important}.ml-n1,.mx-n1{margin-left:-0.25rem !important}.m-n2{margin:-0.5rem !important}.mt-n2,.my-n2{margin-top:-0.5rem !important}.mr-n2,.mx-n2{margin-right:-0.5rem !important}.mb-n2,.my-n2{margin-bottom:-0.5rem !important}.ml-n2,.mx-n2{margin-left:-0.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media(min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-0.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-0.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-0.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-0.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-0.25rem !important}.m-sm-n2{margin:-0.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-0.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-0.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-0.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-0.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media(min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-0.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-0.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-0.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-0.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-0.25rem !important}.m-md-n2{margin:-0.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-0.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-0.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-0.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-0.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media(min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-0.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-0.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-0.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-0.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-0.25rem !important}.m-lg-n2{margin:-0.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-0.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-0.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-0.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-0.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media(min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-0.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-0.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-0.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-0.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-0.25rem !important}.m-xl-n2{margin:-0.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-0.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-0.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-0.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-0.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:"Space Mono",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media(min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#9a52ff !important}a.text-primary:hover,a.text-primary:focus{color:#6d06ff !important}.text-secondary{color:#e0e0e1 !important}a.text-secondary:hover,a.text-secondary:focus{color:#b9b9bb !important}.text-success{color:#32e685 !important}a.text-success:hover,a.text-success:focus{color:#16b560 !important}.text-info{color:#19a3ff !important}a.text-info:hover,a.text-info:focus{color:#007acc !important}.text-warning{color:#faff19 !important}a.text-warning:hover,a.text-warning:focus{color:#c7cc00 !important}.text-danger{color:#ff198b !important}a.text-danger:hover,a.text-danger:focus{color:#cc0065 !important}.text-light{color:#fff !important}a.text-light:hover,a.text-light:focus{color:#d9d9d9 !important}.text-dark{color:#111112 !important}a.text-dark:hover,a.text-dark:focus{color:#000 !important}.text-body{color:#e0e0e1 !important}.text-muted{color:#e0e0e1 !important}.text-black-50{color:rgba(0,0,0,.5) !important}.text-white-50{color:rgba(255,255,255,.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;word-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #838386;page-break-inside:avoid}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #c1c1c2 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#c1c1c2}.table .thead-dark th{color:inherit;border-color:#c1c1c2}}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}pre,code{font-feature-settings:"liga" 0;font-variant-ligatures:none}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:bold}h1,.h1{font-size:3.875rem;line-height:70px}@media(max-width: 480px){h1,.h1{font-size:2.625rem;line-height:48px}}h2,.h2{font-size:3.5rem;line-height:62px}@media(max-width: 767.98px){h2,.h2{font-size:1.75rem;line-height:34px}}@media(max-width: 767.98px){h2-sm,.h2-sm{font-size:1.75rem !important;line-height:34px !important}}h3,.h3{font-size:3rem;line-height:52px}@media(max-width: 767.98px){h3,.h3{font-size:1.5rem;line-height:28px}}@media(max-width: 767.98px){h3-sm,.h3-sm{font-size:1.5rem;line-height:28px}}h4,.h4{font-size:2rem;line-height:38px}@media(max-width: 767.98px){h4,.h4{font-size:1.25rem;line-height:26px}}h5,.h5{font-size:1.5rem;line-height:32px}@media(max-width: 767.98px){h5,.h5{font-size:1.125rem;line-height:26px}}h6,.h6{font-size:1.25rem;line-height:26px}@media(max-width: 767.98px){h6,.h6{font-size:1rem;line-height:24px}}.longform{font-size:1.5rem;line-height:32px;color:#f5f5f7;font-weight:500}@media(max-width: 767.98px){.longform{font-size:1.25rem;line-height:26px}}.numbers{font-size:6rem;line-height:104px;font-weight:bold;color:#fff}@media(max-width: 767.98px){.numbers{font-size:3.875rem;line-height:70px}}p{font-size:1rem;line-height:24px}.fs-base{font-size:1rem}.fs-3{font-size:.75rem;line-height:1rem}.fs-4-5{font-size:1.125rem}.fs-5{font-size:1.25rem}.fs-5-5{font-size:1.375rem}.fs-6{font-size:1.5rem}.normal{font-weight:normal}.bold{font-weight:bold}.text-largest{font-size:1.5rem;font-weight:normal}.text-large{font-size:1.125rem}.text-small{font-size:.875rem}.text-smaller{font-size:.75rem}.text-smallest{font-size:.625rem}.arrow-link{text-decoration:none}.arrow-link:after{content:url(../img/icon-long-arrow.svg);width:28px;padding-left:7px;transition:all .2s ease-in-out;display:inline-block;text-decoration:none}.arrow-link:hover:after{padding-left:14px}.lang-ja{font-family:"Work Sans","Noto Sans JP",sans-serif}.lang-ja h1,.lang-ja h2,.lang-ja h3,.lang-ja h4,.lang-ja h5,.lang-ja .github-edit-wrap .github-edit,.lang-ja .navbar .navbar-nav .nav-link,.lang-ja article .children-display li a,.lang-ja .right-sidebar .level-1 a,.lang-ja .right-sidebar .separator{font-family:"Work Sans","Noto Sans JP",sans-serif}.search .input-group-text{border-width:0;color:#fff;background-color:#232325;border-radius:4px 0 0 4px;padding:.5rem .5rem .5rem 1rem;line-height:1.5}.search .ds-input{background-color:#232325;border-radius:0 4px 4px 0;padding:.75rem 1rem .75rem .5rem;width:100%;border:1px solid #232325}.search .ds-input:focus{box-shadow:none;border-color:#9a52ff}.search .algolia-autocomplete{flex-grow:1}#algolia-autocomplete-listbox-0{z-index:1100 !important}.xrp-ledger-dev-portal .DocSearch-Modal{top:85px;background-color:#232325;box-shadow:none}.xrp-ledger-dev-portal .DocSearch-Form{box-shadow:inset 0 0 0 2px #9a52ff;background-color:#232325}.xrp-ledger-dev-portal .DocSearch-Hit-source{color:#9a52ff}.xrp-ledger-dev-portal .DocSearch-Hits mark{color:#9a52ff}.xrp-ledger-dev-portal .DocSearch-Hit-source,.xrp-ledger-dev-portal .DocSearch-Hit-Container,.xrp-ledger-dev-portal .DocSearch-Footer{background-color:#232325}.xrp-ledger-dev-portal .DocSearch-Hit a{background-color:#232325;box-shadow:none}.xrp-ledger-dev-portal .DocSearch-Hit-source{color:#a2a2a4}.xrp-ledger-dev-portal .DocSearch-Input{color:#fff}.xrp-ledger-dev-portal .DocSearch-Hit-title,.xrp-ledger-dev-portal .DocSearch-Hit-path,.xrp-ledger-dev-portal .DocSearch-Label,.xrp-ledger-dev-portal .DocSearch-Help{color:#f5f5f7 !important}.xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a{background:#343437}.xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-Container{background-color:#343437}.xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a mark{color:#9a52ff !important}.xrp-ledger-dev-portal .DocSearch-Prefill{color:#9a52ff}.xrp-ledger-dev-portal .DocSearch-Button{background:#232325;width:100%}.xrp-ledger-dev-portal .DocSearch-Button:hover{background:#232325;border-radius:40px;box-shadow:inset 0 0 0 2px #9a52ff}.xrp-ledger-dev-portal .DocSearch-Button:hover .DocSearch-Button-Placeholder{color:#fff}.xrp-ledger-dev-portal .DocSearch-Search-Icon{color:#fff !important}.xrp-ledger-dev-portal .DocSearch-Modal{margin-top:-20px;max-width:55%;margin-right:13.5em}@media(max-width: 991.98px){.xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu{min-width:unset}.xrp-ledger-dev-portal .DocSearch-Modal{top:127px;max-width:100%;margin-left:10px;margin-right:20px}}.xrp-ledger-dev-portal .DocSearch-Container{z-index:99999 !important;background-color:transparent !important}.xrp-ledger-dev-portal .DocSearch-Logo svg .cls-1,.xrp-ledger-dev-portal .DocSearch-Logo svg .cls-2{fill:#fff}.xrp-ledger-dev-portal .DocSearch-Commands-Key{color:#232325}.xrp-ledger-dev-portal #centersearchboxcontainer{justify-content:center}.xrp-ledger-dev-portal #topsearchboxcontainer{justify-content:right}.xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background-color:#111112;border:0;border-radius:8px}.xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu::before{background-color:#111112;border:0}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion{background-color:#111112}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header{color:#fff;border:0;border-bottom:2px solid #9a52ff;font-weight:bold}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{color:#fff}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--title{color:#fff}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text{font-size:.8rem;color:#e0e0e1}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#fff;background-color:#343437}.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,.xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:none;background-color:#343437}#xrp-ledger-dev-portal{overflow:auto !important}body{position:relative}section{position:relative}.landing{padding:0}.square{position:relative;flex-basis:calc(50% - 30px);margin:15px;box-sizing:border-box;justify-content:center;align-items:center;border-radius:8px}.square::before{content:"";display:block;padding-top:100%}@media(min-width: 992px){.square{flex-basis:calc(25% - 30px)}}.square-50{flex-basis:calc(50% - 30px)}@media(max-width: 767.98px){.square-50{flex-basis:calc(50% - 20px)}}.nav-grid-lg{display:flex;flex-direction:column}.nav-grid-lg .nav-item{width:100%}.nav-grid-lg .nav-item .nav-link{display:flex}.nav-grid-lg .nav-item .nav-link span{flex-grow:0}.nav-grid-lg .nav-item .nav-link img{max-height:2rem}.nav-grid-lg .nav-grid-head{margin-top:2.5rem}@media(min-width: 992px){.nav-grid-lg{display:grid;grid-auto-flow:column;grid-column-gap:80px}.nav-grid-lg .nav-grid-head{margin-top:0}}.col-lg{padding-left:0;padding-right:0}@media(min-width: 992px){.cols-of-1{grid-template-rows:repeat(1, min-content)}}@media(min-width: 992px){.cols-of-2{grid-template-rows:repeat(2, min-content)}}@media(min-width: 992px){.cols-of-3{grid-template-rows:repeat(3, min-content)}}@media(min-width: 992px){.cols-of-4{grid-template-rows:repeat(4, min-content)}}@media(min-width: 992px){.cols-of-5{grid-template-rows:repeat(5, min-content)}}@media(min-width: 992px){.cols-of-6{grid-template-rows:repeat(6, min-content)}}.card-grid{display:grid;grid-gap:40px;padding:0;width:100%;grid-template-columns:1fr}@media(min-width: 992px){.card-grid{grid-gap:80px}}.card-grid .col{padding-left:0;padding-right:0;min-width:100%}.card-grid.card-grid-4xN{grid-auto-rows:auto;grid-template-columns:repeat(2, 1fr)}@media(min-width: 992px){.card-grid.card-grid-4xN{grid-template-columns:repeat(4, 1fr)}}.card-grid.card-grid-3xN{grid-auto-rows:auto}@media(min-width: 992px){.card-grid.card-grid-3xN{grid-template-columns:1fr 1fr 1fr}}.card-grid.card-grid-2xN{grid-template-columns:1fr 1fr;grid-auto-rows:auto}@media(max-width: 991.98px){.card-grid.card-grid-2xN{grid-template-columns:1fr}}.card-grid.card-grid-1x2{grid-template-columns:1fr 2fr;grid-auto-rows:auto}@media(max-width: 991.98px){.card-grid.card-grid-1x2{display:flex}}.card-grid .card{padding:20px;border:0;min-height:264px}@media(min-width: 768px){.card-grid .card{min-height:347px}}@media(min-width: 992px){.card-grid .card{padding:40px}}.card-grid .card .card-body{padding:8px;padding-bottom:24px}.card-grid .card .card-body .card-icon-container{width:50px;height:50px}.card-grid .card .card-body .card-icon-container img{width:70%;height:70%}.card-grid.section-hero{padding-left:0}.container-new{display:flex;flex-wrap:wrap;margin:0 auto;padding:0 32px;max-width:100%;z-index:1}@media(min-width: 768px){.container-new{max-width:608px}}@media(min-width: 992px){.container-new{max-width:942px}}@media(min-width: 1200px){.container-new{max-width:1280px}}@media(max-width: 991.98px){article{overflow-wrap:break-word;word-wrap:break-word;overflow:hidden}}@media(max-width: 480px){html{overflow-x:hidden !important}}@media(max-width: 400px){.navbar .navbar-brand .brand-text{margin-right:0;letter-spacing:-0.08rem}.navbar .navbar-brand{margin-right:0}.navbar .navbar-brand .logo{margin-right:0;margin-left:-1rem}.btn{white-space:normal}}.timeline-wrapper{z-index:999;position:relative}.timeline:before{content:"";position:absolute;top:-40px;left:18px;height:95%;width:4px;background:linear-gradient(180deg, #feff01 0%, #ff2d9a 33%, #a3088f 66%, rgba(44, 4, 128, 0.85) 100%)}@media(max-width: 991.98px){.timeline:before{left:8px}}.timeline-dot{margin-top:94px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#111112;box-sizing:border-box}.timeline-block:first-child .timeline-dot{border:3px solid #faff19}.timeline-block:nth-child(2) .timeline-dot{border:3px solid #ff884b}.timeline-block:nth-child(3) .timeline-dot{border:3px solid #c000e5}.timeline-block:nth-child(4) .timeline-dot{border:3px solid #40004c}.timeline-block{display:flex;position:relative;z-index:1}.timeline-content{flex-grow:1;position:relative;margin-left:1.25em}.timeline h4{margin-top:-4px}@media(min-width: 768px){.timeline:before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.timeline-dot{-ms-flex-order:1;order:1;margin-left:calc(5% - 9px);will-change:transform}.timeline-block:nth-child(even){-ms-flex-direction:row-reverse;flex-direction:row-reverse}.timeline-dot{margin-right:calc(5% - 9px)}.timeline-content{width:45%;-ms-flex-positive:0;flex-grow:0;will-change:transform;margin:0;--line-height-multiplier: 1.2}}@media(min-width: 992px){[data-component-name="TableOfContent/TableOfContent"]{margin-right:32px}}aside li a{color:#fff;text-decoration:none;font-size:1.05rem}aside .sidenav_cat_title{color:#fff}aside a:hover,aside .sidenav_cat_title:hover{color:#9a52ff}aside a.active,aside a.active:hover,aside .active>a,aside .active>a:hover{color:#9a52ff;font-weight:700}aside a.active-parent,aside .active-parent>a{font-weight:700}.page-toc .level-1 a,.command-list .separator{font-weight:700;color:#fff}.nav-toggler{position:absolute;width:1.75em;height:1.75em;line-height:0;display:grid;justify-content:center;align-content:center}.nav-toggler::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}.nav-toggler:empty::after{margin-left:0}.nav-toggler::after{transition-duration:.3s}.nav-toggler.collapsed::after{transform:rotate(-90deg)}.dactyl-tree-nav nav{margin-left:1rem;padding-left:0;border-left:1px solid #fff}.dactyl-tree-nav nav .nav-link:hover,.dactyl-tree-nav nav .nav-link:active{border-left:1px solid #9a52ff;margin-left:-1px}.dactyl-tree-nav nav .active>.nav-link{border-left:2px solid #9a52ff;margin-left:-1px;padding-left:calc(1rem - 1px)}.dactyl-tree-nav .nav-item{position:relative}.dactyl-tree-nav .nav-item .nav-link{padding:.25rem 1rem;font-size:.9rem}.dactyl-tree-nav .nav-item.nav-parent{padding-top:0}.dactyl-tree-nav .nav-item.nav-parent .nav-link{padding-left:0;padding-top:0;font-size:1.125rem;line-height:initial}.dactyl-tree-nav .nav-item .nav-toggler+.nav-link{padding-left:2rem}.dactyl-tree-nav>.nav-item{padding:.5rem 0;font-size:1.125rem}.dactyl-tree-nav>.nav-item>.nav-link{font-weight:bold}.dactyl-tree-nav .collapsing.nav{flex-wrap:unset}.toc-header{font-weight:bold;font-size:14px;padding:1rem 0}.toc-header h4{line-height:20px;font-size:1.2em;padding:0;margin:0}#page-toc-wrapper .card-body{list-style-type:none}.page-toc,.command-list{padding-left:0;border-left:1px solid #fff}.page-toc li,.command-list li{list-style-type:none;padding:0}.page-toc li.separator,.command-list li.separator{padding:.25rem 1rem}.page-toc li a,.command-list li a{display:block;margin-top:5px;padding:.25rem 1rem;font-size:.9rem}.page-toc li a:hover,.page-toc li a .active,.command-list li a:hover,.command-list li a .active{text-decoration:none;border-left:1px solid #9a52ff;margin-left:-1px}.page-toc li.active a,.page-toc li.active a:hover,.command-list li.active a,.command-list li.active a:hover{border-left:2px solid #9a52ff;padding-left:calc(1rem - 1px);margin-left:-1px}.page-toc .level-3,.command-list .level-3{margin-left:16px;border-left:1px solid #fff;margin-bottom:0;padding-bottom:5px}.page-toc .level-3 a,.command-list .level-3 a{margin-top:0;padding-bottom:5px}.page-toc.no-sideline,.command-list.no-sideline{border-left:0}.page-toc.no-sideline a:hover,.page-toc.no-sideline a.active,.command-list.no-sideline a:hover,.command-list.no-sideline a.active{border-left:0;margin-left:0}.command-list li a{margin-top:0}.h32{height:32px}.w32{width:32px}.h36{height:36px}.w36{width:36px}.h40{height:40px}.w40{width:40px}.w44{width:44px}.w48{width:48px}.w-100{width:100%}.min-vh100{min-height:100vh}.vw100{width:100vw;min-width:100%}@media(max-width: 767.98px){.mb-3-sm-i{margin-bottom:1rem !important}}.ml-5{margin-left:1.25rem}@media(min-width: 768px){.ml-5-until-md{margin-left:1.25rem}}.mr-5{margin-right:1.25rem}@media(min-width: 768px){.mr-5-until-md{margin-right:1.25rem}}.mb-6{margin-bottom:1.5rem}@media(max-width: 767.98px){.mb-6-sm{margin-bottom:1.5rem}}.mt-6{margin-top:1.5rem}@media(min-width: 576px){.mt-6-until-sm{margin-top:1.5rem !important}}.mb-8{margin-bottom:2rem}@media(max-width: 767.98px){.mb-8-sm{margin-bottom:2rem}}.mt-8{margin-top:2rem}@media(min-width: 576px){.mt-8-until-sm{margin-top:2rem !important}}.mt-9{margin-top:2.25rem}.mb-9{margin-bottom:2.25rem}.mt-10{margin-top:2.5rem}@media(max-width: 767.98px){.mt-10-sm{margin-top:2.5rem}}.mb-10{margin-bottom:2.5rem}@media(min-width: 576px){.mb-10-until-sm{margin-bottom:2.5rem}}@media(max-width: 767.98px){.mb-10-sm{margin-bottom:2.5rem}}.ml-10{margin-left:2.5rem}.mr-10{margin-right:2.5rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}@media(min-width: 576px){.mx-10-until-sm{margin-left:2.5rem;margin-right:2.5rem}}@media(min-width: 768px){.mx-10-until-md{margin-left:2.5rem;margin-right:2.5rem}}@media(max-width: 767.98px){.mx-10-sm{margin-left:2.5rem;margin-right:2.5rem}}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mt-13{margin-top:3.25rem}.mb-13{margin-bottom:3.25rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}@media(max-width: 767.98px){.mt-16-sm{margin-top:4rem}}.mb-16{margin-bottom:4rem}@media(max-width: 767.98px){.mb-16-sm{margin-bottom:4rem}}.mb-18{margin-bottom:4.5rem}.mt-20{margin-top:5rem}@media(max-width: 767.98px){.mt-20-sm{margin-top:5rem}}@media(min-width: 576px){.mt-20-until-sm{margin-top:5rem}}.mb-20{margin-bottom:5rem}@media(max-width: 767.98px){.mb-20-sm{margin-bottom:5rem}}@media(min-width: 576px){.mb-20-until-sm{margin-bottom:5rem}}.my-20{margin-top:5rem;margin-bottom:5rem}.my-26{margin-top:6.5rem;margin-bottom:6.5rem}.mb-30{margin-bottom:7.5rem}.mt-30{margin-top:7.5rem}@media(min-width: 576px){.mt-30-until-sm{margin-top:7.5rem}}.mt-40{margin-top:10rem}@media(min-width: 576px){.mt-40-until-sm{margin-top:10rem}}.mb-40{margin-bottom:10rem}@media(min-width: 576px){.mb-40-until-sm{margin-bottom:10rem}}.mb-49{margin-bottom:12.25rem}.mb-50{margin-bottom:12.5rem}@media(min-width: 576px){.mb-50-until-sm{margin-bottom:12.5rem}}@media(max-width: 767.98px){.pl-0-sm{padding-left:0 !important}}@media(max-width: 767.98px){.pr-0-sm{padding-right:0 !important}}@media(max-width: 767.98px){.pt-3-sm{padding-top:1rem !important}}.p-6{padding:1.5rem}@media(max-width: 767.98px){.p-6-sm{padding:1.5rem}}.p-8{padding:2rem}@media(max-width: 767.98px){.p-8-sm{padding:2rem}}.p-10{padding:2.5rem}@media(min-width: 576px){.p-10-until-sm{padding:2.5rem}}.py-20{padding-bottom:5rem;padding-top:5rem}.px-20{padding-left:5rem;padding-right:5rem}.pt-20{padding-top:5rem}.pb-20{padding-bottom:5rem}.py-26{padding-top:6.5rem;padding-bottom:6.5rem}@media(max-width: 767.98px){.py-26{padding-top:2.5rem;padding-bottom:2.5rem}}.pt-26{padding-top:2.5rem}@media(min-width: 576px){.pt-26-until-sm{padding-top:6.5rem}}.pb-26{padding-bottom:6.5rem}@media(min-width: 576px){.pb-26-until-sm{padding-bottom:6.5rem}}.pt-30{padding-top:7.5rem}.pb-30{padding-bottom:7.5rem}.pt-40{padding-top:10rem}@media(min-width: 576px){.pt-40-until-sm{padding-top:10rem}}.pb-40{padding-bottom:10rem}.pb-50{padding-bottom:12.5rem}.pt-50{padding-top:12.5rem}.py-50{padding-bottom:12.5rem;padding-top:12.5rem}@media(min-width: 576px){.py-50-until-sm{padding-bottom:12.5rem;padding-top:12.5rem}}.floating-nav{top:6rem}.last-section{margin-bottom:100px}.bottom-0{bottom:0}.justify-center{justify-content:center}@media(max-width: 767.98px){.justify-center-sm{justify-content:center}}@media(max-width: 575.98px){.overflow-xs{overflow:scroll}.overflow-x-xs{overflow-x:scroll;overflow-y:hidden}}@media(min-width: 768px){.position-sm-absolute{position:absolute}}.va-middle{vertical-align:middle}.ls-none{list-style:none}.no-wrap{white-space:nowrap}.align-items-stretch{align-items:stretch}.underline{text-decoration:underline}@media(max-width: 575.98px){.d-none-xs{display:none}}@media(max-width: 767.98px){.d-none-sm{display:none}}@media(min-width: 992px){.d-none-lg{display:none}}.d-block{display:block}.border-green{border:1px solid #9a52ff}.border-none{border:none !important}.grey-400{color:#a2a2a4}.grey-500{color:#838386}.grey-700{color:#343437}.white{color:#fff}.stat-highlight{color:#32e685}.br-8{border-radius:8px}@media(max-width: 767.98px){br.until-sm{content:""}}.z-index-1{z-index:1}.bb-gray{border-bottom:1px solid #454549}@keyframes arrowDance{0%{padding-left:7px}50%{padding-left:14px}100%{padding-left:7px}}@keyframes arrowDance2{0%{right:0}50%{right:7px}100%{right:0}}@keyframes arrowDanceDiag{0%{right:7px;margin-top:0}50%{right:0;margin-top:-7px}100%{right:7px;margin-top:0}}.btn,article a.button,article .btn{font-weight:bold;cursor:pointer;text-decoration:none;transition:.2s;padding:.5rem 1rem;line-height:16px}article a.button{padding:.5rem 1rem;margin:0 .5rem;display:inline-block}.btn.disabled,button.disabled,.btn[disabled=disabled],button[disabled=disabled]{cursor:not-allowed}.btn-primary code,.btn-secondary code{color:inherit}.btn-primary{background:#7919ff;font-weight:bold;color:#fff;border:none;border-color:transparent}.btn-primary:hover{background:#5f00e5}.btn-primary.disabled,.btn-primary[disabled=disabled]{background:#4a00b2}.btn-primary.disabled:hover,.btn-primary[disabled=disabled]:hover{background:#4a00b2}@media(max-width: 767.98px){.btn-arrow{display:block;width:100%}}.btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right.svg);position:relative;top:1px;vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.btn-arrow:hover{background:#5f00e5 !important;border:none}.btn-arrow:hover::after{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.btn-arrow-out::after{background-position:left 0px bottom 0px;content:" ";background-image:url(../img/icons/arrow-up-right-white.svg);background-repeat:no-repeat;display:inline-block;padding:4px 8px 4px 12px;transition:background-position .3s ease-in-out;margin-left:4px}.btn-arrow-out:hover::after{background-position:left 4px bottom 4px}@media(max-width: 767.98px){.btn-arrow-out{display:block;width:100%}}.jump-to-top{display:none;position:fixed;bottom:36px;right:36px;font-weight:700;z-index:1000}.jump-to-top::after{display:none}.accordian-row{background:#232325;border-radius:5px;padding:32px}.accordian-row h3 a{position:relative;padding-right:2rem}.accordian-row h3 a:hover{color:#fff}.accordian-row .chevron{position:absolute;top:0;right:0}article table{clear:right;margin-bottom:48px}article table code{word-break:normal;white-space:nowrap;overflow-wrap:normal}article table th{border-bottom:2px solid #e0e0e1}article table tr{border-bottom:1px solid #e0e0e1}article table th,article table td{padding:.2em;vertical-align:text-top}article table td:nth-child(1){font-weight:bold}.landing-table th,.landing-table tr{border-bottom:2px solid #454549}.landing-table td{width:33.33%;padding:16px 40px 16px 0}.landing-table td:nth-child(1){font-weight:normal}@media(max-width: 767.98px){.landing-table td{font-size:.875rem}}.landing-table tr:last-child{border-bottom:none}.landing-table tbody td{color:#e0e0e1}.dblue{color:#454549}#overview-table td:nth-child(1){width:40%}#overview-table td:nth-child(2){width:30%}#overview-table tbody td{padding:2rem .75rem}@media(max-width: 991.98px){#overview-table{font-size:.875rem}#overview-table thead .h4{font-size:1.125rem}}article table{clear:right;margin-bottom:48px}article table code{word-break:normal;white-space:nowrap;overflow-wrap:normal}article table th{border-bottom:2px solid #e0e0e1}article table tr{border-bottom:1px solid #e0e0e1}article table th,article table td{padding:.2em;vertical-align:text-top}article table td:nth-child(1){font-weight:bold}.landing-table th,.landing-table tr{border-bottom:2px solid #454549}.landing-table td{width:33.33%;padding:16px 40px 16px 0}.landing-table td:nth-child(1){font-weight:normal}@media(max-width: 767.98px){.landing-table td{font-size:.875rem}}.landing-table tr:last-child{border-bottom:none}.landing-table tbody td{color:#e0e0e1}.dblue{color:#454549}#overview-table td:nth-child(1){width:40%}#overview-table td:nth-child(2){width:30%}#overview-table tbody td{padding:2rem .75rem}@media(max-width: 991.98px){#overview-table{font-size:.875rem}#overview-table thead .h4{font-size:1.125rem}}#use_case_companies_list #threezy .biz-logo{max-height:40px;content:url("../img/uses/modallogos/threezy.png")}html.light .cryptum{content:url(../img/uses/lightmode/cryptum.jpg) !important;height:58px;max-width:max-content;width:184px;max-height:none;margin:0px;padding-bottom:10px}.xrp-ledger{content:url(../img/uses/modallogos/xrp-ledger.png)}html.light .xrp-ledger{content:url(../img/uses/lightmode/xrp-ledger.png)}.gatehub{content:url(../img/uses/modallogos/gatehub.png)}html.light .gatehub{content:url(../img/uses/lightmode/gatehub.png)}.towolabs{content:url(../img/uses/modallogos/towolabs.png)}html.light .towolabs{content:url(../img/uses/lightmode/towolabs.png)}.xrpscan{content:url(../img/uses/modallogos/xrpscan.png)}html.light .xrpscan{content:url(../img/uses/lightmode/xrpscan.png)}.xrp-toolkit{content:url(../img/uses/modallogos/xrp-toolkit.png)}html.light .xrp-toolkit{content:url(../img/uses/lightmode/xrp-toolkit.png)}.bithomp{content:url(../img/uses/modallogos/bithomp.png)}html.light .bithomp{content:url(../img/uses/lightmode/bithomp.png)}.onthedex{content:url(../img/uses/modallogos/onthedex.png)}html.light .onthedex{content:url(../img/uses/lightmode/onthedex.png)}.cryptum{content:url(../img/uses/modallogos/cryptum.png)}html.light .cryptum{content:url(../img/uses/lightmode/cryptum.png)}.evernode{content:url(../img/uses/modallogos/evernode.png)}html.light .evernode{content:url(../img/uses/lightmode/evernode.png)}.threezy{content:url(../img/uses/modallogos/threezy.png)}html.light .threezy{content:url(../img/uses/lightmode/threezy.png)}.tokenize{content:url(../img/uses/modallogos/tokenize.png)}html.light .tokenize{content:url(../img/uses/lightmode/tokenize.png)}.multichain{content:url(../img/uses/modallogos/multichain.png)}html.light .multichain{content:url(../img/uses/lightmode/multichain.png)}.crossmark{content:url(../img/uses/modallogos/crossmark.png)}html.light .crossmark{content:url(../img/uses/lightmode/crossmark.png)}.edge{content:url(../img/uses/modallogos/edge.png)}html.light .edge{content:url(../img/uses/lightmode/edge.png)}.gem-wallet{content:url(../img/uses/modallogos/gem-wallet.png)}html.light .gem-wallet{content:url(../img/uses/lightmode/gem-wallet.png)}.xumm{content:url(../img/uses/modallogos/xumm.png)}html.light .xumm{content:url(../img/uses/lightmode/xumm.png)}.aesthetes{content:url(../img/uses/modallogos/aesthetes.png)}html.light .aesthetes{content:url(../img/uses/lightmode/aesthetes.png)}.audiotarky{content:url(../img/uses/modallogos/audiotarky.png)}html.light .audiotarky{content:url(../img/uses/lightmode/audiotarky.png)}.nftmaster{content:url(../img/uses/modallogos/nftmaster.png)}html.light .nftmaster{content:url(../img/uses/lightmode/nftmaster.png)}.peerkat{content:url(../img/uses/modallogos/peerkat.png)}html.light .peerkat{content:url(../img/uses/lightmode/peerkat.png)}.sologenic_dex{content:url(../img/uses/modallogos/sologenic_dex.png)}html.light .sologenic_dex{content:url(../img/uses/lightmode/sologenic_dex.png)}.xrp-cafe{content:url(../img/uses/modallogos/xrp-cafe.png)}html.light .xrp-cafe{content:url(../img/uses/lightmode/xrp-cafe.png)}.xrp-oval{content:url(../img/uses/modallogos/xrp-oval.png)}html.light .xrp-oval{content:url(../img/uses/lightmode/xrp-oval.png)}.sologenic_dex{content:url(../img/uses/modallogos/sologenic_dex.png)}html.light .sologenic_dex{content:url(../img/uses/lightmode/sologenic_dex.png)}.xpmarket{content:url(../img/uses/modallogos/xpmarket.png)}html.light .xpmarket{content:url(../img/uses/lightmode/xpmarket.png)}.forte{content:url(../img/uses/modallogos/forte.png)}html.light .forte{content:url(../img/uses/lightmode/forte.png)}.ledger-city{content:url(../img/uses/modallogos/ledger-city.png)}html.light .ledger-city{content:url(../img/uses/lightmode/ledger-city.png)}.anchain{content:url(../img/uses/modallogos/anchain.png)}html.light .anchain{content:url(../img/uses/lightmode/anchain.png)}.ripple{content:url(../img/uses/modallogos/ripple.png)}html.light .ripple{content:url(../img/uses/lightmode/ripple.png)}.supermojo{content:url(../img/uses/modallogos/supermojo.png)}html.light .supermojo{content:url(../img/uses/lightmode/supermojo.png)}.ripple{content:url(../img/uses/modallogos/ripple.png)}html.light .ripple{content:url(../img/uses/lightmode/ripple.png)}.carbonland-trust{content:url(../img/uses/modallogos/carbonland-trust.png)}html.light .carbonland-trust{content:url(../img/uses/lightmode/carbonland-trust.png)}.gatehub{content:url(../img/uses/modallogos/gatehub.png)}html.light .gatehub{content:url(../img/uses/lightmode/gatehub.png)}.bitgo{content:url(../img/uses/modallogos/bitgo.png)}html.light .bitgo{content:url(../img/uses/lightmode/bitgo.png)}.arrow-button.left-arrow img{content:url(../img/uses/left-arrow.svg)}.arrow-button.right-arrow img{content:url(../img/uses/right-arrow.svg)}.html.light .arrow-button.left-arrow img{content:url(../img/uses/left-arrow-light.svg)}.html.light .arrow-button.right-arrow img{content:url(../img/uses/right-arrow-light.svg)}.related-tasks-links a{color:#454549;text-decoration:none}.related-tasks-links a:hover{color:#000}.arrows-container{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;z-index:10}@media only screen and (max-width: 768px){.arrows-container{top:30px}}.arrow-button{background-color:transparent;border:none;cursor:pointer}.arrow-button img{width:40px;height:40px}.left-arrow{margin-left:40px}@media only screen and (max-width: 768px){.left-arrow{margin-left:0px}}.right-arrow{margin-right:40px}@media only screen and (max-width: 768px){.right-arrow{margin-right:0px}}.modal-uses{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.4)}.modal-content-uses{position:relative;background-color:#232325;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);padding:20px;width:60% !important;height:60%;display:flex;flex-direction:column;align-items:center;overflow:scroll}.modal-content-uses::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%, #19ff83 100.32%)}.content-section{width:100%;display:flex;justify-content:center;align-items:center;margin-bottom:20px}.section-image{display:block}.section-text-title{font-family:"Work Sans";font-style:normal;font-weight:500;font-size:24px;line-height:32px;text-align:center;color:#fff}.section-text-description{max-width:320px;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:16px;line-height:24px;text-align:center;color:#c1c1c2}.apps-built{position:relative;top:17px;left:50px;font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#e0e0e1}.numbers-animation{width:218px;height:96px}.arrow-animation{position:relative;right:23px;top:-11px;width:60px !important}.explore-projects{font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#7919ff;position:relative;top:-9px;right:27px}.section-separator{width:50%;border:0;border-top:1px solid #ccc}.threezy-logo{margin:4px;max-height:38px}.blockforce-logo{margin:0px !important;max-height:45px !important}.Evernode-logo{margin-right:39px}.logo-grid{display:grid;grid-template-rows:repeat(2, 1fr);grid-template-columns:repeat(4, 1fr);grid-gap:8px;justify-items:center}.flex-center{display:flex;justify-content:center}.top-row,.bottom-row{display:flex;justify-content:center}@media only screen and (max-width: 768px){.top-row,.bottom-row{flex-wrap:wrap}}.logo-item{max-height:30px;max-width:130px;margin:10px 11px}.close{color:#aaa;float:right;font-size:28px;font-weight:bold;cursor:pointer}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.use-case-circle{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;border:1px solid #343437;border-radius:50%;margin-bottom:30px;cursor:pointer}@media(min-width: 768px){.use-case-circle{aspect-ratio:1/1;min-width:200px !important;min-height:200px !important}}@media(min-width: 992px){.use-case-circle{aspect-ratio:1/1;min-width:250px !important;min-height:250px !important}}.use-case-circle:hover{border-color:#838386}.circle-content{display:flex;flex-direction:column;align-items:center;gap:13px}.circle-img{width:40px;height:40px}.circle-text{font-family:"Work Sans";font-style:normal;font-weight:700;white-space:nowrap;font-size:16px;margin-bottom:0px}.join-xrpl-section{display:flex;flex-direction:column;align-items:center}.colorful-join-text-wrapper{display:flex;justify-content:center;flex-direction:column;padding:0 5%;box-sizing:border-box}@media(min-width: 992px){.colorful-join-text-wrapper{padding:0 4%}}.colorful-join-text{display:block;width:100%;text-align:left;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:32px;line-height:38px;background:linear-gradient(90deg, #feff01 0%, #ff2d9a 30.82%, #e24cff 64.01%, #9a52ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#numbersAnimation{display:block}#numbersAnimationLight{display:none}html.light .section-separator{background:#c1c1c2}html.light .section-text-description{color:#343437}html.light .modal-content-uses{background:#fff}html.light #numbersAnimation{display:none}html.light #numbersAnimationLight{display:block}html.light .apps-built{position:relative;top:17px;left:50px;font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#232325}html.light .colorful-join-text{display:block;width:100%;text-align:left;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:32px;line-height:38px;background:linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media(min-width: 992px){html.light .colorful-join-text{width:750px}}@media(min-width: 992px){.colorful-join-text{width:750px}}.pill-box{display:inline-flex;align-items:center;justify-content:center;padding:3.69087px 29.527px;width:73.05px;height:37.38px;background:#7919ff;border:3.69087px solid #5f00e5;border-radius:184.543px}.pill-number{font-family:"Work Sans";font-style:normal;font-weight:600;font-size:22.1452px;color:#f0e5ff}.use-case-steps h2{margin-top:10px;margin-bottom:10px;font-size:1.728em;line-height:32px;font-weight:700}.use-case-steps h2 a{text-decoration:none}.use-case-steps h2:first-of-type:before{display:none}.use-case h1{font-size:2.4em;padding-bottom:10px}.use-case-steps h2:before{margin-top:-30px;height:0}.use-case-steps h2:first-of-type{margin-top:-30px}.related-tasks-links ul{list-style-type:none;padding-left:0}.related-tasks-links ul li{margin:0px;padding-top:2px}.related-tasks-links a:hover::after{padding-left:.5em}.related-tasks-links a::after{content:" ➝";padding-left:0;transition:all .2s ease-in-out}.github-edit-wrap .github-edit{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E");background-size:24px 24px;background-position:left 12px center;background-repeat:no-repeat;padding-left:48px;text-decoration:none;margin-bottom:1rem;margin-top:0}[data-component-name="Layout/RootLayout"]{padding-top:80px}.top-nav{background-color:#111112;height:80px;padding:0}.top-nav .navbar-brand{text-decoration:none;white-space:pre;-webkit-transition:opacity .2s ease,color .2s ease;transition:opacity .2s ease,color .2s ease;padding-left:2rem}.top-nav .navbar-brand .logo{margin-left:0;content:url(../img/XRPLedger_DevPortal-white.svg);width:162px;height:40px;display:block}.top-nav .navbar-brand:hover{opacity:.75}@media(max-width: 991.98px){.top-nav .navbar-brand{padding-left:2rem}.top-nav .navbar-brand img{width:120px}}.top-nav .nav-item{font-weight:600}@media(min-width: 992px){.top-nav #topnav-pages{flex-grow:1}}.top-nav #topnav-pages .nav-link{color:#f5f5f7;font-size:1rem;line-height:1.25rem;text-decoration:none;font-weight:600}.top-nav .dropdown-toggle{position:relative}.top-nav .dropdown-menu{border-width:0}.top-nav .dropdown-menu h5{font-weight:400;font-size:12px;color:#a2a2a4;margin-bottom:0}.top-nav .dropdown-menu .dropdown-item{line-height:1rem;padding:.75rem 0;white-space:normal}.top-nav .dropdown-menu .dropdown-item.dropdown-hero{width:100%;display:flex;padding:1rem 2rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero>img{width:68px;height:68px;background-color:#232325;border-radius:4px;flex-grow:0;padding:.75rem;margin-right:2rem;margin-top:auto;margin-bottom:auto}.top-nav .dropdown-menu .dropdown-item.dropdown-hero p{font-size:14px;color:#c1c1c2;margin:0;white-space:normal}.top-nav .dropdown-menu .dropdown-item.dropdown-hero h4{font-size:1.25rem;font-weight:600;margin-bottom:0;line-height:2rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover h4{color:#9a52ff}.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover p{font-weight:400}.top-nav .dropdown-menu .dropdown-item:last-child{padding-bottom:0}.top-nav .dropdown-menu .dropdown-item:first-child{padding-top:0}.top-nav .dropdown-menu .col-for-get_started{background-color:#232325}.top-nav .dropdown-menu a:hover{color:#9a52ff;background-color:inherit}.top-nav .dropdown-menu h5:hover{background-color:inherit}.top-nav #topnav-search{flex-grow:1}.top-nav #topnav-search .input-group{flex-grow:1;flex-wrap:nowrap}@media(max-width: 991.98px){.top-nav #topnav-search .form-inline{padding:1rem 2rem}}.top-nav #topnav-search .input-group-text{height:40px}.top-nav #topnav-search .ds-input{height:40px}.top-nav #topnav-language .dropdown-item{font-weight:600}@media(min-width: 992px){.top-nav{padding:0 2rem}.top-nav .navbar-brand{margin-left:0;padding-left:0}.top-nav .dropdown-toggle::after{display:none}.top-nav .dropdown-toggle>span{border-bottom:2px solid transparent}.top-nav .dropdown .dropdown-toggle:hover>span:not(.chevron){padding-bottom:8px;border-bottom:2px solid #9a52ff;margin-bottom:-8px}.top-nav .dropdown-menu{border-radius:0 0 8px 8px;padding:2.5rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero{padding:0}.top-nav .dropdown-menu.show{display:grid;gap:40px}.top-nav .dropdown-menu.show#topnav_dd_about{grid-template-columns:180px 180px 180px}.top-nav .dropdown-menu.show#topnav_dd_docs{grid-template-columns:180px 180px 260px;left:-200px}.top-nav .dropdown-menu.show#topnav_dd_community{grid-template-columns:200px}.top-nav .dropdown-menu.show#topnav_dd_resources{grid-template-columns:195px 180px 180px;left:-200px}.top-nav .dropdown-menu.show .dropdown-hero{grid-row:1;grid-column:1/4}.top-nav .dropdown-menu.show #dropdown-hero-for-docs{grid-column:1/3}.top-nav .dropdown-menu.show .col-for-xrp_ledger{grid-row:1/3;grid-column:1}.top-nav .dropdown-menu.show .col-for-xrp{grid-column:2}.top-nav .dropdown-menu.show .col-for-sustainability,.top-nav .dropdown-menu.show .col-for-持続可能性{grid-column:2}.top-nav .dropdown-menu.show .col-for-about,.top-nav .dropdown-menu.show .col-for-概要{grid-row:1/3;grid-column:3}.top-nav .dropdown-menu.show .col-for-article_types{grid-column:1;grid-row:2}.top-nav .dropdown-menu.show .col-for-use_cases{grid-column:2;grid-row:2}.top-nav .dropdown-menu.show .col-for-get_started{grid-column:3;grid-row:1/3;margin:-40px -40px -40px 0;padding:40px}.top-nav .dropdown-menu.show .col-for-development{grid-column:1}.top-nav .dropdown-menu.show .col-for-current-status,.top-nav .dropdown-menu.show .col-for-現在のステータス{grid-column:2}.top-nav .dropdown-menu.show .col-for-join-in,.top-nav .dropdown-menu.show .col-for-参加する{grid-column:3}.top-nav .dropdown-menu.smaller-dropdown{min-width:180px;padding:1.25rem}.top-nav #topnav-pages{flex-grow:0}}@media(min-width: 992px)and (min-width: 992px)and (max-width: 1133px){.top-nav #topnav-pages .nav-link{padding:1rem 1rem}}@media(min-width: 992px){.top-nav #topnav-language{flex-grow:0}.top-nav #topnav-language hr{display:none}.top-nav #topnav-language #language_selector_header_btn{padding-right:0}}@media(min-width: 992px)and (min-width: 992px)and (max-width: 1133px){.top-nav #topnav-language #language_selector_header_btn{padding-left:1rem}}@media(min-width: 992px)and (min-width: 1200px){.top-nav #topnav-search{margin-left:3.5rem;margin-right:.5rem}.top-nav #topnav-language{margin-right:.5rem}.top-nav #topnav-button{margin-left:.2rem;margin-right:1rem}}@media(max-width: 991.98px){.top-nav .navbar-toggler{border:0;padding:30px 2rem;font-size:1rem;display:inline-block}.top-nav .navbar-toggler .navbar-toggler-icon{background:none;height:20px;width:20px;position:relative}.top-nav .navbar-toggler .navbar-toggler-icon::after,.top-nav .navbar-toggler .navbar-toggler-icon::before,.top-nav .navbar-toggler .navbar-toggler-icon div{position:absolute;content:" ";background-color:#f5f5f7;display:block;width:100%;height:3px;transition:all .2s ease}.top-nav .navbar-toggler .navbar-toggler-icon::before{top:0}.top-nav .navbar-toggler .navbar-toggler-icon::after{bottom:0}.top-nav .navbar-toggler .navbar-toggler-icon div{top:calc(50% - 1.5px)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::before{transform:translateY(8px) rotate(135deg)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::after{transform:translateY(-9px) rotate(-135deg)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon div{transform:scale(0)}.top-nav .navbar-nav{align-items:unset !important}.top-nav .navbar-nav #topnav-theme{background-color:#111112;padding:1rem}.top-nav .navbar-nav #topnav-button{background-color:#111112;padding:1rem 1.5rem}.top-nav .navbar-nav #topnav-search{background-color:#111112}.top-nav .navbar-nav #topnav-search [data-component-name="Search/MobileSearchTrigger"]{padding:2rem;cursor:pointer}.top-nav .navbar-nav .nav-link,.top-nav .navbar-collapse>.nav-item{line-height:150%;background:#111112}.top-nav .navbar-nav .nav-link label,.top-nav .navbar-collapse>.nav-item label{margin-bottom:0}.top-nav .navbar-nav .nav-link{padding:1rem 2rem}.top-nav .dropdown-menu{margin:0;width:100%;overflow:auto;transition:all .2s ease;height:0;display:block;padding:0;border-radius:0}.top-nav .dropdown-menu.show{height:calc(100vh - 80px - 52px)}.top-nav .dropdown-menu.show>:last-child{padding-bottom:4rem}.top-nav .dropdown-menu.show#topnav_dd_docs{display:grid;grid-template-columns:minmax(187px, 1fr) minmax(187px, 1fr);gap:1px;left:-200px}.top-nav .dropdown-menu.show#topnav_dd_docs .dropdown-hero{grid-column:1/3;grid-row:1}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-document_types{grid-column:1;grid-row:2}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-use_cases{grid-column:2;grid-row:2}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-get_started{grid-column:1/3;grid-row:4;margin:-1px;padding-top:33px}.top-nav .dropdown-menu .navcol{padding:1rem 2rem}.top-nav .dropdown-menu.smaller-dropdown{padding:0 2rem}.top-nav .dropdown-menu.smaller-dropdown.show{padding:1rem 2rem;height:auto}.top-nav .dropdown-menu .dropdown-hero:first-child{padding-top:1rem}.top-nav .dropdown-toggle:not(.with-caret)::before,.top-nav .dropdown-toggle:not(.with-caret)::after{border:0;font-family:FontAwesome;color:#9a52ff;font-size:.75rem;transition:all .2s ease;overflow:clip;width:1rem}.top-nav .dropdown-toggle:not(.with-caret)::before{content:"";display:inline-block;margin-bottom:-5px}.top-nav .dropdown-toggle:not(.with-caret)::after{content:"";position:absolute;right:2rem}.top-nav .dropdown.show .dropdown-toggle::after{text-indent:5rem}.top-nav .dropdown:not(.show) .dropdown-toggle::before{width:0;height:0;text-indent:-5rem}.top-nav .dropdown-toggle.with-caret::after{border:0}.top-nav #top-main-nav{padding-top:72px;position:relative;transition:padding-top .2s ease}.top-nav #top-main-nav.submenu-expanded{padding-top:0}.top-nav #top-main-nav.submenu-expanded .dropdown:not(.show) .dropdown-toggle{display:none}.top-nav #top-main-nav.submenu-expanded #topnav-search{height:0;overflow:clip;padding-top:0;padding-bottom:0}.top-nav #topnav-search{position:absolute;top:0;width:100%;height:72px;transition:all .2s ease}.top-nav #topnav-search .input-group{flex-wrap:nowrap}.top-nav #topnav-language hr{border-top:1px solid #232325;margin-top:.25rem;margin-bottom:.25rem;display:static}}article h1:before,article h2:before,article h3:before,article h4:before,article h5:before,article h6:before,.interactive-block:before{display:block;content:" ";margin-top:-40px;height:40px;visibility:hidden;pointer-events:none}a{z-index:1}.chevron{position:relative;display:inline-block;width:.75rem;height:.5625rem}.chevron span{position:absolute;top:.25rem;display:inline-block;width:.5rem;height:.15rem;background-color:#9a52ff;transition:all .2s ease;border:none}.chevron:not(.expander) span:first-of-type{left:0;transform:rotate(45deg)}.chevron:not(.expander) span:last-of-type{right:0;transform:rotate(-45deg)}.chevron.active span:first-of-type{transform:rotate(-45deg)}.chevron.active span:first-of-type{transform:rotate(45deg)}.dropdown.show .chevron span:first-of-type,.expander:not(.collapsed) .chevron span:first-of-type{transform:rotate(-45deg)}.dropdown.show .chevron span:last-of-type,.expander:not(.collapsed) .chevron span:last-of-type{transform:rotate(45deg)}#topnav-theme>div{border-radius:var(--language-picker-border-radius);color:var(--language-picker-text-color);background-color:var(--language-picker-background-color);border:1px solid var(--language-picker-border-color);padding:var(--language-picker-input-padding-vertical) var(--language-picker-input-padding-horizontal);min-height:var(--language-picker-min-height)}@media(max-width: 991.98px){.navbar-collapse,.dropdown-menu{box-shadow:0px 25px 40px -20px #000}}.top-banner{display:flex;align-items:center;justify-content:center;height:46px;background:url(../img/backgrounds/bg-apex-banner.svg);background-position:center !important;background-size:cover;background-color:#7919ff;color:#fff}.top-banner .inner-apex{display:flex;justify-content:center;align-items:center}.top-banner .apex-banner-text{color:#fff;font-family:"Work Sans";font-size:20px;font-style:normal;font-weight:600;line-height:24px}.top-banner .apex-btn{margin-left:16px;color:var(--Gray-100, #000) !important;font-family:"Work Sans";font-size:16px;font-style:normal;display:flex;justify-content:center;font-weight:600;align-items:center;line-height:100%;letter-spacing:-0.16px;padding:2px 4px;border-radius:100px !important;background:#18ff83 !important;text-decoration:none !important;width:135px;height:28px}@media(max-width: 1024px){.top-banner{background:url(../img/backgrounds/bg-apex-banner-md.svg)}.top-banner .apex-banner-text{font-size:18px}.top-banner .apex-btn{width:122px;height:26px;font-size:14px;letter-spacing:-0.14px}}@media(max-width: 535px){.top-banner{background:url(../img/backgrounds/bg-apex-banner-sm.svg)}.top-banner .apex-btn{margin-left:0;width:85px;height:16px;font-size:10px;line-height:100%;letter-spacing:-0.1px}.top-banner .apex-banner-text{font-size:12px;line-height:12px}.top-banner .inner-apex{flex-direction:column;gap:8px}}[data-component-name="Markdown/MarkdownWrapper"] article{padding-bottom:50px}[data-component-name="Markdown/MarkdownWrapper"] article p code,[data-component-name="Markdown/MarkdownWrapper"] article table code,[data-component-name="Markdown/MarkdownWrapper"] article li>code{background-color:#0a2e1b;color:#5beb9d}[data-component-name="Markdown/MarkdownWrapper"] article a{text-decoration:underline}[data-component-name="Markdown/MarkdownWrapper"] article h1{font-size:3rem;margin-top:32px;line-height:1.2;font-weight:700}[data-component-name="Markdown/MarkdownWrapper"] article h1:first-child{margin-top:0;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h2,[data-component-name="Markdown/MarkdownWrapper"] article h2.md{margin-top:2.5rem;margin-bottom:1.5rem;font-size:2.5rem;font-weight:600;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h3,[data-component-name="Markdown/MarkdownWrapper"] article h3.md{font-size:2.125rem;margin-top:2rem;margin-bottom:1rem;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h4{font-size:1.75rem;margin-top:1.5rem;margin-bottom:.5rem;line-height:1.2}[data-component-name="Markdown/MarkdownWrapper"] article h5{font-size:1.25rem;margin-top:1.25rem;line-height:1.2;font-weight:700}[data-component-name="Markdown/MarkdownWrapper"] article h6{font-size:1rem;margin-top:1rem;line-height:1.2;font-weight:700}[data-component-name="Markdown/MarkdownWrapper"] article li{margin:6px;margin-top:24px}[data-component-name="Markdown/MarkdownWrapper"] article li p{margin:0}[data-component-name="Markdown/MarkdownWrapper"] article a[title=Source]{float:right;padding-left:20px}[data-component-name="Markdown/MarkdownWrapper"] article h1.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h2.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h3.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h4.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h5.invisible,[data-component-name="Markdown/MarkdownWrapper"] article h6.invisible{font-size:0;line-height:0;margin:0}[data-component-name="Markdown/MarkdownWrapper"] article h1.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h2.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h3.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h4.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h5.invisible .hover_anchor,[data-component-name="Markdown/MarkdownWrapper"] article h6.invisible .hover_anchor{display:none}[data-component-name="Markdown/MarkdownWrapper"] article .shield{display:inline-block !important;vertical-align:middle}.blurb a{text-decoration:underline}.hover_anchor{visibility:hidden;padding-left:1rem;font-size:1.25rem}h1:hover .hover_anchor,h2:hover .hover_anchor,h3:hover .hover_anchor,h4:hover .hover_anchor,h5:hover .hover_anchor,h6:hover .hover_anchor{visibility:visible;text-decoration:none}pre{color:#fff;background-color:#232325;word-wrap:normal;padding:2rem;border-radius:4px}pre code{white-space:pre;color:#fff;background-color:#232325}.multicode{padding:0;z-index:1;position:relative}.multicode pre{background:none;border:none;border-radius:0;padding:0;clear:both}.multicode pre code{overflow:auto;max-height:24em;border-radius:0 4px 4px 4px;display:block;padding:2rem}.multicode pre code.expanded{overflow:visible;max-height:none;position:absolute;min-width:100%}.multicode ul{margin:0 !important;padding:0}.multicode ul li{display:block;float:left;list-style-type:none;margin-right:0px;margin-left:0px;border:0;clear:none}.multicode a{text-decoration:none;color:#fff;background-color:transparent;padding:.75rem 2rem;margin:0;border-radius:4px 4px 0 0}.multicode a.current{background-color:#232325}.multicode a:hover{text-decoration:none;background-color:#232325;color:#9a52ff;padding-bottom:.625rem}.multicode .btn{z-index:10}.multicode .codetabs{position:relative;z-index:10}.clipboard-btn{z-index:10;margin-right:10px}.codehilite{background:#232325;color:#fff}.codehilite .c,.codehilite .ch,.codehilite .cm,.codehilite .cp,.codehilite .cpf,.codehilite .c1,.codehilite .cs{color:#838386}.codehilite .k,.codehilite .kc,.codehilite .kd,.codehilite .kn,.codehilite .kp,.codehilite .kr,.codehilite .kt{color:#ff6719}.codehilite .m,.codehilite .mb,.codehilite .mh,.codehilite .mi,.codehilite .mo,.codehilite .il{color:#19a3ff}.codehilite .n,.codehilite .na,.codehilite .nb,.codehilite .nc,.codehilite .nd,.codehilite .ne,.codehilite .nf,.codehilite .ni,.codehilite .nl,.codehilite .nn,.codehilite .nt,.codehilite .nv,.codehilite .nx,.codehilite .bp,.codehilite .fm,.codehilite .py{color:#fff}.codehilite .p{color:#e0e0e1}.codehilite .s,.codehilite .s1,.codehilite .s2,.codehilite .sa,.codehilite .sb,.codehilite .sc,.codehilite .dl,.codehilite .sd,.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sr,.codehilite .ss,.codehilite .sx{color:#28b86a}.codehilite{background:transparent;position:relative}.codehilite .btn-group{top:1rem;right:1rem;position:absolute}.multicode .codehilite .btn-group{top:70px;right:20px}#redocly_root .cm-foldPlaceholder{background-color:#232325;border:none;font-size:18px}article img{max-width:100%;height:auto}article svg{max-width:100%}article .floating-diagram{margin:.5rem;float:left}article li{clear:left}html:not(.light) article svg[fill=black]{fill:#fff;stroke:#fff}html:not(.light) article svg[fill=black] *[fill=white]{fill:#000}html:not(.light) article svg[fill=black] *[stroke=white]{stroke:#000}html:not(.light) article svg[fill=black] *[fill=black]{fill:#fff}html:not(.light) article svg[fill=black] *[stroke=black]{stroke:#fff}html:not(.light) article svg[fill=black] g[fill=blue]{fill:#19a3ff}html:not(.light) article svg[fill=black] g[stroke=blue]{stroke:#19a3ff}html:not(.light) article svg[fill=black] g[fill="rgb(120,120,120)"]{fill:#e0e0e1}html:not(.light) article svg[fill=black] g[stroke="rgb(120,120,120)"]{stroke:#e0e0e1}html:not(.light) article svg[fill=black] g[fill="rgb(200,200,200)"]{fill:#343437}html:not(.light) article svg[fill=black] g[fill="rgb(70,70,70)"]{fill:#838386}html:not(.light) article svg[fill=black] g[stroke="rgb(70,70,70)"]{stroke:#838386}html:not(.light) article svg[fill=black] g[fill="rgb(29,180,255)"]{fill:#9a52ff}html:not(.light) article svg[fill=black] g[stroke="rgb(29,180,255)"]{stroke:#9a52ff}html:not(.light) article svg[fill=black] rect[stroke="rgb(245,247,249)"]{stroke:#000}html:not(.light) article svg[fill=black] g[fill=lime],html:not(.light) article svg[fill=black] g[fill="rgb(0,255,0)"]{fill:#9a52ff}html:not(.light) article svg[fill=black] g[stroke=lime],html:not(.light) article svg[fill=black] g[stroke="rgb(0,255,0)"]{stroke:#9a52ff}html:not(.light) article svg[fill=black] g[fill=yellow],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#faff19}html:not(.light) article svg[fill=black] g[fill=yellow] path[stroke=black],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"] path[stroke=black]{stroke:#000}html:not(.light) article svg[fill=black] g[fill=red],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#ff198b}html:not(.light) article svg[fill=black] g[stroke=red],html:not(.light) article svg[fill=black] g[stroke="rgb(255,255,0)"]{stroke:#ff198b}html:not(.light) article svg[fill=black] g[fill=yellow]+g text,html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]+g text{fill:#000}html:not(.light) article svg[fill=black] g[fill=lime]+g text{fill:#000}html:not(.light) article svg[fill=none] path[fill="#000000"]{fill:#fff}html:not(.light) article svg[fill=none] path[stroke="#000000"]{stroke:#fff}html:not(.light) article svg[fill=none] path[fill="#ffffff"]{fill:#000}html:not(.light) article svg[fill=none] path[stroke="#ffffff"]{stroke:#000}html:not(.light) article svg[fill=none] path[fill="#23292f"],html:not(.light) article svg[fill=none] path[fill="#23282f"]{fill:#fff}html:not(.light) article svg[fill=none] path[stroke="#23292f"],html:not(.light) article svg[fill=none] path[stroke="#23282f"]{stroke:#fff}html:not(.light) article svg[fill=none] path[fill="#2c3e50"],html:not(.light) article svg[fill=none] path[fill="#2b3e51"]{fill:#e0e0e1}html:not(.light) article svg[fill=none] path[stroke="#2c3e50"],html:not(.light) article svg[fill=none] path[stroke="#2b3e51"]{stroke:#e0e0e1}html:not(.light) article svg[fill=none] path[fill="#1c2835"]{fill:#f5f5f7}html:not(.light) article svg[fill=none] path[stroke="#1c2835"]{stroke:#f5f5f7}html:not(.light) article svg[fill=none] path[fill="#21aa47"]{fill:#32e685}html:not(.light) article svg[fill=none] path[stroke="#21aa47"]{stroke:#32e685}html:not(.light) article svg[fill=none] path[fill="#e64b3b"]{fill:#dc3545}html:not(.light) article svg[fill=none] path[stroke="#e64b3b"]{stroke:#dc3545}html:not(.light) article svg[fill=none] path[stroke="#27a2db"],html:not(.light) article svg[fill=none] path[stroke="#00aae4"]{stroke:#9a52ff}html:not(.light) article svg[fill=none] path[fill="#27a2db"],html:not(.light) article svg[fill=none] path[fill="#00aae4"]{fill:#9a52ff}html:not(.light) article svg[fill=none] path[fill="#e6e7e8"]{fill:#232325}html:not(.light) article svg[fill=none] path[stroke="#e6e7e8"]{stroke:#232325}html:not(.light) article svg[fill=none] path[stroke="#ffbf27"]{stroke:#d919ff}html:not(.light) article svg[fill=none] path[fill="#00ff00"]{fill:#32e685}html:not(.light) article svg[fill=none] path[stroke="#00ff00"]{stroke:#32e685}html:not(.light) article svg[fill=none] path[fill="#ff00ff"]{fill:#ff198b}html:not(.light) article svg[fill=none] path[stroke="#ff00ff"]{stroke:#ff198b}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#ffffff"]{stop-color:#343437}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#e6e7e8"]{stop-color:#232325}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#dbdcdd"]{stop-color:#000}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#b1b3b5"]{stop-color:#111112}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#29a1da"]{stop-color:#2dcf78}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#2789b9"]{stop-color:#5beb9d}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#6bc1ec"]{stop-color:#adf5ce}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#8ad6f4"]{stop-color:#84f0b6}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#fab913"]{stop-color:#f2b2ff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#fad26b"]{stop-color:#ea80ff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#f8a136"]{stop-color:#e24cff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#f7931a"]{stop-color:#c000e5}html.light svg[fill=black] g[fill=blue]{fill:#006bb2}html.light svg[fill=black] g[stroke=blue]{stroke:#19a3ff}html.light svg[fill=black] g[fill="rgb(120,120,120)"]{fill:#343437}html.light svg[fill=black] g[stroke="rgb(120,120,120)"]{stroke:#343437}html.light svg[fill=black] g[fill="rgb(200,200,200)"]{fill:#a2a2a4}html.light svg[fill=black] g[fill="rgb(70,70,70)"]{fill:#343437}html.light svg[fill=black] g[stroke="rgb(70,70,70)"]{stroke:#343437}html.light svg[fill=black] g[fill="rgb(29,180,255)"]{fill:#19a3ff}html.light svg[fill=black] g[stroke="rgb(29,180,255)"]{stroke:#006bb2}html.light svg[fill=black] rect[stroke="rgb(245,247,249)"]{stroke:#fcfcfd}html.light svg[fill=black] g[fill=lime],html.light svg[fill=black] g[fill="rgb(0,255,0)"]{fill:#5beb9d}html.light svg[fill=black] g[stroke=lime],html.light svg[fill=black] g[stroke="rgb(0,255,0)"]{stroke:#28b86a}html.light svg[fill=black] g[fill=yellow],html.light svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#fcff80}html.light svg[fill=black] g[fill=red],html.light svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#ff4ba4}html.light svg[fill=black] g[stroke=red],html.light svg[fill=black] g[stroke="rgb(255,255,0)"]{stroke:#ff198b}html.light svg[fill=none] rect[fill="#111112"]{fill:#f5f5f7}html.light svg[fill=none] path[fill=white]{fill:#000}html.light svg[fill=none] path[fill="#343437"]{fill:#c1c1c2}html.light svg[fill=none] path[fill="#A2A2A4"],html.light svg[fill=none] rect[fill="#A2A2A4"],html.light svg[fill=none] ellipse[fill="#A2A2A4"]{fill:#454549}html.light svg[fill=none] path[fill="#232325"]{fill:#e0e0e1}html.light svg[fill=none] path[fill="#F5F5F7"]{fill:#111112}html.light svg[fill=none] path[stroke="#F5F5F7"]{stroke:#111112}html.light svg[fill=none] path[stroke="#FF198B"]{stroke:#b20058}html.light svg[fill=none] linearGradient stop[stop-color="#F5F5F7"]{stop-color:#111112}html.light svg[fill=none] linearGradient stop[stop-color="#C1C1C2"]{stop-color:#343437}.external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:16px;padding:0 4px 0 8px;width:16px;height:16px;background-position:center;transition:transform 100ms ease-in-out}.external-link:hover::after{transform:translate(3px, -3px)}.external-link .fa-external-link{display:none}.top-nav .dropdown .external-link::after,.xrpl-footer .external-link::after{background-position:left 6px bottom 1px;width:2rem}@-moz-document url-prefix(){@supports(animation: calc(0s)){.top-nav .dropdown .external-link::after,.xrpl-footer .external-link::after{background-position:left 8px bottom 2px}}}.top-nav .dropdown .external-link:hover::after,.xrpl-footer .external-link:hover::after{background-position:left 8px bottom 3px}.q-wrapper .external-link::after{background-position:left 0 bottom 7px}.q-wrapper .external-link:hover::after{background-position:left 4px bottom 11px}.li-links{position:relative;border-bottom:2px solid #454549}.li-links a{width:100%;padding:16px 0}.li-links a::after{position:absolute;right:4px;content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:1.5rem;padding:0 .5rem;background-position:left 0 bottom -0.1rem;transition:background-position 100ms ease-in-out}.li-links a:hover::after{background-position:left .2rem bottom .1rem}[data-component-name="Footer/Footer"]{padding:7.5rem 2rem}[data-component-name="Footer/Footer"] [data-component-name="Footer/FooterColumn"]{text-shadow:#111112 0px 0px 2px,#111112 1px 1px 2px,#111112 2px 2px 3px,#111112 2px 2px 4px,#111112 2px 2px 5px,#111112 2px 2px 6px,#111112 -1px -1px 2px,#111112 -2px -2px 3px,#111112 -2px -2px 4px}@media(min-width: 992px){[data-component-name="Footer/Footer"]{background-image:url(../img/backgrounds/footer.svg);background-size:cover;background-repeat:no-repeat;background-position:bottom right}}@media(max-width: 991.98px){[data-component-name="Footer/Footer"] .col-lg:not(:first-child){margin-top:4rem}}[data-component-name="Footer/Footer"] h5{font-size:1rem;font-weight:600;color:#a2a2a4}[data-component-name="Footer/Footer"] .nav-link{padding:.75rem 0;line-height:1}[data-component-name="Footer/Footer"] .absolute-bottom-footer{font-size:10px;line-height:1rem}@media(max-width: 991.98px){[data-component-name="Footer/Footer"] .absolute-bottom-footer .copyright-license{margin-top:3rem}}.devportal-callout.tip,.devportal-callout.ヒント{border-color:#32e685}.devportal-callout.tip>strong:first-child:before,.devportal-callout.ヒント>strong:first-child:before{color:#32e685}.devportal-callout.note>strong:first-child:before,.devportal-callout.注記>strong:first-child:before{color:#19a3ff}.devportal-callout.note,.devportal-callout.注記{border-color:#19a3ff}.devportal-callout.caution,.devportal-callout.注意{border-color:#faff19}.devportal-callout.caution>strong:first-child:before,.devportal-callout.注意>strong:first-child:before{color:#faff19}.devportal-callout.warning,.devportal-callout.警告{border-color:#ff198b}.devportal-callout.warning>strong:first-child:before,.devportal-callout.警告>strong:first-child:before{color:#ff198b}blockquote,.devportal-callout{border-style:solid;border-radius:0;border-width:1px;border-left-width:4px;padding:5px;padding-left:25px;page-break-inside:avoid}.devportal-callout>strong:first-child{display:block;page-break-after:avoid}.devportal-callout.tip>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.note>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.caution>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.warning>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}@media(min-width: 992px){.card,.cta-card,.q-wrapper{box-shadow:0px 5px 40px #000}}#code-samples-deck .card{box-shadow:none;margin:0 2rem 5rem 2rem}#code-samples-deck .card-header{border-bottom:none;background-color:unset}#code-samples-deck .card-footer{background-color:unset;font-size:initial}#code-samples-deck .card-deck .card a{margin:0 2.5rem 5rem 2.5rem}#code-samples-deck .circled-logo{margin-left:-15px}@media(min-width: 992px){.code-contribute{width:75vw;position:relative;left:20%;right:20%;margin-left:-30vw;margin-right:-30vw}}.contribute::before{content:"";display:block;height:2px;width:100%;position:absolute;top:0}.contribute .dot{height:16px;width:16px;background-color:#111112;border-radius:50%;border:3px solid #fbff4c;display:inline-block;position:absolute;top:-7px;left:-6px}@media(max-width: 991.98px){.contribute::before{left:0;height:100%;width:2px;top:15px}.contribute .dot{top:5px;left:-6px}}.contribute_1::before{background:-webkit-linear-gradient(left, #feff01, #ff2d9a)}.contribute_1 .dot{border-color:#fbff4c}.contribute_2::before{background:-webkit-linear-gradient(left, #ff2d9a, #e24cff)}.contribute_2 .dot{border-color:#ff198b}.contribute_3::before{background:-webkit-linear-gradient(left, #e24cff, #9a52ff)}.contribute_3 .dot{border-color:#c000e5}.contribute_4::before{background:-webkit-linear-gradient(left, #9a52ff, #9a52ff)}.contribute_4 .dot{border-color:#9a52ff}.card>img{border-radius:8px 8px 0 0}.card-body>p,.card-body>p:not(:last-child){padding:0;margin-bottom:2rem}main a.card{border:0;color:#fff}a.card:hover,a:hover .card-new,[data-component-name="Markdown/MarkdownWrapper"] a.card{text-decoration:none !important}a.card:hover h3{text-decoration:underline}.circled-logo{background-color:#454549;border-radius:50%;padding:.65rem;width:50px;height:50px;margin-bottom:.75rem;border:2px solid #232325}.circled-logo img{width:26px;height:26px;display:inline-block}.light .circled-logo{border:none}.card-deck{margin-top:2.5rem;margin-left:-1.25rem;margin-right:-1.25rem;margin-bottom:5rem;flex-grow:1}@media(min-width: 992px){.card-deck{margin-top:5rem}}.card-deck .card{flex-grow:0;flex-basis:100%;margin:0 1.25rem 5rem 1.25rem;background-position:bottom;background-repeat:no-repeat;background-size:contain}.card-deck.row-cols-1 .card{flex-basis:100%;min-height:264px}@media(min-width: 768px){.card-deck.row-cols-1 .card{min-height:347px}}@media(min-width: 1200px){.card-deck.row-cols-lg-3{margin-left:-2.5rem;margin-right:-2.5rem}}@media(min-width: 992px){.card-deck.row-cols-lg-3 .card{flex-basis:calc(33% - 2.5rem )}}@media(min-width: 1200px){.card-deck.row-cols-lg-3 .card{margin:0 2.5rem 5rem 2.5rem;flex-basis:calc(33% - 5rem )}}@media(min-width: 992px){.card-deck.row-cols-lg-4 .card{flex-basis:calc(25% - 2.5rem )}}.card-deck a.card{transition:all .35s ease-out;cursor:pointer}.card-deck a.card:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}.card-deck .card-footer{font-size:0;padding:1rem;background-position:bottom;background-repeat:no-repeat;background-size:cover;border-top:0}@media(max-width: 991.98px){.card-deck{margin-top:2rem}.card-deck .card-body{padding:1rem}.card-deck.row-cols-1 .card{margin:.75rem .75rem 5rem .75rem;max-width:calc(100% - 1.5rem)}.card-deck.row-cols-2 .card{margin:.75rem;max-width:calc(50% - 1.5rem)}}main article .card-grid.card-grid-3xN{grid-gap:1rem}main article .card-grid.card-grid-3xN .card{padding:0;margin:.5rem}main article .card-grid.card-grid-3xN .card .card-body{padding:1rem}main article .card-grid.card-grid-3xN .card .card-icon-container{width:50px;height:50px;background:#454549;display:flex;justify-content:center;align-items:center;border-radius:50%;margin-bottom:12px}main article .card-grid.card-grid-3xN .card .card-icon-container img{width:70%;height:70%}main article .card-grid.card-grid-3xN .card .card-footer{font-size:0;line-height:0;padding:1rem;background-position:bottom;background-repeat:no-repeat;background-size:cover;border-top:0}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-green-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-magenta-3.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-green-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-light-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3col-orange-yellow-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-pink-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-green-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-magenta.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-purple2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-neutral-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-purple-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3col-light-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-blue-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-dark-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-magenta-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3-col-light-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-magenta-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-orange-3.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-blue-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3-col-light-blue2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-orange-yellow.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3-col-pink.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-green-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-orange-2.svg")}.cta-card{text-align:center;background-color:#232325}.breadcrumbs-wrap{position:relative;z-index:11;padding:0 0 2rem 0}.interactive-block .breadcrumbs-wrap{padding:0}.breadcrumb-item+.breadcrumb-item:before{content:"";font-family:FontAwesome;padding-right:5px}.breadcrumbs-wrap .breadcrumb{padding:0;margin-bottom:0;font-size:.833em}.breadcrumb-item a{color:#e0e0e1;text-decoration:none}.breadcrumb-item a:hover{color:#9a52ff}.landing .container-fluid.section-hero,.landing .section-hero.container-sm,.landing .section-hero.container-md,.landing .section-hero.container-lg,.landing .section-hero.container-xl{padding:48px 0}.landing article .children-display>ul>li,.landing article .curated-links>ul>li{margin-top:24px}.landing article .children-display li a,.landing article .curated-links li a{font-weight:700;font-size:1.25rem;text-decoration:none}.landing article .children-display li a:hover,.landing article .curated-links li a:hover{text-decoration:underline}.landing section:first-of-type h1:first-child{margin-top:0;line-height:1.2}.landing .level-1,.landing .level-2{margin-top:0}.landing .curated-links ul,.landing .curated-links ol,.landing .children-display ul{padding-left:0;margin-bottom:0}.landing .section-hero .blurb{font-size:1.2em;line-height:1.71em}.landing .doc-index .level-1{list-style-type:disc;margin-left:1rem}.landing .doc-index .level-2{list-style-type:circle;margin-left:2rem}.landing .doc-index .level-3{list-style-type:square;margin-left:3rem}.landing .doc-index .level-4{list-style-type:disc;margin-left:4rem}.landing .doc-index .level-5{margin-left:5rem;list-style-type:circle}.landing .doc-index .level-6{margin-left:6rem;list-style-type:square}.landing p a,.landing h5 a{color:#9a52ff;font-weight:600}.landing p a:hover,.landing h5 a:hover{text-decoration:underline}.landing .display-4{margin-bottom:1.5rem}.landing #test-net-servers h3{font-size:1.4rem;font-weight:700}.landing #test-net-servers pre{overflow-x:auto}.landing section:first-of-type{border-top-width:0}.landing #main_content_wrapper{border-bottom:none;margin-top:80px}.landing .marketing-wrapper{margin-top:10rem;margin-bottom:6rem}@media(max-width: 767.98px){.landing .marketing-wrapper{margin-top:6rem}}.landing .nav .nav-link{padding:1rem 2rem 1rem 0;color:#e0e0e1;border-bottom:1px solid #232325;position:relative}.landing .nav .nav-link:hover{color:#9a52ff}.landing .nav .nav-link:not(.external-link)::after{content:" ";background-image:url(../img/icons/arrow-right-purple.svg);background-repeat:no-repeat;background-position:center;background-size:1rem;position:absolute;right:0;width:1.5rem;height:1.5rem;transition:all .2s ease}.landing .nav .nav-link:not(.external-link):hover::after{animation:arrowDance2 1.2s infinite}.landing .nav .nav-link.external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;position:absolute;background-position:center;background-size:.75rem;right:7px;width:1.5rem;height:1.5rem;transition:all .2s ease}.landing .nav .nav-link.external-link:hover::after{animation:arrowDanceDiag 1.2s infinite}.landing .card-body .nav .nav-link{border-bottom:1px solid #454549}.alert-info{color:#fff;background-color:#006bb2;border-width:0}.alert-info a{text-decoration:underline;color:#fff}.alert-info a:hover{color:#e0e0e1}.highlight-subcard{margin:1.5rem 0;padding:1rem;border:2px solid #fff;background:#111112}.interactive-block-inner{border:1px dashed #9a52ff;padding:10px;margin:5px}.interactive-block-ui>button{margin:10px 0}.interactive-block input:invalid{box-shadow:inset 0 0 5px 5px #ff198b}.interactive-block .breadcrumbs-wrap{margin-bottom:11px}.interactive-block .breadcrumb-item{margin-top:6px}.interactive-block .breadcrumb-item a{text-decoration:none}.interactive-block .breadcrumb-item.current a{font-weight:bold}.interactive-block .breadcrumb-item.active a{color:#b480ff}.interactive-block .breadcrumb-item.disabled a{color:#454549}.interactive-block .breadcrumb-item.done a:after{content:"";font-family:FontAwesome;color:#e0e0e1;padding-right:5px;padding-left:5px}.interactive-block .waiting-for-tx{word-break:break-word}.ws-console{height:200px;overflow:auto}.status{cursor:help;padding:1px 2px;font-weight:normal;text-indent:0}.status.not_enabled{color:#faff19}.status.removed{color:#ff198b}.labels-wrap ul::before{content:"";font-family:FontAwesome;font-size:1.5rem}.labels-wrap .list-inline-item{margin-top:.5rem}.pg-category{color:#a2a2a4}.pg-category::after{content:"";font-family:FontAwesome;padding-left:5px}.label{border-radius:100px;border-width:0;padding:.5rem 1rem;font-weight:bold;text-decoration:none !important;text-align:center;white-space:nowrap;background-color:#111112;color:#c1c1c2}.label .badge-pill{width:24px;height:24px;border-radius:50px;margin-left:.5rem;font-weight:400;line-height:23px;font-size:16px;padding:0;margin-top:-2px}html.light .label{background-color:#e0e0e1;color:#232325}html.light .label .badge-pill{color:#e0e0e1;background-color:#232325}html.light .label:hover{background-color:#c1c1c2;color:#111112}html.light .label:hover .badge-pill{color:#c1c1c2;background-color:#111112}.label .badge-pill{color:#111112;background-color:#c1c1c2}.label:hover{color:#e0e0e1;background-color:#232325}.label:hover .badge-pill{color:#232325;background-color:#e0e0e1}.label.label-accounts,.label.label-payment-channels,.label.label-amm,.label.label-アカウント,.label.label-payment-channel,.label.label-use-infrastructure,.label.label-use-security,.label.chip-indigo{background-color:#20004c;color:#b480ff}.label.label-accounts .badge-pill,.label.label-payment-channels .badge-pill,.label.label-amm .badge-pill,.label.label-アカウント .badge-pill,.label.label-payment-channel .badge-pill,.label.label-use-infrastructure .badge-pill,.label.label-use-security .badge-pill,.label.chip-indigo .badge-pill{color:#20004c;background-color:#b480ff}.label.label-accounts:hover,.label.label-payment-channels:hover,.label.label-amm:hover,.label.label-アカウント:hover,.label.label-payment-channel:hover,.label.label-use-infrastructure:hover,.label.label-use-security:hover,.label.chip-indigo:hover{background-color:#350080;color:#d2b2ff}.label.label-accounts:hover .badge-pill,.label.label-payment-channels:hover .badge-pill,.label.label-amm:hover .badge-pill,.label.label-アカウント:hover .badge-pill,.label.label-payment-channel:hover .badge-pill,.label.label-use-infrastructure:hover .badge-pill,.label.label-use-security:hover .badge-pill,.label.chip-indigo:hover .badge-pill{color:#350080;background-color:#d2b2ff}html.light .label.label-accounts,html.light .label.label-payment-channels,html.light .label.label-amm,html.light .label.label-アカウント,html.light .label.label-payment-channel,html.light .label.label-use-infrastructure,html.light .label.label-use-security,html.light .label.chip-indigo{background-color:#d2b2ff;color:#350080}html.light .label.label-accounts .badge-pill,html.light .label.label-payment-channels .badge-pill,html.light .label.label-amm .badge-pill,html.light .label.label-アカウント .badge-pill,html.light .label.label-payment-channel .badge-pill,html.light .label.label-use-infrastructure .badge-pill,html.light .label.label-use-security .badge-pill,html.light .label.chip-indigo .badge-pill{color:#d2b2ff;background-color:#350080}html.light .label.label-accounts:hover,html.light .label.label-payment-channels:hover,html.light .label.label-amm:hover,html.light .label.label-アカウント:hover,html.light .label.label-payment-channel:hover,html.light .label.label-use-infrastructure:hover,html.light .label.label-use-security:hover,html.light .label.chip-indigo:hover{background-color:#b480ff;color:#20004c}html.light .label.label-accounts:hover .badge-pill,html.light .label.label-payment-channels:hover .badge-pill,html.light .label.label-amm:hover .badge-pill,html.light .label.label-アカウント:hover .badge-pill,html.light .label.label-payment-channel:hover .badge-pill,html.light .label.label-use-infrastructure:hover .badge-pill,html.light .label.label-use-security:hover .badge-pill,html.light .label.chip-indigo:hover .badge-pill{color:#b480ff;background-color:#20004c}.label.label-blockchain,.label.label-xrp,.label.label-ブロックチェーン,.label.label-non-fungible-tokens-nfts,.label.label-use-nfts,.label.chip-green{background-color:#145c35;color:#84f0b6}.label.label-blockchain .badge-pill,.label.label-xrp .badge-pill,.label.label-ブロックチェーン .badge-pill,.label.label-non-fungible-tokens-nfts .badge-pill,.label.label-use-nfts .badge-pill,.label.chip-green .badge-pill{background-color:#84f0b6;color:#145c35}.label.label-blockchain:hover,.label.label-xrp:hover,.label.label-ブロックチェーン:hover,.label.label-non-fungible-tokens-nfts:hover,.label.label-use-nfts:hover,.label.chip-green:hover{background-color:#1e8a50;color:#adf5ce}.label.label-blockchain:hover .badge-pill,.label.label-xrp:hover .badge-pill,.label.label-ブロックチェーン:hover .badge-pill,.label.label-non-fungible-tokens-nfts:hover .badge-pill,.label.label-use-nfts:hover .badge-pill,.label.chip-green:hover .badge-pill{background-color:#adf5ce;color:#1e8a50}html.light .label.label-blockchain,html.light .label.label-xrp,html.light .label.label-ブロックチェーン,html.light .label.label-non-fungible-tokens-nfts,html.light .label.label-use-nfts,html.light .label.chip-green{background-color:#adf5ce;color:#145c35}html.light .label.label-blockchain .badge-pill,html.light .label.label-xrp .badge-pill,html.light .label.label-ブロックチェーン .badge-pill,html.light .label.label-non-fungible-tokens-nfts .badge-pill,html.light .label.label-use-nfts .badge-pill,html.light .label.chip-green .badge-pill{color:#adf5ce;background-color:#145c35}html.light .label.label-blockchain:hover,html.light .label.label-xrp:hover,html.light .label.label-ブロックチェーン:hover,html.light .label.label-non-fungible-tokens-nfts:hover,html.light .label.label-use-nfts:hover,html.light .label.chip-green:hover{background-color:#84f0b6;color:#000}html.light .label.label-blockchain:hover .badge-pill,html.light .label.label-xrp:hover .badge-pill,html.light .label.label-ブロックチェーン:hover .badge-pill,html.light .label.label-non-fungible-tokens-nfts:hover .badge-pill,html.light .label.label-use-nfts:hover .badge-pill,html.light .label.chip-green:hover .badge-pill{color:#84f0b6;background-color:#000}.label.label-checks,.label.label-core-server,.label.label-コアサーバ,.label.label-use-interoperability,.label.label-use-web_monetization,.label.chip-purple{background-color:#40004c;color:#ea80ff}.label.label-checks .badge-pill,.label.label-core-server .badge-pill,.label.label-コアサーバ .badge-pill,.label.label-use-interoperability .badge-pill,.label.label-use-web_monetization .badge-pill,.label.chip-purple .badge-pill{background-color:#ea80ff;color:#40004c}.label.label-checks:hover,.label.label-core-server:hover,.label.label-コアサーバ:hover,.label.label-use-interoperability:hover,.label.label-use-web_monetization:hover,.label.chip-purple:hover{background-color:#6b0080;color:#f2b2ff}.label.label-checks:hover .badge-pill,.label.label-core-server:hover .badge-pill,.label.label-コアサーバ:hover .badge-pill,.label.label-use-interoperability:hover .badge-pill,.label.label-use-web_monetization:hover .badge-pill,.label.chip-purple:hover .badge-pill{background-color:#f2b2ff;color:#6b0080}html.light .label.label-checks,html.light .label.label-core-server,html.light .label.label-コアサーバ,html.light .label.label-use-interoperability,html.light .label.label-use-web_monetization,html.light .label.chip-purple{background-color:#f2b2ff;color:#6b0080}html.light .label.label-checks .badge-pill,html.light .label.label-core-server .badge-pill,html.light .label.label-コアサーバ .badge-pill,html.light .label.label-use-interoperability .badge-pill,html.light .label.label-use-web_monetization .badge-pill,html.light .label.chip-purple .badge-pill{color:#f2b2ff;background-color:#6b0080}html.light .label.label-checks:hover,html.light .label.label-core-server:hover,html.light .label.label-コアサーバ:hover,html.light .label.label-use-interoperability:hover,html.light .label.label-use-web_monetization:hover,html.light .label.chip-purple:hover{background-color:#ea80ff;color:#40004c}html.light .label.label-checks:hover .badge-pill,html.light .label.label-core-server:hover .badge-pill,html.light .label.label-コアサーバ:hover .badge-pill,html.light .label.label-use-interoperability:hover .badge-pill,html.light .label.label-use-web_monetization:hover .badge-pill,html.light .label.chip-purple:hover .badge-pill{color:#ea80ff;background-color:#40004c}.label.label-cross-currency,.label.label-security,.label.label-クロスカレンシー,.label.label-セキュリティ,.label.label-use-gaming,.label.label-use-defi,.label.chip-yellow{background-color:#4b4c00;color:#fcff80}.label.label-cross-currency .badge-pill,.label.label-security .badge-pill,.label.label-クロスカレンシー .badge-pill,.label.label-セキュリティ .badge-pill,.label.label-use-gaming .badge-pill,.label.label-use-defi .badge-pill,.label.chip-yellow .badge-pill{background-color:#fcff80;color:#4b4c00}.label.label-cross-currency:hover,.label.label-security:hover,.label.label-クロスカレンシー:hover,.label.label-セキュリティ:hover,.label.label-use-gaming:hover,.label.label-use-defi:hover,.label.chip-yellow:hover{background-color:#7d8000;color:#fdffb2}.label.label-cross-currency:hover .badge-pill,.label.label-security:hover .badge-pill,.label.label-クロスカレンシー:hover .badge-pill,.label.label-セキュリティ:hover .badge-pill,.label.label-use-gaming:hover .badge-pill,.label.label-use-defi:hover .badge-pill,.label.chip-yellow:hover .badge-pill{background-color:#fdffb2;color:#7d8000}html.light .label.label-cross-currency,html.light .label.label-security,html.light .label.label-クロスカレンシー,html.light .label.label-セキュリティ,html.light .label.label-use-gaming,html.light .label.label-use-defi,html.light .label.chip-yellow{background-color:#fdffb2;color:#7d8000}html.light .label.label-cross-currency .badge-pill,html.light .label.label-security .badge-pill,html.light .label.label-クロスカレンシー .badge-pill,html.light .label.label-セキュリティ .badge-pill,html.light .label.label-use-gaming .badge-pill,html.light .label.label-use-defi .badge-pill,html.light .label.chip-yellow .badge-pill{color:#fdffb2;background-color:#7d8000}html.light .label.label-cross-currency:hover,html.light .label.label-security:hover,html.light .label.label-クロスカレンシー:hover,html.light .label.label-セキュリティ:hover,html.light .label.label-use-gaming:hover,html.light .label.label-use-defi:hover,html.light .label.chip-yellow:hover{background-color:#fcff80;color:#4b4c00}html.light .label.label-cross-currency:hover .badge-pill,html.light .label.label-security:hover .badge-pill,html.light .label.label-クロスカレンシー:hover .badge-pill,html.light .label.label-セキュリティ:hover .badge-pill,html.light .label.label-use-gaming:hover .badge-pill,html.light .label.label-use-defi:hover .badge-pill,html.light .label.chip-yellow:hover .badge-pill{color:#fcff80;background-color:#4b4c00}.label.label-decentralized-exchange,.label.label-smart-contracts,.label.label-transaction-sending,.label.label-分散型取引所,.label.label-スマートコントラクト,.label.label-トランザクション送信,.label.label-use-developer_tooling,.label.label-use-payments,.label.chip-blue{background-color:#002e4c;color:#80ccff}.label.label-decentralized-exchange .badge-pill,.label.label-smart-contracts .badge-pill,.label.label-transaction-sending .badge-pill,.label.label-分散型取引所 .badge-pill,.label.label-スマートコントラクト .badge-pill,.label.label-トランザクション送信 .badge-pill,.label.label-use-developer_tooling .badge-pill,.label.label-use-payments .badge-pill,.label.chip-blue .badge-pill{background-color:#80ccff;color:#002e4c}.label.label-decentralized-exchange:hover,.label.label-smart-contracts:hover,.label.label-transaction-sending:hover,.label.label-分散型取引所:hover,.label.label-スマートコントラクト:hover,.label.label-トランザクション送信:hover,.label.label-use-developer_tooling:hover,.label.label-use-payments:hover,.label.chip-blue:hover{background-color:#004d80;color:#b2e0ff}.label.label-decentralized-exchange:hover .badge-pill,.label.label-smart-contracts:hover .badge-pill,.label.label-transaction-sending:hover .badge-pill,.label.label-分散型取引所:hover .badge-pill,.label.label-スマートコントラクト:hover .badge-pill,.label.label-トランザクション送信:hover .badge-pill,.label.label-use-developer_tooling:hover .badge-pill,.label.label-use-payments:hover .badge-pill,.label.chip-blue:hover .badge-pill{background-color:#b2e0ff;color:#004d80}html.light .label.label-decentralized-exchange,html.light .label.label-smart-contracts,html.light .label.label-transaction-sending,html.light .label.label-分散型取引所,html.light .label.label-スマートコントラクト,html.light .label.label-トランザクション送信,html.light .label.label-use-developer_tooling,html.light .label.label-use-payments,html.light .label.chip-blue{background-color:#b2e0ff;color:#004d80}html.light .label.label-decentralized-exchange .badge-pill,html.light .label.label-smart-contracts .badge-pill,html.light .label.label-transaction-sending .badge-pill,html.light .label.label-分散型取引所 .badge-pill,html.light .label.label-スマートコントラクト .badge-pill,html.light .label.label-トランザクション送信 .badge-pill,html.light .label.label-use-developer_tooling .badge-pill,html.light .label.label-use-payments .badge-pill,html.light .label.chip-blue .badge-pill{color:#b2e0ff;background-color:#004d80}html.light .label.label-decentralized-exchange:hover,html.light .label.label-smart-contracts:hover,html.light .label.label-transaction-sending:hover,html.light .label.label-分散型取引所:hover,html.light .label.label-スマートコントラクト:hover,html.light .label.label-トランザクション送信:hover,html.light .label.label-use-developer_tooling:hover,html.light .label.label-use-payments:hover,html.light .label.chip-blue:hover{background-color:#80ccff;color:#002e4c}html.light .label.label-decentralized-exchange:hover .badge-pill,html.light .label.label-smart-contracts:hover .badge-pill,html.light .label.label-transaction-sending:hover .badge-pill,html.light .label.label-分散型取引所:hover .badge-pill,html.light .label.label-スマートコントラクト:hover .badge-pill,html.light .label.label-トランザクション送信:hover .badge-pill,html.light .label.label-use-developer_tooling:hover .badge-pill,html.light .label.label-use-payments:hover .badge-pill,html.light .label.chip-blue:hover .badge-pill{color:#80ccff;background-color:#002e4c}.label.label-escrow,.label.label-tokens,.label.label-development,.label.label-トークン,.label.label-開発,.label.label-use-wallet,.label.label-use-sustainability,.label.chip-orange{background-color:#4c1a00;color:#ffaa80}.label.label-escrow .badge-pill,.label.label-tokens .badge-pill,.label.label-development .badge-pill,.label.label-トークン .badge-pill,.label.label-開発 .badge-pill,.label.label-use-wallet .badge-pill,.label.label-use-sustainability .badge-pill,.label.chip-orange .badge-pill{background-color:#ffaa80;color:#4c1a00}.label.label-escrow:hover,.label.label-tokens:hover,.label.label-development:hover,.label.label-トークン:hover,.label.label-開発:hover,.label.label-use-wallet:hover,.label.label-use-sustainability:hover,.label.chip-orange:hover{background-color:#802b00;color:#ffccb2}.label.label-escrow:hover .badge-pill,.label.label-tokens:hover .badge-pill,.label.label-development:hover .badge-pill,.label.label-トークン:hover .badge-pill,.label.label-開発:hover .badge-pill,.label.label-use-wallet:hover .badge-pill,.label.label-use-sustainability:hover .badge-pill,.label.chip-orange:hover .badge-pill{background-color:#ffccb2;color:#802b00}html.light .label.label-escrow,html.light .label.label-tokens,html.light .label.label-development,html.light .label.label-トークン,html.light .label.label-開発,html.light .label.label-use-wallet,html.light .label.label-use-sustainability,html.light .label.chip-orange{background-color:#ffccb2;color:#802b00}html.light .label.label-escrow .badge-pill,html.light .label.label-tokens .badge-pill,html.light .label.label-development .badge-pill,html.light .label.label-トークン .badge-pill,html.light .label.label-開発 .badge-pill,html.light .label.label-use-wallet .badge-pill,html.light .label.label-use-sustainability .badge-pill,html.light .label.chip-orange .badge-pill{color:#ffccb2;background-color:#802b00}html.light .label.label-escrow:hover,html.light .label.label-tokens:hover,html.light .label.label-development:hover,html.light .label.label-トークン:hover,html.light .label.label-開発:hover,html.light .label.label-use-wallet:hover,html.light .label.label-use-sustainability:hover,html.light .label.chip-orange:hover{background-color:#ffaa80;color:#4c1a00}html.light .label.label-escrow:hover .badge-pill,html.light .label.label-tokens:hover .badge-pill,html.light .label.label-development:hover .badge-pill,html.light .label.label-トークン:hover .badge-pill,html.light .label.label-開発:hover .badge-pill,html.light .label.label-use-wallet:hover .badge-pill,html.light .label.label-use-sustainability:hover .badge-pill,html.light .label.chip-orange:hover .badge-pill{color:#ffaa80;background-color:#4c1a00}.label.label-fees,.label.label-payments,.label.label-data-retention,.label.label-手数料,.label.label-支払い,.label.label-データ保持,.label.label-use-exchanges,.label.label-use-custody,.label.chip-magenta{background-color:#4c0026;color:#ff80bf}.label.label-fees .badge-pill,.label.label-payments .badge-pill,.label.label-data-retention .badge-pill,.label.label-手数料 .badge-pill,.label.label-支払い .badge-pill,.label.label-データ保持 .badge-pill,.label.label-use-exchanges .badge-pill,.label.label-use-custody .badge-pill,.label.chip-magenta .badge-pill{background-color:#ff80bf;color:#4c0026}.label.label-fees:hover,.label.label-payments:hover,.label.label-data-retention:hover,.label.label-手数料:hover,.label.label-支払い:hover,.label.label-データ保持:hover,.label.label-use-exchanges:hover,.label.label-use-custody:hover,.label.chip-magenta:hover{background-color:#80003f;color:#ffb2d8}.label.label-fees:hover .badge-pill,.label.label-payments:hover .badge-pill,.label.label-data-retention:hover .badge-pill,.label.label-手数料:hover .badge-pill,.label.label-支払い:hover .badge-pill,.label.label-データ保持:hover .badge-pill,.label.label-use-exchanges:hover .badge-pill,.label.label-use-custody:hover .badge-pill,.label.chip-magenta:hover .badge-pill{background-color:#ffb2d8;color:#80003f}html.light .label.label-fees,html.light .label.label-payments,html.light .label.label-data-retention,html.light .label.label-手数料,html.light .label.label-支払い,html.light .label.label-データ保持,html.light .label.label-use-exchanges,html.light .label.label-use-custody,html.light .label.chip-magenta{background-color:#ffb2d8;color:#80003f}html.light .label.label-fees .badge-pill,html.light .label.label-payments .badge-pill,html.light .label.label-data-retention .badge-pill,html.light .label.label-手数料 .badge-pill,html.light .label.label-支払い .badge-pill,html.light .label.label-データ保持 .badge-pill,html.light .label.label-use-exchanges .badge-pill,html.light .label.label-use-custody .badge-pill,html.light .label.chip-magenta .badge-pill{color:#ffb2d8;background-color:#80003f}html.light .label.label-fees:hover,html.light .label.label-payments:hover,html.light .label.label-data-retention:hover,html.light .label.label-手数料:hover,html.light .label.label-支払い:hover,html.light .label.label-データ保持:hover,html.light .label.label-use-exchanges:hover,html.light .label.label-use-custody:hover,html.light .label.chip-magenta:hover{background-color:#ff80bf;color:#4c0026}html.light .label.label-fees:hover .badge-pill,html.light .label.label-payments:hover .badge-pill,html.light .label.label-data-retention:hover .badge-pill,html.light .label.label-手数料:hover .badge-pill,html.light .label.label-支払い:hover .badge-pill,html.light .label.label-データ保持:hover .badge-pill,html.light .label.label-use-exchanges:hover .badge-pill,html.light .label.label-use-custody:hover .badge-pill,html.light .label.chip-magenta:hover .badge-pill{color:#ff80bf;background-color:#4c0026}.tag-cloud .list-inline-item{margin-top:1.5rem}.command-list-wrapper{position:sticky;top:calc(var(--navbar-height) + var(--toc-offset-top));max-height:calc(100vh - var(--navbar-height) - var(--toc-offset-top));overflow-y:auto;width:var(--toc-width)}#tx-sender-history .list-group-item{font-size:small;color:#454549}.response-metadata .timestamp{color:#454549}.throbber{width:24px;height:24px}#connection-status .card-body{border-left:0}#connection-status-item.active{background-color:#32e685;border-color:#32e685}.api-input-area .btn-group>.send-request.btn{border-bottom-right-radius:4px;border-top-right-radius:4px}#tx-sender-history ul{overflow:auto;height:220px;border:1px solid #e0e0e1}.progress small{margin-top:.5rem}.page-tx-sender .input-group .form-control,.interactive-block-ui .input-group .form-control{flex:1 1 20%;height:auto}.bootstrap-growl{max-width:90vw !important;overflow:hidden}.list-group-item-danger,#tx-sender-history .list-group-item-danger{background-color:#ff80bf;color:#000}.list-group-item-danger a,#tx-sender-history .list-group-item-danger a{color:#000}.list-group-item-danger a:hover,#tx-sender-history .list-group-item-danger a:hover{color:#000;text-decoration:underline}.rpc-tool .main h1::before,.rpc-tool .main h2::before,.rpc-tool .main h3::before{display:none}@media print{.multicode>div{display:block !important}.multicode>em,.multicode>p>em{display:block !important;page-break-after:avoid}.multicode>p{display:block !important}.code_toggler{display:none}pre{white-space:pre-wrap;max-height:none !important;overflow:visible;page-break-inside:auto;word-wrap:break-word}pre code{white-space:pre-wrap !important;color:#22252b !important}code{white-space:pre-wrap !important;color:#22252b !important}.codehilite .n,.codehilite .na,.codehilite .nb,.codehilite .nc,.codehilite .nd,.codehilite .ne,.codehilite .nf,.codehilite .ni,.codehilite .nl,.codehilite .nn,.codehilite .nt,.codehilite .nv,.codehilite .nx,.codehilite .bp,.codehilite .fm,.codehilite .py{color:#22252b}article a[title=Source]{float:none}header,footer,aside{display:none !important}.navbar{display:none !important}article,#main_content_body{position:static;display:block;width:auto;height:auto;color:#000 !important;max-width:100%;overflow:visible !important}body{overflow:visible;background:#fff}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:#000}.interactive-block{display:none}.container{margin-top:1rem !important}}#home-purple{position:absolute;left:0;top:-400px}#home-green{position:absolute;right:-3px;top:60px}.sidelinks:hover{color:#9a52ff}.sidelinks.active{color:#9a52ff;font-weight:bold}.page-home #home-hero-graphic{content:url("../img/home-hero.svg");margin-left:auto;width:856px;margin-right:auto;margin-bottom:24px;max-width:100%}.page-home #benefits-list #public{content:url("../img/icons/public.svg")}.page-home #benefits-list #streamlined{content:url("../img/icons/streamlined.svg")}.page-home #benefits-list #performance{content:url("../img/icons/performance.svg")}.page-home #benefits-list #low-cost{content:url("../img/icons/low-cost.svg")}.page-home #benefits-list #community{content:url("../img/icons/community.svg")}.page-home #benefits-list #reliability{content:url("../img/icons/reliability.svg")}.page-home #advanced-features .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-pink-purple.svg")}.page-home #advanced-features .card:nth-child(2) .card-footer{background-image:url("../img/cards/3col-neutral-blue.svg")}.page-home #advanced-features .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-light-green.svg")}.page-home #advanced-features .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-orange.svg")}.page-home #advanced-features .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-purple-blue-2.svg")}.page-home #get-started .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-orange-yellow.svg")}.page-home #get-started .card:nth-child(2) .card-footer{background-image:url("../img/cards/3col-magenta-orange.svg")}.page-home #get-started .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-green.svg")}.page-home #get-started .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-light-blue.svg")}.page-home #get-started .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-green-blue.svg")}.cta{position:absolute}.cta-top-left{top:0;left:0}.cta-bottom-right{bottom:0;right:0}.landing-bg{opacity:.6}@media(min-width: 768px){.landing-bg{opacity:1}}.landing-builtin-bg::before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background-repeat:no-repeat;background-position-x:left;background-position-y:top;opacity:.6}@media(min-width: 768px){.landing-builtin-bg::before{opacity:1}}#xrp-overview-blue{position:absolute;top:0;left:0}@media(max-width: 767.98px){#xrp-mark-overview{height:40px;margin-top:16px}}#wallets #wallet-ledger{content:url("../img/wallets/ledger.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-secalot{content:url("../img/wallets/secalot.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-trezor{content:url("../img/wallets/trezor.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-xumm{content:url("../img/wallets/xumm.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-trust{content:url("../img/wallets/trust.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-gatehub{content:url("../img/wallets/gatehub.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-towo{content:url("../img/wallets/towo.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-keystone{content:url("../img/wallets/keystone.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-dcent{content:url("../img/wallets/dcent.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-coin{content:url("../img/wallets/coin.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#top-exchanges #exch-bitstamp{content:url("../img/exchanges/bitstamp.svg")}#top-exchanges #exch-kraken{content:url("../img/exchanges/kraken.svg")}#top-exchanges #exch-cex-io{content:url("../img/exchanges/cex-io.svg")}#top-exchanges #exch-liquid{content:url("../img/exchanges/liquid.svg")}#top-exchanges #exch-lmax{content:url("../img/exchanges/lmax.svg")}#top-exchanges #exch-bitfinex{content:url("../img/exchanges/bitfinex.svg")}#top-exchanges #exch-etoro{content:url("../img/exchanges/etoro.svg")}#top-exchanges #exch-bittrex{content:url("../img/exchanges/bittrex.png")}#top-exchanges #exch-currency-com{content:url("../img/exchanges/currency-com.png")}#top-exchanges #exch-ftx{content:url("../img/exchanges/ftx.png")}#xrpl-overview-purple{position:absolute;top:40px;left:0}@media(max-width: 767.98px){#xrpl-overview-purple{top:0;left:-20vw}}#xrpl-overview-orange{position:absolute;top:80px;right:-4px}#use-cases-orange{position:absolute;top:-480px;right:-4px}#validator-graphic{content:url(../img/validators.svg)}.page-uses .container-new{padding-left:16px;padding-right:16px}.page-uses h1{font-size:42px}.page-uses::before{transform:scaleX(-1);background-image:url(../img/backgrounds/use-cases-blue.svg)}.page-uses .card-grid{grid-gap:8px}.page-uses .card-grid img{max-height:40px}.page-uses .modal{padding:0}.page-uses .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#000;background-clip:padding-box;border:none;border-radius:0;box-shadow:none;outline:none;background:#111112}.page-uses .modal-header{border:none;background:#111112;box-shadow:0px 1px 2px #000}.page-uses .modal-header .cancel .chevron{transform:rotate(90deg)}.page-uses .modal-header .apply .chevron{transform:rotate(-90deg)}.page-uses .modal-footer{border:none;background:#111112;box-shadow:0px -1px 2px #000;align-items:unset;padding:.75rem;flex-direction:column;flex-wrap:wrap}.page-uses .card-title{margin-bottom:.5rem;line-height:26px}.page-uses .card-uses{padding:16px;margin:0;text-decoration:none;transition:all .35s ease-out}.page-uses .card-uses:hover{text-decoration:none;color:#e0e0e1;transform:translateY(-16px);text-decoration:none}.page-uses .card-body{background:#232325;border-radius:8px;height:100%;padding:32px;margin:0}.page-uses .page-events .label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.page-uses .category-header{font-weight:bold;color:#c1c1c2}.page-uses .light .category-checkbox label{color:#fff}.page-uses .category-checkbox{display:flex;align-items:center}.page-uses .category-checkbox label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.page-uses .category_count{margin-left:8px;padding:2px 16px;width:24px;height:16px;background:#350080;border-radius:100px;font-weight:600;font-size:12px;line-height:16px;color:#b480ff}.page-uses .category_sidebar{position:sticky;top:10px}.page-uses #infrastructure{content:url("../img/icons/usecases/ic_infrastructure.png")}.page-uses #developer_tooling{content:url("../img/icons/usecases/ic_developer_tooling.png")}.page-uses #interoperability{content:url("../img/icons/usecases/ic_interoperability.png")}.page-uses #wallet{content:url("../img/icons/usecases/ic_wallet.png")}.page-uses #nfts{content:url("../img/icons/usecases/ic_nfts.png")}.page-uses #exchanges{content:url("../img/icons/usecases/ic_exchanges.png")}.page-uses #gaming{content:url("../img/icons/usecases/ic_gaming.png")}.page-uses #security{content:url("../img/icons/usecases/ic_security.png")}.page-uses #payments{content:url("../img/icons/usecases/ic_payments.png")}.page-uses #web_monetization{content:url("../img/icons/usecases/ic_web_monetization.png")}.page-uses #sustainability{content:url("../img/icons/usecases/ic_sustainability.png")}.page-uses #cbdc{content:url("../img/icons/usecases/ic_cbdc.png")}.page-uses #other{content:url("../img/icons/usecases/ic_other.png")}.page-uses #carbon_markets{content:url("../img/icons/usecases/ic_carbon_markets.png")}.page-uses #custody{content:url("../img/icons/usecases/ic_custody.png")}.page-uses #defi{content:url("../img/icons/usecases/ic_defi.png")}.page-uses #use_case_companies_list #bithomp .biz-logo{max-height:40px;content:url("../img/uses/bithomp.svg")}.page-uses #use_case_companies_list #onthedex .biz-logo{max-height:40px;content:url("../img/uses/onthedex.svg")}.page-uses #use_case_companies_list #gatehub .biz-logo{max-height:40px;content:url("../img/uses/gatehub.svg")}.page-uses #use_case_companies_list #towo-labs .biz-logo{max-height:40px;content:url("../img/uses/towo-labs.svg")}.page-uses #use_case_companies_list #xrp-toolkit .biz-logo{max-height:40px;content:url("../img/uses/xrp-toolkit.svg")}.page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo{max-height:40px;content:url("../img/uses/xrpl-org-ledger-explorer.svg")}.page-uses #use_case_companies_list #xrpl-rosetta .biz-logo{max-height:40px;content:url("../img/uses/xrpl-rosetta.svg")}.page-uses #use_case_companies_list #xrpscan .biz-logo{max-height:40px;content:url("../img/uses/xrpscan.svg")}.page-uses #use_case_companies_list #evernode .biz-logo{max-height:40px;content:url("../img/uses/evernode.svg")}.page-uses #use_case_companies_list #cryptum .biz-logo{max-height:40px;content:url("../img/uses/cryptum.svg")}.page-uses #use_case_companies_list #x-tokenize .biz-logo{max-height:40px;content:url("../img/uses/x-tokenize.svg")}.page-uses #use_case_companies_list #multichain .biz-logo{max-height:40px;content:url("../img/uses/multichain.svg")}.page-uses #use_case_companies_list #xumm-wallet .biz-logo{max-height:40px;content:url("../img/uses/xumm-wallet.svg")}.page-uses #use_case_companies_list #gem-wallet .biz-logo{max-height:40px;content:url("../img/uses/gem-wallet.svg")}.page-uses #use_case_companies_list #aesthetes .biz-logo{max-height:40px;content:url("../img/uses/aesthetes.svg")}.page-uses #use_case_companies_list #audiotarky .biz-logo{max-height:40px;content:url("../img/uses/audiotarky.svg")}.page-uses #use_case_companies_list #xrp-cafe .biz-logo{max-height:40px;content:url("../img/uses/xrp-cafe.svg")}.page-uses #use_case_companies_list #nft-master .biz-logo{max-height:40px;content:url("../img/uses/nft-master.svg")}.page-uses #use_case_companies_list #onxrp .biz-logo{max-height:40px;content:url("../img/uses/onxrp.svg")}.page-uses #use_case_companies_list #peerkat .biz-logo{max-height:40px;content:url("../img/uses/peerkat.svg")}.page-uses #use_case_companies_list #sologenic-nft .biz-logo{max-height:40px;content:url("../img/uses/sologenic-nft.svg")}.page-uses #use_case_companies_list #sologenic-dex .biz-logo{max-height:40px;content:url("../img/uses/sologenic-dex.svg")}.page-uses #use_case_companies_list #xp-market .biz-logo{max-height:40px;content:url("../img/uses/xp-market.svg")}.page-uses #use_case_companies_list #ledger-city .biz-logo{max-height:40px;content:url("../img/uses/ledger-city.svg")}.page-uses #use_case_companies_list #forte .biz-logo{max-height:40px;content:url("../img/uses/forte.svg")}.page-uses #use_case_companies_list #anchain-ai .biz-logo{max-height:40px;content:url("../img/uses/anchain-ai.svg")}.page-uses #use_case_companies_list #coil .biz-logo{max-height:40px;content:url("../img/uses/coil.svg")}.page-uses #use_case_companies_list #carbonland-trust .biz-logo{max-height:40px;content:url("../img/uses/carbonland-trust.svg")}.page-uses #use_case_companies_list #casino-coin .biz-logo{max-height:40px;content:url("../img/uses/casino-coin.svg")}.page-uses #use_case_companies_list #bitgo .biz-logo{max-height:40px;content:url("../img/uses/bitgo.svg")}.page-uses #use_case_companies_list #bitpay .biz-logo{max-height:40px;content:url("../img/uses/bitpay.svg")}.page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo{max-height:40px;content:url("../img/uses/ripples-on-demand-liquidity.svg")}.page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo{max-height:40px;content:url("../img/uses/ripples-cbdc-platform.svg")}.page-uses #use_case_companies_list #momento .biz-logo{max-height:40px;content:url("../img/uses/momento.svg")}.page-uses #use_case_companies_list #Crossmark .biz-logo{max-height:40px;content:url("../img/uses/Crossmark.png")}.page-uses #use_case_companies_list #Edge .biz-logo{max-height:40px;content:url("../img/uses/Edge.png")}@media(min-width: 992px){.page-uses h1{font-size:62px}.page-uses .container-new{padding-left:64px;padding-right:64px}.page-uses .card-grid img{max-height:48px}.page-uses .card-grid{grid-gap:48px}.page-uses .card-uses{padding:24px}}#history-orange{position:absolute;top:0;right:-4px}#history-purple{position:absolute;top:-480px;left:-4px}.hidden-section{overflow:hidden;visibility:hidden;height:0}.hidden-section.show{overflow:auto;visibility:visible;height:auto}#impact-green{position:absolute;top:0;left:-4px;rotate:180deg}#impact-purple{position:absolute;top:100px;right:-4px}#impact-magenta{position:absolute;top:100px;right:-4px}#foundation-magenta{position:absolute;top:0px;left:0px}#foundation-orange{position:absolute;top:40px;right:-4px}.page-impact #map-light{display:none}.page-impact #map-dark{display:block}.page-impact .connect-list #connect-01{content:url("../img/impact/connect-01.svg")}.page-impact .connect-list #connect-02{content:url("../img/impact/connect-02.svg")}.page-impact .connect-list #connect-03{content:url("../img/impact/connect-03.svg")}.page-impact .connect-list #connect-04{content:url("../img/impact/connect-04.svg")}.page-funding .funding-list #funding-01{content:url("../img/funding/funding-01.svg")}.page-funding .funding-list #funding-02{content:url("../img/funding/funding-02.svg")}.page-funding .funding-list #funding-03{content:url("../img/funding/funding-03.svg")}.page-funding .funding-list #funding-04{content:url("../img/funding/funding-04.svg")}.page-funding #funding-orange{position:absolute;top:132px;left:-4px}@media(min-width: 992px){.page-funding .funding-box{min-height:200px}}.page-ambassadors #benefits-list #benefits-01{content:url("../img/ambassadors/benefits-01.svg")}.page-ambassadors #benefits-list #benefits-02{content:url("../img/ambassadors/benefits-02.svg")}.page-ambassadors #benefits-list #benefits-03{content:url("../img/ambassadors/benefits-03.svg")}.page-ambassadors #benefits-list #benefits-04{content:url("../img/ambassadors/benefits-04.svg")}.page-ambassadors #benefits-list #benefits-05{content:url("../img/ambassadors/benefits-05.svg")}.page-ambassadors #benefits-list #benefits-06{content:url("../img/ambassadors/benefits-06.svg")}.page-ambassadors #eligibility-list #eligibility-01{content:url("../img/ambassadors/eligibility-01.svg")}.page-ambassadors #eligibility-list #eligibility-02{content:url("../img/ambassadors/eligibility-02.svg")}.page-ambassadors #eligibility-list #eligibility-03{content:url("../img/ambassadors/eligibility-03.svg")}.page-ambassadors #eligibility-list #eligibility-04{content:url("../img/ambassadors/eligibility-04.svg")}.page-ambassadors #eligibility-list #eligibility-05{content:url("../img/ambassadors/eligibility-05.svg")}.page-ambassadors .btn{padding:.75rem}.page-ambassadors #container-scroll{height:160px;position:relative;overflow:hidden;margin-top:80px;margin-bottom:64px}.page-ambassadors .photobanner{position:absolute;top:0px;left:0px;overflow:hidden;white-space:nowrap;animation:bannermove 40s linear infinite}.page-ambassadors .photobanner-bottom{top:112px}.page-ambassadors .photobanner img{margin:0 .5em}@keyframes bannermove{0%{transform:translate(0, 0)}100%{transform:translate(-50%, 0)}}.page-ambassadors #carouselSlidesOnly{height:392px;margin-bottom:40px}@media(min-width: 992px){.page-ambassadors #carouselSlidesOnly{height:320px;margin-bottom:104px}}.page-ambassadors h6{font-size:1.25rem}.page-ambassadors .btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);vertical-align:middle;padding-left:8px;transition:transform .3s ease-out}.page-ambassadors .btn-arrow:hover{text-decoration:none;background:none !important;border:none}.page-ambassadors .btn-arrow:hover::after{background-position:left 4px bottom 4px;transform:translateX(4px)}.autoscroll-content{animation:autoscroll 15s linear infinite;white-space:nowrap;overflow:hidden;max-width:300px}#community-magenta{position:absolute;top:0px;left:0px}#community-purple{position:absolute;top:160px;right:0px}.page-events #event-hero-image{height:100%;min-height:209px;background:url(../img/events/event-hero1@2x.png);background-size:contain;background-repeat:no-repeat;background-position:center}.page-events #events-orange{position:absolute;top:0px;right:0px}.page-events .event-hero{color:#f5f5f7}.page-events .event-hero p{font-weight:500;font-size:24px;line-height:32px}.page-events .event-save-date{color:#fff;font-weight:bold;font-size:20px;line-height:26px}.page-events .event-small-gray{color:#e0e0e1}.page-events .btn{padding:.75rem}.page-events .event-card{max-width:311px;margin:32px auto;transition:all .35s ease-out;position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-clip:border-box;background-color:#232325;box-shadow:0px 5px 40px #000;border:1px solid rgba(0,0,0,.125);border-radius:8px;font-size:16px;line-height:24px;color:#e0e0e1}.page-events .event-card .event-card-header{position:relative;height:176px;background-size:contain !important;width:100%;border-radius:8px 8px 0 0}.page-events .event-card .event-card-title{position:absolute;bottom:32px;padding:0 32px;color:#f5f5f7;font-weight:bold;font-size:20px;line-height:28px}.page-events .event-card .event-card-body{padding:32px}.page-events .event-card .event-card-footer{padding:0 32px 32px}.page-events .event-card .event-card-footer .icon::before{height:24px;width:24px;content:"";margin-right:8px;background-size:contain;background-repeat:no-repeat}.page-events .event-card .icon-date::before{background:url(../img/events/event-date.svg)}.page-events .event-card .icon-location::before{background:url(../img/events/event-location.svg)}@media(min-width: 992px){.page-events .event-card{max-width:347px;margin:32px}.page-events .event-card-header{height:197px !important}}.page-events a.event-card:hover{transform:translateY(-16px);text-decoration:none}.page-events label{margin:0;padding-left:8px;color:#fff}.page-events .events-filter h6{font-size:16px}.page-events .events-filter{height:20px;width:20px}.page-events .events-filter[type=checkbox]::before{position:relative;display:block;width:20px;height:20px;content:"";background:#111112;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.page-events .events-filter[type=checkbox]::after{position:relative;display:block;top:-20px;width:20px;height:20px;content:"";background-repeat:no-repeat;background-position:center;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.page-events .events-filter[type=checkbox]:checked::before{background:#111112;border:none;border-radius:0}.page-events .events-filter[type=checkbox]:checked::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;background-color:#7919ff;border-width:2px;border-style:solid;border-color:#7919ff;border-radius:4px}.page-events .events-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}.page-events .events-filter[type=checkbox]:not(:disabled):hover::before{background:#111112;border:none;border-radius:0}.page-events .events-filter[type=checkbox]:not(:disabled):hover::after{background:#111112;border:none;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}#find-us-on-platforms .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-light-blue-3.svg)}#find-us-on-platforms .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-purple-blue-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-magenta-3.svg)}#find-us-on-platforms .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-green-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(5) .card-footer{background-image:url(../img/cards/4col-orange-yellow-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(6) .card-footer{background-image:url(../img/cards/4col-blue-purple.svg)}#find-us-on-platforms .card-deck .card:nth-child(7) .card-footer{background-image:url(../img/cards/4col-yellow-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(8) .card-footer{background-image:url(../img/cards/4col-orange-2.svg)}#find-us-on-platforms .card-deck .card{margin-bottom:2.5rem}.page-faq::before{background-image:url(../img/backgrounds/faq-bg.svg)}@media(min-width: 768px){.page-faq::before{background-size:contain}}@media(min-width: 992px){.page-faq article{max-width:704px;margin-left:auto;margin-right:auto}}.page-faq article h6:first-of-type{color:#32e685;margin-bottom:1rem;margin-top:2.5rem;font-size:1.25rem;line-height:26px;text-align:center}.page-faq article h6:first-of-type .hover_anchor{display:none}@media(min-width: 992px){.page-faq article h6:first-of-type{margin-top:6.5rem}}.page-faq article h1:first-of-type{font-size:2.625rem;line-height:1.2;margin-top:0;margin-bottom:5rem;text-align:center}.page-faq article h1:first-of-type .hover_anchor{display:none}@media(min-width: 992px){.page-faq article h1:first-of-type{font-size:3.875rem;margin-bottom:13rem}}.page-faq h2{margin-top:13rem;font-size:2rem;line-height:2.375rem;text-align:center;font-weight:700}.page-faq .q-wrapper,.mini-faq .q-wrapper{background:#232325;border-radius:4px;padding:2rem;padding-right:3rem;margin-bottom:3.5rem;position:relative;z-index:5;width:100%;transform:translateY(0%)}.page-faq .q-wrapper p a,.mini-faq .q-wrapper p a{text-decoration:none;font-weight:600;color:#9a52ff}.page-faq .q-wrapper p a:hover,.mini-faq .q-wrapper p a:hover{text-decoration:underline}.page-faq .q-wrapper h4,.mini-faq .q-wrapper h4{font-size:1.25rem;line-height:1.625rem;margin-top:0}.page-faq .q-wrapper h4::before,.mini-faq .q-wrapper h4::before{display:block;content:" ";margin-top:-40px;height:40px;visibility:hidden;pointer-events:none}.page-faq .q-wrapper h4>a,.mini-faq .q-wrapper h4>a{text-decoration:none}.page-faq .q-wrapper h4>a:hover,.mini-faq .q-wrapper h4>a:hover{text-decoration:underline;color:#fff}@media(max-width: 991.98px){.page-faq .q-wrapper h4,.mini-faq .q-wrapper h4{font-size:1rem;line-height:1.5rem}}.page-faq .q-wrapper h4 .chevron,.mini-faq .q-wrapper h4 .chevron{position:absolute;top:40px;right:2rem}.page-docs-index::before{background-position-x:right}.page-docs-index .center-search .input-group-text{height:56px;padding:.75rem .75rem .75rem 1rem;line-height:2rem}.page-docs-index .center-search .ds-input{height:56px;padding:.75rem 1rem .75rem .5rem}.page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-green.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-light-blue.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-orange.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-yellow.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-orange-yellow.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-magenta.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-blue-green.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-light-blue-2.svg)}.page-docs-index #docs-hot-topic .longform{margin-top:2.5rem}.page-docs-index #community-heading,.page-community #community-heading{padding-top:25rem;margin-top:0px}@media(max-width: 768px){.page-docs-index #community-heading,.page-community #community-heading{padding-top:31rem}}.page-docs-index #community-heading .hero-title,.page-community #community-heading .hero-title{position:absolute;bottom:0;left:50%;transform:translateX(-50%)}@media(min-width: 992px){.page-docs-index #community-heading,.page-community #community-heading{padding-left:0}.page-docs-index #community-heading .hero-title,.page-community #community-heading .hero-title{min-width:max-content;bottom:-83%}}.page-docs-index #community-heading .parallax,.page-community #community-heading .parallax{position:absolute;-webkit-transition:all .1s ease;-moz-transition:all .1s ease;-ms-transition:all .1s ease;-o-transition:all .1s ease;transition:all .1s ease}.page-docs-index #community-heading .one,.page-community #community-heading .one{top:160px;left:0%;opacity:.4}.page-docs-index #community-heading .two,.page-community #community-heading .two{top:130px;left:56%;height:320px;opacity:.4}.page-docs-index #community-heading .three,.page-community #community-heading .three{top:145px;right:16%;height:67px}.page-docs-index #community-heading .four,.page-community #community-heading .four{top:374px;left:8%;width:107px}.page-docs-index #community-heading .five,.page-community #community-heading .five{top:476px;width:152px;height:102px;right:5%;opacity:.4}.page-docs-index #run-a-network-node .card-deck .card:nth-child(1) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-yellow-2.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(2) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-purple.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(3) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-magenta-2.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-light-green.svg)}.page-docs-index #run-a-network-node,.page-community #run-a-network-node{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #run-a-network-node,.page-community #run-a-network-node{padding-top:104px;padding-bottom:104px}}.page-docs-index #run-a-network-node .text-cards,.page-community #run-a-network-node .text-cards{grid-gap:40px}.page-docs-index #run-a-network-node .text-cards h6::before,.page-community #run-a-network-node .text-cards h6::before{margin-top:0;height:unset}.page-docs-index #run-a-network-node .text-cards a,.page-community #run-a-network-node .text-cards a{font-size:1.25rem;line-height:26px;color:#fff;font-weight:bold}.page-docs-index #run-a-network-node .text-cards a:hover,.page-community #run-a-network-node .text-cards a:hover{text-decoration:none;background:none !important}.page-docs-index #run-a-network-node .text-cards .btn-arrow::after,.page-community #run-a-network-node .text-cards .btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.page-docs-index #xrpl-grants,.page-community #xrpl-grants{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-grants,.page-community #xrpl-grants{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-blog,.page-community #xrpl-blog{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-blog,.page-community #xrpl-blog{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-events,.page-community #xrpl-events{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-events,.page-community #xrpl-events{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-careers,.page-community #xrpl-careers{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-careers,.page-community #xrpl-careers{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-design-assets,.page-community #xrpl-design-assets{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-design-assets,.page-community #xrpl-design-assets{padding-top:104px;padding-bottom:208px}}.page-community #platform-github{content:url("../img/logos/github.svg")}.page-community #platform-twitch{content:url("../img/logos/twitch.svg")}.page-community #platform-stack-overflow{content:url("../img/logos/stack-overflow.svg")}.page-community #platform-twitter{content:url("../img/logos/twitter.svg")}.page-community #platform-discord{content:url("../img/logos/discord.svg")}.page-community #platform-youtube{content:url("../img/logos/youtube.svg")}.page-community #platform-devto{content:url("../img/logos/devto.svg")}.page-references #refs-types .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/3col-orange-2.svg)}.page-references #refs-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/3col-green-2.svg)}.page-references #refs-types .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/3col-magenta.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-light-blue-4.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-blue-green-2.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-yellow-3.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-purple-blue.svg)}.page-dev-tools #xrp-explorer .card-footer{background-image:url("../img/cards/3-col-orange.svg")}.page-dev-tools #bithomp-explorer .card-footer{background-image:url("../img/cards/3-col-light-blue.svg")}.page-dev-tools #xrpscan .card-footer{background-image:url("../img/cards/3-col-pink.svg")}.page-dev-tools #token-list .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}.page-dev-tools #websocket .card-footer{background-image:url("../img/cards/3-col-purple2.svg")}.page-dev-tools #rpc .card-footer{background-image:url("../img/cards/3-col-green.svg")}.page-dev-tools #technical-explorer .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}.page-dev-tools #faucets .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}.page-dev-tools #trasaction-sender .card-footer{background-image:url("../img/cards/3-col-light-blue2.svg")}.page-dev-tools #domain .card-footer{background-image:url("../img/cards/3-col-green-purple.svg")}.page-dev-tools #xrp-ledger .card-footer{background-image:url("../img/cards/3-col-dark-blue.svg")}.page-dev-tools #binary-visualizer .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}.page-dev-tools #token-metadata-lookup .card-footer{background-image:url("../img/cards/3-col-pink-purple.svg")}.page-dev-tools .nav-link{color:#a2a2a4;background-color:#111112;border-top:none;border-left:none;border-right:none;border-bottom-color:#454549}@media(max-width: 767.98px){.page-dev-tools .nav-tabs{display:flex;list-style:none;margin-left:0;padding-left:0;justify-content:space-between}.page-dev-tools .nav-item{display:inline-flex;width:auto;list-style:outside none none}.page-dev-tools .nav-link{display:inline-flex;width:auto;padding:1em 1em}}.page-dev-tools .nav-link.active{border-bottom-color:#9a52ff;color:#fff;font-weight:bold}.page-dev-tools .nav-tabs{border-bottom:1px solid #454549}.page-dev-tools .btn{padding:.75rem}html.light .page-dev-tools .nav-link{background-color:#f5f5f7}html.light .page-dev-tools .nav-link.active{border-bottom-color:#9a52ff;color:#000;font-weight:bold}html.light .page-dev-tools .nav-link{color:#000}html.light .page-dev-tools #trasaction-sender .card-footer{background-image:url("../img/cards/3-col-light-blue-2.svg")}.json-view{display:block;color:#4d4d4d;--json-property:#009033;--json-index:#676dff;--json-number:#676dff;--json-string:#b2762e;--json-boolean:#dc155e;--json-null:#dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover, .json-view .jv-size:hover + .jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy, .json-view--edit){display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0px 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover, .json-view--pair:hover)>:is(.json-view--copy, .json-view--edit){display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer}.json-view .cursor-pointer{cursor:pointer}.json-view_a11y{color:#545454;--json-property:#aa5d00;--json-index:#007299;--json-number:#007299;--json-string:green;--json-boolean:#d91e18;--json-null:#d91e18}.json-view_github{color:#005cc5;--json-property:#005cc5;--json-index:#005cc5;--json-number:#005cc5;--json-string:#032f62;--json-boolean:#005cc5;--json-null:#005cc5}.json-view_vscode{color:#005cc5;--json-property:#0451a5;--json-index:blue;--json-number:blue;--json-string:#a31515;--json-boolean:blue;--json-null:blue}.json-view_atom{color:#383a42;--json-property:#e45649;--json-index:#986801;--json-number:#986801;--json-string:#50a14f;--json-boolean:#0184bc;--json-null:#0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property:#3a9685;--json-index:#ae408b;--json-number:#ae408b;--json-string:#8123a9;--json-boolean:#0184bc;--json-null:#0184bc}.json-view{font-family:"Space Mono",monospace;padding:1em;background:#232325;overflow:hidden;color:#f5f5f7 !important;font-size:14px;letter-spacing:0}.json-view svg{height:11px !important;color:#f5f5f7}.jv-button{color:#ff6719 !important;font-size:14px}.jv-indent{border-left:1px solid #454549;margin:4px}.json-view--boolean{color:#e50071 !important}.json-view--pair{margin:4px}.json-view--property{color:#f5f5f7 !important}.json-view--null,.json-view--undefined{display:inline-block;padding:1px 2px;border-radius:3px;background-color:#454549;color:#f5f5f7 !important;font-size:11px}.json-view--number{color:#84f0b6 !important}.json-view--string{color:#ff6719 !important}.rpc-tool .nav-link{cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:6px 9px}.dev-blog .image-container{transform:translateY(15%);z-index:1}.dev-blog .text-bg{background-color:#232325;padding:60px 40px;width:100%;border-radius:30px}@media(min-width: 992px){.dev-blog .image-container{transform:translateX(15%)}.dev-blog .text-bg{padding:50px 60px}}.dev-blog .line-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.dev-blog #blog-purple{position:absolute;top:0px;left:0px}.dev-blog #card-date{color:#a2a2a4}.dev-blog .category-badge{max-width:180px;border-radius:30px;border:solid 2px;padding:1px;text-align:center;word-wrap:break-word;font-size:13px;font-weight:bold}.dev-blog .post-date{text-decoration:overline solid #32e685 10%}.dev-blog #general-badge{background-color:#343437;color:#fff}.dev-blog #release_notes-badge{background-color:#145c35;color:#32e685}.dev-blog #advisories-badge{background-color:#4c1a00;color:#ff6719}.dev-blog #amendments-badge{background-color:#4b4c00;color:#faff19}.dev-blog #development-badge{background-color:#20004c;color:#7919ff}.dev-blog #developer_reflections-badge{background-color:#002e4c;color:#19a3ff}.dev-blog #gateway_bulletins-badge{background-color:#40004c;color:#d919ff}.dev-blog #features-badge{background-color:#145c35;color:#32e685}.dev-blog #security-badge{background-color:#4c0026;color:#ff198b}.dev-blog #category-list #general{content:url("../img/blog/general.png");max-width:100%;width:100%}.dev-blog #category-list #developer_reflections{content:url("../img/blog/developer_reflections.png");max-width:100%;width:100%}.dev-blog #category-list #amendments{content:url("../img/blog/amendments.png");max-width:100%;width:100%}.dev-blog #category-list #advisories{content:url("../img/blog/advisories.png");max-width:100%;width:100%}.dev-blog #category-list #release_notes{content:url("../img/blog/release_notes.png");max-width:100%;width:100%}.dev-blog #category-list #development{content:url("../img/blog/development.png");max-width:100%;width:100%}.dev-blog #category-list #gateway_bulletins{content:url("../img/blog/gateway_bulletins.png");max-width:100%;width:100%}.dev-blog #category-list #features{content:url("../img/blog/features.png");max-width:100%;width:100%}.dev-blog #category-list #security{content:url("../img/blog/security.png");max-width:100%;width:100%}.dev-blog .category_sidebar{position:sticky;top:10px}.dev-blog .category-checkbox{display:flex;align-items:center}.dev-blog .dropdown{position:relative;display:inline-block}.dev-blog .dropdown-btn{color:#fff;background-color:#232325;border-color:#232325;border-style:solid;border-radius:4px;padding:8px 16px;font-size:16px;cursor:pointer;text-align:start;padding-right:10px}.dev-blog .dropdown-btn img{content:url("../img/icons/chevron-arrow-down.svg");width:10px;height:13px;padding:8px}.dev-blog .dropdown-content{display:flex;align-items:start;background-color:#232325;padding:16px 8px;width:254px;height:auto;border-radius:4px}.dev-blog .category-checkbox label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.dev-blog .category-header{font-weight:normal;width:200px;color:#f5f5f7}.dev-blog label{margin:0;padding-left:8px;color:#fff}.dev-blog .blog-filter h6{font-size:16px}.dev-blog .blog-filter[type=checkbox]::before{position:relative;display:block;width:20px;height:20px;content:"";background:#111112;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.dev-blog .blog-filter[type=checkbox]::after{position:relative;display:block;top:-20px;width:20px;height:20px;content:"";background-repeat:no-repeat;background-position:center;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.dev-blog .blog-filter[type=checkbox]:checked::before{background:#111112;border:none;border-radius:0}.dev-blog .blog-filter[type=checkbox]:checked::after{background-image:url(../img/blog/blog-check.svg);background-repeat:no-repeat;background-position:center;background-color:#7919ff;border-width:2px;border-style:solid;border-color:#7919ff;border-radius:4px}.dev-blog .blog-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/blog/blog-check.svg);background-repeat:no-repeat;background-position:center;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}.dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::before{background:#111112;border:none;border-radius:0}.dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::after{background:#111112;border:none;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}#feedback-content .docked-widget{border:none !important;background-color:transparent !important;position:static !important;box-shadow:none !important;width:auto !important}#feedback-content .widget-form-wrapper{position:static !important;box-shadow:none !important;display:block;background-color:#232325 !important;border-width:0 !important;padding:24px !important;border-radius:8px !important}#feedback-content .widget-form-wrapper div{background-color:#232325 !important}#feedback-content .widget-form-wrapper textarea{background-color:#fff !important;opacity:1 !important;border:none !important;border-radius:4px !important;margin:0 !important;width:100% !important;color:#000 !important}#feedback-content .widget-form-wrapper .widget-header-title{background:none !important;flex-grow:0 !important;padding-right:1rem !important;height:auto !important;padding:0 !important;margin-bottom:10px !important}#feedback-content .widget-form-wrapper .widget-header-footer{background:none !important}#feedback-content .widget-form-wrapper .widget-form-footer{padding-right:0 !important}#feedback-content .widget-form-wrapper .submit{background-color:#7919ff !important;font-weight:bold !important;color:#fff !important;border:none !important;border-color:transparent !important;border-radius:4px !important;margin:0 !important;margin-top:8px !important}#feedback-content .widget-form-wrapper .submit:hover{background:#5f00e5 !important}#feedback-content .widget-form-wrapper .submit.disabled,#feedback-content .widget-form-wrapper .submit[disabled=disabled]{background-color:#4a00b2 !important}#feedback-content .widget-form-wrapper .submit.disabled:hover,#feedback-content .widget-form-wrapper .submit[disabled=disabled]:hover{background-color:#4a00b2 !important}#feedback-content .widget-form-wrapper .cancel{margin:0 !important;margin-top:8px !important;color:#b480ff !important;font-weight:600 !important}#feedback-content #closeFeedback{display:none}#feedback-content .widget-helpful .widget-header{background-color:#232325 !important;border-radius:8px !important}#feedback-content .widget-helpful .widget-header-title{color:#fff !important}.video-image{transition:all .35s ease-out;cursor:pointer}.video-image:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}#video-overlay{position:fixed;top:0;left:0;z-index:1190;height:100%;width:100%;background:#fff;opacity:.6;display:none}#video{display:none;position:fixed;top:10%;left:15%;width:70%;z-index:1200}#video-container{position:relative;top:50%;left:50%;-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);max-width:982px;padding:0 20px}#videoWrapper{position:absolute;top:0;left:0;height:calc(90vh - 100px);width:80vw}#videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}#video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.video-external-link{color:#9a52ff;font-weight:600}.video-external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:24px;padding:9px 4px 0 8px;width:2rem;background-position:left 8px bottom 0px;transition:background-position 100ms ease-in-out}.video-external-link.video-external-link:hover::after{background-position:left 12px bottom 8px}.video-title{line-height:1.2}@media(min-width: 768px){.video-title{font-size:1rem}}@media(max-width: 768px){.page-community .sm-align-items-start{align-items:start !important}}.page-community .numbers-animation{width:218px;height:96px}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.page-community .bounce-arrow{animation:bounce 1.5s infinite;animation-timing-function:ease-in-out;height:26px;width:26px;position:relative;top:24px}.page-community .m-gif{height:108px}.page-community .middle-image{margin:0 auto;height:35px}.page-community .bg-hero{width:100%;height:635px}.page-community #center-image{cursor:pointer}.page-community .gradient-num-three{background:linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .middle-image-two{margin:0 auto;height:52px}.page-community .gradient-num-two{background:linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .gradient-num{background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .surround-gradient{background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .surround-gradient-two{background:linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .surround-gradient-three{background:linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .main-title{color:var(--black-black-0, #FFF);text-align:center;font-family:Work Sans;font-size:62px;font-style:normal;font-weight:700;line-height:70px}@media(max-width: 768px){.page-community .main-title{font-size:42px;line-height:52px;text-align:left}}.page-community .get-funding-btn{width:90%;margin:0 auto}@media(max-width: 768px){.page-community .cd-none-sm{display:none !important}}@media(min-width: 769px){.page-community .cd-none-lg{display:none !important}}.page-community .icon-date{padding-right:4px;content:url(../img/events/event-date.svg)}.page-community .icon-location{padding-right:4px;content:url(../img/events/event-location.svg)}.page-community .builders-wrap{white-space:nowrap}@media(min-width: 768px){.page-community .builders-wrap{white-space:normal}}.page-community #community-table{padding:20px 93px;max-width:1280px;margin:0 auto;border-radius:5px;padding-top:165px}@media(min-width: 992px){.page-community #community-table{padding-top:512px}}@media(max-width: 768px){.page-community #community-table{margin:0;padding:20px;margin-top:100px !important}}.page-community .eyebrow-convo{text-align:start;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:26px;padding-bottom:5px}.page-community .final-tr{border:none !important}.page-community #community-table h4{text-align:start;margin:10px 0;font-family:Work Sans;font-size:32px;font-style:normal;font-weight:700;line-height:38px}.page-community #community-table table{width:100%;margin-top:31px;border-collapse:collapse}.page-community #community-table tr{padding:10px 10px;border-bottom:1px solid #343437}.page-community #community-table td{overflow:hidden;max-width:34vw;position:relative;vertical-align:middle}.page-community .scrolling-text{display:inline-block}.page-community #community-table img{max-width:52px;height:29px}.page-community .td-img{padding:10px;width:69px}.page-community .td-img .discord-icon{content:url(../img/community/ic_discord.png)}.page-community .td-img .twitter-icon{content:url(../img/community/ic_twitter.png)}.page-community .td-img .youtube-icon{content:url(../img/community/ic_youtube.png)}.page-community .td-img .xrpl-icon{content:url(../img/community/ic_xrpl.png)}.page-community .td-img .github-icon{content:url(../img/community/ic_github.png)}.page-community .td-img .stackoverflow-icon{content:url(../img/community/ic_stackoverflow.png)}.page-community .text-external-link{display:inline-flex;align-items:center;margin-left:10px}.page-community .external-link-contribute{display:inline-block;vertical-align:middle;padding-right:41px;height:16px;background:url(../img/icons/arrow-up-right.svg) no-repeat center center;transition:transform .3s ease}.page-community .text-external-link:hover .external-link-contribute{transform:translate(5px, -5px)}.page-community table td{position:relative;padding-right:25px}.page-community table td .text-external-link{position:absolute;right:5px;top:50%;transform:translateY(-50%)}@media(max-width: 768px){.page-community #community-table img{width:96px;height:29px}.page-community #community-table{width:100%}.page-community .td-img{min-width:60px}}.page-community .funding-text{color:var(#FFFFFF);font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:44px;padding-bottom:4px}.page-community .xrpl-events-section{padding:50px 40px;margin:100px auto;display:flex;justify-content:space-around;align-items:center;max-width:1280px}@media screen and (max-width: 768px){.page-community .xrpl-events-section{flex-direction:column;align-items:start}.page-community .xrpl-events-section .header-div{text-align:center}.page-community .xrpl-events-section .header{display:flex;flex-direction:column;align-items:start}.page-community .xrpl-events-section .header h6{margin-bottom:.5rem;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:28px}.page-community .xrpl-events-section .header h4{font-family:Work Sans;font-size:28px;font-style:normal;font-weight:700;line-height:34px}.page-community .xrpl-events-section .description{text-align:start;margin-top:2rem;font-family:Work Sans;font-size:24px;font-style:normal;font-weight:500;line-height:28px}.page-community .xrpl-events-section .view-all-events-btn{float:left}.page-community .xrpl-events-section .upcoming-event{text-align:start;margin-top:2rem;padding:1rem 0}.page-community .xrpl-events-section .upcoming-event .days-count{margin-bottom:1rem}}.page-community .xrpl-events-section .header-div{padding-top:27px}.page-community .xrpl-events-section .header h6{padding-left:1.5px;font-family:"Work Sans",sans-serif;font-size:20px;font-weight:700;color:var(--black-black-0, #FFF);text-align:start}.page-community .xrpl-events-section .header h4{text-align:start;font-family:"Work Sans",sans-serif;font-size:32px;font-weight:700;color:var(--black-black-0, #FFF)}.page-community .xrpl-events-section .description{font-family:"Work Sans",sans-serif;font-size:20px;font-weight:500;max-width:444px;color:var(--black-black-10-gray-200, #E0E0E1);line-height:32px}.page-community .xrpl-events-section .view-all-events-btn{display:inline-block;margin-top:1rem}.page-community .xrpl-events-section .upcoming-event{margin-top:2rem}.page-community .xrpl-events-section .upcoming-event .upcoming-label{position:relative;top:7px;font-family:"Work Sans",sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--black-black-30, #C1C1C2)}.page-community .xrpl-events-section .upcoming-event .days-count{font-weight:300;margin-bottom:21px;line-height:99px;font-size:88px;background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.page-community .xrpl-events-section .upcoming-event .days-word{vertical-align:bottom;font-weight:normal;margin-bottom:21px;line-height:99px;font-size:40px;background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.page-community .xrpl-events-section .upcoming-event h5{font-family:"Work Sans",sans-serif;font-size:16px;font-weight:700;color:var(--black-black-10, #F5F5F7)}.page-community .xrpl-events-section .upcoming-event .event-details,.page-community .xrpl-events-section .upcoming-event .event-location{font-family:"Work Sans",sans-serif;font-size:12px;font-weight:600;color:var(--black-black-30, #C1C1C2)}.page-community .community-funding{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:1280px;margin:100px auto;padding-right:54px;padding-left:73px;margin-top:120px}.page-community .funding-section{flex:1;padding:20px;color:var(--black-black-0)}.page-community .small-text{color:var(--black-black-30, #C1C1C2);font-family:Work Sans;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;padding-left:11px;text-align:start}.page-community .funding-section h2{font-size:32px;font-weight:700;line-height:38px;margin-top:10px;margin-bottom:40px}.page-community .funding-section p{color:var(--black-black-20);font-size:24px;font-weight:500;line-height:32px;margin-bottom:40px}.page-community .stats{flex:1;display:flex;justify-content:space-between}@media(max-width: 768px){.page-community .stats{flex-direction:column;align-items:start;text-align:start;padding-left:7px}}.page-community .stacked-stats{display:flex;flex-direction:column;justify-content:space-between}.page-community .stat{align-self:center;text-align:center;margin:0 auto;display:flex;flex-direction:column}@media(max-width: 768px){.page-community .stat{margin:0px;text-align:start;align-self:start}}.page-community .number{opacity:1;font-size:88px;display:flex;padding:10px;align-items:center;line-height:96px;font-weight:300}@media screen and (max-width: 768px){.page-community .community-funding{flex-direction:column-reverse;padding-left:16px;padding-right:16px}.page-community .funding-section,.page-community .stats{width:100%}}.page-community .carousel{position:relative;width:1280px;margin:0 auto;margin-top:106px;max-width:100%}.page-community .carousel .flex-align{display:flex;align-items:center}@media(max-width: 768px){.page-community .carousel{width:100%}}.page-community .center-image-wrapper{position:relative;width:552px;height:314px}@media(max-width: 1118px){.page-community .center-image-wrapper{width:55%;height:auto}}@media(max-width: 768px){.page-community .center-image-wrapper{margin:0 auto;width:86%}}.page-community .image-container{display:flex;justify-content:space-around;align-items:center;overflow:hidden}.page-community .image-container img{max-width:100%;transition:transform .7s ease-in-out,opacity .7s ease-in-out}.page-community #center-image{width:100%}.page-community #left-image,.page-community #right-image{width:252px;height:144px;opacity:.7}@media(max-width: 1118px){.page-community #left-image,.page-community #right-image{width:15%;height:auto}}@media(max-width: 768px){.page-community #left-image,.page-community #right-image{display:none;margin:0}}.page-community #left-image.exit,.page-community #right-image.exit{transform:translateX(-100%);opacity:0}.page-community #left-image.enter,.page-community #right-image.enter{transform:translateX(100%);opacity:0}.page-community #center-image.exit{transform:scale(0.8);opacity:0}.page-community #center-image.enter{transform:scale(1);opacity:1}.page-community .nav-btn{position:absolute;top:50%;transform:translateY(-50%);font-size:24px;background:none;border:none;cursor:pointer}.page-community #prev-btn{left:0}.page-community #next-btn{right:0}.page-community .event-info{position:absolute;bottom:10px;left:32px;display:flex;flex-direction:column;gap:4px}@media(max-width: 768px){.page-community .event-info{left:7px}}.page-community .event-info span{color:#fff;font-family:Work Sans;font-size:12px;font-style:normal;font-weight:600;line-height:16px}.page-community .event-info .name{padding-bottom:5px;color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:24px}.page-community .arrow-wrapper{display:flex;justify-content:center;padding-top:24px}.page-community :root{--black-black-0: #FFF;--black-black-10: #F5F5F7;--black-black-30: #C1C1C2}.page-community .community-spotlight-wrapper{display:flex;padding:20px;max-width:1280px;min-height:582px;margin:100px auto;gap:48px;padding-right:54px;padding-left:73px}.page-community .community-spotlight{flex:1;display:flex;flex-direction:column;padding-right:10px}.page-community .projects-wrapper{flex:1;position:relative;display:flex;justify-content:center;gap:48px}@media(max-width: 768px){.page-community .projects-wrapper{gap:48px}}.page-community .project-card{background-color:transparent;border-radius:4px;height:fit-content;width:252px;max-height:456px}@media(max-width: 768px){.page-community .project-card{width:99%}}.page-community .project-card.bottom-right{align-self:end}.page-community .card-image{border-radius:4px;height:144px;width:252px;background-color:#2c2b2b;display:flex;align-items:center}.page-community .spotlight-title,.page-community .project-title{color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:16px}.page-community .spotlight-subtitle{color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:16px}.page-community .project-description{color:var(--black-black-30, #C1C1C2);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.page-community .card-details{background-color:transparent;display:flex;flex-direction:column;text-align:start;padding:15px;height:fit-content}.page-community .view-project{color:var(--blue-purple-blue-purple-50, #7919FF);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:16px;cursor:pointer;text-decoration:none}@media(max-width: 1076px){.page-community .project-card.bottom-right{align-self:auto}.page-community .community-spotlight-wrapper{flex-direction:column;align-items:center;margin-left:0px;padding-right:26px;padding-left:26px}.page-community .community-spotlight,.page-community .projects-wrapper{width:100%;margin:0;padding:0}.page-community .projects-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;position:static}.page-community .card-image{width:100%}.page-community .card-details{gap:16px;margin-top:10px}.page-community .project-card{position:static;margin:20px 0;height:fit-content}}.page-community .w-222{width:222px}.page-community .bottom-cards-section .com-card .card-content{display:flex;flex-direction:column;justify-content:space-between;gap:16px;position:relative;z-index:1;height:100%}.page-community .bottom-cards-section .com-card{border-radius:8px;padding:36px;background:#232325;min-width:352px;height:442px;max-width:352px;position:relative;display:flex;flex-direction:column;justify-content:space-between}.page-community .bottom-cards-section{display:flex;flex-direction:row;justify-content:center;gap:48px;max-width:1280px;margin:0 auto}.page-community .bottom-cards-section .com-card{padding:36px;background:#232325;min-width:352px;height:442px;max-width:352px;position:relative}.page-community .bottom-cards-section .com-card .top-left-img{position:absolute;top:0;height:292px;left:0;content:url(../img/community/card-bg-1.svg)}.page-community .bottom-cards-section .com-card .bottom-right-img{position:absolute;bottom:0;right:0;height:333px;content:url(../img/community/card-bg-2.svg)}.page-community .bottom-cards-section .com-card .top-right-img{height:390px;position:absolute;top:0;right:0;content:url(../img/community/card-bg-3.svg)}.page-community .bottom-cards-section .com-card .card-content{display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.page-community .bottom-cards-section .com-card .card-content .card-title{margin-bottom:0px !important;color:var(--black-black-0-white, #FFF);white-space:nowrap;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:26px}.page-community .bottom-cards-section .com-card .card-content .card-subtitle{color:var(--black-black-0, #FFF);font-family:Work Sans;font-size:24px;font-style:normal;font-weight:700;line-height:32px;margin-top:2px}.page-community .bottom-cards-section .com-card .card-content .card-description{color:var(--black-black-20, #E0E0E1);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:24px;margin-top:15px;margin-bottom:15px}.page-community .bottom-cards-section .com-card .card-content .card-links{display:flex;flex-direction:column;gap:8px}.page-community .bottom-cards-section .com-card .card-content .com-card-link{text-decoration:none;cursor:pointer;color:#9a52ff;font-family:Work Sans;font-size:16px;font-style:normal;font-weight:600;line-height:24px}@media(max-width: 767.98px){.page-community .bottom-cards-section .com-card .card-content .com-card-link{display:block;width:100%}}.page-community .bottom-cards-section .com-card .card-content .com-card-link::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);position:relative;top:1px;vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover{border:none}.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover::after{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}@media(max-width: 768px){.page-community .bottom-cards-section{flex-direction:column;align-items:center;padding:20px}.page-community .bottom-cards-section .com-card{margin-bottom:20px;display:block;width:100%}.page-community .com-card .top-left-img,.page-community .com-card .bottom-right-img,.page-community .com-card .top-right-img{position:static;display:block;width:100%;margin-bottom:15px}}.page-community .num-separator{width:32px;height:1px;background:var(--black-black-70, #343437);margin-bottom:32px;margin-top:1px}.page-community .stat-separator{width:32px;height:1px;background:var(--black-black-70, #343437);margin-bottom:32px;margin-top:8px}.page-community .ml-8{margin-left:8px}.page-community .ml-19{margin-left:19px}.page-community .ml-14{margin-left:11px}.page-community .header-div .header{gap:10px;display:flex;flex-direction:column;padding-bottom:35px}.page-community .spotlight-subtitle{font-size:32px;font-weight:700;line-height:38px;margin-top:10px;margin-bottom:40px}.page-community .spotlight-description{color:var(--black-black-20);font-size:24px;font-weight:500;line-height:32px;margin-bottom:40px}.sdk-img{align-self:center}.light .sdk-img{content:url(../img/graphics/sdk-white.png)}.light .ref-book-illustration{content:url(../img/graphics/ref-book-light.png)}.light .tutorial-illustration{content:url(../img/graphics/tutorials-illustration-light.png)}.light .concepts-doc-illustration{content:url(../img/graphics/concepts-docs-light.png)}.light .use-cases .wallet-illustration{content:url(../img/graphics/wallet-light.svg)}.light .use-cases .token-illustration{content:url(../img/graphics/tokens-light.png)}.light .use-cases .connections-illustration{content:url(../img/graphics/nodes-light.svg)}.light .quickstart-image{content:url(../img/graphics/getting-started-pages-light.png)}.light .dev-tools-img{content:url(../img/graphics/dev-tools-light.svg)}.light .dev-tools-link:hover p{color:#000}.dark .sdk-img{content:url(../img/graphics/sdk-black.png)}.dark .ref-book-illustration{content:url(../img/graphics/ref-book.png)}.dark .tutorial-illustration{content:url(../img/graphics/tutorials-illustration.png)}.dark .concepts-doc-illustration{content:url(../img/graphics/concepts-doc.png)}.dark .use-cases .wallet-illustration{content:url(../img/graphics/wallet-dark.png)}.dark .use-cases .token-illustration{content:url(../img/graphics/tokens-dark.png)}.dark .use-cases .connections-illustration{content:url(../img/graphics/nodes-dark.png)}.dark .quickstart-image{content:url(../img/graphics/getting-started-pages-dark.svg)}.dark .dev-tools-img{content:url(../img/graphics/dev-tools-dark.png)}.dark .dev-tools-link:hover p{color:#fff}.dark .flat-card-grid .nav-link:hover{color:#e0e0e1}.get-started-img,.flat-card{max-width:100%;max-height:100%}.faded-text{font-family:"Work Sans";font-style:normal;font-weight:400;font-size:15.5667px;line-height:23px}.page-docs-index section{padding-top:64px;padding-bottom:64px}.page-docs-index .dev-tools-link h6::before{margin-top:-20px;height:20px}.page-docs-index .dev-tools-link h6:hover{text-decoration:underline;text-decoration-color:#9a52ff;background:none !important}.page-docs-index .dev-tools-link:hover p{text-decoration:none !important;background:none !important;display:inline-block}.page-docs-index .dev-tools-link a:hover{color:#9a52ff;text-decoration:none !important}.page-docs-index .dev-tools-link .btn-arrow::after{content:url(../img/icons/arrow-right-purple.svg);width:1.5rem;height:1.5rem}.page-docs-index .langs>a{display:block}.page-docs-index .langs h5:hover{text-decoration:underline;text-decoration-color:#9a52ff;background:none !important}.page-docs-index .langs a:hover{text-decoration:none !important}.page-docs-index .langs .btn-arrow::after{content:url(../img/icons/arrow-right-purple.svg);vertical-align:baseline;width:1.5rem;height:1.5rem}.page-docs-index .langs h5{margin-block-start:0 !important}.page-docs-index .langs h5::before{margin-top:0;height:0}.page-docs-index h1{font-size:3.875rem}.page-docs-index .arrow-purple::after{content:url(../img/icons/arrow-right-purple.svg)}.page-docs-index .documentation-index:hover,.page-docs-index .documentation-index::after{color:#9a52ff;text-decoration:none !important;background:none !important}@media(max-width: 765px){.page-docs-index h1{font-size:3rem}.page-docs-index .flat-card-grid{grid-gap:24px}.page-docs-index .flat-card-grid .flat-card{padding:32px 12px}.page-docs-index::before{display:none}}#langs-cards{grid-gap:40px}@media(max-width: 991.98px){.page-docs-index .langs-cards{grid-template-columns:1fr 1fr;grid-auto-rows:auto}}.dev-tools-img{max-width:100%;max-height:100%;margin:auto}.page-docs .h4::before{margin-top:0;height:0}.page-docs .row{margin-right:0;margin-left:0}.page-docs .video-grid{grid-gap:35px}.page-docs .title-space{margin-bottom:16px}.page-docs .circled-logo{margin-left:.1rem}.flat-card-grid{grid-gap:15px;max-width:100%;min-height:384px}.flat-card-grid .flat-card{padding:32px 50px;height:100%;width:100%;box-shadow:none}.flat-card-grid .flat-card-padding{margin-bottom:75px}.flat-card-grid img{width:auto;height:115px;margin-left:auto;margin-right:auto}.flat-card-grid .nav-link{border:none !important}.flat-card-grid .nav-link:hover{text-decoration:underline;text-decoration-color:#9a52ff}.flat-card-grid .nav-link::after{content:none !important}@media(max-width: 991.98px){.flat-card-grid .flat-card-padding{margin-bottom:0}.flat-card-grid .nav-link::after{content:" " !important}.flat-card-grid .flat-card .btn{display:none}}.float-up-on-hover{transition:all .35s ease-out;cursor:pointer}.float-up-on-hover:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}.float-up-on-hover .video-image:hover{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}@media(min-width: 992px){.align-button-on-bottom .btn-primary{position:absolute;bottom:0}}.center-image{display:flex;justify-content:center}.quickstart-card .quickstart-image{margin-left:-20px;margin-right:-20px;margin-bottom:-20px}@media(min-width: 992px){.quickstart-card{margin-left:-32px;margin-right:-32px;margin-bottom:-32px;width:calc(100% + 64px)}}.explore-links .card-grid{grid-gap:40px}.full-documentation-link{margin-top:-35px}button.MarkpromptFloatingTrigger{bottom:4.5rem;border-radius:4px;right:16px;border:1px solid transparent}@media(min-width: 992px){button.MarkpromptFloatingTrigger{right:32px}}html.light .MarkpromptContentDialog a{color:#7919ff}html.light .MarkpromptContentDialog h3:not(.chip){color:#000}.MarkpromptExtendedFeedbackTextInput{background-color:#fff;color:#000}.MarkpromptOverlay{z-index:20}.osano-cm-close{box-sizing:content-box !important}.osano-cm-switch{box-sizing:content-box !important}.osano-cm-widget{right:16px;width:50px;height:50px;border:1px solid transparent}@media(min-width: 992px){.osano-cm-widget{right:32px}}html.light article p code,html.light article table code,html.light article li>code{background-color:#e0e0e1;color:#111112}html.light body{background-color:#f5f5f7;color:#000}html.light #topnav-theme .custom-theme-toggle .custom-control-label::before{background-color:transparent;background-position:bottom right;transform:rotate(-15deg)}html.light h1:not(.chip),html.light h2:not(.chip),html.light h3:not(.chip),html.light h4:not(.chip),html.light h5:not(.chip),html.light h6:not(.chip),html.light .h1:not(.chip),html.light .h2:not(.chip),html.light .h3:not(.chip),html.light .h4:not(.chip),html.light .h5:not(.chip),html.light .h6:not(.chip){color:#000}html.light h1.green-500,html.light h2.green-500,html.light h3.green-500,html.light h4.green-500,html.light h5.green-500,html.light h6.green-500,html.light .h1.green-500,html.light .h2.green-500,html.light .h3.green-500,html.light .h4.green-500,html.light .h5.green-500,html.light .h6.green-500{color:#28b86a;text-shadow:#fff 0 0 2px,#fff -1px -1px 2px,#fff 1px 1px 2px}html.light .bg-grey-800{background-color:#fcfcfd}html.light .grey-400{color:#454549}html.light .text-muted{color:#232325 !important}html.light .longform{color:#232325}html.light .numbers{color:#000}html.light .stat-highlight,html.light .eyebrow{color:#111112}html.light .invertible-img{filter:invert(100%)}html.light .arrow-link::after{content:url("../img/lightmode/icon-long-arrow.svg")}html.light .search .input-group-text,html.light .input-group .input-group-text,html.light .form-group .input-group-text{background-color:#e0e0e1;color:#232325}html.light .search label .input-group-text,html.light .search .form-control:not(.btn),html.light .input-group label .input-group-text,html.light .input-group .form-control:not(.btn),html.light .form-group label .input-group-text,html.light .form-group .form-control:not(.btn){color:#000;background-color:#e0e0e1;border-color:#e0e0e1}html.light .search .ds-input,html.light .input-group .ds-input,html.light .form-group .ds-input{color:#000;background-color:#e0e0e1;border-color:#e0e0e1}html.light .search .ds-input:focus,html.light .input-group .ds-input:focus,html.light .form-group .ds-input:focus{border-color:#9a52ff}html.light .list-group-item{border-color:#232325;background-color:#f5f5f7}html.light .list-group-item.disabled{color:#a2a2a4}html.light .progress{background-color:#e0e0e1}html.light .xrp-ledger-dev-portal .DocSearch-Modal{background:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Prefill{color:#7919ff}html.light .xrp-ledger-dev-portal .DocSearch-Button{background:var(--docsearch-searchbox-background)}html.light .xrp-ledger-dev-portal .DocSearch-Button:hover{box-shadow:inset 0 0 0 2px #7919ff;border-radius:40px;background:var(--docsearch-searchbox-background)}html.light .xrp-ledger-dev-portal .DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--docsearch-text-color)}html.light .xrp-ledger-dev-portal .DocSearch-Search-Icon{color:var(--docsearch-text-color) !important}html.light .xrp-ledger-dev-portal .DocSearch-Input{color:#111112}html.light .xrp-ledger-dev-portal .DocSearch-Hit-Select-Icon{color:#111112}html.light .xrp-ledger-dev-portal .DocSearch-Form{box-shadow:inset 0 0 0 2px #7919ff;background-color:var(--docsearch-searchbox-focus-background)}html.light .xrp-ledger-dev-portal .DocSearch-Hit-source{color:#7919ff;background:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Hits mark{color:#7919ff}html.light .xrp-ledger-dev-portal .DocSearch-Hit-Container{background:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Hit a{background-color:#fff}html.light .xrp-ledger-dev-portal .DocSearch-Hit-content-wrapper .DocSearch-Hit-title{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit-content-wrapper .DocSearch-Hit-path{color:#454549 !important}html.light .xrp-ledger-dev-portal .DocSearch-Logo svg .cls-1,html.light .xrp-ledger-dev-portal .DocSearch-Logo svg .cls-2{fill:var(--docsearch-logo-color)}html.light .xrp-ledger-dev-portal .DocSearch-Hit-title,html.light .xrp-ledger-dev-portal .DocSearch-Hit-path,html.light .xrp-ledger-dev-portal .DocSearch-Label,html.light .xrp-ledger-dev-portal .DocSearch-Help{color:#454549 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a{background:#f5f5f7}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-Container{background-color:#f5f5f7}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-content-wrapper .DocSearch-Hit-title{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-content-wrapper .DocSearch-Hit-path{color:#454549 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-icon svg{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-action .DocSearch-Hit-action-button svg{color:#000 !important}html.light .xrp-ledger-dev-portal .DocSearch-Hit[aria-selected=true] a mark{color:#7919ff !important}html.light .xrp-ledger-dev-portal .DocSearch-Footer{background:var(--docsearch-footer-background)}html.light .xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background-color:#fcfcfd}html.light .xrp-ledger-dev-portal .algolia-autocomplete .ds-dropdown-menu::before{background-color:#fcfcfd}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion{background-color:#fcfcfd}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header{color:#000;border-bottom-color:#7919ff}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{color:#000}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--title{color:#000}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text{color:#232325}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#000;background-color:#c1c1c2}html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,html.light .xrp-ledger-dev-portal .algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{background-color:#c1c1c2}html.light a,html.light nav a,html.light a:not([role=button]){color:#000}html.light a.btn-primary,html.light nav a.btn-primary,html.light a:not([role=button]).btn-primary{color:#fff}html.light a.btn-primary:hover,html.light nav a.btn-primary:hover,html.light a:not([role=button]).btn-primary:hover{color:#fff}html.light a:hover,html.light a:active,html.light a.active,html.light nav a:hover,html.light nav a:active,html.light nav a.active,html.light a:not([role=button]):hover,html.light a:not([role=button]):active,html.light a:not([role=button]).active{color:#7919ff}html.light a:not(.btn):focus,html.light nav a:not(.btn):focus,html.light a:not([role=button]):not(.btn):focus{background-color:transparent}html.light a.card:hover,html.light:active,html.light.active{color:#000}html.light .landing-table tbody td{color:#232325}html.light .btn-outline-secondary,html.light article a.button,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary{color:#111112;border-color:#111112}html.light .btn-outline-secondary:not(:disabled):not(.disabled):hover,html.light .btn-outline-secondary:not(:disabled):not(.disabled):active,html.light article a.button:not(:disabled):not(.disabled):hover,html.light article a.button:not(:disabled):not(.disabled):active,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):hover,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):active{color:#9a52ff;border-color:#9a52ff;background-color:transparent}html.light .breadcrumb{background:#f5f5f7}html.light .breadcrumb-item a{color:#454549}html.light .breadcrumb-item a:hover{color:#9a52ff}html.light .top-nav{background:#f5f5f7}html.light .top-nav #topnav-pages .nav-link{color:#000}html.light .top-nav .navbar-brand .logo{content:url(../img/XRPLedger_DevPortal-black.svg);height:40px}html.light .top-nav #dropdown-hero-for-docs>img{content:url(../img/icons/lightmode/docs.svg)}html.light .top-nav #dropdown-hero-for-community>img{content:url(../img/icons/lightmode/contribute.svg)}html.light .top-nav .dropdown-menu{background-color:#f5f5f7;border-color:#f5f5f7;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .top-nav .dropdown-menu a:hover,html.light .top-nav .dropdown-menu a.active{color:#7919ff}html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero>img{background-color:#fcfcfd}html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero p{color:#343437}html.light .top-nav .dropdown-menu .dropdown-item.active{color:#7919ff}html.light .top-nav .dropdown-menu h5{color:#454549}html.light .top-nav .dropdown-menu .col-for-get_started{background-color:#e0e0e1}html.light .top-nav #topnav-button{background-color:#e0e0e1}@media(max-width: 991.98px){html.light .top-nav .navbar-toggler .navbar-toggler-icon::after,html.light .top-nav .navbar-toggler .navbar-toggler-icon::before,html.light .top-nav .navbar-toggler .navbar-toggler-icon div{background-color:#111112}html.light .top-nav .navbar-nav .nav-link,html.light .top-nav .navbar-collapse>.nav-item,html.light .top-nav .navbar-nav #topnav-theme,html.light .top-nav .navbar-nav #topnav-search{background:#e0e0e1}}html.light aside .sidenav_cat_title{color:#000}html.light .page-toc .level-1 a,html.light .command-list .separator{color:#000}html.light aside a:hover,html.light aside .sidenav_cat_title:hover,html.light aside a.active,html.light aside a.active:hover,html.light aside .active>a,html.light aside .active>a:hover{color:#7919ff}html.light .dactyl-tree-nav nav{border-left:1px solid #000}html.light .dactyl-tree-nav nav .nav-link:hover,html.light .dactyl-tree-nav nav .nav-link:active{border-left-color:#7919ff}html.light .dactyl-tree-nav nav .active>.nav-link{border-left-color:#7919ff}html.light .page-toc,html.light .command-list{border-left:1px solid #000}html.light .page-toc .level-3,html.light .command-list .level-3{border-left:1px solid #000}html.light .page-toc li a:hover,html.light .page-toc li a .active,html.light .command-list li a:hover,html.light .command-list li a .active{border-left-color:#7919ff}html.light .footer-brand .logo{filter:invert(100%)}html.light .copyright-license{text-shadow:#fff 0px 0px 2px,#fff 1px 1px 2px,#fff 2px 2px 3px,#fff 2px 2px 4px,#fff 2px 2px 5px,#fff 2px 2px 6px,#fff -1px -1px 2px,#fff -2px -2px 3px,#fff -2px -2px 4px}html.light a.osano-cm-link{color:#fff}html.light article .card,html.light .landing .card,html.light .cta-card,html.light aside .card{color:#000;background-color:#fcfcfd;box-shadow:0px 5px 20px 0px #c1c1c2}html.light #code-samples-deck .card{box-shadow:0px 5px 20px 0px #c1c1c2}html.light #code-samples-deck .card-header{border-bottom:none;background-color:#fcfcfd}html.light #code-samples-deck .card-footer{background-color:#fcfcfd}html.light .page-faq.landing-builtin-bg::before,html.light .mini-faq.landing-builtin-bg::before{opacity:.6}html.light .page-faq .q-wrapper,html.light .mini-faq .q-wrapper{background-color:#fcfcfd;color:#000;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .page-faq .q-wrapper>h4 a.expander:hover,html.light .mini-faq .q-wrapper>h4 a.expander:hover{color:#000}html.light .page-community .com-card{background:#fff}html.light .page-community .project-description{color:#343437}html.light .page-community #platform-stack-overflow{content:url("../img/logos/lightmode/stack-overflow.svg")}html.light .page-community #platform-discord{content:url("../img/logos/lightmode/discord.svg")}html.light .status.not_enabled{color:#aeb200}html.light .pg-category{color:#454549}html.light .landing .nav .nav-link{color:#232325;border-bottom-color:#c1c1c2}html.light .landing .circled-logo{background-color:#e0e0e1}html.light .landing .circled-logo img[src="assets/img/logos/globe.svg"]{filter:invert(100%)}html.light .landing p a,html.light .landing .longform a{color:#7919ff}html.light .devportal-callout.caution,html.light .devportal-callout.注意{border-color:#aeb200}html.light .devportal-callout.caution>strong:first-child::before,html.light .devportal-callout.注意>strong:first-child::before{color:#aeb200}html.light .devportal-callout.tip,html.light .devportal-callout.ヒント{border-color:#2dcf78}html.light .devportal-callout.tip>strong:first-child::before,html.light .devportal-callout.ヒント>strong:first-child::before{color:#2dcf78}html.light code{color:#000}html.light pre code,html.light pre{background-color:#e0e0e1}html.light .multicode a{color:#000}html.light .multicode a.current{color:#fff}html.light .multicode a:hover{text-decoration:none;background-color:#e0e0e1;color:#fff}html.light .multicode a:focus{background-color:#232325}html.light .codehilite .btn-outline-secondary{background-color:#232325;color:#f5f5f7;border-color:#f5f5f7}html.light .interactive-block .breadcrumb-item.done a::after{color:#145c35}html.light .modal-content{background-color:#fcfcfd}html.light .rpc-tool pre .toggle{color:#fff}html.light .rpc-tool pre .toggle:hover{color:#b480ff}html.light .page-home #home-hero-graphic{content:url("../img/lightmode/home-hero.svg")}html.light .page-home #benefits-list #public{content:url("../img/icons/lightmode/public.svg")}html.light .page-home #benefits-list #streamlined{content:url("../img/icons/lightmode/streamlined.svg")}html.light .page-home #benefits-list #performance{content:url("../img/icons/lightmode/performance.svg")}html.light .page-home #benefits-list #low-cost{content:url("../img/icons/lightmode/low-cost.svg")}html.light .page-home #benefits-list #community{content:url("../img/icons/lightmode/community.svg")}html.light .page-home #benefits-list #reliability{content:url("../img/icons/lightmode/reliability.svg")}html.light #validator-graphic{content:url("../img/lightmode/validators.svg")}html.light #wallets #wallet-xumm{content:url("../img/wallets/lightmode/xumm.svg")}html.light #wallets #wallet-bitfrost{content:url("../img/wallets/lightmode/bitfrost.png")}html.light #wallets #wallet-towo{content:url("../img/wallets/lightmode/towo.svg")}html.light #wallets #wallet-keystone{content:url("../img/wallets/lightmode/keystone.svg")}html.light #wallets #wallet-dcent{content:url("../img/wallets/lightmode/dcent.svg")}html.light #wallets #wallet-coin{content:url("../img/wallets/lightmode/coin.svg")}html.light #top-exchanges #exch-bitstamp{content:url("../img/exchanges/lightmode/bitstamp.svg")}html.light #top-exchanges #exch-cex-io{content:url("../img/exchanges/lightmode/cex-io.svg")}html.light #top-exchanges #exch-liquid{content:url("../img/exchanges/lightmode/liquid.svg")}html.light #top-exchanges #exch-bitfinex{content:url("../img/exchanges/lightmode/bitfinex.svg")}html.light #top-exchanges #exch-bittrex{content:url("../img/exchanges/lightmode/bittrex.png")}html.light #top-exchanges #exch-currency-com{content:url("../img/exchanges/lightmode/currency-com.png")}html.light #top-exchanges #exch-ftx{content:url("../img/exchanges/lightmode/ftx.png")}html.light #top-exchanges #exch-lmax{content:url("../img/exchanges/lightmode/lmax.png")}html.light .timeline-dot{background-color:#f5f5f7}html.light .page-uses .card-body{background:#fff;color:#343437}html.light .page-uses .modal-footer,html.light .page-uses .modal-header{background-color:#fcfcfd}html.light .page-uses #infrastructure{content:url("../img/icons/usecases/lightmode/ic_infrastructure.png")}html.light .page-uses #developer_tooling{content:url("../img/icons/usecases/lightmode/ic_developer_tooling.png")}html.light .page-uses #interoperability{content:url("../img/icons/usecases/lightmode/ic_interoperability.png")}html.light .page-uses #wallet{content:url("../img/icons/usecases/lightmode/ic_wallet.png")}html.light .page-uses #nfts{content:url("../img/icons/usecases/lightmode/ic_nfts.png")}html.light .page-uses #exchanges{content:url("../img/icons/usecases/lightmode/ic_exchanges.png")}html.light .page-uses #gaming{content:url("../img/icons/usecases/lightmode/ic_gaming.png")}html.light .page-uses #security{content:url("../img/icons/usecases/lightmode/ic_security.png")}html.light .page-uses #payments{content:url("../img/icons/usecases/lightmode/ic_payments.png")}html.light .page-uses #web_monetization{content:url("../img/icons/usecases/lightmode/ic_web_monetization.png")}html.light .page-uses #sustainability{content:url("../img/icons/usecases/lightmode/ic_sustainability.png")}html.light .page-uses #cbdc{content:url("../img/icons/usecases/lightmode/ic_cbdc.png")}html.light .page-uses #custody{content:url("../img/icons/usecases/lightmode/ic_custody.png")}html.light .page-uses #other{content:url("../img/icons/usecases/lightmode/ic_other.png")}html.light .page-uses #carbon_markets{content:url("../img/icons/usecases/lightmode/ic_carbon_markets.png")}html.light .page-uses #defi{content:url("../img/icons/usecases/lightmode/ic_defi.png")}html.light .page-uses .category-header{color:#343437}html.light .page-uses .category_count{background:#d2b2ff;color:#350080}html.light .page-uses .section-text-title{color:#000}html.light .page-uses #use_case_companies_list #bitgo .biz-logo{max-height:40px;content:url("../img/uses/lightmode/bitgo.svg")}html.light .page-uses #use_case_companies_list #sologenic-nft .biz-logo{max-height:40px;content:url("../img/uses/lightmode/sologenic-nft.svg")}html.light .page-uses #use_case_companies_list #carbonland-trust .biz-logo{max-height:40px;content:url("../img/uses/lightmode/carbonland-trust.svg")}html.light .page-uses #use_case_companies_list #x-tokenize .biz-logo{max-height:40px;content:url("../img/uses/lightmode/x-tokenize.svg")}html.light .page-uses #use_case_companies_list #casino-coin .biz-logo{max-height:40px;content:url("../img/uses/lightmode/casino-coin.svg")}html.light .page-uses #use_case_companies_list #xrp-cafe .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrp-cafe.svg")}html.light .page-uses #use_case_companies_list #coil .biz-logo{max-height:40px;content:url("../img/uses/lightmode/coil.svg")}html.light .page-uses #use_case_companies_list #xrp-toolkit .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrp-toolkit.svg")}html.light .page-uses #use_case_companies_list #cryptum .biz-logo{max-height:40px;content:url("../img/uses/lightmode/cryptum.svg")}html.light .page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpl-org-ledger-explorer.svg")}html.light .page-uses #use_case_companies_list #evernode .biz-logo{max-height:40px;content:url("../img/uses/lightmode/evernode.svg")}html.light .page-uses #use_case_companies_list #xrpl-rosetta .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpl-rosetta.svg")}html.light .page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo{max-height:40px;content:url("../img/uses/lightmode/ripples-cbdc-platform.svg")}html.light .page-uses #use_case_companies_list #xrpscan .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpscan.svg")}html.light .page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo{max-height:40px;content:url("../img/uses/lightmode/ripples-on-demand-liquidity.svg")}html.light .page-uses #use_case_companies_list #xumm-wallet .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xumm-wallet.svg")}html.light .page-uses #use_case_companies_list #sologenic-dex .biz-logo{max-height:40px;content:url("../img/uses/lightmode/sologenic-dex.svg")}html.light .page-uses #use_case_companies_list #Crossmark .biz-logo{max-height:40px;content:url("../img/uses/lightmode/Crossmark.png")}html.light .page-uses #use_case_companies_list #threezy .biz-logo{max-height:40px;content:url("../img/uses/lightmode/threezy.png")}html.light .page-uses #bitpay .biz-logo,html.light .page-uses #forte .biz-logo,html.light .page-uses #xrplorer .biz-logo,html.light .page-uses #gatehub .biz-logo{filter:invert(100%)}html.light .landing-bg{opacity:.4}@media(min-width: 768px){html.light .landing-bg{opacity:1}}html.light .landing-builtin-bg::before{opacity:.4}@media(min-width: 768px){html.light .landing-builtin-bg::before{opacity:1}}html.light #feedback-content .widget-form-wrapper{background-color:#fff !important}html.light #feedback-content .widget-form-wrapper div{background-color:#fff !important}html.light #feedback-content .widget-form-wrapper textarea{background-color:#f5f5f7 !important}html.light #feedback-content .widget-form-wrapper .widget-header-title{color:#111112 !important}html.light #feedback-content .widget-form-wrapper .cancel{color:#7919ff !important}html.light #feedback-content .widget-helpful .widget-header{background-color:#fff !important}html.light #feedback-content .widget-helpful .widget-header-title{color:#111112 !important}html.light #feedback-content .widget-helpful .widget-header-icon{filter:invert(100%)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/lightmode/4col-green.svg)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue.svg)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-yellow.svg)}html.light .page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-2.svg)}html.light .page-docs-index .funding-text,html.light .page-community .funding-text{color:#232325}html.light .page-docs-index .stat .small-text,html.light .page-community .stat .small-text{color:#232325}html.light .page-docs-index .project-card,html.light .page-community .project-card{background-color:transparent}html.light .page-docs-index .card-details,html.light .page-community .card-details{background-color:transparent}html.light .page-docs-index .card-image,html.light .page-community .card-image{background:#e0e0e1}html.light .page-docs-index #community-table tr,html.light .page-community #community-table tr{border-bottom:1px solid #34343740}html.light .page-docs-index .card-description,html.light .page-community .card-description{color:#343437 !important}html.light .page-docs-index .card-subtitle,html.light .page-community .card-subtitle{color:#111112 !important}html.light .page-docs-index .card-title,html.light .page-community .card-title{color:#111112 !important}html.light .page-docs-index .main-title,html.light .page-community .main-title{color:#111112}html.light .page-docs-index .event-location,html.light .page-community .event-location{color:#232325 !important}html.light .page-docs-index .event-details,html.light .page-community .event-details{color:#232325 !important}html.light .page-docs-index .upcoming-event .event-name,html.light .page-community .upcoming-event .event-name{color:#111112}html.light .page-docs-index .upcoming-label,html.light .page-community .upcoming-label{color:#232325 !important}html.light .page-docs-index .description,html.light .page-community .description{color:#232325}html.light .page-docs-index .events-text,html.light .page-community .events-text{color:#111112}html.light .page-docs-index .discord-icon,html.light .page-community .discord-icon{content:url(../img/community/ic_discord_light.png)}html.light .page-docs-index .twitter-icon,html.light .page-community .twitter-icon{content:url(../img/community/ic_twitter_light.png)}html.light .page-docs-index .youtube-icon,html.light .page-community .youtube-icon{content:url(../img/community/ic_youtube_light.png)}html.light .page-docs-index .xrpl-icon,html.light .page-community .xrpl-icon{content:url(../img/community/ic_xrpl_light.png)}html.light .page-docs-index .github-icon,html.light .page-community .github-icon{content:url(../img/community/ic_github_light.png)}html.light .page-docs-index .stackoverflow-icon,html.light .page-community .stackoverflow-icon{content:url(../img/community/ic_stackoverflow_light.png)}html.light .page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer,html.light .page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-light-green.svg)}html.light .page-docs-index #run-a-network-node .text-cards a,html.light .page-community #run-a-network-node .text-cards a{color:#000}html.light .page-docs-index #xrpl-blog .blog-graphic,html.light .page-community #xrpl-blog .blog-graphic{content:url(../img/community/lightmode/community-blog@2x.png)}html.light .page-docs-index #xrpl-events .text-light,html.light .page-community #xrpl-events .text-light{color:#000 !important}html.light .page-docs-index #xrplGrantsDark g,html.light .page-docs-index #xrplGrantsDark-small g,html.light .page-docs-index #careersDark g,html.light .page-docs-index #careersDark-small g,html.light .page-community #xrplGrantsDark g,html.light .page-community #xrplGrantsDark-small g,html.light .page-community #careersDark g,html.light .page-community #careersDark-small g{filter:invert(100%) brightness(0.8)}html.light #find-us-on-platforms .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-3.svg)}html.light .page-references #refs-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/3col-green-2.svg)}html.light .page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-4.svg)}html.light ::-webkit-input-placeholder{color:#454549}html.light :-ms-input-placeholder{color:#454549}html.light ::-moz-placeholder{color:#454549;opacity:1}html.light :-moz-placeholder{color:#454549;opacity:1}html.light .page-events label{color:#111112}html.light .page-events .event-card{color:#000;background-color:#fcfcfd;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .page-events a.event-card:hover{color:#000}html.light .page-events .event-hero{color:#111112}html.light .page-events .event-save-date{color:#111112}html.light .page-events .event-small-gray{color:#454549}html.light .page-events #event-hero-image{height:100%;min-height:209px;background:url(../img/events/event-hero1-light@2x.png);background-size:contain;background-repeat:no-repeat;background-position:center}html.light .page-events .icon-date::before{background:url(../img/events/event-date-light.svg)}html.light .page-events .icon-location::before{background:url(../img/events/event-location-light.svg)}html.light .page-events .events-filter[type=checkbox]::before{background-color:#f5f5f7}html.light .page-events .events-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;background-color:#5f00e5;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}html.light .page-events .events-filter[type=checkbox]:not(:disabled):hover::before{background-color:#f5f5f7}html.light .page-events .events-filter[type=checkbox]:not(:disabled):hover::after{background-color:#f5f5f7}html.light .page-ambassadors #benefits-list #benefits-01{content:url("../img/ambassadors/lightmode/benefits-01.svg")}html.light .page-ambassadors #benefits-list #benefits-02{content:url("../img/ambassadors/lightmode/benefits-02.svg")}html.light .page-ambassadors #benefits-list #benefits-03{content:url("../img/ambassadors/lightmode/benefits-03.svg")}html.light .page-ambassadors #benefits-list #benefits-04{content:url("../img/ambassadors/lightmode/benefits-04.svg")}html.light .page-ambassadors #benefits-list #benefits-05{content:url("../img/ambassadors/lightmode/benefits-05.svg")}html.light .page-ambassadors #benefits-list #benefits-06{content:url("../img/ambassadors/lightmode/benefits-06.svg")}html.light .page-ambassadors #eligibility-list #eligibility-01{content:url("../img/ambassadors/lightmode/eligibility-01.svg")}html.light .page-ambassadors #eligibility-list #eligibility-02{content:url("../img/ambassadors/lightmode/eligibility-02.svg")}html.light .page-ambassadors #eligibility-list #eligibility-03{content:url("../img/ambassadors/lightmode/eligibility-03.svg")}html.light .page-ambassadors #eligibility-list #eligibility-04{content:url("../img/ambassadors/lightmode/eligibility-04.svg")}html.light .page-ambassadors #eligibility-list #eligibility-05{content:url("../img/ambassadors/lightmode/eligibility-05.svg")}html.light .page-funding .funding-list #funding-01{content:url("../img/funding/lightmode/funding-01.svg")}html.light .page-funding .funding-list #funding-02{content:url("../img/funding/lightmode/funding-02.svg")}html.light .page-funding .funding-list #funding-03{content:url("../img/funding/lightmode/funding-03.svg")}html.light .page-funding .funding-list #funding-04{content:url("../img/funding/lightmode/funding-04.svg")}html.light .page-funding #xrplGrantsDark{filter:invert(100%) brightness(0.8)}html.light .page-impact .connect-list #connect-01{content:url("../img/impact/lightmode/connect-01.svg")}html.light .page-impact .connect-list #connect-02{content:url("../img/impact/lightmode/connect-02.svg")}html.light .page-impact .connect-list #connect-03{content:url("../img/impact/lightmode/connect-03.svg")}html.light .page-impact .connect-list #connect-04{content:url("../img/impact/lightmode/connect-04.svg")}html.light .page-impact #map-light{display:block}html.light .page-impact #map-dark{display:none}html.light main article .card-grid{color:#000}html.light main article .card-grid code{background-color:#d6fae7}html.light main article .card-grid .card-icon-container,html.light main article .card-grid.card-grid-3xN .card-icon-container{background:#c1c1c2}html.light [data-component-name="Footer/Footer"] [data-component-name="Footer/FooterColumn"]{text-shadow:#f5f5f7 0px 0px 2px,#f5f5f7 1px 1px 2px,#f5f5f7 2px 2px 3px,#f5f5f7 2px 2px 4px,#f5f5f7 2px 2px 5px,#f5f5f7 2px 2px 6px,#f5f5f7 -1px -1px 2px,#f5f5f7 -2px -2px 3px,#f5f5f7 -2px -2px 4px}html.light .dev-blog .text-bg{background-color:#fff}html.light .dev-blog #card-date{color:#454549}html.light .dev-blog .category-header{color:#111112}html.light .dev-blog label{color:#343437}html.light .dev-blog .blog-filter[type=checkbox]::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:checked::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/blog/blog-check-light-mode.svg)}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::after{background:#f5f5f7}html.light .dev-blog .post-date{text-decoration:overline solid #145c35 10%}html.light .dev-blog #general-badge{background-color:#fff;color:#343437}html.light .dev-blog #release_notes-badge{background-color:#32e685;color:#145c35}html.light .dev-blog #advisories-badge{background-color:#ff6719;color:#4c1a00}html.light .dev-blog #amendments-badge{background-color:#faff19;color:#4b4c00}html.light .dev-blog #development-badge{background-color:#7919ff;color:#20004c}html.light .dev-blog #developer_reflections-badge{background-color:#19a3ff;color:#002e4c}html.light .dev-blog #gateway_bulletins-badge{background-color:#d919ff;color:#40004c}html.light .dev-blog #features-badge{background-color:#32e685;color:#145c35}html.light .dev-blog #security-badge{background-color:#ff198b;color:#4c0026}html.light .dev-blog .dropdown-btn{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}html.light .dev-blog .dropdown-btn img{content:url("../img/icons/lightmode/chevron-arrow-down.svg")}html.light .dev-blog .dropdown-content{background-color:#e0e0e1} diff --git a/styles/_status-labels.scss b/styles/_status-labels.scss index 4bf1b9f753..e1b311a5dc 100644 --- a/styles/_status-labels.scss +++ b/styles/_status-labels.scss @@ -354,7 +354,7 @@ &.label-checks, &.label-core-server, - &.label-コアサーバー, + &.label-コアサーバ, &.label-use-interoperability, &.label-use-web_monetization, &.chip-purple {