From 554a3732d44ed3219ed5b8be93b71f4d3154cb7e Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Wed, 31 Jan 2024 16:09:41 -0800 Subject: [PATCH] Migrate content syntax via script The changes in this commit were auto-generated by running tool/migrate.sh Following this commit, the Dactyl build no longer works but the Redocly build (mostly) should. --- .../ja/_snippets/checkcash-prereqs.md} | 6 +- .../ja/_snippets/clawback-disclaimer.md} | 0 .../@i18n/ja/_snippets/conf-file-location.md | 1 + .../_snippets/data_types/account_sequence.md | 11 + .../@i18n/ja/_snippets/data_types/address.md | 13 + .../ja/_snippets/data_types/currency_code.md | 6 + .../ja/_snippets/data_types/hash.md} | 0 .../ja/_snippets/data_types/ledger_index.md} | 2 +- .../ja/_snippets/data_types/public_key.md} | 2 +- .../ja/_snippets/etl-source-object.md} | 0 .../interactive-tutorials/connect-step.md} | 0 .../interactive-tutorials/generate-step.md} | 2 +- .../interactive-tutorials/wait-step.md} | 0 ...ssuing-and-operational-addresses-intro.md} | 0 .../ja/_snippets/ledger-objects-intro.md | 3 + content/@i18n/ja/_snippets/no-cli-syntax.md | 3 + .../ja/_snippets/peer_reservation_object.md} | 0 .../ja/_snippets/port-descriptor-object.md} | 2 +- .../ja/_snippets/post-rippled-install.md} | 16 +- .../ja/_snippets/setfee_uniqueness_note.md | 3 + .../ja/_snippets/string-number-formatting.md | 8 + .../@i18n/ja/_snippets/tutorial-sign-step.md | 3 + content/@i18n/ja/_snippets/tx-fields-intro.md | 3 + .../ja/_snippets/tx-metadata-field-table.md} | 6 +- .../ja/_snippets/unsynced_warning_logs.md | 1 + .../ja/_snippets/wait-for-validation.md} | 0 .../ja/concepts/accounts/account-types.md | 23 +- .../@i18n/ja/concepts/accounts/accounts.md | 33 +- .../@i18n/ja/concepts/accounts/addresses.md | 74 +- .../concepts/accounts/cryptographic-keys.md | 61 +- .../accounts/decentralized-identifiers.md | 8 +- .../ja/concepts/accounts/deleting-accounts.md | 17 +- .../@i18n/ja/concepts/accounts/depositauth.md | 45 +- .../ja/concepts/accounts/multi-signing.md | 27 +- .../@i18n/ja/concepts/accounts/reserves.md | 29 +- content/@i18n/ja/concepts/accounts/tickets.md | 35 +- .../consensus-protections.md | 14 +- .../consensus-protocol/consensus-structure.md | 68 +- .../concepts/consensus-protocol/fee-voting.md | 8 +- .../ja/concepts/consensus-protocol/index.md | 12 +- .../consensus-protocol/invariant-checking.md | 29 +- .../consensus-protocol/negative-unl.md | 47 +- content/@i18n/ja/concepts/index.md | 8 +- content/@i18n/ja/concepts/ledgers/index.md | 20 +- .../ja/concepts/ledgers/ledger-close-times.md | 4 +- .../ja/concepts/ledgers/ledger-structure.md | 26 +- .../ledgers/open-closed-validated-ledgers.md | 6 +- .../networks-and-servers/amendments.md | 22 +- .../networks-and-servers/clustering.md | 9 +- .../ja/concepts/networks-and-servers/index.md | 15 +- .../networks-and-servers/ledger-history.md | 39 +- .../networks-and-servers/parallel-networks.md | 26 +- .../networks-and-servers/peer-protocol.md | 50 +- .../rippled-server-modes.md | 52 +- .../networks-and-servers/the-clio-server.md | 6 +- .../transaction-censorship-detection.md | 17 +- .../payment-types/bouncing-payments.md | 4 +- .../@i18n/ja/concepts/payment-types/checks.md | 46 +- .../payment-types/cross-currency-payments.md | 15 +- .../payment-types/direct-xrp-payments.md | 44 +- .../@i18n/ja/concepts/payment-types/escrow.md | 25 +- .../@i18n/ja/concepts/payment-types/index.md | 8 +- .../payment-types/partial-payments.md | 33 +- .../payment-types/payment-channels.md | 13 +- .../robustly-monitoring-for-payments.md | 6 +- .../sending-payments-to-customers.md | 9 +- .../decentralized-exchange/autobridging.md | 14 +- .../automated-market-makers.md | 29 +- .../tokens/decentralized-exchange/index.md | 35 +- .../tokens/decentralized-exchange/offers.md | 37 +- .../tokens/decentralized-exchange/ticksize.md | 6 +- .../fungible-tokens/authorized-trust-lines.md | 29 +- .../fungible-tokens/clawing-back-tokens.md | 7 +- .../common-misconceptions-about-freezes.md | 8 +- .../tokens/fungible-tokens/demurrage.md | 8 +- .../tokens/fungible-tokens/freezes.md | 35 +- .../concepts/tokens/fungible-tokens/index.md | 37 +- .../concepts/tokens/fungible-tokens/paths.md | 31 +- .../tokens/fungible-tokens/rippling.md | 31 +- .../stablecoins/compliance-guidelines.md | 1 - .../stablecoins/configuration.md | 17 +- .../stablecoins/precautions.md | 20 +- .../fungible-tokens/stablecoins/settings.md | 18 +- content/@i18n/ja/concepts/tokens/index.md | 43 +- .../tokens/nfts/authorizing-another-minter.md | 1 - .../ja/concepts/tokens/nfts/batch-minting.md | 6 +- .../ja/concepts/tokens/nfts/collections.md | 2 +- .../nfts/guaranteeing-a-fixed-supply.md | 8 +- .../@i18n/ja/concepts/tokens/nfts/index.md | 13 +- .../@i18n/ja/concepts/tokens/nfts/nft-apis.md | 11 +- .../tokens/nfts/reserve-requirements.md | 18 +- .../tokens/nfts/running-an-nft-auction.md | 4 +- .../@i18n/ja/concepts/tokens/nfts/trading.md | 10 +- .../@i18n/ja/concepts/tokens/transfer-fees.md | 30 +- .../@i18n/ja/concepts/transactions/fees.md | 6 +- .../canceling-a-transaction.md | 7 +- .../transactions/finality-of-results/index.md | 28 +- .../look-up-transaction-results.md | 102 +- .../transaction-malleability.md | 29 +- .../@i18n/ja/concepts/transactions/index.md | 62 +- .../reliable-transaction-submission.md | 45 +- .../concepts/transactions/secure-signing.md | 69 +- .../source-and-destination-tags.md | 18 +- .../concepts/transactions/transaction-cost.md | 61 +- .../transactions/transaction-queue.md | 42 +- .../xrpl-sidechains/cross-chain-bridges.md | 10 +- .../ja/concepts/xrpl-sidechains/index.md | 10 +- .../xrpl-sidechains/witness-servers.md | 7 +- .../@i18n/ja/contributing/report-a-scam.md | 2 +- content/@i18n/ja/faq.md | 18 +- .../ja/infrastructure/commandline-usage.md | 20 +- .../configure-amendment-voting.md | 27 +- .../configuration/configure-grpc.md | 35 +- .../configuration/configure-statsd.md | 44 +- ...onnect-your-rippled-to-the-xrp-test-net.md | 212 ++- .../configure-advisory-deletion.md | 59 +- .../data-retention/configure-full-history.md | 66 +- .../configure-history-sharding.md | 27 +- .../configure-online-deletion.md | 48 +- .../data-retention/history-sharding.md | 11 +- .../configuration/data-retention/index.md | 6 +- .../data-retention/online-deletion.md | 34 +- .../configuration/enable-public-signing.md | 26 +- .../ja/infrastructure/configuration/index.md | 8 +- .../peering/cluster-rippled-servers.md | 101 +- .../peering/configure-a-private-server.md | 62 +- .../peering/configure-the-peer-crawler.md | 53 +- .../peering/enable-link-compression.md | 13 +- .../peering/forward-ports-for-peering.md | 15 +- .../configuration/peering/index.md | 8 +- .../manually-connect-to-a-specific-peer.md | 40 +- .../peering/set-max-number-of-peers.md | 35 +- .../peering/use-a-peer-reservation.md | 84 +- .../configuration/server-modes/index.md | 6 +- .../run-rippled-as-a-stock-server.md | 32 +- .../run-rippled-as-a-validator.md | 150 +- content/@i18n/ja/infrastructure/index.md | 8 +- .../build-on-linux-mac-windows.md | 5 +- .../build-run-rippled-in-reporting-mode.md | 194 +- .../installation/capacity-planning.md | 43 +- .../ja/infrastructure/installation/index.md | 8 +- .../installation/install-clio-on-ubuntu.md | 114 +- ...install-rippled-on-centos-rhel-with-yum.md | 64 +- .../installation/install-rippled-on-ubuntu.md | 80 +- .../rippled-1-3-migration-instructions.md | 86 +- .../installation/system-requirements.md | 22 +- .../update-rippled-automatically-on-linux.md | 32 +- .../update-rippled-manually-on-centos-rhel.md | 54 +- .../update-rippled-manually-on-ubuntu.md | 38 +- .../advance-the-ledger-in-stand-alone-mode.md | 10 +- .../testing-and-auditing/index.md | 8 +- ...load-a-saved-ledger-in-stand-alone-mode.md | 27 +- .../run-private-network-with-docker.md | 536 +++--- ...-new-genesis-ledger-in-stand-alone-mode.md | 13 +- .../testing-and-auditing/test-amendments.md | 7 +- .../troubleshooting/diagnosing-problems.md | 111 +- .../fix-sqlite-tx-db-page-size-issue.md | 86 +- .../health-check-interventions.md | 25 +- .../infrastructure/troubleshooting/index.md | 8 +- .../troubleshooting/server-doesnt-sync.md | 63 +- .../server-is-amendment-blocked.md | 6 +- .../troubleshooting/server-wont-start.md | 59 +- .../understanding-log-messages.md | 49 +- .../@i18n/ja/introduction/crypto-wallets.md | 6 +- content/@i18n/ja/introduction/index.md | 8 +- .../ja/introduction/software-ecosystem.md | 25 +- .../introduction/transactions-and-requests.md | 10 +- .../ja/introduction/what-is-the-xrp-ledger.md | 22 +- content/@i18n/ja/introduction/what-is-xrp.md | 16 +- .../@i18n/ja/references/client-libraries.md | 10 +- content/@i18n/ja/references/data-api.md | 6 +- .../admin-api-methods/index.md | 56 +- .../key-generation-methods/index.md | 8 +- .../validation_create.md | 41 +- .../key-generation-methods/wallet_propose.md | 65 +- .../can_delete.md | 29 +- .../crawl_shards.md | 44 +- .../download_shard.md | 39 +- .../index.md | 8 +- .../ledger_cleaner.md | 23 +- .../ledger_request.md | 37 +- .../log_level.md | 31 +- .../logrotate.md | 31 +- .../node_to_shard.md | 51 +- .../peer-management-methods/connect.md | 38 +- .../peer-management-methods/index.md | 8 +- .../peer_reservations_add.md | 53 +- .../peer_reservations_del.md | 53 +- .../peer_reservations_list.md | 53 +- .../peer-management-methods/peers.md | 43 +- .../server-control-methods/index.md | 8 +- .../server-control-methods/ledger_accept.md | 19 +- .../server-control-methods/stop.md | 35 +- .../server-control-methods/validation_seed.md | 33 +- .../signing-methods/index.md | 8 +- .../admin-api-methods/signing-methods/sign.md | 60 +- .../signing-methods/sign_for.md | 50 +- .../consensus_info.md | 37 +- .../status-and-debugging-methods/feature.md | 55 +- .../fetch_info.md | 35 +- .../get_counts.md | 35 +- .../status-and-debugging-methods/index.md | 8 +- .../status-and-debugging-methods/print.md | 27 +- .../validator_info.md | 53 +- .../validator_list_sites.md | 41 +- .../validators.md | 41 +- .../api-conventions/ctid.md | 8 +- .../api-conventions/error-formatting.md | 20 +- .../api-conventions/index.md | 8 +- .../api-conventions/rate-limiting.md | 21 +- .../api-conventions/request-formatting.md | 16 +- .../api-conventions/response-formatting.md | 17 +- .../api-conventions/rippled-server-states.md | 5 +- .../references/http-websocket-apis/index.md | 8 +- .../peer-port-methods/health-check.md | 36 +- .../peer-port-methods/index.md | 8 +- .../peer-port-methods/peer-crawler.md | 44 +- .../peer-port-methods/validator-list.md | 43 +- .../account-methods/account_channels.md | 52 +- .../account-methods/account_currencies.md | 34 +- .../account-methods/account_info.md | 82 +- .../account-methods/account_lines.md | 49 +- .../account-methods/account_nfts.md | 36 +- .../account-methods/account_objects.md | 61 +- .../account-methods/account_offers.md | 46 +- .../account-methods/account_tx.md | 38 +- .../account-methods/gateway_balances.md | 36 +- .../account-methods/index.md | 8 +- .../account-methods/noripple_check.md | 34 +- .../clio-methods/ledger-clio.md | 77 +- .../clio-methods/nft_history.md | 47 +- .../clio-methods/nft_info.md | 33 +- .../clio-methods/server_info-clio.md | 56 +- .../public-api-methods/clio-server/index.md | 8 +- .../public-api-methods/index.md | 96 +- .../ledger-methods/index.md | 8 +- .../ledger-methods/ledger.md | 81 +- .../ledger-methods/ledger_closed.md | 34 +- .../ledger-methods/ledger_current.md | 34 +- .../ledger-methods/ledger_data.md | 34 +- .../ledger-methods/ledger_entry.md | 317 ++-- .../path-and-order-book-methods/amm_info.md | 47 +- .../book_offers.md | 40 +- .../deposit_authorized.md | 42 +- .../path-and-order-book-methods/index.md | 6 +- .../nft_buy_offers.md | 36 +- .../nft_sell_offers.md | 36 +- .../path-and-order-book-methods/path_find.md | 64 +- .../ripple_path_find.md | 42 +- .../channel_authorize.md | 53 +- .../payment-channel-methods/channel_verify.md | 40 +- .../payment-channel-methods/index.md | 8 +- .../server-info-methods/fee.md | 50 +- .../server-info-methods/index.md | 8 +- .../server-info-methods/manifest.md | 49 +- .../server-info-methods/server_info.md | 87 +- .../server-info-methods/server_state.md | 70 +- .../subscription-methods/index.md | 8 +- .../subscription-methods/subscribe.md | 84 +- .../subscription-methods/unsubscribe.md | 22 +- .../transaction-methods/index.md | 8 +- .../transaction-methods/submit.md | 72 +- .../transaction-methods/submit_multisigned.md | 42 +- .../transaction-methods/transaction_entry.md | 34 +- .../transaction-methods/tx.md | 32 +- .../transaction-methods/tx_history.md | 36 +- .../utility-methods/index.md | 8 +- .../utility-methods/json.md | 20 +- .../utility-methods/ping.md | 35 +- .../utility-methods/random.md | 33 +- .../ja/references/protocol/binary-format.md | 99 +- .../protocol/data-types/base58-encodings.md | 14 +- .../protocol/data-types/basic-data-types.md | 69 +- .../protocol/data-types/currency-formats.md | 32 +- .../references/protocol/data-types/nftoken.md | 23 +- content/@i18n/ja/references/protocol/index.md | 8 +- .../protocol/ledger-data/common-fields.md | 13 +- .../references/protocol/ledger-data/index.md | 8 +- .../ledger-entry-types/accountroot.md | 51 +- .../ledger-entry-types/amendments.md | 17 +- .../ledger-data/ledger-entry-types/amm.md | 15 +- .../ledger-data/ledger-entry-types/bridge.md | 10 +- .../ledger-data/ledger-entry-types/check.md | 14 +- .../ledger-entry-types/depositpreauth.md | 11 +- .../ledger-data/ledger-entry-types/did.md | 20 +- .../ledger-entry-types/directorynode.md | 23 +- .../ledger-data/ledger-entry-types/escrow.md | 9 +- .../ledger-entry-types/feesettings.md | 17 +- .../ledger-data/ledger-entry-types/index.md | 8 +- .../ledger-entry-types/ledgerhashes.md | 7 +- .../ledger-entry-types/negativeunl.md | 9 +- .../ledger-entry-types/nftokenoffer.md | 12 +- .../ledger-entry-types/nftokenpage.md | 9 +- .../ledger-data/ledger-entry-types/offer.md | 19 +- .../ledger-entry-types/paychannel.md | 17 +- .../ledger-entry-types/ripplestate.md | 21 +- .../ledger-entry-types/signerlist.md | 21 +- .../ledger-data/ledger-entry-types/ticket.md | 19 +- .../ledger-entry-types/xchainownedclaimid.md | 7 +- .../xchainownedcreateaccountclaimid.md | 8 +- .../protocol/ledger-data/ledger-header.md | 12 +- .../protocol/transactions/common-fields.md | 37 +- .../references/protocol/transactions/index.md | 12 +- .../protocol/transactions/metadata.md | 33 +- .../enableamendment.md | 9 +- .../pseudo-transaction-types.md | 8 +- .../pseudo-transaction-types/setfee.md | 11 +- .../pseudo-transaction-types/unlmodify.md | 12 +- .../transaction-results/tec-codes.md | 43 +- .../transaction-results/tef-codes.md | 19 +- .../transaction-results/tel-codes.md | 30 +- .../transaction-results/tem-codes.md | 31 +- .../transaction-results/ter-codes.md | 11 +- .../transaction-results/tes-success.md | 5 +- .../transaction-results.md | 21 +- .../transactions/types/accountdelete.md | 26 +- .../protocol/transactions/types/accountset.md | 53 +- .../protocol/transactions/types/ammbid.md | 32 +- .../protocol/transactions/types/ammcreate.md | 25 +- .../protocol/transactions/types/ammdelete.md | 15 +- .../protocol/transactions/types/ammdeposit.md | 26 +- .../protocol/transactions/types/ammvote.md | 16 +- .../transactions/types/ammwithdraw.md | 24 +- .../transactions/types/checkcancel.md | 11 +- .../protocol/transactions/types/checkcash.md | 11 +- .../transactions/types/checkcreate.md | 21 +- .../protocol/transactions/types/clawback.md | 15 +- .../transactions/types/depositpreauth.md | 22 +- .../protocol/transactions/types/diddelete.md | 14 +- .../protocol/transactions/types/didset.md | 16 +- .../transactions/types/escrowcancel.md | 9 +- .../transactions/types/escrowcreate.md | 11 +- .../transactions/types/escrowfinish.md | 13 +- .../protocol/transactions/types/index.md | 8 +- .../transactions/types/nftokenacceptoffer.md | 12 +- .../transactions/types/nftokenburn.md | 11 +- .../transactions/types/nftokencanceloffer.md | 23 +- .../transactions/types/nftokencreateoffer.md | 41 +- .../transactions/types/nftokenmint.md | 22 +- .../transactions/types/offercancel.md | 11 +- .../transactions/types/offercreate.md | 25 +- .../protocol/transactions/types/payment.md | 53 +- .../transactions/types/paymentchannelclaim.md | 13 +- .../types/paymentchannelcreate.md | 15 +- .../transactions/types/paymentchannelfund.md | 18 +- .../transactions/types/setregularkey.md | 15 +- .../transactions/types/signerlistset.md | 21 +- .../transactions/types/ticketcreate.md | 17 +- .../protocol/transactions/types/trustset.md | 27 +- .../types/xchainaccountcreatecommit.md | 7 +- .../xchainaddaccountcreateattestation.md | 7 +- .../types/xchainaddclaimattestation.md | 8 +- .../transactions/types/xchainclaim.md | 7 +- .../transactions/types/xchaincommit.md | 8 +- .../transactions/types/xchaincreatebridge.md | 8 +- .../transactions/types/xchaincreateclaimid.md | 8 +- .../transactions/types/xchainmodifybridge.md | 8 +- .../@i18n/ja/references/xrp-ledger-toml.md | 10 +- .../ja/references/xrpljs2-migration-guide.md | 26 +- .../contribute-code/contribute-code.md | 6 +- .../create-custom-transactors.md | 16 +- .../creating-diagrams.md | 8 +- .../documentation-translations.md | 2 +- .../contribute-documentation/index.md | 6 +- .../tutorial-structure.md | 12 +- content/@i18n/ja/resources/index.md | 8 +- .../@i18n/ja/resources/known-amendments.md | 236 ++- .../get-started-using-http-websocket-apis.md | 39 +- .../get-started-using-javascript.md | 63 +- ...onitor-incoming-payments-with-websocket.md | 77 +- .../tutorials/get-started/public-servers.md | 11 +- .../ja/tutorials/get-started/send-xrp.md | 201 ++- .../ja/tutorials/http-websocket-apis/index.md | 8 +- content/@i18n/ja/tutorials/java/index.md | 8 +- .../@i18n/ja/tutorials/javascript/index.md | 8 +- .../modular-tutorials-in-javascript/index.md | 8 +- .../nfts-using-javascript/index.md | 8 +- .../assign-a-regular-key-pair.md | 187 +- .../change-or-remove-a-regular-key-pair.md | 115 +- .../disable-master-key-pair.md | 139 +- .../offline-account-setup.md | 113 +- .../require-destination-tags.md | 39 +- .../send-a-multi-signed-transaction.md | 639 +++---- .../set-up-multi-signing.md | 301 ++-- .../manage-account-settings/use-tickets.md | 129 +- content/@i18n/ja/tutorials/python/index.md | 8 +- .../modular-tutorials-in-python/index.md | 8 +- content/@i18n/ja/tutorials/tasks/index.md | 8 +- .../tasks/manage-account-settings/index.md | 8 +- .../use-specialized-payment-types/index.md | 8 +- .../use-escrows/index.md | 6 +- .../ja/tutorials/tasks/use-tokens/index.md | 8 +- .../use-checks/cancel-a-check.md | 159 +- .../cash-a-check-for-a-flexible-amount.md | 164 +- .../cash-a-check-for-an-exact-amount.md | 106 +- .../use-checks/look-up-checks-by-recipient.md | 48 +- .../use-checks/look-up-checks-by-sender.md | 48 +- .../use-checks/send-a-check.md | 217 +-- .../use-checks/use-checks.md | 11 +- .../use-escrows/cancel-an-expired-escrow.md | 108 +- .../use-escrows/look-up-escrows.md | 55 +- .../send-a-conditionally-held-escrow.md | 119 +- .../use-escrows/send-a-time-held-escrow.md | 160 +- .../use-payment-channels.md | 713 ++++---- .../ja/use-cases/defi/algorithmic-trading.md | 28 +- content/@i18n/ja/use-cases/defi/index.md | 8 +- .../use-cases/defi/list-xrp-as-an-exchange.md | 42 +- content/@i18n/ja/use-cases/index.md | 8 +- content/@i18n/ja/use-cases/payments/index.md | 8 +- .../payments/peer-to-peer-payments-uc.md | 16 +- .../payments/restricting-deposits-uc.md | 8 +- .../use-cases/payments/smart-contracts-uc.md | 4 +- .../tokenization/authorized-minter.md | 42 +- .../use-cases/tokenization/digital-artist.md | 30 +- .../@i18n/ja/use-cases/tokenization/index.md | 8 +- .../tokenization/nft-mkt-overview.md | 44 +- .../tokenization/nftoken-marketplace.md | 30 +- .../tokenization/stablecoin-issuer.md | 61 +- .../_code-samples/key-derivation/js/README.md | 20 +- .../_code-samples/send-a-memo/js/README.md | 4 +- .../tx-serialization/js/README.md | 24 +- content/_snippets/checkcash-prereqs.md | 6 +- content/_snippets/common-links.md | 1070 +++++++++++ content/_snippets/conf-file-location.ja.md | 1 - content/_snippets/conf-file-location.md | 2 +- .../data_types/account_sequence.ja.md | 11 - .../_snippets/data_types/account_sequence.md | 10 +- content/_snippets/data_types/address.ja.md | 12 - content/_snippets/data_types/address.md | 8 +- .../_snippets/data_types/currency_code.ja.md | 6 - content/_snippets/data_types/currency_code.md | 8 +- content/_snippets/data_types/ledger_index.md | 2 +- content/_snippets/data_types/public_key.md | 2 +- content/_snippets/etl-source-object.md | 2 +- .../interactive-tutorials/generate-step.md | 2 +- content/_snippets/ledger-objects-intro.ja.md | 3 - content/_snippets/ledger-objects-intro.md | 4 +- content/_snippets/lowercase-types.md | 2 +- content/_snippets/macros/page-children.md | 15 - content/_snippets/no-cli-syntax.ja.md | 1 - content/_snippets/no-cli-syntax.md | 4 +- content/_snippets/port-descriptor-object.md | 4 +- content/_snippets/post-rippled-install.md | 18 +- content/_snippets/pseudo-tx-fields-intro.md | 4 +- content/_snippets/public-signing-note.md | 2 +- content/_snippets/rippled-api-links.md | 260 --- content/_snippets/rippled_versions.md | 58 - content/_snippets/secret-key-warning.md | 4 +- .../_snippets/setfee_uniqueness_note.ja.md | 1 - content/_snippets/setfee_uniqueness_note.md | 4 +- .../_snippets/string-number-formatting.ja.md | 8 - content/_snippets/string-number-formatting.md | 2 +- content/_snippets/tutorial-sign-step.ja.md | 3 - content/_snippets/tutorial-sign-step.md | 2 +- content/_snippets/tutorial-submit-step.md | 2 +- content/_snippets/tx-fields-intro.ja.md | 3 - content/_snippets/tx-fields-intro.md | 4 +- content/_snippets/tx-metadata-field-table.md | 8 +- content/_snippets/tx-type-links.md | 52 - content/_snippets/unsynced_warning_logs.ja.md | 1 - content/_snippets/unsynced_warning_logs.md | 2 +- content/concepts/accounts/account-types.md | 24 +- content/concepts/accounts/accounts.md | 35 +- content/concepts/accounts/addresses.md | 74 +- .../concepts/accounts/cryptographic-keys.md | 57 +- .../accounts/decentralized-identifiers.md | 8 +- .../concepts/accounts/deleting-accounts.md | 17 +- content/concepts/accounts/depositauth.md | 45 +- content/concepts/accounts/multi-signing.md | 25 +- content/concepts/accounts/reserves.md | 31 +- content/concepts/accounts/tickets.md | 35 +- .../consensus-principles-and-rules.md | 18 +- .../consensus-protections.md | 10 +- .../consensus-protocol/consensus-structure.md | 66 +- .../concepts/consensus-protocol/fee-voting.md | 27 +- content/concepts/consensus-protocol/index.md | 12 +- .../consensus-protocol/invariant-checking.md | 29 +- .../consensus-protocol/negative-unl.md | 47 +- content/concepts/index.md | 8 +- content/concepts/ledgers/index.md | 20 +- .../concepts/ledgers/ledger-close-times.md | 4 +- content/concepts/ledgers/ledger-structure.md | 28 +- .../ledgers/open-closed-validated-ledgers.md | 6 +- .../networks-and-servers/amendments.md | 22 +- .../networks-and-servers/clustering.md | 14 +- .../concepts/networks-and-servers/index.md | 15 +- .../networks-and-servers/ledger-history.md | 41 +- .../networks-and-servers/parallel-networks.md | 26 +- .../networks-and-servers/peer-protocol.md | 48 +- .../rippled-server-modes.md | 50 +- .../networks-and-servers/the-clio-server.md | 6 +- .../transaction-censorship-detection.md | 17 +- .../payment-types/bouncing-payments.md | 4 +- content/concepts/payment-types/checks.md | 30 +- .../payment-types/cross-currency-payments.md | 21 +- .../payment-types/direct-xrp-payments.md | 18 +- content/concepts/payment-types/escrow.md | 29 +- content/concepts/payment-types/index.md | 8 +- .../payment-types/partial-payments.md | 51 +- .../payment-types/payment-channels.md | 18 +- .../robustly-monitoring-for-payments.md | 6 +- .../sending-payments-to-customers.md | 9 +- .../decentralized-exchange/autobridging.md | 14 +- .../automated-market-makers.md | 29 +- .../tokens/decentralized-exchange/index.md | 35 +- .../tokens/decentralized-exchange/offers.md | 35 +- .../tokens/decentralized-exchange/ticksize.md | 7 +- .../fungible-tokens/authorized-trust-lines.md | 29 +- .../fungible-tokens/clawing-back-tokens.md | 7 +- .../common-misconceptions-about-freezes.md | 8 +- .../tokens/fungible-tokens/demurrage.md | 8 +- .../tokens/fungible-tokens/freezes.md | 35 +- .../concepts/tokens/fungible-tokens/index.md | 37 +- .../concepts/tokens/fungible-tokens/paths.md | 34 +- .../tokens/fungible-tokens/rippling.md | 31 +- .../stablecoins/configuration.md | 17 +- .../stablecoins/precautions.md | 20 +- .../fungible-tokens/stablecoins/settings.md | 18 +- content/concepts/tokens/index.md | 17 +- .../tokens/nfts/authorizing-another-minter.md | 1 - content/concepts/tokens/nfts/batch-minting.md | 6 +- content/concepts/tokens/nfts/collections.md | 3 +- .../nfts/guaranteeing-a-fixed-supply.md | 8 +- content/concepts/tokens/nfts/index.md | 13 +- content/concepts/tokens/nfts/nft-apis.md | 13 +- .../tokens/nfts/reserve-requirements.md | 20 +- .../tokens/nfts/running-an-nft-auction.md | 4 +- content/concepts/tokens/nfts/trading.md | 11 +- content/concepts/tokens/transfer-fees.md | 30 +- content/concepts/transactions/fees.md | 6 +- .../canceling-a-transaction.md | 13 +- .../transactions/finality-of-results/index.md | 28 +- .../look-up-transaction-results.md | 102 +- .../transaction-malleability.md | 31 +- content/concepts/transactions/index.md | 66 +- .../reliable-transaction-submission.md | 49 +- .../concepts/transactions/secure-signing.md | 69 +- .../source-and-destination-tags.md | 18 +- .../concepts/transactions/transaction-cost.md | 61 +- .../transactions/transaction-queue.md | 36 +- .../xrpl-sidechains/cross-chain-bridges.md | 10 +- content/concepts/xrpl-sidechains/index.md | 10 +- .../xrpl-sidechains/witness-servers.md | 7 +- content/contributing/report-a-scam.md | 2 +- content/faq.md | 18 +- content/infrastructure/commandline-usage.md | 22 +- .../configure-amendment-voting.md | 27 +- .../configuration/configure-grpc.md | 35 +- .../configuration/configure-statsd.md | 44 +- ...onnect-your-rippled-to-the-xrp-test-net.md | 212 ++- .../configure-advisory-deletion.md | 73 +- .../data-retention/configure-full-history.md | 83 +- .../configure-history-sharding.md | 29 +- .../configure-online-deletion.md | 53 +- .../data-retention/history-sharding.md | 26 +- .../configuration/data-retention/index.md | 8 +- .../data-retention/online-deletion.md | 40 +- .../configuration/enable-public-signing.md | 36 +- content/infrastructure/configuration/index.md | 8 +- .../peering/cluster-rippled-servers.md | 103 +- .../peering/configure-a-private-server.md | 62 +- .../peering/configure-the-peer-crawler.md | 53 +- .../peering/enable-link-compression.md | 13 +- .../peering/forward-ports-for-peering.md | 15 +- .../configuration/peering/index.md | 8 +- .../manually-connect-to-a-specific-peer.md | 40 +- .../peering/set-max-number-of-peers.md | 35 +- .../peering/use-a-peer-reservation.md | 85 +- .../configuration/server-modes/index.md | 8 +- .../run-rippled-as-a-stock-server.md | 32 +- .../run-rippled-as-a-validator.md | 134 +- content/infrastructure/index.md | 8 +- .../build-on-linux-mac-windows.md | 5 +- .../build-run-rippled-in-reporting-mode.md | 194 +- .../installation/capacity-planning.md | 45 +- content/infrastructure/installation/index.md | 8 +- .../installation/install-clio-on-ubuntu.md | 114 +- ...install-rippled-on-centos-rhel-with-yum.md | 114 +- .../installation/install-rippled-on-ubuntu.md | 92 +- .../rippled-1-3-migration-instructions.md | 86 +- .../installation/system-requirements.md | 22 +- .../update-rippled-automatically-on-linux.md | 32 +- .../update-rippled-manually-on-centos-rhel.md | 54 +- .../update-rippled-manually-on-ubuntu.md | 52 +- .../advance-the-ledger-in-stand-alone-mode.md | 11 +- .../testing-and-auditing/index.md | 8 +- ...load-a-saved-ledger-in-stand-alone-mode.md | 17 +- .../run-private-network-with-docker.md | 530 +++--- ...-new-genesis-ledger-in-stand-alone-mode.md | 27 +- .../testing-and-auditing/test-amendments.md | 7 +- .../troubleshooting/diagnosing-problems.md | 138 +- .../fix-sqlite-tx-db-page-size-issue.md | 100 +- .../health-check-interventions.md | 25 +- .../infrastructure/troubleshooting/index.md | 8 +- .../troubleshooting/server-doesnt-sync.md | 64 +- .../server-is-amendment-blocked.md | 6 +- .../troubleshooting/server-wont-start.md | 60 +- .../understanding-log-messages.md | 75 +- content/introduction/crypto-wallets.md | 6 +- content/introduction/index.md | 8 +- content/introduction/software-ecosystem.md | 25 +- .../introduction/transactions-and-requests.md | 11 +- .../introduction/what-is-the-xrp-ledger.md | 22 +- content/introduction/what-is-xrp.md | 16 +- content/redirects.yaml | 1564 ++++++++++++++++- content/references/client-libraries.md | 10 +- content/references/data-api.md | 6 +- .../admin-api-methods/index.md | 76 +- .../key-generation-methods/index.md | 8 +- .../validation_create.md | 41 +- .../key-generation-methods/wallet_propose.md | 67 +- .../can_delete.md | 29 +- .../crawl_shards.md | 46 +- .../download_shard.md | 48 +- .../index.md | 8 +- .../ledger_cleaner.md | 23 +- .../ledger_request.md | 39 +- .../log_level.md | 31 +- .../logrotate.md | 33 +- .../node_to_shard.md | 51 +- .../peer-management-methods/connect.md | 38 +- .../peer-management-methods/index.md | 8 +- .../peer_reservations_add.md | 53 +- .../peer_reservations_del.md | 53 +- .../peer_reservations_list.md | 53 +- .../peer-management-methods/peers.md | 47 +- .../server-control-methods/index.md | 8 +- .../server-control-methods/ledger_accept.md | 19 +- .../server-control-methods/stop.md | 35 +- .../server-control-methods/validation_seed.md | 33 +- .../signing-methods/index.md | 8 +- .../admin-api-methods/signing-methods/sign.md | 64 +- .../signing-methods/sign_for.md | 50 +- .../consensus_info.md | 39 +- .../status-and-debugging-methods/feature.md | 57 +- .../fetch_info.md | 35 +- .../get_counts.md | 35 +- .../status-and-debugging-methods/index.md | 8 +- .../status-and-debugging-methods/print.md | 27 +- .../validator_info.md | 53 +- .../validator_list_sites.md | 43 +- .../validators.md | 41 +- .../api-conventions/ctid.md | 8 +- .../api-conventions/error-formatting.md | 28 +- .../api-conventions/index.md | 10 +- .../api-conventions/markers-and-pagination.md | 16 +- .../api-conventions/rate-limiting.md | 21 +- .../api-conventions/request-formatting.md | 37 +- .../api-conventions/response-formatting.md | 57 +- .../api-conventions/rippled-server-states.md | 5 +- .../references/http-websocket-apis/index.md | 8 +- .../peer-port-methods/health-check.md | 36 +- .../peer-port-methods/index.md | 10 +- .../peer-port-methods/peer-crawler.md | 44 +- .../peer-port-methods/validator-list.md | 43 +- .../account-methods/account_channels.md | 54 +- .../account-methods/account_currencies.md | 42 +- .../account-methods/account_info.md | 84 +- .../account-methods/account_lines.md | 49 +- .../account-methods/account_nfts.md | 36 +- .../account-methods/account_objects.md | 61 +- .../account-methods/account_offers.md | 46 +- .../account-methods/account_tx.md | 42 +- .../account-methods/gateway_balances.md | 44 +- .../account-methods/index.md | 8 +- .../account-methods/noripple_check.md | 36 +- .../clio-methods/ledger-clio.md | 77 +- .../clio-methods/nft_history.md | 47 +- .../clio-methods/nft_info.md | 33 +- .../clio-methods/server_info-clio.md | 56 +- .../public-api-methods/clio-server/index.md | 8 +- .../public-api-methods/index.md | 110 +- .../ledger-methods/index.md | 8 +- .../ledger-methods/ledger.md | 83 +- .../ledger-methods/ledger_closed.md | 38 +- .../ledger-methods/ledger_current.md | 40 +- .../ledger-methods/ledger_data.md | 40 +- .../ledger-methods/ledger_entry.md | 311 ++-- .../path-and-order-book-methods/amm_info.md | 47 +- .../book_offers.md | 48 +- .../deposit_authorized.md | 42 +- .../path-and-order-book-methods/index.md | 8 +- .../nft_buy_offers.md | 36 +- .../nft_sell_offers.md | 36 +- .../path-and-order-book-methods/path_find.md | 64 +- .../ripple_path_find.md | 45 +- .../channel_authorize.md | 53 +- .../payment-channel-methods/channel_verify.md | 42 +- .../payment-channel-methods/index.md | 8 +- .../server-info-methods/fee.md | 52 +- .../server-info-methods/index.md | 8 +- .../server-info-methods/manifest.md | 49 +- .../server-info-methods/server_definitions.md | 26 +- .../server-info-methods/server_info.md | 87 +- .../server-info-methods/server_state.md | 64 +- .../subscription-methods/index.md | 8 +- .../subscription-methods/subscribe.md | 94 +- .../subscription-methods/unsubscribe.md | 22 +- .../transaction-methods/index.md | 8 +- .../transaction-methods/submit.md | 102 +- .../transaction-methods/submit_multisigned.md | 46 +- .../transaction-methods/transaction_entry.md | 43 +- .../transaction-methods/tx.md | 102 +- .../transaction-methods/tx_history.md | 38 +- .../utility-methods/index.md | 8 +- .../utility-methods/json.md | 20 +- .../utility-methods/ping.md | 35 +- .../utility-methods/random.md | 37 +- content/references/protocol/binary-format.md | 98 +- .../protocol/data-types/base58-encodings.md | 14 +- .../protocol/data-types/basic-data-types.md | 69 +- .../protocol/data-types/currency-formats.md | 32 +- .../references/protocol/data-types/nftoken.md | 23 +- content/references/protocol/index.md | 8 +- .../protocol/ledger-data/common-fields.md | 13 +- .../references/protocol/ledger-data/index.md | 10 +- .../ledger-entry-types/accountroot.md | 56 +- .../ledger-entry-types/amendments.md | 29 +- .../ledger-data/ledger-entry-types/amm.md | 21 +- .../ledger-data/ledger-entry-types/bridge.md | 10 +- .../ledger-data/ledger-entry-types/check.md | 25 +- .../ledger-entry-types/depositpreauth.md | 21 +- .../ledger-data/ledger-entry-types/did.md | 20 +- .../ledger-entry-types/directorynode.md | 35 +- .../ledger-data/ledger-entry-types/escrow.md | 23 +- .../ledger-entry-types/feesettings.md | 30 +- .../ledger-data/ledger-entry-types/index.md | 8 +- .../ledger-entry-types/ledgerhashes.md | 17 +- .../ledger-entry-types/negativeunl.md | 17 +- .../ledger-entry-types/nftokenoffer.md | 22 +- .../ledger-entry-types/nftokenpage.md | 17 +- .../ledger-data/ledger-entry-types/offer.md | 23 +- .../ledger-entry-types/paychannel.md | 25 +- .../ledger-entry-types/ripplestate.md | 31 +- .../ledger-entry-types/signerlist.md | 23 +- .../ledger-data/ledger-entry-types/ticket.md | 29 +- .../ledger-entry-types/xchainownedclaimid.md | 7 +- .../xchainownedcreateaccountclaimid.md | 8 +- .../protocol/ledger-data/ledger-header.md | 18 +- .../protocol/transactions/common-fields.md | 49 +- .../references/protocol/transactions/index.md | 12 +- .../protocol/transactions/metadata.md | 33 +- .../enableamendment.md | 11 +- .../pseudo-transaction-types.md | 15 +- .../pseudo-transaction-types/setfee.md | 17 +- .../pseudo-transaction-types/unlmodify.md | 12 +- .../transaction-results/tec-codes.md | 63 +- .../transaction-results/tef-codes.md | 23 +- .../transaction-results/tel-codes.md | 29 +- .../transaction-results/tem-codes.md | 33 +- .../transaction-results/ter-codes.md | 17 +- .../transaction-results/tes-success.md | 5 +- .../transaction-results.md | 23 +- .../transactions/types/accountdelete.md | 32 +- .../protocol/transactions/types/accountset.md | 57 +- .../protocol/transactions/types/ammbid.md | 32 +- .../protocol/transactions/types/ammcreate.md | 27 +- .../protocol/transactions/types/ammdelete.md | 15 +- .../protocol/transactions/types/ammdeposit.md | 28 +- .../protocol/transactions/types/ammvote.md | 16 +- .../transactions/types/ammwithdraw.md | 24 +- .../transactions/types/checkcancel.md | 13 +- .../protocol/transactions/types/checkcash.md | 13 +- .../transactions/types/checkcreate.md | 23 +- .../protocol/transactions/types/clawback.md | 15 +- .../transactions/types/depositpreauth.md | 24 +- .../protocol/transactions/types/diddelete.md | 14 +- .../protocol/transactions/types/didset.md | 16 +- .../transactions/types/escrowcancel.md | 13 +- .../transactions/types/escrowcreate.md | 12 +- .../transactions/types/escrowfinish.md | 15 +- .../protocol/transactions/types/index.md | 8 +- .../transactions/types/nftokenacceptoffer.md | 16 +- .../transactions/types/nftokenburn.md | 13 +- .../transactions/types/nftokencanceloffer.md | 25 +- .../transactions/types/nftokencreateoffer.md | 43 +- .../transactions/types/nftokenmint.md | 22 +- .../transactions/types/offercancel.md | 15 +- .../transactions/types/offercreate.md | 27 +- .../protocol/transactions/types/payment.md | 53 +- .../transactions/types/paymentchannelclaim.md | 15 +- .../types/paymentchannelcreate.md | 18 +- .../transactions/types/paymentchannelfund.md | 22 +- .../transactions/types/setregularkey.md | 17 +- .../transactions/types/signerlistset.md | 23 +- .../transactions/types/ticketcreate.md | 19 +- .../protocol/transactions/types/trustset.md | 31 +- .../types/xchainaccountcreatecommit.md | 7 +- .../xchainaddaccountcreateattestation.md | 7 +- .../types/xchainaddclaimattestation.md | 8 +- .../transactions/types/xchainclaim.md | 8 +- .../transactions/types/xchaincommit.md | 8 +- .../transactions/types/xchaincreatebridge.md | 8 +- .../transactions/types/xchaincreateclaimid.md | 8 +- .../transactions/types/xchainmodifybridge.md | 8 +- content/references/xrp-ledger-toml.md | 18 +- content/references/xrpljs2-migration-guide.md | 26 +- .../contribute-code/contribute-code.md | 6 +- .../create-custom-transactors.md | 16 +- .../creating-diagrams.md | 10 +- .../documentation-translations.md | 2 +- .../contribute-documentation/index.md | 6 +- .../tutorial-structure.md | 12 +- content/resources/index.md | 8 +- content/resources/known-amendments.md | 242 ++- content/sidebars.yaml | 597 +++---- .../build-a-browser-wallet-in-javascript.md | 69 +- .../build-a-desktop-wallet-in-javascript.md | 180 +- .../build-a-desktop-wallet-in-python.md | 207 +-- .../get-started-using-http-websocket-apis.md | 39 +- .../get-started/get-started-using-java.md | 54 +- .../get-started-using-javascript.md | 63 +- .../get-started/get-started-using-php.md | 52 +- .../get-started/get-started-using-python.md | 62 +- ...onitor-incoming-payments-with-websocket.md | 86 +- .../tutorials/get-started/public-servers.md | 11 +- content/tutorials/get-started/send-xrp.md | 321 ++-- .../tutorials/http-websocket-apis/index.md | 8 +- content/tutorials/java/index.md | 8 +- content/tutorials/javascript/index.md | 8 +- .../modular-tutorials-in-javascript/index.md | 8 +- .../nfts-using-javascript/index.md | 8 +- .../assign-a-regular-key-pair.md | 205 ++- .../change-or-remove-a-regular-key-pair.md | 132 +- .../disable-master-key-pair.md | 139 +- .../offline-account-setup.md | 114 +- .../require-destination-tags.md | 88 +- .../send-a-multi-signed-transaction.md | 611 +++---- .../set-up-multi-signing.md | 303 ++-- .../manage-account-settings/use-tickets.md | 129 +- content/tutorials/python/index.md | 8 +- .../modular-tutorials-in-python/index.md | 8 +- .../nfts-using-python/index.md | 8 +- ...n-an-authorized-minter-using-javascript.md | 72 +- .../batch-mint-nfts-using-javascript.md | 288 +-- .../broker-an-nft-sale-using-javascript.md | 316 ++-- ...eate-accounts-send-xrp-using-javascript.md | 12 +- ...te-conditional-escrows-using-javascript.md | 17 +- ...ate-time-based-escrows-using-javascript.md | 19 +- ...rustline-send-currency-using-javascript.md | 24 +- .../mint-and-burn-nfts-using-javascript.md | 22 +- .../quickstart/py-authorize-minter.md | 12 +- .../tutorials/quickstart/py-batch-minting.md | 10 +- .../tutorials/quickstart/py-broker-sale.md | 38 +- .../quickstart/py-create-accounts-send-xrp.md | 16 +- .../py-create-conditional-escrows.md | 17 +- .../py-create-time-based-escrows.md | 18 +- .../py-create-trustline-send-currency.md | 14 +- .../quickstart/py-mint-and-burn-nfts.md | 10 +- .../quickstart/py-quickstart-intro.md | 6 +- .../tutorials/quickstart/py-transfer-nfts.md | 24 +- .../send-payments-using-javascript.md | 6 +- .../quickstart/send-payments-using-python.md | 16 +- .../transfer-nfts-using-javascript.md | 16 +- content/tutorials/tasks/index.md | 8 +- .../tasks/manage-account-settings/index.md | 8 +- .../use-specialized-payment-types/index.md | 8 +- .../use-escrows/index.md | 6 +- content/tutorials/tasks/use-tokens/index.md | 8 +- .../tasks/use-xrpl-sidechains/index.md | 8 +- .../set-up-iou-iou-bridge.md | 12 +- .../set-up-xrp-xrp-bridge.md | 9 +- .../submit-cross-chain-transaction.md | 10 +- ...nel-to-enable-an-inter-exchange-network.md | 56 +- .../use-checks/cancel-a-check.md | 159 +- .../cash-a-check-for-a-flexible-amount.md | 164 +- .../cash-a-check-for-an-exact-amount.md | 106 +- .../use-checks/look-up-checks-by-recipient.md | 48 +- .../use-checks/look-up-checks-by-sender.md | 48 +- .../use-checks/send-a-check.md | 217 +-- .../use-checks/use-checks.md | 11 +- .../use-escrows/cancel-an-expired-escrow.md | 121 +- .../use-escrows/look-up-escrows.md | 46 +- .../send-a-conditionally-held-escrow.md | 145 +- .../use-escrows/send-a-time-held-escrow.md | 172 +- .../use-an-escrow-as-a-smart-contract.md | 48 +- .../use-payment-channels.md | 46 +- .../create-an-automated-market-maker.md | 129 +- .../tutorials/use-tokens/enable-no-freeze.md | 82 +- .../use-tokens/enact-global-freeze.md | 108 +- .../use-tokens/freeze-a-trust-line.md | 120 +- .../use-tokens/issue-a-fungible-token.md | 228 ++- .../trade-in-the-decentralized-exchange.md | 125 +- content/use-cases/defi/algorithmic-trading.md | 28 +- content/use-cases/defi/index.md | 8 +- .../use-cases/defi/list-xrp-as-an-exchange.md | 64 +- content/use-cases/index.md | 8 +- content/use-cases/payments/index.md | 8 +- .../payments/peer-to-peer-payments-uc.md | 16 +- .../payments/restricting-deposits-uc.md | 10 +- .../use-cases/payments/smart-contracts-uc.md | 4 +- .../tokenization/authorized-minter.md | 52 +- .../use-cases/tokenization/digital-artist.md | 40 +- content/use-cases/tokenization/index.md | 8 +- .../tokenization/nft-mkt-overview.md | 56 +- .../tokenization/nftoken-marketplace.md | 39 +- .../tokenization/stablecoin-issuer.md | 61 +- tool/autosubs_cheatsheet.yml | 702 ++++---- 898 files changed, 19879 insertions(+), 18631 deletions(-) rename content/{_snippets/checkcash-prereqs.ja.md => @i18n/ja/_snippets/checkcash-prereqs.md} (71%) rename content/{_snippets/clawback-disclaimer.ja.md => @i18n/ja/_snippets/clawback-disclaimer.md} (100%) create mode 100644 content/@i18n/ja/_snippets/conf-file-location.md create mode 100644 content/@i18n/ja/_snippets/data_types/account_sequence.md create mode 100644 content/@i18n/ja/_snippets/data_types/address.md create mode 100644 content/@i18n/ja/_snippets/data_types/currency_code.md rename content/{_snippets/data_types/hash.ja.md => @i18n/ja/_snippets/data_types/hash.md} (100%) rename content/{_snippets/data_types/ledger_index.ja.md => @i18n/ja/_snippets/data_types/ledger_index.md} (82%) rename content/{_snippets/data_types/public_key.ja.md => @i18n/ja/_snippets/data_types/public_key.md} (90%) rename content/{_snippets/etl-source-object.ja.md => @i18n/ja/_snippets/etl-source-object.md} (100%) rename content/{_snippets/interactive-tutorials/connect-step.ja.md => @i18n/ja/_snippets/interactive-tutorials/connect-step.md} (100%) rename content/{_snippets/interactive-tutorials/generate-step.ja.md => @i18n/ja/_snippets/interactive-tutorials/generate-step.md} (65%) rename content/{_snippets/interactive-tutorials/wait-step.ja.md => @i18n/ja/_snippets/interactive-tutorials/wait-step.md} (100%) rename content/{_snippets/issuing-and-operational-addresses-intro.ja.md => @i18n/ja/_snippets/issuing-and-operational-addresses-intro.md} (100%) create mode 100644 content/@i18n/ja/_snippets/ledger-objects-intro.md create mode 100644 content/@i18n/ja/_snippets/no-cli-syntax.md rename content/{_snippets/peer_reservation_object.ja.md => @i18n/ja/_snippets/peer_reservation_object.md} (100%) rename content/{_snippets/port-descriptor-object.ja.md => @i18n/ja/_snippets/port-descriptor-object.md} (84%) rename content/{_snippets/post-rippled-install.ja.md => @i18n/ja/_snippets/post-rippled-install.md} (63%) create mode 100644 content/@i18n/ja/_snippets/setfee_uniqueness_note.md create mode 100644 content/@i18n/ja/_snippets/string-number-formatting.md create mode 100644 content/@i18n/ja/_snippets/tutorial-sign-step.md create mode 100644 content/@i18n/ja/_snippets/tx-fields-intro.md rename content/{_snippets/tx-metadata-field-table.ja.md => @i18n/ja/_snippets/tx-metadata-field-table.md} (53%) create mode 100644 content/@i18n/ja/_snippets/unsynced_warning_logs.md rename content/{_snippets/wait-for-validation.ja.md => @i18n/ja/_snippets/wait-for-validation.md} (100%) create mode 100644 content/_snippets/common-links.md delete mode 100644 content/_snippets/conf-file-location.ja.md delete mode 100644 content/_snippets/data_types/account_sequence.ja.md delete mode 100644 content/_snippets/data_types/address.ja.md delete mode 100644 content/_snippets/data_types/currency_code.ja.md delete mode 100644 content/_snippets/ledger-objects-intro.ja.md delete mode 100644 content/_snippets/no-cli-syntax.ja.md delete mode 100644 content/_snippets/setfee_uniqueness_note.ja.md delete mode 100644 content/_snippets/string-number-formatting.ja.md delete mode 100644 content/_snippets/tutorial-sign-step.ja.md delete mode 100644 content/_snippets/tx-fields-intro.ja.md delete mode 100644 content/_snippets/unsynced_warning_logs.ja.md diff --git a/content/_snippets/checkcash-prereqs.ja.md b/content/@i18n/ja/_snippets/checkcash-prereqs.md similarity index 71% rename from content/_snippets/checkcash-prereqs.ja.md rename to content/@i18n/ja/_snippets/checkcash-prereqs.md index ea2edeb1c6..5e02c9d160 100644 --- a/content/_snippets/checkcash-prereqs.ja.md +++ b/content/@i18n/ja/_snippets/checkcash-prereqs.md @@ -4,6 +4,6 @@ Checkを換金するための前提条件は、正確な金額を換金する場 - 例えば、以下の例では、あるCheckのIDとして`838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334`を使用していますが、各ステップをご自分で行う際には、異なるIDを使用する必要があります。 - Checkに記載されている受取人の**アドレス**と**秘密鍵**。このアドレスは、Checkオブジェクトの`Destination`アドレスと一致している必要があります。 - 発行済み通貨用のCheckの場合は、ご自身(受取人)にイシュアーに対するトラストラインがある必要があります。このトラストライン上のご自身の限度額は、受け取る金額を追加するための残高より十分高くなければなりません。 - - トラストラインと限度額について詳しくは、[トークン](tokens.html)および[トラストラインと発行](trust-lines-and-issuing.html)を参照してください。 -- [トランザクションに安全に署名できる手段](secure-signing.html)。 -- XRP Ledgerに接続できる[クライアントライブラリ](client-libraries.html)か、それとも[HTTPライブラリ、WebSocketライブラリなど](get-started-using-http-websocket-apis.html)。 + - トラストラインと限度額について詳しくは、[トークン](../concepts/tokens/index.md)および[トラストラインと発行](../concepts/tokens/fungible-tokens/index.md)を参照してください。 +- [トランザクションに安全に署名できる手段](../concepts/transactions/secure-signing.md)。 +- XRP Ledgerに接続できる[クライアントライブラリ](../references/client-libraries.md)か、それとも[HTTPライブラリ、WebSocketライブラリなど](../tutorials/get-started/get-started-using-http-websocket-apis.md)。 diff --git a/content/_snippets/clawback-disclaimer.ja.md b/content/@i18n/ja/_snippets/clawback-disclaimer.md similarity index 100% rename from content/_snippets/clawback-disclaimer.ja.md rename to content/@i18n/ja/_snippets/clawback-disclaimer.md diff --git a/content/@i18n/ja/_snippets/conf-file-location.md b/content/@i18n/ja/_snippets/conf-file-location.md new file mode 100644 index 0000000000..e2032b606a --- /dev/null +++ b/content/@i18n/ja/_snippets/conf-file-location.md @@ -0,0 +1 @@ +[推奨インストール](../infrastructure/installation/index.md)では、デフォルトで`/etc/opt/ripple/rippled.cfg`という設定ファイルを使用します。その他の場所としては、`$HOME/.config/ripple/rippled.cfg`(`$HOME`は`rippled`を実行しているユーザーのホームディレクトリです)、`$HOME/.local/ripple/rippled.cfg`または`rippled`を起動した現在の作業ディレクトリがあります。 diff --git a/content/@i18n/ja/_snippets/data_types/account_sequence.md b/content/@i18n/ja/_snippets/data_types/account_sequence.md new file mode 100644 index 0000000000..c0b59b6de0 --- /dev/null +++ b/content/@i18n/ja/_snippets/data_types/account_sequence.md @@ -0,0 +1,11 @@ +シーケンス番号とは、32ビットの符号なし整数であり、指定された送金元からのトランザクションが正しい順序で1回だけ実行されるようにするために使用されます。 + +すべての[XRP Ledgerアカウント](../../concepts/accounts/accounts.md)には、`Sequence`フィールドに1つのシーケンス番号があり、アカウントがトランザクションを送信し、そのトランザクションが[検証済みレジャー](../../concepts/ledgers/index.md)に記録されるたびに、1ずつ増加します。シーケンス番号は各[トランザクション](../../concepts/transactions/index.md)の`Sequence`フィールドにもあり、そのトランザクションが実行される際にアカウントの現在のシーケンス番号と一致している必要があります。各アカウントで、各シーケンス番号は番号順に一度だけ使用できます。 + +[DeletableAccounts Amendment](../../resources/known-amendments.md#deletableaccounts) を適用する場合、アカウントの`Sequence`番号の始まりが、アカウントが作成されたレジャーバージョンの[レジャーインデックス][]と一致します。DeletableAccountsを適用しない場合、どのアカウントの`Sequence`番号も1で始まります。 + +トランザクションがレジャーに記録されると、トランザクションの実行が成功したか[`tec`クラスのエラーコード](../../references/protocol/transactions/transaction-results/tec-codes.md)で失敗したかを問わず、シーケンス番号が1つ消費されます。トランザクションのその他の失敗についてはレジャーに記録されないため、送金元のシーケンス番号は変更されません(その他の影響もありません)。 + +レジャー内では、[アドレス][]とシーケンス番号を一緒に使用して、その送金元とシーケンス番号を持つ検証済みトランザクションによって作成されたオブジェクトが識別されることがあります。この方法で識別されたオブジェクトの例として、[Escrow](../../concepts/payment-types/escrow.md)と[オファー](../../concepts/tokens/decentralized-exchange/offers.md)が挙げられます。 + +複数の未確定のトランザクションが、同じ送金元と同じシーケンス番号を持つことが可能です。そのようなトランザクションは互いに排他的であり、検証済みレジャーに記録されるのはいずれか一方のみです。(それ以外は最終的に影響ありません。) diff --git a/content/@i18n/ja/_snippets/data_types/address.md b/content/@i18n/ja/_snippets/data_types/address.md new file mode 100644 index 0000000000..873a561add --- /dev/null +++ b/content/@i18n/ja/_snippets/data_types/address.md @@ -0,0 +1,13 @@ +XRP Ledgerのアカウントは、XRP Ledgerの[base58][]フォーマットのアドレスで識別されます。このアドレスはアカウントのマスター[公開鍵](https://en.wikipedia.org/wiki/Public-key_cryptography)から生成され、マスター公開鍵は秘密鍵から生成されます。アドレスはJSON文字列で記述され、以下の特徴があります。 + +* 長さは25から35文字 +* 文字`r`から始まる +* 数字"`0`"、大文字"`O`"、大文字"`I`"、小文字"`l`"を除く英数字 +* 大文字と小文字を区別 +* 4バイトのチェックサムが含まれており、ランダムな文字から有効なアドレスが生成される確率はおよそ232分の1 + +{% admonition type="info" name="注記" %} +[宛先タグ](../../concepts/transactions/source-and-destination-tags.md)をアドレスに「組み込む」**X**アドレス形式もあります。これらのアドレスは`X`(メインネット用)または`T`([テストネットワーク](../../concepts/networks-and-servers/parallel-networks.md)用)で始まります。取引所とウォレットは、顧客が知る必要のあるすべてのデータを1つの値で表すためにXアドレスを使用できます。詳細については、[Xアドレスフォーマットサイト](https://xrpaddress.info/)と[コーデック](https://github.com/xrp-community/xrpl-tagged-address-codec)をご覧ください + +XRP Ledgerプロトコルは「クラシック」アドレスのみをネイティブにサポートしていますが、多くの[クライアントライブラリ](../../references/client-libraries.md)はXアドレスもサポートしています。 +{% /admonition %} diff --git a/content/@i18n/ja/_snippets/data_types/currency_code.md b/content/@i18n/ja/_snippets/data_types/currency_code.md new file mode 100644 index 0000000000..5b797afcd2 --- /dev/null +++ b/content/@i18n/ja/_snippets/data_types/currency_code.md @@ -0,0 +1,6 @@ +[HTTP / WebSocket API](../../references/http-websocket-apis/index.md)は、2種類の通貨コードをサポートしています。 + +- **[標準通貨コード](../../references/protocol/data-types/currency-formats.md#標準通貨コード):** `"EUR"`や "USD"`のような3文字の文字列 +- **[非標準通貨コード](../../references/protocol/data-types/currency-formats.md#非標準通貨コード):** `"0158415500000000C1F76FFF6ECB0BAC600000000"`のような160ビットの16進数の文字列。これは一般的ではありません。 + +同じコードを持つトークンは、接続されたトラストラインを越えて[rippling(波及)](../../concepts/tokens/fungible-tokens/rippling.md)することができます。通貨コードには、XRP Ledgerに組み込まれた他の動作はありません。 diff --git a/content/_snippets/data_types/hash.ja.md b/content/@i18n/ja/_snippets/data_types/hash.md similarity index 100% rename from content/_snippets/data_types/hash.ja.md rename to content/@i18n/ja/_snippets/data_types/hash.md diff --git a/content/_snippets/data_types/ledger_index.ja.md b/content/@i18n/ja/_snippets/data_types/ledger_index.md similarity index 82% rename from content/_snippets/data_types/ledger_index.ja.md rename to content/@i18n/ja/_snippets/data_types/ledger_index.md index 832a74a9aa..bd7d105b1a 100644 --- a/content/_snippets/data_types/ledger_index.ja.md +++ b/content/@i18n/ja/_snippets/data_types/ledger_index.md @@ -1,4 +1,4 @@ -レジャーインデックスは、32ビットの符号なし整数であり、レジャーを識別するために使用します。レジャーインデックスは、レジャーの _シーケンス番号_ と呼ばれることもあります。([アカウントシーケンス](basic-data-types.html#アカウントシーケンス)とは異なります。)一番最初のレジャーでは、レジャーインデックスは1でした。新しいレジャーのレジャーインデックスは、その直前のレジャーのレジャーインデックスに1を加算した値になります。 +レジャーインデックスは、32ビットの符号なし整数であり、レジャーを識別するために使用します。レジャーインデックスは、レジャーの _シーケンス番号_ と呼ばれることもあります。([アカウントシーケンス](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)とは異なります。)一番最初のレジャーでは、レジャーインデックスは1でした。新しいレジャーのレジャーインデックスは、その直前のレジャーのレジャーインデックスに1を加算した値になります。 レジャーインデックスがレジャーの順番を示すのに対し、[ハッシュ][]値はレジャーの正確なコンテンツを示します。2つのレジャーが同じハッシュ値を持つ場合、それらは必ず同じものです。検証済みレジャーでは、ハッシュ値とレジャーインデックスは等しく有効で、1:1の関係です。しかし、進行中のレジャーに対しては、以下の理由によりその限りでありません。 diff --git a/content/_snippets/data_types/public_key.ja.md b/content/@i18n/ja/_snippets/data_types/public_key.md similarity index 90% rename from content/_snippets/data_types/public_key.ja.md rename to content/@i18n/ja/_snippets/data_types/public_key.md index f6972af7f9..ef5f573ecd 100644 --- a/content/_snippets/data_types/public_key.ja.md +++ b/content/@i18n/ja/_snippets/data_types/public_key.md @@ -2,7 +2,7 @@ XRP Ledgerは、以下のようなさまざまな状況で暗号署名を検証 * トランザクションを承認するため。トランザクションに公開鍵が添付されます。公開鍵は、送信元のXRP Ledgerのアドレスか送信者のレギュラーキーアドレスに数学的に関連付けられている必要があります。 * `rippled`サーバー間のピアツーピア通信の安全を確保するため。これには、データベースが空の状態でサーバーが起動する場合に、サーバーがランダムに生成する「ノード公開鍵」が使用されます。 -* コンセンサスプロセスの一環として検証投票に署名するため。これには、サーバーの運用者が[設定ファイルに定義](run-rippled-as-a-validator.html)した「バリデータ公開鍵」が使用されます。 +* コンセンサスプロセスの一環として検証投票に署名するため。これには、サーバーの運用者が[設定ファイルに定義](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)した「バリデータ公開鍵」が使用されます。 バリデータ公開鍵とノード公開鍵は、まったく同じフォーマットを使用します。 diff --git a/content/_snippets/etl-source-object.ja.md b/content/@i18n/ja/_snippets/etl-source-object.md similarity index 100% rename from content/_snippets/etl-source-object.ja.md rename to content/@i18n/ja/_snippets/etl-source-object.md diff --git a/content/_snippets/interactive-tutorials/connect-step.ja.md b/content/@i18n/ja/_snippets/interactive-tutorials/connect-step.md similarity index 100% rename from content/_snippets/interactive-tutorials/connect-step.ja.md rename to content/@i18n/ja/_snippets/interactive-tutorials/connect-step.md diff --git a/content/_snippets/interactive-tutorials/generate-step.ja.md b/content/@i18n/ja/_snippets/interactive-tutorials/generate-step.md similarity index 65% rename from content/_snippets/interactive-tutorials/generate-step.ja.md rename to content/@i18n/ja/_snippets/interactive-tutorials/generate-step.md index 3b719746dd..0bf7df0704 100644 --- a/content/_snippets/interactive-tutorials/generate-step.ja.md +++ b/content/@i18n/ja/_snippets/interactive-tutorials/generate-step.md @@ -12,4 +12,4 @@
{{ end_step() }} -**注意:** Rippleは[TestnetとDevnet](parallel-networks.html)をテストの目的でのみ運用しており、その状態とすべての残高を定期的にリセットしています。予防措置として、Testnet、DevnetとMainnetで同じアドレスを使用**しない**ことをお勧めします。 +**注意:** Rippleは[TestnetとDevnet](../../concepts/networks-and-servers/parallel-networks.md)をテストの目的でのみ運用しており、その状態とすべての残高を定期的にリセットしています。予防措置として、Testnet、DevnetとMainnetで同じアドレスを使用**しない**ことをお勧めします。 diff --git a/content/_snippets/interactive-tutorials/wait-step.ja.md b/content/@i18n/ja/_snippets/interactive-tutorials/wait-step.md similarity index 100% rename from content/_snippets/interactive-tutorials/wait-step.ja.md rename to content/@i18n/ja/_snippets/interactive-tutorials/wait-step.md diff --git a/content/_snippets/issuing-and-operational-addresses-intro.ja.md b/content/@i18n/ja/_snippets/issuing-and-operational-addresses-intro.md similarity index 100% rename from content/_snippets/issuing-and-operational-addresses-intro.ja.md rename to content/@i18n/ja/_snippets/issuing-and-operational-addresses-intro.md diff --git a/content/@i18n/ja/_snippets/ledger-objects-intro.md b/content/@i18n/ja/_snippets/ledger-objects-intro.md new file mode 100644 index 0000000000..544f87eb7d --- /dev/null +++ b/content/@i18n/ja/_snippets/ledger-objects-intro.md @@ -0,0 +1,3 @@ +各[レジャー](../concepts/ledgers/index.md)の状態ツリーは**レジャーオブジェクト**のセットで構成されており、それらが総合して共有レジャーのすべての設定、残高、関係を表します。 + +rippledサーバーが互いに通信するために使用する[ピアプロトコル](../concepts/networks-and-servers/peer-protocol.md)では、レジャーオブジェクトは生[バイナリーフォーマット](../references/protocol/binary-format.md)で表されます。rippled APIでは、レジャーオブジェクトはJSONオブジェクトとして表されます。 diff --git a/content/@i18n/ja/_snippets/no-cli-syntax.md b/content/@i18n/ja/_snippets/no-cli-syntax.md new file mode 100644 index 0000000000..4332bb4e76 --- /dev/null +++ b/content/@i18n/ja/_snippets/no-cli-syntax.md @@ -0,0 +1,3 @@ +{% admonition type="info" name="注記" %} +このメソッドにはコマンドライン構文がありません。代わりに[jsonメソッド][]を使って、コマンドラインからこのメソッドにアクセスすることができます。 +{% /admonition %} diff --git a/content/_snippets/peer_reservation_object.ja.md b/content/@i18n/ja/_snippets/peer_reservation_object.md similarity index 100% rename from content/_snippets/peer_reservation_object.ja.md rename to content/@i18n/ja/_snippets/peer_reservation_object.md diff --git a/content/_snippets/port-descriptor-object.ja.md b/content/@i18n/ja/_snippets/port-descriptor-object.md similarity index 84% rename from content/_snippets/port-descriptor-object.ja.md rename to content/@i18n/ja/_snippets/port-descriptor-object.md index 146e667433..3be901e374 100644 --- a/content/_snippets/port-descriptor-object.ja.md +++ b/content/@i18n/ja/_snippets/port-descriptor-object.md @@ -6,6 +6,6 @@ | フィールド | 値 | 説明 | |------------|-------------|-------------| | `port` | 文字列 - 数値 | サーバがリッスンしているポート番号。 | -| `protocol` | 文字列の配列 | このポートに接続されているプロトコルの一覧。有効なプロトコルには、JSON-RPCの`http`または`https`、WebSocketの`ws`、`ws2`、`wss`、`wss2`、[gRPC](configure-grpc.html)の`grpc`、[XRP Ledgerピアプロトコル](peer-protocol.html)の`peer`があります。 | +| `protocol` | 文字列の配列 | このポートに接続されているプロトコルの一覧。有効なプロトコルには、JSON-RPCの`http`または`https`、WebSocketの`ws`、`ws2`、`wss`、`wss2`、[gRPC](../infrastructure/configuration/configure-grpc.md)の`grpc`、[XRP Ledgerピアプロトコル](../concepts/networks-and-servers/peer-protocol.md)の`peer`があります。 | **注記:** ネットワークインフラによっては、ここで報告されるポートやプロトコルが、外部のネットワークからサーバに到達する方法と一致しないことがあります。例えば、TLSがロードバランサやプロキシで終了する場合、サーバはあるポートで`http`と報告するかもしれませんが、外部からはポート443の`https`でしか到達できないかもしれません。 diff --git a/content/_snippets/post-rippled-install.ja.md b/content/@i18n/ja/_snippets/post-rippled-install.md similarity index 63% rename from content/_snippets/post-rippled-install.ja.md rename to content/@i18n/ja/_snippets/post-rippled-install.md index b808b15aa9..3be43aae61 100644 --- a/content/_snippets/post-rippled-install.ja.md +++ b/content/@i18n/ja/_snippets/post-rippled-install.md @@ -1,24 +1,24 @@ `rippled`が残りのネットワークと同期されるまでには数分かかることがあります。その間、レジャーがない旨を知らせる警告が出力されます。 -`rippled`ログメッセージの詳細は、[ログメッセージについて](understanding-log-messages.html)を参照してください。 +`rippled`ログメッセージの詳細は、[ログメッセージについて](../infrastructure/troubleshooting/understanding-log-messages.md)を参照してください。 -`rippled`が残りのネットワークと同期されたら、ストック`rippled`サーバーが完全に機能するようになります。このサーバーを、ローカル署名やXRP LedgerへのAPIアクセスに使用できます。`rippled`サーバーがネットワークと同期されているかどうかを判別するには、[`rippled`サーバーの状況](rippled-server-states.html)を使用します。[`rippled`のコマンドラインインターフェイス](get-started-using-http-websocket-apis.html#コマンドライン)を使用すれば、これを迅速にテストできます。 +`rippled`が残りのネットワークと同期されたら、ストック`rippled`サーバーが完全に機能するようになります。このサーバーを、ローカル署名やXRP LedgerへのAPIアクセスに使用できます。`rippled`サーバーがネットワークと同期されているかどうかを判別するには、[`rippled`サーバーの状況](../references/http-websocket-apis/api-conventions/rippled-server-states.md)を使用します。[`rippled`のコマンドラインインターフェイス](../tutorials/get-started/get-started-using-http-websocket-apis.md#コマンドライン)を使用すれば、これを迅速にテストできます。 ```sh rippled server_info ``` -rippled APIを使用した`rippled`サーバーとの通信について詳しくは、[rippled API reference](http-websocket-apis.html)を参照してください。 +rippled APIを使用した`rippled`サーバーとの通信について詳しくは、[rippled API reference](../references/http-websocket-apis/index.md)を参照してください。 -ストック`rippled`サーバーを実行できたら、次に検証サーバーとして実行してみましょう。検証サーバーについて、そして検証サーバーを実行する理由については、[バリデータとしてのrippledの実行](run-rippled-as-a-validator.html)を参照してください。 +ストック`rippled`サーバーを実行できたら、次に検証サーバーとして実行してみましょう。検証サーバーについて、そして検証サーバーを実行する理由については、[バリデータとしてのrippledの実行](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)を参照してください。 -`rippled`サーバーの起動でお困りですか? [rippledサーバーが起動しない](server-wont-start.html)を参照してください。 +`rippled`サーバーの起動でお困りですか? [rippledサーバーが起動しない](../infrastructure/troubleshooting/server-wont-start.md)を参照してください。 ### その他の構成 -`rippled`は、デフォルト構成でXRP Ledgerに接続する必要があります。ただし、`rippled.cfg`ファイルを編集すれば、設定を変更できます。推奨される構成設定については、[容量の計画](capacity-planning.html)を参照してください。 +`rippled`は、デフォルト構成でXRP Ledgerに接続する必要があります。ただし、`rippled.cfg`ファイルを編集すれば、設定を変更できます。推奨される構成設定については、[容量の計画](../infrastructure/installation/capacity-planning.md)を参照してください。 -{% include '_snippets/conf-file-location.ja.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} すべての構成オプションの説明については、[`rippled` GitHubリポジトリー](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)を参照してください。 @@ -30,4 +30,4 @@ rippled APIを使用した`rippled`サーバーとの通信について詳しく `rippled`を定期的に更新して、残りのXRP Ledgerネットワークと同期させておく必要があります。[rippledのGoogleグループ](https://groups.google.com/forum/#!forum/ripple-server)をサブスクライブすれば、`rippled`の新しいリリースに関する通知を受け取ることができます。 -`rippled`のパッケージには、[Linuxでの自動更新を有効にする](update-rippled-automatically-on-linux.html)ために使用できるスクリプトが含まれています。その他のプラットフォームでは、手動での更新が必要です。 +`rippled`のパッケージには、[Linuxでの自動更新を有効にする](../infrastructure/installation/update-rippled-automatically-on-linux.md)ために使用できるスクリプトが含まれています。その他のプラットフォームでは、手動での更新が必要です。 diff --git a/content/@i18n/ja/_snippets/setfee_uniqueness_note.md b/content/@i18n/ja/_snippets/setfee_uniqueness_note.md new file mode 100644 index 0000000000..737495f8c1 --- /dev/null +++ b/content/@i18n/ja/_snippets/setfee_uniqueness_note.md @@ -0,0 +1,3 @@ +{% admonition type="info" name="注記" %} +XRP Ledgerの全履歴では、トランザクションハッシュは一意であるというルールに例外があります。初期の2つの[SetFee疑似トランザクション][]にはまったく同じフィールドがあったため、ハッシュが同じ`1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B`になっています。これらのトランザクションのうち1つ目は[レジャー3715073に](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3715073%7D)表示され、2つ目は[レジャー3721729に](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3721729%7D)表示されます。新しい[SetFee疑似トランザクション][]には`LedgerSequence`フィールドが含まれるため、ハッシュは一意であることが保証されています。 +{% /admonition %} diff --git a/content/@i18n/ja/_snippets/string-number-formatting.md b/content/@i18n/ja/_snippets/string-number-formatting.md new file mode 100644 index 0000000000..6fc407ee56 --- /dev/null +++ b/content/@i18n/ja/_snippets/string-number-formatting.md @@ -0,0 +1,8 @@ +XRP LedgerのAPIでは、[XRP](../introduction/what-is-xrp.md)と[トークン](../concepts/tokens/index.md)の両方で、通貨の金額を数値で表現するために、JSONのネイティブの数値ではなく文字列を使用します。これは、JSONパーサーが自動的にすべてのJSON数値を浮動小数点形式で表現しようとする可能性がある場合に、精度の低下を防ぐためです。String値の中では、数値はネイティブのJSON数値と同じ方法で処理されます。 + +* 10進数 +* ゼロの接頭辞なし +* 小数点として`.`を含むことができます。例えば、½は`0.5`と表されます +* 負の金額は`-`から始まります +* `E`または`e`は10の累乗(科学的記数法)を表します。例えば`1.2E5`は1.2×105つまり`120000`と同じです。負の指数も可能です。 +* カンマ(`,`)は使用しません。 diff --git a/content/@i18n/ja/_snippets/tutorial-sign-step.md b/content/@i18n/ja/_snippets/tutorial-sign-step.md new file mode 100644 index 0000000000..103acb01eb --- /dev/null +++ b/content/@i18n/ja/_snippets/tutorial-sign-step.md @@ -0,0 +1,3 @@ +トランザクションに署名する最も安全な方法は、[クライアントライブラリ](../references/client-libraries.md)を使用してローカルで署名することです。[signメソッド](../references/http-websocket-apis/admin-api-methods/signing-methods/sign.md)を使用してトランザクションに署名することもできますが、その場合は信頼できる暗号化された接続を使用するか、ローカル接続を使用して、自分が管理しているサーバーに対してのみに行うようにしてください。 + +いずれの場合も、後のために、署名したトランザクションの識別用ハッシュを書き留めておいてください。 diff --git a/content/@i18n/ja/_snippets/tx-fields-intro.md b/content/@i18n/ja/_snippets/tx-fields-intro.md new file mode 100644 index 0000000000..b486bc31c3 --- /dev/null +++ b/content/@i18n/ja/_snippets/tx-fields-intro.md @@ -0,0 +1,3 @@ +## {% $frontmatter.seo.title %} フィールド + +[共通フィールド][]に加えて、{% $frontmatter.seo.title %}トランザクションは以下のフィールドを使用します。 diff --git a/content/_snippets/tx-metadata-field-table.ja.md b/content/@i18n/ja/_snippets/tx-metadata-field-table.md similarity index 53% rename from content/_snippets/tx-metadata-field-table.ja.md rename to content/@i18n/ja/_snippets/tx-metadata-field-table.md index 8340714904..0804058f77 100644 --- a/content/_snippets/tx-metadata-field-table.ja.md +++ b/content/@i18n/ja/_snippets/tx-metadata-field-table.md @@ -1,7 +1,7 @@ | フィールド | 値 | 説明 | |:--------------------------------------|:--------------------|:---------------| -| `AffectedNodes` | 配列 | このトランザクションで作成、削除、または修正された[レジャーオブジェクト](ledger-object-types.html)のリストと、個々のオブジェクトに対する具体的な変更内容。 | +| `AffectedNodes` | 配列 | このトランザクションで作成、削除、または修正された[レジャーオブジェクト](../references/protocol/ledger-data/ledger-entry-types/index.md)のリストと、個々のオブジェクトに対する具体的な変更内容。 | | `DeliveredAmount` | [通貨額][] | **廃止予定。**`delivered_amount`で置き換えられます。Partial Paymentsでない場合は省略されます。 | | `TransactionIndex` | 符号なし整数 | トランザクションが記録されているレジャーでのトランザクションの位置。この配列は0から始まります。(例えば、値が`2`の場合、そのレジャーの3番目のトランザクションであったことを意味します)。 | -| `TransactionResult` | 文字列 | トランザクションが成功したか、どのような理由で失敗したかを示す[結果コード](transaction-results.html)。 | -| [`delivered_amount`](transaction-metadata.html#delivered_amount) | [通貨額][] | `Destination`アカウントが実際に受取った[通貨額][]。このフィールドは、トランザクションが[Partial Payments](partial-payments.html)であるかどうかにかかわらず、送金された金額を特定するために使用します。[新規: rippled 0.27.0][] | +| `TransactionResult` | 文字列 | トランザクションが成功したか、どのような理由で失敗したかを示す[結果コード](../references/protocol/transactions/transaction-results/transaction-results.md)。 | +| [`delivered_amount`](../references/protocol/transactions/metadata.md#delivered_amount) | [通貨額][] | `Destination`アカウントが実際に受取った[通貨額][]。このフィールドは、トランザクションが[Partial Payments](../concepts/payment-types/partial-payments.md)であるかどうかにかかわらず、送金された金額を特定するために使用します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.27.0" %}新規: rippled 0.27.0{% /badge %} | diff --git a/content/@i18n/ja/_snippets/unsynced_warning_logs.md b/content/@i18n/ja/_snippets/unsynced_warning_logs.md new file mode 100644 index 0000000000..7d4b70553d --- /dev/null +++ b/content/@i18n/ja/_snippets/unsynced_warning_logs.md @@ -0,0 +1 @@ +サーバー起動後の最初の5~15分間に、サーバーがネットワークの他の部分と同期せず、このようなメッセージが出力されることは特に異常な動作ではありません。サーバー起動後かなり経過してからこれらのメッセージが書き込まれる場合は、問題が発生している可能性があります。一般的な原因としては、ネットワーク接続の信頼性が低いことや、[ハードウェアのスペック](../infrastructure/installation/system-requirements.md)が不十分であることが考えられます。また、同じハードウェアで実行されている他のプロセスがリソースをめぐって`rippled`と競合している場合にも発生する可能性があります。(`rippled`とリソースをめぐって競合する可能性のある他のプロセスの例としては、スケジュール済みバックアップ、ウィルススキャナー、定期的なデータベースクリーナーなどがあります。) diff --git a/content/_snippets/wait-for-validation.ja.md b/content/@i18n/ja/_snippets/wait-for-validation.md similarity index 100% rename from content/_snippets/wait-for-validation.ja.md rename to content/@i18n/ja/_snippets/wait-for-validation.md diff --git a/content/@i18n/ja/concepts/accounts/account-types.md b/content/@i18n/ja/concepts/accounts/account-types.md index 49fdd63ced..8f6174c57b 100644 --- a/content/@i18n/ja/concepts/accounts/account-types.md +++ b/content/@i18n/ja/concepts/accounts/account-types.md @@ -8,14 +8,14 @@ labels: --- # アカウントの種類 -{% include '_snippets/issuing-and-operational-addresses-intro.ja.md' %} - +{% partial file="/_snippets/issuing-and-operational-addresses-intro.md" /%} + ## 資金のライフサイクル トークン発行者がこのような役割を分担すると、以下の図のように資金が一方向に流れるようになります。 -{{ include_svg("img/issued-currency-funds-flow.ja.svg", "図: 発行アドレスから待機アドレス、運用アドレス、顧客アドレスおよびパートナーアドレスに移動し、最後に発行アドレスに戻る資金フロー")}} +[{% inline-svg file="/img/issued-currency-funds-flow.ja.svg" /%}](/img/issued-currency-funds-flow.ja.svg "図: 発行アドレスから待機アドレス、運用アドレス、顧客アドレスおよびパートナーアドレスに移動し、最後に発行アドレスに戻る資金フロー") 発行アドレスは、待機アドレスに支払いを送信することでトークンを作成します。これらのトークンは(多くの場合)債務を表すため、発行アドレスの観点からはマイナスの価値を持ちます。同じトークンは、待機アドレスの観点も含めると、他の観点からはプラスの価値を持ちます。 @@ -39,7 +39,7 @@ labels: ### 複数の発行アドレス -金融機関はXRP Ledgerで1つの発行アドレスから複数の通貨を発行することができます。ただし、[送金手数料](transfer-fees.html)のパーセンテージや[Global Freeze](freezes.html)の状態など、1つのアドレスから発行される全ての(代替可能)トークンに等しく適用される設定もあります。トークンの種類ごとに設定を変えて柔軟に管理したい場合、金融機関は通貨ごとに異なる発行アドレスを使用する必要があります。 +金融機関はXRP Ledgerで1つの発行アドレスから複数の通貨を発行することができます。ただし、[送金手数料](../tokens/transfer-fees.md)のパーセンテージや[Global Freeze](../tokens/fungible-tokens/freezes.md)の状態など、1つのアドレスから発行される全ての(代替可能)トークンに等しく適用される設定もあります。トークンの種類ごとに設定を変えて柔軟に管理したい場合、金融機関は通貨ごとに異なる発行アドレスを使用する必要があります。 ## 運用アドレス @@ -69,17 +69,14 @@ labels: ## 関連項目 - **コンセプト:** - - [アカウント](accounts.html) - - [暗号鍵](cryptographic-keys.html) + - [アカウント](accounts.md) + - [暗号鍵](cryptographic-keys.md) - **チュートリアル:** - - [レギュラーキーペアの割り当て](assign-a-regular-key-pair.html) - - [レギュラーキーペアの変更または削除](change-or-remove-a-regular-key-pair.html) + - [レギュラーキーペアの割り当て](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md) + - [レギュラーキーペアの変更または削除](../../tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **リファレンス:** - [account_infoメソッド][] - [SetRegularKeyトランザクション][] - - [AccountRootオブジェクト](accountroot.html) + - [AccountRootオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/accounts.md b/content/@i18n/ja/concepts/accounts/accounts.md index 26503f81d0..da2ec58862 100644 --- a/content/@i18n/ja/concepts/accounts/accounts.md +++ b/content/@i18n/ja/concepts/accounts/accounts.md @@ -18,24 +18,24 @@ XRP Ledgerの「アカウント」は、XRPの所有者と[トランザクショ アカウントの種等な構成要素は次の通りです。 - 識別用の**アドレス**。例えば、`rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`。 -- **XRPの残高**。XRP残高の一部は、[準備金](reserves.html)用に確保されています。 -- **シーケンス番号**。このアカウントから送信されるトランザクションがすべて、正しい順序で、それぞれ1回のみ適用されるようにします。トランザクションを実行するには、トランザクションのシーケンス番号と送金元のシーケンス番号が一致する必要があります。その後も、トランザクションが適用されている限り、アカウントのシーケンス番号は1ずつ増加します。(関連項目: [基本的なデータタイプ: アカウントシーケンス](basic-data-types.html#アカウントシーケンス)) +- **XRPの残高**。XRP残高の一部は、[準備金](reserves.md)用に確保されています。 +- **シーケンス番号**。このアカウントから送信されるトランザクションがすべて、正しい順序で、それぞれ1回のみ適用されるようにします。トランザクションを実行するには、トランザクションのシーケンス番号と送金元のシーケンス番号が一致する必要があります。その後も、トランザクションが適用されている限り、アカウントのシーケンス番号は1ずつ増加します。(関連項目: [基本的なデータタイプ: アカウントシーケンス](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)) - このアカウントと残高に影響を及ぼした**トランザクションの履歴**。 -- [トランザクションの承認](transactions.html#トランザクションの承認)方法。 +- [トランザクションの承認](../transactions/index.md#トランザクションの承認)方法。 - アカウント固有のマスターキーのペア。(無効にできますが、変更はできません。) - ローテーションして使用できる「レギュラー」キーペア。 - - [マルチシグ](multi-signing.html)の署名者のリスト。(アカウントのコアデータとは別に保存されます。) + - [マルチシグ](multi-signing.md)の署名者のリスト。(アカウントのコアデータとは別に保存されます。) -アカウントのコアデータは、[AccountRoot](accountroot.html)レジャーエントリに保存されます。アカウントは、他の複数のタイプのレジャーエントリの所有者(または部分的な所有者)になることもできます。 +アカウントのコアデータは、[AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)レジャーエントリに保存されます。アカウントは、他の複数のタイプのレジャーエントリの所有者(または部分的な所有者)になることもできます。 **ヒント:** XRP Ledgerの「アカウント」は、財務上の用途(例:「銀行口座」)やコンピュータ上の用途(例:「UNIXアカウント」)で使用されます。XRP以外の通貨および資産はXRP Ledgerアカウント自体には保存されません。そのような資産はそれぞれ、両当事者を結ぶ「トラストライン」と呼ばれる会計関係に保存されます。 ### アカウントの作成 -「アカウント作成」専用のトランザクションはありません。Paymentトランザクションでまだアカウントを所有していない数学的に有効なアドレスに[アカウントの準備金](reserves.html)以上のXRPが送信されると、[Paymentトランザクション][]で自動的に新しいアカウントが作成されます。これはアカウントへの _資金提供_ と呼ばれ、レジャーに[AccountRootエントリー](accountroot.html)が作成されます。それ以外のトランザクションでアカウントを作成することはできません。 +「アカウント作成」専用のトランザクションはありません。Paymentトランザクションでまだアカウントを所有していない数学的に有効なアドレスに[アカウントの準備金](reserves.md)以上のXRPが送信されると、[Paymentトランザクション][]で自動的に新しいアカウントが作成されます。これはアカウントへの _資金提供_ と呼ばれ、レジャーに[AccountRootエントリー](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)が作成されます。それ以外のトランザクションでアカウントを作成することはできません。 -**注意:** アカウントへ資金提供をすることは、そのアカウントに対して特別な権限を持つことには**なりません**。アカウントのアドレスに対応する秘密鍵を持っている人なら誰でも、アカウントとそれに含まれるすべてのXRPの完全制御権を持っています。一部のアドレスでは、誰も秘密鍵を持っていない場合があります。その場合、アカウントは[ブラックホール](addresses.html#特別なアドレス)になり、XRPは永久に失われます。 +**注意:** アカウントへ資金提供をすることは、そのアカウントに対して特別な権限を持つことには**なりません**。アカウントのアドレスに対応する秘密鍵を持っている人なら誰でも、アカウントとそれに含まれるすべてのXRPの完全制御権を持っています。一部のアドレスでは、誰も秘密鍵を持っていない場合があります。その場合、アカウントは[ブラックホール](addresses.md#特別なアドレス)になり、XRPは永久に失われます。 XRP Ledgerでアカウントを取得する一般的な方法は次のとおりです。 @@ -45,27 +45,24 @@ XRP Ledgerでアカウントを取得する一般的な方法は次のとおり - 例えば、一般的な取引所でXRPを購入し、その取引所から、指定したアドレスにXRPを出金することができます。 - **注意:** 自身のXRP Ledgerアドレスで初めてXRPを受け取る場合は[アカウントの準備金](reserves.html)(現在は10XRP)を支払う必要があります。この金額のXRPは無期限に使用できなくなります。一方で、一般的な取引所では通常、顧客のXRPはすべて、共有されたいくつかのXRP Ledgerアカウントに保有されているため、顧客はその取引所で個々のアカウントの準備金を支払う必要はありません。引き出す前に、XRP Ledgerに直接アカウントを保有することが、金額に見合う価値があるかどうかを検討してください。 + **注意:** 自身のXRP Ledgerアドレスで初めてXRPを受け取る場合は[アカウントの準備金](reserves.md)(現在は10XRP)を支払う必要があります。この金額のXRPは無期限に使用できなくなります。一方で、一般的な取引所では通常、顧客のXRPはすべて、共有されたいくつかのXRP Ledgerアカウントに保有されているため、顧客はその取引所で個々のアカウントの準備金を支払う必要はありません。引き出す前に、XRP Ledgerに直接アカウントを保有することが、金額に見合う価値があるかどうかを検討してください。 ## 関連項目 - **コンセプト:** - - [準備金](reserves.html) - - [暗号鍵](cryptographic-keys.html) - - [発行アドレスと運用アドレス](account-types.html) + - [準備金](reserves.md) + - [暗号鍵](cryptographic-keys.md) + - [発行アドレスと運用アドレス](account-types.md) - **リファレンス:** - [account_infoメソッド][] - [wallet_proposeメソッド][] - [AccountSetトランザクション][] - [Paymentトランザクション][] - - [AccountRootオブジェクト](accountroot.html) + - [AccountRootオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - **チュートリアル:** - - [アカウント設定の管理(カテゴリー)](manage-account-settings.html) - - [WebSocketを使用した着信ペイメントの監視](monitor-incoming-payments-with-websocket.html) + - [アカウント設定の管理(カテゴリー)](../../tutorials/tasks/manage-account-settings/index.md) + - [WebSocketを使用した着信ペイメントの監視](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/addresses.md b/content/@i18n/ja/concepts/accounts/addresses.md index e80134d308..bf222db0bb 100644 --- a/content/@i18n/ja/concepts/accounts/addresses.md +++ b/content/@i18n/ja/concepts/accounts/addresses.md @@ -7,9 +7,9 @@ labels: --- # アドレス -{% include '_snippets/data_types/address.ja.md' %} +{% partial file="/_snippets/data_types/address.md" /%} -有効なアドレスであれば、資金を入金することで[XRP Ledgerのアカウントになる](accounts.html#creating-accounts)ことができます。また、[レギュラーキー](cryptographic-keys.html)や[署名者リスト](multi-signing.html)のメンバーとして、資金提供されていないアドレスを使用することもできます。資金を供給されたアカウントだけがトランザクションの送信者になることができます。 +有効なアドレスであれば、資金を入金することで[XRP Ledgerのアカウントになる](accounts.md#creating-accounts)ことができます。また、[レギュラーキー](cryptographic-keys.md)や[署名者リスト](multi-signing.md)のメンバーとして、資金提供されていないアドレスを使用することもできます。資金を供給されたアカウントだけがトランザクションの送信者になることができます。 キーペアの生成を始めとする有効なアドレスの作成は、厳密には数学的な作業です。キーペアの生成とアドレスの計算は、XRP Ledgerや他のいかなる第三者とも通信することなく、完全にオフラインで行うことができます。公開鍵からアドレスへの変換には一方向ハッシュ関数が使用されるため、公開鍵とアドレスの一致を確認することは可能ですが、アドレスのみから公開鍵を導き出すことは不可能です。(これが署名付きトランザクションに公開鍵と送信者のアドレスを含める理由の一部です)。 @@ -21,7 +21,7 @@ XRP Ledgerでは、特別な意味や歴史的な役割を持つアドレスが | アドレス | 名称 | 意味 | ブラック ホール? | |-------------------------------|-----|-----|----------------| | `rrrrrrrrrrrrrrrrrrrrrhoLvTp` | ACCOUNT\_ZERO | 値0を[base58][]形式にエンコードしたXRP Ledgerのアドレス。ピアツーピア通信では、このアドレスは、XRPの発行者として`rippled`で使用されます。 | はい | -| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT\_ONE | 値1を[base58][]形式にエンコードしたXRP Ledgerのアドレス。レジャーの[RippleStateエントリー](ripplestate.html)では、このアドレスは、トラストライン残高の発行者のプレースホルダーとして使用されます。 | はい | +| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT\_ONE | 値1を[base58][]形式にエンコードしたXRP Ledgerのアドレス。レジャーの[RippleStateエントリー](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)では、このアドレスは、トラストライン残高の発行者のプレースホルダーとして使用されます。 | はい | | `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` | ジェネシスアカウント | `rippled`で(スタンドアロンモードなど)新しいジェネシスレジャーが一から開始される場合、このアカウントはすべてのXRPを保持します。このアドレスは、シード値`masterpassphrase`から生成されており、この値は[ハードコーディング](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184)されています。 | いいえ | | `rrrrrrrrrrrrrrrrrNAMEtxvNvQ` | Ripple Namesの登録用ブラックホール | 以前、Ripple社は、Ripple Namesを登録するために、このアカウントにXRPを送金するようユーザに求めていました。| はい | | `rrrrrrrrrrrrrrrrrrrn5RM1rHd` | NaNアドレス | 以前のバージョンの[ripple-lib](https://github.com/XRPLF/xrpl.js)では、XRP Ledgerの[base58][]文字列エンコード形式を使用して、値[NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)をエンコードするときにこのアドレスを生成しました。 | はい | @@ -37,52 +37,58 @@ XRP Ledgerのアドレスは、[base58][]形式の _ディクショナリ_ `rpsh 次の図は、キーとアドレスの関係を示しています -{{ include_svg("img/address-encoding.ja.svg", "マスター公開鍵 + タイプ接頭辞 → アカウントID + チェックサム → アドレス") }} +[{% inline-svg file="/img/address-encoding.ja.svg" /%}](/img/address-encoding.ja.svg "マスター公開鍵 + タイプ接頭辞 → アカウントID + チェックサム → アドレス") -公開鍵からXRP Ledgerアドレスを計算する式は次の通りです。完全なサンプルコードついては、[`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/js/encode_address.js)をご覧ください。パスフレーズまたはシード値から公開鍵を導出するプロセスについては、[鍵の導出](cryptographic-keys.html#鍵導出)をご覧ください。 +公開鍵からXRP Ledgerアドレスを計算する式は次の通りです。完全なサンプルコードついては、[`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/js/encode_address.js)をご覧ください。パスフレーズまたはシード値から公開鍵を導出するプロセスについては、[鍵の導出](cryptographic-keys.md#鍵導出)をご覧ください。 1. 次の必須アルゴリズムをインポートします。SHA-256、RIPEMD160、base58。base58のディクショナリを設定します。 - 'use strict'; - const assert = require('assert'); - const crypto = require('crypto'); - const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; - const base58 = require('base-x')(R_B58_DICT); + ``` + 'use strict'; + const assert = require('assert'); + const crypto = require('crypto'); + const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; + const base58 = require('base-x')(R_B58_DICT); - assert(crypto.getHashes().includes('sha256')); - assert(crypto.getHashes().includes('ripemd160')); + assert(crypto.getHashes().includes('sha256')); + assert(crypto.getHashes().includes('ripemd160')); + ``` 2. 33バイトのECDSA secp256k1公開鍵、または32バイトのEd25519公開鍵で始めます。Ed25519キーの場合は、キーの前にバイト文字`0xED`を付与します。 - const pubkey_hex = - 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; - const pubkey = Buffer.from(pubkey_hex, 'hex'); - assert(pubkey.length == 33); + ``` + const pubkey_hex = + 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; + const pubkey = Buffer.from(pubkey_hex, 'hex'); + assert(pubkey.length == 33); + ``` 3. 公開鍵のSHA-256ハッシュの[RIPEMD160](https://en.wikipedia.org/wiki/RIPEMD)ハッシュを計算します。この値は「Account ID」です。 - const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); - const pubkey_outer_hash = crypto.createHash('ripemd160'); - pubkey_outer_hash.update(pubkey_inner_hash.digest()); - const account_id = pubkey_outer_hash.digest(); + ``` + const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); + const pubkey_outer_hash = crypto.createHash('ripemd160'); + pubkey_outer_hash.update(pubkey_inner_hash.digest()); + const account_id = pubkey_outer_hash.digest(); + ``` 4. アカウントIDのSHA-256ハッシュのSHA-256ハッシュを計算します。最初の4バイトを使用します。この値が「チェックサム」です。 - const address_type_prefix = Buffer.from([0x00]); - const payload = Buffer.concat([address_type_prefix, account_id]); - const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); - const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); - const checksum = chksum_hash2.slice(0,4); + ``` + const address_type_prefix = Buffer.from([0x00]); + const payload = Buffer.concat([address_type_prefix, account_id]); + const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); + const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); + const checksum = chksum_hash2.slice(0,4); + ``` 5. ペイロードとチェックサムを連結します。連結バッファーのbase58値を計算します。この結果が、アドレスになります。 - const dataToEncode = Buffer.concat([payload, checksum]); - const address = base58.encode(dataToEncode); - console.log(address); - // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN + ``` + const dataToEncode = Buffer.concat([payload, checksum]); + const address = base58.encode(dataToEncode); + console.log(address); + // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN + ``` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/cryptographic-keys.md b/content/@i18n/ja/concepts/accounts/cryptographic-keys.md index 4e67dd911c..1697086cc6 100644 --- a/content/@i18n/ja/concepts/accounts/cryptographic-keys.md +++ b/content/@i18n/ja/concepts/accounts/cryptographic-keys.md @@ -8,16 +8,16 @@ labels: --- # 暗号鍵 -XRP Ledgerでは、[トランザクション](transactions.html)による一連の具体的なアクションの実行が承認されていることを、デジタル署名によって証明します。署名されたトランザクションのみがネットワークに送信され、検証済みレジャーに含まれます。 +XRP Ledgerでは、[トランザクション](../transactions/index.md)による一連の具体的なアクションの実行が承認されていることを、デジタル署名によって証明します。署名されたトランザクションのみがネットワークに送信され、検証済みレジャーに含まれます。 -すべてのデジタル署名は、トランザクションの送信側アカウントに関連付けられている暗号鍵ペアに基づいています。キーペアはXRP Ledgerでサポートされている[暗号化署名アルゴリズム](#署名アルゴリズム)を使用して生成できます。キーペアの生成に使用されたアルゴリズムの種類にかかわらず、キーペアは[マスターキーペア](#マスターキーペア)、[レギュラーキーペア](#レギュラーキーペア)、または[署名者リスト](multi-signing.html)のメンバーとして使用できます。 +すべてのデジタル署名は、トランザクションの送信側アカウントに関連付けられている暗号鍵ペアに基づいています。キーペアはXRP Ledgerでサポートされている[暗号化署名アルゴリズム](#署名アルゴリズム)を使用して生成できます。キーペアの生成に使用されたアルゴリズムの種類にかかわらず、キーペアは[マスターキーペア](#マスターキーペア)、[レギュラーキーペア](#レギュラーキーペア)、または[署名者リスト](multi-signing.md)のメンバーとして使用できます。 **警告:** 秘密鍵のセキュリティを適切に維持することが重要です。デジタル署名は、あなたがトランザクション送信する権限を有していることをXRP Ledgerに対して検証できる唯一の手段であり、レジャーに提出されたトランザクションの取り消しや無効化を行う権限を有する管理者は存在しません。お使いのXRP Ledgerアカウントの秘密鍵があなた以外の何者かに知られた場合、その人物はあなたと同様にデジタル署名を作成し、トランザクションを承認することができます。 ## キーの生成 -多くの[クライアントライブラリ](client-libraries.html)やアプリケーションは、XRP Ledgerでの使用に合わせてキーペアを生成できます。もちろん、信頼できるデバイスやソフトウェアで生成されたキーペアのみを使用する必要があります。悪意のあるアプリケーションは、あなたの秘密情報を悪意のあるユーザーに公開する可能性があり、そのユーザーはあなたのアカウントから後でトランザクションを送信することができます。 +多くの[クライアントライブラリ](../../references/client-libraries.md)やアプリケーションは、XRP Ledgerでの使用に合わせてキーペアを生成できます。もちろん、信頼できるデバイスやソフトウェアで生成されたキーペアのみを使用する必要があります。悪意のあるアプリケーションは、あなたの秘密情報を悪意のあるユーザーに公開する可能性があり、そのユーザーはあなたのアカウントから後でトランザクションを送信することができます。 ## キーの構成要素 @@ -25,7 +25,7 @@ XRP Ledgerでは、[トランザクション](transactions.html)による一連 XRP Ledgerを扱う場合、パスフレーズ、シード、アカウントID、アドレスなど、いくつかの関連する値を使用することもあります。 -{{ include_svg("img/cryptographic-keys.ja.svg", "Diagram: パスフレーズ → シード → 秘密鍵 → 公開鍵 → アカウントID ←→ アドレス") }} +[{% inline-svg file="/img/cryptographic-keys.ja.svg" /%}](/img/cryptographic-keys.ja.svg "Diagram: パスフレーズ → シード → 秘密鍵 → 公開鍵 → アカウントID ←→ アドレス") _図: 暗号鍵の値の関係を簡略化した図_ パスフレーズ、シード、秘密鍵は**秘密**であり、あるアカウントのこれらの値のいずれかを知っていれば、有効な署名を行うことができ、そのアカウントを完全に制御することができます。もしあなたがアカウントを所有しているのであれば、アカウントの秘密情報には**細心の注意を払ってください**。もしあなたがそれらを持っていないなら、あなたは自分のアカウントを利用することはできません。もし他の誰かがそれらにアクセスすることができれば、彼らはあなたのアカウントをコントロールすることができます。 @@ -42,7 +42,7 @@ _図: 暗号鍵の値の関係を簡略化した図_ ### シード -_シード_ 値は、アカウントの実際の秘密鍵と公開鍵を[導出](#鍵導出)するために使用される、コンパクトな値です。[wallet_proposeメソッド][]のレスポンスでは、`master_key`,`master_seed`,`master_seed_hex`はすべて同一のシード値を様々な形式で表現します。これらの形式はいずれも、[`rippled` API](http-websocket-apis.html)やいくつかの[他のXRP Ledgerソフトウェア](software-ecosystem.html)で[トランザクションの署名](transactions.html#トランザクションへの署名とトランザクションの送信)に使用することができます。`master_`という接頭辞がついていますが、このシードが表す鍵は必ずしもアカウントのマスターキーではありません。この鍵ペアはレギュラーキーとして、あるいはマルチシグリストのメンバーとして使用することもできます。 +_シード_ 値は、アカウントの実際の秘密鍵と公開鍵を[導出](#鍵導出)するために使用される、コンパクトな値です。[wallet_proposeメソッド][]のレスポンスでは、`master_key`,`master_seed`,`master_seed_hex`はすべて同一のシード値を様々な形式で表現します。これらの形式はいずれも、[`rippled` API](../../references/http-websocket-apis/index.md)やいくつかの[他のXRP Ledgerソフトウェア](../../introduction/software-ecosystem.md)で[トランザクションの署名](../transactions/index.md#トランザクションへの署名とトランザクションの送信)に使用することができます。`master_`という接頭辞がついていますが、このシードが表す鍵は必ずしもアカウントのマスターキーではありません。この鍵ペアはレギュラーキーとして、あるいはマルチシグリストのメンバーとして使用することもできます。 シード値は秘密情報であるため、非常に厳重に保管する必要があります。あるアドレスのシード値を知っている人は、そのアドレスを実質的に完全にコントロールすることができます。 @@ -61,16 +61,16 @@ XRP Ledgerのトランザクションには、ネットワークがトランザ ### アカウントIDとアドレス -**アカウントID**は、[アカウント](accounts.html)またはキーペアの中核となる識別子です。これは公開鍵から派生します。XRP Ledgerのプロトコルでは、アカウントIDは20バイトのバイナリデータです。ほとんどのXRP Ledger APIは、アカウントIDをアドレスとして表現し、次の2つのフォーマットのうちの1つで表現します。 +**アカウントID**は、[アカウント](accounts.md)またはキーペアの中核となる識別子です。これは公開鍵から派生します。XRP Ledgerのプロトコルでは、アカウントIDは20バイトのバイナリデータです。ほとんどのXRP Ledger APIは、アカウントIDをアドレスとして表現し、次の2つのフォーマットのうちの1つで表現します。 - 「クラシックアドレス」は、[base58][]にチェックサム付きでアカウントIDを書きます。[wallet_proposeメソッド][]のレスポンスでは、これが`account_id`の値となります。 -- 「X-Address」は、アカウントIDと[宛先タグ](source-and-destination-tags.html)を組み合わせ、チェックサムとともに[base58][]にその値を書き込みます。 +- 「X-Address」は、アカウントIDと[宛先タグ](../transactions/source-and-destination-tags.md)を組み合わせ、チェックサムとともに[base58][]にその値を書き込みます。 どちらの形式でもチェックサムがあるため、わずかな変更でアドレスが無効になり、他の有効なアカウントと入れ替わる可能性はありません。これにより、タイプミスや送信エラーが発生しても、間違った場所に送金されることはありません。 -すべてのアカウントID(またはアドレス)が台帳のアカウントを参照しているわけではないことを知っておくことが重要です。キーとアドレスの導出は、純粋に数学的な操作です。アカウントがXRP Ledgerに情報を持つには、[XRPの支払いを受け](accounts.html#creating-accounts)、[準備金](reserves.html)を満たす必要があります。アカウントは、資金が供給されるまでトランザクションを送信することはできません。 +すべてのアカウントID(またはアドレス)が台帳のアカウントを参照しているわけではないことを知っておくことが重要です。キーとアドレスの導出は、純粋に数学的な操作です。アカウントがXRP Ledgerに情報を持つには、[XRPの支払いを受け](accounts.md#creating-accounts)、[準備金](reserves.md)を満たす必要があります。アカウントは、資金が供給されるまでトランザクションを送信することはできません。 -アカウントIDやアドレスが資金提供されたアカウントを指していない場合でも、そのアカウントIDやアドレスを使用して、[レギュラーキーペア](#レギュラーキーペア)や[署名者リストのメンバー](multi-signing.html)を表すことはできます。 +アカウントIDやアドレスが資金提供されたアカウントを指していない場合でも、そのアカウントIDやアドレスを使用して、[レギュラーキーペア](#レギュラーキーペア)や[署名者リストのメンバー](multi-signing.md)を表すことはできます。 ### キーの種類 @@ -81,13 +81,13 @@ XRP Ledgerは、複数の[暗号署名アルゴリズム](#署名アルゴリズ ## マスターキーペア -マスターキーペアは、秘密鍵と公開鍵で構成されています。アカウントのアドレスは、そのアカウントのマスターキーペアから得られるので、両者は[本質的な関係](addresses.html#アドレスのエンコード)となります。マスターキーペアの変更・削除はできませんが、無効にすることはできます。 +マスターキーペアは、秘密鍵と公開鍵で構成されています。アカウントのアドレスは、そのアカウントのマスターキーペアから得られるので、両者は[本質的な関係](addresses.md#アドレスのエンコード)となります。マスターキーペアの変更・削除はできませんが、無効にすることはできます。 -[wallet_proposeメソッド][]は、マスターキーペアを生成する方法の1つです。このメソッドからのレスポンスには、アカウントのシード、アドレス、マスター公開鍵が一緒に表示されます。マスターキーペアを設定する他の方法については、[安全な署名の設定](secure-signing.html)を参照してください。 +[wallet_proposeメソッド][]は、マスターキーペアを生成する方法の1つです。このメソッドからのレスポンスには、アカウントのシード、アドレス、マスター公開鍵が一緒に表示されます。マスターキーペアを設定する他の方法については、[安全な署名の設定](../transactions/secure-signing.md)を参照してください。 **注意:** 悪意のある行為者があなたのマスター秘密鍵(またはシード)を知った場合、マスター鍵ペアが無効化されていない限り、彼らはあなたのアカウントを完全にコントロールすることができます。彼らはあなたのアカウントが保持している全ての資金を盗み、その他の回復不能な損害を与えることができます。秘密鍵は慎重に扱ってください! -マスターキーペアは変更できないため、漏えいが発生した場合には無効化せざるを得ません。[マスターキーペアをオフラインで保管](offline-account-setup.html)し、代わりにアカウントのトランザクションの署名用にレギュラーキーペアを設定することを強くお勧めします。マスターキーペアを有効にしておきながらオンラインで使用することで、インターネットを使用してマスターキーペアにアクセスすることはできませんが、緊急時にマスターキーペアを使うことが可能になります。 +マスターキーペアは変更できないため、漏えいが発生した場合には無効化せざるを得ません。[マスターキーペアをオフラインで保管](../../tutorials/manage-account-settings/offline-account-setup.md)し、代わりにアカウントのトランザクションの署名用にレギュラーキーペアを設定することを強くお勧めします。マスターキーペアを有効にしておきながらオンラインで使用することで、インターネットを使用してマスターキーペアにアクセスすることはできませんが、緊急時にマスターキーペアを使うことが可能になります。 マスターキーペアをオフラインで保管する際には、不正使用者がアクセスできる場所に秘密情報(パスフレーズ、シード、秘密鍵)を保管しないようにします。たとえば、インターネットに一切接続されない物理的に隔離されたマシンに保管したり、紙に記入して安全な場所に保管します。一般的には、インターネットと相互にやり取りをするコンピュータプログラムがアクセスできる範囲内には保管しません。マスターキーペアは、緊急時(漏えいの恐れがある場合や実際に漏えいが発生した場合にレギュラーキーペアを変更するなど)に限り、最も信頼できるデバイスでのみ使用することが理想的です。 @@ -97,15 +97,15 @@ XRP Ledgerは、複数の[暗号署名アルゴリズム](#署名アルゴリズ **マスターキーペア**のみが、ある特定の処理を行うトランザクションを承認することができます。 -- アカウントの最初のトランザクションを送信する。アカウントはその他の方法で[トランザクションを承認](transactions.html#トランザクションの承認)して初期化することができないからです。 +- アカウントの最初のトランザクションを送信する。アカウントはその他の方法で[トランザクションを承認](../transactions/index.md#トランザクションの承認)して初期化することができないからです。 - マスターキーペアを無効化する。 -- [凍結](freezes.html#no-freeze)の機能を永久に放棄する。 +- [凍結](../tokens/fungible-tokens/freezes.md#no-freeze)の機能を永久に放棄する。 -- トランザクションコスト0XRPの特別な[キーリセットトランザクション](transaction-cost.html#key-resetトランザクション)を送信する。 +- トランザクションコスト0XRPの特別な[キーリセットトランザクション](../transactions/transaction-cost.md#key-resetトランザクション)を送信する。 -レギュラーキーや[マルチシグ](multi-signing.html)は、マスターキーペアと同じようにその他の処理を行うことができます。特に、マスターキーペアを無効にした後、レギュラーキーペアやマルチシグを使用して再び有効にすることができます。また、削除の条件を満たしていれば、[アカウントの削除](deleting-accounts.html)を行うことも可能です。 +レギュラーキーや[マルチシグ](multi-signing.md)は、マスターキーペアと同じようにその他の処理を行うことができます。特に、マスターキーペアを無効にした後、レギュラーキーペアやマルチシグを使用して再び有効にすることができます。また、削除の条件を満たしていれば、[アカウントの削除](deleting-accounts.md)を行うことも可能です。 ## レギュラーキーペア @@ -118,7 +118,7 @@ XRP Ledgerアカウントは、_レギュラーキーペア_ と呼ばれるセ レギュラーキーペアは、マスターキーペアと同じ形式です。生成方法も同じです(例えば、[wallet_proposeメソッド][]を使用します)。唯一の違いは、レギュラーキーペアは、トランザクションに署名するアカウントと本質的に結びついていないことです。あるアカウントのマスターキーペアを別のアカウントの通常キーペアとして使用することは可能です(ただし、推奨されるものではありません)。 -[SetRegularKeyトランザクション][]は、アカウントのレギュラーキーペアを割り当てたり変更したりします。レギュラーキーペアの割り当てまたは変更に関するチュートリアルは、[レギュラーキーペアの割り当て](assign-a-regular-key-pair.html)をご覧ください +[SetRegularKeyトランザクション][]は、アカウントのレギュラーキーペアを割り当てたり変更したりします。レギュラーキーペアの割り当てまたは変更に関するチュートリアルは、[レギュラーキーペアの割り当て](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md)をご覧ください ## 署名アルゴリズム @@ -134,7 +134,7 @@ XRP Ledgerでは次の暗号化署名アルゴリズムがサポートされて [wallet_proposeメソッド][]を使用してキーペアを生成するときには、キーの生成に使用する暗号化署名アルゴリズムを選択するため`key_type`を指定できます。デフォルト以外のキータイプを生成した場合は、トランザクションに署名する際に`key_type`も指定する必要があります。 -XRP Ledgerでは、サポートされているさまざまなタイプのキーペアは、マスターキーペア、レギュラーキーペア、署名者リストメンバーとして互換的に使用できます。[アドレス生成](addresses.html#アドレスのエンコード)プロセスは、secp256k1キーペアとEd25519キーペアでは同一です。 +XRP Ledgerでは、サポートされているさまざまなタイプのキーペアは、マスターキーペア、レギュラーキーペア、署名者リストメンバーとして互換的に使用できます。[アドレス生成](addresses.md#アドレスのエンコード)プロセスは、secp256k1キーペアとEd25519キーペアでは同一です。 ### 将来のアルゴリズム @@ -154,13 +154,13 @@ XRP Ledgerでは、サポートされているさまざまなタイプのキー - [シード定義](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/Seed.h) - [汎用キー & Ed25519鍵導出](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) - [secp256k1鍵導出](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) -- Python 3: [このリポジトリのコードサンプルセクション]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/key-derivation/py/key_derivation.py) +- Python 3: {% repo-link path="content/_code-samples/key-derivation/py/key_derivation.py" %}このリポジトリのコードサンプルセクション{% /repo-link %} - JavaScript: [`ripple-keypairs`](https://github.com/XRPLF/xrpl.js/tree/main/packages/ripple-keypairs)パッケージ ### Ed25519鍵導出 [[ソース]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/protocol/impl/SecretKey.cpp#L203 "Source") -{{ include_svg("img/key-derivation-ed25519.ja.svg", "パスフレーズ → シード → 秘密鍵 → プレフィクス + 公開鍵") }} +[{% inline-svg file="/img/key-derivation-ed25519.ja.svg" /%}](/img/key-derivation-ed25519.ja.svg "パスフレーズ → シード → 秘密鍵 → プレフィクス + 公開鍵") 1. シード値の[SHA-512ハーフ][]を計算します。32バイトの秘密鍵が導出されます。 @@ -181,7 +181,7 @@ XRP Ledgerでは、サポートされているさまざまなタイプのキー ### secp256k1鍵導出 [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp "Source") -{{ include_svg("img/key-derivation-secp256k1.ja.svg", "パスフレーズ → シード → ルートキーペア → 仲介銀行(機関)キーペア → マスターキーペア") }} +[{% inline-svg file="/img/key-derivation-secp256k1.ja.svg" /%}](/img/key-derivation-secp256k1.ja.svg "パスフレーズ → シード → ルートキーペア → 仲介銀行(機関)キーペア → マスターキーペア") XRP Ledgerアカウントキーでのsecp256k1鍵導出に、Ed25519鍵導出よりも多くの手順が含まれる理由は次のとおりです。 @@ -212,7 +212,9 @@ XRP Ledgerアカウントキーでのsecp256k1鍵導出に、Ed25519鍵導出よ 非圧縮形式の公開鍵を圧縮形式に変換するには、`openssl`コマンドラインツールを使用します。例えば、非圧縮の公開鍵がファイル`ec-pub.pem`にある場合は、次のような圧縮形式を出力できます。 - $ openssl ec -in ec-pub.pem -pubin -text -noout -conv_form compressed + ``` + $ openssl ec -in ec-pub.pem -pubin -text -noout -conv_form compressed + ``` 3. 次のように、圧縮されたルート公開鍵から「仲介銀行(機関)キーペア」を導出します。 @@ -237,23 +239,20 @@ XRP Ledgerアカウントキーでのsecp256k1鍵導出に、Ed25519鍵導出よ 6. アカウントの公開鍵を[base58][]形式にシリアル化する場合は、アカウントの公開鍵プレフィクス`0x23`を使用します。 - アカウントの公開鍵からそのアドレスに変換するための情報とサンプルコードについては、[アドレスのエンコード](addresses.html#アドレスのエンコード)を参照してください。 + アカウントの公開鍵からそのアドレスに変換するための情報とサンプルコードについては、[アドレスのエンコード](addresses.md#アドレスのエンコード)を参照してください。 ## 関連項目 - **コンセプト:** - - [発行アドレスと運用アドレス](account-types.html) + - [発行アドレスと運用アドレス](account-types.md) - **チュートリアル:** - - [レギュラーキーペアの割り当て](assign-a-regular-key-pair.html) - - [レギュラーキーペアの変更または削除](change-or-remove-a-regular-key-pair.html) + - [レギュラーキーペアの割り当て](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md) + - [レギュラーキーペアの変更または削除](../../tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **リファレンス:** - [SetRegularKeyトランザクション][] - - [AccountRootレジャーオブジェクト](accountroot.html) + - [AccountRootレジャーオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - [wallet_proposeメソッド][] - [account_infoメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/decentralized-identifiers.md b/content/@i18n/ja/concepts/accounts/decentralized-identifiers.md index 4dc88a066d..9ffe79031b 100644 --- a/content/@i18n/ja/concepts/accounts/decentralized-identifiers.md +++ b/content/@i18n/ja/concepts/accounts/decentralized-identifiers.md @@ -8,7 +8,7 @@ labels: --- # 分散型ID -_([DID Amendment][] :not_enabled: が必要です。)_ +_([DID Amendment][] {% not-enabled /%} が必要です。)_ 分散型ID(DID)は、検証可能なデジタルIDを可能にするWorld Wide Web Consortium(W3C)によって定義された新しいタイプの識別子です。DIDはDID所有者の完全な管理下にあり、中央管理レジストリ、IDプロバイダ、認証局から独立しています。 @@ -75,8 +75,4 @@ DIDドキュメントの主要なプロパティの詳細については[Decentr - DIDドキュメントにはどのような内容でも含めることができますが、検証方法とサービスポイントに限定すべきです。XRPL上のDIDは誰でも解決できるので、個人情報を含めるべきではありません。 - IPFSは誰でも分散ネットワークのノードにコンテンツを保存できます。よくある誤解は、誰でもそのコンテンツを編集できるということです。しかし、IPFSのコンテンツアドレス指定可能性は、編集されたコンテンツがオリジナルとは異なるアドレスを持つことを意味します。どんなエンティティでもXRPLアカウントの`DIDDocument`または`URI`フィールドでアンカーされたDIDドキュメントをコピーすることはできますが、対応する`DID`オブジェクトを作成した秘密鍵をコントロールしない限り、ドキュメント自体を変更することはできません。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/deleting-accounts.md b/content/@i18n/ja/concepts/accounts/deleting-accounts.md index 851a81b8fe..c586de83bb 100644 --- a/content/@i18n/ja/concepts/accounts/deleting-accounts.md +++ b/content/@i18n/ja/concepts/accounts/deleting-accounts.md @@ -7,10 +7,10 @@ labels: --- # アカウントの削除 -アカウントの所有者は[AccountDeleteトランザクション][]を送信することで、レジャーからアカウントと関連するエントリーを削除し、アカウントの残りのXRP残高のほとんどを別のアカウントに送ることができます。アカウントの無駄な作成と削除を抑止するため、アカウントの削除には[トランザクションコスト](transaction-cost.html)として通常よりも多くのXRPをバーンする必要があります。 +アカウントの所有者は[AccountDeleteトランザクション][]を送信することで、レジャーからアカウントと関連するエントリーを削除し、アカウントの残りのXRP残高のほとんどを別のアカウントに送ることができます。アカウントの無駄な作成と削除を抑止するため、アカウントの削除には[トランザクションコスト](../transactions/transaction-cost.md)として通常よりも多くのXRPをバーンする必要があります。 いくつかの種類のレジャーエントリーを保有している場合、アカウントの削除がブロックされます。たとえば、(代替可能)トークンの発行者は、そのトークンの発行残高がゼロでなければ、削除することはできません。 -アカウントは削除した後、通常の[アカウントの作成方法](accounts.html#creating-accounts)によって再作成できます。削除後に再作成されたアカウントと、初めて作成されたアカウントに違いはありません。 +アカウントは削除した後、通常の[アカウントの作成方法](accounts.md#creating-accounts)によって再作成できます。削除後に再作成されたアカウントと、初めて作成されたアカウントに違いはありません。 @@ -19,24 +19,21 @@ labels: アカウントを削除するには、次の条件を満たす必要があります。 - アカウントの`Sequence`番号に256を加えた値が、現在の[レジャーインデックス][]未満であること。 -- アカウントが次の[レジャーエントリー](ledger-object-types.html)のいずれも(送金元または受取人として)保有していないこと。 +- アカウントが次の[レジャーエントリー](../../references/protocol/ledger-data/ledger-entry-types/index.md)のいずれも(送金元または受取人として)保有していないこと。 - `Escrow` - `PayChannel` - `RippleState` - `Check` - アカウントがレジャー内に所有するオブジェクトが1000個未満であること。 -- トランザクションの送信時、少なくとも1つ分の[所有者準備金](reserves.html)(現在2XRP)に相当する特別な[トランザクションコスト][]を支払う必要があります。 +- トランザクションの送信時、少なくとも1つ分の[所有者準備金](reserves.md)(現在2XRP)に相当する特別な[トランザクションコスト][]を支払う必要があります。 ## 削除コスト **注意:** アカウントの削除要件を満たしていないためにトランザクションが失敗した場合でも、[AccountDeleteトランザクション][]のトランザクションコストは、トランザクションが検証済みレジャーに含まれる場合常に発生します。アカウントを削除できなかった場合に高いトランザクションコストを支払う可能性を減らすには、AccountDeleteトランザクションを送信するときに`fail_hard`オプションを使用してください。 -ビットコインや他の多くの暗号通貨とは異なり、XRP Ledgerの公開レジャーチェーンのそれぞれの新しいレジャーバージョンは、レジャーの完全な状態を含んでおり、新しいアカウントが増えるごとにサイズが増加します。そのため、必要な場合を除き、新しいXRP Ledgerアカウントを作成すべきではありません。アカウントを削除することで、アカウントの10XRPの[準備金](reserves.html)の一部を回復することができますが、そのためには少なくとも2XRPを破棄する必要があります。 +ビットコインや他の多くの暗号通貨とは異なり、XRP Ledgerの公開レジャーチェーンのそれぞれの新しいレジャーバージョンは、レジャーの完全な状態を含んでおり、新しいアカウントが増えるごとにサイズが増加します。そのため、必要な場合を除き、新しいXRP Ledgerアカウントを作成すべきではありません。アカウントを削除することで、アカウントの10XRPの[準備金](reserves.md)の一部を回復することができますが、そのためには少なくとも2XRPを破棄する必要があります。 -取引所など、多くのユーザのために価値の送受信を行う組織は、[**送信元タグ**と**宛先タグ**](source-and-destination-tags.html)を使用することで、XRP Ledgerのアカウントを1つだけ(または少数)使用するだけで、ユーザの支払いを区別することができます。 +取引所など、多くのユーザのために価値の送受信を行う組織は、[**送信元タグ**と**宛先タグ**](../transactions/source-and-destination-tags.md)を使用することで、XRP Ledgerのアカウントを1つだけ(または少数)使用するだけで、ユーザの支払いを区別することができます。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/depositauth.md b/content/@i18n/ja/concepts/accounts/depositauth.md index 7cf4b0980d..b05c880d5d 100644 --- a/content/@i18n/ja/concepts/accounts/depositauth.md +++ b/content/@i18n/ja/concepts/accounts/depositauth.md @@ -10,10 +10,10 @@ labels: _([DepositAuth Amendment][]により追加されました。)_ -Deposit Authorizationは、XRP Ledgerの[アカウント](accounts.html)のオプション機能です。Deposit Authorizationが有効な場合、トランザクションはそのトランザクションの送信者がアカウント自体でない限り、アカウントへはどのような資産も送信できません。Deposit Authorizationのアカウントは、次の2つの方法でのみ入金することができます。 +Deposit Authorizationは、XRP Ledgerの[アカウント](accounts.md)のオプション機能です。Deposit Authorizationが有効な場合、トランザクションはそのトランザクションの送信者がアカウント自体でない限り、アカウントへはどのような資産も送信できません。Deposit Authorizationのアカウントは、次の2つの方法でのみ入金することができます。 - [事前承認](#事前承認)されたアカウントから。 -- トランザクションを送信して資金を受け取ることにより。例えば、Deposit Authorizationが設定されたアカウントは、他のアカウントによって開始された[エスクロー](escrow.html)を完了することができます。 +- トランザクションを送信して資金を受け取ることにより。例えば、Deposit Authorizationが設定されたアカウントは、他のアカウントによって開始された[エスクロー](../payment-types/escrow.md)を完了することができます。 デフォルトでは、新しいアカウントではDepositAuthが無効になっています。 @@ -23,7 +23,7 @@ Deposit Authorizationは、XRP Ledgerの[アカウント](accounts.html)のオ Deposit Authorizationフラグにより、XRP Ledgerを使用するユーザーが分散型レジャーの基本的な特性を変えずにこのような規制に準拠するためのオプションを採用しました。Deposit Authorizationが有効な場合、アカウントはトランザクションを送信することで明示的に承認した資金のみを受領できます。Deposit Authorizationを使用するアカウントの所有者は、アカウントに資金を入金するトランザクションを送信する _前に_ 、資金の送金元の確認に必要なデューディリジェンス(確認調査)を実施できます。 -Deposit Authorizationを有効にすると、[Checks](known-amendments.html#checks)、[Escrow](escrow.html)、および[Payment Channel](known-amendments.html#paychan)から資金を受領できます。このような「二段階」トランザクションモデルでは、最初に送金元は資金の送金を承認するトランザクションを送信し、次に送金先は資金受領を承認するトランザクションを送信します。 +Deposit Authorizationを有効にすると、[Checks](../../resources/known-amendments.md#checks)、[Escrow](../payment-types/escrow.md)、および[Payment Channel](../../resources/known-amendments.md#paychan)から資金を受領できます。このような「二段階」トランザクションモデルでは、最初に送金元は資金の送金を承認するトランザクションを送信し、次に送金先は資金受領を承認するトランザクションを送信します。 Deposit Authorizationが有効になっている場合に[Paymentトランザクション][]から資金を受領するには、このような支払の送金元を[事前承認](#事前承認)する必要があります。_([DepositPreauth Amendment][]により追加されました。)_ @@ -31,9 +31,9 @@ Deposit Authorizationが有効になっている場合に[Paymentトランザク Deposit Authorizationを最大限に活用するため、以下の実施を推奨します。 -- XRP残高が常に最低[必要準備金](reserves.html)を上回るようにする。 -- DefaultRippleフラグをデフォルトの状態(無効)にしておく。トラストラインに対して[Rippling](rippling.html)を有効にしない。TrustSetトランザクションを送信するときには常に[`tfSetNoRipple`フラグ](trustset.html)を使用する。 -- [オファー](offercreate.html)を行わない。このようなトランザクションの実行にあたり、消費される一致オファーを事前に把握することは不可能です。 +- XRP残高が常に最低[必要準備金](reserves.md)を上回るようにする。 +- DefaultRippleフラグをデフォルトの状態(無効)にしておく。トラストラインに対して[Rippling](../tokens/fungible-tokens/rippling.md)を有効にしない。TrustSetトランザクションを送信するときには常に[`tfSetNoRipple`フラグ](../../references/protocol/transactions/types/trustset.md)を使用する。 +- [オファー](../../references/protocol/transactions/types/offercreate.md)を行わない。このようなトランザクションの実行にあたり、消費される一致オファーを事前に把握することは不可能です。 ## 詳細なセマンティクス @@ -41,7 +41,7 @@ Deposit Authorizationが有効化されているアカウントの特徴は次 - [Paymentトランザクション][]の送信先には**できません**。ただし**以下の例外**は除きます。 - 送金先により、支払の送金元が[事前承認](#事前承認)されている場合。_([DepositPreauth Amendment][]により追加されました。)_ - - アカウントのXRP残高がアカウントの最低[必要準備金](reserves.html)以下で、XRP PaymentのAmountがアカウントの最低準備金(現時点では10XRP)以下である場合は、このアカウントを送金先に指定できます。これにより、アカウントがトランザクションを送信することも、XRPを受領することもできずに操作不可能な状態になるのを防ぎます。この場合、アカウントの所有者の準備金は関係ありません。 + - アカウントのXRP残高がアカウントの最低[必要準備金](reserves.md)以下で、XRP PaymentのAmountがアカウントの最低準備金(現時点では10XRP)以下である場合は、このアカウントを送金先に指定できます。これにより、アカウントがトランザクションを送信することも、XRPを受領することもできずに操作不可能な状態になるのを防ぎます。この場合、アカウントの所有者の準備金は関係ありません。 - **以下に該当する場合にのみ**[PaymentChannelClaimトランザクション][]からXRPを受領できます。 - PaymentChannelClaimトランザクションの送金元がPayment Channelの送金先である場合。 - PaymentChannelClaimトランザクションの送金先がPaymentChannelClaimの送金元を[事前承認している](#事前承認)場合。_([DepositPreauth Amendment][]により追加されました。)_ @@ -51,7 +51,7 @@ Deposit Authorizationが有効化されているアカウントの特徴は次 - [CheckCash][]トランザクションを送信してXRPまたはトークンを受領**できます**。 _([Checks Amendment][]により追加されました。)_ - [OfferCreateトランザクション][]を送信してXRPまたはトークンを受領**できます**。 - 即時には完全に実行されないOfferCreateトランザクションがアカウントから送信される場合、このアカウントは、後でオファーが他のアカウントの[Payment][]トランザクションと[OfferCreate][]トランザクションによって消費される時点で、注文済みXRPとトークンのリマインダーを受信する**ことがあります**。 -- アカウントが[NoRippleフラグ](rippling.html)を有効にせずにトラストラインを作成している場合、またはDefaultRippleフラグを有効にして通貨を発行した場合は、アカウントはRipplingの結果として、[Paymentトランザクション][]でそれらのトラストラインのトークンを受領**できます**。このようなトランザクションの送金先にすることはできません。 +- アカウントが[NoRippleフラグ](../tokens/fungible-tokens/rippling.md)を有効にせずにトラストラインを作成している場合、またはDefaultRippleフラグを有効にして通貨を発行した場合は、アカウントはRipplingの結果として、[Paymentトランザクション][]でそれらのトラストラインのトークンを受領**できます**。このようなトランザクションの送金先にすることはできません。 - 一般的に、以下のすべての条件に該当する場合は、XRP LedgerのアカウントはXRP LedgerでXRP以外の通貨を受領**できません**。(このルールは、DepositAuthフラグに特有のものではありません。) - アカウントにより、ゼロ以外の限度を指定したトラストラインが作成されていない。 - アカウントが、その他のアカウントにより作成されたトラストラインで通貨を発行していない。 @@ -59,17 +59,17 @@ Deposit Authorizationが有効化されているアカウントの特徴は次 以下の表に、トランザクションタイプ別にDepositAuthが有効または無効な状態での入金の可否をまとめました。 -{% include '_snippets/depositauth-semantics-table.md' %} - +{% partial file="/_snippets/depositauth-semantics-table.md" /%} + ## Deposit Authorizationの有効化または無効化 -アカウントのDeposit Authorizationを有効にするには、`SetFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。アカウントのDeposit Authorizationを無効にするには、`ClearFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。AccountSetフラグについての詳細は、[AccountSetフラグ](accountset.html)を参照してください。 +アカウントのDeposit Authorizationを有効にするには、`SetFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。アカウントのDeposit Authorizationを無効にするには、`ClearFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。AccountSetフラグについての詳細は、[AccountSetフラグ](../../references/protocol/transactions/types/accountset.md)を参照してください。 ## AccountのDepositAuthの有効化の確認 -アカウントのDeposit Authorizationの有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](accountroot.html)と比較します。 +アカウントのDeposit Authorizationの有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)と比較します。 `Flags`値と`lsfDepositAuth`フラグ値(0x01000000)のビット単位のANDの結果がゼロ以外の場合、アカウントではDepositAuthが有効になっています。結果がゼロの場合、アカウントではDepositAuthが無効になっています。 @@ -83,7 +83,7 @@ DepositAuthが有効なアカウントは、特定の送金元を _事前承認_ 特定の送金元を事前承認するには、`Authorize`フィールドに事前承認する別のアカウントのアドレスを指定した[DepositPreauthトランザクション][]を送信します。事前承認を取り消すには、当該アカウントのアドレスを`Unauthorize`フィールドに指定します。通常どおり、`Account`フィールドには自分自身のアドレスを指定します。現在DepositAuthを有効にしていない場合でも、アカウントを事前承認または承認解除できます。他のアカウントに設定した事前認証ステータスは保存されますが、DepositAuthを有効にしない限り、このステータスの影響はありません。アカウントがアカウント自体を事前認証することはできません。事前認証は一方向であり、反対方向の支払には影響しません。 -別のアカウントを事前認証すると、レジャーに[DepositPreauthオブジェクト](depositpreauth-object.html)が追加されます。これにより、認証を提供するアカウントの[所有者準備金](reserves.html#所有者準備金)が増加します。アカウントで事前承認が取り消されると、オブジェクトが削除され、準備金はこれに伴い減少します。 +別のアカウントを事前認証すると、レジャーに[DepositPreauthオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/depositpreauth.md)が追加されます。これにより、認証を提供するアカウントの[所有者準備金](reserves.md#所有者準備金)が増加します。アカウントで事前承認が取り消されると、オブジェクトが削除され、準備金はこれに伴い減少します。 DepositPreauthトランザクションの処理が完了すると、承認済みアカウントからあなたのアカウントに資金を送金できるようになります。これは、以下のトランザクションタイプのいずれかを使用してDepositAuthを有効にしている場合にも該当します。 @@ -104,16 +104,15 @@ DepositPreauthトランザクションの処理が完了すると、承認済み ## 関連項目 - [DepositPreauthトランザクション][]リファレンス。 -- [DepositPreauthレジャーオブジェクトタイプ](depositpreauth-object.html)。 -- [`rippled` API](http-websocket-apis.html)の[deposit_authorizedメソッド][]。 -- [Authorized Trust Lines](authorized-trust-lines.html)機能(`RequireAuth`フラグ)により、アカウントが発行したXRP以外の通貨を保有できる取引相手が制限されます。 +- [DepositPreauthレジャーオブジェクトタイプ](../../references/protocol/ledger-data/ledger-entry-types/depositpreauth.md)。 +- [`rippled` API](../../references/http-websocket-apis/index.md)の[deposit_authorizedメソッド][]。 +- [Authorized Trust Lines](../tokens/fungible-tokens/authorized-trust-lines.md)機能(`RequireAuth`フラグ)により、アカウントが発行したXRP以外の通貨を保有できる取引相手が制限されます。 - `DisallowXRP`フラグは、アカウントがXRPを受領してはならないことを示します。これはDeposit Authorizationよりもソフトな保護機能であり、XRP Ledgerにより強制されません。(クライアントアプリケーションはこのフラグに従うか、または少なくともこのフラグについて警告します。) -- 送信トランザクションが[Destinationタグ](source-and-destination-tags.html)を指定している場合には、`RequireDest`フラグは、アカウントが通貨額のみを受領できることを示します。これにより、ユーザーが支払の目的を指定し忘れることがなくなりますが、恣意的な送金先タグを作成できる不明な送金元から受取人が保護されるわけではありません。 -- [Partial Payment](partial-payments.html)により、アカウントは不要な支払を返金できます。この際、[送金手数料](transfer-fees.html)と為替レートは送金額には追加されず、送金された金額から差し引かれます。 +- 送信トランザクションが[Destinationタグ](../transactions/source-and-destination-tags.md)を指定している場合には、`RequireDest`フラグは、アカウントが通貨額のみを受領できることを示します。これにより、ユーザーが支払の目的を指定し忘れることがなくなりますが、恣意的な送金先タグを作成できる不明な送金元から受取人が保護されるわけではありません。 +- [Partial Payment](../payment-types/partial-payments.md)により、アカウントは不要な支払を返金できます。この際、[送金手数料](../tokens/transfer-fees.md)と為替レートは送金額には追加されず、送金された金額から差し引かれます。 - -[DepositPreauth Amendment]: known-amendments.html#depositpreauth -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + +[DepositPreauth Amendment]: ../../resources/known-amendments.md#depositpreauth + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/multi-signing.md b/content/@i18n/ja/concepts/accounts/multi-signing.md index 34e5b1088f..6f2c6e18b2 100644 --- a/content/@i18n/ja/concepts/accounts/multi-signing.md +++ b/content/@i18n/ja/concepts/accounts/multi-signing.md @@ -8,7 +8,7 @@ labels: --- # マルチシグ -マルチシグは、複数のシークレットキーを組み合わせて使用してXRP Ledgerの[トランザクションを承認する](transactions.html#トランザクションの承認)手法です。アドレスで有効な承認手法(マルチシグ、[マスターキーペア](cryptographic-keys.html#マスターキーペア)、[レギュラーキーペア](cryptographic-keys.html#レギュラーキーペア)など)を自由に組み合わせて使用できます。(唯一の要件は、 _少なくとも1つの_ 手法を有効にする必要があることです。) +マルチシグは、複数のシークレットキーを組み合わせて使用してXRP Ledgerの[トランザクションを承認する](../transactions/index.md#トランザクションの承認)手法です。アドレスで有効な承認手法(マルチシグ、[マスターキーペア](cryptographic-keys.md#マスターキーペア)、[レギュラーキーペア](cryptographic-keys.md#レギュラーキーペア)など)を自由に組み合わせて使用できます。(唯一の要件は、 _少なくとも1つの_ 手法を有効にする必要があることです。) マルチシグには次のメリットがあります。 @@ -49,7 +49,7 @@ _([ExpandedSignerList amendment][]により追加されました。)_ CEOのウェイトを3、副社長3人のウェイトを各2、取締役3人のウェイトを各1に割り当てたとする。このアカウントのトランザクションを承認するには、取締役3名全員(合計ウェイト3)、副社長1名と取締役1名(合計ウェイト3)、副社長2名(合計ウェイト4)、またはCEO(合計ウェイト3)の承認が必要となります。 -先の3つのユースケースでは、レギュラーキーを設定せずにマスターキーを無効にすることで、マルチシグが唯一の[トランザクションの承認](transactions.html#トランザクションの承認)の方法となるようにします。 +先の3つのユースケースでは、レギュラーキーを設定せずにマスターキーを無効にすることで、マルチシグが唯一の[トランザクションの承認](../transactions/index.md#トランザクションの承認)の方法となるようにします。 "バックアッププラン"としてマルチシグリストを作成するシナリオがあるかもしれません。アカウント所有者は、通常、トランザクションにレギュラーキー(マルチシグではない)を使用します。もしアカウント所有者が秘密鍵を紛失した場合、通常の鍵に代わるトランザクションにマルチシグするよう友人に依頼することができます。 @@ -57,30 +57,29 @@ CEOのウェイトを3、副社長3人のウェイトを各2、取締役3人の マルチシグトランザクションを正常に送信するには、以下のすべての条件を満たす必要があります。 -* トランザクションを送信するアドレス(`Account`に指定されるアドレス)は、[レジャーに`SignerList`](signerlist.html)を所有する必要があります。この方法については、[マルチシグを設定する](set-up-multi-signing.html)を参照してください。 +* トランザクションを送信するアドレス(`Account`に指定されるアドレス)は、[レジャーに`SignerList`](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md)を所有する必要があります。この方法については、[マルチシグを設定する](../../tutorials/manage-account-settings/set-up-multi-signing.md)を参照してください。 * トランザクションに`SigningPubKey`フィールドを空の文字列として含める必要があります。 -* トランザクションに、署名の配列が指定されている[`Signers`フィールド](transaction-common-fields.html#signersフィールド)を含める必要があります。 +* トランザクションに、署名の配列が指定されている[`Signers`フィールド](../../references/protocol/transactions/common-fields.md#signersフィールド)を含める必要があります。 * `Signers`配列に含まれている署名は、`SignerList`で定義されている署名と一致している必要があります。 * 指定された署名で、これらの署名者に関連付けられている`weight`の合計が、`SignerList`の`quorum`以上である必要があります。 -* [トランザクションコスト](transaction-cost.html)(`Fee`フィールドで指定)は、通常のトランザクションコストの(N+1)倍以上である必要があります。このNは、指定される署名の数です。 -* トランザクションのすべてのフィールドは、署名収集前に定義する必要があります。フィールドの[自動入力](transaction-common-fields.html#自動入力可能なフィールド)は実行できません。 +* [トランザクションコスト](../transactions/transaction-cost.md)(`Fee`フィールドで指定)は、通常のトランザクションコストの(N+1)倍以上である必要があります。このNは、指定される署名の数です。 +* トランザクションのすべてのフィールドは、署名収集前に定義する必要があります。フィールドの[自動入力](../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド)は実行できません。 * `Signers`配列がバイナリ形式で指定される場合、この配列は署名者アドレスの数値に基づいて、低い値から順にソートされている必要があります。(JSONとして提出される場合は、[submit_multisignedメソッド][]がこの処理を自動的に実行します。) -詳細は、[マルチシグの設定](set-up-multi-signing.html)を参照してください。 +詳細は、[マルチシグの設定](../../tutorials/manage-account-settings/set-up-multi-signing.md)を参照してください。 ## 関連項目 - **チュートリアル:** - - [マルチシグを設定する](set-up-multi-signing.html) - - [マルチシグトランザクションを送信する](send-a-multi-signed-transaction.html) + - [マルチシグを設定する](../../tutorials/manage-account-settings/set-up-multi-signing.md) + - [マルチシグトランザクションを送信する](../../tutorials/manage-account-settings/send-a-multi-signed-transaction.md) - **コンセプト:** - - [暗号鍵](cryptographic-keys.html) - - [マルチシグトランザクションの特別なトランザクションコスト](transaction-cost.html#特別なトランザクションコスト) + - [暗号鍵](cryptographic-keys.md) + - [マルチシグトランザクションの特別なトランザクションコスト](../transactions/transaction-cost.md#特別なトランザクションコスト) - **リファレンス:** - [SignerListSetトランザクション][] - - [SignerListオブジェクト](signerlist.html) + - [SignerListオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) - [sign_forメソッド][] - [submit_multisignedメソッド][] -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/reserves.md b/content/@i18n/ja/concepts/accounts/reserves.md index 37592854ec..3dacbfaa84 100644 --- a/content/@i18n/ja/concepts/accounts/reserves.md +++ b/content/@i18n/ja/concepts/accounts/reserves.md @@ -13,7 +13,7 @@ XRP Ledgerでは、スパムや悪意のある使用によって、共有グロ 取引(トランザクション)を送信するには、各アドレスが共有グローバル台帳内に少量のXRPを保有している必要があります。このXRPを他のアドレスに送信することはできません。新しいアドレスに資金供給するには、必要となる準備金を満たすのに十分なXRPを送信する必要があります。 -準備金要件は、バリデータが新しい準備金設定に合意する[手数料の投票](fee-voting.html)プロセスにより、随時変更されます。 +準備金要件は、バリデータが新しい準備金設定に合意する[手数料の投票](../consensus-protocol/fee-voting.md)プロセスにより、随時変更されます。 ## 基本準備金と所有者準備金 @@ -33,14 +33,14 @@ XRP Ledgerでは、スパムや悪意のある使用によって、共有グロ レジャー内の多くのオブジェクト(レジャーエントリー)は、特定のアカウントが所有しています。通常、所有者はオブジェクトを作成したアカウントです。各オブジェクトは、所有者の合計必要準備金を所有者準備金によって増加させます。オブジェクトがレジャーから削除されると、所有者の必要準備金にカウントされなくなります。 -所有者の必要準備金にカウントされるオブジェクトには次のものが含まれます。[Check](checks.html), [入金の事前承認](depositauth.html#事前承認), [エスクロー](escrow.html), [NFTのオファー](non-fungible-token-transfers.html), [NFTのページ](non-fungible-tokens.html), [オファー](offer.html), [ペイメントチャネル](payment-channels.html), [マルチシグの署名者リスト](multi-signing.html), [Ticket](tickets.html), そして[トラストライン](trust-lines-and-issuing.html). +所有者の必要準備金にカウントされるオブジェクトには次のものが含まれます。[Check](../payment-types/checks.md), [入金の事前承認](depositauth.md#事前承認), [エスクロー](../payment-types/escrow.md), [NFTのオファー](../tokens/nfts/trading.md), [NFTのページ](../tokens/nfts/index.md), [オファー](../../references/protocol/ledger-data/ledger-entry-types/offer.md), [ペイメントチャネル](../payment-types/payment-channels.md), [マルチシグの署名者リスト](multi-signing.md), [Ticket](tickets.md), そして[トラストライン](../tokens/fungible-tokens/index.md). 次のようないくつかの特殊なケースが存在します。 -- 非代替性トークン(NFT)は、それぞれ最大32個のNFTを含むページにグループ化され、所有者準備金はNFTごとではなくページごとに適用されます。ページの分割と結合の仕組みにより、実際に保存されるNFTの数はページごとに異なります。[NFTokenPageオブジェクトの準備金](nftokenpage.html#nftokenpage-オブジェクトの準備金)もご覧ください。 -- トラストライン(`RippleState`エントリ)は2つのアカウント間で共有されます。所有者準備金はどちらか一方、または両方に適用できます。多くの場合、トークン所有者は準備金を負担し、発行者は負担しません。[RippleState: 所有者準備金への資金提供](ripplestate.html#所有者の準備金への資金供給)もご覧ください。 -- 2019年4月に有効化された[MultiSignReserve amendment][]以前に作成された署名者リストは、複数のオブジェクトとしてカウントされます。[署名者リストと準備金](signerlist.html#signerlistと準備金)もご覧ください。 -- [所有者ディレクトリ](directorynode.html)は、アカウントが所有するすべてのオブジェクトを含む、アカウントに関連するすべてのオブジェクトをリストしたレジャーエントリーです。ただし、所有者ディレクトリ自体は準備金にカウントされません。 +- 非代替性トークン(NFT)は、それぞれ最大32個のNFTを含むページにグループ化され、所有者準備金はNFTごとではなくページごとに適用されます。ページの分割と結合の仕組みにより、実際に保存されるNFTの数はページごとに異なります。[NFTokenPageオブジェクトの準備金](../../references/protocol/ledger-data/ledger-entry-types/nftokenpage.md#nftokenpage-オブジェクトの準備金)もご覧ください。 +- トラストライン(`RippleState`エントリ)は2つのアカウント間で共有されます。所有者準備金はどちらか一方、または両方に適用できます。多くの場合、トークン所有者は準備金を負担し、発行者は負担しません。[RippleState: 所有者準備金への資金提供](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)もご覧ください。 +- 2019年4月に有効化された[MultiSignReserve amendment][]以前に作成された署名者リストは、複数のオブジェクトとしてカウントされます。[署名者リストと準備金](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md#signerlistと準備金)もご覧ください。 +- [所有者ディレクトリ](../../references/protocol/ledger-data/ledger-entry-types/directorynode.md)は、アカウントが所有するすべてのオブジェクトを含む、アカウントに関連するすべてのオブジェクトをリストしたレジャーエントリーです。ただし、所有者ディレクトリ自体は準備金にカウントされません。 ### 準備金の確認 @@ -53,31 +53,28 @@ XRP Ledgerでは、スパムや悪意のある使用によって、共有グロ アカウントの所有者準備金を決定するには、増分準備金にアカウントが所有するオブジェクトの数を掛けます。アカウントが所有しているオブジェクトの数を調べるには、[account_infoメソッド][]を呼び出し、`account_data.OwnerCount`を取得します。 -アドレスの必要となる合計準備金を計算するには、`OwnerCount`に`reserve_inc_xrp`を掛け、次に`reserve_base_xrp`を加えます。[この計算をPythonで行うデモ](build-a-desktop-wallet-in-python.html#codeblock-17)があります。 +アドレスの必要となる合計準備金を計算するには、`OwnerCount`に`reserve_inc_xrp`を掛け、次に`reserve_base_xrp`を加えます。[この計算をPythonで行うデモ](../../tutorials/build-apps/build-a-desktop-wallet-in-python.md#codeblock-17)があります。 ## 必要準備金を下回る -トランザクション処理中、[トランザクションコスト](transaction-cost.html)によって、送信元アドレスのXRP残高の一部がバーンされます。その結果、そのアドレスのXRPが必要準備金を下回る可能性があります。 +トランザクション処理中、[トランザクションコスト](../transactions/transaction-cost.md)によって、送信元アドレスのXRP残高の一部がバーンされます。その結果、そのアドレスのXRPが必要準備金を下回る可能性があります。 アドレスが保持しているXRPが、現在の必要準備金を下回ると、XRPを他のアドレスに送信するトランザクションを送信したり、自身の準備金を増やしたりできなくなります。このような場合でも、そのアドレスはレジャー内に存在し、トランザクションコストを支払うのに十分なXRPを持っている限り、その他のトランザクションを送信することができます。必要準備金を満たすために十分なXRPを受け取った場合、またはそのアドレスのXRP保有額よりも[準備金の必要額が減少した](#準備金要件の変更)場合、そのアドレスはすべてのタイプのトランザクションを再度送信できるようになります。 -**ヒント:** アドレスが必要準備金を下回った場合は、新しい[OfferCreateトランザクション][]を送信して、追加のXRP、または既存のトラストライン上の他の通貨を入手することができます。このような取引では、新しい[トラストライン](ripplestate.html)や[レジャー内のオファーエントリー](offer.html)を作成することはできないため、すでにオーダーブック内にあるオファーを実行するトランザクションのみを実行することができます。 +**ヒント:** アドレスが必要準備金を下回った場合は、新しい[OfferCreateトランザクション][]を送信して、追加のXRP、または既存のトラストライン上の他の通貨を入手することができます。このような取引では、新しい[トラストライン](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)や[レジャー内のオファーエントリー](../../references/protocol/ledger-data/ledger-entry-types/offer.md)を作成することはできないため、すでにオーダーブック内にあるオファーを実行するトランザクションのみを実行することができます。 ## 準備金要件の変更 -XRP Ledgerには、準備金要件を調整する仕組みがあります。このような調整は、例えばXRPの価値の長期的な変化、汎用レベルのハードウェアの性能の向上、サーバソフトウェアの実装の効率化などを考慮することができます。いかなる変更も、コンセンサスプロセスによる合意が必要です。詳細は[手数料の投票](fee-voting.html)をご覧ください。 +XRP Ledgerには、準備金要件を調整する仕組みがあります。このような調整は、例えばXRPの価値の長期的な変化、汎用レベルのハードウェアの性能の向上、サーバソフトウェアの実装の効率化などを考慮することができます。いかなる変更も、コンセンサスプロセスによる合意が必要です。詳細は[手数料の投票](../consensus-protocol/fee-voting.md)をご覧ください。 ## 関連項目 - [account_objectsメソッド][] - [AccountRootオブジェクト][] -- [手数料の投票](fee-voting.html) +- [手数料の投票](../consensus-protocol/fee-voting.md) - [SetFee疑似トランザクション][]疑似トランザクション -- [チュートリアル: 必要準備金の計算と表示(Python)](build-a-desktop-wallet-in-python.html#3-display-an-account) +- [チュートリアル: 必要準備金の計算と表示(Python)](../../tutorials/build-apps/build-a-desktop-wallet-in-python.md#3-display-an-account) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/accounts/tickets.md b/content/@i18n/ja/concepts/accounts/tickets.md index 01595a4a2e..a27ed2cf9d 100644 --- a/content/@i18n/ja/concepts/accounts/tickets.md +++ b/content/@i18n/ja/concepts/accounts/tickets.md @@ -10,38 +10,38 @@ labels: _([TicketBatch amendment][]により追加されました。)_ -XRP Ledgerのチケットは、取引をすぐに送信せずに、その取引のために[シーケンス番号][Sequence Number]を確保する方法です。チケットを使うことで、通常の順序以外で取引を送信することができます。この使用例としては、必要な署名を集めるのに時間がかかるような[マルチサイン取引](multi-signing.html)などが挙げられます。 +XRP Ledgerのチケットは、取引をすぐに送信せずに、その取引のために[シーケンス番号][Sequence Number]を確保する方法です。チケットを使うことで、通常の順序以外で取引を送信することができます。この使用例としては、必要な署名を集めるのに時間がかかるような[マルチサイン取引](multi-signing.md)などが挙げられます。 ## 背景 -[トランザクション](transactions.html)にはシーケンス番号が付いているので、任意のトランザクションを2回以上実行することはできません。シーケンス番号はまた、任意のトランザクションが一意であることを保証します。全く同じ金額を同じ人に複数回送信する場合、シーケンス番号は毎回異なることが保証される1つの詳細です。最後に、シーケンス番号は、ネットワーク全体に送信される際に一部のトランザクションが順不同で届いたとしても、トランザクションを一貫した順序で並べるためのエレガントな方法を提供します。 +[トランザクション](../transactions/index.md)にはシーケンス番号が付いているので、任意のトランザクションを2回以上実行することはできません。シーケンス番号はまた、任意のトランザクションが一意であることを保証します。全く同じ金額を同じ人に複数回送信する場合、シーケンス番号は毎回異なることが保証される1つの詳細です。最後に、シーケンス番号は、ネットワーク全体に送信される際に一部のトランザクションが順不同で届いたとしても、トランザクションを一貫した順序で並べるためのエレガントな方法を提供します。 しかし、シーケンス番号では限界がある場合もあります。たとえば、次のような場合です。 - 2人以上のユーザーがアカウントへのアクセスを共有し、それぞれが独立してトランザクションを送信することができる状態。これらのユーザーが事前に調整することなく同時期に取引を送信しようとすると、それぞれが同じシーケンス番号を異なる取引に使用しようとする可能性があり、成功するのは1人だけです。 - トランザクションを事前に準備して署名し、安全な場所に保存しておいて、特定のイベントが発生したときにいつでも実行できるようにしておきたい場合があります。しかし、その間も通常通りにアカウントを使用したい場合、準備しておくトランザクションに使用するシーケンス番号がわかりません。 -- トランザクションを有効にするために[複数人が署名しなければならない](multi-signing.html)場合、一度に複数のトランザクションを計画するのは難しいでしょう。トランザクションに別々のシーケンス番号をつけると、全員が前のトランザクションに署名するまで、後の番号のトランザクションを送信することができません。しかし、保留中のトランザクションに同じシーケンス番号を使用すると、1つのトランザクションのみ成功します。 +- トランザクションを有効にするために[複数人が署名しなければならない](multi-signing.md)場合、一度に複数のトランザクションを計画するのは難しいでしょう。トランザクションに別々のシーケンス番号をつけると、全員が前のトランザクションに署名するまで、後の番号のトランザクションを送信することができません。しかし、保留中のトランザクションに同じシーケンス番号を使用すると、1つのトランザクションのみ成功します。 チケットでは、これらの問題を解決するために、通常の順番とは別に、後からでも(ただし、それぞれ1回まで)使用可能なシーケンス番号を用意しています。 ## チケットは予約済みのシーケンス番号 -チケットとは、あるシーケンス番号が後に使用されるために確保されたという記録です。アカウントは、まず[TicketCreate トランザクション][]を送信して、1つまたは複数のシーケンス番号をチケットとして確保します。これにより、[台帳の状態データ](ledgers.html)に、予約された各シーケンス番号について[Ticket オブジェクト][]の形で記録が残されます。 +チケットとは、あるシーケンス番号が後に使用されるために確保されたという記録です。アカウントは、まず[TicketCreate トランザクション][]を送信して、1つまたは複数のシーケンス番号をチケットとして確保します。これにより、[台帳の状態データ](../ledgers/index.md)に、予約された各シーケンス番号について[Ticket オブジェクト][]の形で記録が残されます。 チケットには、チケット作成時に設定されたシーケンス番号が使用されます。例えば、あなたのアカウントの現在のシーケンス番号が101で、3枚のチケットを作成した場合、それらのチケットにはチケットシーケンス番号102、103、104が付けられます。これにより、あなたのアカウントのシーケンス番号は105になります。 -{{ include_svg("img/ticket-creation.svg", "Diagram: Creating three Tickets") }} +[{% inline-svg file="/img/ticket-creation.svg" /%}](/img/ticket-creation.svg "Diagram: Creating three Tickets") 後から、シーケンス番号の代わりに特定のチケットを使用してトランザクションを送信することができます。これにより、元帳の状態データから対応するチケットが削除され、アカウントの通常のシーケンス番号は変更されません。また、チケットを使用せずに、通常のシーケンス番号を使用してトランザクションを送信することもできます。利用可能なチケットは、いつでもどのような順番でも使用できますが、各チケットは1回しか使用できません。 -{{ include_svg("img/ticket-usage.svg", "Diagram: Using Ticket 103.") }} +[{% inline-svg file="/img/ticket-usage.svg" /%}](/img/ticket-usage.svg "Diagram: Using Ticket 103.") 上記の例では、シーケンス番号105または作成した3つのチケットのいずれかを使用してトランザクションを送信できます。チケット103を使ってトランザクションを送信すると、それによってチケット103は元帳から削除されます。その後の次のトランザクションでは、シーケンス番号105、チケット102、またはチケット104を使用できます。 -**注意:** チケットは1枚ごとに[所有者準備金](reserves.html#所有者準備金)としてカウントされますので、チケット1枚につき2XRPを確保する必要があります。 (このXRPは、チケットを使用した後に再び使用可能になります)一度に多くのチケットを作成すると、このコストはすぐに膨れ上がります。 +**注意:** チケットは1枚ごとに[所有者準備金](reserves.md#所有者準備金)としてカウントされますので、チケット1枚につき2XRPを確保する必要があります。 (このXRPは、チケットを使用した後に再び使用可能になります)一度に多くのチケットを作成すると、このコストはすぐに膨れ上がります。 -シーケンス番号と同様に、トランザクションの送信は、そのトランザクションが[コンセンサス](consensus.html)によって確認された場合にのみ、チケットを使用します。しかし、意図した通りにならなかった取引でも、[`tec`クラスの結果コード](tec-codes.html)を用いてコンセンサスで確認することができます。 +シーケンス番号と同様に、トランザクションの送信は、そのトランザクションが[コンセンサス](../consensus-protocol/index.md)によって確認された場合にのみ、チケットを使用します。しかし、意図した通りにならなかった取引でも、[`tec`クラスの結果コード](../../references/protocol/transactions/transaction-results/tec-codes.md)を用いてコンセンサスで確認することができます。 あるアカウントで利用可能なチケットを調べるには、[account_objects メソッド][]を使用します。 @@ -52,24 +52,21 @@ XRP Ledgerのチケットは、取引をすぐに送信せずに、その取引 - 各チケットは一度しか使用できません。同じチケットシーケンスを使用する複数の異なるトランザクション候補があることは可能ですが、コンセンサスで検証できるのはそのうちの1つだけです。 - 各アカウントでは、一度に250枚以上のチケットをレジャーに登録することはできません。また、一度に250枚以上のチケットを作成することもできません。 - チケットを使って別のチケットを作ることは_できます_。その場合、使用したチケットは、一度に所持できるチケットの合計数にはカウントされません。 -- 各チケットは[所有者準備金](reserves.html#所有者準備金)にカウントされるため、まだ使用していないチケット1枚につき2XRPを確保する必要があります。このXRPは、チケットを使用した後、再び使用することができます。 -- 個々の元帳の中では、チケットを使用した取引は、同じ送信者からの他の取引の後に実行されます。1つのアカウントが同じ元帳のバージョンでTicketを使用する複数のトランザクションを持つ場合、それらのTicketは最も低いTicket Sequenceから最も高いTicket Sequenceの順に実行されます。 (詳細については、コンセンサスの[正規順序](consensus-structure.html#xrp-ledgerプロトコル-コンセンサスと検証)に関するドキュメントを参照してください)。 -- 個々の元帳の中では、チケットを使用した取引は、同じ送信者からの他の取引の後に実行されます。1つのアカウントが同じ元帳のバージョンでチケットを使用する複数のトランザクションを持つ場合、それらのチケットは最も低いチケット シーケンス番号から最も高いチケット シーケンス番号の順に実行されます。 (詳細については、コンセンサスの[正規順序](consensus-structure.html#xrp-ledgerプロトコル-コンセンサスと検証)に関するドキュメントを参照してください)。 +- 各チケットは[所有者準備金](reserves.md#所有者準備金)にカウントされるため、まだ使用していないチケット1枚につき2XRPを確保する必要があります。このXRPは、チケットを使用した後、再び使用することができます。 +- 個々の元帳の中では、チケットを使用した取引は、同じ送信者からの他の取引の後に実行されます。1つのアカウントが同じ元帳のバージョンでTicketを使用する複数のトランザクションを持つ場合、それらのTicketは最も低いTicket Sequenceから最も高いTicket Sequenceの順に実行されます。 (詳細については、コンセンサスの[正規順序](../consensus-protocol/consensus-structure.md#xrp-ledgerプロトコル-コンセンサスと検証)に関するドキュメントを参照してください)。 +- 個々の元帳の中では、チケットを使用した取引は、同じ送信者からの他の取引の後に実行されます。1つのアカウントが同じ元帳のバージョンでチケットを使用する複数のトランザクションを持つ場合、それらのチケットは最も低いチケット シーケンス番号から最も高いチケット シーケンス番号の順に実行されます。 (詳細については、コンセンサスの[正規順序](../consensus-protocol/consensus-structure.md#xrp-ledgerプロトコル-コンセンサスと検証)に関するドキュメントを参照してください)。 ## 関連項目 - **Concepts:** - - [マルチシグ](multi-signing.html) + - [マルチシグ](multi-signing.md) - **Tutorials:** - - [チケットを使用する](use-tickets.html) + - [チケットを使用する](../../tutorials/manage-account-settings/use-tickets.md) - **References:** - [TicketCreate トランザクション][] - - [トランザクションの共通フィールド](transaction-common-fields.html) - - [Ticket オブジェクト](ticket.html) + - [トランザクションの共通フィールド](../../references/protocol/transactions/common-fields.md) + - [Ticket オブジェクト](../../references/protocol/ledger-data/ledger-entry-types/ticket.md) - [account_objects メソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/consensus-protocol/consensus-protections.md b/content/@i18n/ja/concepts/consensus-protocol/consensus-protections.md index 0b291b3c6b..d61233a9e7 100644 --- a/content/@i18n/ja/concepts/consensus-protocol/consensus-protections.md +++ b/content/@i18n/ja/concepts/consensus-protocol/consensus-protections.md @@ -9,7 +9,7 @@ labels: XRP Ledgerコンセンサスプロトコルは、 _ビザンチンフォールトトレラント性_ のあるコンセンサスメカニズムです。つまり、あらゆる不適切な状況(参加者が信頼できないオープンネットワークを利用して通信している場合や、不正使用者が常にシステムを乗っ取ろうとしているかまたは中断しようとしている場合など)が発生しても動作するように設計されています。さらに、XRP Ledgerコンセンサスプロトコルの参加者が事前に判明していない場合や、時間の経過とともに変わる場合があります。 -[ネットワークに求められる特性](consensus.html#コンセンサスプロトコルの特性)を維持しつつ、トランザクションをタイミングよく承認する作業は複雑であり、また完璧なシステムを構築することは不可能です。XRP Ledgerコンセンサスプロトコルは、ほとんどの状況で機能し、機能できない状況では可能な限り安全に失敗するように設計されています。 +[ネットワークに求められる特性](index.md#コンセンサスプロトコルの特性)を維持しつつ、トランザクションをタイミングよく承認する作業は複雑であり、また完璧なシステムを構築することは不可能です。XRP Ledgerコンセンサスプロトコルは、ほとんどの状況で機能し、機能できない状況では可能な限り安全に失敗するように設計されています。 このページでは、XRP Ledgerコンセンサスプロトコルのいくつかの課題のタイプとその対処について説明します。 @@ -23,7 +23,7 @@ _バリデータ_ とは、新しいレジャーバージョンの決定プロ - 外部要因(抑圧的な政府からの脅威など)からのプレッシャーによって不正に動作している。 - バグまたは古いソフトウェアが原因で、わかりにくいメッセージまたは誤った形式のメッセージが偶発的に送信される。 -一般に、信頼できるバリデータのうち、不適切に動作しているバリデータがごくわずか(約20%未満)である限り、特に問題なくコンセンサスを継続できます。(正確な割合とその計算については、最新の[コンセンサスに関する研究](consensus-research.html)を参照してください。) +一般に、信頼できるバリデータのうち、不適切に動作しているバリデータがごくわずか(約20%未満)である限り、特に問題なくコンセンサスを継続できます。(正確な割合とその計算については、最新の[コンセンサスに関する研究](consensus-research.md)を参照してください。) バリデータの約20%以上がアクセス不能であるか適切に動作していない場合、ネットワークはコンセンサスに達することができません。この間、新しいトランザクションを暫定的に処理できますが、新しいレジャーバージョンを検証できないため、これらのトランザクションの最終結果は未確定になります。このような状況では、XRP Ledgerが正常ではないことがただちに明らかになるため、待機するか、または信頼できるバリデータのセットを再設定するかを決定できる参加者からの人的介入が促されます。 @@ -63,12 +63,12 @@ XRP Ledgerのすべての参加者が何を検証済みとみなすかについ 技術的には、サーバーを実行している場合、各自のリストサイトを設定するかまたは信頼できるバリデータを個別に明示的に選択することができますが、これらを行うことは推奨されません。選択したバリデータ群と他のサーバーとの重複が十分ではない場合、サーバーはネットワークの他の部分と不一致になる可能性があり、サーバーが不一致の状態でアクションを実行すると資金を失う可能性があります。 -コンセンサスプロトコルの設計を改善し、より多様性のあるバリデータリストを実現するための研究が進んでいます。詳細は、[コンセンサスの研究](consensus-research.html)ページを参照してください。 +コンセンサスプロトコルの設計を改善し、より多様性のあるバリデータリストを実現するための研究が進んでいます。詳細は、[コンセンサスの研究](consensus-research.md)ページを参照してください。 ## 関連項目 -- コンセンサスの**入門レベルの概要**については、[コンセンサスについて](consensus.html)を参照してください。 -- コンセンサスプロトコルの**詳細な説明**については、[コンセンサス](consensus.html)を参照してください。 -- コンセンサスプロトコルの**設計に関する決定と背景**については、[コンセンサスの原理とルール](consensus-principles-and-rules.html)を参照してください。 -- コンセンサスプロトコルの特性と制約に関する**学術研究**については、[コンセンサスの研究](consensus-research.html)を参照してください。 +- コンセンサスの**入門レベルの概要**については、[コンセンサスについて](index.md)を参照してください。 +- コンセンサスプロトコルの**詳細な説明**については、[コンセンサス](index.md)を参照してください。 +- コンセンサスプロトコルの**設計に関する決定と背景**については、[コンセンサスの原理とルール](consensus-principles-and-rules.md)を参照してください。 +- コンセンサスプロトコルの特性と制約に関する**学術研究**については、[コンセンサスの研究](consensus-research.md)を参照してください。 diff --git a/content/@i18n/ja/concepts/consensus-protocol/consensus-structure.md b/content/@i18n/ja/concepts/consensus-protocol/consensus-structure.md index 083e3b074a..d9dad8d15b 100644 --- a/content/@i18n/ja/concepts/consensus-protocol/consensus-structure.md +++ b/content/@i18n/ja/concepts/consensus-protocol/consensus-structure.md @@ -9,7 +9,7 @@ labels: _著者: Dave Cohen、David Schwartz、Arthur Britto_ -この記事では、XRP Ledgerの概要や格納される情報、[トランザクション](transaction-formats.html)によってレジャー(台帳)が変化する様子について説明します。 +この記事では、XRP Ledgerの概要や格納される情報、[トランザクション](../../references/protocol/transactions/index.md)によってレジャー(台帳)が変化する様子について説明します。 XRP Ledger上でアプリケーションを構築する場合は、XRP Ledger APIの動作や、その動作によってもたされる影響を知っておくために、このプロセスを理解することが重要です。 @@ -18,21 +18,21 @@ XRP Ledger上でアプリケーションを構築する場合は、XRP Ledger AP ピアツーピアサーバーのXRP Ledgerネットワークは世界で共有されている台帳であり、ここから、アプリケーションはこの台帳の内容の状態に関して信頼できる情報を得ることができます。この状態に関する情報には以下の内容が含まれます。 -- 各[アカウント](accounts.html)の設定 -- XRPおよび[トークン](tokens.html)の残高 +- 各[アカウント](../accounts/accounts.md)の設定 +- XRPおよび[トークン](../tokens/index.md)の残高 - 分散型取引所でのオファー(注文) -- ネットワーク設定(例: [トランザクションコスト](transaction-cost.html)と[準備金](reserves.html)の金額) +- ネットワーク設定(例: [トランザクションコスト](../transactions/transaction-cost.md)と[準備金](../accounts/reserves.md)の金額) - タイムスタンプ -レジャーバージョンに含まれるデータの詳細な技術説明については、[レジャーフォーマットのリファレンス](ledger-data-formats.html)を参照してください。 +レジャーバージョンに含まれるデータの詳細な技術説明については、[レジャーフォーマットのリファレンス](../../references/protocol/ledger-data/index.md)を参照してください。 -[![図1: XRP Ledgerの要素](img/anatomy-of-a-ledger-complete.ja.png)](img/anatomy-of-a-ledger-complete.ja.png) +[![図1: XRP Ledgerの要素](/img/anatomy-of-a-ledger-complete.ja.png)](/img/anatomy-of-a-ledger-complete.ja.png) _図1: XRP Ledgerの要素_ XRP Ledgerでは、数秒ごとに新しいレジャーバージョンが作成されます。あるレジャーバージョンの内容にネットワークが同意すると、そのレジャーバージョンは _検証済み_ となり、その内容が変更されることはありません。それ以前の検証済みのレジャーバージョンによって、レジャー履歴が形成されます。検証済みの最新のレジャーも、少し前の時点のネットワークの状態を表しており、履歴の一部となります。現時点で、ネットワークは次のレジャーバージョンに適用されてファイナライズされる可能性のあるトランザクションを評価しています。この評価が行われている間、ネットワークには、検証前のレジャーバージョン候補が存在します。 -[![図2: XRP Ledgerの履歴](img/ledger-history.ja.png)](img/ledger-history.ja.png) +[![図2: XRP Ledgerの履歴](/img/ledger-history.ja.png)](/img/ledger-history.ja.png) _図2: XRP Ledgerの履歴_ @@ -40,31 +40,31 @@ _図2: XRP Ledgerの履歴_ サーバーがレジャーに適用するトランザクションを提案するときに、内容がわずかに異なる複数の候補レジャーバージョンが作成される場合があります。このような候補レジャーバージョンでは、レジャーインデックスは同じですがレジャーハッシュが異なります。多くの候補のうち、検証済みとなるのは1つだけです。それ以外の候補レジャーバージョンはすべて、破棄されます。そのため、履歴内の各レジャーインデックスに対して存在する検証済みのレジャーハッシュは1つのみです。 -レジャーに対するユーザーレベルの変更は、トランザクションによってなされます。[トランザクション](transaction-formats.html)の例としては、決済、アカウントの設定またはトラストラインの変更、取引のオファー(注文)などがあります。各トランザクションは、レジャーに対する1つ以上の変更を承認するものであり、アカウント所有者によって暗号署名されます。アカウントの変更を承認したり、レジャーのそれ以外の内容を変更したりするには、トランザクションだけが唯一の方法です。 +レジャーに対するユーザーレベルの変更は、トランザクションによってなされます。[トランザクション](../../references/protocol/transactions/index.md)の例としては、決済、アカウントの設定またはトラストラインの変更、取引のオファー(注文)などがあります。各トランザクションは、レジャーに対する1つ以上の変更を承認するものであり、アカウント所有者によって暗号署名されます。アカウントの変更を承認したり、レジャーのそれ以外の内容を変更したりするには、トランザクションだけが唯一の方法です。 各レジャーバージョンには、一連のトランザクションと、そのようなトランザクションに関するメタデータも含まれています。それらのトランザクションは、新しいレジャーバージョンを作成するために前のバージョンのレジャーに適用されたものです。メタデータには、レジャーの状態データに対する、トランザクションの影響が正確に記録されています。 -[![図3: レジャーバージョンに適用されるトランザクション](img/ledger-changes.ja.png)](img/ledger-changes.ja.png) +[![図3: レジャーバージョンに適用されるトランザクション](/img/ledger-changes.ja.png)](/img/ledger-changes.ja.png) _図3: レジャーバージョンに適用されるトランザクション_ レジャーインスタンスに含まれる一連のトランザクションはそのレジャーに記録され、XRP Ledger履歴の監査を可能としています。レジャーN+1のアカウント残高がレジャーNのアカウント残高と異なる場合、レジャーN+1にはその変更の原因となったトランザクションが含まれます。 -検証済みのレジャー内に出現するトランザクションは、レジャーの変更に成功したか、または要求されたアクションを実行せずに処理された可能性があります。成功したトランザクションには、要求された変更がレジャーに適用されたことを示す**tesSUCCESS** [結果コード](transaction-results.html)が含まれます。レジャー内の失敗したトランザクションには、**tec**クラスの結果コードが含まれます。1 +検証済みのレジャー内に出現するトランザクションは、レジャーの変更に成功したか、または要求されたアクションを実行せずに処理された可能性があります。成功したトランザクションには、要求された変更がレジャーに適用されたことを示す**tesSUCCESS** [結果コード](../../references/protocol/transactions/transaction-results/transaction-results.md)が含まれます。レジャー内の失敗したトランザクションには、**tec**クラスの結果コードが含まれます。1 -レジャーに含まれるトランザクションでは必ず、[トランザクションコスト](transaction-cost.html)として一部のXRPが消却されます。この場合、**tes**コードまたは**tec**コードが含まれていたかどうかは関係ありません。消却するXRPの正確な量は、署名されたトランザクションの手順で定義されます。 +レジャーに含まれるトランザクションでは必ず、[トランザクションコスト](../transactions/transaction-cost.md)として一部のXRPが消却されます。この場合、**tes**コードまたは**tec**コードが含まれていたかどうかは関係ありません。消却するXRPの正確な量は、署名されたトランザクションの手順で定義されます。 **tes**クラスや**tec**クラスの結果コード以外に、**ter**クラス、**tef**クラス、および**tem**クラスのコードがあります。後者の3つは、APIの呼び出しによって返された暫定的な失敗を示します。レジャーには、**tes**および**tec**のコードのみ表示されます。レジャーに含まれていないトランザクションによって、レジャーの状態(XRP残高を含む)が影響を受けることはありませんが、暫定的に失敗したトランザクションが後で成功する可能性があります。 -[`rippled` API](http-websocket-apis.html)を使用する場合、レジャーに含めるように提案された候補トランザクションと、検証済みのレジャーに含まれる検証済みのトランザクションをアプリケーションで区別する必要があります。検証済みのレジャー内にあるトランザクションの結果のみが不変です。検証済みのレジャーには、候補トランザクションが含まれる場合と含まれない場合があります。 +[`rippled` API](../../references/http-websocket-apis/index.md)を使用する場合、レジャーに含めるように提案された候補トランザクションと、検証済みのレジャーに含まれる検証済みのトランザクションをアプリケーションで区別する必要があります。検証済みのレジャー内にあるトランザクションの結果のみが不変です。検証済みのレジャーには、候補トランザクションが含まれる場合と含まれない場合があります。 -重要: 一部の[`rippled` API](http-websocket-apis.html)では、候補トランザクションに基づき暫定的な結果が返されます2。アプリケーションで、トランザクションの最終的な結果を判断する目的で暫定的な結果を使用するのは望ましくありません。最終的にトランザクションが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ、結果コードがtesSUCCESSになるまで、トランザクションの状況を確認することです。トランザクションが検証済みレジャー内にあるが、結果コードがそれ以外の場合、トランザクションの失敗を意味します。トランザクションの[`LastLedgerSequence`](transaction-common-fields.html)で指定されたレジャーが検証済みにもかかわらず、そのトランザクションがそのレジャーまたはそれ以前の他のレジャー内にない場合、トランザクションは失敗しており、どのレジャーにも表示されません。検証済みのレジャー内に表示されるトランザクションの場合にのみ、結果は最終的なものとなります。それ以外の場合、このドキュメントで後述するように、`LastLedgerSequence`の制限により、表示されることはありません。 +重要: 一部の[`rippled` API](../../references/http-websocket-apis/index.md)では、候補トランザクションに基づき暫定的な結果が返されます2。アプリケーションで、トランザクションの最終的な結果を判断する目的で暫定的な結果を使用するのは望ましくありません。最終的にトランザクションが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ、結果コードがtesSUCCESSになるまで、トランザクションの状況を確認することです。トランザクションが検証済みレジャー内にあるが、結果コードがそれ以外の場合、トランザクションの失敗を意味します。トランザクションの[`LastLedgerSequence`](../../references/protocol/transactions/common-fields.md)で指定されたレジャーが検証済みにもかかわらず、そのトランザクションがそのレジャーまたはそれ以前の他のレジャー内にない場合、トランザクションは失敗しており、どのレジャーにも表示されません。検証済みのレジャー内に表示されるトランザクションの場合にのみ、結果は最終的なものとなります。それ以外の場合、このドキュメントで後述するように、`LastLedgerSequence`の制限により、表示されることはありません。 ## XRP Ledgerプロトコル - コンセンサスと検証 -ピアツーピアのXRP Ledgerネットワークは、トランザクションを承認して処理する多数の独立したXRP Ledgerサーバー(通常、[`rippled`](xrpl-servers.html)を実行)で構成されています。クライアントアプリケーションは、トランザクションに署名してXRP Ledgerサーバーに送信します。サーバーは、これらの候補トランザクションを処理するためにネットワーク内を中継します。クライアントアプリケーションには、モバイルおよびウェブウォレット、金融機関へのゲートウェイ、電子取引プラットフォームなどがあります。 +ピアツーピアのXRP Ledgerネットワークは、トランザクションを承認して処理する多数の独立したXRP Ledgerサーバー(通常、[`rippled`](../networks-and-servers/index.md)を実行)で構成されています。クライアントアプリケーションは、トランザクションに署名してXRP Ledgerサーバーに送信します。サーバーは、これらの候補トランザクションを処理するためにネットワーク内を中継します。クライアントアプリケーションには、モバイルおよびウェブウォレット、金融機関へのゲートウェイ、電子取引プラットフォームなどがあります。 -[![図4: XRP Ledgerプロトコルの参加者](img/xrp-ledger-network.ja.png)](img/xrp-ledger-network.ja.png) +[![図4: XRP Ledgerプロトコルの参加者](/img/xrp-ledger-network.ja.png)](/img/xrp-ledger-network.ja.png) _図4: XRP Ledgerプロトコルの参加者_ @@ -78,17 +78,17 @@ _図4: XRP Ledgerプロトコルの参加者_ コンセンサスの間、各サーバーは、そのサーバーの信頼できるバリデータ( _ユニークノードリスト(UNL)_ )と呼ばれる特定のサーバー群からの提案を評価します。5信頼できるバリデータとは、提案を評価するサーバーを欺こうと共謀しない、全体として「信頼できる」ネットワークのサブセットを表します。この「信頼」の定義では、選択された個々のバリデータが信頼されている必要はありません。バリデータの選択は、ネットワークに中継されたデータを改ざんする組織的な試みで共謀しないという想定に基づいて行われます6 -[![図5: バリデータによるトランザクションセットの提案と修正](img/consensus-rounds.ja.png)](img/consensus-rounds.ja.png) +[![図5: バリデータによるトランザクションセットの提案と修正](/img/consensus-rounds.ja.png)](/img/consensus-rounds.ja.png) _図5: バリデータによるトランザクションセットの提案と修正 - コンセンサスの開始時点で、バリデータ毎に異なるトランザクションセットを持っている可能性があります。後のラウンドで、サーバーは現在の提案を信頼できるバリデータの提案と一致するように変更します。このプロセスでは、現在議論しているレジャーバージョンに適用するトランザクションと、それ以降のレジャーバージョンに適用するトランザクションを決定します。_ 合意済みの提案に含まれていない候補トランザクションは、その後も候補トランザクションとして残ります。これらは次のレジャーバージョンで再度検討される可能性があります。通常、1つのレジャーバージョンから除外されたトランザクションは、次のレジャーバージョンに含まれます。 -状況によっては、いつまでもコンセンサスに達することができないトランザクションもあります。そのような状況として、ネットワークが、必要な[トランザクションコスト](transaction-cost.html)を、トランザクションで指定されたものよりも高い値に変更している場合が考えられます。将来のある時点でこの手数料が引き下げられると、そのトランザクションが成功する可能性があります。トランザクションの成功または失敗が一定時間内に確定するように、トランザクションが特定のレジャーインデックスによって一定時間処理されない場合は期限切れになるように設定することができます。詳細は、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 +状況によっては、いつまでもコンセンサスに達することができないトランザクションもあります。そのような状況として、ネットワークが、必要な[トランザクションコスト](../transactions/transaction-cost.md)を、トランザクションで指定されたものよりも高い値に変更している場合が考えられます。将来のある時点でこの手数料が引き下げられると、そのトランザクションが成功する可能性があります。トランザクションの成功または失敗が一定時間内に確定するように、トランザクションが特定のレジャーインデックスによって一定時間処理されない場合は期限切れになるように設定することができます。詳細は、[信頼できるトランザクションの送信](../transactions/reliable-transaction-submission.md)を参照してください。 ### 検証 -検証は、全体のコンセンサスプロセスの第2段階です。このプロセスでは、すべてのサーバーで同じ結果が得られたことを確認し、あるレジャーバージョンが最終バージョンとして宣言されます。まれに、第一段階の[コンセンサスプロセスが失敗する場合](consensus-principles-and-rules.html#コンセンサス失敗の可能性)があります。検証によって後で確認が行われるため、サーバーは結果を確認し、それに応じて対処することができます。 +検証は、全体のコンセンサスプロセスの第2段階です。このプロセスでは、すべてのサーバーで同じ結果が得られたことを確認し、あるレジャーバージョンが最終バージョンとして宣言されます。まれに、第一段階の[コンセンサスプロセスが失敗する場合](consensus-principles-and-rules.md#コンセンサス失敗の可能性)があります。検証によって後で確認が行われるため、サーバーは結果を確認し、それに応じて対処することができます。 検証は、大きく分けて次の2つの部分に分かれます。 @@ -110,7 +110,7 @@ _図5: バリデータによるトランザクションセットの提案と修 3. 指示に従って、各トランザクションを順番に処理します。それに応じてレジャーの状態データを更新します。 - トランザクションを正常に実行できない場合は、[`tec`クラス結果コード](tec-codes.html)を持つトランザクションを含めます。1 + トランザクションを正常に実行できない場合は、[`tec`クラス結果コード](../../references/protocol/transactions/transaction-results/tec-codes.md)を持つトランザクションを含めます。1 特定の「再試行可能な」トランザクションの失敗に対しては、同じレジャーバージョンの他のトランザクションが実行された後に再試行されるように、そのトランザクションを正規順序の最後に移動します。 @@ -120,7 +120,7 @@ _図5: バリデータによるトランザクションセットの提案と修 5. 新しいレジャーバージョンの識別用ハッシュを計算します。 -[![図7: XRP Ledgerサーバーでレジャー検証を計算する](img/consensus-calculate-validation.ja.png)](img/consensus-calculate-validation.ja.png) +[![図7: XRP Ledgerサーバーでレジャー検証を計算する](/img/consensus-calculate-validation.ja.png)](/img/consensus-calculate-validation.ja.png) _図7: XRP Ledgerサーバーでレジャー検証を計算する - 各サーバーは、同意済みのトランザクションを前の検証済みレジャーに適用します。バリデータは結果をネットワーク全体に送信します。_ @@ -128,7 +128,7 @@ _図7: XRP Ledgerサーバーでレジャー検証を計算する - 各サーバ バリデータはそれぞれ、計算したレジャーバージョンのハッシュを含む署名付きメッセージの形式で結果を中継します。 _検証_ と呼ばれるこれらのメッセージによって、各サーバーで計算したレジャーとそのピアのレジャーを比較することができます。 -[![図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが検証される](img/consensus-declare-validation.ja.png)](img/consensus-declare-validation.ja.png) +[![図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが検証される](/img/consensus-declare-validation.ja.png)](/img/consensus-declare-validation.ja.png) _図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが検証される - 各サーバーは、計算されたレジャーを、選択されたバリデータから受け取ったハッシュと比較します。一致しない場合、サーバーは正しいレジャーを再計算または取得する必要があります。_ @@ -136,7 +136,7 @@ _図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが サーバーが少数で、ピアと異なるレジャーを計算した場合、計算したレジャーは無視されます8。正しいレジャーを再計算するか、必要に応じて正しいレジャーを取得します。 -ネットワークで、検証に関する圧倒的多数の同意が得られない場合、コンセンサスプロセスで一貫した提案を作成するにはトランザクション量が多すぎるか、ネットワーク遅延が大きすぎることを意味します。この場合、サーバーはコンセンサスプロセスを繰り返します。コンセンサスが始まってから時間が経過するにつれて、各コンセンサスラウンドで不一致は減少するため、過半数のサーバーが同じ候補トランザクションのセットを受け取った可能性が高くなります。XRP Ledgerは、これらの状況に応じて[トランザクションコスト](transaction-cost.html)と、コンセンサスを待つ時間を動的に調整します。 +ネットワークで、検証に関する圧倒的多数の同意が得られない場合、コンセンサスプロセスで一貫した提案を作成するにはトランザクション量が多すぎるか、ネットワーク遅延が大きすぎることを意味します。この場合、サーバーはコンセンサスプロセスを繰り返します。コンセンサスが始まってから時間が経過するにつれて、各コンセンサスラウンドで不一致は減少するため、過半数のサーバーが同じ候補トランザクションのセットを受け取った可能性が高くなります。XRP Ledgerは、これらの状況に応じて[トランザクションコスト](../transactions/transaction-cost.md)と、コンセンサスを待つ時間を動的に調整します。 検証について圧倒的多数の合意が得られると、サーバーは検証済みの新しいレジャー、レジャーインデックスN+1との作業に入ることができます。最後のラウンドに含まれなかった候補トランザクションと、その間に送信された新しいトランザクションに対して、コンセンサスと検証プロセスが繰り返されます9。 @@ -157,7 +157,7 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され - コンセンサスラウンドが失敗すると、成功するまでコンセンサスプロセスが繰り返されます。 - 検証済みレジャーには、トランザクションとレジャーの状態への反映が含まれます。 -アプリケーションでは、候補トランザクションの暫定的な結果ではなく、検証済みのレジャーの情報のみを信頼してください。一部の[`rippled` API](http-websocket-apis.html)では、トランザクションの暫定的な結果が最初に返されます。トランザクションの結果が不変になるのは、そのトランザクションが検証済みレジャーに含まれている場合か、トランザクションに`LastLedgerSequence`が含まれ、そのレジャーインデックス以下の検証済みレジャーに出現しない場合に限られます。 +アプリケーションでは、候補トランザクションの暫定的な結果ではなく、検証済みのレジャーの情報のみを信頼してください。一部の[`rippled` API](../../references/http-websocket-apis/index.md)では、トランザクションの暫定的な結果が最初に返されます。トランザクションの結果が不変になるのは、そのトランザクションが検証済みレジャーに含まれている場合か、トランザクションに`LastLedgerSequence`が含まれ、そのレジャーインデックス以下の検証済みレジャーに出現しない場合に限られます。 トランザクションを送信するアプリケーションのベストプラクティスは次のとおりです。 @@ -173,15 +173,15 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され ## 関連項目 - **コンセプト:** - - [コンセンサスについて](consensus.html) - - [コンセンサスの研究](consensus-research.html) + - [コンセンサスについて](index.md) + - [コンセンサスの研究](consensus-research.md) - [コンセンサスの仕組み(動画)](https://www.youtube.com/watch?v=pj1QVb1vlC0) - **チュートリアル:** - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html) + - [信頼できるトランザクションの送信](../transactions/reliable-transaction-submission.md) + - [バリデータとしての`rippled`の実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **リファレンス:** - - [レジャーフォーマットのリファレンス](ledger-data-formats.html) - - [トランザクションフォーマットのリファレンス](transaction-formats.html) + - [レジャーフォーマットのリファレンス](../../references/protocol/ledger-data/index.md) + - [トランザクションフォーマットのリファレンス](../../references/protocol/transactions/index.md) - [Consensus_infoメソッド][] - [Validator_list_sitesメソッド][] - [Validatorsメソッド][] @@ -192,7 +192,7 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され ## 脚注 -1 – [**tec**結果コード](tec-codes.html)を持つトランザクションでは、要求されたアクションは実行されませんが、レジャーには影響します。ネットワークの悪用を防ぎ、トランザクションの分散コストを賄うために、XRPの[トランザクションコスト](transaction-cost.html)が消却されます。同じ送信者によって同時刻に送信された他のトランザクションをブロックしないようにするには、送信者のアカウントの[シーケンス番号](basic-data-types.html#アカウントシーケンス)を都度増やしてゆきます。`tec`クラスの結果を持つトランザクションは、期限切れのオブジェクトや資金のない取引注文を削除するなどのメンテナンスも行います。 +1 – [**tec**結果コード](../../references/protocol/transactions/transaction-results/tec-codes.md)を持つトランザクションでは、要求されたアクションは実行されませんが、レジャーには影響します。ネットワークの悪用を防ぎ、トランザクションの分散コストを賄うために、XRPの[トランザクションコスト](../transactions/transaction-cost.md)が消却されます。同じ送信者によって同時刻に送信された他のトランザクションをブロックしないようにするには、送信者のアカウントの[シーケンス番号](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)を都度増やしてゆきます。`tec`クラスの結果を持つトランザクションは、期限切れのオブジェクトや資金のない取引注文を削除するなどのメンテナンスも行います。 2 – 例えば、Aliceが100ドルを持っていて、全額をBobに送信するシナリオを考えてみましょう。アプリケーションは最初にPaymentトランザクションを送信し、Aliceの残高を確認したらすぐにAPIから0ドルが返されます。この値は、候補トランザクションの暫定結果に基づいています。支払いが失敗し、Aliceの残高が100ドルのままになる(または他のトランザクションによって別の金額になる)場合があります。AliceからBobへの支払いが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ結果コードが**tesSUCCESS**になるまで、トランザクションの状況を確認することです。トランザクションが検証済みレジャーにあるが、結果コードが異なる場合、支払いは失敗したことを意味します。 @@ -202,7 +202,7 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され 5 – 各サーバーは独自の信頼できるバリデータを定義しますが、ネットワークの一貫性は、様々なサーバーで重複の度合いが高いバリデータのリストが選択されるかどうかにかかっています。このため、Rippleでは推奨するバリデータのリストを公開しています。 -6 – 共謀しないとされるバリデータからだけでなくすべてのバリデータからの提案が評価される場合は、悪意のある攻撃者によって、無効なトランザクションが導入されたり、提案から有効なトランザクションが除外されたりする可能性があります。選択されたバリデータリストによって、[シビル攻撃](consensus-protections.html#シビル攻撃)から保護することができます。 +6 – 共謀しないとされるバリデータからだけでなくすべてのバリデータからの提案が評価される場合は、悪意のある攻撃者によって、無効なトランザクションが導入されたり、提案から有効なトランザクションが除外されたりする可能性があります。選択されたバリデータリストによって、[シビル攻撃](consensus-protections.md#シビル攻撃)から保護することができます。 7 – 2014年11月の時点で、圧倒的多数を表すしきい値として、少なくともピアの80%が検証すべきレジャーに同意する必要があります。これは、コンセンサスのラウンドで要求される割合と同じです。いずれのしきい値も変更される可能性があり、同じである必要はありません。 @@ -212,8 +212,4 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され 10 – `rippled`サーバーはレジャーの履歴全体がなくてもAPIリクエストにレスポンスすることができます。サービスやネットワーク接続が中断すると、そのサーバーのレジャー履歴にレジャーの不足や誤差が生じることがあります。時間の経過とともに、`rippled`によってその誤差は埋まります(そのように設定されている場合)。欠落しているトランザクションを検証する場合は、トランザクションが送信されてからLastLedgerSequenceまでの連続した完全なレジャーを持つサーバーに照らして検証することが重要です。特定のサーバーで利用できるcomplete_ledgersを判断するには、RPCサーバーの状態を使用します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/consensus-protocol/fee-voting.md b/content/@i18n/ja/concepts/consensus-protocol/fee-voting.md index 11da6a3c8e..033eb48669 100644 --- a/content/@i18n/ja/concepts/consensus-protocol/fee-voting.md +++ b/content/@i18n/ja/concepts/consensus-protocol/fee-voting.md @@ -8,9 +8,9 @@ labels: --- # 手数料投票 -バリデータは、基本の[トランザクションコスト](transaction-cost.html)と[必要準備金](reserves.html)の変更について投票できます。バリデータの構成の設定がネットワークの現在の設定と異なる場合、バリデータはその設定をネットワークに定期的に公開します。定数のバリデータが変更に合意すると、変更を適用できるようになり、以後この変更が有効になります。バリデータはさまざまな理由から(特にXRPの価値の長期的な変化に適応するために)、この処理を行います。 +バリデータは、基本の[トランザクションコスト](../transactions/transaction-cost.md)と[必要準備金](../accounts/reserves.md)の変更について投票できます。バリデータの構成の設定がネットワークの現在の設定と異なる場合、バリデータはその設定をネットワークに定期的に公開します。定数のバリデータが変更に合意すると、変更を適用できるようになり、以後この変更が有効になります。バリデータはさまざまな理由から(特にXRPの価値の長期的な変化に適応するために)、この処理を行います。 -[`rippled`バリデータ](run-rippled-as-a-validator.html)のオペレーターは、`rippled.cfg`ファイルの`[voting]`スタンザでトランザクションコストと必要準備金の設定を指定できます。 +[`rippled`バリデータ](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)のオペレーターは、`rippled.cfg`ファイルの`[voting]`スタンザでトランザクションコストと必要準備金の設定を指定できます。 **注意:** 信頼できるバリデータの合意により不十分な必要準備金が採用された場合、XRP Ledgerピアツーピアネットワークがサービス拒否(DoS)攻撃を受ける可能性があります。 @@ -28,7 +28,7 @@ labels: フラグレジャー自体では何も起こりませんが、バリデータは信頼する他のバリデータからの投票を受信して記録します。 -他のバリデータの投票を集計した後、各バリデータは自身の設定と信頼する過半数のバリデータの設定の間で妥協点を探ります。(たとえば、あるバリデータが最小トランザクションコストを10から100に引き上げることを望む一方で、ほとんどのバリデータは10から20に引き上げることを望んでいる場合、そのバリデータは当該のコストを20に引き上げることにします。ただし、そのバリデータは10未満の値または100を超える値にすることはありません。)妥協できる場合、バリデータはフラグレジャーの直後のレジャーに対する提案に[SetFee疑似トランザクション](setfee.html)を挿入します。同じ変更を求める他のバリデータは、同じレジャーに対する各自の提案に同じSetFee疑似トランザクションを挿入します。(設定が既存のネットワーク設定と一致している場合、バリデータは何も行いません。)SetFee疑似トランザクションがコンセンサスプロセスを通過し、検証済みレジャーに追加される場合、SetFee疑似トランザクションで設定された新しいトランザクションコストと準備金の設定がその次のレジャーから有効になります。 +他のバリデータの投票を集計した後、各バリデータは自身の設定と信頼する過半数のバリデータの設定の間で妥協点を探ります。(たとえば、あるバリデータが最小トランザクションコストを10から100に引き上げることを望む一方で、ほとんどのバリデータは10から20に引き上げることを望んでいる場合、そのバリデータは当該のコストを20に引き上げることにします。ただし、そのバリデータは10未満の値または100を超える値にすることはありません。)妥協できる場合、バリデータはフラグレジャーの直後のレジャーに対する提案に[SetFee疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/setfee.md)を挿入します。同じ変更を求める他のバリデータは、同じレジャーに対する各自の提案に同じSetFee疑似トランザクションを挿入します。(設定が既存のネットワーク設定と一致している場合、バリデータは何も行いません。)SetFee疑似トランザクションがコンセンサスプロセスを通過し、検証済みレジャーに追加される場合、SetFee疑似トランザクションで設定された新しいトランザクションコストと準備金の設定がその次のレジャーから有効になります。 まとめ: @@ -39,7 +39,7 @@ labels: ## 手数料の最大値 -手数料の最大可能値は、[FeeSettingsレジャーオブジェクト](feesettings.html)に保管されている内部データ型により制限されます。これらの値は次のとおりです。 +手数料の最大可能値は、[FeeSettingsレジャーオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md)に保管されている内部データ型により制限されます。これらの値は次のとおりです。 | パラメーター | 最大値(drop) | 最大値(XRP) |-----------|-----------------------|----| diff --git a/content/@i18n/ja/concepts/consensus-protocol/index.md b/content/@i18n/ja/concepts/consensus-protocol/index.md index f6afb3ca96..76571451ac 100644 --- a/content/@i18n/ja/concepts/consensus-protocol/index.md +++ b/content/@i18n/ja/concepts/consensus-protocol/index.md @@ -23,11 +23,11 @@ top_nav_grouping: 人気ページ これらの特性は、次の3原則としてまとめられます。優先順位の高い順に示します。**正確さ、合意、処理の継続** -このプロトコルはまだ発展段階にあり、その限界と起こり得る障害についての知識もまだ蓄積中です。プロトコル自体に関する学術研究については、[コンセンサスリサーチ](consensus-research.html)を参照してください。 +このプロトコルはまだ発展段階にあり、その限界と起こり得る障害についての知識もまだ蓄積中です。プロトコル自体に関する学術研究については、[コンセンサスリサーチ](consensus-research.md)を参照してください。 ## 背景 -コンセンサスプロトコルは、_二重支払いの問題_、つまり同じデジタルマネーを2回使用することを防ぐという課題に対する解決策です。この問題において最も困難なのは、取引を順序立てる点です。中央管理者がいない中で、同時に複数の相互排他的取引が送信されたときに、先に到着したのはどの取引なのかという紛争を解決するのは困難です。二重支払いの問題や、XRP Ledger コンセンサスプロトコルでこの問題を解決する方法、およびそれに伴うトレードオフと制限事項の詳細な分析については、[コンセンサスの原理とルール](consensus-principles-and-rules.html)を参照してください。 +コンセンサスプロトコルは、_二重支払いの問題_、つまり同じデジタルマネーを2回使用することを防ぐという課題に対する解決策です。この問題において最も困難なのは、取引を順序立てる点です。中央管理者がいない中で、同時に複数の相互排他的取引が送信されたときに、先に到着したのはどの取引なのかという紛争を解決するのは困難です。二重支払いの問題や、XRP Ledger コンセンサスプロトコルでこの問題を解決する方法、およびそれに伴うトレードオフと制限事項の詳細な分析については、[コンセンサスの原理とルール](consensus-principles-and-rules.md)を参照してください。 ## レジャー(台帳)履歴 @@ -38,7 +38,7 @@ XRP Ledgerは、「レジャーバージョン」、または略して「レジ - このレジャーにつながる、以前のレジャーに適用された一連の取引。 - レジャーインデックスや、その内容を一意に識別する[暗号化ハッシュ](https://en.wikipedia.org/wiki/Cryptographic_hash_function)、およびこのレジャーを構築するための基盤として使用された親レジャーに関する情報など、現行のレジャーバージョンに関するメタデータ。 -[![図1: レジャーバージョンの構造(取引、状態、およびメタデータを含む)](img/anatomy-of-a-ledger-simplified.ja.png)](img/anatomy-of-a-ledger-simplified.ja.png) +[![図1: レジャーバージョンの構造(取引、状態、およびメタデータを含む)](/img/anatomy-of-a-ledger-simplified.ja.png)](/img/anatomy-of-a-ledger-simplified.ja.png) レジャーの各バージョンには _レジャーインデックス_ としての番号が付けられており、インデックスが1つ前のレジャーバージョンを基に新たな情報を追加する形で作成されています。一番最初まで遡ると、レジャーインデックスが1の _ジェネシスレジャー_ と呼ばれる出発点に戻ります。[¹](#footnote-1)これにより、Bitcoinや他のブロックチェーン技術と同様に、すべての取引とその結果についての公開履歴が形成されます。多くのブロックチェーン技術とは異なり、XRP Ledgerの新しい「ブロック」には現在の状態がすべて含まれているため、現在起こっている内容を把握するために履歴全体を収集する必要はありません。[²](#footnote-2) @@ -48,15 +48,15 @@ XRP Ledger コンセンサスプロトコルの主な役割は、前のレジャ ## 信頼に基づく検証 -XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな効果を生み出すという基本的な原理に支えられています。ネットワークの各参加者は、一連の _バリデータ_ (検証者)を選択します。バリデータは常に誠実に行動することが期待されるさまざまな当事者によって運営されており、[コンセンサスにアクティブに参加するように特別に設定されたサーバー](run-rippled-as-a-validator.html)上に存在します。さらに重要なことは、選択された一連のバリデータが互いに共謀して同じ方法を使ってルールを破ることはないということです。この一連バリデータのリストは、_ユニークノードリスト_(UNL)とも呼ばれます。 +XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな効果を生み出すという基本的な原理に支えられています。ネットワークの各参加者は、一連の _バリデータ_ (検証者)を選択します。バリデータは常に誠実に行動することが期待されるさまざまな当事者によって運営されており、[コンセンサスにアクティブに参加するように特別に設定されたサーバー](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)上に存在します。さらに重要なことは、選択された一連のバリデータが互いに共謀して同じ方法を使ってルールを破ることはないということです。この一連バリデータのリストは、_ユニークノードリスト_(UNL)とも呼ばれます。 ネットワークが更新する中で、各サーバーは信頼できるバリデータ[³](#footnote-3)をモニターします。十分な数のバリデータが、一連の取引の発生を確認し、特定のレジャーにその結果が反映されたことに同意した場合、サーバーによってコンセンサスが宣言されます。バリデータ間で同意が得られない場合、バリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。このプロセスは、コンセンサスに達するまで何度か繰り返されます。 -[![図2: コンセンサスラウンドバリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。](img/consensus-rounds.ja.png)](img/consensus-rounds.ja.png) +[![図2: コンセンサスラウンドバリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。](/img/consensus-rounds.ja.png)](/img/consensus-rounds.ja.png) 常に正しく行動しないバリデータが一部存在しても問題ありません。信頼できるバリデータのうち、正しく行動しないバリデータの割合が20%未満である場合は、制限なくコンセンサスは継続します。また、無効な取引を確認するには、信頼できるバリデータの80%以上が合意する必要があります。信頼できるバリデータのうち、正しく行動しないバリデータの割合が20%以上80%未満である場合、ネットワークは停止します。 -XRP Ledger コンセンサスプロトコルで、さまざまな課題や攻撃、失敗の事例にどのように対応するかについての詳細な説明については、[攻撃と失敗モードに対するコンセンサスの保護](consensus-protections.html)を参照してください。 +XRP Ledger コンセンサスプロトコルで、さまざまな課題や攻撃、失敗の事例にどのように対応するかについての詳細な説明については、[攻撃と失敗モードに対するコンセンサスの保護](consensus-protections.md)を参照してください。 ---- diff --git a/content/@i18n/ja/concepts/consensus-protocol/invariant-checking.md b/content/@i18n/ja/concepts/consensus-protocol/invariant-checking.md index b114c72766..f29e80e7b3 100644 --- a/content/@i18n/ja/concepts/consensus-protocol/invariant-checking.md +++ b/content/@i18n/ja/concepts/consensus-protocol/invariant-checking.md @@ -77,19 +77,19 @@ XRP Ledgerは、各トランザクションについて、以下のすべての ### トランザクション手数料チェック - **不変条件:** - - [トランザクションコスト](transaction-cost.html)の金額は決してマイナスになってはならず、またトランザクションで指定されたコストより大きくなってはいけません。 + - [トランザクションコスト](../transactions/transaction-cost.md)の金額は決してマイナスになってはならず、またトランザクションで指定されたコストより大きくなってはいけません。 ### XRPは作成されません - **不変条件:** - - トランザクションはXRPを生成してはならず、XRPを破棄するのみです[トランザクションコスト](transaction-cost.html)。 + - トランザクションはXRPを生成してはならず、XRPを破棄するのみです[トランザクションコスト](../transactions/transaction-cost.md)。 ### アカウントルートが削除されていない - **不変条件:** - - [アカウント](accounts.html)は、[AccountDeleteトランザクション][]によってのみレジャーから削除することができます。 + - [アカウント](../accounts/accounts.md)は、[AccountDeleteトランザクション][]によってのみレジャーから削除することができます。 - AccountDelete が成功すると、常にちょうど1つのアカウントが削除されます。 @@ -102,33 +102,33 @@ XRP Ledgerは、各トランザクションについて、以下のすべての ### レジャーエントリ形式の一致 - **不変条件:** - - 変更されたレジャーの項目は形式が一致し、追加された項目は[有効なタイプ](ledger-object-types.html)である必要があります。 + - 変更されたレジャーの項目は形式が一致し、追加された項目は[有効なタイプ](../../references/protocol/ledger-data/ledger-entry-types/index.md)である必要があります。 ### XRPのトラストラインはありません - **不変条件:** - - XRPを使用した[トラストライン](trust-lines-and-issuing.html)は作成できません。 + - XRPを使用した[トラストライン](../tokens/fungible-tokens/index.md)は作成できません。 ### 不正なオファーでない - **不変条件:** - - [オファー](offer.html)は負でない金額でなければならず、XRP同士であってはいけません。 + - [オファー](../../references/protocol/ledger-data/ledger-entry-types/offer.md)は負でない金額でなければならず、XRP同士であってはいけません。 ### 0のエスクローでない - **不変条件:** - - [エスクロー](escrow-object.html)エントリーは、0XRP以上1000億XRP未満を保有している必要があります。 + - [エスクロー](../../references/protocol/ledger-data/ledger-entry-types/escrow.md)エントリーは、0XRP以上1000億XRP未満を保有している必要があります。 ### 有効な新規アカウントルート - **不変条件:** - - 新しい[アカウントルート](accountroot.html)は、支払いの結果でなければなりません。 - - 新しいアカウントルートは、正しい開始[シーケンス](basic-data-types.html#アカウントシーケンス)を持たなければなりません。 - - 1つのトランザクションで複数の新しい[アカウント](accounts.html)を作成してはいけません。 + - 新しい[アカウントルート](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)は、支払いの結果でなければなりません。 + - 新しいアカウントルートは、正しい開始[シーケンス](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)を持たなければなりません。 + - 1つのトランザクションで複数の新しい[アカウント](../accounts/accounts.md)を作成してはいけません。 ## 関連項目 @@ -145,12 +145,7 @@ XRP Ledgerは、各トランザクションについて、以下のすべての - **その他:** - - [Authorized Trust Lines](authorized-trust-lines.html) + - [Authorized Trust Lines](../tokens/fungible-tokens/authorized-trust-lines.md) - [トランザクションの残高変化の計算](https://xrpl.org/blog/2015/calculating-balance-changes-for-a-transaction.html#calculating-balance-changes-for-a-transaction) - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/consensus-protocol/negative-unl.md b/content/@i18n/ja/concepts/consensus-protocol/negative-unl.md index e93e42c69c..280afb8470 100644 --- a/content/@i18n/ja/concepts/consensus-protocol/negative-unl.md +++ b/content/@i18n/ja/concepts/consensus-protocol/negative-unl.md @@ -7,9 +7,9 @@ labels: --- # ネガティブUNL -_([NegativeUNL Amendment](known-amendments.html#negativeunl)によって追加されました。)_ +_([NegativeUNL Amendment](../../resources/known-amendments.md#negativeunl)によって追加されました。)_ -ネガティブUNLは、XRP Ledgerの[コンセンサスプロトコル](consensus.html)の機能で、バリデータの部分的な停止中にネットワークの前進を可能にする _liveness_ を向上させるものです。ネガティブUNLを使用すると、サーバーは現在オンラインかつ稼働中のバリデータに基づいて有効なUNLを調整するため、信頼できるバリデータが複数オフラインの場合でも、新しい[レジャーバージョン](ledgers.html) を _validated_ と宣言することができるようになるのです。 +ネガティブUNLは、XRP Ledgerの[コンセンサスプロトコル](index.md)の機能で、バリデータの部分的な停止中にネットワークの前進を可能にする _liveness_ を向上させるものです。ネガティブUNLを使用すると、サーバーは現在オンラインかつ稼働中のバリデータに基づいて有効なUNLを調整するため、信頼できるバリデータが複数オフラインの場合でも、新しい[レジャーバージョン](../ledgers/index.md) を _validated_ と宣言することができるようになるのです。 ネガティブUNLは、部分的な停止中に結果を確定するネットワークの能力を向上させる以外、ネットワークのトランザクション処理方法やトランザクションの結果に影響を与えることはありません。 @@ -33,11 +33,11 @@ XRP Ledgerプロトコルの各サーバーは、UNL(Unique Node List)と呼 20%以上のバリデータが突然一度にオフラインになった場合、残りのサーバーは新しいレジャーを検証するのに必要な定足数を達成できないため、新しいレジャーを検証することができない。しかし、そのようなサーバーでも、コンセンサスラウンドを重ねることで暫定的な前進は可能である。時間が経つにつれて、残りのバリデータは暫定的なレジャーにネガティブUNLの変更を適用し、有効なUNLを調整し続ける。最終的に、この状況が続けば、ネットワークは暫定的なレジャーのバージョンから調整後のネガティブUNLを使用して、レジャーの検証を完全に再開することが可能である。 -スタンドアロンモードでは、サーバーはコンセンサスを使用しないので、ネガティブUNLは[スタンドアロンモード](rippled-server-modes.html)に影響を及ぼさない。 +スタンドアロンモードでは、サーバーはコンセンサスを使用しないので、ネガティブUNLは[スタンドアロンモード](../networks-and-servers/rippled-server-modes.md)に影響を及ぼさない。 ## 仕組み -ネガティブUNLは[コンセンサスプロセス](consensus.html)と密接に関連し、不利な状況下でもネットワークの継続性と信頼性を維持できるように安全策をとって設計されたものである。すべての信頼できるバリデータが正常に動作している場合、ネガティブUNLは使用されず、何の効果もない。一部のバリデータがオフラインまたは同期していないように見えるとき、ネガティブUNLルールは有効になる。 +ネガティブUNLは[コンセンサスプロセス](index.md)と密接に関連し、不利な状況下でもネットワークの継続性と信頼性を維持できるように安全策をとって設計されたものである。すべての信頼できるバリデータが正常に動作している場合、ネガティブUNLは使用されず、何の効果もない。一部のバリデータがオフラインまたは同期していないように見えるとき、ネガティブUNLルールは有効になる。 ネガティブUNLは意図的にゆっくりとした速度で変化するように設計されており、あるバージョンのレジャーの合意形成プロセスにおいて、どのネガティブUNLを適用すべきかという時間ベースの不一致を回避するためである。 @@ -54,7 +54,7 @@ Vaは、サーバー側のコンセンサス見解と一致した過 - バリデータ間のネットワーク接続が悪いため、バリデータの検証票がサーバーに届かない。 - バリデータが動作を停止したり、過負荷になっている。 -- 様々な理由により、バリデータはサーバと同じプロトコルルールに従わない。可能性としては、設定ミス、ソフトウェアのバグ、意図的に[異なるネットワーク](parallel-networks.html)に従っている、または悪意ある行動などが考えられます。 +- 様々な理由により、バリデータはサーバと同じプロトコルルールに従わない。可能性としては、設定ミス、ソフトウェアのバグ、意図的に[異なるネットワーク](../networks-and-servers/parallel-networks.md)に従っている、または悪意ある行動などが考えられます。 バリデータの信頼性が**50%**である場合、そのバリデータはネガティブUNLに追加される候補である。ネガティブUNLから削除するには、バリデータの信頼性が**80%超**でなければならない。 @@ -72,7 +72,7 @@ Vaは、サーバー側のコンセンサス見解と一致した過 1. 前のフラグレジャーで予定されていたネガティブUNLの変更は、次のレジャーバージョンから有効となる。このフラグレジャーの検証のための合意プロセスそのものは、予定されていた変更を利用しない。 - **注記:** これは、[トランザクション](transactions.html)や[疑似トランザクション](pseudo-transaction-types.html)を行わずにレジャーの状態データを変更する唯一の機会です。 + **注記:** これは、[トランザクション](../transactions/index.md)や[疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)を行わずにレジャーの状態データを変更する唯一の機会です。 2. ネガティブUNLが満杯でない場合、各サーバーは信頼度50%未満のバリデータの中から、**最大1つ**のバリデータをネガティブUNLに追加することを提案する。 3. ネガティブUNLが空でない場合、各サーバーはネガティブUNLから**最大1つ**のバリデータを削除することを提案する。サーバーがバリデータをネガティブUNLから削除することを提案できる理由は2つある。 @@ -80,9 +80,9 @@ Vaは、サーバー側のコンセンサス見解と一致した過 - 自身のUNLにそのバリデーターを持たない。(バリデータが永久に停止した場合、このルールは、サーバーの設定済みUNLからバリデータが削除された後に、オンレジャーのネガティブUNLからバリデータが削除されることを確実にする)。 4. ネガティブUNLの変更案がコンセンサスに達した場合、その変更は次のフラグレジャーから適用される予定である。この方法で最大1つの追加と1つの削除をスケジュールすることができる。 -ネガティブUNLにバリデータを追加したり削除したりする提案は[UNLModify pseudo-transactions][]の形式を取る。それぞれの擬似トランザクションは他の[擬似トランザクション](pseudo-transaction-types.html)と同じように合意形成プロセスによって合意を得るか捨てられるかが決定される。言い換えると、あるバリデータがネガティブUNLに追加されたり削除されたりするためには、サーバーの総意として同じ変更を提案する必要がある。 +ネガティブUNLにバリデータを追加したり削除したりする提案は[UNLModify pseudo-transactions][]の形式を取る。それぞれの擬似トランザクションは他の[擬似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)と同じように合意形成プロセスによって合意を得るか捨てられるかが決定される。言い換えると、あるバリデータがネガティブUNLに追加されたり削除されたりするためには、サーバーの総意として同じ変更を提案する必要がある。 -ネガティブUNLの予定された有効な変更は、レジャーの状態データの中の[ネガティブUNLオブジェクト](negativeunl.html)に追跡される。 +ネガティブUNLの予定された有効な変更は、レジャーの状態データの中の[ネガティブUNLオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md)に追跡される。 ### ネガティブUNLの制限 @@ -110,7 +110,7 @@ Vaは、サーバー側のコンセンサス見解と一致した過 ### 検証のフィルタリング -[コンセンサスプロセスの検証ステップ](consensus-structure.html#検証)では、親レジャーのネガティブ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人の有効投票者が必要である。 @@ -122,58 +122,55 @@ Vaは、サーバー側のコンセンサス見解と一致した過 1. サーバーのUNLが38人の信頼できるバリデータで構成されているとすると、80%の定足数は38人のうち少なくとも31人の信頼できるバリデータである。 -{{ include_svg("img/negative-unl-01.svg", "Diagram: 通常の場合。ネガティブUNLは未使用、定足数は設定されたバリデータの80%である。") }} +[{% inline-svg file="/img/negative-unl-01.svg" /%}](/img/negative-unl-01.svg "Diagram: 通常の場合。ネガティブUNLは未使用、定足数は設定されたバリデータの80%である。") 2. MissingAとUnsteadyBという2人のバリデータがオフラインになったとする。(両者とも信頼度スコアは50%未満である。)レジャー _N_ の合意プロセスにおいて、残りのバリデータの多くがUnsteadyBをネガティブUNLに追加することを提案する。この動議は残りのバリデーターのうち少なくとも31人の定足数で可決され、レジャー _N_ はUnsteadyBを無効化する予定で有効になった。 -{{ include_svg("img/negative-unl-02.svg", "Diagram: UnsteadyBは無効になる予定。") }} +[{% inline-svg file="/img/negative-unl-02.svg" /%}](/img/negative-unl-02.svg "Diagram: UnsteadyBは無効になる予定。") 3. レジャー _N+1_ から _N+256_ については、コンセンサスプロセスをそのまま継続する。 4. 次のフラグレジャー _N+256_ では、UnsteadyBはレジャーの「予定」から「無効」リストへ自動的に移動する。また、MissingAがまだオフラインであるため、検証者の総意として、次のフラグレジャーでMissingAを無効化する予定とする。 -{{ include_svg("img/negative-unl-04.svg", "UnsteadyBが無効化され、MissingAも無効化される予定。") }} +[{% inline-svg file="/img/negative-unl-04.svg" /%}](/img/negative-unl-04.svg "UnsteadyBが無効化され、MissingAも無効化される予定。") 5. レジャー _N+257_ から _N+512_ について、定足数は37名中30名となった。 6. UnsteadyBがレジャー _N+270_ でオンラインに復帰。レジャー _N+270_ から _N+511_ に対してネットワークの他の部分と一致する検証票を送信し、信頼性スコアが80%以上となる。 -{{ include_svg("img/negative-unl-06.svg", "Diagram: UnsteadyBがオンラインに戻るが、まだ無効化されている。") }} +[{% inline-svg file="/img/negative-unl-06.svg" /%}](/img/negative-unl-06.svg "Diagram: UnsteadyBがオンラインに戻るが、まだ無効化されている。") 7. 次のフラグレジャー _N+256_ では、予定通りMissingAが自動的に無効リストに移される。一方、UnsteadyBは信頼性スコアが向上したため、検証者の総意としてネガティブUNLから削除される予定である。 -{{ include_svg("img/negative-unl-07.svg", "Diagram: MissingAを無効化し、UnsteadyBを再有効化する予定。") }} +[{% inline-svg file="/img/negative-unl-07.svg" /%}](/img/negative-unl-07.svg "Diagram: MissingAを無効化し、UnsteadyBを再有効化する予定。") 8. レジャー _N+513_ から _N+768_ の場合、定足数は36人中29人である。MissingAがオフラインの間、UnsteadyBは安定的に検証結果を送り続ける。 9. フラグレジャー _N+768_ では、予定通りUnsteadyBが無効リストから自動的に削除されています。 -{{ include_svg("img/negative-unl-09.svg", "Diagram: UnsteadyBを無効リストから削除。") }} +[{% inline-svg file="/img/negative-unl-09.svg" /%}](/img/negative-unl-09.svg "Diagram: UnsteadyBを無効リストから削除。") 10. 最終的に、あなたはMissingAがおそらく戻ってこないと判断し、あなたのサーバーの設定されたUNLからそれを削除します。あなたのサーバーはそれ以降、各フラグレジャーからMissingAをネガティブUNLから削除することを提案し始める。 -{{ include_svg("img/negative-unl-10.svg", "Diagram: MissingAを設定済みUNLから削除した後、ネガティブUNLからも削除することを提案する。 ") }} +[{% inline-svg file="/img/negative-unl-10.svg" /%}](/img/negative-unl-10.svg "Diagram: MissingAを設定済みUNLから削除した後、ネガティブUNLからも削除することを提案する。 ") 11. バリデータ操作者が自分の設定したUNLからMissingAを削除すると、そのバリデータ操作者はネガティブUNLからMissingAを削除するように投票する。十分な数のバリデータが投票した時点で、MissingAを削除する提案は合意に達し、MissingAはスケジュールされ、最終的にネガティブUNLから削除される。 -{{ include_svg("img/negative-unl-11.svg", "Diagram: MissingAをネガティブUNLから削除。") }} +[{% inline-svg file="/img/negative-unl-11.svg" /%}](/img/negative-unl-11.svg "Diagram: MissingAをネガティブUNLから削除。") ### 関連項目 - **コンセンサス:** - - [コンセンサスプロトコル](consensus.html) + - [コンセンサスプロトコル](index.md) - **チュートリアル:** - - [Testnetや別の並列ネットワークへ接続する](connect-your-rippled-to-the-xrp-test-net.html) - - [バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html) + - [Testnetや別の並列ネットワークへ接続する](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) + - [バリデータとしての`rippled`の実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **リファレンス:** - - [negativeUNL オブジェクト](negativeunl.html) + - [negativeUNL オブジェクト](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) - [UNLModify pseudo-transaction][] - [ledger_entry メソッド][] - [consensus_info メソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/index.md b/content/@i18n/ja/concepts/index.md index c8311b9774..e9bbad84f7 100644 --- a/content/@i18n/ja/concepts/index.md +++ b/content/@i18n/ja/concepts/index.md @@ -2,8 +2,12 @@ html: concepts.html parent: docs.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # コンセプト -XRP Ledgerの基本的な部分の背景に「何があるか」、「なぜなのか」を学びましょう。 \ No newline at end of file +XRP Ledgerの基本的な部分の背景に「何があるか」、「なぜなのか」を学びましょう。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/concepts/ledgers/index.md b/content/@i18n/ja/concepts/ledgers/index.md index 9ed0ddb4da..c4b7f1e21a 100644 --- a/content/@i18n/ja/concepts/ledgers/index.md +++ b/content/@i18n/ja/concepts/ledgers/index.md @@ -8,9 +8,9 @@ labels: --- # レジャー -XRP Ledgerは、誰にでも開かれた共有のグローバル台帳(レジャー)です。個々の参加者は、単一の機関に台帳の管理を任せることなく、台帳の正当性を信頼することができます。XRP Ledgerプロトコルは、非常に特殊なルールに従ってのみ更新可能な台帳データベースを管理することで、これを実現しています。ピアツーピアネットワークのサーバは台帳データベースの完全なコピーを保持し、ネットワークは候補となるトランザクションを配信し、[コンセンサスプロセス](consensus.html)に従ってブロック単位で適用されます。 +XRP Ledgerは、誰にでも開かれた共有のグローバル台帳(レジャー)です。個々の参加者は、単一の機関に台帳の管理を任せることなく、台帳の正当性を信頼することができます。XRP Ledgerプロトコルは、非常に特殊なルールに従ってのみ更新可能な台帳データベースを管理することで、これを実現しています。ピアツーピアネットワークのサーバは台帳データベースの完全なコピーを保持し、ネットワークは候補となるトランザクションを配信し、[コンセンサスプロセス](../consensus-protocol/index.md)に従ってブロック単位で適用されます。 -{{ include_svg("img/ledger-changes.svg", "図: 各レジャーは、その前のレジャーバージョンにトランザクションを適用して生成されます")}} +[{% inline-svg file="/img/ledger-changes.svg" /%}](/img/ledger-changes.svg "図: 各レジャーは、その前のレジャーバージョンにトランザクションを適用して生成されます") 共有グローバル台帳は、レジャーバージョンまたは単に _レジャー_ と呼ばれる一連のブロックから構成されます。すべてのレジャーバージョンには、台帳の正しい順序を識別する[レジャーインデックス][]があります。永続的にクローズされる各台帳には、固有の識別ハッシュ値も存在します。 @@ -18,21 +18,17 @@ XRP Ledgerは、誰にでも開かれた共有のグローバル台帳(レジャ 1つのレジャーバージョンはいくつかの要素から構成されています。 -{{ include_svg("img/anatomy-of-a-ledger-simplified.svg", "レジャーにはトランザクション、状態ツリー、閉鎖時刻、検証情報を含むヘッダーが含まれています。")}} +[{% inline-svg file="/img/anatomy-of-a-ledger-simplified.svg" /%}](/img/anatomy-of-a-ledger-simplified.svg "レジャーにはトランザクション、状態ツリー、閉鎖時刻、検証情報を含むヘッダーが含まれています。") * **ヘッダー** - [レジャーインデックス][]、レジャーのその他のコンテンツのハッシュ、その他のメタデータ。 -* **トランザクションツリー** - このレジャーの作成時に、直前のレジャーに適用された[トランザクション](transaction-formats.html)。トランザクションは、レジャーの変更を可能にする _唯一の_ 手段です。 -* **状態ツリー** - このレジャーの設定、残高などを含むすべての[レジャーエントリ](ledger-object-types.html)。 +* **トランザクションツリー** - このレジャーの作成時に、直前のレジャーに適用された[トランザクション](../../references/protocol/transactions/index.md)。トランザクションは、レジャーの変更を可能にする _唯一の_ 手段です。 +* **状態ツリー** - このレジャーの設定、残高などを含むすべての[レジャーエントリ](../../references/protocol/ledger-data/ledger-entry-types/index.md)。 ## 関連項目 -- レジャーヘッダー、レジャーオブジェクトID、レジャーオブジェクトタイプの詳細については、[レジャーのデータ型](ledger-data-formats.html)をご覧ください。 -- レジャーの状態の変更履歴を追跡する方法については、[レジャーの履歴](ledger-history.html)をご覧ください。 +- レジャーヘッダー、レジャーオブジェクトID、レジャーオブジェクトタイプの詳細については、[レジャーのデータ型](../../references/protocol/ledger-data/index.md)をご覧ください。 +- レジャーの状態の変更履歴を追跡する方法については、[レジャーの履歴](../networks-and-servers/ledger-history.md)をご覧ください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/ledgers/ledger-close-times.md b/content/@i18n/ja/concepts/ledgers/ledger-close-times.md index 5aa4a6392b..b6719aaec3 100644 --- a/content/@i18n/ja/concepts/ledgers/ledger-close-times.md +++ b/content/@i18n/ja/concepts/ledgers/ledger-close-times.md @@ -7,11 +7,11 @@ labels: --- # レジャーの閉鎖時刻 -レジャーバージョンの閉鎖時刻は、[レジャーヘッダー](ledger-header.html)の`close_time`フィールドに記録されます。ネットワークの正確な閉鎖時刻についてコンセンサスを得やすくするため、この値は閉鎖時刻の精度に基づく秒数に丸められます(現在は10秒)。丸めによってレジャーの閉鎖時刻が親レジャーの閉鎖時刻と同じになる(または早くなる)場合、子レジャーの閉鎖時刻は親レジャーの閉鎖時刻に1を足した時刻に設定されます。これにより、有効なレジャーの閉鎖時刻が確実に増加することが保証されます。 +レジャーバージョンの閉鎖時刻は、[レジャーヘッダー](../../references/protocol/ledger-data/ledger-header.md)の`close_time`フィールドに記録されます。ネットワークの正確な閉鎖時刻についてコンセンサスを得やすくするため、この値は閉鎖時刻の精度に基づく秒数に丸められます(現在は10秒)。丸めによってレジャーの閉鎖時刻が親レジャーの閉鎖時刻と同じになる(または早くなる)場合、子レジャーの閉鎖時刻は親レジャーの閉鎖時刻に1を足した時刻に設定されます。これにより、有効なレジャーの閉鎖時刻が確実に増加することが保証されます。 通常、新しいレジャーバージョンは約3~5秒ごとに閉鎖するため、これらのルールの結果、レジャーの閉鎖時刻は、:00、:01、:02、:10、:11、:20、:21、...で終わるような、あいまいなパターンになります。2で終わることはあまりなく、3で終わることは非常にまれですが、どちらも、より多くのレジャーが10秒の時間内にランダムに閉鎖した場合にランダムに発生します。 -一般的に、レジャーは閉鎖時刻よりも正確な時刻計測を行うことはできません。例えば、あるオブジェクトが有効期限を過ぎているかどうかを確認するには、親レジャーの閉鎖時刻と比較するルールになっています。(レジャーの閉鎖時刻は、そのレジャーに登録されるトランザクションの実行時点では確定していません)。これは、例えば[Escrow](escrow.html)が、Escrowオブジェクトで指定された時間ベースの有効期限より最大で約10秒遅い実世界の時刻に終了する可能性があることを意味します。 +一般的に、レジャーは閉鎖時刻よりも正確な時刻計測を行うことはできません。例えば、あるオブジェクトが有効期限を過ぎているかどうかを確認するには、親レジャーの閉鎖時刻と比較するルールになっています。(レジャーの閉鎖時刻は、そのレジャーに登録されるトランザクションの実行時点では確定していません)。これは、例えば[Escrow](../payment-types/escrow.md)が、Escrowオブジェクトで指定された時間ベースの有効期限より最大で約10秒遅い実世界の時刻に終了する可能性があることを意味します。 ### 例 diff --git a/content/@i18n/ja/concepts/ledgers/ledger-structure.md b/content/@i18n/ja/concepts/ledgers/ledger-structure.md index 6c03edb21e..fc286407fb 100644 --- a/content/@i18n/ja/concepts/ledgers/ledger-structure.md +++ b/content/@i18n/ja/concepts/ledgers/ledger-structure.md @@ -11,12 +11,12 @@ XRP Ledgerはブロックチェーンであり、データブロックの履歴 各レジャーバージョンには、 _状態データ_ 、 _トランザクションセット_ 、メタデータを含む _ヘッダー_ が含まれます。 -{{ include_svg("img/ledger.svg", "図: レジャーはヘッダー、トランザクションセット、状態データから構成されます。") }} +[{% inline-svg file="/img/ledger.svg" /%}](/img/ledger.svg "図: レジャーはヘッダー、トランザクションセット、状態データから構成されます。") ## 状態データ -{{ include_svg("img/ledger-state-data.svg", "図: レジャーの状態データは、さまざまなオブジェクトで構成され、グラフのようにリンクされていることもあります。") }} +[{% inline-svg file="/img/ledger-state-data.svg" /%}](/img/ledger-state-data.svg "図: レジャーの状態データは、さまざまなオブジェクトで構成され、グラフのようにリンクされていることもあります。") _状態データ_ とは、そのレジャーバージョンにおけるすべてのアカウント、残高、設定、その他の情報のスナップショットを表します。サーバがネットワークに接続すると、最初に行うことの1つは、新しいトランザクションを処理し、現在の状態に関するクエリに答えることができるように、現在の状態データの完全なセットをダウンロードすることです。ネットワーク内のすべてのサーバが状態データの完全なコピーを持っているため、すべてのデータは公開され、どのコピーも同じように有効です。 @@ -24,7 +24,7 @@ _状態データ_ とは、そのレジャーバージョンにおけるすべ ## トランザクションセット -{{ include_svg("img/ledger-transaction-set.svg", "図: レジャーのトランザクションセット、正規の順序で並べられたトランザクションのグループ") }} +[{% inline-svg file="/img/ledger-transaction-set.svg" /%}](/img/ledger-transaction-set.svg "図: レジャーのトランザクションセット、正規の順序で並べられたトランザクションのグループ") レジャーに加えられたすべての変更は、トランザクションの結果です。各レジャーバージョンには、特定の順序で新たに適用されたトランザクションのグループである _トランザクションセット_ が含まれています。あるレジャーのトランザクションセットを前のレジャーバージョンの状態データに適用すると、結果としてそのレジャーの状態データが得られます。 @@ -40,24 +40,24 @@ _レジャーヘッダー_ は、レジャーバージョンの概略を示す -- {{include_svg("img/ledger-index-icon.svg", "", classes="floating-diagram")}} チェーン内でのレジャーの位置を示す _レジャーインデックス_ 。レジャーは、1つ小さいインデックスを持つレジャーの上に構築され、 _ジェネシスレジャー_ として知られるスタート地点に戻ります。これは、すべてのトランザクションと結果の公開履歴を形成します。 -- {{include_svg("img/ledger-hash-icon.svg", "", classes="floating-diagram")}} レジャーの内容を一意に識別する _レジャーハッシュ_ 。ハッシュは、レジャーバージョンの内容が変更された場合、ハッシュが完全に異なるものになるように計算されます。これは、レジャーのデータが消失、変更、破損していないことを示すチェックサムのようなものでもあります。 -- {{include_svg("img/ledger-parent-icon.svg", "", classes="floating-diagram")}} 親レジャーのハッシュ。レジャーバージョンは、その前の _親レジャー_ との違いによって定義されることが多く、ヘッダーには親レジャーの一意なハッシュも含まれます。 -- {{include_svg("img/ledger-timestamp-icon.svg", "", classes="floating-diagram")}} このレジャーの内容が確定した正式なタイムスタンプとなる _閉鎖時刻_ 。この数値は秒数(一の位)が四捨五入され、通常は10です。 -- {{include_svg("img/ledger-state-data-hash-icon.svg", "", classes="floating-diagram")}} このレジャーの状態データのチェックサムとして機能する _状態データのハッシュ_ 。 -- {{include_svg("img/ledger-tx-set-hash-icon.svg", "", classes="floating-diagram")}} このレジャーのトランザクションセットのデータのチェックサムとして機能する _トランザクションセットのハッシュ_。 -- {{include_svg("img/ledger-notes-icon.svg", "", classes="floating-diagram")}} その他、存在するXRPの総量や、閉鎖時刻が四捨五入された値など、いくつかのメモがあります。 +- [{% inline-svg file="/img/ledger-index-icon.svg" /%}](/img/ledger-index-icon.svg "") チェーン内でのレジャーの位置を示す _レジャーインデックス_ 。レジャーは、1つ小さいインデックスを持つレジャーの上に構築され、 _ジェネシスレジャー_ として知られるスタート地点に戻ります。これは、すべてのトランザクションと結果の公開履歴を形成します。 +- [{% inline-svg file="/img/ledger-hash-icon.svg" /%}](/img/ledger-hash-icon.svg "") レジャーの内容を一意に識別する _レジャーハッシュ_ 。ハッシュは、レジャーバージョンの内容が変更された場合、ハッシュが完全に異なるものになるように計算されます。これは、レジャーのデータが消失、変更、破損していないことを示すチェックサムのようなものでもあります。 +- [{% inline-svg file="/img/ledger-parent-icon.svg" /%}](/img/ledger-parent-icon.svg "") 親レジャーのハッシュ。レジャーバージョンは、その前の _親レジャー_ との違いによって定義されることが多く、ヘッダーには親レジャーの一意なハッシュも含まれます。 +- [{% inline-svg file="/img/ledger-timestamp-icon.svg" /%}](/img/ledger-timestamp-icon.svg "") このレジャーの内容が確定した正式なタイムスタンプとなる _閉鎖時刻_ 。この数値は秒数(一の位)が四捨五入され、通常は10です。 +- [{% inline-svg file="/img/ledger-state-data-hash-icon.svg" /%}](/img/ledger-state-data-hash-icon.svg "") このレジャーの状態データのチェックサムとして機能する _状態データのハッシュ_ 。 +- [{% inline-svg file="/img/ledger-tx-set-hash-icon.svg" /%}](/img/ledger-tx-set-hash-icon.svg "") このレジャーのトランザクションセットのデータのチェックサムとして機能する _トランザクションセットのハッシュ_。 +- [{% inline-svg file="/img/ledger-notes-icon.svg" /%}](/img/ledger-notes-icon.svg "") その他、存在するXRPの総量や、閉鎖時刻が四捨五入された値など、いくつかのメモがあります。 -レジャーのトランザクションセットと状態データのサイズは無制限ですが、レジャーヘッダーは常に固定サイズです。レジャーヘッダーの正確なデータとバイナリ形式については、[レジャーヘッダー](ledger-header.html)を参照してください。 +レジャーのトランザクションセットと状態データのサイズは無制限ですが、レジャーヘッダーは常に固定サイズです。レジャーヘッダーの正確なデータとバイナリ形式については、[レジャーヘッダー](../../references/protocol/ledger-data/ledger-header.md)を参照してください。 ## バリデーションの状況 -{{ include_svg("img/ledger-validated-mark.svg", "Diagram: レジャーのバリデーション(検証)状況。レジャーの上に追加され、レジャー自体の一部ではありません。") }} +[{% inline-svg file="/img/ledger-validated-mark.svg" /%}](/img/ledger-validated-mark.svg "Diagram: レジャーのバリデーション(検証)状況。レジャーの上に追加され、レジャー自体の一部ではありません。") サーバの Unique Node List のバリデータのコンセンサスがレジャーバージョンの内容に合意すると、そのレジャーバージョンは検証済みであり、変更不可であるとみなされます。レジャーの内容は、後続のトランザクションが新しいレジャーバージョンを作成し、チェーンを更新することによってのみ変更できます。 -レジャーバージョンが新しく作成された時点では、まだ未検証です。候補となるトランザクションが異なるサーバに到着するタイミングが異なるため、ネットワークはチェーンの次のステップとなる複数の異なるレジャーバージョンを構築し、提案する可能性があります。[コンセンサスプロトコル](consensus.html)は、そのうちのどれを有効化するかを決定します。(検証済みのレジャーバージョンに存在しなかったトランザクション候補は、通常、次のレジャーバージョンのトランザクションセットに含まれます)。 +レジャーバージョンが新しく作成された時点では、まだ未検証です。候補となるトランザクションが異なるサーバに到着するタイミングが異なるため、ネットワークはチェーンの次のステップとなる複数の異なるレジャーバージョンを構築し、提案する可能性があります。[コンセンサスプロトコル](../consensus-protocol/index.md)は、そのうちのどれを有効化するかを決定します。(検証済みのレジャーバージョンに存在しなかったトランザクション候補は、通常、次のレジャーバージョンのトランザクションセットに含まれます)。 ## レジャーインデックスとレジャーハッシュ diff --git a/content/@i18n/ja/concepts/ledgers/open-closed-validated-ledgers.md b/content/@i18n/ja/concepts/ledgers/open-closed-validated-ledgers.md index ed45564cf6..1d49054287 100644 --- a/content/@i18n/ja/concepts/ledgers/open-closed-validated-ledgers.md +++ b/content/@i18n/ja/concepts/ledgers/open-closed-validated-ledgers.md @@ -16,8 +16,8 @@ labels: | **内容は変更可能?** | はい | いいえ、ただし、別のレジャーが採用される可能性あり。 | いいえ | | **トランザクションの適用方法:** | 受信順 | 正規順序 | 正規順序 | -直感に反し、XRP Ledgerはオープンレジャーを「閉鎖」して閉鎖済みレジャーへと変換することはありません。その代わりに、サーバはオープンレジャーを捨て、以前の閉鎖済みレジャーの上にトランザクションを適用して閉鎖済みレジャーを作成し、最新の閉鎖済みレジャーをベースとして新しいオープンレジャーを作成します。これは、[コンセンサスが二重支出問題を解決する方法](consensus-principles-and-rules.html#simplifying-the-problem)の結果と言えます。 +直感に反し、XRP Ledgerはオープンレジャーを「閉鎖」して閉鎖済みレジャーへと変換することはありません。その代わりに、サーバはオープンレジャーを捨て、以前の閉鎖済みレジャーの上にトランザクションを適用して閉鎖済みレジャーを作成し、最新の閉鎖済みレジャーをベースとして新しいオープンレジャーを作成します。これは、[コンセンサスが二重支出問題を解決する方法](../consensus-protocol/consensus-principles-and-rules.md#simplifying-the-problem)の結果と言えます。 -オープンレジャーでは、サーバはトランザクションを受信した順番にトランザクションを適用しますが、サーバによってトランザクションが異なる順番で表示されることがあります。実際にどのトランザクションが先だったかを決定するための中心的なタイムキーパーが存在しないため、同じ時刻に送信されたトランザクションの正確な順序について、サーバ間で見解が一致しない可能性があります。したがって、[検証](consensus-structure.html#validation)の対象となる閉鎖済みのレジャーバージョンを計算するプロセスは、提案されたトランザクションを受信順に並べてオープンレジャーを構築するプロセスとは異なります。「閉鎖済み」レジャーを作成するために、各XRP Ledgerサーバは、トランザクションのセットと、以前、つまり「親」レジャーを使用します。サーバはトランザクションを正規順序に並べ、その順序で前のレジャーに適用します。正規順序は、[分散型取引所](decentralized-exchange.html)におけるオファーのフロントランニングの難易度を高めるために、決定論的で効率的であるが、悪用されにくいように設計されています。 +オープンレジャーでは、サーバはトランザクションを受信した順番にトランザクションを適用しますが、サーバによってトランザクションが異なる順番で表示されることがあります。実際にどのトランザクションが先だったかを決定するための中心的なタイムキーパーが存在しないため、同じ時刻に送信されたトランザクションの正確な順序について、サーバ間で見解が一致しない可能性があります。したがって、[検証](../consensus-protocol/consensus-structure.md#validation)の対象となる閉鎖済みのレジャーバージョンを計算するプロセスは、提案されたトランザクションを受信順に並べてオープンレジャーを構築するプロセスとは異なります。「閉鎖済み」レジャーを作成するために、各XRP Ledgerサーバは、トランザクションのセットと、以前、つまり「親」レジャーを使用します。サーバはトランザクションを正規順序に並べ、その順序で前のレジャーに適用します。正規順序は、[分散型取引所](../tokens/decentralized-exchange/index.md)におけるオファーのフロントランニングの難易度を高めるために、決定論的で効率的であるが、悪用されにくいように設計されています。 -このように、オープンレジャーは一時的な作業領域としてしか使用されないため、トランザクションの[暫定的な結果と最終的な結果が異なる可能性がある](finality-of-results.html)という大きな特徴があります。 +このように、オープンレジャーは一時的な作業領域としてしか使用されないため、トランザクションの[暫定的な結果と最終的な結果が異なる可能性がある](../transactions/finality-of-results/index.md)という大きな特徴があります。 diff --git a/content/@i18n/ja/concepts/networks-and-servers/amendments.md b/content/@i18n/ja/concepts/networks-and-servers/amendments.md index c89e7b47e4..ec84a0f183 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/amendments.md +++ b/content/@i18n/ja/concepts/networks-and-servers/amendments.md @@ -19,7 +19,7 @@ Amendmentシステムは、XRP Ledger上のトランザクション処理に影 ## Amendmentプロセス -[XRP Ledgerのコードに貢献する](contribute-code-flow.html)のトピックでは、XRP Ledgerのアイデアから有効化までのワークフローを説明しています。 +[XRP Ledgerのコードに貢献する](../../resources/contribute-code/contribute-code.md)のトピックでは、XRP Ledgerのアイデアから有効化までのワークフローを説明しています。 Amendmentのコードがソフトウェアリリースに組み込まれた後、それを有効にするプロセスはXRP Ledgerネットワーク内で行われ、レジャーは _フラグ_ レジャーごとに(通常約15分間隔で)Amendment状況をチェックします。 @@ -39,9 +39,9 @@ Amendmentのコードがソフトウェアリリースに組み込まれた後 ## Amendment投票 -`rippled`の各バージョンは、[既知のAmendment](known-amendments.html)のリストとそれらのAmendmentを実装するためのコードでコンパイルされています。`rippled`バリデータのオペレータは、各Amendmentに投票するようにサーバを設定し、いつでも変更することができます。オペレータが投票を選択しない場合、サーバはソースコードで定義されたデフォルトの投票を使用します。 +`rippled`の各バージョンは、[既知のAmendment](../../resources/known-amendments.md)のリストとそれらのAmendmentを実装するためのコードでコンパイルされています。`rippled`バリデータのオペレータは、各Amendmentに投票するようにサーバを設定し、いつでも変更することができます。オペレータが投票を選択しない場合、サーバはソースコードで定義されたデフォルトの投票を使用します。 -**注記:** デフォルトの投票はソフトウェアのリリースごとに変更される可能性があります。[更新: rippled 1.8.1][] +**注記:** デフォルトの投票はソフトウェアのリリースごとに変更される可能性があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}更新: rippled 1.8.1{% /badge %} Amendmentが有効になるには、信頼できるバリデータの80%超から2週間の支持を得なければなりません。支持率が80%以下となると、そのAmendmentは一時的に却下され、再び2週間の支持が必要となります。Amendmentは、恒久的に有効になるまで、何度でも過半数を獲得したり失ったりすることができます。 @@ -78,16 +78,12 @@ Amendmentを有効にすると、修正前の動作のソースコードは`ripp ## 関連項目 - **コンセプト:** - - [コンセンサスについて](intro-to-consensus.html) + - [コンセンサスについて](../consensus-protocol/index.md) - **チュートリアル:** - - [バリデータとしてrippledを実行](run-rippled-as-a-validator.html) - - [Amendment投票機能の設定](configure-amendment-voting.html) - - [XRP Ledgerのコードへの貢献](contribute-code-flow.html) + - [バリデータとしてrippledを実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Amendment投票機能の設定](../../infrastructure/configuration/configure-amendment-voting.md) + - [XRP Ledgerのコードへの貢献](../../resources/contribute-code/contribute-code.md) - **リファレンス:** - - [既知のAmendment](known-amendments.html) + - [既知のAmendment](../../resources/known-amendments.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/networks-and-servers/clustering.md b/content/@i18n/ja/concepts/networks-and-servers/clustering.md index d9c94558d4..be67f47c27 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/clustering.md +++ b/content/@i18n/ja/concepts/networks-and-servers/clustering.md @@ -13,11 +13,8 @@ labels: - クラスター化サーバーは、ネットワークで不適切な活動をしているかまたはネットワークを不正使用しているピアとAPIクライアントに関する情報を共有します。このため、クラスター内のすべてのサーバーを同時に攻撃することが難しくなります。 - クラスター化サーバーは、一部のサーバーでの現行の負荷ベースのトランザクション手数料にトランザクションが対応していない場合を含め、常にクラスター全体にトランザクションを伝搬します。 -バリデータを[プライベートピア](peer-protocol.html#プライベートピア)として実行している場合は、`rippled`サーバーのクラスターをプロキシサーバーとして使用することが推奨されます。 +バリデータを[プライベートピア](peer-protocol.md#プライベートピア)として実行している場合は、`rippled`サーバーのクラスターをプロキシサーバーとして使用することが推奨されます。 -クラスターでのサーバーの設定方法に関するチュートリアルについては、[`rippled`サーバーのクラスター化](cluster-rippled-servers.html)を参照してください。 +クラスターでのサーバーの設定方法に関するチュートリアルについては、[`rippled`サーバーのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md)を参照してください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/networks-and-servers/index.md b/content/@i18n/ja/concepts/networks-and-servers/index.md index 536a827b30..0aa63b297d 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/index.md +++ b/content/@i18n/ja/concepts/networks-and-servers/index.md @@ -2,14 +2,15 @@ html: networks-and-servers.html parent: concepts.html blurb: rippledは、XRP Ledgerを管理するコアとなるピアツーピアサーバーです。 -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # ネットワークとサーバ XRP Ledgerを動かすサーバーソフトウェアは、主に2種類あります。 - コアサーバーである`rippled`は、トランザクションを処理し、その結果についてコンセンサスを得るピアツーピアネットワークを実行します。 -- APIサーバーである[Clio](the-clio-server.html)は、台帳からデータをフェッチしたりクエリしたりするための強力なインターフェイスを提供します。 +- APIサーバーである[Clio](the-clio-server.md)は、台帳からデータをフェッチしたりクエリしたりするための強力なインターフェイスを提供します。 誰でも必要に応じて、これらのタイプのサーバーの1つまたは両方のインスタンスを実行することができます。 @@ -25,7 +26,7 @@ XRP Ledgerを動かすサーバーソフトウェアは、主に2種類ありま * 選択的に支払いパスや通貨交換のオファーを表示または非表示にすることができ、最良の取引を提供せず、彼ら自身の利益を確保する可能性があります。 * もし、アドレスの秘密鍵を送信してしまった場合、サーバーの管理者はあなたに代わって任意のトランザクションを実行し、アドレスが保有するすべての資金を転送または破棄する可能性があります。 -さらに、独自のサーバーを運営することで、[管理者アクセス権限](get-started-using-http-websocket-apis.html#管理者アクセス権限)が与えられ、重要な管理者専用コマンドや負荷の高いコマンドを実行することができます。共有サーバーを使用する場合、同じサーバーの他のユーザーとサーバーの計算能力を共有することを考慮しなければいけません。WebSocket APIのコマンドの多くはサーバーに大きな負担をかけるので、サーバーには必要なときにレスポンスを縮小するオプションがあります。サーバーを他人と共有する場合、常に最良の結果を得られるとは限りません。 +さらに、独自のサーバーを運営することで、[管理者アクセス権限](../../tutorials/get-started/get-started-using-http-websocket-apis.md#管理者アクセス権限)が与えられ、重要な管理者専用コマンドや負荷の高いコマンドを実行することができます。共有サーバーを使用する場合、同じサーバーの他のユーザーとサーバーの計算能力を共有することを考慮しなければいけません。WebSocket APIのコマンドの多くはサーバーに大きな負担をかけるので、サーバーには必要なときにレスポンスを縮小するオプションがあります。サーバーを他人と共有する場合、常に最良の結果を得られるとは限りません。 最後に、バリデーションサーバーを運用する場合、パブリックネットワークへのプロキシとしてストックサーバーを使用し、バリデーションサーバーをプライベートネットワークに置いて、ストックサーバーを通してのみ外部にアクセスできるようにすることができます。これにより、バリデーションサーバに侵入することがより困難になります。 @@ -33,7 +34,7 @@ XRP Ledgerを動かすサーバーソフトウェアは、主に2種類ありま - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} + + +{% child-pages /%} diff --git a/content/@i18n/ja/concepts/networks-and-servers/ledger-history.md b/content/@i18n/ja/concepts/networks-and-servers/ledger-history.md index 2aae1981fa..1a415f154a 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/ledger-history.md +++ b/content/@i18n/ja/concepts/networks-and-servers/ledger-history.md @@ -9,9 +9,9 @@ labels: --- # レジャー履歴 -[コンセンサスプロセス](consensus.html)により、[検証済みレジャーバージョン](ledgers.html)のチェーンが作成されます。各バージョンは、以前のバージョンに[トランザクション](transactions.html)のセットを適用して生成されます。各[`rippled`サーバー](xrpl-servers.html)には、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバーに保管されるトランザクション履歴の量は、サーバーがオンラインであった期間と、サーバーが取得し、保持する履歴量の設定に応じて異なります。 +[コンセンサスプロセス](../consensus-protocol/index.md)により、[検証済みレジャーバージョン](../ledgers/index.md)のチェーンが作成されます。各バージョンは、以前のバージョンに[トランザクション](../transactions/index.md)のセットを適用して生成されます。各[`rippled`サーバー](index.md)には、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバーに保管されるトランザクション履歴の量は、サーバーがオンラインであった期間と、サーバーが取得し、保持する履歴量の設定に応じて異なります。 -ピアツーピアのXRP Ledgerネットワーク内のサーバーは、コンセンサスプロセスの一環としてトランザクションやその他のデータを相互に共有します。各サーバーは個別に新しいレジャーバージョンを作成し、その結果を信頼できるバリデータと比較して、整合性を維持します。(信頼できるバリデータのコンセンサスがサーバーの結果と一致しない場合は、サーバーがピアから必要なデータを取得して整合性を維持します。)サーバーはピアから古いデータをダウンロードして、利用可能な履歴のギャップを埋めることができます。レジャーはデータの暗号[ハッシュ](basic-data-types.html#ハッシュ)を使用した構造となっているため、すべてのサーバーがデータの整合性の検証を行えます。 +ピアツーピアのXRP Ledgerネットワーク内のサーバーは、コンセンサスプロセスの一環としてトランザクションやその他のデータを相互に共有します。各サーバーは個別に新しいレジャーバージョンを作成し、その結果を信頼できるバリデータと比較して、整合性を維持します。(信頼できるバリデータのコンセンサスがサーバーの結果と一致しない場合は、サーバーがピアから必要なデータを取得して整合性を維持します。)サーバーはピアから古いデータをダウンロードして、利用可能な履歴のギャップを埋めることができます。レジャーはデータの暗号[ハッシュ](../../references/protocol/data-types/basic-data-types.md#ハッシュ)を使用した構造となっているため、すべてのサーバーがデータの整合性の検証を行えます。 ## データベース @@ -29,18 +29,18 @@ labels: `rippled`サーバーは起動されると、最優先で最新の検証済みレジャーの完全なコピーを取得します。その後、サーバーは常にレジャーの進行状況を把握します。レジャー履歴を埋め戻すように設定されているサーバーでは、レジャー履歴が設定量に達するまで埋め戻されます。この設定量は、オンライン削除による削除が開始されるカットオフ値以下でなければなりません。 -履歴の埋め戻しは、サーバーの最も低い優先順位の1つであるため、特にサーバーが忙しい場合や、ハードウェアやネットワークのスペックが十分でない場合、不足する履歴を埋めるのに長い時間がかかることがあります。ハードウェアのスペックに関する推奨事項は、[容量計画](capacity-planning.html)を参照してください。また、履歴を埋め戻すには、サーバーのダイレクトピアのうち少なくとも1つが該当する履歴を持っていることが必要です。サーバーのピアツーピア接続の管理については、[ピアリングの設定](configure-peering.html)を参照してください。 +履歴の埋め戻しは、サーバーの最も低い優先順位の1つであるため、特にサーバーが忙しい場合や、ハードウェアやネットワークのスペックが十分でない場合、不足する履歴を埋めるのに長い時間がかかることがあります。ハードウェアのスペックに関する推奨事項は、[容量計画](../../infrastructure/installation/capacity-planning.md)を参照してください。また、履歴を埋め戻すには、サーバーのダイレクトピアのうち少なくとも1つが該当する履歴を持っていることが必要です。サーバーのピアツーピア接続の管理については、[ピアリングの設定](../../infrastructure/configuration/peering/index.md)を参照してください。 -XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要が[LedgerHashesオブジェクトタイプ](ledgerhashes.html)の形式で含まれています。サーバーはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。 +XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要が[LedgerHashesオブジェクトタイプ](../../references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md)の形式で含まれています。サーバーはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。 ### 履歴の埋め戻し -[新規: rippled 1.6.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} -サーバーがダウンロードしようとする履歴の量は、その設定に依存します。サーバーは自動的に、**最も古い台帳までの履歴**をダウンロードしてギャップを埋めようとします。`[ledger_history]`設定を使用すると、サーバーがそれ以降の履歴を埋め戻すようにすることができます。ただし、[削除](online-deletion.html)が予定されている台帳は、サーバーがダウンロードすることはありません。 +サーバーがダウンロードしようとする履歴の量は、その設定に依存します。サーバーは自動的に、**最も古い台帳までの履歴**をダウンロードしてギャップを埋めようとします。`[ledger_history]`設定を使用すると、サーバーがそれ以降の履歴を埋め戻すようにすることができます。ただし、[削除](../../infrastructure/configuration/data-retention/online-deletion.md)が予定されている台帳は、サーバーがダウンロードすることはありません。 -`[ledger_history]`設定は、現在有効な台帳の前から蓄積する台帳の最小数を定義します。ネットワークの[完全な履歴](#すべての履歴)をダウンロードするには、特別な値`full`を使用します。`[ledger_history]`設定を使用して、サーバーに _より少ない_ 履歴をダウンロードさせることはできません。サーバーが保存する履歴の量を減らすには、代わりに[オンライン削除](online-deletion.html)設定を変更してください。 +`[ledger_history]`設定は、現在有効な台帳の前から蓄積する台帳の最小数を定義します。ネットワークの[完全な履歴](#すべての履歴)をダウンロードするには、特別な値`full`を使用します。`[ledger_history]`設定を使用して、サーバーに _より少ない_ 履歴をダウンロードさせることはできません。サーバーが保存する履歴の量を減らすには、代わりに[オンライン削除](../../infrastructure/configuration/data-retention/online-deletion.md)設定を変更してください。 ## すべての履歴 @@ -51,27 +51,27 @@ XRP Ledger財団は、コミュニティメンバーが運営する一連の全 **ヒント:** 一部の暗号資産ネットワークとは異なり、XRP Ledgerのサーバーは、現在の状態を認識して最新のトランザクションを把握するのにすべての履歴を必要としません。 -すべての履歴の設定については、[完全な履歴の設定](configure-full-history.html)を参照してください。 +すべての履歴の設定については、[完全な履歴の設定](../../infrastructure/configuration/data-retention/configure-full-history.md)を参照してください。 ## 履歴シャーディング -XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わりに、複数のサーバーがレジャー履歴の一部分を保管するように構成できます。これは[履歴シャーディング](history-sharding.html)機能によって実現します。一定範囲のレジャー履歴が _シャードストアー_ という個別の保管領域に保管されます。ピアサーバーから(上記の[履歴の取得](#履歴の取得)で説明したとおり)特定のデータがリクエストされると、サーバーはレジャーストアーまたはシャードストアーのデータを使用してレスポンスできます。 +XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わりに、複数のサーバーがレジャー履歴の一部分を保管するように構成できます。これは[履歴シャーディング](../../infrastructure/configuration/data-retention/history-sharding.md)機能によって実現します。一定範囲のレジャー履歴が _シャードストアー_ という個別の保管領域に保管されます。ピアサーバーから(上記の[履歴の取得](#履歴の取得)で説明したとおり)特定のデータがリクエストされると、サーバーはレジャーストアーまたはシャードストアーのデータを使用してレスポンスできます。 オンライン削除ではシャードストアーのデータは削除**されません**。ただし、32768個以上のレジャーバージョンをサーバーのレジャーストアーに保持するようにオンライン削除が設定されていれば、レジャーストアーからデータが自動的に削除される前に、サーバーはレジャーストアーからシャードストアーにすべてのシャードをコピーできます。 -詳細は、[履歴シャーディングの設定](configure-history-sharding.html)を参照してください。 +詳細は、[履歴シャーディングの設定](../../infrastructure/configuration/data-retention/configure-history-sharding.md)を参照してください。 ## 関連項目 - **コンセプト:** - - [レジャー](ledgers.html) - - [コンセンサス](consensus.html) + - [レジャー](../ledgers/index.md) + - [コンセンサス](../consensus-protocol/index.md) - **チュートリアル:** - - [`rippled`の設定](configure-rippled.html) - - [オンライン削除の設定](configure-online-deletion.html) - - [指示による削除の設定](configure-advisory-deletion.html) - - [履歴シャーディングの設定](configure-history-sharding.html) - - [全履歴の設定](configure-full-history.html) + - [`rippled`の設定](../../infrastructure/configuration/index.md) + - [オンライン削除の設定](../../infrastructure/configuration/data-retention/configure-online-deletion.md) + - [指示による削除の設定](../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) + - [履歴シャーディングの設定](../../infrastructure/configuration/data-retention/configure-history-sharding.md) + - [全履歴の設定](../../infrastructure/configuration/data-retention/configure-full-history.md) - **リファレンス:** - [ledgerメソッド][] - [server_infoメソッド][] @@ -79,7 +79,4 @@ XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わ - [can_deleteメソッド][] - [ledger_cleanerメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/networks-and-servers/parallel-networks.md b/content/@i18n/ja/concepts/networks-and-servers/parallel-networks.md index 7cd6ba80fe..5fe1aa216b 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/parallel-networks.md +++ b/content/@i18n/ja/concepts/networks-and-servers/parallel-networks.md @@ -13,13 +13,13 @@ XRP Ledgerコミュニティのメンバーが、メインネットに影響を | ネットワーク | アップグレード頻度 | 説明 | |:-----------|:----------------|:---------------------------------------------| -| Mainnet | 安定版リリース | ピアツーピアサーバーのネットワーク機能を備えた分散型の暗号台帳であり、[XRP](what-is-xrp.html)の土台となる[XRP Ledger](xrp-ledger-overview.html)です。 | -| Testnet | 安定版リリース | XRP Ledger上に構築したソフトウェアのテスト環境として動作する「代替環境」のネットワークです。本番環境のXRP Ledgerユーザーに影響を及ぼすことも、本物の通貨をリスクにさらすこともありません。Testnetの[Amendmentのステータス](known-amendments.html)は、Mainnetを厳密に反映するようになっていますが、分散型システムが持つ予測不可能な性質により、タイミングにわずかな違いが生じることがあります。 | +| 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/)を使用したオンチェーン・スマートコントラクト機能のプレビューネットワークです。 | | Sidechain-Devnet | ベータ版リリース | クロスチェーンブリッジ機能をテストするためのサイドチェーンです。
ライブラリのサポート:
- [xrpl.js 2.12.0](https://www.npmjs.com/package/xrpl/v/2.12.0)
- [xrpl-py 2.4.0](https://pypi.org/project/xrpl-py/2.4.0/)
**注記**: また、[`xbridge-cli`](https://github.com/XRPLF/xbridge-cli)コマンドラインツールを使用して、ローカルマシンにクロスチェーンブリッジをセットアップすることもできます。 | -テスト用XRPは、XRP Ledgerの実験やアプリケーションの開発、統合に興味のある人々に[無償で提供](xrp-testnet-faucet.html)されています。テスト用のXRPは実際には価値を持たず、ネットワークがリセットされると失われます。 +テスト用XRPは、XRP Ledgerの実験やアプリケーションの開発、統合に興味のある人々に[無償で提供](/resources/dev-tools/xrp-faucets)されています。テスト用のXRPは実際には価値を持たず、ネットワークがリセットされると失われます。 **注意:** XRP Ledgerメインネットとは異なり、テストネットワークは通常「中央集権型」であり、これらのネットワークの安定性や可用性については保証されていません。これらのネットワークは、サーバ構成、ネットワークトポロジー、ネットワークパフォーマンスのさまざまな特性をテストする目的でこれまで使用され、またこれからも同様に使用されます。 @@ -28,28 +28,24 @@ XRP Ledgerコミュニティのメンバーが、メインネットに影響を 使用するネットワークを定義する`rippled`の設定はありません。その代わり、信頼するバリデータのコンセンサスに基づいてどのレジャーを正しいレジャーとして受け入れるかを把握します。`rippled`インスタンスからなる異なるコンセンサスグループが、同じグループの他のメンバーだけを信頼する場合、各グループは引き続き並列ネットワークとして機能します。悪意のあるコンピューターや不適切に動作するコンピューターが両方のネットワークに接続している場合でも、各ネットワークのメンバーが、定数設定を超えて別のネットワークのメンバーを信頼するように設定されていない限り、コンセンサスプロセスに混乱は生じません。 -Ripple社は、TestnetとDevnetでメインサーバーを運用しています。[独自の`rippled`サーバーをTestnetに接続](connect-your-rippled-to-the-xrp-test-net.html)することも可能です。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を定期的にリセットできます。 ## 関連項目 - **ツール:** - - [XRP Testnet Faucet](xrp-test-net-faucet.html) + - [XRP Testnet Faucet](/resources/dev-tools/xrp-faucets) - **コンセプト:** - - [コンセンサスについて](consensus.html) - - [Amendment](amendments.html) + - [コンセンサスについて](../consensus-protocol/index.md) + - [Amendment](amendments.md) - **チュートリアル:** - - [XRP Testnetへの`rippled`の接続](connect-your-rippled-to-the-xrp-test-net.html) - - [スタンドアロンモードでのrippledの使用](use-stand-alone-mode.html) + - [XRP Testnetへの`rippled`の接続](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) + - [スタンドアロンモードでのrippledの使用](../../infrastructure/testing-and-auditing/index.md) - **リファレンス:** - [Server_infoメソッド][] - [Consensus_infoメソッド][] - [Validator_list_sitesメソッド][] - [Validatorsメソッド][] - - [デーモンモードのオプション](commandline-usage.html#デーモンモードのオプション) + - [デーモンモードのオプション](../../infrastructure/commandline-usage.md#デーモンモードのオプション) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/networks-and-servers/peer-protocol.md b/content/@i18n/ja/concepts/networks-and-servers/peer-protocol.md index 791902648b..ba898293d0 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/peer-protocol.md +++ b/content/@i18n/ja/concepts/networks-and-servers/peer-protocol.md @@ -27,14 +27,14 @@ XRP Ledgerでは、「ゴシップ」プロトコルを使用して、XRP Ledger [peersメソッド][]は、サーバーが現在接続しているピアのリストを示します。 -価値の高いサーバー(重要な[バリデータ](rippled-server-modes.html#rippledサーバーのモード)など)によっては、ピア検出プロセスを通じて、サーバーを信頼性の低いピアに接続しないようにする場合があります。この場合、[プライベートピア](#プライベートピア)のみを使用するようにサーバーを構成できます。 +価値の高いサーバー(重要な[バリデータ](rippled-server-modes.md#rippledサーバーのモード)など)によっては、ピア検出プロセスを通じて、サーバーを信頼性の低いピアに接続しないようにする場合があります。この場合、[プライベートピア](#プライベートピア)のみを使用するようにサーバーを構成できます。 ## ピアプロトコルポート -XRP Ledgerに参加するため、`rippled`サーバーはピアプロトコルを使用して任意のピアに接続します。(すべてのピアは、現行サーバーで[クラスター化されている](clustering.html)場合を除き、信頼できないものとして扱われます。) +XRP Ledgerに参加するため、`rippled`サーバーはピアプロトコルを使用して任意のピアに接続します。(すべてのピアは、現行サーバーで[クラスター化されている](clustering.md)場合を除き、信頼できないものとして扱われます。) -サーバーがピアポートで接続を送信 _かつ_ 受信できることが理想的です。`rippled`サーバーに、[ファイアウォール経由でピアプロトコルに使用するポートを転送する](forward-ports-for-peering.html)必要があります。 +サーバーがピアポートで接続を送信 _かつ_ 受信できることが理想的です。`rippled`サーバーに、[ファイアウォール経由でピアプロトコルに使用するポートを転送する](../../infrastructure/configuration/peering/forward-ports-for-peering.md)必要があります。 [デフォルトの`rippled`構成ファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)は、すべてのネットワークインターフェイスにおいて、ポート51235で着信ピアプロトコル接続をリッスンします。使用するポートを変更するには、`rippled.cfg`ファイル内の該当するスタンザを編集します。 @@ -47,7 +47,7 @@ ip = 0.0.0.0 protocol = peer ``` -ピアプロトコルポートは[特殊なPeer Crawler APIメソッド](peer-crawler.html)も処理します。 +ピアプロトコルポートは[特殊なPeer Crawler APIメソッド](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)も処理します。 ## ノードキーペア @@ -55,20 +55,20 @@ protocol = peer ノードキーペアはデータベースに保存され、サーバーの再起動時に再利用されます。サーバーのデータベースを削除すると、新しいノードキーペアが作成され、異なるアイデンティティでオンラインになります。データベースが削除されても同じキーペアを再利用するには、`[node_seed]`スタンザを使用してサーバーを設定できます。`[node_seed]`スタンザでの使用に適した値を生成するには、[validation_createメソッド][]を使用します。 -また、ノードキーペアは、[ピアスロットの](#固定ピアとピアリザベーション)[クラスタリング](clustering.html)または[確保](#固定ピアとピアリザベーション)のために他のサーバーも識別します。サーバークラスターを使用している場合、一意の`[node_seed]`設定を使用してクラスター内の各サーバーを構成する必要があります。クラスターの設定についての詳細は、[`rippled`サーバーのクラスター化](cluster-rippled-servers.html)を参照してください。 +また、ノードキーペアは、[ピアスロットの](#固定ピアとピアリザベーション)[クラスタリング](clustering.md)または[確保](#固定ピアとピアリザベーション)のために他のサーバーも識別します。サーバークラスターを使用している場合、一意の`[node_seed]`設定を使用してクラスター内の各サーバーを構成する必要があります。クラスターの設定についての詳細は、[`rippled`サーバーのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md)を参照してください。 ## 固定ピアとピアリザベーション 通常、`rippled`サーバーでは多数のピアを維持するよう試みるため、信頼性の低いピアの最大数まで自動接続されます。特定のピアサーバーへの接続を維持するように`rippled`サーバーを構成するには、いくつかの方法があります。 -- **固定ピア**を使用して、IPアドレスに基づき特定の他のピアへの接続を維持します。これは、ピアのIPアドレスが固定されている場合にのみ機能します。固定ピアを構成するには、構成スタンザ`[ips_fixed]`を使用します。これは、[クラスタリング](clustering.html)または[プライベートピア](#プライベートピア)の重要な部分です。固定ピアは構成ファイルで定義されているため、変更を適用するにはサーバーを再起動する必要があります。サーバーが同じユーザーまたは組織によって実行されている場合、固定ピアは、サーバーの接続状態を維持するのに最も有益です。 -- **ピアリザベーション**を使用して、特定のピアに優先順位を付けます。サーバーに特定のピアのピアリザベーションがある場合、既に最大数のピアに接続されていても、サーバーは常にそのピアからの接続リクエストを受け入れます。(これにより、サーバーでのピアの最大接続数を*超える*可能性があります。)[ノードキーペア](#ノードキーペア)によって確保済みピアを識別するため、可変IPアドレスを持つピアに対してもこれを行うことができます。ピアリザベーションは、管理コマンドを使用して構成され、サーバーデータベースに保存されるため、サーバーがオンラインの場合に調整することができ、再起動後も保存されます。ピアリザベーションは、さまざまなユーザーや組織が運営するサーバーを接続するのに最も有益です。[新規: rippled 1.4.0][] +- **固定ピア**を使用して、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-server-modes.html#スタンドアロンモード)で実行されている場合、サーバーは _どの_ ピアにも接続されません。 +- [スタンドアロンモード](rippled-server-modes.md#スタンドアロンモード)で実行されている場合、サーバーは _どの_ ピアにも接続されません。 ## プライベートピア @@ -81,9 +81,9 @@ protocol = peer - サーバーがピアツーピアネットワーク内の他のサーバーに接続するように明示的に設定されていない場合、サーバーは他のサーバーに発信接続しません。 - サーバーは、他のサーバーからの接続を受け入れるように明示的に設定されていない場合、他のサーバーからの着信接続を受け入れません。 -- サーバーはそのダイレクトピアに対し、信頼できない通信([ピアクローラーAPIレスポンス](peer-crawler.html)を含む)の中ではサーバーのIPアドレスを公開しないように指示します。これは、[peers adminメソッド][peersメソッド]などの信頼できる通信には影響しません。 +- サーバーはそのダイレクトピアに対し、信頼できない通信([ピアクローラーAPIレスポンス](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を含む)の中ではサーバーのIPアドレスを公開しないように指示します。これは、[peers adminメソッド][peersメソッド]などの信頼できる通信には影響しません。 - プライベートサーバーの設定に関係なく、バリデータは常にそのピアに対し、バリデータのIPアドレスを非公開にするように指示します。これにより、バリデータがサービス拒否攻撃を受け過剰な負荷がかかることから保護されます。[新規: rippled 1.2.1][] + プライベートサーバーの設定に関係なく、バリデータは常にそのピアに対し、バリデータのIPアドレスを非公開にするように指示します。これにより、バリデータがサービス拒否攻撃を受け過剰な負荷がかかることから保護されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} **注意:** サーバーのソースコードを改ざんして、サーバーがこのリクエストを無視し、直近のピアのIPアドレスを共有する可能性があります。プライベートサーバーを、このように改ざんされていないことが確認されているサーバーにのみ接続するように設定してください。 @@ -91,7 +91,7 @@ protocol = peer XRP Ledgerで使用できるように、`rippled`サーバーをピアツーピアのオープンネットワークの残りの部分に接続する必要があります。大まかに言えば、`rippled`サーバーがネットワークに接続する方法には、次の3種類の構成があります。 -- **検出されたピア**を使用します。サーバーは、検出された信頼の低いサーバーに接続し、それらのサーバーが適切に動作する限り接続を維持します。(たとえば、リクエストするデータはそれほど多くなく、ネットワーク接続は安定しているため、同じ[ネットワーク](parallel-networks.html)をフォローしているように見えます。)デフォルトでは、この構成に設定されています。 +- **検出されたピア**を使用します。サーバーは、検出された信頼の低いサーバーに接続し、それらのサーバーが適切に動作する限り接続を維持します。(たとえば、リクエストするデータはそれほど多くなく、ネットワーク接続は安定しているため、同じ[ネットワーク](parallel-networks.md)をフォローしているように見えます。)デフォルトでは、この構成に設定されています。 - 同じユーザーまたは組織が実行する**プロキシを使用したプライベートサーバー**として使用します。プロキシは、プライベートサーバーとの固定ピア接続を維持するストック用の`rippled`サーバーです(検出されたピアにも接続されます)。 - **公開ハブを使用するプライベートサーバー**として使用します。プロキシを使用する構成と似ていますが、サードパーティーによって異なります。 @@ -145,22 +145,22 @@ XRP Ledgerで使用できるように、`rippled`サーバーをピアツーピ ### プライベートサーバーの設定 -サーバーをプライベートサーバーとして設定するには、設定ファイルの`[peer_private]`を`1`に設定します。詳細な手順については、[プライベートサーバーの設定](configure-a-private-server.html)を参照してください。 +サーバーをプライベートサーバーとして設定するには、設定ファイルの`[peer_private]`を`1`に設定します。詳細な手順については、[プライベートサーバーの設定](../../infrastructure/configuration/peering/configure-a-private-server.md)を参照してください。 ## 関連項目 - **コンセプト:** - - [コンセンサス](consensus.html) - - [並列ネットワーク](parallel-networks.html) + - [コンセンサス](../consensus-protocol/index.md) + - [並列ネットワーク](parallel-networks.md) - **チュートリアル:** - - [rippledサーバーのクラスター化](cluster-rippled-servers.html) - - [プライベートサーバーの設定](configure-a-private-server.html) - - [ピアクローラーの設定](configure-the-peer-crawler.html) - - [ピアリングのポート転送](forward-ports-for-peering.html) - - [特定のピアへの手動接続](manually-connect-to-a-specific-peer.html) - - [ピアの最大数の設定](set-max-number-of-peers.html) - - [ピアリザベーション](use-a-peer-reservation.html) + - [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) + - [ピアの最大数の設定](../../infrastructure/configuration/peering/set-max-number-of-peers.md) + - [ピアリザベーション](../../infrastructure/configuration/peering/use-a-peer-reservation.md) - **リファレンス:** - [peersメソッド][] - [peer_reservations_addメソッド][] @@ -168,10 +168,6 @@ XRP Ledgerで使用できるように、`rippled`サーバーをピアツーピ - [peer_reservations_listメソッド][] - [connectメソッド][] - [fetch_infoメソッド][] - - [ピアクローラー](peer-crawler.html) + - [ピアクローラー](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/networks-and-servers/rippled-server-modes.md b/content/@i18n/ja/concepts/networks-and-servers/rippled-server-modes.md index f38a2216c0..3f153b6ec0 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/rippled-server-modes.md +++ b/content/@i18n/ja/concepts/networks-and-servers/rippled-server-modes.md @@ -9,16 +9,16 @@ labels: `rippled`サーバーソフトウェアは、その設定に応じて以下のようなさまざまなモードで実行できます。 -- [**P2Pモード**](#p2pモード) - ピアツーピアネットワークをフォローし、トランザクションを処理し、ある程度の[レジャー履歴](ledger-history.html)を維持します。このモードは、以下の役割のいずれか、またはすべてを行うように設定することができます。 +- [**P2Pモード**](#p2pモード) - ピアツーピアネットワークをフォローし、トランザクションを処理し、ある程度の[レジャー履歴](ledger-history.md)を維持します。このモードは、以下の役割のいずれか、またはすべてを行うように設定することができます。 - [**バリデータ**](#バリデータ) - コンセンサスに参加することで、ネットワークの安全確保に貢献します。 - - [**APIサーバー**](#apiサーバー) - 共有レジャーからデータを読み込んだり、トランザクションを送信したり、レジャーのアクティビティを監視するための[APIアクセス](get-started-using-http-websocket-apis.html)を提供します。オプションとして、トランザクションやレジャーの履歴を完全に記録する [**全履歴サーバー**](#全履歴サーバー) とすることができます。 + - [**APIサーバー**](#apiサーバー) - 共有レジャーからデータを読み込んだり、トランザクションを送信したり、レジャーのアクティビティを監視するための[APIアクセス](../../tutorials/get-started/get-started-using-http-websocket-apis.md)を提供します。オプションとして、トランザクションやレジャーの履歴を完全に記録する [**全履歴サーバー**](#全履歴サーバー) とすることができます。 - [**ハブサーバー**](#公開ハブ) - ピアツーピアネットワークの他の多くのメンバー間のメッセージを中継します。 -- [**レポートモード**](#レポートモード) - リレーショナルデータベースからのAPIリクエストに対応するための専用モードです。ピアツーピアネットワークには参加しないため、P2Pモードサーバーを実行し、信頼できるgRPC接続を使用してレポートモードサーバーに接続する必要があります。 [新規: rippled 1.7.0][] +- [**レポートモード**](#レポートモード) - リレーショナルデータベースからのAPIリクエストに対応するための専用モードです。ピアツーピアネットワークには参加しないため、P2Pモードサーバーを実行し、信頼できるgRPC接続を使用してレポートモードサーバーに接続する必要があります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %} - [**スタンドアロンモード**](#スタンドアロンモード) - テスト用のオフラインモードです。ピアツーピアネットワークに接続せず、コンセンサスも使用しません。 -また、[`rippled` API](http-websocket-apis.html)にローカルでアクセスするためのクライアントアプリケーションとして、`rippled`実行可能ファイルを実行できます。(この場合同じバイナリの2つのインスタンスを並列して実行できます。1つのインスタンスをサーバーとして実行し、もう1つのインスタンスをクライアントとして一時的に実行して終了します。) +また、[`rippled` API](../../references/http-websocket-apis/index.md)にローカルでアクセスするためのクライアントアプリケーションとして、`rippled`実行可能ファイルを実行できます。(この場合同じバイナリの2つのインスタンスを並列して実行できます。1つのインスタンスをサーバーとして実行し、もう1つのインスタンスをクライアントとして一時的に実行して終了します。) -各モードで`rippled`を実行するためのコマンドについては、[rippledコマンドライン使用リファレンス](commandline-usage.html)を参照してください。 +各モードで`rippled`を実行するためのコマンドについては、[rippledコマンドライン使用リファレンス](../../infrastructure/commandline-usage.md)を参照してください。 ## P2Pモード @@ -31,19 +31,19 @@ P2Pモードのサーバーは、追加機能を提供するためにさらに - [APIサーバー](#apiサーバー) - [公開ハブ](#公開ハブ) -P2Pモードのサーバーは、デフォルトで[Mainnet](parallel-networks.html)に接続します。 +P2Pモードのサーバーは、デフォルトで[Mainnet](parallel-networks.md)に接続します。 ### APIサーバー -全てのP2Pモードサーバーは、トランザクションの送信、残高や設定の確認、サーバーの管理などの目的で、[API](http-websocket-apis.html)を提供しています。もしあなたがXRP Ledgerにデータを照会したり、ビジネス用途でトランザクションを送信するのであれば、[独自サーバーを運営する](networks-and-servers.html#独自サーバーを運用する理由)ことが有効でしょう。 +全てのP2Pモードサーバーは、トランザクションの送信、残高や設定の確認、サーバーの管理などの目的で、[API](../../references/http-websocket-apis/index.md)を提供しています。もしあなたがXRP Ledgerにデータを照会したり、ビジネス用途でトランザクションを送信するのであれば、[独自サーバーを運営する](index.md#独自サーバーを運用する理由)ことが有効でしょう。 #### 全履歴サーバー -他のいくつかのブロックチェーンとは異なり、XRP Ledgerは、現在のステートの把握や新しいトランザクションの処理のために、サーバーが完全なトランザクション履歴を持つことを必要としません。サーバーの運用者は、一度にどれだけの[レジャー履歴](ledger-history.html)を保存するかを決めることができます。ただし、P2PモードサーバーがAPIリクエストに答えられるのは、ローカルで利用可能なレジャー履歴のみです。例えば、6ヶ月分の履歴を保存している場合、サーバーは1年前のトランザクションの結果を示すことはできません。[すべての履歴](ledger-history.html#すべての履歴)を持つAPIサーバーは、XRP Ledgerの開始以降のすべてのトランザクションと残高を報告できます。 +他のいくつかのブロックチェーンとは異なり、XRP Ledgerは、現在のステートの把握や新しいトランザクションの処理のために、サーバーが完全なトランザクション履歴を持つことを必要としません。サーバーの運用者は、一度にどれだけの[レジャー履歴](ledger-history.md)を保存するかを決めることができます。ただし、P2PモードサーバーがAPIリクエストに答えられるのは、ローカルで利用可能なレジャー履歴のみです。例えば、6ヶ月分の履歴を保存している場合、サーバーは1年前のトランザクションの結果を示すことはできません。[すべての履歴](ledger-history.md#すべての履歴)を持つAPIサーバーは、XRP Ledgerの開始以降のすべてのトランザクションと残高を報告できます。 ### 公開ハブ -公開ハブは、他のサーバーへの[ピアプロトコル接続](peer-protocol.html)が多数あるストックサーバーを指します。ストックサーバーを _公開ハブ_ として実行することで、XRP Ledgerネットワークの効率的な接続を維持できます。適切に運用されている公開ハブには、以下の特徴があります。 +公開ハブは、他のサーバーへの[ピアプロトコル接続](peer-protocol.md)が多数あるストックサーバーを指します。ストックサーバーを _公開ハブ_ として実行することで、XRP Ledgerネットワークの効率的な接続を維持できます。適切に運用されている公開ハブには、以下の特徴があります。 - 十分な帯域幅。 @@ -51,48 +51,44 @@ P2Pモードのサーバーは、デフォルトで[Mainnet](parallel-networks.h - メッセージを確実に中継する能力。 -サーバーをハブとして設定するには、許可される最大ピア数を増やし、ファイアウォールやNAT(ネットワークアドレス変換)ルーターで[適切なポートを転送](forward-ports-for-peering.html)していることを確認する必要があります。 +サーバーをハブとして設定するには、許可される最大ピア数を増やし、ファイアウォールやNAT(ネットワークアドレス変換)ルーターで[適切なポートを転送](../../infrastructure/configuration/peering/forward-ports-for-peering.md)していることを確認する必要があります。 ## バリデータ -XRP Ledgerの堅牢性は、他のバリデータが共謀しないことをそれぞれが信頼している、相互接続されたバリデータのネットワークに依存しています。他のP2Pモードサーバーと同様に、各トランザクションを処理し、レジャーの状態を計算することに加え、バリデータは[コンセンサスプロトコル](consensus.html)に積極的に参加しています。もしあなたやあなたの組織がXRP Ledgerにアクセスするのであれば、バリデータとして1台のサーバーを稼働させ、コンセンサスプロセスに貢献することが望ましいでしょう。 +XRP Ledgerの堅牢性は、他のバリデータが共謀しないことをそれぞれが信頼している、相互接続されたバリデータのネットワークに依存しています。他のP2Pモードサーバーと同様に、各トランザクションを処理し、レジャーの状態を計算することに加え、バリデータは[コンセンサスプロトコル](../consensus-protocol/index.md)に積極的に参加しています。もしあなたやあなたの組織がXRP Ledgerにアクセスするのであれば、バリデータとして1台のサーバーを稼働させ、コンセンサスプロセスに貢献することが望ましいでしょう。 バリデーションはわずかな計算資源しか使用しませんが、1つの組織や団体が複数のバリデータを運用しても、共謀に対する保護が強化されるわけではないので、あまりメリットはないでしょう。各バリデータは一意の暗号鍵ペアで識別されるので、慎重に管理しなければいけません。複数のバリデータが鍵ペアを共有してはいけません。このような理由から、バリデーションはデフォルトで無効になっています。 -他の目的にも使用されているサーバーで、安全にバリデーションを有効にすることができます。このような構成は _汎用サーバー_ と呼ばれます。あるいは、他のタスクを実行しない _専用バリデータ_ を、P2Pモードの他の`rippled`サーバーと一緒に[クラスタ](clustering.html)で実行することもできます。 +他の目的にも使用されているサーバーで、安全にバリデーションを有効にすることができます。このような構成は _汎用サーバー_ と呼ばれます。あるいは、他のタスクを実行しない _専用バリデータ_ を、P2Pモードの他の`rippled`サーバーと一緒に[クラスタ](clustering.md)で実行することもできます。 -バリデータの実行についての詳細は、[バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html)を参照してください。 +バリデータの実行についての詳細は、[バリデータとしての`rippled`の実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)を参照してください。 ## レポートモード -[新規: rippled 1.7.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %} -レポートモードは、APIリクエストをより効率的に処理するために特化したモードです。このモードでは、サーバーは[gRPC](configure-grpc.html)を介して、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](http-websocket-apis.html)を使ってこのデータを提供します。 +複数のレポートモードサーバーは、PostgreSQLデータベースと[Apache Cassandra](https://cassandra.apache.org/)クラスタへのアクセスを共有し、各サーバーがすべてのデータの冗長コピーを必要とせずに大量の履歴を提供できます。レポートモードサーバは、基礎となるデータの保存方法の違いに対応するため、若干の変更を加えた同じ[`rippled` API](../../references/http-websocket-apis/index.md)を使ってこのデータを提供します。 -最も注目すべきは、レポートモードのサーバーは、保留中や未検証のレジャーデータまたはトランザクションをレポートしないことです。この制限は、[分散型取引所](decentralized-exchange.html)での裁定取引の実行など、流動的なデータへの迅速なアクセスに依存する特定の使用事例に関連しています。 +最も注目すべきは、レポートモードのサーバーは、保留中や未検証のレジャーデータまたはトランザクションをレポートしないことです。この制限は、[分散型取引所](../tokens/decentralized-exchange/index.md)での裁定取引の実行など、流動的なデータへの迅速なアクセスに依存する特定の使用事例に関連しています。 ## スタンドアロンモード スタンドアロンモードでは、サーバーはネットワークに接続せず、コンセンサスプロセスにも参加せずに動作します。コンセンサスプロセスがなければ、手動で台帳を進める必要があり、「closedレジャー」と「validatedレジャー」の区別はありません。しかし、サーバーは依然としてAPIアクセスを提供し、トランザクションを同じように処理します。これにより、以下のことが可能になります。 -- 分散型ネットワーク上でAmendmentsが有効になる前に、[Amendmentsの影響をテストする](test-amendments.html)。 -- [新しいジェネシスレジャー](start-a-new-genesis-ledger-in-stand-alone-mode.html)を最初から作成する。 -- ディスクから[既存のレジャーバージョンを読み込み](load-a-saved-ledger-in-stand-alone-mode.html)、特定のトランザクションを再生して、その結果を再現したり、他の可能性をテストする。 +- 分散型ネットワーク上でAmendmentsが有効になる前に、[Amendmentsの影響をテストする](../../infrastructure/testing-and-auditing/test-amendments.md)。 +- [新しいジェネシスレジャー](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md)を最初から作成する。 +- ディスクから[既存のレジャーバージョンを読み込み](../../infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md)、特定のトランザクションを再生して、その結果を再現したり、他の可能性をテストする。 -**注意:** スタンドアロンモードでは[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.html)必要があります。 +**注意:** スタンドアロンモードでは[レジャーを手動で進める](../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md)必要があります。 ## 関連項目 - **チュートリアル:** - - [`rippled`の構成](configure-rippled.html) - - [スタンドアロンモードでのrippledの使用](use-stand-alone-mode.html) + - [`rippled`の構成](../../infrastructure/configuration/index.md) + - [スタンドアロンモードでのrippledの使用](../../infrastructure/testing-and-auditing/index.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/networks-and-servers/the-clio-server.md b/content/@i18n/ja/concepts/networks-and-servers/the-clio-server.md index b1a02bc0a2..f5a3d597cc 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/the-clio-server.md +++ b/content/@i18n/ja/concepts/networks-and-servers/the-clio-server.md @@ -13,7 +13,7 @@ Clioは、検証済みの過去の台帳とトランザクションデータを Clioは`rippled`サーバーにアクセスする必要があり、このサーバーはClioと同じマシン上で実行することも、別々に実行することも可能です。 -Clioは完全な[HTTP / WebSocket API](http-websocket-apis.html)を提供していますが、デフォルトでは、検証済みのデータのみを返します。P2Pネットワークへのアクセスを必要とするリクエストに対しては、Clioは自動的にP2Pネットワーク上の`rippled`サーバにリクエストを転送し、レスポンスを返します。 +Clioは完全な[HTTP / WebSocket API](../../references/http-websocket-apis/index.md)を提供していますが、デフォルトでは、検証済みのデータのみを返します。P2Pネットワークへのアクセスを必要とするリクエストに対しては、Clioは自動的にP2Pネットワーク上の`rippled`サーバにリクエストを転送し、レスポンスを返します。 ## Clioサーバーを運用する理由 @@ -30,7 +30,7 @@ Clioは完全な[HTTP / WebSocket API](http-websocket-apis.html)を提供して ## Clioサーバーの仕組み -{{ include_svg("img/clio-basic-architecture.svg", "図1: Clioサーバーの仕組み") }} +[{% inline-svg file="/img/clio-basic-architecture.svg" /%}](/img/clio-basic-architecture.svg "図1: Clioサーバーの仕組み") Clioサーバーは、トランザクションメタデータ、アカウントステート、台帳ヘッダーなどの有効な台帳データを永続的なデータストアに保存します。 @@ -47,4 +47,4 @@ ClioサーバーはAPIリクエストを受信すると、これらのデータ - [Clio ソースコード](https://github.com/XRPLF/clio) - **チュートリアル:** - - [UbuntuにClioサーバーをインストールする](install-clio-on-ubuntu.html) + - [UbuntuにClioサーバーをインストールする](../../infrastructure/installation/install-clio-on-ubuntu.md) diff --git a/content/@i18n/ja/concepts/networks-and-servers/transaction-censorship-detection.md b/content/@i18n/ja/concepts/networks-and-servers/transaction-censorship-detection.md index a62ba00d09..d58584ebeb 100644 --- a/content/@i18n/ja/concepts/networks-and-servers/transaction-censorship-detection.md +++ b/content/@i18n/ja/concepts/networks-and-servers/transaction-censorship-detection.md @@ -7,11 +7,11 @@ labels: --- # 取引検閲の検知 -[新規: rippled 1.2.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} XRP Ledgerは、高い検閲耐性を実現できるように設計されています。この設計をサポートするために、XRP Ledgerでは、取引検閲の自動検知機能がすべての`rippled`サーバーで有効になっており、検閲によるネットワークへの影響の有無を、すべての参加者が確認できます。 -`rippled`サーバーがネットワークと同期している間、検知機能は、`rippled`サーバーの観点から、[コンセンサス](consensus.html)の最終ラウンドで受け入れられ、最後に検証されたレジャーに取り込まれるトランザクションをすべて追跡します。検知機能では、数回のコンセンサスラウンド後、検証済みのレジャーに取り込まれていないトランザクションの重大度が高くなるというログメッセージを発行します。 +`rippled`サーバーがネットワークと同期している間、検知機能は、`rippled`サーバーの観点から、[コンセンサス](../consensus-protocol/index.md)の最終ラウンドで受け入れられ、最後に検証されたレジャーに取り込まれるトランザクションをすべて追跡します。検知機能では、数回のコンセンサスラウンド後、検証済みのレジャーに取り込まれていないトランザクションの重大度が高くなるというログメッセージを発行します。 @@ -67,13 +67,12 @@ LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 ## 関連項目 - **コンセプト:** - - [コンセンサスの原理とルール](consensus-principles-and-rules.html) - - [トランザクションキュー](transaction-queue.html) + - [コンセンサスの原理とルール](../consensus-protocol/consensus-principles-and-rules.md) + - [トランザクションキュー](../transactions/transaction-queue.md) - **チュートリアル:** - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [ログメッセージについて](understanding-log-messages.html) + - [信頼できるトランザクションの送信](../transactions/reliable-transaction-submission.md) + - [ログメッセージについて](../../infrastructure/troubleshooting/understanding-log-messages.md) - **リファレンス:** - - [トランザクションの結果](transaction-results.html) + - [トランザクションの結果](../../references/protocol/transactions/transaction-results/transaction-results.md) - -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/payment-types/bouncing-payments.md b/content/@i18n/ja/concepts/payment-types/bouncing-payments.md index 42fa9360be..a24fd9beac 100644 --- a/content/@i18n/ja/concepts/payment-types/bouncing-payments.md +++ b/content/@i18n/ja/concepts/payment-types/bouncing-payments.md @@ -9,10 +9,10 @@ labels: アドレスが不明な支払いを受け取った場合、送金者に返金することが推奨されます。これは、資金を保管するよりも手間がかかりますが、顧客に対する誠意を示すことになります。オペレーターが手動で支払いを返金することもできますし、自動的に返金するシステムを構築することもできます。 -返金の失敗を防ぐための第一の条件は、[入金を適切に監視する](robustly-monitoring-for-payments.html)ことです。顧客から送られてきた金額以上の金額を誤って返金してしまうことは避けなければなりません!(悪意のあるユーザは、[部分支払い](partial-payments.html#partial-payments-exploit)を送信して、脆弱なシステムを利用します。) +返金の失敗を防ぐための第一の条件は、[入金を適切に監視する](robustly-monitoring-for-payments.md)ことです。顧客から送られてきた金額以上の金額を誤って返金してしまうことは避けなければなりません!(悪意のあるユーザは、[部分支払い](partial-payments.md#partial-payments-exploit)を送信して、脆弱なシステムを利用します。) 第二に、返金を部分支払い(Partial Payment)として送信することです。第三者はアドレス間のパスのコストを操作することができるので、部分支払いを使えば、XRP Ledger内の取引レートを気にすることなく、支払い金額の全額を手放すことができます。利用規約の一部に、支払い失敗時のポリシーを公表する必要があります。失敗された支払いを、運用中のアドレスまたは待機中のアドレスのいずれかから送信します。 -部分支払いを送信するには、トランザクションの[`tfPartialPayment`フラグ](payment.html#payment-flags)を有効にします。`Amount`フィールドに受け取った金額を設定し、`SendMax`フィールドは省略します。受信した支払いの`SourceTag`値を、返金する支払いの`DestinationTag`値として使用する必要があります。 +部分支払いを送信するには、トランザクションの[`tfPartialPayment`フラグ](../../references/protocol/transactions/types/payment.md#payment-flags)を有効にします。`Amount`フィールドに受け取った金額を設定し、`SendMax`フィールドは省略します。受信した支払いの`SourceTag`値を、返金する支払いの`DestinationTag`値として使用する必要があります。 2つのシステムで返金が繰り返されるのを防ぐため、送信する返金に新しい送信タグを設定することができます。もしシステムが予期しない支払いを受け取った場合で、その支払いの宛先タグが送信した返金の送信元タグと一致する場合は、その支払いを再び返金させないようにします。 diff --git a/content/@i18n/ja/concepts/payment-types/checks.md b/content/@i18n/ja/concepts/payment-types/checks.md index 8d060181cc..b81cd1f3bf 100644 --- a/content/@i18n/ja/concepts/payment-types/checks.md +++ b/content/@i18n/ja/concepts/payment-types/checks.md @@ -15,7 +15,7 @@ XRP LedgerのChecks機能を使用すると、指定の受取人による取消 XRP Ledger Checksには有効期限があり、この期限を過ぎると換金できなくなります。受取人が有効期限までにCheckを換金できなかった場合、Checkオブジェクトは誰かに取り消されるまでXRP Ledgerに残ります。有効期限切れになったCheckは誰でも取り消すことができます。有効期限前、あるいはChecksが換金されるまでは、送金元と受取人のみがCheckを取り消すことができます。Checkオブジェクトは、送金元がそのCheckを換金できた時点または誰かが取り消した時点でLedgerから削除されます。 -Checksは[Escrow](escrow.html)と[Payment Channel](use-payment-channels.html)に似ていますが、Checksとこれらの機能の間には重要な相違がいくつかあります。 +Checksは[Escrow](escrow.md)と[Payment Channel](../../tutorials/use-specialized-payment-types/use-payment-channels.md)に似ていますが、Checksとこれらの機能の間には重要な相違がいくつかあります。 * Checksではトークンを送金できます。Payment ChannelとEscrowで送金できるのはXRPのみです。 @@ -24,7 +24,7 @@ Checksは[Escrow](escrow.html)と[Payment Channel](use-payment-channels.html)に * EscrowではXRPを自分自身に送金できます。ChecksではXRPを自身に送金することはできません。 -**注記:** [Checks Amendment][] により、[OfferCreate][]トランザクションの有効期限が変更されます。詳細は[オファーの有効期限](offers.html#オファーの有効期限)を参照してください。 +**注記:** [Checks Amendment][] により、[OfferCreate][]トランザクションの有効期限が変更されます。詳細は[オファーの有効期限](../tokens/decentralized-exchange/offers.md#オファーの有効期限)を参照してください。 ## Checksを利用する理由 @@ -36,9 +36,9 @@ XRP Ledger Checksは、XRP Ledgerに固有の問題も解決できます。た ### ユースケース: 支払いの承認 -**課題:** [BSA、KYC、AML、CFT](stablecoin-compliance-guidelines.html)などの規制に準拠するにあたり、金融機関は受領する資金の送金元に関する文書を提出する必要があります。違法な資金移動を防止するため、これらの規制は金融機関に対して、処理済のすべての支払いについて、その送金元と送金先を開示するよう義務付けています。XRP Ledgerの性質上、誰でもXRPを(および該当する場合にはトークンを)XRP Ledger上の金融機関のアカウントに送金することができます。金融機関のコンプライアンス部門では、このような不審な支払いへの対応にかかるコスト(罰金の可能性を含む)の増大と処理の遅れが生じます。 +**課題:** [BSA、KYC、AML、CFT](../tokens/fungible-tokens/stablecoins/compliance-guidelines.md)などの規制に準拠するにあたり、金融機関は受領する資金の送金元に関する文書を提出する必要があります。違法な資金移動を防止するため、これらの規制は金融機関に対して、処理済のすべての支払いについて、その送金元と送金先を開示するよう義務付けています。XRP Ledgerの性質上、誰でもXRPを(および該当する場合にはトークンを)XRP Ledger上の金融機関のアカウントに送金することができます。金融機関のコンプライアンス部門では、このような不審な支払いへの対応にかかるコスト(罰金の可能性を含む)の増大と処理の遅れが生じます。 -**解決策:** 金融機関は各自のXRP Ledgerのアカウントで、[`AccountSet`トランザクションの`asfDepositAuth`フラグを設定](accountset.html)することにより、[Deposit Authorization](depositauth.html)を有効にできます。これにより、アカウントはPaymentトランザクションを受領できなくなります。Deposit Authorizationが有効なアカウントは、Escrow、Payment Channel、またはChecksでのみ資金を受領できます。Deposit Authorizationが有効な場合、Checksが最もシンプルで使いやすく、柔軟な資金移動手段となります。 +**解決策:** 金融機関は各自のXRP Ledgerのアカウントで、[`AccountSet`トランザクションの`asfDepositAuth`フラグを設定](../../references/protocol/transactions/types/accountset.md)することにより、[Deposit Authorization](../accounts/depositauth.md)を有効にできます。これにより、アカウントはPaymentトランザクションを受領できなくなります。Deposit Authorizationが有効なアカウントは、Escrow、Payment Channel、またはChecksでのみ資金を受領できます。Deposit Authorizationが有効な場合、Checksが最もシンプルで使いやすく、柔軟な資金移動手段となります。 ## 使用法 @@ -47,16 +47,16 @@ Checksの一般的なライフサイクルを以下で説明します。 -[![Checkのフローチャート(換金に成功した場合)](img/checks-happy-path.ja.png)](img/checks-happy-path.ja.png) +[![Checkのフローチャート(換金に成功した場合)](/img/checks-happy-path.ja.png)](/img/checks-happy-path.ja.png) **ステップ1:** Checkを作成するため、送金元が[CheckCreate][]トランザクションを送信し、受取人(`Destination`)、有効期限(`Expiration`)、および送金元アカウントからの引き落とし限度額(`SendMax`)を指定します。 -**ステップ2:** CheckCreateトランザクションの処理が完了すると、XRP Ledgerに[Checkオブジェクト](check.html)が作成されます。このオブジェクトには、オブジェクトを作成したトランザクションにより定義されたCheckのプロパティーが含まれています。有効期限前にこのオブジェクトを変更できるのは、送金元([CheckCancel][]トランザクションで取り消す)と受取人(取り消すかまたは換金する)だけです。有効期限の経過後は、誰でもCheckを取り消すことができます。 +**ステップ2:** CheckCreateトランザクションの処理が完了すると、XRP Ledgerに[Checkオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/check.md)が作成されます。このオブジェクトには、オブジェクトを作成したトランザクションにより定義されたCheckのプロパティーが含まれています。有効期限前にこのオブジェクトを変更できるのは、送金元([CheckCancel][]トランザクションで取り消す)と受取人(取り消すかまたは換金する)だけです。有効期限の経過後は、誰でもCheckを取り消すことができます。 **ステップ3:** Checkを換金するため、受取人が[CheckCash][]トランザクションを送信します。受取人には次の2つのCheck換金オプションがあります。 -* `Amount` — 受取人はこのオプションを使用して換金する正確な額を指定できます。これは、送金元が想定される[送金手数料](transfer-fees.html)をCheckの額に上乗せし、受取人は請求書やその他の契約に記載されている指定された額のみ受け取れるようにする場合に役立ちます。 +* `Amount` — 受取人はこのオプションを使用して換金する正確な額を指定できます。これは、送金元が想定される[送金手数料](../tokens/transfer-fees.md)をCheckの額に上乗せし、受取人は請求書やその他の契約に記載されている指定された額のみ受け取れるようにする場合に役立ちます。 * `DeliverMin` — 受取人はこのオプションを使用してCheckから受領する最小額を指定できます。受取人がこのオプションを使用する場合、`rippled`は可能な限り多くの送金を試み、少なくともこの額以上を送金します。受取人に入金できる額がこの額よりも少ない場合には、このトランザクションは失敗します。 @@ -70,7 +70,7 @@ Checksが有効期限切れになった場合のライフサイクルを以下 -[![Checkのフローチャート(有効期限切れ)](img/checks-expiration.ja.png)](img/checks-expiration.ja.png) +[![Checkのフローチャート(有効期限切れ)](/img/checks-expiration.ja.png)](/img/checks-expiration.ja.png) Checksはすべて同じ方法で開始されるため、**ステップ1と2**は換金の例と同じです。 @@ -83,7 +83,7 @@ Checksはすべて同じ方法で開始されるため、**ステップ1と2** ## Checksの利用可能性 -[Checks amendment][]は2020年6月18日にメインネットで有効化されました。Amendmentがどのように有効化され、投票されるかについては、[Amendmentsプロセス](amendments.html#amendmentプロセス)を参照してください。 +[Checks amendment][]は2020年6月18日にメインネットで有効化されました。Amendmentがどのように有効化され、投票されるかについては、[Amendmentsプロセス](../networks-and-servers/amendments.md#amendmentプロセス)を参照してください。 Test NetまたはプライベートXRP LedgerネットワークでのAmendmentの状況を確認するには、[featureメソッド][]を使用してください。 @@ -92,27 +92,23 @@ Test NetまたはプライベートXRP LedgerネットワークでのAmendment XRP LedgerのChecksの詳細は、以下を参照してください。 -- [トランザクションのリファレンス](transaction-types.html) +- [トランザクションのリファレンス](../../references/protocol/transactions/types/index.md) - [CheckCreate][] - [CheckCash][] - [CheckCancel][] -- [Checksのチュートリアル](use-checks.html) - - [Checkの送信](send-a-check.html) - - [送金元アドレスに基づくChecksの検索](look-up-checks-by-sender.html) - - [受取人アドレスに基づくChecksの検索](look-up-checks-by-recipient.html) - - [Checkの指定された金額での換金](cash-a-check-for-an-exact-amount.html) - - [Checkの変動金額での換金](cash-a-check-for-a-flexible-amount.html) - - [Checkの取消し](cancel-a-check.html) +- [Checksのチュートリアル](../../tutorials/use-specialized-payment-types/use-checks/use-checks.md) + - [Checkの送信](../../tutorials/use-specialized-payment-types/use-checks/send-a-check.md) + - [送金元アドレスに基づくChecksの検索](../../tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md) + - [受取人アドレスに基づくChecksの検索](../../tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md) + - [Checkの指定された金額での換金](../../tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md) + - [Checkの変動金額での換金](../../tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md) + - [Checkの取消し](../../tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md) - [Checks Amendment][] 関連機能の詳細については、以下を参照してください。 -* [Deposit Authorization](depositauth.html) -* [Escrow](escrow.html) -* [Payment Channelチュートリアル](use-payment-channels.html) +* [Deposit Authorization](../accounts/depositauth.md) +* [Escrow](escrow.md) +* [Payment Channelチュートリアル](../../tutorials/use-specialized-payment-types/use-payment-channels.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/payment-types/cross-currency-payments.md b/content/@i18n/ja/concepts/payment-types/cross-currency-payments.md index f1c623610e..75a3633e95 100644 --- a/content/@i18n/ja/concepts/payment-types/cross-currency-payments.md +++ b/content/@i18n/ja/concepts/payment-types/cross-currency-payments.md @@ -8,26 +8,23 @@ labels: --- # クロスカレンシー支払い -XRP Ledgerでは、1つ以上のトークンとXRP、またはその両方を交換して、クロスカレンシー支払いができます。[XRPによる直接支払い](use-simple-xrp-payments.html)と同様に、このような支払いでは[Paymentトランザクションタイプ][Payment]が使用されます。XRP Ledgerでのクロスカレンシー支払いは完全にアトミックです。つまり、支払いを全額実行するか、またはまったく実行しないかのいずれかになります。 +XRP Ledgerでは、1つ以上のトークンとXRP、またはその両方を交換して、クロスカレンシー支払いができます。[XRPによる直接支払い](../../tutorials/get-started/send-xrp.md)と同様に、このような支払いでは[Paymentトランザクションタイプ][Payment]が使用されます。XRP Ledgerでのクロスカレンシー支払いは完全にアトミックです。つまり、支払いを全額実行するか、またはまったく実行しないかのいずれかになります。 -デフォルトでは、クロスカレンシー支払いでは宛先に一定額が送金され、支払元が変動コストを負担します。クロスカレンシー支払いが、[Partial Payments](partial-payments.html)で行われ、一定の送金限度内の変動額が宛先に送金される場合もあります。 +デフォルトでは、クロスカレンシー支払いでは宛先に一定額が送金され、支払元が変動コストを負担します。クロスカレンシー支払いが、[Partial Payments](partial-payments.md)で行われ、一定の送金限度内の変動額が宛先に送金される場合もあります。 ## 前提条件 - 定義上、クロスカレンシー支払いには2種類以上の通貨が関係します。つまり、関係する通貨のうち、少なくとも1種類以上がXRP以外のトークンである必要があります。 - - 通常は、[XRP Ledgerゲートウェイ](stablecoin-issuer.html)が発行した通貨を1種類以上使用することになります。このような通貨はXRP Ledger外部の資金を担保とし、ゲートウェイを通じて引き出すことができます。 + - 通常は、[XRP Ledgerゲートウェイ](../../use-cases/tokenization/stablecoin-issuer.md)が発行した通貨を1種類以上使用することになります。このような通貨はXRP Ledger外部の資金を担保とし、ゲートウェイを通じて引き出すことができます。 - 取引を行う当事者が、XRP Ledger内でのみ発行され、外部の担保がないデジタルトークンを送受信し、何らかの価値を持つ資産として取り扱うことを望む限り、このデジタルトークンを使用することもできます。 -- 送金元と受取人の間に1つ以上の[パス](paths.html)が確立しており、すべてのパスの総流動性が、支払いを促進するのに十分である必要があります。クロスカレンシー支払いの場合、これは一般に通貨取引[オファー](offers.html)を消費することを意味します。 +- 送金元と受取人の間に1つ以上の[パス](../tokens/fungible-tokens/paths.md)が確立しており、すべてのパスの総流動性が、支払いを促進するのに十分である必要があります。クロスカレンシー支払いの場合、これは一般に通貨取引[オファー](../tokens/decentralized-exchange/offers.md)を消費することを意味します。 ## オートブリッジング 2種類のトークンを自動的に交換するクロスカレンシー支払いでは、XRPの使用により支払いコストを抑えられる場合には自動的にXRPが使用されます。この場合、オーダーブックを接続して流動性プールが拡大されます。たとえば、USDからMXNに送金する支払いの場合、USDからXRP、XRPからMXNへの交換にかかるコストが、USDからMXNへの直接交換にかかるコストよりも低い場合には、前者の交換が自動的に実行されます。 -詳細は、[オートブリッジング](autobridging.html)を参照してください。 +詳細は、[オートブリッジング](../tokens/decentralized-exchange/autobridging.md)を参照してください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/payment-types/direct-xrp-payments.md b/content/@i18n/ja/concepts/payment-types/direct-xrp-payments.md index b0495f707f..3296471b83 100644 --- a/content/@i18n/ja/concepts/payment-types/direct-xrp-payments.md +++ b/content/@i18n/ja/concepts/payment-types/direct-xrp-payments.md @@ -20,23 +20,23 @@ blurb: XRPによる直接支払いは、XRP Ledgerで資産を送金する最も } ``` -上記のトランザクション指示によって、以下のように実行されます。rf1Bi ...からra5nK... にPaymentを送信することで、ちょうど13 XRPが送金されます。トランザクションが正常に処理されると、その内容が正確に実行されます。新しいレジャーバージョンが[検証済み](consensus.html)になるまでに、通常約4秒かかるため、現在処理中のレジャーの後にレジャーバージョンのキューに入れられても、正常なトランザクションを作成、送信、実行後、8秒以内に最終結果を出すことができます。 +上記のトランザクション指示によって、以下のように実行されます。rf1Bi ...からra5nK... にPaymentを送信することで、ちょうど13 XRPが送金されます。トランザクションが正常に処理されると、その内容が正確に実行されます。新しいレジャーバージョンが[検証済み](../consensus-protocol/index.md)になるまでに、通常約4秒かかるため、現在処理中のレジャーの後にレジャーバージョンのキューに入れられても、正常なトランザクションを作成、送信、実行後、8秒以内に最終結果を出すことができます。 -**注意:** [Paymentトランザクションタイプ][Payment]は、[通貨間の支払い](cross-currency-payments.html)や[Partial Payment](partial-payments.html)を含む、より特殊な支払いにも使用できます。Partial Paymentの場合、トランザクションで非常に少ない金額しか送金しなかった場合でも、多額のXRPが`Amount`に表示される可能性があります。誤った金額を顧客に入金しないようにする方法については、[Partial Paymentの悪用](partial-payments.html#partial-paymentの悪用)を参照してください。 +**注意:** [Paymentトランザクションタイプ][Payment]は、[通貨間の支払い](cross-currency-payments.md)や[Partial Payment](partial-payments.md)を含む、より特殊な支払いにも使用できます。Partial Paymentの場合、トランザクションで非常に少ない金額しか送金しなかった場合でも、多額のXRPが`Amount`に表示される可能性があります。誤った金額を顧客に入金しないようにする方法については、[Partial Paymentの悪用](partial-payments.md#partial-paymentの悪用)を参照してください。 XRP間の直接支払いではPartial Paymentは使用できませんが、Partial Paymentでは複数の送金元通貨から変換後にXRPを送金できます。 ## アカウントの資金提供 -XRP Ledgerにそのアドレスの記録が事前に存在していなくても、支払いで[口座準備金](reserves.html)の最少額を満たすのに十分なXRPが送金されれば、数学的に有効なアドレスで支払いを受け取ることができます。支払いで十分なXRPを送金できない場合は失敗します。 +XRP Ledgerにそのアドレスの記録が事前に存在していなくても、支払いで[口座準備金](../accounts/reserves.md)の最少額を満たすのに十分なXRPが送金されれば、数学的に有効なアドレスで支払いを受け取ることができます。支払いで十分なXRPを送金できない場合は失敗します。 -詳細は、[アカウント](accounts.html#アカウントの作成)を参照してください。 +詳細は、[アカウント](../accounts/accounts.md#アカウントの作成)を参照してください。 ## アドレスの再利用 -XRP Ledgerでは、支払いを受け取ることができるアドレスは永続的ですが、XRPの重要な[必要準備金](reserves.html)は消費できません。つまり、他の一部のブロックチェーンシステムとは異なり、トランザクションごとに異なる使い捨てアドレスを使用することはお勧めできません。XRP Ledgerでは、ベストプラクティスとして、複数のトランザクションに同じアドレスを再利用することをお勧めします。アドレスを定期的に使用する場合(特にインターネット接続サービスによって管理されている場合)は、[レギュラーキー](cryptographic-keys.html)を設定し、キーの漏えいのリスクを低減するためにキーを定期的に事前変更する必要があります。 +XRP Ledgerでは、支払いを受け取ることができるアドレスは永続的ですが、XRPの重要な[必要準備金](../accounts/reserves.md)は消費できません。つまり、他の一部のブロックチェーンシステムとは異なり、トランザクションごとに異なる使い捨てアドレスを使用することはお勧めできません。XRP Ledgerでは、ベストプラクティスとして、複数のトランザクションに同じアドレスを再利用することをお勧めします。アドレスを定期的に使用する場合(特にインターネット接続サービスによって管理されている場合)は、[レギュラーキー](../accounts/cryptographic-keys.md)を設定し、キーの漏えいのリスクを低減するためにキーを定期的に事前変更する必要があります。 送金元は、目的の受取人が最後に支払いを送信したときと同じアドレスを使用していると仮定しないことが重要です。必然的に、セキュリティの侵害が発生し、ユーザーまたは企業はアドレスを変更しなければならない場合があります。送金する前に、現在の受取アドレスを受取人に尋ねてください。これにより、漏えいした古いアドレスを制御している不正ユーザーに誤ってお金を送信することはありません。 @@ -48,46 +48,42 @@ XRP Ledgerでは、支払いを受け取ることができるアドレスは永 1. [Paymentトランザクション][]のパラメータを検証します。トランザクションがXRPを送信、送金するように構成されている場合、トランザクション処理エンジンはそのトランザクションをXRP間の直接支払いとして認識します。検証チェックは次のように行います。 - すべてのフィールドが正しいフォーマットであることを確認します。たとえば、XRPによる直接支払いの場合、`Amount`フィールドは[XRPのdrop数][]でなければなりません。 - - 送信元アドレスがXRP Ledgerの資金供給された[アカウント](accounts.html)であることを確認します。 + - 送信元アドレスがXRP Ledgerの資金供給された[アカウント](../accounts/accounts.md)であることを確認します。 - 指定された署名がすべて、送信元アドレスに対して有効であることを確認します。 - - 宛先アドレスと送金元アドレスが異なることを確認します。([宛先タグ](source-and-destination-tags.html)が異なる同一アドレスに送金するだけでは不十分です。) + - 宛先アドレスと送金元アドレスが異なることを確認します。([宛先タグ](../transactions/source-and-destination-tags.md)が異なる同一アドレスに送金するだけでは不十分です。) - Paymentを送信するのに十分なXRP残高が送金元にあることを確認します。 いずれかのチェックに失敗すると、支払いは失敗します。 2. 受取アドレスが、資金供給されたアカウントかどうかを確認します。 - - 受取アドレスに資金が供給されている場合は、[DepositAuth](depositauth.html)や[RequireDest](source-and-destination-tags.html#タグの必須化)など、支払いの受け取りに関する制限が受取アドレスにあるかどうかを確認します。そのような制限を支払いが満たしていない場合、支払いは失敗します。 - - 受取アドレスに資金が供給されていない場合は、[必要準備金](reserves.html)の最低額を満たすのに十分なXRPが支払いで送金されるかどうかを確認します。十分でない場合、支払いは失敗します。 + - 受取アドレスに資金が供給されている場合は、[DepositAuth](../accounts/depositauth.md)や[RequireDest](../transactions/source-and-destination-tags.md#タグの必須化)など、支払いの受け取りに関する制限が受取アドレスにあるかどうかを確認します。そのような制限を支払いが満たしていない場合、支払いは失敗します。 + - 受取アドレスに資金が供給されていない場合は、[必要準備金](../accounts/reserves.md)の最低額を満たすのに十分なXRPが支払いで送金されるかどうかを確認します。十分でない場合、支払いは失敗します。 -3. `Amount`フィールドで指定されたXRPの金額と、[トランザクションコスト](transaction-cost.html)用に消却されるXRPの金額の合計を送金元アカウントから引き落とし、受取アカウントに同じ金額を送金します。 +3. `Amount`フィールドで指定されたXRPの金額と、[トランザクションコスト](../transactions/transaction-cost.md)用に消却されるXRPの金額の合計を送金元アカウントから引き落とし、受取アカウントに同じ金額を送金します。 - 必要に応じて、受取アドレス用に新規アカウント([AccountRootオブジェクト](accountroot.html)) を作成します。新規アカウントの開始残高は、支払いの`Amount`と同額になります。 + 必要に応じて、受取アドレス用に新規アカウント([AccountRootオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)) を作成します。新規アカウントの開始残高は、支払いの`Amount`と同額になります。 - エンジンは、[トランザクションのメタデータ](transaction-metadata.html)に`delivered_amount`フィールドを追加して、送金金額を示します。正しい金額のXRPを受け取ったことを確認できるように、必ず`delivered_amount`を使用する必要があります。`Amount`フィールドでは**ありません**。(通貨間の支払「Partial Payment」では、`Amount`フィールドに記載されているよりも少額のXRPが送金される場合があります。)詳細は、[Partial Payments](partial-payments.html)を参照してください。 + エンジンは、[トランザクションのメタデータ](../../references/protocol/transactions/metadata.md)に`delivered_amount`フィールドを追加して、送金金額を示します。正しい金額のXRPを受け取ったことを確認できるように、必ず`delivered_amount`を使用する必要があります。`Amount`フィールドでは**ありません**。(通貨間の支払「Partial Payment」では、`Amount`フィールドに記載されているよりも少額のXRPが送金される場合があります。)詳細は、[Partial Payments](partial-payments.md)を参照してください。 ## 他の支払いタイプとの比較 - **XRPによる直接支払い**は、単一のトランザクションでXRPを送受信する唯一の方法です。この方法は、速度、シンプルさ、低コストの面でバランスが取れています。 -- [通貨間の支払い](cross-currency-payments.html)でも[Payment][]トランザクションタイプを使用しますが、XRPとXRP以外の[トークン](tokens.html)を組み合わせて送金できます。ただし、XRP間の支払いは除きます。また、[Partial Payment](partial-payments.html)でも使用できます。通貨間の支払いは、XRPで指定されていない支払いや、[分散型取引所](decentralized-exchange.html)で裁定取引の機会を得るのに適しています。 -- [Checks](checks.html)すぐに送金せずに送金元に債務を設定してもらいます。受取人は有効期間内であればいつでも換金できますが、その金額は保証されません。Checksでは、XRPまたはトークンのいずれかを送金できます。Checksは、受取人に支払いを請求する自律性を与えるのに適しています。 -- [Escrow](escrow.html)では、特定の条件が満たされたときに、意図した受取人が要求できるXRPを確保します。XRPの金額は完全に保証されており、Escrowの有効期限が切れない限り、送金元が使用することはできません。Escrowは、巨額のスマートコントラクトに適しています。 -- [Payment Channel](payment-channels.html)では、XRPが確保されます。受取人は、署名による認証を使用して、チャネルから一括でXRPを要求できます。XRP Ledgerの全トランザクションを送信せずに、認証を個々に確認できます。Payment Channelは、極めて大量の小口決済または「ストリーミング」支払いに適しています。 +- [通貨間の支払い](cross-currency-payments.md)でも[Payment][]トランザクションタイプを使用しますが、XRPとXRP以外の[トークン](../tokens/index.md)を組み合わせて送金できます。ただし、XRP間の支払いは除きます。また、[Partial Payment](partial-payments.md)でも使用できます。通貨間の支払いは、XRPで指定されていない支払いや、[分散型取引所](../tokens/decentralized-exchange/index.md)で裁定取引の機会を得るのに適しています。 +- [Checks](checks.md)すぐに送金せずに送金元に債務を設定してもらいます。受取人は有効期間内であればいつでも換金できますが、その金額は保証されません。Checksでは、XRPまたはトークンのいずれかを送金できます。Checksは、受取人に支払いを請求する自律性を与えるのに適しています。 +- [Escrow](escrow.md)では、特定の条件が満たされたときに、意図した受取人が要求できるXRPを確保します。XRPの金額は完全に保証されており、Escrowの有効期限が切れない限り、送金元が使用することはできません。Escrowは、巨額のスマートコントラクトに適しています。 +- [Payment Channel](payment-channels.md)では、XRPが確保されます。受取人は、署名による認証を使用して、チャネルから一括でXRPを要求できます。XRP Ledgerの全トランザクションを送信せずに、認証を個々に確認できます。Payment Channelは、極めて大量の小口決済または「ストリーミング」支払いに適しています。 ## 関連項目 - **チュートリアル:** - - [XRPの送金(対話型チュートリアル)](send-xrp.html) - - [WebSocketを使用した着信ペイメントの監視](monitor-incoming-payments-with-websocket.html) + - [XRPの送金(対話型チュートリアル)](../../tutorials/get-started/send-xrp.md) + - [WebSocketを使用した着信ペイメントの監視](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) - **リファレンス:** - [Paymentトランザクション][] - - [トランザクションの結果](transaction-results.html) + - [トランザクションの結果](../../references/protocol/transactions/transaction-results/transaction-results.md) - [account_infoメソッド][] - XRP残高を確認します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/payment-types/escrow.md b/content/@i18n/ja/concepts/payment-types/escrow.md index b0abfccaba..0d1fe562ad 100644 --- a/content/@i18n/ja/concepts/payment-types/escrow.md +++ b/content/@i18n/ja/concepts/payment-types/escrow.md @@ -37,7 +37,7 @@ XRP Ledgerは3つの種類のEscrowをサポートします。 次の図は、Escrow実施時の各状態を示します。 -[![Escrowの状態がHeld → Ready/Conditionally Ready → Expiredと遷移する様子を示す状態遷移図](img/escrow-states.ja.png)](img/escrow-states.ja.png) +[![Escrowの状態がHeld → Ready/Conditionally Ready → Expiredと遷移する様子を示す状態遷移図](/img/escrow-states.ja.png)](/img/escrow-states.ja.png) この図は、Escrowの「Finish-after」時刻(`FinishAfter`フィールド)、Crypto-condition(`Condition`フィールド)、および有効期限(`CancelAfter`フィールド)の3通りの組み合わせの3つの例を示します。 @@ -53,7 +53,7 @@ XRP Ledgerは3つの種類のEscrowをサポートします。 - EscrowはXRPでのみ実行でき、発行済み通貨では実行できません。 - 少額での利用はコスト面で難しいかもしれません。 - Crypto-conditionを使用する場合、[EscrowFinishトランザクションのコスト](#escrowfinishトランザクションのコスト)が通常よりも高くなります。 - - エスクローが未成立な間は、`Escrow`オブジェクトの[準備金](reserves.html)は送信者の責任となります。 + - エスクローが未成立な間は、`Escrow`オブジェクトの[準備金](../accounts/reserves.md)は送信者の責任となります。 - Escrowを作成するトランザクションの実行時には、時刻の値が過去の時間であってはなりません。 - 時限リリースおよび有効期限は、レジャークローズに制約されます。つまり実際には、レジャーの正確なクローズ時刻に基づいて、これらの時刻が約5秒単位で丸められる場合があります。 - サポートされている唯一の[Crypto-condition][]タイプはPREIMAGE-SHA-256です。 @@ -61,15 +61,15 @@ XRP Ledgerは3つの種類のEscrowをサポートします。 ## EscrowFinishトランザクションのコスト -Crypto-conditionを使用する場合、Crypto-conditionフルフィルメントの検証に高い処理負荷がかかるため、EscrowFinishトランザクションでは[高額なトランザクションコスト](transaction-cost.html#特別なトランザクションコスト)を支払う必要があります。 +Crypto-conditionを使用する場合、Crypto-conditionフルフィルメントの検証に高い処理負荷がかかるため、EscrowFinishトランザクションでは[高額なトランザクションコスト](../transactions/transaction-cost.md#特別なトランザクションコスト)を支払う必要があります。 -追加で必要となる取引コストはフルフィルメントのサイズに比例します。トランザクションが[マルチシグ](multi-signing.html)の場合、マルチサインのコストはフルフィルメントのコストに追加されます。 +追加で必要となる取引コストはフルフィルメントのサイズに比例します。トランザクションが[マルチシグ](../accounts/multi-signing.md)の場合、マルチサインのコストはフルフィルメントのコストに追加されます。 -必要となる追加のトランザクションコストは、フルフィルメントのサイズに比例します。現時点では、フルフィルメントのあるEscrowFinishでは最小トランザクションコストとして、**330 drop([XRPのdrop数](basic-data-types.html#通貨額の指定))と、フルフィルメントのサイズで16バイトあたり10 drop**が必要です。 +必要となる追加のトランザクションコストは、フルフィルメントのサイズに比例します。現時点では、フルフィルメントのあるEscrowFinishでは最小トランザクションコストとして、**330 drop([XRPのdrop数](../../references/protocol/data-types/basic-data-types.md#通貨額の指定))と、フルフィルメントのサイズで16バイトあたり10 drop**が必要です。 **注記:** 上記の式は、トランザクションのリファレンスコストが10 dropであることを前提としています。 -[手数料投票](fee-voting.html)により`reference_fee`の値が変更される場合、この式は新しいリファレンスコストに基づいてスケーリングされます。フルフィルメントのあるEscrowFinishトランザクションの公式は次のとおりです。 +[手数料投票](../consensus-protocol/fee-voting.md)により`reference_fee`の値が変更される場合、この式は新しいリファレンスコストに基づいてスケーリングされます。フルフィルメントのあるEscrowFinishトランザクションの公式は次のとおりです。 ``` reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) @@ -81,18 +81,15 @@ reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) XRP LedgerのEscrowの詳細は、以下を参照してください: -- [Escrowチュートリアル](use-escrows.html) -- [トランザクションのリファレンス](transaction-formats.html) +- [Escrowチュートリアル](../../tutorials/tasks/use-specialized-payment-types/use-escrows/index.md) +- [トランザクションのリファレンス](../../references/protocol/transactions/index.md) - [EscrowCreateトランザクション][] - [EscrowFinishトランザクション][] - [EscrowCancelトランザクション][] -- [レジャーリファレンス](ledger-data-formats.html) - - [Escrowオブジェクト](escrow-object.html) +- [レジャーリファレンス](../../references/protocol/ledger-data/index.md) + - [Escrowオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) Rippleによる550億XRPのロックアップについては、[Ripple's Insights Blog](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/)を参照してください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/payment-types/index.md b/content/@i18n/ja/concepts/payment-types/index.md index 4350bbf274..b25977d97a 100644 --- a/content/@i18n/ja/concepts/payment-types/index.md +++ b/content/@i18n/ja/concepts/payment-types/index.md @@ -1,9 +1,13 @@ --- html: payment-types.html parent: concepts.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: XRP LedgerはポイントツーポイントのXRPペイメントのほかに、より専門的な支払いタイプをサポートしています。 --- # 支払いのタイプ -XRP LedgerはポイントツーポイントのXRPペイメントのほかに、より専門的な支払いタイプをサポートしています。 \ No newline at end of file +XRP LedgerはポイントツーポイントのXRPペイメントのほかに、より専門的な支払いタイプをサポートしています。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/concepts/payment-types/partial-payments.md b/content/@i18n/ja/concepts/payment-types/partial-payments.md index 4be64503b6..c5d7526e50 100644 --- a/content/@i18n/ja/concepts/payment-types/partial-payments.md +++ b/content/@i18n/ja/concepts/payment-types/partial-payments.md @@ -8,9 +8,9 @@ labels: --- # Partial Payment -デフォルトのケースでは、XRP Ledgerの[Paymentトランザクション][]の`Amount`フィールドに、為替レートと[送金手数料](transfer-fees.html)を差し引いた実際の送金額が指定されます。「Partial Payment」フラグ([**tfPartialPayment**](payment.html#paymentのフラグ))を使うと、送金額を増額する代わりに受取金額を減額して、支払を正常に実行できます。Partial Paymentは、追加コストなしで[支払を返金](bouncing-payments.html)したい場合に便利です。 +デフォルトのケースでは、XRP Ledgerの[Paymentトランザクション][]の`Amount`フィールドに、為替レートと[送金手数料](../tokens/transfer-fees.md)を差し引いた実際の送金額が指定されます。「Partial Payment」フラグ([**tfPartialPayment**](../../references/protocol/transactions/types/payment.md#paymentのフラグ))を使うと、送金額を増額する代わりに受取金額を減額して、支払を正常に実行できます。Partial Paymentは、追加コストなしで[支払を返金](bouncing-payments.md)したい場合に便利です。 -[トランザクションコスト](transaction-cost.html)に使用されるXRPの額は、トランザクションタイプに関わらず常に送金元のアカウントから差し引かれます。 +[トランザクションコスト](../transactions/transaction-cost.md)に使用されるXRPの額は、トランザクションタイプに関わらず常に送金元のアカウントから差し引かれます。 Partial Paymentは、XRP Ledgerとのネイティブ統合を悪用して取引所およびゲートウェイから資金を盗むのに使用される恐れがあります。本書の[Partial Paymentの悪用](#partial-paymentの悪用)セクションで、この悪用の仕組みと防止対策を説明します。 @@ -22,11 +22,13 @@ Partial Paymentフラグを使用しないで送金する場合、トランザ つまり、次の式になります。 - Amount+(手数料)=(送金額)≤ SendMax +``` +Amount+(手数料)=(送金額)≤ SendMax +``` -この式の「手数料」は、[送金手数料](transfer-fees.html)と通貨の為替レートを指します。送金額(`Amount`)の通貨は、送金側と受取側で異なる通貨建てにすることができ、XRP Ledgerの分散型取引所でオファーを消費することにより交換されます。 +この式の「手数料」は、[送金手数料](../tokens/transfer-fees.md)と通貨の為替レートを指します。送金額(`Amount`)の通貨は、送金側と受取側で異なる通貨建てにすることができ、XRP Ledgerの分散型取引所でオファーを消費することにより交換されます。 -**注記:** トランザクションの`Fee`フィールドが参照するXRP[トランザクションコスト](transaction-cost.html)は、トランザクションをネットワークに中継するために消却されます。トランザクションコストは、常に指定通りの額が送金元から引き落とされ、あらゆるタイプの支払の手数料計算とは完全に切り離されています。 +**注記:** トランザクションの`Fee`フィールドが参照するXRP[トランザクションコスト](../transactions/transaction-cost.md)は、トランザクションをネットワークに中継するために消却されます。トランザクションコストは、常に指定通りの額が送金元から引き落とされ、あらゆるタイプの支払の手数料計算とは完全に切り離されています。 ### Partial Paymentを使用する場合 @@ -36,7 +38,9 @@ Partial Paymentフラグが有効になっている支払を送金する場合 つまり、次の式になります。 - 金額 ≥(送金額)= SendMax -(手数料)≥ DeliverMin > 0 +``` +金額 ≥(送金額)= SendMax -(手数料)≥ DeliverMin > 0 +``` ### Partial Paymentの制限事項 @@ -46,11 +50,11 @@ Partial Paymentには次の制限事項があります。 - Partial Paymentでは、XRP間の直接決済はできません。この場合、[結果コード][]`temBAD_SEND_XRP_PARTIAL`が返されます。 - ただし、イシュアンスからXRPへの支払またはXRPからイシュアンスへの支払は、Partial Paymentが可能です。 -[結果コード]: transaction-results.html +[結果コード]: ../../references/protocol/transactions/transaction-results/transaction-results.md ### `delivered_amount`フィールド -Partial Paymentでの実際の送金額を把握できるように、正常に完了したPaymentトランザクションのメタデータには`delivered_amount`フィールドが含まれています。このフィールドには送金額が`Amount`フィールドと[同じフォーマット](basic-data-types.html#通貨額の指定)で示されています。 +Partial Paymentでの実際の送金額を把握できるように、正常に完了したPaymentトランザクションのメタデータには`delivered_amount`フィールドが含まれています。このフィールドには送金額が`Amount`フィールドと[同じフォーマット](../../references/protocol/data-types/basic-data-types.md#通貨額の指定)で示されています。 Partial Payment以外の場合、トランザクションのメタデータの`delivered_amount`フィールドは、トランザクションの`Amount`フィールドと同じです。支払がトークンで行われた場合、丸め方により`delivered_amount`が`Amount`フィールドとやや異なることがあります。 @@ -68,13 +72,13 @@ Partial Payment以外の場合、トランザクションのメタデータの`d | [JSON-RPC / WebSocket][] | [account_txメソッド][] | `result.transactions` 配列メンバーの `meta.delivered_amount` | | [JSON-RPC / WebSocket][] | [txメソッド][] | `result.meta.delivered_amount` | | [JSON-RPC / WebSocket][] | [transaction_entryメソッド][] | `result.metadata.delivered_amount` | -| [JSON-RPC / WebSocket][] | [ledgerメソッド][](トランザクションが展開されている状態) | `result.ledger.transactions` 配列メンバーの`metaData.delivered_amount` [新規: rippled 1.2.1][] | -| [WebSocket][] | [トランザクションサブスクリプション](subscribe.html#トランザクションストリーム) | サブスクリプションメッセージの`meta.delivered_amount` [新規: rippled 1.2.1][] | +| [JSON-RPC / WebSocket][] | [ledgerメソッド][](トランザクションが展開されている状態) | `result.ledger.transactions` 配列メンバーの`metaData.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} | +| [WebSocket][] | [トランザクションサブスクリプション](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#トランザクションストリーム) | サブスクリプションメッセージの`meta.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} | | ripple-lib v1.x | `getTransaction` メソッド | `outcome.deliveredAmount` | | ripple-lib v1.x | `getTransactions` メソッド | 配列メンバーの `outcome.deliveredAmount` | -[WebSocket]: http-websocket-apis.html -[JSON-RPC / WebSocket]: http-websocket-apis.html +[WebSocket]: ../../references/http-websocket-apis/index.md +[JSON-RPC / WebSocket]: ../../references/http-websocket-apis/index.md ## Partial Paymentの悪用 @@ -112,7 +116,4 @@ Partial Payment以外の場合、トランザクションのメタデータの`d - 出金処理のビジネスロジックにサニティチェックを追加します。XRP Ledgerで保有している残高の合計が、予期されている資産と債務に一致しない場合は、出金を処理をしません。 - 「顧客確認」のガイドラインに従い、顧客の身元情報を厳密に検証します。不正使用者を事前に認識して阻止したり、システムを悪用した不正使用者に対して法的措置を講じたりすることができます。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/payment-types/payment-channels.md b/content/@i18n/ja/concepts/payment-types/payment-channels.md index f937625f29..e6836d0ce6 100644 --- a/content/@i18n/ja/concepts/payment-types/payment-channels.md +++ b/content/@i18n/ja/concepts/payment-types/payment-channels.md @@ -10,7 +10,7 @@ labels: Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。 -Payment Channel向けのXRPは、指定された期間にわたって留保されます。送金元がチャネルに対する _クレーム_ を作成します。受取人は、XRP Ledgerトランザクションを送信したり、新しいレジャーバージョンが[コンセンサス](consensus.html)に基づいて承認されるまで待つことなしに、このクレームを検証します。(これは、合意に基づいてトランザクションが承認される通常のパターンとは別に発生する、 _非同期_ のプロセスです。)受取人はいつでもクレームを _清算_ して、このクレームにより承認された額のXRPを受領することができます。このようなクレームを清算するときには、通常の合意プロセスの一部として標準XRP Ledgerトランザクションを使用します。この1回のトランザクションに、少額のクレームにより保証される任意の数のトランザクションを含めることができます。 +Payment Channel向けのXRPは、指定された期間にわたって留保されます。送金元がチャネルに対する _クレーム_ を作成します。受取人は、XRP Ledgerトランザクションを送信したり、新しいレジャーバージョンが[コンセンサス](../consensus-protocol/index.md)に基づいて承認されるまで待つことなしに、このクレームを検証します。(これは、合意に基づいてトランザクションが承認される通常のパターンとは別に発生する、 _非同期_ のプロセスです。)受取人はいつでもクレームを _清算_ して、このクレームにより承認された額のXRPを受領することができます。このようなクレームを清算するときには、通常の合意プロセスの一部として標準XRP Ledgerトランザクションを使用します。この1回のトランザクションに、少額のクレームにより保証される任意の数のトランザクションを含めることができます。 クレームは個別に検証され、後で一括で清算できるため、Payment Channelでは、クレームのデジタル署名を作成および検証する参加者の能力によってのみ制限されるペースで、トランザクションを行えます。この制限は主に、参加者のハードウェアのスピードと、署名アルゴリズムの複雑さによるものです。最大限の速度を引き出すにはEd25519署名を使用します。これはXRP Ledgerのデフォルトのsecp256k1 ECSDA 署名よりも高速です。研究の結果、2011年のコモディティーハードウェアで[1秒あたりEd25519署名を100,000個以上作成し、1秒あたり70,000個以上を検証できることが実証されました](https://ed25519.cr.yp.to/ed25519-20110926.pdf)。 @@ -30,16 +30,13 @@ Payment Channelでは本来、そこで売買可能なものにいては、一 次の図は、Payment Channelのライフサイクルの概要を示します。 -[![Payment Channelフローチャート](img/paychan-flow.ja.png)](img/paychan-flow.ja.png) +[![Payment Channelフローチャート](/img/paychan-flow.ja.png)](/img/paychan-flow.ja.png) ## 関連項目 -- [Payment Channelの使用](use-payment-channels.html): Payment Channelを使用するプロセスを段階的に説明するチュートリアル。 +- [Payment Channelの使用](../../tutorials/use-specialized-payment-types/use-payment-channels.md): Payment Channelを使用するプロセスを段階的に説明するチュートリアル。 -- [Escrow](escrow.html): 速度が遅い、条件付きの大量XRP決済のための類似機能。 +- [Escrow](escrow.md): 速度が遅い、条件付きの大量XRP決済のための類似機能。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/payment-types/robustly-monitoring-for-payments.md b/content/@i18n/ja/concepts/payment-types/robustly-monitoring-for-payments.md index 9018f9c096..288806644a 100644 --- a/content/@i18n/ja/concepts/payment-types/robustly-monitoring-for-payments.md +++ b/content/@i18n/ja/concepts/payment-types/robustly-monitoring-for-payments.md @@ -11,8 +11,8 @@ labels: * 直近に処理したトランザクションとレジャーを記録しておく。そうすれば、一時的に接続ができなくなったとしても、どこまで遡ればいいのか分かります。 * 受信したすべての支払いの結果コードを確認する。一部の支払いは、失敗したにもかかわらず、スパム対策料金を請求するためにレジャーに登録されます。結果コード`tesSUCCESS`を持つトランザクションだけが、XRP以外の残高を変更できます。また、検証されたレジャーからのトランザクションのみが確定的なものとなります。 -* [部分支払い](partial-payments.html)に注意してください。partial paymentフラグを有効にした場合、0以上の金額であれば、少額でも「成功」と判断されることがあります。 - * トランザクションに[`delivered_amount`フィールド](partial-payments.html#the-delivered_amount-field)があるかどうか確認してください。もし存在すれば、そのフィールドは`Destination`アドレスに実際にどれだけの金額が支払われたかを示しています。 +* [部分支払い](partial-payments.md)に注意してください。partial paymentフラグを有効にした場合、0以上の金額であれば、少額でも「成功」と判断されることがあります。 + * トランザクションに[`delivered_amount`フィールド](partial-payments.md#the-delivered_amount-field)があるかどうか確認してください。もし存在すれば、そのフィールドは`Destination`アドレスに実際にどれだけの金額が支払われたかを示しています。 * xrpl.jsでは、[`xrpl.getBalanceChanges()`メソッド](https://js.xrpl.org/modules.html#getBalanceChanges)を使って、各アドレスがいくら受け取ったかを見ることができます。場合によっては、これを異なるトラストラインで複数回に分けて表示することも可能です * トランザクションの中には、アドレスの1つへの直接の支払いやアドレスからの支払いでなくても、残高を変更するものがあります。 @@ -23,4 +23,4 @@ labels: * 残高を確認するには、`gateway_balances`メソッドを使用します。 * Transfer Feeが設定されている場合、他のXRP Ledgerアドレスがあなたのトークンを転送するたびに、XRP Ledger内でのあなたの負債はわずかに減少します。 -受信したトランザクションの詳細を確認する方法については、[トランザクションの結果の確認](look-up-transaction-results.html)をご覧ください。 +受信したトランザクションの詳細を確認する方法については、[トランザクションの結果の確認](../transactions/finality-of-results/look-up-transaction-results.md)をご覧ください。 diff --git a/content/@i18n/ja/concepts/payment-types/sending-payments-to-customers.md b/content/@i18n/ja/concepts/payment-types/sending-payments-to-customers.md index 27361ad445..02612eb9b1 100644 --- a/content/@i18n/ja/concepts/payment-types/sending-payments-to-customers.md +++ b/content/@i18n/ja/concepts/payment-types/sending-payments-to-customers.md @@ -15,12 +15,9 @@ labels: - XRP Ledgerに支払いを送信する前に、支払いのコストを再確認してください。あなたの運用アドレスから顧客への支払いは、着金金額とあなたが設定した送金手数料よりも高くなるべきではありません。 - 発行アドレスから新しいトークンを発行する場合、`SendMax`フィールドを省略する必要があります。そうしないと、悪意のあるユーザは、意図した宛先の`Amount`だけでなく、`SendMax`の全量を発行するように設定を変更することができます。 - ホットウォレットからトークンを送信する場合、送金手数料がゼロでない場合は`SendMax`を指定する必要があります。この場合、`SendMax`フィールドに`Amount`フィールドで指定した金額と送金手数料を設定します。(計算の精度がXRP Ledgerと正確に一致しない場合に備えて、少し切り上げるとよいでしょう)。例えば、`Amount`フィールドに99.47USDが指定され、送金手数料が0.25%のトランザクションを送信する場合、`SendMax`フィールドを124.3375、または切り上げる場合は124.34USDに設定すべきです。 -- `Paths`フィールドを省略します。このフィールドは、発行元から直接送信する場合や、送信するトークンと受信するトークンの通貨コードと発行元が同じである限り、つまり同じステーブルコインである限り、ホットウォレットから設定する必要はありません。`Paths`フィールドは[クロスカレンシー支払い](cross-currency-payments.html)やより長いマルチホップ(rippling)支払いを対象としています。単純に経路探索を行い、トランザクションにパスを設定すると、直接の経路が利用できない場合、支払いは失敗するのではなく、より高価な遠回りのパスを取るかもしれません。悪意のあるユーザはこれを利用して利益を得る可能性があります。 +- `Paths`フィールドを省略します。このフィールドは、発行元から直接送信する場合や、送信するトークンと受信するトークンの通貨コードと発行元が同じである限り、つまり同じステーブルコインである限り、ホットウォレットから設定する必要はありません。`Paths`フィールドは[クロスカレンシー支払い](cross-currency-payments.md)やより長いマルチホップ(rippling)支払いを対象としています。単純に経路探索を行い、トランザクションにパスを設定すると、直接の経路が利用できない場合、支払いは失敗するのではなく、より高価な遠回りのパスを取るかもしれません。悪意のあるユーザはこれを利用して利益を得る可能性があります。 - `tecPATH_DRY`の結果コードが表示された場合、通常、必要なトラストラインを顧客がまだ設定していないか、発行者のripplingが正しく設定されていないことを意味します -XRP Ledger上でステーブルコインやその他のトークンを発行するための詳しいチュートリアルは、[代替可能トークンの発行](issue-a-fungible-token.html)をご覧ください。 +XRP Ledger上でステーブルコインやその他のトークンを発行するための詳しいチュートリアルは、[代替可能トークンの発行](../../tutorials/use-tokens/issue-a-fungible-token.md)をご覧ください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/decentralized-exchange/autobridging.md b/content/@i18n/ja/concepts/tokens/decentralized-exchange/autobridging.md index 91550fbb38..e12d71ec7d 100644 --- a/content/@i18n/ja/concepts/tokens/decentralized-exchange/autobridging.md +++ b/content/@i18n/ja/concepts/tokens/decentralized-exchange/autobridging.md @@ -8,22 +8,18 @@ labels: --- # オートブリッジング -XRP Ledgerの[分散型取引所](decentralized-exchange.html)で、XRP以外の2種類の通貨を交換する[オファー](offers.html)があった場合、合成されたオーダーブックで[XRP](what-is-xrp.html)が中間通貨として使用されることがあります。これは _オートブリッジング_ によるものです。この機能は、通貨を直接交換するよりも安く済む場合にXRPを使用し、あらゆる通貨ペアの流動性を向上させる役割を担います。XRP Ledgerのネイティブ暗号資産であるというXRPの特性によりこのように機能します。オファーを実行する際は、直接オファーとオートブリッジングオファーを組み合わせることで全体として最良の為替レートを実現できます。 +XRP Ledgerの[分散型取引所](index.md)で、XRP以外の2種類の通貨を交換する[オファー](offers.md)があった場合、合成されたオーダーブックで[XRP](../../../introduction/what-is-xrp.md)が中間通貨として使用されることがあります。これは _オートブリッジング_ によるものです。この機能は、通貨を直接交換するよりも安く済む場合にXRPを使用し、あらゆる通貨ペアの流動性を向上させる役割を担います。XRP Ledgerのネイティブ暗号資産であるというXRPの特性によりこのように機能します。オファーを実行する際は、直接オファーとオートブリッジングオファーを組み合わせることで全体として最良の為替レートを実現できます。 例: _AnitaはGBPを売却してBRLを購入するオファーを発行しました。このような一般的ではない通貨マーケットでは、オファーがあまりない場合があります。良いレートのオファーが1件ありますが、Anitaの取引を満たすのに十分な量ではありません。ただしGBPとXRPおよびBRLとXRPの間には、それぞれアクティブで競争力のあるマーケットが存在します。XRP Ledgerのオートブリッジングシステムは、あるトレーダーからXRPをGBPで購入し、そのXRPを別のトレーダーに支払ってBRLを購入することで、Anitaのオファーを履行できる方法を見つけます。AnitaはGBPとBRLを直接交換するマーケットでの少額オファーを、GBP対XRPのオファーとXRP対BRLのオファーをペアリングしてより良い複合レートと組み合わせて、最適なレートを自動的に得ることができます。_ -オートブリッジングは、あらゆる[OfferCreateトランザクション][]で自動的に行われます。[Paymentトランザクション](payment.html)ではオートブリッジングはデフォルトでは _行われません_ が、path-findingにより同様の効果のある[パス](paths.html)を検索できます。 +オートブリッジングは、あらゆる[OfferCreateトランザクション][]で自動的に行われます。[Paymentトランザクション](../../../references/protocol/transactions/types/payment.md)ではオートブリッジングはデフォルトでは _行われません_ が、path-findingにより同様の効果のある[パス](../fungible-tokens/paths.md)を検索できます。 ## 関連項目 - [Dev Blog: Introducing Autobridging](https://xrpl.org/blog/2014/introducing-offer-autobridging.html) -- [オファーの優先度](offers.html#オファーの優先度) +- [オファーの優先度](offers.md#オファーの優先度) -- [ペイメントパス](paths.html) +- [ペイメントパス](../fungible-tokens/paths.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/decentralized-exchange/automated-market-makers.md b/content/@i18n/ja/concepts/tokens/decentralized-exchange/automated-market-makers.md index 26b8b5e75c..18fedaa0c9 100644 --- a/content/@i18n/ja/concepts/tokens/decentralized-exchange/automated-market-makers.md +++ b/content/@i18n/ja/concepts/tokens/decentralized-exchange/automated-market-makers.md @@ -9,7 +9,7 @@ labels: - AMM --- # 自動マーケットメーカー -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ 自動マーケットメーカー(AMM)は、XRP Ledgerの分散型取引所において流動性を提供するスマートコントラクトです。個々のAMMは2つの資産のプールを保有し、数式で定められた取引レートでユーザーがその2つの資産間でスワップを可能とします。 @@ -23,9 +23,9 @@ _([AMM amendment][] :not_enabled:が必要です。)_ ## AMMの仕組み -AMMは2つの異なる資産を保有します。このうち最大でも片方がXRPであり、もう片方または両方は[トークン](tokens.html)となります。この場合、発行者の異なるトークンは異なる資産とみなされます。つまり、通貨コードは同じだが発行者が異なる2つのトークン(「WayGateが発行したFOO」と「StableFooが発行したFOO」は異なる)や、発行者は同じだが通貨コードが異なるトークンに対してAMMが存在する可能性があるということです。また、順番は関係なく、FOO.WayGateからXRPへのAMMは、XRPからFOO.WayGateへのAMMと同一になります。 +AMMは2つの異なる資産を保有します。このうち最大でも片方がXRPであり、もう片方または両方は[トークン](../index.md)となります。この場合、発行者の異なるトークンは異なる資産とみなされます。つまり、通貨コードは同じだが発行者が異なる2つのトークン(「WayGateが発行したFOO」と「StableFooが発行したFOO」は異なる)や、発行者は同じだが通貨コードが異なるトークンに対してAMMが存在する可能性があるということです。また、順番は関係なく、FOO.WayGateからXRPへのAMMは、XRPからFOO.WayGateへのAMMと同一になります。 -ユーザーが分散型取引所で取引を行う場合、[オファー](offers.html)と[クロスカレンシー決済](cross-currency-payments.html)は自動的にAMMを使用してトランザクションを成立させることが出来ます。トランザクションは低コストで取引を行えるように、オファー、AMM、またはその両方の組み合わせで実行されます。 +ユーザーが分散型取引所で取引を行う場合、[オファー](offers.md)と[クロスカレンシー決済](../../payment-types/cross-currency-payments.md)は自動的にAMMを使用してトランザクションを成立させることが出来ます。トランザクションは低コストで取引を行えるように、オファー、AMM、またはその両方の組み合わせで実行されます。 AMMは、プール内の資産残高に基づき取引レートを設定します。AMMに対して取引を行うと、AMMが保有する資産残高の変動に応じて、取引レートが調整されます。一方の資産の量が減れば、その資産の価格が上がり、他方の資産の量が増えれば、その資産の価格が下がります。AMMは、プール内の残高が多いほど、一般的により良い取引レートを提供します。同一取引であればプール内の残高が大きい方がAMMの資産バランスに生じる変化は小さくなるからです。AMMの2つの資産のバランスが崩れれば崩れるほど、交換レートは極端に悪化します。 @@ -38,8 +38,8 @@ XRP Ledgerの実装は、重みパラメータを0.5とした _幾何平均_ AMM 不正利用を防ぐため、AMMで利用できる資産にはいくつかの制限があります。これらの制約を満たさない資産でAMMを作成しようとすると、トランザクションは失敗します。ルールは以下のとおりです。 - 他のAMMのLPTokenをAMMの資産として利用することはできません。 -- 資産が、発行者が[認可トラストライン](authorized-trust-lines.html)を使用しているトークンである場合、AMMの作成者はそれらのトークンを保有する権限がなければなりません。トラストラインが認可されているユーザだけが、そのトークンをAMMに預けたり引き出したりすることができます。 -- [Clawback Amendment][] :not_enabled: が有効な場合、Clawbackが有効なトークンでAMMを作成することはできません。 +- 資産が、発行者が[認可トラストライン](../fungible-tokens/authorized-trust-lines.md)を使用しているトークンである場合、AMMの作成者はそれらのトークンを保有する権限がなければなりません。トラストラインが認可されているユーザだけが、そのトークンをAMMに預けたり引き出したりすることができます。 +- [Clawback Amendment][] {% not-enabled /%} が有効な場合、Clawbackが有効なトークンでAMMを作成することはできません。 ## LPトークン @@ -49,13 +49,13 @@ AMMの作成者は、最初の流動性供給者となり、AMMのプール内 誰でも既存のAMMに資産を預けることができます。預け入れると、その金額に応じて新しいLPトークンを受け取ります。流動性供給者がAMMから引き出すことができる金額は、発行済みのLPトークンの総数に対する流動性提供者のLPトークンの保有割合に基づきます。 -LPトークンはXRP Ledgerの他のトークンと同様に、様々な[種類の支払い](payment-types.html)で使用したり、分散型取引所で取引したり、新しいAMMの資産として預けることも可能です。(LPトークンを支払い(Payment)として受け取るには、AMMアカウントを発行元として、限度額が0でない[トラストライン](trust-lines-and-issuing.html)を設定する必要があります)。ただし、LPトークンをAMMに直接送る(換金する)には[AMMWithdraw][]トランザクションタイプを使用し、他のタイプの支払いは使用できません。同様に、AMMのプールに資産を送るには、[AMMDeposit][]トランザクションタイプを使用する必要があります。 +LPトークンはXRP Ledgerの他のトークンと同様に、様々な[種類の支払い](../../payment-types/index.md)で使用したり、分散型取引所で取引したり、新しいAMMの資産として預けることも可能です。(LPトークンを支払い(Payment)として受け取るには、AMMアカウントを発行元として、限度額が0でない[トラストライン](../fungible-tokens/index.md)を設定する必要があります)。ただし、LPトークンをAMMに直接送る(換金する)には[AMMWithdraw][]トランザクションタイプを使用し、他のタイプの支払いは使用できません。同様に、AMMのプールに資産を送るには、[AMMDeposit][]トランザクションタイプを使用する必要があります。 AMMは、発行済のLPトークンがない場合に限り、AMMの資産プールが空になるように設計されています。こうした状況は、[AMMWithdraw][]トランザクションの結果としてのみ発生し、発生した時点でAMMは自動的に削除されます。 ### LPトークンの通貨コード -LPトークンは、160ビットの16進法["非標準"フォーマット](currency-formats.html#非標準通貨コード)の特別なタイプの通貨コードを使用します。これらのコードの最初の8ビットは`0x03`です。残りのコードは、2つの資産の通貨コードとその発行者のSHA-512ハッシュで、最初の152ビットまで切り捨てたものです。(資産は、数値の低い通貨と発行者のペアを最初にする「正規化された順序」で配置されます。)その結果、LPトークンは、通貨と発行者のペアを最初にする「正規化された順序」で配置されます。その結果、ある資産ペアのAMMのLPトークンは、予測可能で一貫した通貨コードを持っています。 +LPトークンは、160ビットの16進法["非標準"フォーマット](../../../references/protocol/data-types/currency-formats.md#非標準通貨コード)の特別なタイプの通貨コードを使用します。これらのコードの最初の8ビットは`0x03`です。残りのコードは、2つの資産の通貨コードとその発行者のSHA-512ハッシュで、最初の152ビットまで切り捨てたものです。(資産は、数値の低い通貨と発行者のペアを最初にする「正規化された順序」で配置されます。)その結果、LPトークンは、通貨と発行者のペアを最初にする「正規化された順序」で配置されます。その結果、ある資産ペアのAMMのLPトークンは、予測可能で一貫した通貨コードを持っています。 ## 取引手数料 @@ -64,7 +64,7 @@ LPトークンは、160ビットの16進法["非標準"フォーマット](curre 流動性供給者は、投票によって取引手数料を0%から1%まで、0.001%刻みで設定することが出来ます。流動性供給者は取引手数料を適切に設定するインセンティブがあり、手数料が高すぎる場合、トレーダーはより良いレートを得るために代わりにオーダーブックを使用することになります。手数料が低すぎる場合、流動性供給者はこのプールへの貢献に対してメリットが得られなくなります。AMMの各流動性供給者は、その保有するLPトークンの量に比例して、取引手数料への投票権を有します。 -投票するには、流動性供給者が[AMMVoteトランザクション][]を送信します。誰かが新しい票を入れるたびに、AMMは手数料を再計算し、直近の票の平均を、それらの投票者が保有するLPトークンの数で重み付けしたものにします。この方法では、最大8つの流動性供給者の投票がカウントされます。それ以上の流動性供給者が投票しようとすると、上位8つの投票(保有LPトークンの多い順)だけがカウントされます。流動性供給者のLPトークンのシェアは、様々な理由(例えば[オファー](offers.html)を使ったトークンの取引)で急速に変化しますが、取引手数料は誰かが新しい票を入れるたびに再計算されます(その票がトップ8に入っていない場合でも計算されます)。 +投票するには、流動性供給者が[AMMVoteトランザクション][]を送信します。誰かが新しい票を入れるたびに、AMMは手数料を再計算し、直近の票の平均を、それらの投票者が保有するLPトークンの数で重み付けしたものにします。この方法では、最大8つの流動性供給者の投票がカウントされます。それ以上の流動性供給者が投票しようとすると、上位8つの投票(保有LPトークンの多い順)だけがカウントされます。流動性供給者のLPトークンのシェアは、様々な理由(例えば[オファー](offers.md)を使ったトークンの取引)で急速に変化しますが、取引手数料は誰かが新しい票を入れるたびに再計算されます(その票がトップ8に入っていない場合でも計算されます)。 ### オークションスロット @@ -75,7 +75,7 @@ LPトークンは、160ビットの16進法["非標準"フォーマット](curre ## 台帳上の表示 -台帳の状態データでは、AMMは複数の[レジャーエントリのタイプ](ledger-object-types.html)で構成されています。 +台帳の状態データでは、AMMは複数の[レジャーエントリのタイプ](../../../references/protocol/ledger-data/ledger-entry-types/index.md)で構成されています。 - 自動マーケットメーカー自体を記述した[AMMエントリ][] @@ -83,9 +83,9 @@ LPトークンは、160ビットの16進法["非標準"フォーマット](curre このAccountRootのアドレスは、AMMの作成時にランダムに選ばれ、AMMを削除して再作成した場合にも異なるアドレスが選ばれます。これは、AMMのアカウントにユーザーが事前にXRPで資金を供給することを防止するためです。 -- AMMのプールにあるトークンのAMM専用アカウントへの[トラストライン](trust-lines-and-issuing.html) +- AMMのプールにあるトークンのAMM専用アカウントへの[トラストライン](../fungible-tokens/index.md) -これらのレジャーエントリはどのアカウントにも所有されていないため、[準備金要件](reserves.html)は適用されません。ただし、スパムを防ぐため、AMMを作成するための取引には特別な[トランザクションコスト](transaction-cost.html)があり、通常よりも多くのXRPを消費する必要があります。 +これらのレジャーエントリはどのアカウントにも所有されていないため、[準備金要件](../../accounts/reserves.md)は適用されません。ただし、スパムを防ぐため、AMMを作成するための取引には特別な[トランザクションコスト](../../transactions/transaction-cost.md)があり、通常よりも多くのXRPを消費する必要があります。 ## 削除 @@ -99,11 +99,8 @@ AMMは、[AMMWithdrawトランザクション][]がそのプールから全て AMMアカウントが削除されるときに、512を超えるトラストラインが設定されていた場合、出金は成功し、可能な限り多くのトラストラインを削除します。 -AMMのプールに資産がない間は、誰でも[AMMDeleteトランザクション][]を送信してAMMを削除することができます。別の方法として、誰でも[特別な入金](ammdeposit.html#空のammの場合の特殊なケース)を行うことで、AMMにあたかも新規であるかのように入金することができます。資産プールが空のAMMに対しては、他の操作は無効です。 +AMMのプールに資産がない間は、誰でも[AMMDeleteトランザクション][]を送信してAMMを削除することができます。別の方法として、誰でも[特別な入金](../../../references/protocol/transactions/types/ammdeposit.md#空のammの場合の特殊なケース)を行うことで、AMMにあたかも新規であるかのように入金することができます。資産プールが空のAMMに対しては、他の操作は無効です。 空のAMMを削除することによる払い戻しやインセンティブはありません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/decentralized-exchange/index.md b/content/@i18n/ja/concepts/tokens/decentralized-exchange/index.md index 709fd2161a..496010bca3 100644 --- a/content/@i18n/ja/concepts/tokens/decentralized-exchange/index.md +++ b/content/@i18n/ja/concepts/tokens/decentralized-exchange/index.md @@ -1,44 +1,45 @@ --- html: decentralized-exchange.html parent: tokens.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: XRP Ledgerには多機能な取引所が含まれており、この取引所を利用してユーザーはトークンをXRPに、あるいはXRPをトークンにに交換できます。 --- # 分散型取引所 -XRP Ledgerには、世界でおそらく最も古い _分散型取引所_ (「DEX」と略されることもあります)があり、2012年のXRP Ledgerのローンチ以来、現在まで稼働し続けています。この取引所では、ユーザーが[トークン](tokens.html)をXRPや他のトークンと売買することができ、ネットワーク自体に課される[手数料](fees.html)はごく僅かです。(いかなる当事者にも支払われることはありません) +XRP Ledgerには、世界でおそらく最も古い _分散型取引所_ (「DEX」と略されることもあります)があり、2012年のXRP Ledgerのローンチ以来、現在まで稼働し続けています。この取引所では、ユーザーが[トークン](../index.md)をXRPや他のトークンと売買することができ、ネットワーク自体に課される[手数料](../../transactions/fees.md)はごく僅かです。(いかなる当事者にも支払われることはありません) -**注意:** 誰でも好きな通貨コードやティッカーシンボルで[トークンを発行](issue-a-fungible-token.html)して、分散型取引所で販売することができます。トークンを購入する前に必ずデューデリジェンスを行い、発行者に注意を払うようにしてください。さもなければ、価値あるものを手放し、それと引き換えに価値のないトークンを受け取ることになるかもしれません。 +**注意:** 誰でも好きな通貨コードやティッカーシンボルで[トークンを発行](../../../tutorials/use-tokens/issue-a-fungible-token.md)して、分散型取引所で販売することができます。トークンを購入する前に必ずデューデリジェンスを行い、発行者に注意を払うようにしてください。さもなければ、価値あるものを手放し、それと引き換えに価値のないトークンを受け取ることになるかもしれません。 ## 構造 XRP Ledgerの分散型取引所は、無制限の通貨ペアで構成されており、ユーザーが取引を行う際にオンデマンドで追跡されます。通貨ペアは、XRPとトークン、または2つの異なるトークンから構成されます。トークンは常に、発行者と通貨コードの組み合わせによって識別されます。同じ通貨コードで異なる発行者のトークン同士、または同じ発行者で異なる通貨コードのトークン同士の取引も可能です。 -XRP Ledgerのすべての変更がそうであるように、取引を行うには[トランザクション](transactions.html)を送信する必要があります。XRP Ledgerにおける取引は、[オファー](offers.html)と呼ばれています。オファーは事実上、ある通貨(XRPまたはトークン)を特定の金額で他の通貨と売買するための[_指値注文_](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%9F%E3%83%83%E3%83%88%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC)です。ネットワークがオファーを実行する際、同じ通貨ペアでマッチングするオファーがあれば、最も良い取引レートから順に約定されます。 +XRP Ledgerのすべての変更がそうであるように、取引を行うには[トランザクション](../../transactions/index.md)を送信する必要があります。XRP Ledgerにおける取引は、[オファー](offers.md)と呼ばれています。オファーは事実上、ある通貨(XRPまたはトークン)を特定の金額で他の通貨と売買するための[_指値注文_](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%9F%E3%83%83%E3%83%88%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC)です。ネットワークがオファーを実行する際、同じ通貨ペアでマッチングするオファーがあれば、最も良い取引レートから順に約定されます。 -オファーは、全額または一部が約定されることがあります。すぐに全額が約定されなかった場合は、残りの金額は台帳上のOfferオブジェクトとなります。その後、他のオファーや[クロスカレンシー支払い](cross-currency-payments.html)がオファーにマッチし、約定する可能性があります。このため、Offerは最初に注文したときは指定した取引レートよりも高いレートで約定し、後で注文したときは指定した取引レートと全く同じレートで約定することがあります。(端数処理のためのわずかな差は除きます) +オファーは、全額または一部が約定されることがあります。すぐに全額が約定されなかった場合は、残りの金額は台帳上のOfferオブジェクトとなります。その後、他のオファーや[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)がオファーにマッチし、約定する可能性があります。このため、Offerは最初に注文したときは指定した取引レートよりも高いレートで約定し、後で注文したときは指定した取引レートと全く同じレートで約定することがあります。(端数処理のためのわずかな差は除きます) -オファーは、発注後、手動または自動でキャンセルすることができます。この機能およびその他の機能については、[オファー](offers.html)を参照してください。 +オファーは、発注後、手動または自動でキャンセルすることができます。この機能およびその他の機能については、[オファー](offers.md)を参照してください。 -2つのトークンを取引する際、トークンとトークンを直接取引するよりも、トークンとXRP、XRPとトークンを取引した方が安くなる場合、[オートブリッジ](autobridging.html)によって自動的に取引レートと流動性を向上させることができます。 +2つのトークンを取引する際、トークンとトークンを直接取引するよりも、トークンとXRP、XRPとトークンを取引した方が安くなる場合、[オートブリッジ](autobridging.md)によって自動的に取引レートと流動性を向上させることができます。 ### 取引の例 -{{ include_svg("img/decentralized-exchange-example-trade.svg", "図: XRPでトークンを購入する注文が一部約定する。") }} +[{% inline-svg file="/img/decentralized-exchange-example-trade.svg" /%}](/img/decentralized-exchange-example-trade.svg "図: XRPでトークンを購入する注文が一部約定する。") 上の図は、分散型取引所での取引例です。この例では、Tranというトレーダーが、WayGateという架空の企業が発行するFOOという通貨コードのトークン100個の購入オファーを出しています。(簡潔にするため、「FOO.WayGate」はこれらのトークンを指します。)Tranは、合計で最大1000XRPまで支払う意思があることを明記しています。Tranのトランザクションが処理されると、次のようなことが起こります。 1. ネットワークは、購入する通貨額を支払う通貨額で割ることによって、TranのOfferの取引レートを計算します。 0. このオーダーブックには、金額や取引レートが異なる他のトレーダーからのオファーがすでに複数存在します。このケースでは、FOO.WayGateの売りとXRPの買いのオーダーブックを意味します。 0. Tranのオファーが全額約定するか、Tranのオファーは、Tranのオファーで指定されたレートと同等以上の取引レートのオファーがなくなるまで、最良の取引レートから順に、オファーを約定していきます。この例では、22 FOO.WayGateのみが指定されたレート以上で取引可能です。約定したオファーはオーダーブックから削除されます。 -0. Tranは、この取引で調達できたFOO.WayGateの量を、それまで売り注文を出していた様々なトレーダーから受け取ります。これらのトークンはWayGateのFOOに対するTranの[トラストライン](trust-lines-and-issuing.html)に送られます。(Tranがまだトラストラインを持っていなかった場合、自動的に作成されます。) +0. Tranは、この取引で調達できたFOO.WayGateの量を、それまで売り注文を出していた様々なトレーダーから受け取ります。これらのトークンはWayGateのFOOに対するTranの[トラストライン](../fungible-tokens/index.md)に送られます。(Tranがまだトラストラインを持っていなかった場合、自動的に作成されます。) 0. その見返りとして、それらのトレーダーは、提示された取引レートに従って、TranからXRPを受け取ります。 0. ネットワークはTranのオファーの残りを計算します。元々のオファーが100 FOO.WayGateの購入で、これまでTranは22を受け取っているので、残りは78 FOO.WayGateとなります。元の取引レートを使用すると、Tranのオファーの残りは780 XRPで78 FOO.WayGateを購入することになります。 0. この「残り」は、Tranの取引と同じ向きの取引、つまりXRPの売りとFOO.WayGateの買いのオーダーブックに載せられます。 同じ台帳でTranの直後に実行されたものも含め、その後の取引は更新されたオーダーブックを使って行われるため、Tranのオファーが全額約定するかTranがキャンセルするまで、その一部または全額を約定することができます。 -**注記:** 元帳がクローズされ、検証される際の取引の実行順序は、取引が送信された順序と同じではありません。複数のトランザクションが同じ台帳の同じオーダーブックに影響を与える場合、それらのトランザクションの最終結果は、トランザクション送信時に計算された暫定的な結果とは大きく異なる可能性があります。取引結果が確定する場合、確定しない場合の詳細については、[結果のファイナリティー](finality-of-results.html)をご覧ください。 +**注記:** 元帳がクローズされ、検証される際の取引の実行順序は、取引が送信された順序と同じではありません。複数のトランザクションが同じ台帳の同じオーダーブックに影響を与える場合、それらのトランザクションの最終結果は、トランザクション送信時に計算された暫定的な結果とは大きく異なる可能性があります。取引結果が確定する場合、確定しない場合の詳細については、[結果のファイナリティー](../../transactions/finality-of-results/index.md)をご覧ください。 ## 制限事項 @@ -49,13 +50,13 @@ XRP Ledgerのすべての変更がそうであるように、取引を行うに XRP Ledgerは、成行注文、指値注文、レバレッジ取引などの概念をネイティブに表現するものではありません。カスタムトークンやOfferのプロパティをクリエイティブに利用することで、いくつかは実現できるかもしれません。 -分散型システムであるXRP Ledgerは、取引に関わる[アカウント](accounts.html)の背後にいる実際の人々や組織に関する情報を一切持っていません。また、ユーザーや発行者は、様々な種類の裏付け資産を表すトークンの取引を規制するために、関連する法律に従う必要があります。[凍結](freezes.html)や[認可トラストライン](authorized-trust-lines.html)などの機能は、発行者が関連法規を順守できるよう意図しています。 +分散型システムであるXRP Ledgerは、取引に関わる[アカウント](../../accounts/accounts.md)の背後にいる実際の人々や組織に関する情報を一切持っていません。また、ユーザーや発行者は、様々な種類の裏付け資産を表すトークンの取引を規制するために、関連する法律に従う必要があります。[凍結](../fungible-tokens/freezes.md)や[認可トラストライン](../fungible-tokens/authorized-trust-lines.md)などの機能は、発行者が関連法規を順守できるよう意図しています。 ## 関連項目 - **コンセプト:** - - [Offers](offers.html): XRP Ledgerでのトレードの仕組みについて - - [トークン](tokens.html): XRP Ledgerで様々な種類の価値を表現する方法の概要について + - [Offers](offers.md): XRP Ledgerでのトレードの仕組みについて + - [トークン](../index.md): XRP Ledgerで様々な種類の価値を表現する方法の概要について - **リファレンス:** - [account_offersメソッド][]: アカウントから注文されたオファーを検索 - [book_offersメソッド][]: 指定された通貨ペアの売買のオファーを検索 @@ -64,7 +65,7 @@ XRP Ledgerは、成行注文、指値注文、レバレッジ取引などの概 - [Offerオブジェクト][] 台帳のオファーのデータ構造 - [DirectoryNodeオブジェクト][]: 特定の通貨ペアと取引レートのすべてのオファーを追跡するデータ構造 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} + + +{% child-pages /%} diff --git a/content/@i18n/ja/concepts/tokens/decentralized-exchange/offers.md b/content/@i18n/ja/concepts/tokens/decentralized-exchange/offers.md index 0f36fdfdfe..b98df9a1f4 100644 --- a/content/@i18n/ja/concepts/tokens/decentralized-exchange/offers.md +++ b/content/@i18n/ja/concepts/tokens/decentralized-exchange/offers.md @@ -7,11 +7,11 @@ labels: --- # オファー -XRP Ledgerの[分散型取引所](decentralized-exchange.html)では、通貨の取引注文は「オファー」と呼ばれます。オファーはXRPと[トークン](tokens.html)の取引、またはトークン間の取引(同一通貨コードだが発行者が異なるトークンを含む)を行うことができます。(同一通貨コードで発行者が異なる通貨は、[rippling](rippling.html)によって取引することもできます。) +XRP Ledgerの[分散型取引所](index.md)では、通貨の取引注文は「オファー」と呼ばれます。オファーはXRPと[トークン](../index.md)の取引、またはトークン間の取引(同一通貨コードだが発行者が異なるトークンを含む)を行うことができます。(同一通貨コードで発行者が異なる通貨は、[rippling](../fungible-tokens/rippling.md)によって取引することもできます。) - オファーを作成するには、[OfferCreateトランザクション][]を送信します。 -- 即時に約定されないオファーはレジャーデータの[Offerオブジェクト](offer.html)になります。その後のオファーとPaymentにより、レジャーのOfferオブジェクトは約定されます。 -- [クロスカレンシー支払い](cross-currency-payments.html)はオファーを約定して流動性を提供します。 +- 即時に約定されないオファーはレジャーデータの[Offerオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/offer.md)になります。その後のオファーとPaymentにより、レジャーのOfferオブジェクトは約定されます。 +- [クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)はオファーを約定して流動性を提供します。 ## オファーのライフサイクル @@ -20,7 +20,7 @@ XRP Ledgerの[分散型取引所](decentralized-exchange.html)では、通貨の Offerオブジェクトは、他のオファーやクロスカレンシー決済で完全に約定されるまで、台帳に保存されます。オファーを作成したアカウントは、そのオファーの所有者と呼ばれます。自分が作成したオファーは、専用の[OfferCancelトランザクション][]、または[OfferCreateトランザクション][]のオプションとして、いつでもキャンセルすることが可能です。 -台帳にOfferオブジェクトがある間は、あなたのXRPの一部が[所有者準備金](reserves.html)として設定されます。何らかの理由でOfferオブジェクトが削除されると、そのXRPは再び使えるようになります。 +台帳にOfferオブジェクトがある間は、あなたのXRPの一部が[所有者準備金](../../accounts/reserves.md)として設定されます。何らかの理由でOfferオブジェクトが削除されると、そのXRPは再び使えるようになります。 ### 必要となる資金 @@ -35,7 +35,7 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 ただし、オファーで指定された全額を保有する必要はありません。オファーを作成することで資金が拘束されるわけではないので、同じトークン(またはXRP)を売却するために複数のオファーを作成したり、オファーを作成した後で十分なトークンまたはXRPを調達することも可能です。 -**XRPを売却する** には、Offerオブジェクトを台帳に保存するための準備金と、購入するトークンを保存するためのトラストラインの準備金を含む、必要な[準備金](reserves.html)を確保する必要があります。準備金を確保した後にXRPが残っていれば、Offerオブジェクトを作成することができます。 +**XRPを売却する** には、Offerオブジェクトを台帳に保存するための準備金と、購入するトークンを保存するためのトラストラインの準備金を含む、必要な[準備金](../../accounts/reserves.md)を確保する必要があります。準備金を確保した後にXRPが残っていれば、Offerオブジェクトを作成することができます。 他のオファーと自身のオファーがマッチした場合、両方のオファーが、その時点における所有者の資金の範囲内で実行されます。マッチングしたオファーがあり、自分のオファーが完全に約定される前に資金が尽きてしまった場合、残りのオファーはキャンセルされます。トークンの発行者でない限り、オファーによってトークンの残高がマイナスになることはありません。(発行者であれば、オファーを使って、オファーで指定された合計金額まで新しいトークンを発行できます。発行したトークンは、発行者の立場からはマイナス残高として表示されます)。 @@ -45,16 +45,16 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 - 所有者が売却する資産を一切保有しなくなった場合。 - オーナーがその資産を再度取得すると、オファーに資金が供給されるようになります。 -- 売却する資産が[凍結されたトラストライン](freezes.html)に含まれるトークンである場合。 +- 売却する資産が[凍結されたトラストライン](../fungible-tokens/freezes.md)に含まれるトークンである場合。 - トラストラインが凍結解除されると、オファーは再び資金が供給されるようになります。 -- オファーが新しいトラストラインを作成する必要があるが、オーナーがその[準備金](reserves.html)の増加に伴う十分なXRPを持っていない場合。 +- オファーが新しいトラストラインを作成する必要があるが、オーナーがその[準備金](../../accounts/reserves.md)の増加に伴う十分なXRPを持っていない場合。 - オーナーが追加のXRPを調達するか、準備金の必要量が減少すると、オファーは自動的に使用可能になります。 - オファーが失効した場合。([オファーの有効期限](#オファーの有効期限)を参照) 資金不足のOfferオブジェクトは、トランザクションによって削除されるまで、台帳に残ります。台帳からOfferオブジェクトを削除するには、以下の方法があります。 -- 約定するオファーまたは[クロスカレンシー支払い](cross-currency-payments.html)によってオファーが全額約定される。 +- 約定するオファーまたは[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)によってオファーが全額約定される。 - 所有者が明示的にオファーをキャンセルする。 - 所有者が交差する新しいオファーを作成することにより、暗黙のうちにオファーをキャンセルする。 - トランザクション処理中にオファーが資金不足または期限切れであることが判明する。 @@ -64,14 +64,14 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 すべてのオファーの資金状況の追跡は、コンピューターにとって負荷の高い処理となることがあります。特に積極的に取引しているアドレスでは大量のオファーがオープンです。1つの残高が、さまざまな通貨を購入する多数のオファーの資金状況に影響することがあります。このため、XRP Ledgerでは資金不足や期限切れのオファーの検出と削除を _積極的には_ 行なっていません。 -クライアントアプリケーションでオファーの資金化の状況をローカルで追跡できます。このためには、最初に[book_offersメソッド][]を使用してオーダーブックを取得し、次にオファーの`taker_gets_funded`フィールドを調べます。次に`transactions`ストリームを[サブスクライブ](subscribe.html)し、トランザクションメタデータを監視してどのオファーが変更されるかを確認します。 +クライアントアプリケーションでオファーの資金化の状況をローカルで追跡できます。このためには、最初に[book_offersメソッド][]を使用してオーダーブックを取得し、次にオファーの`taker_gets_funded`フィールドを調べます。次に`transactions`ストリームを[サブスクライブ](../../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md)し、トランザクションメタデータを監視してどのオファーが変更されるかを確認します。 ## オファーとトラスト -トラストラインの限度額([TrustSet](trustset.html)を参照)はオファーに影響しません。つまり、オファーを使用して、発行者に対して設定したトラストラインの限度額を上回る額を取得できます。 +トラストラインの限度額([TrustSet](../../../references/protocol/transactions/types/trustset.md)を参照)はオファーに影響しません。つまり、オファーを使用して、発行者に対して設定したトラストラインの限度額を上回る額を取得できます。 -ただし、トークンを保有するには、それらの残高を発行するアドレスへのトラストラインが必要です。オファーが約定されると、必要なトラストラインが自動的に作成され、その限度額が0に設定されます。[アカウントが保有する必要のある準備金はトラストラインによって増加する](reserves.html)ため、新しいトラストラインを必要とするオファーがある場合、アカウントはそのトラストラインの準備金として十分なXRPを保有している必要があります。 +ただし、トークンを保有するには、それらの残高を発行するアドレスへのトラストラインが必要です。オファーが約定されると、必要なトラストラインが自動的に作成され、その限度額が0に設定されます。[アカウントが保有する必要のある準備金はトラストラインによって増加する](../../accounts/reserves.md)ため、新しいトラストラインを必要とするオファーがある場合、アカウントはそのトラストラインの準備金として十分なXRPを保有している必要があります。 トラストラインの制限は、あなたの希望以上のトークンを受け取ることを防ぐためのものです。オファーとは、トークンをどれだけ欲しいかを明示的に示すものであるため、この制限を超えることができます。 @@ -89,25 +89,20 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 有効期限は秒単位で指定できますが、オファーが期限切れとなる時刻は、実際には正確ではありません。オファーが期限切れとなるのは、期限切れ時刻が直前の台帳のクローズ時刻より前か等しい場合です。それ以外の場合は、現実の時刻がオファー期限よりも後でも、オファーが約定する可能性があります。言い換えると、有効期限が最新の有効な台帳のクローズ時刻よりも遅ければ、実際の時計がどうであろうと、オファーはまだ「有効」なのです。 -これは、ネットワークのコンセンサス形成の仕組みによるものです。ピアツーピアネットワーク全体が合意に達するには、トランザクションを実行する際に、すべてのサーバーがどのオファーが期限切れであるかに合意する必要があります。個々のサーバーはシステム時刻の設定にわずかな違いがあるため、各サーバーが「現在」時刻を使用した場合、どのオファーが期限切れであるかについて同じ結論に達しない可能性があります。台帳のクローズ時刻は、その台帳のトランザクションが実行されるまで分からないため、サーバーは「前の台帳」の正式なクローズ時刻を代わりに使用します。[台帳のクローズ時刻は丸められます](ledger-close-times.html)。このため、オファーが期限切れかどうかを判断するための時刻と実世界の時刻の差が生じる場合があるのです。 +これは、ネットワークのコンセンサス形成の仕組みによるものです。ピアツーピアネットワーク全体が合意に達するには、トランザクションを実行する際に、すべてのサーバーがどのオファーが期限切れであるかに合意する必要があります。個々のサーバーはシステム時刻の設定にわずかな違いがあるため、各サーバーが「現在」時刻を使用した場合、どのオファーが期限切れであるかについて同じ結論に達しない可能性があります。台帳のクローズ時刻は、その台帳のトランザクションが実行されるまで分からないため、サーバーは「前の台帳」の正式なクローズ時刻を代わりに使用します。[台帳のクローズ時刻は丸められます](../../ledgers/ledger-close-times.md)。このため、オファーが期限切れかどうかを判断するための時刻と実世界の時刻の差が生じる場合があるのです。 **注記:** 期限切れのOfferオブジェクトは、トランザクションによって削除されるまで、台帳内に残ります。それまでは、APIから取得したデータ([ledger_entryメソッド][]などを使用)に表示され続ける可能性があります。トランザクションは、有効期限が切れたOfferオブジェクトや資金不足のOfferオブジェクトを見つけると自動的に削除します。通常、オファーやクロスカレンシー決済を実行すると、そのOfferオブジェクトはマッチングまたはキャンセルされます。Offerオブジェクトに対応する所有者準備金は、Offerオブジェクトが実際に削除されたときにのみ再び利用可能になります。 ## 関連項目 - **コンセプト:** - - [トークン](tokens.html) - - [パス](paths.html) + - [トークン](../index.md) + - [パス](../fungible-tokens/paths.md) - **リファレンス:** - [account_offersメソッド][] - [book_offersメソッド][] - [OfferCreateトランザクション][] - [OfferCancelトランザクション][] - - [Offerオブジェクト](offer.html) + - [Offerオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/decentralized-exchange/ticksize.md b/content/@i18n/ja/concepts/tokens/decentralized-exchange/ticksize.md index 575a5d5d0a..9617eb86f9 100644 --- a/content/@i18n/ja/concepts/tokens/decentralized-exchange/ticksize.md +++ b/content/@i18n/ja/concepts/tokens/decentralized-exchange/ticksize.md @@ -24,8 +24,4 @@ _([TickSize Amendment][]により追加されました。)_ - [AccountSetトランザクション][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/authorized-trust-lines.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/authorized-trust-lines.md index 04f0b1d933..5124d5627d 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/authorized-trust-lines.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/authorized-trust-lines.md @@ -12,7 +12,7 @@ XRP Ledgerの認可トラストライン機能により、発行者は、発行 認可トラストライン機能を使用するには、発行アドレスで**RequireAuth**フラグを有効にします。その後、他のアカウントは、あなたがそのアカウントのトラストラインをあなたの発行アカウントに承認した場合にのみ、あなたが発行したトークンを保持することができます。 -発行アドレスから[TrustSetトランザクション][]を送信し、自分のアカウントと認可するアカウントとの間のトラストラインを設定することで、トラストラインを認可することができます。トラストラインを認可した後、その認可を取り消すことはできません。(ただし、必要に応じてトラストラインを[凍結](freezes.html)することは可能です)。 +発行アドレスから[TrustSetトランザクション][]を送信し、自分のアカウントと認可するアカウントとの間のトラストラインを設定することで、トラストラインを認可することができます。トラストラインを認可した後、その認可を取り消すことはできません。(ただし、必要に応じてトラストラインを[凍結](freezes.md)することは可能です)。 トラストラインを認可するためのトランザクションは、発行アドレスの署名が必要であり、残念ながらそのアドレスのリスクエクスポージャーが増加することを意味します。 @@ -30,7 +30,7 @@ XRP Ledger上のステーブルコインと認可トラストラインの使用 **ヒント:** 2つのTrustSetトランザクション(ステップ3および4)は、どちらの順序で発生しても構いません。発行者がトラストラインを先に認可した場合、これにより限度額が0に設定されたトラストラインが作成され、顧客のTrustSetトランザクションは、事前に認可されたトラストラインの限度額を設定することになります。([TrustSetAuth amendment][]により追加されました。)_ ## 注意事項 -認可トラストラインを使用するつもりがない場合でも、[運用アカウントと予備アカウント](account-types.html)のRequire Auth設定を有効にし、これらのアカウントにトラストラインを認可させないようにすることができます。これは、これらのアカウントが誤ってトークンを発行することを防止します(たとえば、ユーザーが誤って間違ったアドレスをトラストしてしまった場合など)。これはあくまで予防措置であり、運用アカウントと予備アカウントが意図したとおりに _発行者の_ トークンを転送することを止めるものではありません。 +認可トラストラインを使用するつもりがない場合でも、[運用アカウントと予備アカウント](../../accounts/account-types.md)のRequire Auth設定を有効にし、これらのアカウントにトラストラインを認可させないようにすることができます。これは、これらのアカウントが誤ってトークンを発行することを防止します(たとえば、ユーザーが誤って間違ったアドレスをトラストしてしまった場合など)。これはあくまで予防措置であり、運用アカウントと予備アカウントが意図したとおりに _発行者の_ トークンを転送することを止めるものではありません。 ## 技術情報 @@ -60,12 +60,12 @@ POST http://localhost:5005/ } ``` -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} + ## アカウントのRequireAuthの有効化の確認 -アカウントのRequireAuth設定の有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](accountroot.html)と比較します。 +アカウントのRequireAuth設定の有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)と比較します。 `Flags`値と`lsfRequireAuth`フラグ値(`0x00040000`)のビット単位のANDの結果がゼロ以外の場合、アカウントではRequireAuthが有効になっています。結果がゼロの場合、アカウントではRequireAuthが無効になっています。 @@ -73,7 +73,7 @@ POST http://localhost:5005/ 認可トラストライン機能を使用している場合、他のアカウントからのトラストラインを認可しなければ、これらの他のアカウントはあなたが発行する残高を保有できません。複数のトークンを発行する場合には、各通貨のトラストラインを個別に認可する必要があります。 -トラストラインを認可するには、`LimitAmount`の`issuer`として信頼するユーザーを指定して、発行アドレスから[TrustSetトランザクション][]を送信します。`value`(信頼する額)を**0**のままにし、トランザクションの[tfSetfAuth](trustset.html#trustsetのフラグ)フラグを有効にします。 +トラストラインを認可するには、`LimitAmount`の`issuer`として信頼するユーザーを指定して、発行アドレスから[TrustSetトランザクション][]を送信します。`value`(信頼する額)を**0**のままにし、トランザクションの[tfSetfAuth](../../../references/protocol/transactions/types/trustset.md#trustsetのフラグ)フラグを有効にします。 以下は、ローカルでホストされている`rippled`の[submitメソッド][]を使用して、顧客アドレス`rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`がアドレス`rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW`で発行したUSDを持つことを認可するTrustSetトランザクションを送信する例です。 @@ -102,8 +102,8 @@ POST http://localhost:8088/ } ``` -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} + ## トラストラインの認可状況の確認 @@ -114,17 +114,14 @@ POST http://localhost:8088/ ## 関連項目 - **コンセプト:** - - [Deposit Authorization](depositauth.html) - - [トークンの凍結](freezes.html) + - [Deposit Authorization](../../accounts/depositauth.md) + - [トークンの凍結](freezes.md) - **リファレンス:** - [account_linesメソッド][] - [account_infoメソッド][] - [AccountSetトランザクション][] - [TrustSetトランザクション][] - - [AccountRootフラグ](accountroot.html#accountrootのフラグ) - - [RippleState (トラストライン) フラグ](ripplestate.html#ripplestateのフラグ) + - [AccountRootフラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) + - [RippleState (トラストライン) フラグ](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/clawing-back-tokens.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/clawing-back-tokens.md index 0a52480ec3..5be60ab664 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/clawing-back-tokens.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/clawing-back-tokens.md @@ -7,7 +7,7 @@ labels: --- # トークンの回収 -{% include '_snippets/clawback-disclaimer.ja.md' %} +{% partial file="/_snippets/clawback-disclaimer.md" /%} 規制上の目的から、トークンがアカウントに送信された後にトークンを回収する機能を必要とする発行者が存在します。例えば、トークンが違法行為で制裁を受けたアカウントに送られたことが発覚した場合、発行者はその資金を「回収」することができます。 @@ -36,7 +36,4 @@ Clawback機能はデフォルトで無効になっています。使用するに このトランザクションが成功した場合、rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9Sが発行し、rsA2LpzuawewSBQXkiju3YQTMzW13pAAdWが保有する最大314.159FOOを回収することになります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md index 659951f423..3ade2e40e5 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md @@ -7,9 +7,9 @@ labels: --- # トークンの凍結に関するよくある誤解 -PayPalのような中央集権的なサービスがアカウントを停止して資金にアクセスできないようにするのと同様に、Ripple社などがXRPを凍結することができるというのはよくある誤解です。XRP Ledgerには[凍結機能](freezes.html)がありますが、これは発行トークンにのみ使用可能で、XRPには使用できません。 **XRPを凍結することは誰にもできません**。 +PayPalのような中央集権的なサービスがアカウントを停止して資金にアクセスできないようにするのと同様に、Ripple社などがXRPを凍結することができるというのはよくある誤解です。XRP Ledgerには[凍結機能](freezes.md)がありますが、これは発行トークンにのみ使用可能で、XRPには使用できません。 **XRPを凍結することは誰にもできません**。 -XRP Ledgerのトークンは、[XRPとは根本的に異なる](currency-formats.html#comparison)ものです。トークンは常にトラストライン上に存在し、それは凍結される可能性があります。XRPはアカウントに含まれており、凍結されることはありません。 +XRP Ledgerのトークンは、[XRPとは根本的に異なる](../../../references/protocol/data-types/currency-formats.md#comparison)ものです。トークンは常にトラストライン上に存在し、それは凍結される可能性があります。XRPはアカウントに含まれており、凍結されることはありません。 ## XRPは単なるRipple社のトークンではないのか? @@ -21,7 +21,7 @@ XRP Ledgerは分散型であり、Ripple社やXRP Ledger財団、そして他の あるトークンの発行者は、 _そのトークンに限定して_ あなたのトラストラインを凍結することができます。あなたのアカウントの他の部分や、異なる発行者のトークンを凍結することはできませんし、あなたがXRP Ledgerを使うのを止めることもできないのです。 -さらに、トークン発行者は、トークンを凍結する能力を自主的かつ永久的に放棄することができます。この["No Freeze"](freezes.html#no-freeze)設定は、他者がトークンの使用を止めることができないという意味で、トークンがより実際の現金のように振る舞うことを想定しています。 +さらに、トークン発行者は、トークンを凍結する能力を自主的かつ永久的に放棄することができます。この["No Freeze"](freezes.md#no-freeze)設定は、他者がトークンの使用を止めることができないという意味で、トークンがより実際の現金のように振る舞うことを想定しています。 ## しかし、Ripple社がJed McCaleb氏のXRPを凍結したと聞きましたが? @@ -30,4 +30,4 @@ XRP Ledgerは分散型であり、Ripple社やXRP Ledger財団、そして他の 注目すべきは、この「凍結」はXRP Ledger上で起こったものではなく、XRP Ledgerの凍結機能を使ったものでもないことです。他のカストディアン取引所と同様に、Bitstampはユーザーのアカウントを凍結し、特にそれらの資金が法的紛争に巻き込まれている場合、取引や資金の引き出しを停止する権限を持っています。 -一方、XRP Ledgerの[分散型取引所](decentralized-exchange.html)で取引する場合は、自分で資産を管理するので、XRPの取引を止めることは誰にもできないのです。 +一方、XRP Ledgerの[分散型取引所](../decentralized-exchange/index.md)で取引する場合は、自分で資産を管理するので、XRPの取引を止めることは誰にもできないのです。 diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/demurrage.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/demurrage.md index 9390e42d86..8dbfd9db74 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/demurrage.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/demurrage.md @@ -8,7 +8,7 @@ status: removed **注意:** デマレージは非推奨の機能であり、継続的なサポートはありません。このページでは、旧バージョンのXRP Ledgerソフトウェアの過去の動作について説明します。 -[デマレージ](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%9E%E3%83%AC%E3%83%BC%E3%82%B8) とは、保有資産にかかるマイナスの金利で、その資産を保有するためのコストを表すものです。 XRP Ledgerで発行された通貨のデマレージを表現するために、デマレージレートを示すカスタム[通貨コード](currency-formats.html#通貨コード) を使って追跡することができます。 これによって、様々なデマレージの量に対応した別々のバージョンの通貨が効果的に作成されます。クライアントアプリケーションは、通貨コードと一緒に年率でデマレージ通貨コードを表現することによって、これをサポートすることができます。例えば、以下のようになります。"XAU (-0.5%pa)". +[デマレージ](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%9E%E3%83%AC%E3%83%BC%E3%82%B8) とは、保有資産にかかるマイナスの金利で、その資産を保有するためのコストを表すものです。 XRP Ledgerで発行された通貨のデマレージを表現するために、デマレージレートを示すカスタム[通貨コード](../../../references/protocol/data-types/currency-formats.md#通貨コード) を使って追跡することができます。 これによって、様々なデマレージの量に対応した別々のバージョンの通貨が効果的に作成されます。クライアントアプリケーションは、通貨コードと一緒に年率でデマレージ通貨コードを表現することによって、これをサポートすることができます。例えば、以下のようになります。"XAU (-0.5%pa)". ## 通貨量の表記について @@ -41,14 +41,14 @@ D = A × ( e ^ (t ÷ τ) ) 2. 変換する量に適用します。 - レジャー値を表示値に変換する場合は、デマレージ係数を乗じる。 - 表示値をレジャー値に変換する場合は、デマレージ係数で割ってください。 -3. 必要であれば、結果値が望ましい精度で表現できるように調整する。XRP Ledgerの[発行通貨形式](currency-formats.html#トークンの精度)により、レジャー値の精度は小数点以下15桁までとされています。 +3. 必要であれば、結果値が望ましい精度で表現できるように調整する。XRP Ledgerの[発行通貨形式](../../../references/protocol/data-types/currency-formats.md#トークンの精度)により、レジャー値の精度は小数点以下15桁までとされています。 ## 利子付き通貨コードフォーマット -[標準通貨コード形式](currency-formats.html#標準通貨コード)ではなく、正の金利や負の金利(Demurrage)を持つ通貨は、以下の形式の160ビット通貨コードを使用します。 +[標準通貨コード形式](../../../references/protocol/data-types/currency-formats.md#標準通貨コード)ではなく、正の金利や負の金利(Demurrage)を持つ通貨は、以下の形式の160ビット通貨コードを使用します。 -![通貨コード形式を削除する](img/demurrage-currency-code-format.png) +![通貨コード形式を削除する](/img/demurrage-currency-code-format.png) 1. 最初の8ビットは `0x01` でなければなりません。 2. 次の24ビットはASCIIの3文字を表します。 diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/freezes.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/freezes.md index 6a468da6d9..92310e3263 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/freezes.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/freezes.md @@ -11,7 +11,7 @@ labels: 特定のケースでは、法的要件への準拠や、疑わしい活動の調査のために、取引所またはゲートウェイが、XRP以外のトークンの残高を急きょ凍結することがあります。 -**ヒント:** 誰もXRP LedgerのXRPを凍結することはできません。しかし、カストディアル取引所は、自らの裁量で常に保管資金を凍結することができます。詳しくは、[凍結に関するよくある誤解](common-misconceptions-about-freezes.html)をご覧ください。 +**ヒント:** 誰もXRP LedgerのXRPを凍結することはできません。しかし、カストディアル取引所は、自らの裁量で常に保管資金を凍結することができます。詳しくは、[凍結に関するよくある誤解](common-misconceptions-about-freezes.md)をご覧ください。 凍結については、3種類の設定があります。 @@ -24,18 +24,18 @@ labels: ## Individual Freeze -**Individual Freeze**機能は、[トラストライン](trust-lines-and-issuing.html)に関する設定です。発行アドレスがIndividual Freeze設定を有効にすると、そのトラストラインの通貨に対して以下のルールが適用されます。 +**Individual Freeze**機能は、[トラストライン](index.md)に関する設定です。発行アドレスがIndividual Freeze設定を有効にすると、そのトラストラインの通貨に対して以下のルールが適用されます。 * 凍結されたトラストラインの両当事者間の直接決済は、凍結後も可能です。 * そのトラストラインの取引相手は、イシュアーへ直接支払う場合を除き、凍結されたトラストラインの残高を減らすことはできません。取引相手は、凍結されたイシュアンスを直接イシュアーに送信することだけが可能です。 * 取引相手は、凍結されたトラストライン上で引き続きその他の当事者からの支払を受け取ることができます。 -* 取引相手が凍結されたトラストライン上のトークンの売りオファーを出した場合、[資金不足とみなされます](offers.html#オファーのライフサイクル)。 +* 取引相手が凍結されたトラストライン上のトークンの売りオファーを出した場合、[資金不足とみなされます](../decentralized-exchange/offers.md#オファーのライフサイクル)。 再確認: トラストラインではXRPは保持されません。XRPは凍結できません。 金融機関は、疑わしい活動を行う取引相手や、金融機関の利用規約に違反する取引相手にリンクしているトラストラインを凍結できます。金融機関は、同機関が運用する、XRP Ledgerに接続されているその他のシステムにおいても、その取引相手を凍結する必要があります。(凍結しないと、アドレスから金融機関経由で支払を送金することで、望ましくない活動を行うことが依然として可能となります。) -各個別アドレスは金融機関とのトラストラインを凍結できます。これは金融機関とその他のユーザーの間の取引には影響しません。ただし、他のアドレス([運用アドレス](account-types.html)を含む)からその個別アドレスに対しては、その金融機関のイシュアンスを送信できなくなります。このようなIndividual Freezeは、オファーには影響しません。 +各個別アドレスは金融機関とのトラストラインを凍結できます。これは金融機関とその他のユーザーの間の取引には影響しません。ただし、他のアドレス([運用アドレス](../../accounts/account-types.md)を含む)からその個別アドレスに対しては、その金融機関のイシュアンスを送信できなくなります。このようなIndividual Freezeは、オファーには影響しません。 Individual Freezeは1つの通貨にのみ適用されます。特定の取引相手の複数通貨を凍結するには、アドレスが各通貨のトラストラインで、個別にIndividual Freezeを有効にする必要があります。 @@ -46,15 +46,15 @@ Individual Freezeは1つの通貨にのみ適用されます。特定の取引 **Global Freeze**機能は、アドレスに設定できます。発行アドレスがGlobal Freeze機能を有効にすると、その発行アドレスのすべてのトークンに対して以下のルールが適用されます: -* 凍結された発行アドレスのすべての取引相手は、イシュアーに直接支払う場合を除き、凍結されたアドレスへのトラストラインの残高を減らすことができません。(これはすべての[運用アドレス](account-types.html)にも影響します。) +* 凍結された発行アドレスのすべての取引相手は、イシュアーに直接支払う場合を除き、凍結されたアドレスへのトラストラインの残高を減らすことができません。(これはすべての[運用アドレス](../../accounts/account-types.md)にも影響します。) * 凍結された発行アドレスの取引相手は、発行アドレスとの直接的な支払の送受信を引き続き行うことができます。 -* 凍結アドレスによるトークンの売りオファーはすべて、[資金不足とみなされます](offers.html#オファーのライフサイクル)。 +* 凍結アドレスによるトークンの売りオファーはすべて、[資金不足とみなされます](../decentralized-exchange/offers.md#オファーのライフサイクル)。 再確認: アドレスはXRPを発行できません。Global FreezeはXRPには適用されません。 -運用アドレスのシークレットキーが漏えいした場合には、運用アドレスの制御を取り戻した後であっても金融機関の[発行アドレス](account-types.html)に対してGlobal Freezeを有効にすることが有益です。これにより資金流出を止め、攻撃者がそれ以上の資金を盗むことを防止し、少なくともそれまでの経過の追跡が容易になります。XRP LedgerでGlobal Freezeを行う他に、金融機関は外部システムへのコネクターでの疑わしい活動を停止する必要があります。 +運用アドレスのシークレットキーが漏えいした場合には、運用アドレスの制御を取り戻した後であっても金融機関の[発行アドレス](../../accounts/account-types.md)に対してGlobal Freezeを有効にすることが有益です。これにより資金流出を止め、攻撃者がそれ以上の資金を盗むことを防止し、少なくともそれまでの経過の追跡が容易になります。XRP LedgerでGlobal Freezeを行う他に、金融機関は外部システムへのコネクターでの疑わしい活動を停止する必要があります。 -また、金融機関が新しい[発行アドレス](account-types.html)への移行や、営業の停止を予定している場合にも、Global Freezeを有効にすることが有用です。これにより、特定の時点で資金がロックされるため、ユーザーは他の通貨で取引することができなくなります。 +また、金融機関が新しい[発行アドレス](../../accounts/account-types.md)への移行や、営業の停止を予定している場合にも、Global Freezeを有効にすることが有用です。これにより、特定の時点で資金がロックされるため、ユーザーは他の通貨で取引することができなくなります。 Global Freezeは、当該アドレスによって発行および保有されている _すべての_ 通貨に適用されます。1つの通貨のみに対してGlobal Freezeを有効にすることはできません。一部の通貨のみを凍結できるようにしたい場合は、通貨ごとに異なるアドレスを使用してください。 @@ -76,7 +76,7 @@ XRP Ledgerは金融機関に対し、その発行資金が表す債務を履行 No Freeze設定は、アドレスに対して発行される通貨と、アドレスから発行される通貨のすべてに適用されます。一部の通貨のみを凍結できるようにしたい場合は、通貨ごとに異なるアドレスを使用してください。 -No Freeze設定は、アドレスのマスターキーのシークレットキーにより署名されたトランザクションでのみ有効にできます。[レギュラーキー](setregularkey.html)または[マルチシグトランザクション](multi-signing.html)を使用してNo Freezeを有効にすることはできません。 +No Freeze設定は、アドレスのマスターキーのシークレットキーにより署名されたトランザクションでのみ有効にできます。[レギュラーキー](../../../references/protocol/transactions/types/setregularkey.md)または[マルチシグトランザクション](../../accounts/multi-signing.md)を使用してNo Freezeを有効にすることはできません。 @@ -84,20 +84,17 @@ No Freeze設定は、アドレスのマスターキーのシークレットキ - [凍結コードの例](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/freeze) - **コンセプト:** - - [トラストラインとトークンの発行](trust-lines-and-issuing.html) + - [トラストラインとトークンの発行](index.md) - **Tutorials:** - - [No Freezeを有効化](enable-no-freeze.html) - - [Global Freezeの実行](enact-global-freeze.html) - - [トラストラインの凍結](freeze-a-trust-line.html) + - [No Freezeを有効化](../../../tutorials/use-tokens/enable-no-freeze.md) + - [Global Freezeの実行](../../../tutorials/use-tokens/enact-global-freeze.md) + - [トラストラインの凍結](../../../tutorials/use-tokens/freeze-a-trust-line.md) - **References:** - [account_linesメソッド][] - [account_infoメソッド][] - [AccountSetトランザクション][] - [TrustSetトランザクション][] - - [AccountRootフラグ](accountroot.html#accountrootのフラグ) - - [RippleState(trust line)フラグ](ripplestate.html#ripplestateのフラグ) + - [AccountRootフラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) + - [RippleState(trust line)フラグ](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/index.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/index.md index 1997564a56..eb7978a7a7 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/index.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/index.md @@ -13,57 +13,57 @@ labels: ## トラストライン -トラストラインとは、XRP Ledgerにおける[トークン](tokens.html)を保持するための仕組みを指します。トラストラインは、XRP Ledgerのルールである「不要なトークンを他者に保有させることはできない」という原則を強制するものです。この制限は、XRP Ledgerのユースケースである[コミュニティクレジット](tokens.html#コミュニティクレジット)などを実現するために不可欠なものです。 +トラストラインとは、XRP Ledgerにおける[トークン](../index.md)を保持するための仕組みを指します。トラストラインは、XRP Ledgerのルールである「不要なトークンを他者に保有させることはできない」という原則を強制するものです。この制限は、XRP Ledgerのユースケースである[コミュニティクレジット](../index.md#コミュニティクレジット)などを実現するために不可欠なものです。 それぞれの「トラストライン」は、以下のような _双方向_ の関係から成り立っています。 -- トラストラインが接続する **2つの[アカウント](accounts.html)** の識別子 +- トラストラインが接続する **2つの[アカウント](../../accounts/accounts.md)** の識別子 - 一方のアカウントから見てプラス、他方のアカウントから見てマイナスとなる、単一の共有された**残高** - - 残高がマイナスのアカウントは、一般的にトークンの「発行者」とみなされます。ただし、[API](http-websocket-apis.html)では、`issuer`という名称はどちらを指すこともあるようです。 + - 残高がマイナスのアカウントは、一般的にトークンの「発行者」とみなされます。ただし、[API](../../../references/http-websocket-apis/index.md)では、`issuer`という名称はどちらを指すこともあるようです。 - 様々な **設定** とメタデータ。2つのアカウントの _それぞれ_ は、トラストライン上の設定を制御することができます。 - 最も重要なことは、各サイドがトラストラインに **限度額** を設定できることです。これはデフォルトでは0です。各アカウントの残高は(トラストラインから見て)そのアカウントの上限を超えることはできません。ただし、[アカウント自身の操作](#限度額以上を保有する)を除きます。 各トラストラインは、特定の[通貨コード][]に固有です。2つのアカウント間に作成できる各種通貨コードのトラストラインの数に制限はありませんが、どの通貨コードについても、作成できるトラストラインは1方向に1つだけです。 -トラストラインの残高は、それをどちらの側から見るかによって負または正になります。負の残高を持つ側は「発行者」と呼ばれ、トークンの振る舞いに関するいくつかのプロパティを制御できます。トークンを発行者ではない別のアカウントに送ると、そのトークンは発行者や、おそらく同じ通貨コードを使用している他のアカウントを通じて「ripple(波及)」します。これは便利な場合もありますが、予期しない望ましくない動作を引き起こす場合もあります。トラストラインに[No Rippleフラグ](rippling.html)を使用することで、トラストラインが波及しないようにすることができます。 +トラストラインの残高は、それをどちらの側から見るかによって負または正になります。負の残高を持つ側は「発行者」と呼ばれ、トークンの振る舞いに関するいくつかのプロパティを制御できます。トークンを発行者ではない別のアカウントに送ると、そのトークンは発行者や、おそらく同じ通貨コードを使用している他のアカウントを通じて「ripple(波及)」します。これは便利な場合もありますが、予期しない望ましくない動作を引き起こす場合もあります。トラストラインに[No Rippleフラグ](rippling.md)を使用することで、トラストラインが波及しないようにすることができます。 ## 作成 アカウントはいずれも、ゼロでない上限と独自の設定を持つ[TrustSetトランザクション][]を送信することによって、他のアカウントに対して一方的にトークンを「トラスト」することができます。これによって、残高ゼロのトラストラインが作成され、相手側の設定がデフォルトとして設定されます。 -トラストラインは、[分散型取引所](decentralized-exchange.html)でトークンを購入するときなど、いくつかのトランザクションによって暗黙的に作成されることがあります。この場合、トラストラインはデフォルト設定をそのまま使用します。 +トラストラインは、[分散型取引所](../decentralized-exchange/index.md)でトークンを購入するときなど、いくつかのトランザクションによって暗黙的に作成されることがあります。この場合、トラストラインはデフォルト設定をそのまま使用します。 ## 限度額以上を保有する トラストラインの限度額よりも _大きい_ 残高を保有できるケースは次の3つがあります。 -1. [トレード](decentralized-exchange.html)によって、限度額以上のトークンを取得した場合 +1. [トレード](../decentralized-exchange/index.md)によって、限度額以上のトークンを取得した場合 2. プラスの残高があるトラストラインの限度額を減らした場合 -3. [チェックの現金化](checks.html)によって、トークンを限度額以上取得する場合 (_[CheckCashMakesTrustLine amendment][]により追加されました。_) +3. [チェックの現金化](../../payment-types/checks.md)によって、トークンを限度額以上取得する場合 (_[CheckCashMakesTrustLine amendment][]により追加されました。_) ## トラストラインの設定 アカウントごとに、共通残高のほかに、トラストラインの設定項目があり、その構成は以下のとおりです。 -- **Limit**: 0から[トークンの上限量](currency-formats.html)の範囲内の数字です。支払いや他のアカウントの操作によって、(このアカウントから見た)トラストラインの残高が限度額を超えることはできません。デフォルトは`0`です。 -- **Authorized**: [Authorized Trust Lines](authorized-trust-lines.html)と併用し、このアカウントが発行するトークンを相手側に保持させることを許可するための値(true/false)です。デフォルトは`false`です。一度`true`に設定すると、元に戻すことはできません。 -- **No Ripple**: トークンがこのトラストラインを通過して[ripple](rippling.html)するかどうかを設定するための値(true/false)です。デフォルトはアカウントの"Default Ripple"設定に依存します。新しいアカウントでは"Default Ripple"はoffで、つまり`true`がNo Rippleのデフォルト値となります。通常、発行者はrippleを許可し、非発行者はコミュニティクレジットのためにトラストラインを使用していない限り、rippleを無効にするべきです。 -- **Freeze**: このトラストラインに[個別の凍結](freezes.html#individual-freeze)が適用されているかどうかを示す値(true/false)です。デフォルトは`false です。 +- **Limit**: 0から[トークンの上限量](../../../references/protocol/data-types/currency-formats.md)の範囲内の数字です。支払いや他のアカウントの操作によって、(このアカウントから見た)トラストラインの残高が限度額を超えることはできません。デフォルトは`0`です。 +- **Authorized**: [Authorized Trust Lines](authorized-trust-lines.md)と併用し、このアカウントが発行するトークンを相手側に保持させることを許可するための値(true/false)です。デフォルトは`false`です。一度`true`に設定すると、元に戻すことはできません。 +- **No Ripple**: トークンがこのトラストラインを通過して[ripple](rippling.md)するかどうかを設定するための値(true/false)です。デフォルトはアカウントの"Default Ripple"設定に依存します。新しいアカウントでは"Default Ripple"はoffで、つまり`true`がNo Rippleのデフォルト値となります。通常、発行者はrippleを許可し、非発行者はコミュニティクレジットのためにトラストラインを使用していない限り、rippleを無効にするべきです。 +- **Freeze**: このトラストラインに[個別の凍結](freezes.md#individual-freeze)が適用されているかどうかを示す値(true/false)です。デフォルトは`false です。 - **Quality In** および **Quality Out**: この設定により、このトラストライン上の他のアカウントで発行されたトークンを額面より少なく(または多く)評価することができます。たとえば、ステーブルコインの発行者が、オフレッジャーにある同等の資産に対してトークンの引き出しに3%の手数料を課している場合、この設定を使用して、それらのトークンを額面の97%で評価することが可能です。デフォルトは`0`で、額面価格を表しています。 ## 準備金と削除 -トラストラインは台帳のスペースを使用するため、[トラストラインはあなたのアカウントが準備金として保持しなければならないXRPを増加させます](reserves.html)。 トラストラインのどちらか、または両方のアカウントにトラストラインの準備金が負担されることがあります。トラストラインの設定がデフォルトでない場合、またはプラス残高を保持している場合、所有者準備金の1つとしてカウントされます。 +トラストラインは台帳のスペースを使用するため、[トラストラインはあなたのアカウントが準備金として保持しなければならないXRPを増加させます](../../accounts/reserves.md)。 トラストラインのどちらか、または両方のアカウントにトラストラインの準備金が負担されることがあります。トラストラインの設定がデフォルトでない場合、またはプラス残高を保持している場合、所有者準備金の1つとしてカウントされます。 一般に、トラストラインを作成したアカウントが準備金を負担し、発行者は負担しないという意味です。 トラストラインは、両者の設定がデフォルトの状態で、残高が0であれば自動的に削除されます。つまり、トラストラインを削除するには次の方法があります。 1. 設定した内容をデフォルトに戻すために、[TrustSetトランザクション][]を送信する。 -2. トラストラインにあるプラスの残高をすべて処分します。これは[支払い](cross-currency-payments.html)によって通貨を送るか、[分散型取引所](decentralized-exchange.html)で通貨を売却することで可能です。 +2. トラストラインにあるプラスの残高をすべて処分します。これは[支払い](../../payment-types/cross-currency-payments.md)によって通貨を送るか、[分散型取引所](../decentralized-exchange/index.md)で通貨を売却することで可能です。 残高がマイナス(あなたが発行者)の場合や、相手側の設定が初期状態でない場合、トラストラインを完全に削除させることはできませんが、同様の手順で所有者準備金にカウントされないようにすることが可能です。 @@ -82,15 +82,12 @@ labels: ## 関連項目 - **コンセプト:** - - [分散型取引所](decentralized-exchange.html) - - [リップリング](rippling.html) + - [分散型取引所](../decentralized-exchange/index.md) + - [リップリング](rippling.md) - **リファレンス:** - [account_linesメソッド][] - 指定されたアカウントに関連付けられたトラストラインを確認 - [gateway_balancesメソッド][] - 発行者の発行残高を確認 - - [RippleStateオブジェクト](ripplestate.html) - 台帳の状態データのうち、トラストラインのデータ形式 + - [RippleStateオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) - 台帳の状態データのうち、トラストラインのデータ形式 - [TrustSetトランザクション][] - トラストラインを作成・変更するトランザクション - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/paths.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/paths.md index ae22f0d9d2..dee834288c 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/paths.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/paths.md @@ -8,11 +8,11 @@ labels: --- # パス -XRP Ledgerでは、[トークン](tokens.html)の支払いが送金元から受取人に届くまでにたどる中間ステップの道筋をパスによって定義します。パスは、XRP Ledgerの[分散型取引所](decentralized-exchange.html)のオーダーを介して送金元と受取人を結び付けることで、[クロスカレンシー支払い](cross-currency-payments.html)を可能にします。また、負債を相殺するような複雑な決済もパスにより可能になります。 +XRP Ledgerでは、[トークン](../index.md)の支払いが送金元から受取人に届くまでにたどる中間ステップの道筋をパスによって定義します。パスは、XRP Ledgerの[分散型取引所](../decentralized-exchange/index.md)のオーダーを介して送金元と受取人を結び付けることで、[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)を可能にします。また、負債を相殺するような複雑な決済もパスにより可能になります。 XRP Ledgerでは1つのPaymentトランザクションは複数のパスを使用でき、複数のソースの流動性を組み合わせて必要な額を送金することができます。そのため、トランザクションには使用可能なパスをまとめた _パスセット_ が含まれます。パスセットの中のパスでは開始時と終了時には同一通貨が使用される必要があります。 -XRPは任意のアドレスに直接送金できるため、[XRP間のトランザクション](direct-xrp-payments.html)ではパスは使用されません。 +XRPは任意のアドレスに直接送金できるため、[XRP間のトランザクション](../../payment-types/direct-xrp-payments.md)ではパスは使用されません。 ## パスのステップ @@ -21,13 +21,13 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン * 同一通貨の別のアドレスを通じたRippling * オーダーブックでの通貨の取引 -別のアドレスを通じたRipplingは、負債を移動するプロセスです。一般的なケースでは、ある当事者に対するイシュアーの債務が削減され、別の当事者に対する債務が増加します。Ripplingは、トラストラインで結ばれているすべてのアドレスの間で発生させることができます。Ripplingのその他の例については、[NoRippleフラグについて](rippling.html)を参照してください。 +別のアドレスを通じたRipplingは、負債を移動するプロセスです。一般的なケースでは、ある当事者に対するイシュアーの債務が削減され、別の当事者に対する債務が増加します。Ripplingは、トラストラインで結ばれているすべてのアドレスの間で発生させることができます。Ripplingのその他の例については、[NoRippleフラグについて](rippling.md)を参照してください。 通貨取引ステップの場合、パスステップにより変換先の通貨が指定されますが、オーダーブックにはオファーの状態は記録されません。レジャーが検証されるまではトランザクションの正規の順序は最終的ではないため、トランザクションの検証が完了するまでは、トランザクションがどのオファーをとるかは不明です。(各トランザクションは最終レジャーでの実行時に利用可能なオファーの中から最適なオファーをとるため、経験に基づいて推測することができます。) -いずれのタイプのステップでも、中間アドレスでは取得する価値と失う価値はほぼ同等です。トラストラインから同じ通貨の別のトラストラインへ残高がripplingするか、または以前に出されたオーダーに基づいて通貨が交換されます。場合によっては、[送金手数料](transfer-fees.html)、トラストラインクオリティ、または数値の丸め方が原因で、取得する価値と失われる価値が厳密に同等ではないことがあります。 +いずれのタイプのステップでも、中間アドレスでは取得する価値と失う価値はほぼ同等です。トラストラインから同じ通貨の別のトラストラインへ残高がripplingするか、または以前に出されたオーダーに基づいて通貨が交換されます。場合によっては、[送金手数料](../transfer-fees.md)、トラストラインクオリティ、または数値の丸め方が原因で、取得する価値と失われる価値が厳密に同等ではないことがあります。 -[![3つのパスの例を示す図](img/paths-examples.ja.png)](img/paths-examples.ja.png) +[![3つのパスの例を示す図](/img/paths-examples.ja.png)](/img/paths-examples.ja.png) @@ -37,7 +37,7 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン `rippled` APIではPathfindingに使用できるメソッドが2つあります。[ripple_path_findメソッド][]は、1回限りのパスセットの検索を実行します。[path_findメソッド][](WebSocketのみ)は、レジャーが閉鎖するか、またはサーバーがより適切なパスを検出するたびに、フォローアップレスポンスによって検索を拡大します。 -署名時に`rippled`によりパスが自動的に入力されるようにするには、[signメソッド][]または[`submit`コマンド(署名と送信モード)](submit.html#署名と送信モード)へのリクエストに`build_path`フィールドを指定します。ただし、トラブルを回避するために、署名前にPathfindingを個別に実行し、結果を確認することが推奨されます。 +署名時に`rippled`によりパスが自動的に入力されるようにするには、[signメソッド][]または[`submit`コマンド(署名と送信モード)](../../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#署名と送信モード)へのリクエストに`build_path`フィールドを指定します。ただし、トラブルを回避するために、署名前にPathfindingを個別に実行し、結果を確認することが推奨されます。 **注意:** `rippled`は可能な限り低コストのパスを検出するように設計されていますが、常にこのようなパスを検出できるわけではありません。信頼できない`rippled`インスタンスが改ざんされ、利益目的でこの動作が変更される可能性もあります。パスに沿った支払いの実行にかかる実際のコストは、送信時とトランザクション実行時で異なることがあります。 @@ -46,11 +46,11 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン ## 暗黙のステップ -規約として、パスのステップのいくつかは[Paymentトランザクションのフィールド](payment.html)により黙示的に示されます。これらのフィールドは、`Account`(送金元)、`Destination`(受取人)、`Amount`(通貨と納入額)、`SendMax`(通貨と送金額(指定されている場合))です。暗黙のステップは次のとおりです。 +規約として、パスのステップのいくつかは[Paymentトランザクションのフィールド](../../../references/protocol/transactions/types/payment.md)により黙示的に示されます。これらのフィールドは、`Account`(送金元)、`Destination`(受取人)、`Amount`(通貨と納入額)、`SendMax`(通貨と送金額(指定されている場合))です。暗黙のステップは次のとおりです。 * パスの1番目のステップは、トランザクションの`Account`フィールドに定義されるとおり、トランザクションの送信者であると常に黙示されます。 * トランザクションに、そのトランザクションの送信者ではない`issuer`が指定されている`SendMax`フィールドが含まれている場合、そのイシュアーはパスの2番目のパスとして黙示されます。 - * `SendMax`の`issuer`が送信側アドレス _である_ 場合、パスはその送信側アドレスから始まり、そのアドレスの特定の通貨のトラストラインのいずれかを使用できます。詳細は、[SendMaxおよびAmountの特殊な値](payment.html#sendmaxおよびamountで使用する特殊なissuerの値)を参照してください。 + * `SendMax`の`issuer`が送信側アドレス _である_ 場合、パスはその送信側アドレスから始まり、そのアドレスの特定の通貨のトラストラインのいずれかを使用できます。詳細は、[SendMaxおよびAmountの特殊な値](../../../references/protocol/transactions/types/payment.md#sendmaxおよびamountで使用する特殊なissuerの値)を参照してください。 * トランザクションの`Amount`フィールドに、トランザクションの`Destination`とは異なる`issuer`が指定されている場合、そのイシュアーはパスの最後から2番目のステップであると黙示されます。 * 最後に、トランザクションの`Destination`フィールドに定義されるとおり、パスの最終ステップはトランザクションの受信者であることが常に黙示されます。 @@ -67,9 +67,9 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン * クロスカレンシー支払いの場合、デフォルトパスは支払元通貨(`SendMax`フィールドで指定)と宛先通貨(`Amount`フィールドで指定)の間でオーダーブックを使用します。 有効なすべてのデフォルトパスを次の図に示します。 -[![デフォルトパスの図](img/paths-default_paths.ja.png)](img/paths-default_paths.ja.png) +[![デフォルトパスの図](/img/paths-default_paths.ja.png)](/img/paths-default_paths.ja.png) -デフォルトパスを無効にするには[`tfNoDirectRipple`フラグ](payment.html#paymentのフラグ)を使用します。このケースでは、トランザクションに明示的に指定されたパスを使用してトランザクションを実行することだけが可能です。トレーダーはこのオプションを使用して裁定取引を実行できます。 +デフォルトパスを無効にするには[`tfNoDirectRipple`フラグ](../../../references/protocol/transactions/types/payment.md#paymentのフラグ)を使用します。このケースでは、トランザクションに明示的に指定されたパスを使用してトランザクションを実行することだけが可能です。トレーダーはこのオプションを使用して裁定取引を実行できます。 ## パスの仕様 @@ -104,15 +104,12 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン ## 関連項目 - **コンセプト:** - - [クロスカレンシー支払い](cross-currency-payments.html) - - [分散型取引所](decentralized-exchange.html) - - [Partial Payments](partial-payments.html) + - [クロスカレンシー支払い](../../payment-types/cross-currency-payments.md) + - [分散型取引所](../decentralized-exchange/index.md) + - [Partial Payments](../../payment-types/partial-payments.md) - **リファレンス:** - [Paymentトランザクション][] - [path_findメソッド][](WebSocketのみ) - [ripple_path_findメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/rippling.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/rippling.md index fd80585d2b..1d0c5558ae 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/rippling.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/rippling.md @@ -8,9 +8,9 @@ labels: --- # Rippling -XRP Ledgerでは、「Rippling」とは同一通貨の[トラストライン](trust-lines-and-issuing.html)を有する複数の接続当事者間での非可分なネット決済のプロセスを指しています。Ripplingはトークンの基幹的なプロセスです。Ripplingを利用すれば、同一イシュアーを信頼するユーザーは、そのイシュアーを受動的な仲介機関として発行済み残高を相互に送金できるようになります。Ripplingは、受動的かつ双方向の[通貨取引オーダー](offers.html)のようなもので、制限がなく、通貨コードが同一でイシュアーが異なる2つの通貨間の為替レートは1:1です。 +XRP Ledgerでは、「Rippling」とは同一通貨の[トラストライン](index.md)を有する複数の接続当事者間での非可分なネット決済のプロセスを指しています。Ripplingはトークンの基幹的なプロセスです。Ripplingを利用すれば、同一イシュアーを信頼するユーザーは、そのイシュアーを受動的な仲介機関として発行済み残高を相互に送金できるようになります。Ripplingは、受動的かつ双方向の[通貨取引オーダー](../decentralized-exchange/offers.md)のようなもので、制限がなく、通貨コードが同一でイシュアーが異なる2つの通貨間の為替レートは1:1です。 -Ripplingは、支払[パス](paths.html)でのみ発生します。[XRP間の直接決済](direct-xrp-payments.html)にはRipplingは使用されません。 +Ripplingは、支払[パス](paths.md)でのみ発生します。[XRP間の直接決済](../../payment-types/direct-xrp-payments.md)にはRipplingは使用されません。 発行アカウント以外のアカウントでは、Ripplingが望ましくない場合があります。Ripplingを使えば、他のユーザーが同一通貨のイシュアー間で債権債務を移動できるようになるためです。このため、アカウントの[DefaultRippleフラグ](#defaultrippleフラグ)を有効にして、アカウントがデフォルトでRipplingを有効にしない限り、デフォルトでは[NoRippleフラグ](#norippleフラグ)により着信トラストラインでのRipplingが無効になっています。 @@ -20,11 +20,11 @@ Ripplingは、支払[パス](paths.html)でのみ発生します。[XRP間の直 「Rippling」は、支払いを行うために複数のトラストラインが調整されたときに発生します。たとえば、AliceがCharlieにお金を借りており、さらにAliceはBobからもお金を借りている場合、XRP Ledgerではトラストラインは次のようになります: -![Charlie --($10)-- Alice -- ($20) -- Bob](img/noripple-01.png) +![Charlie --($10)-- Alice -- ($20) -- Bob](/img/noripple-01.png) BobがCharlieに$3を支払いたい場合、BobはAliceに対して「Alice、君に貸しているお金の中から$3をCharlieに支払ってくれ。」と言えます。AliceはBobに借りているお金の一部をCharlieに送金します。最終的にはトラストラインは次のようになります。 -![Charlie --($13)-- Alice --($17)-- Bob](img/noripple-02.png) +![Charlie --($13)-- Alice --($17)-- Bob](/img/noripple-02.png) 2つのアドレスが、アドレス間のトラストライン上の残高を調整することで相互に支払うこのプロセスを「Rippling」と呼びます。これはXRP Ledgerの有用で重要な機能です。Ripplingは、同一の[通貨コード][]を使用するトラストラインによってアドレスがリンクされている場合に起こります。イシュアーが同一でなくてもかまいません。実際、大規模なチェーンでは常にイシュアーが変更されます。 @@ -38,17 +38,17 @@ BobがCharlieに$3を支払いたい場合、BobはAliceに対して「Alice、 たとえば、Emilyが2つの異なる金融機関から発行されたお金を保有しているとします。 -![Charlie --($10)-- 金融機関A --($1)-- Emily --($100)-- 金融機関B --($2)-- Daniel](img/noripple-03.png) +![Charlie --($10)-- 金融機関A --($1)-- Emily --($100)-- 金融機関B --($2)-- Daniel](/img/noripple-03.png) CharlieはDanielに支払うため、Emilyのアドレスを通じてRipplingします。たとえば、CharlieがDanielに$10を支払うとします: -![Charlie --($0)-- 金融機関A --($11)-- Emily --($90)-- 金融機関B --($12)-- Daniel](img/noripple-04.png) +![Charlie --($0)-- 金融機関A --($11)-- Emily --($90)-- 金融機関B --($12)-- Daniel](/img/noripple-04.png) この場合、CharlieやDanielと面識のないEmilyは驚く可能性があります。さらに、金融機関Aが金融機関Bよりも高い出金手数料をEmilyに請求した場合、Emilyがコストを負担することになる可能性があります。NoRippleフラグはこの状況を回避するためのフラグです。Emilyが両方のトラストラインでNoRippleフラグを設定していれば、この2つのトラストラインを使用しているEmilyのアドレスを通じて、支払がRipplingされることはありません。 例: -![Charlie --($10)-- 金融機関A --($1、NoRipple)-- Emily --($100、NoRipple)-- 金融機関B --($2)-- Daniel](img/noripple-05.png) +![Charlie --($10)-- 金融機関A --($1、NoRipple)-- Emily --($100、NoRipple)-- 金融機関B --($2)-- Daniel](/img/noripple-05.png) このように、CharlieがEmilyのアドレスを通じてRipplingし、Danielに支払うという上記のシナリオは、不可能になります。 @@ -56,7 +56,7 @@ CharlieはDanielに支払うため、Emilyのアドレスを通じてRipplingし NoRippleフラグにより特定のパスが無効になり、無効になったパスは支払に使用できなくなります。パスが無効であると見なされるのは、パスが、あるアドレスに対してNoRippleが有効となっているトラストラインを通じて、そのアドレスノードに入り**かつ**そのノードから出た場合に限られます。 -![処理を行うためには同一アドレスによって両方のトラストラインにNoRippleが設定されている必要があることを示す図](img/noripple-06.png) +![処理を行うためには同一アドレスによって両方のトラストラインにNoRippleが設定されている必要があることを示す図](/img/noripple-06.png) ## DefaultRippleフラグ @@ -73,29 +73,26 @@ DefaultRippleフラグは、デフォルトで着信トラストラインでのR トラストライン上のNoRippleフラグは、トラストライン上のアドレスの残高がプラスまたはゼロの場合に限り、有効にできます。これにより、この機能を悪用してトラストラインの残高に示される債務を不履行にすることができなくなります。(ただし、アドレスを放棄すれば債務を不履行にできます。) -[`rippled` API](http-websocket-apis.html)でNoRippleフラグを有効にするには、`tfSetNoRipple`フラグを設定した[TrustSetトランザクション][]を送信します。NoRippleを無効にする(Ripplingを有効にする)には、`tfClearNoRipple`フラグを使用します。 +[`rippled` API](../../../references/http-websocket-apis/index.md)でNoRippleフラグを有効にするには、`tfSetNoRipple`フラグを設定した[TrustSetトランザクション][]を送信します。NoRippleを無効にする(Ripplingを有効にする)には、`tfClearNoRipple`フラグを使用します。 ### NoRippleステータスの確認 相互に信頼し合っている2つのアカウントの場合、NoRippleフラグはアカウントごとに管理されます。 -[`rippled` API](http-websocket-apis.html)でアドレスに関連付けられているトラストラインを確認するには、[account_linesメソッド][]を使用します。各トラストラインの`no_ripple`フィールドには、現在のアドレスがそのトラストラインに対してNoRippleフラグを有効にしているか否かが表示され、`no_ripple_peer`フィールドには、取引相手がNoRippleフラグを有効にしているか否かが表示されます。 +[`rippled` API](../../../references/http-websocket-apis/index.md)でアドレスに関連付けられているトラストラインを確認するには、[account_linesメソッド][]を使用します。各トラストラインの`no_ripple`フィールドには、現在のアドレスがそのトラストラインに対してNoRippleフラグを有効にしているか否かが表示され、`no_ripple_peer`フィールドには、取引相手がNoRippleフラグを有効にしているか否かが表示されます。 ## 関連項目 - **コンセプト:** - - [パス](paths.html) + - [パス](paths.md) - **リファレンス:** - [account_linesメソッド][] - [account_infoメソッド][] - [AccountSetトランザクション][] - [TrustSetトランザクション][] - - [AccountRootのフラグ](accountroot.html#accountrootのフラグ) - - [RippleState(トラストライン)のフラグ](ripplestate.html#ripplestateのフラグ) + - [AccountRootのフラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) + - [RippleState(トラストライン)のフラグ](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md index 607459a780..a32d14ff0b 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md @@ -122,4 +122,3 @@ KYCは、金融機関や関連企業にとって、リスク、特に法的リ - FATFの金融事業者向けガイダンス: - [金融活動作業部会、2009年7月](http://www.fatf-gafi.org/media/fatf/documents/reports/Guidance-RBA-money-value-transfer-services.pdf) - diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/configuration.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/configuration.md index ece757b61a..aec0bc051f 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/configuration.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/configuration.md @@ -7,7 +7,7 @@ labels: --- # ステーブルコイン発行者の設定 -トークンの発行を始める前に、XRP Ledgerアカウントで設定する必要がある項目がいくつかあります。これらの設定の例については、[代替可能トークンの発行](issue-a-fungible-token.html)をご覧ください。 +トークンの発行を始める前に、XRP Ledgerアカウントで設定する必要がある項目がいくつかあります。これらの設定の例については、[代替可能トークンの発行](../../../../tutorials/use-tokens/issue-a-fungible-token.md)をご覧ください。 設定すべき項目は以下の通りです。 @@ -23,7 +23,7 @@ labels: ## Default Ripple -Default Rippleフラグは、トラストラインの残高をデフォルトで[Ripplingを許可](rippling.html)するかどうかを制御します。Ripplingは顧客同士のトークンの送信や取引を可能にするものなので、発行者はその発行アドレスへのすべてのトラストラインでのRipplingを許可しなければなりません(MUST)。 +Default Rippleフラグは、トラストラインの残高をデフォルトで[Ripplingを許可](../rippling.md)するかどうかを制御します。Ripplingは顧客同士のトークンの送信や取引を可能にするものなので、発行者はその発行アドレスへのすべてのトラストラインでのRipplingを許可しなければなりません(MUST)。 顧客に発行アドレスへのトラストラインの作成を依頼する前に、発行者はそのアドレスのDefault Rippleフラグを有効にする必要があります。そうでない場合、発行者は、他のアドレスが作成した各トラストラインのNo Rippleフラグを個別に無効化する必要があります。 @@ -41,14 +41,14 @@ Deposit Authorizationは、不要なXRPの支払いをブロックするのに したがって、未知または制裁を受けたエンティティからお金を受け取ることに関する規制要件を満たすために必要でない限り、Deposit Authorizationはステーブルコインの発行者に推奨されません。 -より詳細な情報は[Deposit Authorization](depositauth.html)をご覧ください。 +より詳細な情報は[Deposit Authorization](../../../accounts/depositauth.md)をご覧ください。 ## Disallow Incoming Trust Line Disallow Incoming Trust Lineの設定は、他のユーザがアドレスにトラストラインを開くことを防ぎます。予防措置として、運用アドレスと待機アドレスでこの設定を有効にすることで、誤ってこれらのアカウントからトークンを発行できないようにします。発行アドレスではこの設定を有効にしないでください。 -この設定を有効にするには、[AccountSetトランザクション](accountset.html)で`"SetFlag": 15` (`asfDisallowIncomingTrustline`)を設定します。 +この設定を有効にするには、[AccountSetトランザクション](../../../../references/protocol/transactions/types/accountset.md)で`"SetFlag": 15` (`asfDisallowIncomingTrustline`)を設定します。 ## Disallow XRP @@ -64,18 +64,18 @@ Require Authの設定は、事前にトラストラインを明示的に承認 また、トラストラインを認可するたびに発行アドレスを使用する必要があります。多くのトラストラインを認可する必要がある場合、発行アドレスを頻繁に使用することになるため、発行アドレスのセキュリティが損なわれる可能性があります。(発行アドレスの使用頻度が少ない場合は、秘密鍵の保護を強化することができます。使用頻度が高ければ高いほど、その保護は大きな負担となります)。 -詳しくは[認可トラストライン](authorized-trust-lines.html)をご覧ください。 +詳しくは[認可トラストライン](../authorized-trust-lines.md)をご覧ください。 ## Tick Size -Tick Sizeは、[分散型取引所](decentralized-exchange.html)で為替レートを計算する際に使用する小数点以下の桁数を制御する設定です。Tick Sizeを大きくすると、より精度が高くなり、さまざまな取引の金額で丸め込みが少なくなります。取引は主に取引レートに基づいてランク付けされるため、トレーダーがリストの上位にわずかな金額を提供することができるため、精度が高すぎると不都合になることがあります。Tick Sizeを小さくすると、オークションの最低入札額と同じような効果があり、無関係な小額を徐々に入札する時間と労力が省けます。しかし、Tick Sizeを小さくすると四捨五入が多くなり、取引コストが高くなります。また、四捨五入前は完全に一致するように見えた2つのオファーが、四捨五入後は一致しなくなるという意外な結果になることもあります。 +Tick Sizeは、[分散型取引所](../../decentralized-exchange/index.md)で為替レートを計算する際に使用する小数点以下の桁数を制御する設定です。Tick Sizeを大きくすると、より精度が高くなり、さまざまな取引の金額で丸め込みが少なくなります。取引は主に取引レートに基づいてランク付けされるため、トレーダーがリストの上位にわずかな金額を提供することができるため、精度が高すぎると不都合になることがあります。Tick Sizeを小さくすると、オークションの最低入札額と同じような効果があり、無関係な小額を徐々に入札する時間と労力が省けます。しかし、Tick Sizeを小さくすると四捨五入が多くなり、取引コストが高くなります。また、四捨五入前は完全に一致するように見えた2つのオファーが、四捨五入後は一致しなくなるという意外な結果になることもあります。 Tick Sizeはアカウントレベルの設定であり、同じアドレスで発行されたすべてのトークンに適用されます。 Tick Sizeは取引レートの精度を制御するだけで、トークン自体の精度を制御するものではありません。ユーザは、トークンの発行者が設定したTick Sizeに関係なく、非常に大きな金額や非常に小さな金額を送ったり保有したりすることができます。 -詳しくは[Tick Size](ticksize.html)をご覧ください。 +詳しくは[Tick Size](../../decentralized-exchange/ticksize.md)をご覧ください。 ## Transfer Fees @@ -86,7 +86,7 @@ Transfer Feesは、ユーザ同士がトークンを送金する際に、一定 プロトコルレベルでは、送金手数料はアカウント設定の`TransferRate`で定義され、これは10億から20億までの整数で指定されます。 -詳しくは[送金手数料](transfer-fees.html)をご覧ください。 +詳しくは[送金手数料](../../transfer-fees.md)をご覧ください。 ### 運用アドレスと待機アドレスによる送金手数料 @@ -98,4 +98,3 @@ Transfer Feesは、ユーザ同士がトークンを送金する際に、一定 **注記:** 発行アドレスから、または発行アドレスへ直接トークンを送信する場合、送金手数料は適用されません。発行アドレスは、常にそのトークンをXRP Ledgerの額面価格で受け入れなければなりません。つまり、顧客が発行アドレスに直接支払いを送る場合は送金手数料を支払う必要はありませんが、運用アドレスに送る場合は支払う必要があります。両方のアドレスで支払いを受け付ける場合、顧客が運用アドレスに支払いを送る際に、顧客が支払う送金手数料を補うために、記録システムで顧客に入金する金額を調整する必要がある場合があります。 例えば、次のようなものです。ACMEが送金手数料を1%に設定した場合、顧客のアドレスからACMEの発行アドレスに5 EUR.ACMEを届けるためのXRP Ledger支払いは、ちょうど5 EUR.ACMEの費用がかかります。しかし、顧客は5 EUR.ACMEをACMEの運用アドレスに届けるために、5.05 EUR.ACMEを送る必要があります。ACMEの運用アドレスへの支払いを顧客に入金する際、ACMEは運用アドレスに届けられた金額と送金手数料を顧客に入金し、顧客はACMEのシステムで5.05ユーロを受け取ることができます。 - diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/precautions.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/precautions.md index 10aef5e6b7..fab2a332fa 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/precautions.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/precautions.md @@ -12,17 +12,17 @@ XRP Ledgerとの間の決済処理には当然リスクが伴いますので、 ## インフラストラクチャ -あなた自身のセキュリティとネットワークの安定性のために、XRP Ledgerを利用する事業者は、1つの[バリデータ](rippled-server-modes.html#validators)を含む[独自のXRP Ledgerサーバ](install-rippled.html)を実行すべきです。 +あなた自身のセキュリティとネットワークの安定性のために、XRP Ledgerを利用する事業者は、1つの[バリデータ](../../../networks-and-servers/rippled-server-modes.md#validators)を含む[独自のXRP Ledgerサーバ](../../../../infrastructure/installation/index.md)を実行すべきです。 ## ツールのセキュリティ -XRP Ledgerのトランザクションを送信する際には、秘密鍵を使って署名する必要があります。秘密鍵は、あなたのXRP Ledgerアドレスを完全にコントロールします。秘密鍵を他人が運営するサーバに決して送らないでください。自身のサーバを使うか、クライアントライブラリを使ってローカルでトランザクションに署名してください。安全な設定の手順と例については、[安全な署名の設定](secure-signing.html)をご覧ください。 +XRP Ledgerのトランザクションを送信する際には、秘密鍵を使って署名する必要があります。秘密鍵は、あなたのXRP Ledgerアドレスを完全にコントロールします。秘密鍵を他人が運営するサーバに決して送らないでください。自身のサーバを使うか、クライアントライブラリを使ってローカルでトランザクションに署名してください。安全な設定の手順と例については、[安全な署名の設定](../../../transactions/secure-signing.md)をご覧ください。 XRP Ledgerへの接続方法は、ニーズや既存のソフトウェアに応じて、いくつかのインターフェイスを使用することができます。 -- [HTTP / WebSocket API](http-websocket-apis.html)は、XRP Ledgerのすべてのコア機能への低レベルのインターフェースとして使用することができます。 -- [クライアントライブラリ](client-libraries.html)は、いくつかのプログラミング言語で利用でき、XRP Ledgerにアクセスするための便利なユーティリティを提供します。 +- [HTTP / WebSocket API](../../../../references/http-websocket-apis/index.md)は、XRP Ledgerのすべてのコア機能への低レベルのインターフェースとして使用することができます。 +- [クライアントライブラリ](../../../../references/client-libraries.md)は、いくつかのプログラミング言語で利用でき、XRP Ledgerにアクセスするための便利なユーティリティを提供します。 - その他、[xApps](https://xumm.readme.io/docs/xapps)などのツールも利用可能です。 - サードパーティのウォレットアプリケーションも、特に待機アドレスの担当者には便利かもしれません。 @@ -31,24 +31,24 @@ XRP Ledgerへの接続方法は、ニーズや既存のソフトウェアに応 ## XRP Ledgerからの送金 -XRP Ledgerから送金を受ける際、プロセスや統合ソフトウェアが悪用されることのないよう、いつ送金が確定したかを把握し、正しい金額を顧客にクレジットすることが重要です。詳細とよくある落とし穴については、[入金のモニタリング](robustly-monitoring-for-payments.html)をご覧ください。 +XRP Ledgerから送金を受ける際、プロセスや統合ソフトウェアが悪用されることのないよう、いつ送金が確定したかを把握し、正しい金額を顧客にクレジットすることが重要です。詳細とよくある落とし穴については、[入金のモニタリング](../../../payment-types/robustly-monitoring-for-payments.md)をご覧ください。 -予期しない、または不要な支払いを受け取った場合の標準的な対応は、送信者にそれを返却することです。追加費用を発生させずにこれを行う方法の詳細については、[不明な入金の返金](bouncing-payments.html)をご覧ください。 +予期しない、または不要な支払いを受け取った場合の標準的な対応は、送信者にそれを返却することです。追加費用を発生させずにこれを行う方法の詳細については、[不明な入金の返金](../../../payment-types/bouncing-payments.md)をご覧ください。 -XRP Ledgerからの支払いを処理する前に、顧客の身元を確認してください。そうすることで、匿名の攻撃者による詐欺が難しくなります。ほとんどのマネーロンダリング対策規制は、いずれにせよこの確認を要求しています。XRP Ledgerから送金するユーザは、XRP Ledgerで最初にお金を受け取ったユーザとは異なる可能性があるため、これは特に重要です。詳しくは、[ステーブルコインのコンプライアンス指針](stablecoin-compliance-guidelines.html)をご覧ください。 +XRP Ledgerからの支払いを処理する前に、顧客の身元を確認してください。そうすることで、匿名の攻撃者による詐欺が難しくなります。ほとんどのマネーロンダリング対策規制は、いずれにせよこの確認を要求しています。XRP Ledgerから送金するユーザは、XRP Ledgerで最初にお金を受け取ったユーザとは異なる可能性があるため、これは特に重要です。詳しくは、[ステーブルコインのコンプライアンス指針](compliance-guidelines.md)をご覧ください。 ## XRP Ledgerへの送金 -XRP Ledgerに送金を行う際には、手数料の過払いや迂回経路を避けるため、ベストプラクティスに従ってください。詳しくは[顧客への送金](sending-payments-to-customers.html)をご覧ください。 +XRP Ledgerに送金を行う際には、手数料の過払いや迂回経路を避けるため、ベストプラクティスに従ってください。詳しくは[顧客への送金](../../../payment-types/sending-payments-to-customers.md)をご覧ください。 銀行預金やクレジット/デビット決済など、外部システムからの支払いを受け入れる場合は、可逆的な入金に注意してください。XRP Ledgerの支払いは不可逆ですが、他の多くのデジタル支払いはそうではありません。詐欺師はこれを悪用し、あなたがすでにXRP Ledgerの支払いを送った後に、XRPL以外の取引をキャンセルすることで、元金を取り戻すことができます。 -さらに、停電やネットワーク停止のようなまれな状況でも、XRP Ledgerのトランザクションの最終結果を確実に知ることができるように、[信頼できるトランザクションの送信](reliable-transaction-submission.html)に従ってください。 +さらに、停電やネットワーク停止のようなまれな状況でも、XRP Ledgerのトランザクションの最終結果を確実に知ることができるように、[信頼できるトランザクションの送信](../../../transactions/reliable-transaction-submission.md)に従ってください。 ## その他の注意事項 - XRP Ledger内の債務と残高を追跡し、担保口座の資産と比較してください。両者が一致しない場合は、不一致を解決するまで引き出しと入金の処理を停止してください。 -- 曖昧な状況を避けてください。すべてのアドレスで適切な設定を行うことで、誤って間違ったアドレスからトークンを発行したり、ユーザーが間違った場所に送金したりするようなケースを避けることができます。推奨事項については、[ステーブルコインの設定](stablecoin-configuration.html)をご覧ください。 +- 曖昧な状況を避けてください。すべてのアドレスで適切な設定を行うことで、誤って間違ったアドレスからトークンを発行したり、ユーザーが間違った場所に送金したりするようなケースを避けることができます。推奨事項については、[ステーブルコインの設定](configuration.md)をご覧ください。 - 疑わしい行動や不正な行動を監視します。例えば、ユーザーがXRP Ledgerに繰り返し資金を出し入れすることで、実質的に運用アドレスの残高を空にするサービス拒否攻撃が可能です。XRP Ledgerの支払いを処理しないことで、そのアドレスが疑わしい行動に関与している顧客を一時停止します。 diff --git a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/settings.md b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/settings.md index f1437d21f0..ee6dfc3f48 100644 --- a/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/settings.md +++ b/content/@i18n/ja/concepts/tokens/fungible-tokens/stablecoins/settings.md @@ -31,16 +31,16 @@ labels: ユーザが送金手数料ありのトークンを送信すると、送信側からは送信金額に加えて送金手数料が引き落とされ、受信側には送信金額のみが入金されます。送金手数料の金額はXRP Ledgerから「消滅」します。つまり、ユーザが送金手数料を支払うたびに、担保として保持する必要のある金額が減少するのです。 -詳しくは[送金手数料](transfer-fees.html)をご覧ください。 +詳しくは[送金手数料](../../transfer-fees.md)をご覧ください。 ## ティックサイズの設定 -ティックサイズは、[分散型取引所](decentralized-exchange.html)で取引レートを計算する際に使用される小数点以下の桁数を制御します。ティックサイズが大きいほど(小数点以下の桁数が多いほど)精度が高くなり、さまざまな取引金額の四捨五入が少なくなります。ティックサイズが小さいほど、オークションにおける最低入札額と同じように機能し、無駄に小さい金額で徐々に価格を競り上げる時間と労力を節約できます。 +ティックサイズは、[分散型取引所](../../decentralized-exchange/index.md)で取引レートを計算する際に使用される小数点以下の桁数を制御します。ティックサイズが大きいほど(小数点以下の桁数が多いほど)精度が高くなり、さまざまな取引金額の四捨五入が少なくなります。ティックサイズが小さいほど、オークションにおける最低入札額と同じように機能し、無駄に小さい金額で徐々に価格を競り上げる時間と労力を節約できます。 ティックサイズはアカウントレベルの設定で、同じアドレスで発行されたすべてのトークンに適用されます。 -[ティックサイズ](ticksize.html)をご覧ください。 +[ティックサイズ](../../decentralized-exchange/ticksize.md)をご覧ください。 ## Default Rippleフラグの設定 @@ -49,14 +49,14 @@ Default Rippleフラグはトラストラインの残高をデフォルトでRip 顧客に発行アドレスへのトラストラインの作成を依頼する前に、発行アドレスのDefault Rippleフラグを有効にしてください。そうでない場合は、他のアドレスが作成したトラストラインごとに、個別にNo Rippleフラグを無効にする必要があります。 -[Rippling](rippling.html)をご覧ください。 +[Rippling](../rippling.md)をご覧ください。 ## 宛先タグの有効化 ステーブルコインのアプリケーションが複数の顧客の代わりにトランザクションを処理する場合、どのアカウントに入金すべきかがわからないことがあります。宛先タグは、送金者に受取人や送金先を指定させることで、このような状況を回避するのに役立ちます。RequireDestフラグを有効にするには、`AccountSet`トランザクションの`SetFlag`フィールドに`asfRequireDest`値(1)を設定してください。 -[送信元と送信先のタグ](source-and-destination-tags.html)をご覧ください。 +[送信元と送信先のタグ](../../../transactions/source-and-destination-tags.md)をご覧ください。 ## 資産の管理機能 @@ -67,7 +67,7 @@ Default Rippleフラグはトラストラインの残高をデフォルトでRip KYC(Know Your Customer)やAML(Anti-Money Laundering)などのコンプライアンスルールに従う必要がある場合、トラストラインを使用して、ステーブルコインの配布を許可されたプールを作成することができます。これにより、資金が誰に送金されるかを確認することができます。 -[認可トラストライン](authorized-trust-lines.html)をご覧ください。 +[認可トラストライン](../authorized-trust-lines.md)をご覧ください。 ### Freezeフラグ @@ -76,16 +76,16 @@ KYC(Know Your Customer)やAML(Anti-Money Laundering)などのコンプライア 逆に、トークンを凍結する能力を永久に放棄する「No Freeze」を設定することもできます。これにより、発行者がトークン同士の取引を妨害でき無くなるという意味で、そのステーブルコインはより現実の通貨に近くなります。 -[トークンの凍結](freezes.html)をご覧ください。 +[トークンの凍結](../freezes.md)をご覧ください。 ### Clawbackフラグ -_([Clawback amendment](known-amendments.html#clawback) :not_enabled: が必要です。)_ +_([Clawback amendment](../../../../resources/known-amendments.md#clawback) {% not-enabled /%} が必要です。)_ Clawbackにより、特定の状況下でトラストラインからステーブルコインを回収(クローバック)することができます。これにより、アカウントへのアクセス不能や悪意のある活動などの課題に対応する能力が追加されます。 -[Clawback](clawback.html)をご覧ください。 +[Clawback](../../../../references/protocol/transactions/types/clawback.md)をご覧ください。 ### 固定供給量 diff --git a/content/@i18n/ja/concepts/tokens/index.md b/content/@i18n/ja/concepts/tokens/index.md index 93992ca4e1..5ba3d12e96 100644 --- a/content/@i18n/ja/concepts/tokens/index.md +++ b/content/@i18n/ja/concepts/tokens/index.md @@ -7,15 +7,15 @@ labels: --- # トークン -XRP以外のすべての資産は、XRP Ledgerでは **トークン** として扱うことができます。通常のトークンは、アカウント間の[トラストライン](trust-lines-and-issuing.html) と呼ばれる関係で管理されます。すべてのアカウントは、トークンを保有することを許可する他のアカウントにあトークンを発行できますが、トークンを必要としないアカウントに一方的にトークンを配付することはできません。トークンは、台帳の外に存在する資産に裏付けられた「ステーブルコイン」、XRP Ledger上で独自に作成された純粋なデジタルトークン、コミュニティクレジットなど、様々な種類の価値を表すことが出来ます。 +XRP以外のすべての資産は、XRP Ledgerでは **トークン** として扱うことができます。通常のトークンは、アカウント間の[トラストライン](fungible-tokens/index.md) と呼ばれる関係で管理されます。すべてのアカウントは、トークンを保有することを許可する他のアカウントにあトークンを発行できますが、トークンを必要としないアカウントに一方的にトークンを配付することはできません。トークンは、台帳の外に存在する資産に裏付けられた「ステーブルコイン」、XRP Ledger上で独自に作成された純粋なデジタルトークン、コミュニティクレジットなど、様々な種類の価値を表すことが出来ます。 **注記:** XRP Ledger上のトークンは、過去に「IOUs」([I-owe-you](https://en.wikipedia.org/wiki/IOU)の略)および「発行済み通貨」とも呼ばれてきました。しかし、これらの呼称は、XRP Ledgerのトークンが表すことのできるデジタル資産の全範囲をカバーしていないため、望ましくないとされています。 -通常のトークンは代替可能です。つまり、同じトークンはすべて代替可能であり、区別がつきません。非代替トークン(NFT)も可能です。XRP Ledgerでのネイティブ対応の詳細については、[非代替トークン(NFT)](non-fungible-tokens.html)を参照してください。 +通常のトークンは代替可能です。つまり、同じトークンはすべて代替可能であり、区別がつきません。非代替トークン(NFT)も可能です。XRP Ledgerでのネイティブ対応の詳細については、[非代替トークン(NFT)](nfts/index.md)を参照してください。 -トークンは[クロスカレンシー支払い](cross-currency-payments.html)に使用でき、[分散型取引所(DEX)](decentralized-exchange.html)で取引することができます。 +トークンは[クロスカレンシー支払い](../payment-types/cross-currency-payments.md)に使用でき、[分散型取引所(DEX)](decentralized-exchange/index.md)で取引することができます。 -トラストラインの残高は、どちら側から見るかによって、プラスまたはマイナスで表されます。マイナスの残高を持つ側は「発行者」と呼ばれ、そのトークンに関するいくつかの機能を設定することができます。発行者ではない別のアカウントにトークンを送ると、それらのトークンは発行者、場合によっては同じ通貨コードを使用している他のアカウントに「ripple」します。これは便利な場合もありますが、想定外の挙動を引き起こす可能性もあります。トラストラインに[No Ripple flag](rippling.html)を使用すると、トラストラインがripplingしないように設定することができます。 +トラストラインの残高は、どちら側から見るかによって、プラスまたはマイナスで表されます。マイナスの残高を持つ側は「発行者」と呼ばれ、そのトークンに関するいくつかの機能を設定することができます。発行者ではない別のアカウントにトークンを送ると、それらのトークンは発行者、場合によっては同じ通貨コードを使用している他のアカウントに「ripple」します。これは便利な場合もありますが、想定外の挙動を引き起こす可能性もあります。トラストラインに[No Ripple flag](fungible-tokens/rippling.md)を使用すると、トラストラインがripplingしないように設定することができます。 ## ステーブルコイン @@ -25,15 +25,15 @@ XRP Ledger におけるトークンの代表的なモデルとして、発行者 実際には、XRP Ledger はただのシステムであり、その外側にいかなるルールも適用することはできません。そのため、XRP Ledger上のステーブルコインは、その発行者を信頼し、その発行者が要求に応じてトークンを現物資産へ交換することができなければ、そのステーブルコインの価値が維持されないと考えるべきでしょう。ユーザは、誰がトークンを発行しているのか、信頼できるのか、合法的なのか、支払能力があるのか、という点について十分に注意をしなければなりません。信頼できない場合は、そのトークンを保有するべきではないでしょう。 -[Stablecoin Issuer](stablecoin-issuer.html)をご覧ください。 +[Stablecoin Issuer](../../use-cases/tokenization/stablecoin-issuer.md)をご覧ください。 ## コミュニティクレジット -XRP Ledgerのもう一つの利用方法として、「コミュニティクレジット」という、知人同士がXRP Ledgerを利用して、誰が誰にいくら借金があるのかを把握する仕組みがあります。この借金を自動的かつアトミックに活用し、[rippling](rippling.html)を通じて支払いを決済できるのが、XRP Ledgerの優れた機能です。 +XRP Ledgerのもう一つの利用方法として、「コミュニティクレジット」という、知人同士がXRP Ledgerを利用して、誰が誰にいくら借金があるのかを把握する仕組みがあります。この借金を自動的かつアトミックに活用し、[rippling](fungible-tokens/rippling.md)を通じて支払いを決済できるのが、XRP Ledgerの優れた機能です。 例えば、AsheeshがMarcusに20ドル、MarcusがBharathに50ドルの借金がある場合、BharathはAsheeshのMarcusに対する借金を帳消しにする代わりに、その分のMarcusに対する借金を帳消しすることによってAsheeshに20ドルを「支払う」ことができる。逆もまた可能である。AsheeshはMarcusを通してBharathに支払うことで、それぞれの負債を減らすことができるのです。XRP Ledgerは、このように複雑な連鎖的な取引を、中間にいるアカウントが何もせずとも、単一の取引で決済することができるのです。 -このタイプの使用法については、[paths](paths.html)を参照してください。 +このタイプの使用法については、[paths](fungible-tokens/paths.md)を参照してください。 ## その他のトークン @@ -45,36 +45,33 @@ XRP Ledgerで発行されるトークンには、その他にも使用例があ ## トークンの特性 -XRP Ledgerにおけるトークンは、[XRPと異なる性質](currency-formats.html#comparison)を持ちます。トークンは常に _トラストライン内_ に存在し、トークンのすべての移動はトラストラインに沿って行われます。他のアカウントに、トラストラインに設定された上限を超えるトークンを保有させることはできません。(自分のトラストラインを制限以上に増やすことは _可能_ です。例えば、[分散型取引所](decentralized-exchange.html)でさらに購入したり、すでにプラスの残高がある状態で上限値を下げたりすることができます。) +XRP Ledgerにおけるトークンは、[XRPと異なる性質](../../references/protocol/data-types/currency-formats.md#comparison)を持ちます。トークンは常に _トラストライン内_ に存在し、トークンのすべての移動はトラストラインに沿って行われます。他のアカウントに、トラストラインに設定された上限を超えるトークンを保有させることはできません。(自分のトラストラインを制限以上に増やすことは _可能_ です。例えば、[分散型取引所](decentralized-exchange/index.md)でさらに購入したり、すでにプラスの残高がある状態で上限値を下げたりすることができます。) トークンは、精度が15桁の10進数(基数10)と指数を用いて、非常に大きな値(最大9999999999999999×1080)から、非常に小さな値(最小1.0×10-81まで)を表現することができます。 -必要なトラストラインが設定されていれば、誰でも[Paymentトランザクション][]を送信することでトークンを発行することができます。トークンを発行者に送り返せば、トークンを「burn」することができます。また、発行者の設定により、[クロスカレンシー支払い](cross-currency-payments.html)やトレードでトークンをさらに生み出せるケースもあります。 +必要なトラストラインが設定されていれば、誰でも[Paymentトランザクション][]を送信することでトークンを発行することができます。トークンを発行者に送り返せば、トークンを「burn」することができます。また、発行者の設定により、[クロスカレンシー支払い](../payment-types/cross-currency-payments.md)やトレードでトークンをさらに生み出せるケースもあります。 -発行者は、ユーザがトークンを送金する際に自動で差し引かれる「送金手数料」(transfer-fees.html)を設定することができます。発行者は、自分のトークンを含む取引レートの[ティックサイズ](ticksize.html)を定義することもできます。発行者と一般アカウントのどちらも、トラストラインを[凍結](freezes.html)することができ、トラストライン内のトークンの使用方法を制限することができます。( XRPにはこのいずれも適用されません。) +発行者は、ユーザがトークンを送金する際に自動で差し引かれる「送金手数料」(transfer-fees.html)を設定することができます。発行者は、自分のトークンを含む取引レートの[ティックサイズ](decentralized-exchange/ticksize.md)を定義することもできます。発行者と一般アカウントのどちらも、トラストラインを[凍結](fungible-tokens/freezes.md)することができ、トラストライン内のトークンの使用方法を制限することができます。( XRPにはこのいずれも適用されません。) -トークン発行の技術的な手順については、[代替可能トークンの発行](issue-a-fungible-token.html) を参照してください。 +トークン発行の技術的な手順については、[代替可能トークンの発行](../../tutorials/use-tokens/issue-a-fungible-token.md) を参照してください。 ## 関連項目 - **コンセプト:** - - [XRP?](what-is-xrp.html) - - [クロスカレンシー支払い](cross-currency-payments.html) - - [分散型取引所](decentralized-exchange.html) + - [XRP?](../../introduction/what-is-xrp.md) + - [クロスカレンシー支払い](../payment-types/cross-currency-payments.md) + - [分散型取引所](decentralized-exchange/index.md) - **チュートリアル:** - - [代替可能トークンの発行](issue-a-fungible-token.html) - - [XRP Ledgerゲートウェイの開設](stablecoin-issuer.html) - - [トランザクションの結果の確認](look-up-transaction-results.html) - - [専門化した支払いタイプの使用](use-specialized-payment-types.html) + - [代替可能トークンの発行](../../tutorials/use-tokens/issue-a-fungible-token.md) + - [XRP Ledgerゲートウェイの開設](../../use-cases/tokenization/stablecoin-issuer.md) + - [トランザクションの結果の確認](../transactions/finality-of-results/look-up-transaction-results.md) + - [専門化した支払いタイプの使用](../../tutorials/tasks/use-specialized-payment-types/index.md) - **リファレンス:** - [Paymentトランザクション][] - [TrustSetトランザクション][] - - [RippleStateオブジェクト](ripplestate.html) + - [RippleStateオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) - [account_linesメソッド][] - [account_currenciesメソッド][] - [gateway_balancesメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/nfts/authorizing-another-minter.md b/content/@i18n/ja/concepts/tokens/nfts/authorizing-another-minter.md index 0a0e4d33bf..a015717282 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/authorizing-another-minter.md +++ b/content/@i18n/ja/concepts/tokens/nfts/authorizing-another-minter.md @@ -55,4 +55,3 @@ const transactionBlob = { ``` NFTの所有者がNFTを売却した場合、取引手数料(売却額に対する割合)が`Issuer`に指定したアカウントに送金されまれます。 - diff --git a/content/@i18n/ja/concepts/tokens/nfts/batch-minting.md b/content/@i18n/ja/concepts/tokens/nfts/batch-minting.md index 89a6320bf9..b2dcb95289 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/batch-minting.md +++ b/content/@i18n/ja/concepts/tokens/nfts/batch-minting.md @@ -25,9 +25,9 @@ NFTokenオブジェクトの初回販売以前の市場活動は、XRP Ledgerに ## スクリプトMinting -プログラムまたはスクリプトを使用して、一度に多数のトークンをMintします。[チケット](tickets.html)を使えば、1度に200件までのトランザクションを並行して処理することができます。 +プログラムまたはスクリプトを使用して、一度に多数のトークンをMintします。[チケット](../../accounts/tickets.md)を使えば、1度に200件までのトランザクションを並行して処理することができます。 -実用例としては、チュートリアルの[JavaScriptでNFTをバッチMint](batch-mint-nfts-using-javascript.html)をご覧ください +実用例としては、チュートリアルの[JavaScriptでNFTをバッチMint](../../../tutorials/quickstart/batch-mint-nfts-using-javascript.md)をご覧ください ### メリット @@ -36,4 +36,4 @@ NFTokenオブジェクトの初回販売以前の市場活動は、XRP Ledgerに ### デメリット -NFTokenオブジェクトをMintする際には、[準備金要件](reserves.html)を満たす必要があります。目安としては、現在の準備金レートで、NFTokenオブジェクトあたりおよそ1/12XRPです。十分なXRPがない場合は、XRPが調達できるまで、Mintトランザクションは失敗します。 +NFTokenオブジェクトをMintする際には、[準備金要件](../../accounts/reserves.md)を満たす必要があります。目安としては、現在の準備金レートで、NFTokenオブジェクトあたりおよそ1/12XRPです。十分なXRPがない場合は、XRPが調達できるまで、Mintトランザクションは失敗します。 diff --git a/content/@i18n/ja/concepts/tokens/nfts/collections.md b/content/@i18n/ja/concepts/tokens/nfts/collections.md index d459efdbaf..84845c4136 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/collections.md +++ b/content/@i18n/ja/concepts/tokens/nfts/collections.md @@ -13,4 +13,4 @@ labels: `NFTokenTaxon`フィールドは必須ですが、コレクションを作成するつもりがなければ`0`を設定するのもよいでしょう。 -[NFTokenの分類群](nftoken.html#nftokentaxon分類群)を参照してください。 +[NFTokenの分類群](../../../references/protocol/data-types/nftoken.md#nftokentaxon分類群)を参照してください。 diff --git a/content/@i18n/ja/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md b/content/@i18n/ja/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md index 8735bbc3af..55f1efeb30 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md +++ b/content/@i18n/ja/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md @@ -11,11 +11,11 @@ labels: 一定数のNFTを保証するためには、 -1. 新しいアカウント、_発行者_ を作成し、資金を提供します。このアカウントは、コレクション内のトークンの発行者となります。[アカウントの作成](accounts.html#アカウントの作成)を参照してください。 -1. `AccountSet`を使用して、自分の運用するウォレットを発行者の認可Minterとして割り当てます。[代理Mint](nftoken-authorized-minting.html)を参照してください。 -1. 運用アカウントで`NFTokenMint`を使ってトークンをミントします。運用中のウォレットには、発行者のためにMintされたすべてのトークンが保管されます。[Mintのバッチ処理](nftoken-batch-minting.html)をご覧ください +1. 新しいアカウント、_発行者_ を作成し、資金を提供します。このアカウントは、コレクション内のトークンの発行者となります。[アカウントの作成](../../accounts/accounts.md#アカウントの作成)を参照してください。 +1. `AccountSet`を使用して、自分の運用するウォレットを発行者の認可Minterとして割り当てます。[代理Mint](authorizing-another-minter.md)を参照してください。 +1. 運用アカウントで`NFTokenMint`を使ってトークンをミントします。運用中のウォレットには、発行者のためにMintされたすべてのトークンが保管されます。[Mintのバッチ処理](batch-minting.md)をご覧ください 1. 発行者の認可Minterである自分の運用するウォレットを削除するために、`AccountSet`を使用します。 -1. 発行者アカウントを"ブラックホール化"する。[マスターキーペアの無効化](disable-master-key-pair.html)をご覧ください。 +1. 発行者アカウントを"ブラックホール化"する。[マスターキーペアの無効化](../../../tutorials/manage-account-settings/disable-master-key-pair.md)をご覧ください。 この時点で、発行者のアドレスを発行アカウントとする新たなトークンのミントは不可能となります。 diff --git a/content/@i18n/ja/concepts/tokens/nfts/index.md b/content/@i18n/ja/concepts/tokens/nfts/index.md index 2fe655cf9b..dbd366069a 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/index.md +++ b/content/@i18n/ja/concepts/tokens/nfts/index.md @@ -18,7 +18,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ XRP Ledger上では、non-fungible tokenは[NFToken][]オブジェクトとして表されます。NFTokenはユニークで分割できない単位で、決済には使用できません。ユーザーはこのようなトークンを発行(作成)、保有、購入、売却、焼却(破棄)することができます。 -XRP Ledgerでは、容量を節約するために、一つのアカウントで最大32個の`NFToken`オブジェクトを一つの[NFTokenPageオブジェクト][]に格納します。その結果、所有者の`NFToken`オブジェクトに対する[準備金](reserves.html)は、追加のトークンを格納するためにレジャーが新しいページを作成する場合にのみ増加します。 +XRP Ledgerでは、容量を節約するために、一つのアカウントで最大32個の`NFToken`オブジェクトを一つの[NFTokenPageオブジェクト][]に格納します。その結果、所有者の`NFToken`オブジェクトに対する[準備金](../../accounts/reserves.md)は、追加のトークンを格納するためにレジャーが新しいページを作成する場合にのみ増加します。 また、アカウントは、自分に代わってNFTokenオブジェクトを発行・販売するブローカー(代理発行者)を指定することができます。 @@ -28,7 +28,7 @@ XRP Ledgerでは、容量を節約するために、一つのアカウントで - 発行者が、現在の保有者に関係なく、トークンを焼却できるかどうか。 - トークンの保持者がトークンを他者に転送できるかどうか。(`NFToken`は常に発行者に直接送信したり、発行者から送信することが可能です)。 - 転送が許可されている場合、発行者は販売価格に対する一定の割合で手数料を徴収することができます。 -- NFTokenを[トークン](tokens.html)で売却できるか、XRPのみでしか売却できないか。 +- NFTokenを[トークン](../index.md)で売却できるか、XRPのみでしか売却できないか。 ## `NFToken`のライフサイクル @@ -36,11 +36,8 @@ XRP Ledgerでは、容量を節約するために、一つのアカウントで [NFTokenBurn トランザクション][]を使用して、自分が所有する`NFToken`を破棄することができます。発行者が`tfBurnable`フラグを有効にしてトークンを発行した場合、発行者は現在の所有者に関係なくトークンを破棄することが可能です。(例えば、あるイベントのチケットを表すトークンである場合、そのチケットをある時点で消費するといった場合に便利です)。 -![The NFT Lifecycle](img/nft-lifecycle.png "NFT Lifecycle Image") +![The NFT Lifecycle](/img/nft-lifecycle.png "NFT Lifecycle Image") -`NFToken`オブジェクトの転送に関する詳細は、[XRP Ledger上でNFTokenを売買する](non-fungible-token-transfers.html)をご覧ください。 +`NFToken`オブジェクトの転送に関する詳細は、[XRP Ledger上でNFTokenを売買する](trading.md)をご覧ください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/nfts/nft-apis.md b/content/@i18n/ja/concepts/tokens/nfts/nft-apis.md index ebecefbc49..8c1e2c0f05 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/nft-apis.md +++ b/content/@i18n/ja/concepts/tokens/nfts/nft-apis.md @@ -42,16 +42,13 @@ Clioサーバは、キャッシュに基づいて情報のリクエストを処 ### Clio特有のNFTのリクエスト -- [nft_info](nft_info.html) - 指定されたNFTに関する現在のステータスを取得します。 -- [nft_history](nft_history.html) - 指定されたNFTの過去のトランザクションメタデータを取得します。 +- [nft_info](../../../references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md) - 指定されたNFTに関する現在のステータスを取得します。 +- [nft_history](../../../references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md) - 指定されたNFTの過去のトランザクションメタデータを取得します。 -パブリックClioサーバにアクセスするには、そのURLとClioポート(通常51233)にリクエストを送信します。パブリックClio APIサーバには、SLAも優先的に処理する責任もありません。ビジネスユースケースで継続的な監視や情報リクエストが必要な場合は、独自のClioサーバインスタンスをセットアップすることを検討してください。[UbuntuにClioをインストール](install-clio-on-ubuntu.html)をご覧ください。 +パブリックClioサーバにアクセスするには、そのURLとClioポート(通常51233)にリクエストを送信します。パブリックClio APIサーバには、SLAも優先的に処理する責任もありません。ビジネスユースケースで継続的な監視や情報リクエストが必要な場合は、独自のClioサーバインスタンスをセットアップすることを検討してください。[UbuntuにClioをインストール](../../../infrastructure/installation/install-clio-on-ubuntu.md)をご覧ください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/nfts/reserve-requirements.md b/content/@i18n/ja/concepts/tokens/nfts/reserve-requirements.md index 837aed52bf..c07a1369bd 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/reserve-requirements.md +++ b/content/@i18n/ja/concepts/tokens/nfts/reserve-requirements.md @@ -11,11 +11,11 @@ NFTをミントし、保有し、販売するためには、XRPを準備金と ## 基本準備金 -アカウントでは、基本準備金(現在10XRP)を用意する必要があります。基本準備金のXRPの金額は変更される可能性があります。[基本準備金と所有者準備金](reserves.html#基本準備金と所有者準備金)を参照してください。 +アカウントでは、基本準備金(現在10XRP)を用意する必要があります。基本準備金のXRPの金額は変更される可能性があります。[基本準備金と所有者準備金](../../accounts/reserves.md#基本準備金と所有者準備金)を参照してください。 ## 所有者準備金 -XRP Ledgerで所有する各オブジェクトには、現在2XRPの所有者準備金が必要とされています。これは、ユーザーが不必要なデータで台帳にスパムをかけることを抑制し、不要になったデータを削除することを促すためのものです。所有者準備金の額は変更される可能性があります。[基本準備金と所有者準備金](reserves.html#基本準備金と所有者準備金)を参照してください。 +XRP Ledgerで所有する各オブジェクトには、現在2XRPの所有者準備金が必要とされています。これは、ユーザーが不必要なデータで台帳にスパムをかけることを抑制し、不要になったデータを削除することを促すためのものです。所有者準備金の額は変更される可能性があります。[基本準備金と所有者準備金](../../accounts/reserves.md#基本準備金と所有者準備金)を参照してください。 NFTの場合、 _オブジェクト_ はそれぞれのNFTを指すのではなく、アカウントが所有する`NFTokenPage`オブジェクトを指します。`NFTokenPage`オブジェクトは最大32個のNFTを格納することができます。 @@ -26,12 +26,12 @@ NFTの場合、 _オブジェクト_ はそれぞれのNFTを指すのではな NFTの保有枚数や保有ページ数によって、所有者準備金の総額がどの程度になるか、次の表に例を示します。 -| NFTの保有数 | 最良のケース | 標準的なケース | 最悪のケース | +| NFTの保有数 | 最良のケース | 標準的なケース | 最悪のケース | |:------------|:----------|:-------------|:-----------| -| 32以下 | 2 XRP | 2 XRP | 2 XRP | -| 50 | 4 XRP | 6 XRP | 8 XRP | -| 200 | 14 XRP | 18 XRP | 26 XRP | -| 1000 | 64 XRP | 84 XRP | 126 XRP | +| 32以下 | 2 XRP | 2 XRP | 2 XRP | +| 50 | 4 XRP | 6 XRP | 8 XRP | +| 200 | 14 XRP | 18 XRP | 26 XRP | +| 1000 | 64 XRP | 84 XRP | 126 XRP | ## `NFTokenOffer`の準備金 @@ -39,7 +39,7 @@ NFTの保有枚数や保有ページ数によって、所有者準備金の総 ## Practical Considerations -NFTをミントし、保有し、売買のオファーをする場合、必要な準備金は急激に膨れ上がる可能性があります。その結果、取引中にアカウントの残高が必要準備金を下回ることがあります。必要準備金を下回ると、XRPLでの取引が制限されることがあります。[必要準備金を下回る](reserves.html#必要準備金を下回る)を参照してください。 +NFTをミントし、保有し、売買のオファーをする場合、必要な準備金は急激に膨れ上がる可能性があります。その結果、取引中にアカウントの残高が必要準備金を下回ることがあります。必要準備金を下回ると、XRPLでの取引が制限されることがあります。[必要準備金を下回る](../../accounts/reserves.md#必要準備金を下回る)を参照してください。 新しいアカウントを作成し、NFTをミントし、XRP Ledgerに`NFTokenSellOffer`を作成する場合、最低14XRPが準備金として必要です。 @@ -63,4 +63,4 @@ NFTをミントし、保有し、売買のオファーをする場合、必要 | 合計 | 436 XRP | | | | -必要準備金の額が余裕を持って確保できる額を超える場合は、オンデマンドミントモデルを使用して、一度に保有するNFTとオファーの数を減らすことを検討してください。[オンデマンドMint](nftoken-batch-minting.html#オンデマンドmint-遅延minting)を参照してください。 +必要準備金の額が余裕を持って確保できる額を超える場合は、オンデマンドミントモデルを使用して、一度に保有するNFTとオファーの数を減らすことを検討してください。[オンデマンドMint](batch-minting.md#オンデマンドmint-遅延minting)を参照してください。 diff --git a/content/@i18n/ja/concepts/tokens/nfts/running-an-nft-auction.md b/content/@i18n/ja/concepts/tokens/nfts/running-an-nft-auction.md index f2744b168f..d30dc623a5 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/running-an-nft-auction.md +++ b/content/@i18n/ja/concepts/tokens/nfts/running-an-nft-auction.md @@ -21,7 +21,7 @@ labels: 最低落札価格ありのオークションとして、ブローカー方式で運営する。 -![ブローカー方式で最低落札価格ありのオークション](img/nft-auction1.png "ブローカー方式で最低落札価格ありのオークション") +![ブローカー方式で最低落札価格ありのオークション](/img/nft-auction1.png "ブローカー方式で最低落札価格ありのオークション") 1. 売り手はNFTを作成し,`NFTokenCreateOffer`を用い,ブローカーアカウントを宛先に設定して,オークションの最低落札価格を設定します。 1. 入札者は`NFTokenCreateOffer`を使ってオファーを出し、ブローカーアカウントを宛先として設定します。 @@ -43,7 +43,7 @@ labels: この3つのうち、最も複雑なワークフローとなります。 -![ブローカー方式で最低落札価格なしのオークション](img/nft-auction2.png "ブローカー方式で最低落札価格なしのオークション") +![ブローカー方式で最低落札価格なしのオークション](/img/nft-auction2.png "ブローカー方式で最低落札価格なしのオークション") 1. 売り手は`NFTokenMint`を使用してNFTを作成します。 1. 入札者は`NFTokenCreateOffer`を使って、ブローカーを宛先としてオファーを出します。 diff --git a/content/@i18n/ja/concepts/tokens/nfts/trading.md b/content/@i18n/ja/concepts/tokens/nfts/trading.md index 999997eb45..703b3f6b41 100644 --- a/content/@i18n/ja/concepts/tokens/nfts/trading.md +++ b/content/@i18n/ja/concepts/tokens/nfts/trading.md @@ -66,19 +66,15 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ 最も単純なワークフローでは、クリエイターが新しい`NFToken`を発行します。クリエイターは売却オファーを作成する際、最低売却価格を入力し、売却先にブローカーを設定します。購入希望者はブローカーを経由して`NFToken`に入札を行います。ブローカーは落札者を選び、取引を完了させ、ブローカー手数料を受け取ります。ベストプラクティスとして、ブローカーは`NFToken`に対して残っている購入オファーをすべてキャンセルします。 -![Brokered Mode with Reserve](img/nft-brokered-mode-with-reserve.png) +![Brokered Mode with Reserve](/img/nft-brokered-mode-with-reserve.png) もう1つのワークフローは、クリエイターが販売をよりコントロールできるようにするものです。このワークフローでは、クリエイターが新しい`NFToken`を発行します。入札者はオファーを作成し、ブローカーを宛先として設定します。ブローカーは落札者を選び、仲介手数料を差し引き、`NFTokenCreateOffer`を使用してクリエイターに署名の依頼をします。クリエーターは要求されたオファーに署名し、ブローカーを宛先として設定します。ブローカーは`NFTokenAcceptOffer`を使って売却を完了し、仲介手数料を保持します。ブローカーは`NFTokenCancelOffer`を使用して`NFToken`に対する残りの入札をキャンセルします。 -![Brokered Mode without Reserve](img/nft-brokered-mode-without-reserve.png) +![Brokered Mode without Reserve](/img/nft-brokered-mode-without-reserve.png) 所有者が他のアカウントで作成した`NFToken`をリセールする場合にも、同じワークフローを使用することができます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/tokens/transfer-fees.md b/content/@i18n/ja/concepts/tokens/transfer-fees.md index 2e69c28009..c3a745d3f6 100644 --- a/content/@i18n/ja/concepts/tokens/transfer-fees.md +++ b/content/@i18n/ja/concepts/tokens/transfer-fees.md @@ -8,13 +8,13 @@ labels: --- # 送金手数料 -[トークン](tokens.html)の発行者は、`TransferRate`の設定を使用して、ユーザに対し _送金手数料_ を請求できます。この送金の送金元からは送金手数料に基づく割合で引き落とされ、送金先へ入金されます。差額が送金手数料となります。 +[トークン](index.md)の発行者は、`TransferRate`の設定を使用して、ユーザに対し _送金手数料_ を請求できます。この送金の送金元からは送金手数料に基づく割合で引き落とされ、送金先へ入金されます。差額が送金手数料となります。 標準的なトークンの場合、送金手数料として支払われたトークンはバーンされ、XRP Ledgerでは記録されなくなります。トークンがレジャー外の資産で裏付けされている場合、これは発行者がXRP Ledgerでの債務を果たすために準備金として保有しなければならないそれらの資産の量を減らします。送金手数料は通常、外部資産で裏付けられていないトークンには適切ではありません。 -非代替性トークンにも送金手数料がかかりますが、その仕組みは異なります。詳細は[非代替性トークン](non-fungible-tokens.html)をご覧ください。 +非代替性トークンにも送金手数料がかかりますが、その仕組みは異なります。詳細は[非代替性トークン](nfts/index.md)をご覧ください。 -送金手数料は、発行アカウントと直接送受信する場合には適用されませんが、[運用アドレス](account-types.html)から他のユーザへ送金する場合には適用されます。 +送金手数料は、発行アカウントと直接送受信する場合には適用されませんが、[運用アドレス](../accounts/account-types.md)から他のユーザへ送金する場合には適用されます。 XRPは発行者が存在しないため、送金手数料がかかることはありません。 @@ -24,11 +24,11 @@ XRPは発行者が存在しないため、送金手数料がかかることは 以下の図は、AliceからCharlieへの2EUR.ACMEのXRP Ledger支払いを、送金手数料1%で表しています。 -{{ include_svg("img/transfer-fees.ja.svg", "Aliceが2,02€を送金し、Charlieが2,00€を受け取り、ACMEはXRP Ledgerで0,02€を受け取ります。") }} +[{% inline-svg file="/img/transfer-fees.ja.svg" /%}](/img/transfer-fees.ja.svg "Aliceが2,02€を送金し、Charlieが2,00€を受け取り、ACMEはXRP Ledgerで0,02€を受け取ります。") 会計用語では、Alice、ACME、Charlieの貸借対照表はこのように変わっているでしょう。 -{{ include_svg("img/transfer-fees-balance-sheets.ja.svg", "Aliceの資産は2,02€減少、Charlieは2,00€増加、ACMEの負債は0,02€減少。") }} +[{% inline-svg file="/img/transfer-fees-balance-sheets.ja.svg" /%}](/img/transfer-fees-balance-sheets.ja.svg "Aliceの資産は2,02€減少、Charlieは2,00€増加、ACMEの負債は0,02€減少。") @@ -38,7 +38,7 @@ XRPは発行者が存在しないため、送金手数料がかかることは 送金手数料は、各送金においてイシュアンスが発行アカウントを通じて当事者間を移動するたびに適用されます。さらに複雑なトランザクションでは、手数料が複数回適用されます。送金手数料は、送金の終わりの時点から逆方向に適用されるので、最終的には支払いの送金者がすべての手数料をカバーするのに十分な額を送金する必要があります。例: -{{ include_svg("img/transfer-fees-in-paths.ja.svg", "手数料が適用されたクロスカレンシー支払いの図") }} +[{% inline-svg file="/img/transfer-fees-in-paths.ja.svg" /%}](/img/transfer-fees-in-paths.ja.svg "手数料が適用されたクロスカレンシー支払いの図") このシナリオでは、ACMEが発行したEURをSalazar(送金元)が保有しており、WayGateが発行した100 USDをRosa(受取人)に送金したいと思っています。FXMakerはオーダーブックで最も良いレート(1 USD.WayGate = 0.9 EUR.ACME)のオファーを提供する通貨取引業者です。もし手数料がなければ、Salazarは90 EURを送金すればRosaに100 USDを送金することができます。しかしながら、ACMEで1%の送金手数料が発生し、WayGateで0.2%の送金手数料が発生します。つまり、次のようになります。 @@ -58,28 +58,24 @@ XRPは発行者が存在しないため、送金手数料がかかることは アカウントの`TransferRate`は[account_infoメソッド][]で誰でも確認できます。もし`TransferRate`が省略されていれば、手数料は無料です。 -**注記:** `rippled`v0.80.0で導入され2017-11-14に有効となった[fix1201 Amendment](amendments.html)により、最大送金手数料は実効限度である約329%(32ビット整数の最大サイズに基づく)から100%に引き下げられました。送金手数料の設定が100%(`TransferRate`が`2000000000`)を上回るアカウントがレジャーにまだ含まれている可能性があります。すでに設定されている手数料はすべて、規定のレートで引き続き運用されます。 +**注記:** `rippled`v0.80.0で導入され2017-11-14に有効となった[fix1201 Amendment](../networks-and-servers/amendments.md)により、最大送金手数料は実効限度である約329%(32ビット整数の最大サイズに基づく)から100%に引き下げられました。送金手数料の設定が100%(`TransferRate`が`2000000000`)を上回るアカウントがレジャーにまだ含まれている可能性があります。すでに設定されている手数料はすべて、規定のレートで引き続き運用されます。 ## クライアントライブラリのサポート -いくつかの[クライアントライブラリ](client-libraries.html)は`TransferRate`を取得・設定するための便利な関数を持っています。 +いくつかの[クライアントライブラリ](../../references/client-libraries.md)は`TransferRate`を取得・設定するための便利な関数を持っています。 **JavaScript:** `xrpl.percentToTransferRate()`を使うと、文字列からパーセンテージの送金手数料を対応する`TransferRate`値に変換することができます。 ## 関連項目 - **コンセプト:** - - [手数料(曖昧さの回避)](fees.html) - - [トランザクションコスト](transaction-cost.html) - - [パス](paths.html) + - [手数料(曖昧さの回避)](../transactions/fees.md) + - [トランザクションコスト](../transactions/transaction-cost.md) + - [パス](fungible-tokens/paths.md) - **リファレンス:** - [account_linesメソッド][] - [account_infoメソッド][] - [AccountSetトランザクション][] - - [AccountRootのフラグ](accountroot.html#accountrootのフラグ) + - [AccountRootのフラグ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/fees.md b/content/@i18n/ja/concepts/transactions/fees.md index 6382a5e5ea..d687e50d2e 100644 --- a/content/@i18n/ja/concepts/transactions/fees.md +++ b/content/@i18n/ja/concepts/transactions/fees.md @@ -16,13 +16,13 @@ XRP Ledgerは分散型レジャーであり、暗号技術により保護され ### 中立的な手数料 -_**トランザクションコスト**_(トランザクション手数料とも呼ばれます)は、トランザクションの送信にあたって消却される極わずかな額のXRPです。このコストはネットワークへの負荷に比例して増減するため、ピアツーピアネットワークをスパムから保護します。詳細は、[トランザクションコスト](transaction-cost.html)を参照してください。 +_**トランザクションコスト**_(トランザクション手数料とも呼ばれます)は、トランザクションの送信にあたって消却される極わずかな額のXRPです。このコストはネットワークへの負荷に比例して増減するため、ピアツーピアネットワークをスパムから保護します。詳細は、[トランザクションコスト](transaction-cost.md)を参照してください。 -_**必要準備金**_ は、アカウントが保有する必要があるXRPの最小額です。これは、アカウントがレジャーで所有するオブジェクトの数に比例して増加します。これにより、ユーザーが不注意または悪意によってレジャーのサイズを増やすことを防ぎます。詳細は、[準備金](reserves.html)を参照してください。 +_**必要準備金**_ は、アカウントが保有する必要があるXRPの最小額です。これは、アカウントがレジャーで所有するオブジェクトの数に比例して増加します。これにより、ユーザーが不注意または悪意によってレジャーのサイズを増やすことを防ぎます。詳細は、[準備金](../accounts/reserves.md)を参照してください。 ### オプションの手数料 -_**送金手数料**_ は、イシュアーが発行する通貨を、そのイシュアーがXRP Ledger内の他のアドレスに送金する場合に請求できる手数料であり、そのパーセンテージは任意に設定されます。詳細は、[送金手数料](transfer-fees.html)を参照してください。 +_**送金手数料**_ は、イシュアーが発行する通貨を、そのイシュアーがXRP Ledger内の他のアドレスに送金する場合に請求できる手数料であり、そのパーセンテージは任意に設定されます。詳細は、[送金手数料](../tokens/transfer-fees.md)を参照してください。 _**トラストラインクオリティ**_ は、アカウントがトラストラインの残高を額面価格よりも高い価格または低い価格で評価できるようにする設定です。この設定により、手数料が発生するような状況になることがあります。トラストラインクオリティは、トラストラインに関連付けられていないXRPには適用されません。 diff --git a/content/@i18n/ja/concepts/transactions/finality-of-results/canceling-a-transaction.md b/content/@i18n/ja/concepts/transactions/finality-of-results/canceling-a-transaction.md index b0c09ac1f6..75b96bd0bd 100644 --- a/content/@i18n/ja/concepts/transactions/finality-of-results/canceling-a-transaction.md +++ b/content/@i18n/ja/concepts/transactions/finality-of-results/canceling-a-transaction.md @@ -11,13 +11,10 @@ XRP Ledgerの重要かつ意図的な機能の1つに、トランザクション ただし、検証済みレジャーにまだ記録されていないトランザクションは、無効に設定することで実質的に取り消すことができます。通常は、同じアカウントから同じ`Sequence`値を指定した別のトランザクションを送信することになります。置換トランザクションが何もしないようにしたい場合は、オプションを指定せずに[AccountSetトランザクション][]を送信します。 -たとえば、シーケンス番号が11、12、13の3つのトランザクションを送信しようとしたときに、トランザクション11が何らかの理由で失われるか、またはトランザクション11にネットワークに伝達するのに十分な[トランザクションコスト](transaction-cost.html)がない場合には、オプションを指定せずシーケンス番号11を指定したAccuontSetトランザクションを送信すれば、トランザクション11を取り消せます。このトランザクションは(新しいトランザクション11のトランザクションコストを消却する以外は)何も行いませんが、トランザクション12と13を有効にできます。 +たとえば、シーケンス番号が11、12、13の3つのトランザクションを送信しようとしたときに、トランザクション11が何らかの理由で失われるか、またはトランザクション11にネットワークに伝達するのに十分な[トランザクションコスト](../transaction-cost.md)がない場合には、オプションを指定せずシーケンス番号11を指定したAccuontSetトランザクションを送信すれば、トランザクション11を取り消せます。このトランザクションは(新しいトランザクション11のトランザクションコストを消却する以外は)何も行いませんが、トランザクション12と13を有効にできます。 この方法により、異なるシーケンス番号のトランザクションの内容が実質的に重複することを防げるため、トランザクション12と13の番号を変更して再送信するよりも望ましい方法です。 つまり、オプションが指定されていないAccountSetトランザクションは標準的な「[no-op](http://en.wikipedia.org/wiki/NOP)」トランザクションです。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/finality-of-results/index.md b/content/@i18n/ja/concepts/transactions/finality-of-results/index.md index 5475957a7a..4062cd1f28 100644 --- a/content/@i18n/ja/concepts/transactions/finality-of-results/index.md +++ b/content/@i18n/ja/concepts/transactions/finality-of-results/index.md @@ -8,7 +8,7 @@ labels: --- # 結果のファイナリティー -トランザクションがコンセンサスレジャーに適用される順序は、[レジャー](ledgers.html)がクローズされ、そのトランザクションセットが[コンセンサスプロセス](consensus.html)によって承認されるまで確定されません。最初に成功したトランザクションはその後で失敗する可能性があり、最初に失敗したトランザクションはその後で成功する可能性があります。さらに、あるラウンドでコンセンサスプロセスによって拒否されたトランザクションは、後のラウンドでコンセンサスに達する可能性があります。 +トランザクションがコンセンサスレジャーに適用される順序は、[レジャー](../../ledgers/index.md)がクローズされ、そのトランザクションセットが[コンセンサスプロセス](../../consensus-protocol/index.md)によって承認されるまで確定されません。最初に成功したトランザクションはその後で失敗する可能性があり、最初に失敗したトランザクションはその後で成功する可能性があります。さらに、あるラウンドでコンセンサスプロセスによって拒否されたトランザクションは、後のラウンドでコンセンサスに達する可能性があります。 検証済みレジャーには、失敗したトランザクション(`tec`結果コード)だけでなく、成功したトランザクション(`tes`結果コード)も含まれる可能性があります。それ以外の結果のトランザクションはレジャーに含まれません。 @@ -26,38 +26,34 @@ labels: ## 未確定の結果はどのように変更できますか? -最初にトランザクションを送信すると、`rippled`サーバーはそのトランザクションを現在のオープンレジャーに暫定的に適用し、その結果から暫定的な[トランザクションの結果](transaction-results.html)を返します。ただし、トランザクションの最終結果は、暫定的な結果とは大きく異なる場合があります。考えられる理由を以下に示します。 +最初にトランザクションを送信すると、`rippled`サーバーはそのトランザクションを現在のオープンレジャーに暫定的に適用し、その結果から暫定的な[トランザクションの結果](../../../references/protocol/transactions/transaction-results/transaction-results.md)を返します。ただし、トランザクションの最終結果は、暫定的な結果とは大きく異なる場合があります。考えられる理由を以下に示します。 - トランザクションは、後のレジャーバージョンまで延期されるか、検証済みレジャーに取り込まれない場合があります。ほとんどの場合、XRP Ledgerでは、すべての有効なトランザクションをできるだけ早く処理するという原則に従います。ただし、次のような例外があります。 - - 提案されたトランザクションが[コンセンサスラウンド](consensus.html)の開始時点で過半数のバリデータに中継されていない場合は、残りのバリデータがトランザクションを取得して有効であることを確認する時間を確保できるように、次のレジャーバージョンまで延期される場合があります。 + - 提案されたトランザクションが[コンセンサスラウンド](../../consensus-protocol/index.md)の開始時点で過半数のバリデータに中継されていない場合は、残りのバリデータがトランザクションを取得して有効であることを確認する時間を確保できるように、次のレジャーバージョンまで延期される場合があります。 - アドレスが同じシーケンス番号を使用して2つの異なるトランザクションを送信する場合、それらのトランザクションのうち最大1つが検証されます。そのようなトランザクションが異なるパスのネットワーク経由で中継される場合、サーバーによっては、他の競合するトランザクションが先に過半数のサーバーに到達したために、暫定的に成功したトランザクションが失敗する可能性があります。 - - ネットワークをスパムから保護するには、すべてのトランザクションでXRPの[トランザクションコスト](transaction-cost.html)を消却し、XRP Ledgerピアツーピアネットワーク全体に中継する必要があります。ピアツーピアネットワークの負荷が大きいためにトランザクションコストが増加する場合、暫定的に成功したトランザクションは、コンセンサスを達成するのに十分なサーバーに中継されないか、後で[キューに入れられる](transaction-queue.html)可能性があります。 + - ネットワークをスパムから保護するには、すべてのトランザクションでXRPの[トランザクションコスト](../transaction-cost.md)を消却し、XRP Ledgerピアツーピアネットワーク全体に中継する必要があります。ピアツーピアネットワークの負荷が大きいためにトランザクションコストが増加する場合、暫定的に成功したトランザクションは、コンセンサスを達成するのに十分なサーバーに中継されないか、後で[キューに入れられる](../transaction-queue.md)可能性があります。 - - 一時的なインターネットの停止または遅延により、`LastLedgerSequence`フィールドで設定されたトランザクションの指定有効期限内であっても、提案されたトランザクションが正常に中継されない場合があります。(トランザクションに有効期限が設定されていない場合、トランザクションは有効状態を維持し、後で成功する可能性がありますが、独自の方法では望ましくない場合があります。詳細は、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。) + - 一時的なインターネットの停止または遅延により、`LastLedgerSequence`フィールドで設定されたトランザクションの指定有効期限内であっても、提案されたトランザクションが正常に中継されない場合があります。(トランザクションに有効期限が設定されていない場合、トランザクションは有効状態を維持し、後で成功する可能性がありますが、独自の方法では望ましくない場合があります。詳細は、[信頼できるトランザクションの送信](../reliable-transaction-submission.md)を参照してください。) - 上記の要因が2つ以上同時に発生する場合もあります。 -- 通常、[トランザクションが決済済みレジャーに適用される順序](ledgers.html)は、それらのトランザクションが現在のオープンレジャーに一時的に適用された順序とは異なります。そのため、関連するトランザクションに応じて、一時的に成功したトランザクションが失敗したり、一時的に失敗したトランザクションが成功したりする場合があります。以下に例を示します。 +- 通常、[トランザクションが決済済みレジャーに適用される順序](../../ledgers/index.md)は、それらのトランザクションが現在のオープンレジャーに一時的に適用された順序とは異なります。そのため、関連するトランザクションに応じて、一時的に成功したトランザクションが失敗したり、一時的に失敗したトランザクションが成功したりする場合があります。以下に例を示します。 - - 2つのトランザクションでそれぞれ、同じ[オファー](offers.html)を[分散型取引所](decentralized-exchange.html)で完全に使用する場合、どちらか一方が先に成功すると、もう一方は失敗します。それらのトランザクションが適用される順序は変わる可能性があるため、成功したトランザクションが失敗したり、失敗したトランザクションが成功したりする可能性があります。オファーは部分的に実行できるため、成功する可能性もありますが、程度は異なります。 + - 2つのトランザクションでそれぞれ、同じ[オファー](../../tokens/decentralized-exchange/offers.md)を[分散型取引所](../../tokens/decentralized-exchange/index.md)で完全に使用する場合、どちらか一方が先に成功すると、もう一方は失敗します。それらのトランザクションが適用される順序は変わる可能性があるため、成功したトランザクションが失敗したり、失敗したトランザクションが成功したりする可能性があります。オファーは部分的に実行できるため、成功する可能性もありますが、程度は異なります。 - - [分散型取引所](decentralized-exchange.html)で[オファー](offers.html)を使用することで[クロスカレンシー支払い](cross-currency-payments.html)は成功したが、別のトランザクションが同じオーダーブックでオファーを使用または作成した場合、クロスカレンシー支払いは仮に実行されたときとは異なる為替レートで成功する場合があります。[Partial Payment](partial-payments.html)では、別の金額を送金することもできます。 + - [分散型取引所](../../tokens/decentralized-exchange/index.md)で[オファー](../../tokens/decentralized-exchange/offers.md)を使用することで[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)は成功したが、別のトランザクションが同じオーダーブックでオファーを使用または作成した場合、クロスカレンシー支払いは仮に実行されたときとは異なる為替レートで成功する場合があります。[Partial Payment](../../payment-types/partial-payments.md)では、別の金額を送金することもできます。 - 送金元に十分な資金がないために一時的に失敗した[Paymentトランザクション][]は、必要な資金を送金する別の取引が正規の順序で先に行われることにより、後で成功する可能性があります。逆も同様です。一時的に成功したトランザクションは、必要な資金を送金するトランザクションが標準的な順序に入れられたものの先に来なかったために失敗する可能性があります。 - **ヒント:** 上記の理由により、XRP Ledgerに対してテストを実行しており、同じデータに影響する複数のアカウントがある場合、必ずトランザクション間のレジャーが閉じられるまでお待ちください。[スタンドアロンモード](rippled-server-modes.html#スタンドアロンモード)のサーバーに対してテストを実行する場合は、[レジャーを手動で閉じる](advance-the-ledger-in-stand-alone-mode.html)必要があります。 + **ヒント:** 上記の理由により、XRP Ledgerに対してテストを実行しており、同じデータに影響する複数のアカウントがある場合、必ずトランザクション間のレジャーが閉じられるまでお待ちください。[スタンドアロンモード](../../networks-and-servers/rippled-server-modes.md#スタンドアロンモード)のサーバーに対してテストを実行する場合は、[レジャーを手動で閉じる](../../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md)必要があります。 ## 関連項目 -- [トランザクションの結果の確認](look-up-transaction-results.html) -- [トランザクション結果のリファレンス](transaction-results.html) +- [トランザクションの結果の確認](look-up-transaction-results.md) +- [トランザクション結果のリファレンス](../../../references/protocol/transactions/transaction-results/transaction-results.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/finality-of-results/look-up-transaction-results.md b/content/@i18n/ja/concepts/transactions/finality-of-results/look-up-transaction-results.md index ab08b2a708..74e183230a 100644 --- a/content/@i18n/ja/concepts/transactions/finality-of-results/look-up-transaction-results.md +++ b/content/@i18n/ja/concepts/transactions/finality-of-results/look-up-transaction-results.md @@ -8,9 +8,9 @@ labels: --- # トランザクションの結果の確認 -XRP Ledgerを効果的に使用するには、[トランザクション](transactions.html)の結果を次のように把握することが重要です。トランザクションは成功したか?トランザクションは何を遂行したか?失敗した場合は、なぜか? +XRP Ledgerを効果的に使用するには、[トランザクション](../index.md)の結果を次のように把握することが重要です。トランザクションは成功したか?トランザクションは何を遂行したか?失敗した場合は、なぜか? -XRP Ledgerは共有システムとなっていて、すべてのデータが公開された形で正確に記録され、データはそれぞれ新しい[レジャーバージョン](ledgers.html)で安全に更新されます。誰もが任意のトランザクションの結果を確認し、[トランザクションメタデータ](transaction-metadata.html)によってその実行内容を確認できます。 +XRP Ledgerは共有システムとなっていて、すべてのデータが公開された形で正確に記録され、データはそれぞれ新しい[レジャーバージョン](../../ledgers/index.md)で安全に更新されます。誰もが任意のトランザクションの結果を確認し、[トランザクションメタデータ](../../../references/protocol/transactions/metadata.md)によってその実行内容を確認できます。 このドキュメントでは、トランザクションの結果がもたらされた理由を把握する方法について、詳細に説明します。エンドユーザー向けには、トランザクションの処理内容を表示するとわかりやすいです。例えば、[XRPチャートを使用して、記録されたトランザクションについての説明を英語で参照](https://xrpcharts.ripple.com/#/transactions/)できます。 @@ -21,9 +21,9 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 - 理解する対象となるトランザクションがわかっている。トランザクションの[識別用ハッシュ][]がわかっていれば、それによりトランザクションを検索できます。また、最近のレジャーで実行されたトランザクションまたは特定のアカウントに最後に影響を及ぼしたトランザクションを確認することもできます。 - 信頼できる情報と、トランザクションの送信日時に関する必要な履歴を提供する`rippled`サーバーにアクセスできる。 - 最近送信したトランザクションの結果を確認する場合、トランザクションの送信時に使用したサーバーがネットワークと同期されていれば、そのサーバーにアクセスできるだけで十分です。 - - 古いトランザクションの結果については、[全履歴を記録するサーバー](ledger-history.html#すべての履歴)を使用できます。 + - 古いトランザクションの結果については、[全履歴を記録するサーバー](../../networks-and-servers/ledger-history.md#すべての履歴)を使用できます。 -**ヒント:** この他にも、[Data API](data-api.html)やエクスポートされた他のデータベースを使用するなど、XRP Ledgerからトランザクションのデータを照会する方法があります。ただし、これらのインターフェイスは正式なものではありません。このドキュメントでは、最も直接的で信頼できる結果を得るために、`rippled` APIを直接使用してデータを確認する方法を説明します。 +**ヒント:** この他にも、[Data API](../../../references/data-api.md)やエクスポートされた他のデータベースを使用するなど、XRP Ledgerからトランザクションのデータを照会する方法があります。ただし、これらのインターフェイスは正式なものではありません。このドキュメントでは、最も直接的で信頼できる結果を得るために、`rippled` APIを直接使用してデータを確認する方法を説明します。 ## 1. トランザクションステータスの取得 @@ -33,7 +33,7 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 1. トランザクションが検証済みレジャーに記録されたか。 2. 記録されていた場合、結果としてレジャーの状態はどのように変化したか。 -検証済みレジャーにトランザクションが記録されていたかどうかを確認するには、通常、トランザクションが記録されている可能性のあるすべてのレジャーにアクセスする必要があります。最も簡単で確実な方法は、[全履歴を記録するサーバー](ledger-history.html#すべての履歴)でトランザクションを検索する方法です。[txメソッド][]、[account_txメソッド][]またはその他の`rippled`からのレスポンスを使用します。コンセンサスにより検証されたレジャーバージョンがこのレスポンスに使用されていることを示す`"validated": true`を検索します。 +検証済みレジャーにトランザクションが記録されていたかどうかを確認するには、通常、トランザクションが記録されている可能性のあるすべてのレジャーにアクセスする必要があります。最も簡単で確実な方法は、[全履歴を記録するサーバー](../../networks-and-servers/ledger-history.md#すべての履歴)でトランザクションを検索する方法です。[txメソッド][]、[account_txメソッド][]またはその他の`rippled`からのレスポンスを使用します。コンセンサスにより検証されたレジャーバージョンがこのレスポンスに使用されていることを示す`"validated": true`を検索します。 - 結果に`"validated": true`がない場合は、その結果は一時的である可能性があり、トランザクションの結果が最終的なものであるかどうかを知るには、レジャーが検証されるまで待機する必要があります。 - 結果に目的のトランザクションが含まれていない場合、または`txnNotFound`エラーが返される場合は、サーバーにある利用可能な履歴に保存されているどのレジャーにもそのトランザクションはありません。ただし、このことだけでトランザクションが失敗したかどうかを判断できないことがあります。サーバーに保存されていない検証済みレジャーバージョンにトランザクションが記録されている、または今後検証されるレジャーにトランザクションが記録されている場合があるためです。以下を把握することで、トランザクションが記録されるレジャーの範囲を制限することができます。 @@ -62,22 +62,22 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 } ``` -この例では、rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnというアドレスを持つ[アカウント](accounts.html)が、[シーケンス番号][] 376を使用して、[AccountSetトランザクション][]を送信したことを示しています。トランザクションの[識別用ハッシュ][]は`017DED8F5E20F0335C6F56E3D5EE7EF5F7E83FB81D2904072E665EEA69402567`で、その[結果](transaction-results.html)は`tesSUCCESS`です。トランザクションは、検証済みのレジャーバージョン46447423に記録されたため、結果は最終的なものです。 +この例では、rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnというアドレスを持つ[アカウント](../../accounts/accounts.md)が、[シーケンス番号][] 376を使用して、[AccountSetトランザクション][]を送信したことを示しています。トランザクションの[識別用ハッシュ][]は`017DED8F5E20F0335C6F56E3D5EE7EF5F7E83FB81D2904072E665EEA69402567`で、その[結果](../../../references/protocol/transactions/transaction-results/transaction-results.md)は`tesSUCCESS`です。トランザクションは、検証済みのレジャーバージョン46447423に記録されたため、結果は最終的なものです。 ### ケース: 検証済みレジャーに記録されていない -**トランザクションが検証済みレジャーに記録されていない場合は、共有XRP Ledgerの状態には _いかなる_ 影響も及ぼしません。** 今後レジャーに記録されるトランザクションの失敗が[_最終的_](finality-of-results.html)となる場合、その失敗が将来影響を及ぼすことはありません。 +**トランザクションが検証済みレジャーに記録されていない場合は、共有XRP Ledgerの状態には _いかなる_ 影響も及ぼしません。** 今後レジャーに記録されるトランザクションの失敗が[_最終的_](index.md)となる場合、その失敗が将来影響を及ぼすことはありません。 -トランザクションの失敗が最終的でない場合は、 _将来の_ 検証済みレジャーに記録される可能性があります。トランザクションを現在のオープンレジャーに適用して得た暫定的な結果から、トランザクションが最終レジャーに及ぼすと思われる影響を事前に確認できます。ただし、実際の結果は[さまざまな要因](finality-of-results.html#未確定の結果はどのように変更できますか)によって変わる場合があります。 +トランザクションの失敗が最終的でない場合は、 _将来の_ 検証済みレジャーに記録される可能性があります。トランザクションを現在のオープンレジャーに適用して得た暫定的な結果から、トランザクションが最終レジャーに及ぼすと思われる影響を事前に確認できます。ただし、実際の結果は[さまざまな要因](index.md#未確定の結果はどのように変更できますか)によって変わる場合があります。 ### ケース: 検証済みレジャーに記録されている -トランザクションが検証済みレジャーに記録 _されている_ 場合、[トランザクションメタデータ](transaction-metadata.html)にはトランザクションの処理結果として、レジャーの状態に対して行われたすべての変更を網羅したレポートが含まれます。メタデータの`TransactionResult`フィールドには、以下のような、結果を要約した[トランザクション結果コード](transaction-results.html)が含まれます。 +トランザクションが検証済みレジャーに記録 _されている_ 場合、[トランザクションメタデータ](../../../references/protocol/transactions/metadata.md)にはトランザクションの処理結果として、レジャーの状態に対して行われたすべての変更を網羅したレポートが含まれます。メタデータの`TransactionResult`フィールドには、以下のような、結果を要約した[トランザクション結果コード](../../../references/protocol/transactions/transaction-results/transaction-results.md)が含まれます。 - コード`tesSUCCESS`は、トランザクションが、おおよそ成功したことを示します。 -- `tec`-クラスコードは、トランザクションが失敗したことを示します。このことがレジャーの状態に及ぼす影響は、XRP[トランザクションコスト](transaction-cost.html)を消却し、場合によっては[有効期限切れのオファー](offers.html#オファーの有効期限)の削除および[Payment Channelの閉鎖](payment-channels.html#payment-channelのライフサイクル)などのブックキーピングを行うことだけです。 +- `tec`-クラスコードは、トランザクションが失敗したことを示します。このことがレジャーの状態に及ぼす影響は、XRP[トランザクションコスト](../transaction-cost.md)を消却し、場合によっては[有効期限切れのオファー](../../tokens/decentralized-exchange/offers.md#オファーの有効期限)の削除および[Payment Channelの閉鎖](../../payment-types/payment-channels.md#payment-channelのライフサイクル)などのブックキーピングを行うことだけです。 - どのレジャーにもその他のコードは表示されません。 結果コードは、トランザクションの結果の要約にすぎません。トランザクションの実行内容を詳しく理解するには、トランザクションの指示とトランザクションの実行前のレジャーの状態に照らして残りのメタデータを確認する必要があります。 @@ -87,11 +87,11 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 トランザクションメタデータは、以下に示すフィールドをはじめとして、トランザクションがレジャーに適用された方法を _正確に_ 示します。 -{% include '_snippets/tx-metadata-field-table.ja.md' %} +{% partial file="/_snippets/tx-metadata-field-table.md" /%} -ほとんどのメタデータは、[`AffectedNodes`配列](transaction-metadata.html#affectednodes)に含まれています。この配列で探す対象は、トランザクションのタイプによって異なります。ほぼすべてのトランザクションが、送金元の[AccountRootオブジェクト][]を変更してXRP[トランザクションコスト](transaction-cost.html)を消却し、[アカウントのシーケンス番号](basic-data-types.html#アカウントシーケンス)を増やします。 +ほとんどのメタデータは、[`AffectedNodes`配列](../../../references/protocol/transactions/metadata.md#affectednodes)に含まれています。この配列で探す対象は、トランザクションのタイプによって異なります。ほぼすべてのトランザクションが、送金元の[AccountRootオブジェクト][]を変更してXRP[トランザクションコスト](../transaction-cost.md)を消却し、[アカウントのシーケンス番号](../../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)を増やします。 -**情報:** このルールの例外として[疑似トランザクション](pseudo-transaction-types.html)があります。このトランザクションは実在するアカウントから送信されないため、AccountRootオブジェクトを変更しません。その他の例外として、AccountRootオブジェクトの`Balance`フィールドを変更せずに、AccountRootオブジェクトを変更するトランザクションがあります。[Free Key Resetトランザクション](transaction-cost.html#key-resetトランザクション)の場合、送金元のXRP残高は変わりません。トランザクションによって消却される金額と同額のXRPをアカウントが受け取る場合(ただし、このようなことはほとんどありません)、そのアカウントの正味残高は変わりません。(XRPを受領したアカウントに関係なくトランザクションコストはメタデータの別の場所に反映されます。) +**情報:** このルールの例外として[疑似トランザクション](../../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)があります。このトランザクションは実在するアカウントから送信されないため、AccountRootオブジェクトを変更しません。その他の例外として、AccountRootオブジェクトの`Balance`フィールドを変更せずに、AccountRootオブジェクトを変更するトランザクションがあります。[Free Key Resetトランザクション](../transaction-cost.md#key-resetトランザクション)の場合、送金元のXRP残高は変わりません。トランザクションによって消却される金額と同額のXRPをアカウントが受け取る場合(ただし、このようなことはほとんどありません)、そのアカウントの正味残高は変わりません。(XRPを受領したアカウントに関係なくトランザクションコストはメタデータの別の場所に反映されます。) 以下は、上記のステップ1からのレスポンス全文例です。レジャーに対して行われた変更を把握できるか確認してください。 @@ -144,17 +144,17 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 } ``` -この[no-opトランザクション](cancel-or-skip-a-transaction.html)によって行われた _唯一_ の変更は[AccountRootオブジェクト][]の更新で、送金元のアカウントは以下のように表されています。 +この[no-opトランザクション](canceling-a-transaction.md)によって行われた _唯一_ の変更は[AccountRootオブジェクト][]の更新で、送金元のアカウントは以下のように表されています。 - `Sequence`値は376から377に増えます。 -- このアカウントのXRPの`Balance`は、`396015176`から`396015164`([XRPのdrop数][])に変わります。残高から差し引かれた12dropは[トランザクションコスト](transaction-cost.html)で、このトランザクションの`Fee`フィールドに指定されています。 +- このアカウントのXRPの`Balance`は、`396015176`から`396015164`([XRPのdrop数][])に変わります。残高から差し引かれた12dropは[トランザクションコスト](../transaction-cost.md)で、このトランザクションの`Fee`フィールドに指定されています。 -- このトランザクションが、このアドレスから送信された最新のトランザクションとなったことを反映して[`AccountTxnID`](transaction-common-fields.html#accounttxnid)が変わります。 +- このトランザクションが、このアドレスから送信された最新のトランザクションとなったことを反映して[`AccountTxnID`](../../../references/protocol/transactions/common-fields.md#accounttxnid)が変わります。 - このアカウントに影響を及ぼした以前のトランザクションは、レジャーバージョン46447387で実行されたトランザクション`E710CADE7FE9C26C51E8630138322D80926BE91E46D69BF2F36E6E4598D6D0CF`で、`PreviousTxnID`および`PreviousTxnLgrSeq`フィールドに指定されています。(このことは、アカウントのトランザクション履歴をさかのぼる際に役立つ場合があります。) - **注記:** メタデータには明示的に示されませんが、トランザクションがレジャーオブジェクトを変更すると、必ずそのオブジェクトの`PreviousTxnID`および`PreviousTxnLgrSeq`フィールドが現在のトランザクションの情報で更新されます。同じ送金元の複数のトランザクションが1つのレジャーバージョンに含まれている場合、最初のトランザクション以降の各トランザクションは、これらすべてのトランザクションを記録するレジャーバージョンの[レジャーインデックス](basic-data-types.html#レジャーインデックス)を値とする`PreviousTxnLgrSeq`を提供します。 + **注記:** メタデータには明示的に示されませんが、トランザクションがレジャーオブジェクトを変更すると、必ずそのオブジェクトの`PreviousTxnID`および`PreviousTxnLgrSeq`フィールドが現在のトランザクションの情報で更新されます。同じ送金元の複数のトランザクションが1つのレジャーバージョンに含まれている場合、最初のトランザクション以降の各トランザクションは、これらすべてのトランザクションを記録するレジャーバージョンの[レジャーインデックス](../../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)を値とする`PreviousTxnLgrSeq`を提供します。 rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnのアカウントの`ModifiedNode`エントリーが`AffectedNodes`配列の唯一のオブジェクトであるため、このトランザクションの結果として、このレジャーに対してその他の変更は行われませんでした。 @@ -165,8 +165,8 @@ rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnのアカウントの`ModifiedNode`エント ほぼすべてのトランザクションにより、以下のような変更が行われます。 - **シーケンスとトランザクションコストの変更:** 送金元のシーケンス番号を増やし、トランザクションコストの支払いに使用するXRPを消却するために、[前述のとおりどのトランザクション(疑似トランザクションを除く)も、送金元の`AccountRoot`オブジェクトに変更を加えます](#2-メタデータの解釈)。 -- **アカウントのスレッド化:** オブジェクトを作成する一部のトランザクションでは、目的の受取人または宛先のアカウントの[AccountRootオブジェクト](accountroot.html)も変更し、そのアカウントに関連する何らかの要素が変更されたことを示します。このアカウントを「タグ付け」する手法で、オブジェクトの`PreviousTxnID`および`PreviousTxnLgrSeq`フィールドのみを変更します。これにより、これらのフィールドに指定されたトランザクションの「スレッド」を追跡することで、アカウントが保持するアカウントのトランザクション履歴を効率よく検索することができます。 -- **ディレクトリーの更新:** レジャーオブジェクトを作成または削除するトランザクションは、多くの場合[DirectoryNodeオブジェクト](directorynode.html)を変更して、どのオブジェクトが存在しているかを追跡します。また、トランザクションによって、アカウントの[所有者準備金](reserves.html#所有者準備金)に反映されるオブジェクトが追加されると、所有者の[AccountRootオブジェクト][]の`OwnerCount`が増加します。オブジェクトを削除すると、`OwnerCount`が減少します。 +- **アカウントのスレッド化:** オブジェクトを作成する一部のトランザクションでは、目的の受取人または宛先のアカウントの[AccountRootオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)も変更し、そのアカウントに関連する何らかの要素が変更されたことを示します。このアカウントを「タグ付け」する手法で、オブジェクトの`PreviousTxnID`および`PreviousTxnLgrSeq`フィールドのみを変更します。これにより、これらのフィールドに指定されたトランザクションの「スレッド」を追跡することで、アカウントが保持するアカウントのトランザクション履歴を効率よく検索することができます。 +- **ディレクトリーの更新:** レジャーオブジェクトを作成または削除するトランザクションは、多くの場合[DirectoryNodeオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md)を変更して、どのオブジェクトが存在しているかを追跡します。また、トランザクションによって、アカウントの[所有者準備金](../../accounts/reserves.md#所有者準備金)に反映されるオブジェクトが追加されると、所有者の[AccountRootオブジェクト][]の`OwnerCount`が増加します。オブジェクトを削除すると、`OwnerCount`が減少します。 アカウントの`OwnerCount`を増やす例: @@ -193,7 +193,7 @@ rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnのアカウントの`ModifiedNode`エント } ``` -多くのトランザクションのタイプで、[DirectoryNodeオブジェクト](directorynode.html)が作成または変更されます。これらのオブジェクトは、ブックキーピングに使用します。アカウントが所有するすべてのオブジェクト、またはすべてのオファーを追跡して、同じ為替レートで通貨を交換します。トランザクションがレジャーに新しいオブジェクトを作成した場合、トランザクションは既存のDirectoryNodeオブジェクトにエントリーを追加するか、別のDirectoryNodeオブジェクトを追加してディレクトリーの別のページを表さなければならないことがあります。トランザクションがレジャーからオブジェクトを削除した場合、トランザクションは不要となった1つ以上のDirectoryNodeオブジェクトを削除しなければならないことがあります。 +多くのトランザクションのタイプで、[DirectoryNodeオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md)が作成または変更されます。これらのオブジェクトは、ブックキーピングに使用します。アカウントが所有するすべてのオブジェクト、またはすべてのオファーを追跡して、同じ為替レートで通貨を交換します。トランザクションがレジャーに新しいオブジェクトを作成した場合、トランザクションは既存のDirectoryNodeオブジェクトにエントリーを追加するか、別のDirectoryNodeオブジェクトを追加してディレクトリーの別のページを表さなければならないことがあります。トランザクションがレジャーからオブジェクトを削除した場合、トランザクションは不要となった1つ以上のDirectoryNodeオブジェクトを削除しなければならないことがあります。 新しいオファーディクトリーを表すCreatedNodeの例: @@ -216,31 +216,31 @@ rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnのアカウントの`ModifiedNode`エント ### 支払い -[Paymentトランザクション][]はXRP間の直接トランザクション、[クロスカレンシー支払い](cross-currency-payments.html)、または[(XRP以外の)トークン](tokens.html)での直接トランザクションを表します。トークンからXRPへのトランザクション、またはXRPからトークンへのトランザクションなど、XRP間の直接トランザクション以外はすべて[partial payment](partial-payments.html)が可能です。 +[Paymentトランザクション][]はXRP間の直接トランザクション、[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)、または[(XRP以外の)トークン](../../tokens/index.md)での直接トランザクションを表します。トークンからXRPへのトランザクション、またはXRPからトークンへのトランザクションなど、XRP間の直接トランザクション以外はすべて[partial payment](../../payment-types/partial-payments.md)が可能です。 -XRPの額は、`AccountRoot`オブジェクトの`Balance`フィールドで追跡されます。(XRPは[Escrowオブジェクト](escrow-object.html)および[PayChannelオブジェクト](paychannel.html)にも存在する可能性がありますが、Paymentトランザクションがそれらに影響を及ぼすことはありません。) +XRPの額は、`AccountRoot`オブジェクトの`Balance`フィールドで追跡されます。(XRPは[Escrowオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md)および[PayChannelオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md)にも存在する可能性がありますが、Paymentトランザクションがそれらに影響を及ぼすことはありません。) -支払いでいくら支払われたかを確認するには、必ず[delivered_amountフィールド](partial-payments.html#delivered_amountフィールド)を使用する必要があります。 +支払いでいくら支払われたかを確認するには、必ず[delivered_amountフィールド](../../payment-types/partial-payments.md#delivered_amountフィールド)を使用する必要があります。 -支払いにLedgerEntryTypeが`AccountRoot`の`CreatedNode`が含まれている場合は、その支払いによってレジャーの[新しいアカウントへの資金供給](accounts.html#アカウントの作成)が行われたことを意味します。 +支払いにLedgerEntryTypeが`AccountRoot`の`CreatedNode`が含まれている場合は、その支払いによってレジャーの[新しいアカウントへの資金供給](../../accounts/accounts.md#アカウントの作成)が行われたことを意味します。 #### トークンでの支払い トークンを利用する支払いは、多少複雑です。 -トークン残高の変更は、[トラストライン](trust-lines-and-issuing.html)を表す[RippleStateオブジェクト](ripplestate.html)にすべて反映されます。一方の当事者のトラストラインで残高が増加すると、相手側当事者の残高は同じ額だけ減少すると考えられます。このことは、メタデータには、RippleStateオブジェクトの共有`Balance`に対する1回の変更としてのみ記録されます。この変更が「増加」または「減少」のどちらで記録されるかは、どちらのアカウントのアドレスが数値として大きいかによって決まります。 +トークン残高の変更は、[トラストライン](../../tokens/fungible-tokens/index.md)を表す[RippleStateオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)にすべて反映されます。一方の当事者のトラストラインで残高が増加すると、相手側当事者の残高は同じ額だけ減少すると考えられます。このことは、メタデータには、RippleStateオブジェクトの共有`Balance`に対する1回の変更としてのみ記録されます。この変更が「増加」または「減少」のどちらで記録されるかは、どちらのアカウントのアドレスが数値として大きいかによって決まります。 -1回の支払いは、複数のトラストラインとオーダーブックで構成される長い[パス](paths.html)をたどる場合があります。間接的に当事者間を接続する複数のトラストラインの残高を変更するプロセスを[Rippling](rippling.html)と呼びます。トランザクションの`Amount`フィールドに指定された`issuer`に応じて、支払先アカウントに結び付けられている複数のトラストライン(`RippleState`アカウント)で支払額を分割することもできます。 +1回の支払いは、複数のトラストラインとオーダーブックで構成される長い[パス](../../tokens/fungible-tokens/paths.md)をたどる場合があります。間接的に当事者間を接続する複数のトラストラインの残高を変更するプロセスを[Rippling](../../tokens/fungible-tokens/rippling.md)と呼びます。トランザクションの`Amount`フィールドに指定された`issuer`に応じて、支払先アカウントに結び付けられている複数のトラストライン(`RippleState`アカウント)で支払額を分割することもできます。 **ヒント:** 変更されたオブジェクトがメタデータに表示される順序は、支払いを処理するときにこれらのオブジェクトにアクセスした順序とは必ずしも一致しません。`AffectedNodes`メンバーを並べ替えて資金がレジャーまでたどったパスを再構成すると、支払いの実行の詳細を把握しやすくなります。 -クロスカレンシー支払いでは、[オファー](offer.html)の一部または全額を消費して、通貨コードとイシュアーが異なる通貨間で変更が行われます。トランザクションで`Offer`タイプの`DeletedNode`オブジェクトが示される場合は、全額が消費されたオファーを示しているか、または処理の時点で[期限切れになるか、または資金化されない](offers.html#オファーのライフサイクル)ことがわかったオファーを示している可能性があります。トランザクションで`Offer`タイプの`ModifiedNode`が示される場合は、オファーの一部が消費されたことを示します。 +クロスカレンシー支払いでは、[オファー](../../../references/protocol/ledger-data/ledger-entry-types/offer.md)の一部または全額を消費して、通貨コードとイシュアーが異なる通貨間で変更が行われます。トランザクションで`Offer`タイプの`DeletedNode`オブジェクトが示される場合は、全額が消費されたオファーを示しているか、または処理の時点で[期限切れになるか、または資金化されない](../../tokens/decentralized-exchange/offers.md#オファーのライフサイクル)ことがわかったオファーを示している可能性があります。トランザクションで`Offer`タイプの`ModifiedNode`が示される場合は、オファーの一部が消費されたことを示します。 -[トラストラインの`QualityIn`および`QualityOut`設定](trustset.html)は、トラストラインの一方の側におけるトークンの金額に影響を与える可能性があるため、残高の数値の変化は、送金元におけるその通貨の額と異なります。`delivered_amount`は、受取人による評価額でいくら送金されたのかを示します。 +[トラストラインの`QualityIn`および`QualityOut`設定](../../../references/protocol/transactions/types/trustset.md)は、トラストラインの一方の側におけるトークンの金額に影響を与える可能性があるため、残高の数値の変化は、送金元におけるその通貨の額と異なります。`delivered_amount`は、受取人による評価額でいくら送金されたのかを示します。 -送金額と受取額が[トークンの精度](currency-formats.html#トークンの精度)の範囲外である場合は、一方のトランザクションで0に丸められる金額が、他方から引き出される可能性があります。そのため、両当事者が、お互いの残高に1016倍の差があるときに取引をすると、丸めることによって少額のトークンが「作成」または「消却」される可能性があります。(XRPは丸められないので、XRPではこの状況は発生しません。) +送金額と受取額が[トークンの精度](../../../references/protocol/data-types/currency-formats.md#トークンの精度)の範囲外である場合は、一方のトランザクションで0に丸められる金額が、他方から引き出される可能性があります。そのため、両当事者が、お互いの残高に1016倍の差があるときに取引をすると、丸めることによって少額のトークンが「作成」または「消却」される可能性があります。(XRPは丸められないので、XRPではこの状況は発生しません。) -[パス](paths.html)の長さに応じて、クロスカレンシー支払いのメタデータは _長く_ なります。例えば、[トランザクション8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B](https://xrpcharts.ripple.com/#/transactions/8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B)では、rHaaans...が発行した2.788 GCBを送金しXRPを支払いますが、2人のイシュアーのUSDを経由し、2つのアカウントにXRPを支払います。r9ZoLsJからのEURをETHと交換する資金供給されていないオファーを削除し、変更された合計17の異なるレジャーオブジェクトのブックキーピングを行います。 +[パス](../../tokens/fungible-tokens/paths.md)の長さに応じて、クロスカレンシー支払いのメタデータは _長く_ なります。例えば、[トランザクション8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B](https://xrpcharts.ripple.com/#/transactions/8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B)では、rHaaans...が発行した2.788 GCBを送金しXRPを支払いますが、2人のイシュアーのUSDを経由し、2つのアカウントにXRPを支払います。r9ZoLsJからのEURをETHと交換する資金供給されていないオファーを削除し、変更された合計17の異なるレジャーオブジェクトのブックキーピングを行います。 ### オファー @@ -267,9 +267,9 @@ XRPの額は、`AccountRoot`オブジェクトの`Balance`フィールドで追 } ``` -タイプ`Offer`の`ModifiedNode`は、成立し、かつ一部が消費されたオファーを示します。1つのトランザクションで多数のオファーを消費できます。2種類のトークンを交換するオファーが、[オートブリッジング](autobridging.html)によってXRPを交換するオファーを消費することもあります。両替取引のすべてまたは一部をオートブリッジングできます。 +タイプ`Offer`の`ModifiedNode`は、成立し、かつ一部が消費されたオファーを示します。1つのトランザクションで多数のオファーを消費できます。2種類のトークンを交換するオファーが、[オートブリッジング](../../tokens/decentralized-exchange/autobridging.md)によってXRPを交換するオファーを消費することもあります。両替取引のすべてまたは一部をオートブリッジングできます。 -LedgerEntryTypeが`Offer`の`DeletedNode`は、すべて消費された成立オファー、処理の時点で[期限切れになるか、または資金化されない](offers.html#オファーのライフサイクル)ことがわかったオファー、または新しいオファーを発行する過程でキャンセルされたオファーを示すことができます。キャンセルされたオファーは識別できます。これは、キャンセルされたオファーを発行した`Account`は、そのオファーを削除するトランザクションの送信元であるためです。 +LedgerEntryTypeが`Offer`の`DeletedNode`は、すべて消費された成立オファー、処理の時点で[期限切れになるか、または資金化されない](../../tokens/decentralized-exchange/offers.md#オファーのライフサイクル)ことがわかったオファー、または新しいオファーを発行する過程でキャンセルされたオファーを示すことができます。キャンセルされたオファーは識別できます。これは、キャンセルされたオファーを発行した`Account`は、そのオファーを削除するトランザクションの送信元であるためです。 削除されたオファーの例: @@ -299,15 +299,15 @@ LedgerEntryTypeが`Offer`の`DeletedNode`は、すべて消費された成立オ } ``` -オファーでは、両方のタイプの[DirectoryNodeオブジェクト](directorynode.html)を作成、削除、変更して、オファーの発行者と、どのオファーがどのような為替レートで利用可能になっているのかを追跡できます。一般的に、ユーザーがこのブックキーピングに細かな注意を払う必要はありません。 +オファーでは、両方のタイプの[DirectoryNodeオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md)を作成、削除、変更して、オファーの発行者と、どのオファーがどのような為替レートで利用可能になっているのかを追跡できます。一般的に、ユーザーがこのブックキーピングに細かな注意を払う必要はありません。 削除するオファーがなかった場合でも、[OfferCancelトランザクション][]には、コード`tesSUCCESS`が含まれる可能性があります。トランザクションが実際にオファーを削除したことを確認するには、LedgerEntryTypeが`Offer`の`DeletedNode`を探します。削除されていなかった場合は、そのオファーは以前のトランザクションによってすでに削除された可能性があります。またはOfferCancelトランザクションで、`OfferSequence`フィールドに誤ったシーケンス番号が使用された可能性があります。 -OfferCreateトランザクションが、タイプが`RippleState`の`CreatedNode`を示す場合は、取引で受け取ったトークンを保持するために、[オファーがトラストラインを作成した](offers.html#オファーとトラスト)ことを示しています。 +OfferCreateトランザクションが、タイプが`RippleState`の`CreatedNode`を示す場合は、取引で受け取ったトークンを保持するために、[オファーがトラストラインを作成した](../../tokens/decentralized-exchange/offers.md#オファーとトラスト)ことを示しています。 ### Escrow -成功した[EscrowCreateトランザクション][]は、レジャーに[Escrowオブジェクト](escrow-object.html)を作成します。LedgerEntryTypeが`Escrow`の`CreatedNode`エントリーを探します。`NewFields`には、escrowに預託されたXRPと同じ`Amount`と、指定したその他のプロパティが示されます。 +成功した[EscrowCreateトランザクション][]は、レジャーに[Escrowオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md)を作成します。LedgerEntryTypeが`Escrow`の`CreatedNode`エントリーを探します。`NewFields`には、escrowに預託されたXRPと同じ`Amount`と、指定したその他のプロパティが示されます。 成功したEscrowCreateトランザクションは、送金元から同じ額のXRPを引き出します。最終的なフィールドの`Account`がトランザクションの指示にある`Account`のアドレスと一致する、LedgerEntryTypeが`AccountRoot`の`ModifiedNode`を探します。XRPの`Balance`は、(トランザクションコストの支払いのためにXRPが消却されたのに加えて)XRPがescrowに預託されたため減少します。 @@ -361,7 +361,7 @@ Escrowトランザクションでは、関係する送金元の所有者準備 Payment Channelの作成時に、LedgerEntryTypeが`PayChannel`の`CreatedNode`を探します。また、送金元の残高の減少を示す、LedgerEntryTypeが`AccountRoot`の`ModifiedNode`も探す必要があります。アドレスが送金元に一致することを確認するために`FinalFields`の`Account`フィールドを探し、XRP残高の変化を確認するために`Balance`フィールドの差異を確認します。 -[fixPayChanRecipientOwnerDir Amendment](known-amendments.html#fixpaychanrecipientownerdir)が有効な場合は、メタデータは宛先のアカウントの[所有者ディレクトリー](directorynode.html)を変更して、新しく作成されるPayment Channelをリストで示す必要もあります。これにより、アカウントがオープンPayment Channelの受取人である場合に、そのアカウントが[削除される](deleting-accounts.html)ことを防ぎます。(fixPayChanRecipientOwnerDir Amendmentが有効になる前にPayment Channelが作成された場合は、アカウントを削除できます。) +[fixPayChanRecipientOwnerDir Amendment](../../../resources/known-amendments.md#fixpaychanrecipientownerdir)が有効な場合は、メタデータは宛先のアカウントの[所有者ディレクトリー](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md)を変更して、新しく作成されるPayment Channelをリストで示す必要もあります。これにより、アカウントがオープンPayment Channelの受取人である場合に、そのアカウントが[削除される](../../accounts/deleting-accounts.md)ことを防ぎます。(fixPayChanRecipientOwnerDir Amendmentが有効になる前にPayment Channelが作成された場合は、アカウントを削除できます。) Payment Channelの閉鎖を要求する方法は、Payment Channelの不変の`CancelAfter`時刻(作成時にのみ設定されます)以外にもいくつかあります。トランザクションでChannelの閉鎖をスケジュールする場合は、そのChannel用にLedgerEntryTypeが`PayChannel`の`ModifiedNode`エントリーがあり、`FinalFields`の`Expiration`フィールドには閉鎖時刻が新たに追加されています。以下の例は、送金元がクレームを清算せずにChannelを閉鎖するよう要求した場合に`PayChannel`に対して行われる変更を示します。 @@ -391,7 +391,7 @@ Payment Channelの閉鎖を要求する方法は、Payment Channelの不変の`C ### TrustSetトランザクション -TrustSetトランザクションは、[`RippleState`オブジェクト](ripplestate.html)として表される[トラストライン](trust-lines-and-issuing.html)を作成、変更、または削除します。1つの`RippleState`オブジェクトに、関与する両当事者の設定が含まれます。これには両当事者の制限や[Ripplingの設定](rippling.html)などがあります。トラストラインの作成と変更によって[送金元の所有者準備金と所有者ディレクトリーの調整](#汎用的なブックキーピング)も行われます。 +TrustSetトランザクションは、[`RippleState`オブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)として表される[トラストライン](../../tokens/fungible-tokens/index.md)を作成、変更、または削除します。1つの`RippleState`オブジェクトに、関与する両当事者の設定が含まれます。これには両当事者の制限や[Ripplingの設定](../../tokens/fungible-tokens/rippling.md)などがあります。トラストラインの作成と変更によって[送金元の所有者準備金と所有者ディレクトリーの調整](#汎用的なブックキーピング)も行われます。 以下の例は、**rf1BiG...** が**rsA2Lp...** によって発行されたUSDを最大110 USDまで保持するという新しいトラストラインを示します。 @@ -428,31 +428,27 @@ TrustSetトランザクションは、[`RippleState`オブジェクト](ripplest その他のほとんどのトランザクションは、特定のタイプのレジャーエントリーを作成し、[送金元の所有者準備金と所有者ディレクトリーの調整](#汎用的なブックキーピング)を行います。 - [AccountSetトランザクション][]は、送金元の既存の[AccountRoot object][]を変更し、指定されたとおりに設定とフラグを変更します。 -- [DepositPreauthトランザクション][]は、特定の送金元の[DepositPreauthオブジェクト](depositpreauth-object.html)を追加または削除します。 +- [DepositPreauthトランザクション][]は、特定の送金元の[DepositPreauthオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/depositpreauth.md)を追加または削除します。 - [SetRegularKeyトランザクション][]は、送金元の[AccountRootオブジェクト][]を変更し、指定されたとおりに`RegularKey`フィールドを変更します。 -- [SignerListSetトランザクション][]は、[SignerListオブジェクト](signerlist.html)を追加、削除、または置換します。 +- [SignerListSetトランザクション][]は、[SignerListオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/signerlist.md)を追加、削除、または置換します。 ### 疑似トランザクション -[疑似トランザクション](pseudo-transaction-types.html)にもメタデータがありますが、これらのトランザクションは通常のトランザクションのすべてのルールに従うとは限りません。これらのトランザクションは、実在のアカウントには関連付けられていないため(この`Account`の値は、[base58エンコード形式の数字の0](addresses.html#特別なアドレス)です)、レジャーのAccountRootオブジェクトを変更して`Sequence`シーケンス番号を増やしたり、XRPを消却したりしません。疑似トランザクションは、特別なレジャーオブジェクトに対して特定の変更のみを行います。 +[疑似トランザクション](../../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)にもメタデータがありますが、これらのトランザクションは通常のトランザクションのすべてのルールに従うとは限りません。これらのトランザクションは、実在のアカウントには関連付けられていないため(この`Account`の値は、[base58エンコード形式の数字の0](../../accounts/addresses.md#特別なアドレス)です)、レジャーのAccountRootオブジェクトを変更して`Sequence`シーケンス番号を増やしたり、XRPを消却したりしません。疑似トランザクションは、特別なレジャーオブジェクトに対して特定の変更のみを行います。 -- [EnableAmendment疑似トランザクション][]は、[Amendmentレジャーオブジェクト](amendments-object.html)を変更して、有効なAmendment、過半数の支持を得ている保留中のAmendment、および保留中の期間を追跡します。 -- [SetFee疑似トランザクション][]は、[FeeSettingsレジャーオブジェクト](feesettings.html)を変更して、[トランザクションコスト](transaction-cost.html)および[必要準備金](reserves.html)のベースレベルを変更します。 +- [EnableAmendment疑似トランザクション][]は、[Amendmentレジャーオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/amendments.md)を変更して、有効なAmendment、過半数の支持を得ている保留中のAmendment、および保留中の期間を追跡します。 +- [SetFee疑似トランザクション][]は、[FeeSettingsレジャーオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/feesettings.md)を変更して、[トランザクションコスト](../transaction-cost.md)および[必要準備金](../../accounts/reserves.md)のベースレベルを変更します。 ## 関連項目 - **コンセプト:** - - [結果のファイナリティー](finality-of-results.html) - トランザクションの成功また失敗が最終的なものとなるタイミングを判断する方法。(簡単な説明: トランザクションが検証済みレジャーにある場合は、その結果とメタデータは最終的なものです。) + - [結果のファイナリティー](index.md) - トランザクションの成功また失敗が最終的なものとなるタイミングを判断する方法。(簡単な説明: トランザクションが検証済みレジャーにある場合は、その結果とメタデータは最終的なものです。) - **チュートリアル:** - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [WebSocketを使用した着信ペイメントの監視](monitor-incoming-payments-with-websocket.html) + - [信頼できるトランザクションの送信](../reliable-transaction-submission.md) + - [WebSocketを使用した着信ペイメントの監視](../../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) - **リファレンス:** - - [レジャーオブジェクトタイプのリファレンス](ledger-object-types.html) - レジャーオブジェクトの使用可能なすべてのタイプのフィールド - - [トランザクションのメタデータ](transaction-metadata.html) - メタデータフォーマットとメタデータに表示されるフィールドの概要 - - [トランザクションの結果](transaction-results.html) - トランザクションのすべての結果コードを掲載した表一覧 + - [レジャーオブジェクトタイプのリファレンス](../../../references/protocol/ledger-data/ledger-entry-types/index.md) - レジャーオブジェクトの使用可能なすべてのタイプのフィールド + - [トランザクションのメタデータ](../../../references/protocol/transactions/metadata.md) - メタデータフォーマットとメタデータに表示されるフィールドの概要 + - [トランザクションの結果](../../../references/protocol/transactions/transaction-results/transaction-results.md) - トランザクションのすべての結果コードを掲載した表一覧 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/finality-of-results/transaction-malleability.md b/content/@i18n/ja/concepts/transactions/finality-of-results/transaction-malleability.md index 20886a2fd8..32a78f3536 100644 --- a/content/@i18n/ja/concepts/transactions/finality-of-results/transaction-malleability.md +++ b/content/@i18n/ja/concepts/transactions/finality-of-results/transaction-malleability.md @@ -22,8 +22,8 @@ XRP Ledgerのメインネット上では、**マルチ署名**トランザクシ XRP Ledgerでは、以下の条件に該当しない場合にはトランザクションを実行できません。 -- 署名自体を除く[トランザクションのすべてのフィールド](transaction-common-fields.html)に署名がなされている。 -- トランザクションの署名に使用されるキーペアが、[そのアカウントの代理としてトランザクションを送信することが承認されている](transactions.html#トランザクションの承認)。 +- 署名自体を除く[トランザクションのすべてのフィールド](../../../references/protocol/transactions/common-fields.md)に署名がなされている。 +- トランザクションの署名に使用されるキーペアが、[そのアカウントの代理としてトランザクションを送信することが承認されている](../index.md#トランザクションの承認)。 - 署名は _正規_ であり、トランザクションの指示に一致している。 署名付きフィールドに変更を加えると、どれほど小さな変更であっても署名が無効となるため、署名自体を除き、トランザクションのいかなる部分にも展性が生じることはありません。ほとんどの場合、署名自体を変更すると常に署名が無効になりますが、以下で説明するような特定の例外があります。 @@ -46,7 +46,7 @@ ECDSA署名はRおよびSと呼ばれる2つの整数で構成されています [RequireFullyCanonicalSig Amendment][](2020年に有効)では、すべてのトランザクションは_完全正規(fully canonical)な_署名のみを使用しなければなりません。 -2014年から2020年の間、XRP Ledgerは常に完全な正規署名を生成するわけではないレガシーソフトウェアと互換性がありましたが、トランザクションの脆弱性から互換性のあるソフトウェアを保護するために、トランザクションに[**tfullyCanonicalSig`**](transaction-common-fields.html#global-flags)と呼ばれるフラグを使用していました。このフラグは互換署名ソフトウェアがデフォルトで有効にしており、トランザクションが有効であるために _完全正規な_ 署名を使用することを要求していました。[RequireFullyCanonicalSig Amendment][]が有効になったので、このフラグは必要なくなりましたが、いずれにせよ有効にしても害はありません。 +2014年から2020年の間、XRP Ledgerは常に完全な正規署名を生成するわけではないレガシーソフトウェアと互換性がありましたが、トランザクションの脆弱性から互換性のあるソフトウェアを保護するために、トランザクションに[**tfullyCanonicalSig`**](../../../references/protocol/transactions/common-fields.md#global-flags)と呼ばれるフラグを使用していました。このフラグは互換署名ソフトウェアがデフォルトで有効にしており、トランザクションが有効であるために _完全正規な_ 署名を使用することを要求していました。[RequireFullyCanonicalSig Amendment][]が有効になったので、このフラグは必要なくなりましたが、いずれにせよ有効にしても害はありません。 ### マルチシグの展性 @@ -122,7 +122,7 @@ XRP Ledgerとのインフターフェイスに使用するソフトウェアか トランザクションに`LastLedgerSequence`フィールドが含まれている場合は、指定されたレジャーインデックスを経過した後でこの状況が発生します。 - トランザクションで`LastLedgerSequence`フィールドが省略されている場合は、別の意味で誤っている可能性があります。つまり、同じ送信者からの他のトランザクションでは同じ`Sequence`番号が使用されていない場合、トランザクションはその後、時間の経過に関係なく、理論上成功します。(詳細は、[確実なトランザクションの送信](reliable-transaction-submission.html)を参照してください。) + トランザクションで`LastLedgerSequence`フィールドが省略されている場合は、別の意味で誤っている可能性があります。つまり、同じ送信者からの他のトランザクションでは同じ`Sequence`番号が使用されていない場合、トランザクションはその後、時間の経過に関係なく、理論上成功します。(詳細は、[確実なトランザクションの送信](../reliable-transaction-submission.md)を参照してください。) 8. 脆弱なシステムは、トランザクションが失敗したと想定してアクションを実行します。 @@ -134,18 +134,15 @@ XRP Ledgerとのインフターフェイスに使用するソフトウェアか ## 関連項目 - **コンセプト:** - - [トランザクション](transactions.html) - - [結果のファイナリティー](finality-of-results.html) + - [トランザクション](../index.md) + - [結果のファイナリティー](index.md) - **チュートリアル:** - - [トランザクションの結果の確認](look-up-transaction-results.html) - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) + - [トランザクションの結果の確認](look-up-transaction-results.md) + - [信頼できるトランザクションの送信](../reliable-transaction-submission.md) - **リファレンス:** - - [基本的なデータ型 - ハッシュ](basic-data-types.html#ハッシュ) - - [トランザクションの共通フィールド](transaction-common-fields.html#グローバルフラグ) - - [トランザクションの結果](transaction-results.html) - - [シリアル化フォーマット](serialization.html) + - [基本的なデータ型 - ハッシュ](../../../references/protocol/data-types/basic-data-types.md#ハッシュ) + - [トランザクションの共通フィールド](../../../references/protocol/transactions/common-fields.md#グローバルフラグ) + - [トランザクションの結果](../../../references/protocol/transactions/transaction-results/transaction-results.md) + - [シリアル化フォーマット](../../../references/protocol/binary-format.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/index.md b/content/@i18n/ja/concepts/transactions/index.md index 6e8fb3640c..7c0d29ab62 100644 --- a/content/@i18n/ja/concepts/transactions/index.md +++ b/content/@i18n/ja/concepts/transactions/index.md @@ -8,24 +8,24 @@ labels: --- # トランザクション -_トランザクション(取引)_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](consensus.html)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、_[疑似トランザクション](pseudo-transaction-types.html)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションであっても、スパム対策の[トランザクションコスト][]を支払のためXRPの残高が変わるため、レジャーに記録されます。 +_トランザクション(取引)_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](../consensus-protocol/index.md)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、_[疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションであっても、スパム対策の[トランザクションコスト][]を支払のためXRPの残高が変わるため、レジャーに記録されます。 -トランザクションで行えることは、送金だけではありません。XRP Ledgerのトランザクションは、さまざまな[支払いタイプ](payment-types.html)に対応しているだけでなく、[暗号鍵](cryptographic-keys.html)のローテーション、その他の設定の管理、およびXRP Ledgerの[分散型取引所](decentralized-exchange.html)での取引にも使用されます。[トランザクションタイプの詳細なリスト](transaction-types.html)については、[`rippled` APIリファレンス](http-websocket-apis.html)を参照してください。 +トランザクションで行えることは、送金だけではありません。XRP Ledgerのトランザクションは、さまざまな[支払いタイプ](../payment-types/index.md)に対応しているだけでなく、[暗号鍵](../accounts/cryptographic-keys.md)のローテーション、その他の設定の管理、およびXRP Ledgerの[分散型取引所](../tokens/decentralized-exchange/index.md)での取引にも使用されます。[トランザクションタイプの詳細なリスト](../../references/protocol/transactions/types/index.md)については、[`rippled` APIリファレンス](../../references/http-websocket-apis/index.md)を参照してください。 ### トランザクションの識別 -署名付きトランザクションには、それを識別する固有の`"hash"`があります。トランザクションを送信すると、サーバーのレスポンスでハッシュが返されます。[account_txコマンド](account_tx.html)を使用して、アカウントのトランザクション履歴でトランザクションを検索することもできます。 +署名付きトランザクションには、それを識別する固有の`"hash"`があります。トランザクションを送信すると、サーバーのレスポンスでハッシュが返されます。[account_txコマンド](../../references/http-websocket-apis/public-api-methods/account-methods/account_tx.md)を使用して、アカウントのトランザクション履歴でトランザクションを検索することもできます。 -だれでも最終的なステータスを確認として[ハッシュによってトランザクションを調べる](look-up-transaction-results.html)ことができるため、トランザクションハッシュは「支払いの証明」として使用することができます。 +だれでも最終的なステータスを確認として[ハッシュによってトランザクションを調べる](finality-of-results/look-up-transaction-results.md)ことができるため、トランザクションハッシュは「支払いの証明」として使用することができます。 + +{% partial file="/_snippets/setfee_uniqueness_note.md" /%} -{% include '_snippets/setfee_uniqueness_note.ja.md' %} - ## 請求コストの正当化 -失敗したトランザクションに対しても[トランザクションコスト](transaction-cost.html)が発生するのは不公平に思えるかもしれませんが、正当な理由から`tec`クラスのエラーが存在します。 +失敗したトランザクションに対しても[トランザクションコスト](transaction-cost.md)が発生するのは不公平に思えるかもしれませんが、正当な理由から`tec`クラスのエラーが存在します。 * 失敗したトランザクションの後に送信するトランザクションでは、シーケンス値の番号を変更する必要はありません。失敗したトランザクションをレジャーに組み込むと、トランザクションのシーケンス番号が順に使われ予想される順序が保持されます。 * ネットワーク全体にトランザクションを拡散されられると、ネットワークの負荷が増大します。トランザクションコストを強制することにより、攻撃者が失敗したトランザクションでネットワークを乱用することが難しくなります。 @@ -40,15 +40,15 @@ _トランザクション(取引)_ は、XRP Ledgerを変更する唯一の * 送信元アドレスと数学的に関連付けられている、マスター秘密鍵による単一の署名。[AccountSetトランザクション][]を使用して、マスターキーペアを無効または有効にできます。 * アドレスに関連付けられているレギュラー秘密鍵と一致する単一の署名。[SetRegularKeyトランザクション][]を使用して、レギュラーキーペアを追加、削除、または置き換えることができます。 -* アドレスが所有する署名者のリストと一致する[マルチシグ](multi-signing.html)。[SignerListSetトランザクション][]を使用して、署名者のリストを追加、削除、または置換することができます。 +* アドレスが所有する署名者のリストと一致する[マルチシグ](../accounts/multi-signing.md)。[SignerListSetトランザクション][]を使用して、署名者のリストを追加、削除、または置換することができます。 署名の種類に関係なく、あらゆるタイプのトランザクションを承認できます。ただし、次の例外があります。 -* マスター秘密鍵だけが[マスター公開鍵](accountset.html)を無効にできます。 -* マスター秘密鍵だけが[凍結機能を永続的に放棄](freezes.html#no-freeze)できます。 +* マスター秘密鍵だけが[マスター公開鍵](../../references/protocol/transactions/types/accountset.md)を無効にできます。 +* マスター秘密鍵だけが[凍結機能を永続的に放棄](../tokens/fungible-tokens/freezes.md#no-freeze)できます。 * アドレスからトランザクションに署名する最後の方法を削除することはできません。 -マスターキーとレギュラーキーペアについて詳しくは、[暗号鍵](cryptographic-keys.html)を参照してください。 +マスターキーとレギュラーキーペアについて詳しくは、[暗号鍵](../accounts/cryptographic-keys.md)を参照してください。 @@ -60,11 +60,11 @@ XRP Ledgerにトランザクションを送信するには、いくつかの手 1. [未署名のトランザクションをJSON形式](#未署名のトランザクションの例)で作成します。 2. 1つ以上の署名を使用して[トランザクションを承認](#トランザクションの承認)します。 3. `rippled`サーバーにトランザクションを送信します。トランザクションが適切に作成されている場合、サーバーはそのトランザクションを現行バージョンのレジャーに暫定的に適用し、そのトランザクションをピアツーピアネットワークの他のメンバーに中継します。 -4. [コンセンサスプロセス](consensus.html)によって、次の検証済みレジャーに含まれる暫定的なトランザクションが決定されます。 +4. [コンセンサスプロセス](../consensus-protocol/index.md)によって、次の検証済みレジャーに含まれる暫定的なトランザクションが決定されます。 5. `rippled`サーバーはそれらのトランザクションを正規順序で前のレジャーに適用し、それらの結果を共有します。 -6. 十分に[信頼できるバリデータ](rippled-server-modes.html#バリデータ)がまったく同じレジャーを作成した場合、そのレジャーは _検証済み_ であると宣言され、そのレジャーの[トランザクションの結果](transaction-results.html)は不変となります。 +6. 十分に[信頼できるバリデータ](../networks-and-servers/rippled-server-modes.md#バリデータ)がまったく同じレジャーを作成した場合、そのレジャーは _検証済み_ であると宣言され、そのレジャーの[トランザクションの結果](../../references/protocol/transactions/transaction-results/transaction-results.md)は不変となります。 -XRP決済の送信に関する対話型チュートリアルについては、[Send XRP](send-xrp.html)を参照してください。 +XRP決済の送信に関する対話型チュートリアルについては、[Send XRP](../../tutorials/get-started/send-xrp.md)を参照してください。 ### 未署名のトランザクションの例 @@ -87,11 +87,11 @@ JSON形式の未署名の[Paymentトランザクション][]の例を次に示 } ``` -XRP Ledgerは、トランザクションオブジェクトが送信元アドレス(`Account`内)フィールドによって承認されている場合にのみ、トランザクションを中継して実行します。これを安全に行う方法については、[安全な署名の設定](secure-signing.html)を参照してください。 +XRP Ledgerは、トランザクションオブジェクトが送信元アドレス(`Account`内)フィールドによって承認されている場合にのみ、トランザクションを中継して実行します。これを安全に行う方法については、[安全な署名の設定](secure-signing.md)を参照してください。 ## 署名付きトランザクションBlobの例 -トランザクションに署名すると、ネットワークに送信できるバイナリーBlobが生成されます。この場合、`rippled`の[submitコマンド](submit.html)を使用します。署名付きBlobと同じトランザクションの例を示します。このトランザクションは、WebSocket APIを使用して送信されています。 +トランザクションに署名すると、ネットワークに送信できるバイナリーBlobが生成されます。この場合、`rippled`の[submitコマンド](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md)を使用します。署名付きBlobと同じトランザクションの例を示します。このトランザクションは、WebSocket APIを使用して送信されています。 ```json { @@ -103,9 +103,9 @@ XRP Ledgerは、トランザクションオブジェクトが送信元アドレ ## メタデータを含む実行済みトランザクションの例 -トランザクションが送信されたら、APIを使用して(例えば、[txコマンド](tx.html)を使用して)トランザクションのステータスを確認できます。これにより、トランザクションの指示、その結果、およびそれを実行する過程で行われたすべての変更の[メタデータ](transaction-metadata.html) が表示されます。 +トランザクションが送信されたら、APIを使用して(例えば、[txコマンド](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md)を使用して)トランザクションのステータスを確認できます。これにより、トランザクションの指示、その結果、およびそれを実行する過程で行われたすべての変更の[メタデータ](../../references/protocol/transactions/metadata.md) が表示されます。 -**注意:** トランザクションが結果コード`tesSUCCESS`で**検証済み**のレジャーに表示されない限り、トランザクションの成功は確定ではありません。関連項目: [結果のファイナリティー](finality-of-results.html) +**注意:** トランザクションが結果コード`tesSUCCESS`で**検証済み**のレジャーに表示されない限り、トランザクションの成功は確定ではありません。関連項目: [結果のファイナリティー](finality-of-results/index.md) `tx`コマンドのレスポンスの例: @@ -201,25 +201,21 @@ XRP Ledgerは、トランザクションオブジェクトが送信元アドレ ## 関連項目 - **コンセプト:** - - [支払いタイプ](payment-types.html) + - [支払いタイプ](../payment-types/index.md) - **チュートリアル:** - - [安全な署名の設定](secure-signing.html) - - [XRPの送金](send-xrp.html) - - [トランザクションの結果の確認](look-up-transaction-results.html) - - [WebSocketを使用した着信ペイメントの監視](monitor-incoming-payments-with-websocket.html) - - [トランザクションの取り消しまたはスキップ](cancel-or-skip-a-transaction.html) - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) + - [安全な署名の設定](secure-signing.md) + - [XRPの送金](../../tutorials/get-started/send-xrp.md) + - [トランザクションの結果の確認](finality-of-results/look-up-transaction-results.md) + - [WebSocketを使用した着信ペイメントの監視](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) + - [トランザクションの取り消しまたはスキップ](finality-of-results/canceling-a-transaction.md) + - [信頼できるトランザクションの送信](reliable-transaction-submission.md) - **リファレンス:** - - [トランザクションの共通フィールド](transaction-common-fields.html) - - [トランザクションのタイプ](transaction-types.html) - - [トランザクションのメタデータ](transaction-metadata.html) + - [トランザクションの共通フィールド](../../references/protocol/transactions/common-fields.md) + - [トランザクションのタイプ](../../references/protocol/transactions/types/index.md) + - [トランザクションのメタデータ](../../references/protocol/transactions/metadata.md) - [account_txメソッド][] - [txメソッド][] - [submitメソッド][] - [submit_multisignedメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/reliable-transaction-submission.md b/content/@i18n/ja/concepts/transactions/reliable-transaction-submission.md index bf25a1650b..632fcee7c1 100644 --- a/content/@i18n/ja/concepts/transactions/reliable-transaction-submission.md +++ b/content/@i18n/ja/concepts/transactions/reliable-transaction-submission.md @@ -25,15 +25,15 @@ XRP Ledgerを使用する金融機関やその他のサービスは、ここで ## 背景 -XRP Ledgerプロトコルは、ネットワークのすべてのサーバーで共有されるレジャー(台帳)を提供します。[コンセンサスと検証のプロセス](consensus.html)を通じ、ネットワークはトランザクションがレジャーに適用される(または除外される)順序に同意します。 +XRP Ledgerプロトコルは、ネットワークのすべてのサーバーで共有されるレジャー(台帳)を提供します。[コンセンサスと検証のプロセス](../consensus-protocol/index.md)を通じ、ネットワークはトランザクションがレジャーに適用される(または除外される)順序に同意します。 -正しい形式のトランザクションを信頼できるXRP Ledgerサーバーに送信すると、数秒で検証または拒否されます。ただし、正しい形式のトランザクションであっても迅速に検証も拒否もされないことがあります。このような特殊なケースは、アプリケーションがトランザクションを送信した後にグローバル[トランザクションコスト](transaction-cost.html)が増加すると発生することがあります。トランザクションに指定された額よりもトランザクションコストが増加すると、そのトランザクションは次回の検証済みレジャーに含まれません。後日、グローバルトランザクションコストが下がった場合には、そのトランザクションは後のレジャーに含まれます。トランザクションに有効期限が指定されていない場合には、レジャーへの追加はいつになるか分かりません。 +正しい形式のトランザクションを信頼できるXRP Ledgerサーバーに送信すると、数秒で検証または拒否されます。ただし、正しい形式のトランザクションであっても迅速に検証も拒否もされないことがあります。このような特殊なケースは、アプリケーションがトランザクションを送信した後にグローバル[トランザクションコスト](transaction-cost.md)が増加すると発生することがあります。トランザクションに指定された額よりもトランザクションコストが増加すると、そのトランザクションは次回の検証済みレジャーに含まれません。後日、グローバルトランザクションコストが下がった場合には、そのトランザクションは後のレジャーに含まれます。トランザクションに有効期限が指定されていない場合には、レジャーへの追加はいつになるか分かりません。 電源やネットワークに障害が発生した場合には、送信済みトランザクションのステータスの検出時にさらに多くの問題に直面します。アプリケーションは、トランザクションの適切な送信と、その後の正式結果の適切な受信の両方に十分な注意を払う必要があります。 ### トランザクションのタイムライン -XRP Ledgerには、[HTTP / WebSocket API](http-websocket-apis.html)や[クライアントライブラリ](client-libraries.html)など、トランザクションを送信するためのAPIがいくつかあります。使用するAPIにかかわらず、トランザクションは以下のようにレジャーに適用されます。 +XRP Ledgerには、[HTTP / WebSocket API](../../references/http-websocket-apis/index.md)や[クライアントライブラリ](../../references/client-libraries.md)など、トランザクションを送信するためのAPIがいくつかあります。使用するAPIにかかわらず、トランザクションは以下のようにレジャーに適用されます。 1. アカウント所有者は、トランザクションを作成して署名します。 2. 所有者は、トランザクション候補として、そのトランザクションをネットワークに送信します。 @@ -57,7 +57,7 @@ APIは、現在の進行中のレジャーにトランザクション候補を ### LastLedgerSequence -`LastLedgerSequence`は、省略可能な[全トランザクションに適用されるパラメーター](transaction-common-fields.html)です。このパラメーターはXRP Ledgerに対して、トランザクションを特定のレジャーバージョンで検証する必要があること、またはトランザクションを特定のレジャーバージョンの前に検証する必要があることを指示します。XRP Ledgerは、レジャーインデックスがトランザクションの`LastLedgerSequence`パラメーターよりも大きいトランザクションをレジャーバージョンに含めることは決してありません。 +`LastLedgerSequence`は、省略可能な[全トランザクションに適用されるパラメーター](../../references/protocol/transactions/common-fields.md)です。このパラメーターはXRP Ledgerに対して、トランザクションを特定のレジャーバージョンで検証する必要があること、またはトランザクションを特定のレジャーバージョンの前に検証する必要があることを指示します。XRP Ledgerは、レジャーインデックスがトランザクションの`LastLedgerSequence`パラメーターよりも大きいトランザクションをレジャーバージョンに含めることは決してありません。 `LastLedgerSequence`パラメーターを使用すれば、トランザクションが迅速に確認されず、将来のレジャーに含まれるような好ましくないケースを防止できます。`LastLedgerSequence`パラメーターは、各トランザクションに指定する必要があります。自動プロセスでは、最後に検証されたレジャーインデックスよりも4つ大きい数値を使用して、トランザクションが予測可能な方法で、かつ迅速に検証または拒否されるようにします。 @@ -67,7 +67,7 @@ APIは、現在の進行中のレジャーにトランザクション候補を 次の図は、トランザクションの送信と結果の判断に推奨されるフローを示します。 -[![信頼できるトランザクションの送信フローチャート](img/reliable-tx-submission.svg)](img/reliable-tx-submission.svg) +[![信頼できるトランザクションの送信フローチャート](/img/reliable-tx-submission.svg)](/img/reliable-tx-submission.svg) ### 信頼できるトランザクションの送信 @@ -138,31 +138,31 @@ For each persisted transaction without validated result: 2つのトランザクション失敗のケース(疑似コードの(1)と(2))の間の違いは、トランザクションが検証されたレジャーに含まれていたかどうかです。いずれのケースにおいても、失敗の処理には十分な注意が必要です。 -- 失敗のケース(1)では、トランザクションはレジャーに含まれ、[XRPトランザクションコスト](transaction-cost.html)は消却されましたが、それ以外には何も起こりませんでした。この原因としては、流動性の欠如、適切でない[パス](paths.html)、またはその他の状況が考えられます。多くの場合、このような失敗の場合には、同様のトランザクションをすぐに試すと同じ結果が出ることが多いです。状況が変わるのを待ってから送信すると、別の結果が得られることがあります。 +- 失敗のケース(1)では、トランザクションはレジャーに含まれ、[XRPトランザクションコスト](transaction-cost.md)は消却されましたが、それ以外には何も起こりませんでした。この原因としては、流動性の欠如、適切でない[パス](../tokens/fungible-tokens/paths.md)、またはその他の状況が考えられます。多くの場合、このような失敗の場合には、同様のトランザクションをすぐに試すと同じ結果が出ることが多いです。状況が変わるのを待ってから送信すると、別の結果が得られることがあります。 - 失敗のケース(2)では、トランザクションは検証済みレジャーには含まれないため、何も起こらず、トランザクションコストも消却されませんでした。これは、XRP Ledgerの現在の負荷に対してトランザクションコストが低すぎる、`LastLedgerSequence`が早すぎる、または不安定なネットワーク接続などの状況が原因である可能性があります。 - 失敗のケース(1)と異なり、このケースでは`LastLedgerSequence`のみを変更(または`Fee`も変更)するだけで、新しいトランザクションが成功する可能性があります。元のトランザクションと同じ`Sequence`番号を使用します。 - - また、トランザクションが成功しないのはレジャーのステータスが原因である可能性もあります。例えば、トランザクションに署名するために使用されたキーペアが送信アドレスで無効になっている場合などです。トランザクションの暫定的な結果が[`tef`-class code](tef-codes.html)の場合には、修正をしない限りそのトランザクションが成功する可能性は低くなります。 + - また、トランザクションが成功しないのはレジャーのステータスが原因である可能性もあります。例えば、トランザクションに署名するために使用されたキーペアが送信アドレスで無効になっている場合などです。トランザクションの暫定的な結果が[`tef`-class code](../../references/protocol/transactions/transaction-results/tef-codes.md)の場合には、修正をしない限りそのトランザクションが成功する可能性は低くなります。 - 失敗のケース(3)は、予期しない状態を表します。トランザクションが未処理の場合、最新の検証済みレジャーにある送信元アカウントの`Sequence`番号を確認する必要があります。([account_infoメソッド][]を使用して確認できます。)最新の検証済みレジャーにあるアカウントの`Sequence`値がトランザクションの`Sequence`値より大きい場合、同じ`Sequence`値を持つ別のトランザクションが検証済みレジャーに含まれています。システムがこの別のトランザクションを認識していない場合、予期しない状態となり、その原因が特定されるまで処理を停止しなければならなくなります。そうしないと、システムが同じ目標を達成するために複数のトランザクションを送信する可能性があります。行う必要のある手順は、具体的な原因によって変わります。考えられる原因と手順は次のとおりです。 - - 前回送信したトランザクションに[展性](transaction-malleability.html)があり、実際に検証済みレジャーに含まれていたが、予想と異なるハッシュだった場合。この問題は、`tfFullyCanonicalSig`フラグが含まれないフラグのセットを指定した場合か、必要以上の署名者によってマルチシグされたトランザクションであった場合に起こる可能性があります。これに該当する場合は、その異なるハッシュとトランザクションの最終結果を保存し、通常のアクティビティーを再開します。 + - 前回送信したトランザクションに[展性](finality-of-results/transaction-malleability.md)があり、実際に検証済みレジャーに含まれていたが、予想と異なるハッシュだった場合。この問題は、`tfFullyCanonicalSig`フラグが含まれないフラグのセットを指定した場合か、必要以上の署名者によってマルチシグされたトランザクションであった場合に起こる可能性があります。これに該当する場合は、その異なるハッシュとトランザクションの最終結果を保存し、通常のアクティビティーを再開します。 - - トランザクションを[キャンセル](cancel-or-skip-a-transaction.html)して置き換えたため、置き換え後のトランザクションが代わりに処理された場合。障害から復旧しようとしている場合、置き換え後のトランザクションでレコードが失われている可能性があります。その場合、当初確認していたトランザクションは恒久的に失敗し、置き換え後のトランザクションの最終結果が検証済みレジャーバージョンに記録されます。両方の最終結果を保存し、他に欠落したトランザクションや置き換えられたトランザクションがないか確認してから、通常のアクティビティーを再開します。 + - トランザクションを[キャンセル](finality-of-results/canceling-a-transaction.md)して置き換えたため、置き換え後のトランザクションが代わりに処理された場合。障害から復旧しようとしている場合、置き換え後のトランザクションでレコードが失われている可能性があります。その場合、当初確認していたトランザクションは恒久的に失敗し、置き換え後のトランザクションの最終結果が検証済みレジャーバージョンに記録されます。両方の最終結果を保存し、他に欠落したトランザクションや置き換えられたトランザクションがないか確認してから、通常のアクティビティーを再開します。 - アクティブ/パッシブフェイルオーバー構成で、トランザクション送信側のシステムが2台以上あり、パッシブシステムがアクティブシステムで障害が発生したと誤って認識してアクティブになったが、元のアクティブシステムも引き続きトランザクションを送信していた場合。システム間の接続をチェックして、そのうちの1台だけがアクティブであることを確認します。アカウントのトランザクション履歴を確認し([account_txメソッド][]を使用するなど)、検証済みレジャーに含まれていたすべてのトランザクションの最終結果を記録します。`Sequence`番号が同じ別のトランザクションはすべて完全に失敗しています。それらの最終結果も保存します。すべてのシステムの差異の調整を行い、システムが同時にアクティブになった原因となる問題を解決したら、通常のアクティビティーを再開します。 - **ヒント:** [`AccountTxnID`フィールド](transaction-common-fields.html#accounttxnid)を使用すると、このような状況で冗長的なトランザクションが成功しないように防ぐことができます。 + **ヒント:** [`AccountTxnID`フィールド](../../references/protocol/transactions/common-fields.md#accounttxnid)を使用すると、このような状況で冗長的なトランザクションが成功しないように防ぐことができます。 - - 不正使用者に秘密鍵を使われてトランザクションを送信された場合。その場合は、可能であれば[キーペアをローテーション](change-or-remove-a-regular-key-pair.html)して、送信された他のトランザクションを確認します。また、ネットワークを監査して、その秘密鍵が大規模な侵入やセキュリティ侵害に関係していたかどうかを判断する必要があります。キーペアのローテーションに成功して、不正使用者がアカウントやシステムにアクセスできなくなったら、通常のアクティビティーを再開します。 + - 不正使用者に秘密鍵を使われてトランザクションを送信された場合。その場合は、可能であれば[キーペアをローテーション](../../tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md)して、送信された他のトランザクションを確認します。また、ネットワークを監査して、その秘密鍵が大規模な侵入やセキュリティ侵害に関係していたかどうかを判断する必要があります。キーペアのローテーションに成功して、不正使用者がアカウントやシステムにアクセスできなくなったら、通常のアクティビティーを再開します。 #### レジャーのギャップ サーバーに、トランザクションが最初に送信されてから、レジャーが`LastLedgerSequence`によって識別された時点までを含む、継続したレジャー履歴がない場合には、トランザクションの最終結果を得られない可能性があります。(サーバーにないレジャーバージョンに結果が含まれている場合、成功したか失敗したかが分かりません。) -`rippled`サーバーにリソース(CPU/RAM/ディスクIO)の余裕がある場合には、不足しているレジャーバージョンを自動的に取得します。ただし、取得しようとするレジャーが[保管する履歴の設定期間](ledger-history.html)よりも古い場合には取得されません。ギャップのサイズや、サーバーのリソース使用率に基づき、不足しているレジャーバージョンの取得には数分かかります。[ledger_requestメソッド][]を使用して、履歴レジャーバージョンを取得するようにサーバーにリクエストできます。しかし、そうしても、サーバーに設定された履歴範囲外のレジャーバージョンからのトランザクション結果は検索できない場合があります。 +`rippled`サーバーにリソース(CPU/RAM/ディスクIO)の余裕がある場合には、不足しているレジャーバージョンを自動的に取得します。ただし、取得しようとするレジャーが[保管する履歴の設定期間](../networks-and-servers/ledger-history.md)よりも古い場合には取得されません。ギャップのサイズや、サーバーのリソース使用率に基づき、不足しているレジャーバージョンの取得には数分かかります。[ledger_requestメソッド][]を使用して、履歴レジャーバージョンを取得するようにサーバーにリクエストできます。しかし、そうしても、サーバーに設定された履歴範囲外のレジャーバージョンからのトランザクション結果は検索できない場合があります。 あるいは、`s2.ripple.com`にあるRippleの完全履歴サーバーなど、必要なレジャー履歴を含む別の`rippled`サーバーを使用して、トランザクションのステータスを検索することもできます。この目的には、信頼できるサーバーのみを使用してください。不正なサーバーは、トランザクションのステータスや結果について偽の情報を提供するようにプログラムされている可能性があります。 @@ -171,7 +171,7 @@ For each persisted transaction without validated result: トランザクションの送信および確認のベストプラクティスを実施するには、アプリケーションで以下を実行する必要があります。 1. 署名するアカウントの次のシーケンス番号を判断します - * 各トランザクションにはアカウント固有の[シーケンス番号](basic-data-types.html#アカウントシーケンス)があります。これにより、アカウントによって署名されたトランザクションの実行順序が保証され、再送信しても同じトランザクションがレジャーに二重に適用されることがなくなります。 + * 各トランザクションにはアカウント固有の[シーケンス番号](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)があります。これにより、アカウントによって署名されたトランザクションの実行順序が保証され、再送信しても同じトランザクションがレジャーに二重に適用されることがなくなります。 2. `LastLedgerSequence`を決定します * トランザクションの`LastLedgerSequence`は、最後の検証済みレジャーインデックスから計算されます。 3. トランザクションを生成して署名します @@ -183,8 +183,8 @@ For each persisted transaction without validated result: アプリケーションでのこれらのアクションの実行方法は、アプリケーションが使用するAPIによって異なります。アプリケーションでは、以下のインターフェイスを使用できます。 -1. [HTTP / WebSocket API](http-websocket-apis.html) -2. [クライアントライブラリ](client-libraries.html) +1. [HTTP / WebSocket API](../../references/http-websocket-apis/index.md) +2. [クライアントライブラリ](../../references/client-libraries.md) 3. 任意の数の他のソフトウェアAPI ### rippled - トランザクションの送信と確認 @@ -518,13 +518,10 @@ JSON-RPCリクエスト: ## その他のリソース -- [トランザクションのフォーマット](transaction-formats.html) -- [トランザクションコスト](transaction-cost.html) -- [トランザクション展性](transaction-malleability.html) -- [XRP Ledgerコンセンサスプロセスの概要](consensus.html) -- [コンセンサスの原理とルール](consensus-principles-and-rules.html) +- [トランザクションのフォーマット](../../references/protocol/transactions/index.md) +- [トランザクションコスト](transaction-cost.md) +- [トランザクション展性](finality-of-results/transaction-malleability.md) +- [XRP Ledgerコンセンサスプロセスの概要](../consensus-protocol/index.md) +- [コンセンサスの原理とルール](../consensus-protocol/consensus-principles-and-rules.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/secure-signing.md b/content/@i18n/ja/concepts/transactions/secure-signing.md index 6852e4484a..42077ba308 100644 --- a/content/@i18n/ja/concepts/transactions/secure-signing.md +++ b/content/@i18n/ja/concepts/transactions/secure-signing.md @@ -8,7 +8,7 @@ labels: --- # 安全な署名 -[トランザクション](transactions.html)をXRP Ledgerに送信するには、[秘密鍵](cryptographic-keys.html)のセキュリティを損なわない方法でトランザクションにデジタル署名する必要があります。(他の人があなたの秘密鍵にアクセスできる場合、その人はあなたと同じようにあなたのアカウントを操作できるため、すべての資金が盗まれたり消却されたりする可能性があります。)このページでは、トランザクションに安全に署名できる環境の設定方法について説明します。 +[トランザクション](index.md)をXRP Ledgerに送信するには、[秘密鍵](../accounts/cryptographic-keys.md)のセキュリティを損なわない方法でトランザクションにデジタル署名する必要があります。(他の人があなたの秘密鍵にアクセスできる場合、その人はあなたと同じようにあなたのアカウントを操作できるため、すべての資金が盗まれたり消却されたりする可能性があります。)このページでは、トランザクションに安全に署名できる環境の設定方法について説明します。 **ヒント:** ネットワークにトランザクションを送信していない場合は、Rippleが運用しているサーバーなど、信頼できる公開サーバーを安全に使用して、着信トランザクションの監視やその他のネットワークアクティビティの読み取りを行うことができます。XRP Ledgerのすべてのトランザクション、残高、データは公開されています。 @@ -24,7 +24,7 @@ labels: ## 安全でない構成 -{{ include_svg("img/insecure-signing-options.svg", "安全でない構成の図") }} +[{% inline-svg file="/img/insecure-signing-options.svg" /%}](/img/insecure-signing-options.svg "安全でない構成の図") 外部のソースからあなたの秘密鍵にアクセスできる構成は危険で、不正使用者によってあなたのすべてのXRP(およびあなたのXRP Ledgerのアドレスにあるすべてのもの)が盗まれる可能性があります。そのような構成の例としては、インターネット経由で他の人の`rippled`サーバーの[signメソッド][]を使用する構成や、秘密鍵をインターネットを経由してプレーンテキストで自己所有サーバーに送信する構成などがあります。 @@ -35,19 +35,19 @@ labels: ## ローカルでrippledを実行する -{{ include_svg("img/secure-signing-local-rippled.svg", "署名にローカルrippledサーバーを使用する構成の図") }} +[{% inline-svg file="/img/secure-signing-local-rippled.svg" /%}](/img/secure-signing-local-rippled.svg "署名にローカルrippledサーバーを使用する構成の図") この構成では、トランザクションを生成するマシンで`rippled`を実行します。 秘密鍵はマシンから出ていかないため、マシンへのアクセス権がない人は秘密鍵にアクセスできません。もちろん、マシンのセキュリティ保護に関する業界標準のプラクティスに従ってください。この構成を使用するには、次の手順を実行します。 -1. [`rippled`をインストール](install-rippled.html)します。 +1. [`rippled`をインストール](../../infrastructure/installation/index.md)します。 - ローカルマシンが[`rippled`の最小システム要件](system-requirements.html)を満たしていることを確認します。 + ローカルマシンが[`rippled`の最小システム要件](../../infrastructure/installation/system-requirements.md)を満たしていることを確認します。 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](request-formatting.html#コマンドライン形式)を使用する場合は、コマンドラインでないクライアントで[Websocket APIやJSON-RPC APIを使用](get-started-using-http-websocket-apis.html)する場合よりもセキュリティが弱くなります。コマンドライン構文を使用すると、秘密鍵がシステムのプロセスリストで他のユーザーに見える可能性があり、シェル履歴にプレーンテキスト形式でキーが保存される可能性があります。 + **注意:** 署名に[コマンドラインAPI](../../references/http-websocket-apis/api-conventions/request-formatting.md#コマンドライン形式)を使用する場合は、コマンドラインでないクライアントで[Websocket APIやJSON-RPC APIを使用](../../tutorials/get-started/get-started-using-http-websocket-apis.md)する場合よりもセキュリティが弱くなります。コマンドライン構文を使用すると、秘密鍵がシステムのプロセスリストで他のユーザーに見える可能性があり、シェル履歴にプレーンテキスト形式でキーが保存される可能性があります。 3. サーバーの使用中は、稼働状態と最新状態を維持して、ネットワークと同期されるようにしておく必要があります。 @@ -56,7 +56,7 @@ labels: ## 同じLAN内でrippledを実行する -{{ include_svg("img/secure-signing-lan-rippled.svg", "署名にLAN経由でrippledサーバーを使用する構成の図") }} +[{% inline-svg file="/img/secure-signing-lan-rippled.svg" /%}](/img/secure-signing-lan-rippled.svg "署名にLAN経由でrippledサーバーを使用する構成の図") この構成では、署名するトランザクションを生成するマシンと同じプライベートローカルエリアネットワーク(LAN)内の専用マシンで`rippled`サーバーを実行します。この構成では、`rippled`を実行する専用の1台のマシンを使用しながら、中程度のシステムスペックの1台以上のマシンでトランザクションの指示を組み立てることができます。自己所有のデータセンターやサーバールームがある場合に魅力的な選択肢です。 @@ -69,9 +69,9 @@ labels: ## ローカル署名機能のあるクライアントライブラリを使用する -{{ include_svg("img/secure-signing-client-library.svg", "ローカル署名機能のあるクライアントライブラリを使用する構成の図") }} +[{% inline-svg file="/img/secure-signing-client-library.svg" /%}](/img/secure-signing-client-library.svg "ローカル署名機能のあるクライアントライブラリを使用する構成の図") -この構成では、使用するプログラミング言語で、署名を組み込んだクライアントライブラリを使用します。ローカル署名を実行できるライブラリの一覧は、[クライアントライブラリ](client-libraries.html)を参照してください。 +この構成では、使用するプログラミング言語で、署名を組み込んだクライアントライブラリを使用します。ローカル署名を実行できるライブラリの一覧は、[クライアントライブラリ](../../references/client-libraries.md)を参照してください。 ### 署名ライブラリのセキュリティベストプラクティス @@ -96,31 +96,26 @@ labels: * **Java** - [`xrpl4j`](https://github.com/XRPLF/xrpl4j) - +{% tabs %} -*JavaScript* +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/secure-signing/js/signPayment.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/secure-signing/js/signPayment.js' %} -``` +{% tab label="Python" %} +{% code-snippet file="/_code-samples/secure-signing/py/sign-payment.py" language="py" /%} +{% /tab %} -*Python* +{% tab label="Java" %} +{% code-snippet file="/_code-samples/secure-signing/java/SignPayment.java" language="java" /%} +{% /tab %} -```py -{% include '_code-samples/secure-signing/py/sign-payment.py' %} -``` - -*Java* - -```java -{% include '_code-samples/secure-signing/java/SignPayment.java' %} -``` - +{% /tabs %} ## 専用の署名デバイスを使用する -{{ include_svg("img/secure-signing-dedicated-hardware.svg", "専用の署名ハードウェアの使用の図") }} +[{% inline-svg file="/img/secure-signing-dedicated-hardware.svg" /%}](/img/secure-signing-dedicated-hardware.svg "専用の署名ハードウェアの使用の図") 専用の署名デバイスが各社から販売されており、例えば[Ledger Nano S](https://www.ledger.com/products/ledger-nano-s)は、秘密鍵をデバイスから出さずに使ってXRP Ledgerトランザクションに署名できます。すべてのタイプのトランザクションに対応していないデバイスもあります。 @@ -129,7 +124,7 @@ labels: ## リモートrippledサーバーに対して安全なVPNを使用する -{{ include_svg("img/secure-signing-over-vpn.svg", "VPNを経由してリモート`rippled`に安全に接続する構成の図") }} +[{% inline-svg file="/img/secure-signing-over-vpn.svg" /%}](/img/secure-signing-over-vpn.svg "VPNを経由してリモート`rippled`に安全に接続する構成の図") この構成では、コロケーション施設や遠隔地のデータセンターなどにあるリモートでホストされている`rippled`サーバーを使用し、暗号化されたVPNを使用してそのサーバーに接続します。 @@ -139,13 +134,13 @@ labels: ## 関連項目 - **コンセプト:** - - [暗号鍵](cryptographic-keys.html) - - [マルチシグ](multi-signing.html) + - [暗号鍵](../accounts/cryptographic-keys.md) + - [マルチシグ](../accounts/multi-signing.md) - **チュートリアル:** - - [rippledのインストール](install-rippled.html) - - [レギュラーキーペアの割り当て](assign-a-regular-key-pair.html) - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [パブリック署名の有効化](enable-public-signing.html) + - [rippledのインストール](../../infrastructure/installation/index.md) + - [レギュラーキーペアの割り当て](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md) + - [信頼できるトランザクションの送信](reliable-transaction-submission.md) + - [パブリック署名の有効化](../../infrastructure/configuration/enable-public-signing.md) - **リファレンス:** - [signメソッド][] - [submitメソッド][] @@ -153,10 +148,4 @@ labels: - [`xrpl-py`リファレンス](https://xrpl-py.readthedocs.io/) - [`xrpl4j` Reference](https://javadoc.io/doc/org.xrpl/) - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/source-and-destination-tags.md b/content/@i18n/ja/concepts/transactions/source-and-destination-tags.md index 8f68cb729d..b504934e84 100644 --- a/content/@i18n/ja/concepts/transactions/source-and-destination-tags.md +++ b/content/@i18n/ja/concepts/transactions/source-and-destination-tags.md @@ -9,9 +9,9 @@ labels: --- # 送信元タグと宛先タグ -_送信元タグ_と_宛先タグ_は、XRP Ledgerの[支払い](payment-types.html)機能で、多目的アドレスからの支払いや多目的アドレスへの支払いの特定の目的を示すことができます。送信元タグと宛先タグは、台帳上の直接的な機能を持ちません。送信元タグと宛先タグは、台帳外のシステムがどのように支払いを処理すべきかについての情報を提供するだけです。トランザクションでは、送信元タグも宛先タグも 32ビット符号なし整数の形式です。 +_送信元タグ_と_宛先タグ_は、XRP Ledgerの[支払い](../payment-types/index.md)機能で、多目的アドレスからの支払いや多目的アドレスへの支払いの特定の目的を示すことができます。送信元タグと宛先タグは、台帳上の直接的な機能を持ちません。送信元タグと宛先タグは、台帳外のシステムがどのように支払いを処理すべきかについての情報を提供するだけです。トランザクションでは、送信元タグも宛先タグも 32ビット符号なし整数の形式です。 -宛先タグは、支払いの受取人または宛先を示します。例えば、[取引所](list-xrp-as-an-exchange.html) や [ステーブルコインの発行者](stablecoin-issuer.html)アドレスへの支払いは、宛先タグを使用して、そのビジネス自体のシステム内で支払額を与信するユーザを表すことができます。店舗・業者への支払いは、その支払いがどの商品を購入するのかを表すことができます。 +宛先タグは、支払いの受取人または宛先を示します。例えば、[取引所](../../use-cases/defi/list-xrp-as-an-exchange.md) や [ステーブルコインの発行者](../../use-cases/tokenization/stablecoin-issuer.md)アドレスへの支払いは、宛先タグを使用して、そのビジネス自体のシステム内で支払額を与信するユーザを表すことができます。店舗・業者への支払いは、その支払いがどの商品を購入するのかを表すことができます。 送信元タグは、支払いの送信者または送信元を示します。最も一般的なのは、受取人に対する返金時の送信先として送信元タグを使用することです。返金する場合は、受領した支払いの送信元タグを返金支払いの宛先タグとして使用する必要があります。 @@ -21,7 +21,7 @@ _送信元タグ_と_宛先タグ_は、XRP Ledgerの[支払い](payment-types.h ## 理由 -他の分散型台帳では、顧客ごとに異なる入金アドレスを使用するのが一般的です。XRP Ledgerでは、支払いを受け取るためには、そのアドレスは入金され有効化済みの[アカウント](accounts.html)でなければなりません。XRP Ledgerで他と同じアプローチを用いると、ネットワーク内の全てのサーバのリソースを無駄に消費し、各アドレスに対して[準備金](reserves.html)の金額を無制限に確保しなければならな苦なり、大きなコストがかかります。 +他の分散型台帳では、顧客ごとに異なる入金アドレスを使用するのが一般的です。XRP Ledgerでは、支払いを受け取るためには、そのアドレスは入金され有効化済みの[アカウント](../accounts/accounts.md)でなければなりません。XRP Ledgerで他と同じアプローチを用いると、ネットワーク内の全てのサーバのリソースを無駄に消費し、各アドレスに対して[準備金](../accounts/reserves.md)の金額を無制限に確保しなければならな苦なり、大きなコストがかかります。 送信元タグと宛先タグは、入金と支払いを個別の顧客にマッピングする、より軽量な方法を提供します。 @@ -41,16 +41,12 @@ _送信元タグ_と_宛先タグ_は、XRP Ledgerの[支払い](payment-types.h ## タグの必須化 -複数の顧客口座への支払いを受け取る可能性があるXRP Ledgerアドレスにとって、宛先タグなしで支払いを受け取ることは問題です。どの顧客に入金すべきかがすぐに分からないため、手作業が必要になったり、誰が受取人であったかを特定するために送金者とやり取りをしなければならなくなったりします。このようなケースを減らすために、[`RequireDest`設定を有効にする](require-destination-tags.html)ことができます。そうすることで、もしユーザが支払先にタグを設定し忘れた場合、XRP Ledgerはその支払いを拒否します。その後、ユーザはそのタグを使って再度支払いを行うことができます。 +複数の顧客口座への支払いを受け取る可能性があるXRP Ledgerアドレスにとって、宛先タグなしで支払いを受け取ることは問題です。どの顧客に入金すべきかがすぐに分からないため、手作業が必要になったり、誰が受取人であったかを特定するために送金者とやり取りをしなければならなくなったりします。このようなケースを減らすために、[`RequireDest`設定を有効にする](../../tutorials/manage-account-settings/require-destination-tags.md)ことができます。そうすることで、もしユーザが支払先にタグを設定し忘れた場合、XRP Ledgerはその支払いを拒否します。その後、ユーザはそのタグを使って再度支払いを行うことができます。 ## 関連項目 -- [宛先タグの必須化](require-destination-tags.html) -- [支払いのタイプ](payment-types.html) +- [宛先タグの必須化](../../tutorials/manage-account-settings/require-destination-tags.md) +- [支払いのタイプ](../payment-types/index.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/transaction-cost.md b/content/@i18n/ja/concepts/transactions/transaction-cost.md index f003d053eb..3f447230b8 100644 --- a/content/@i18n/ja/concepts/transactions/transaction-cost.md +++ b/content/@i18n/ja/concepts/transactions/transaction-cost.md @@ -8,7 +8,7 @@ labels: --- # トランザクションコスト -XRP LedgerをスパムやDoS攻撃から守るため、各トランザクションでは少額の[XRP](what-is-xrp.html)が消却されます。この _トランザクションコスト_ はネットワークの負荷とともに増加するように設計されており、故意または不注意にネットワークに過剰な負荷をかけると非常に高くつきます。 +XRP LedgerをスパムやDoS攻撃から守るため、各トランザクションでは少額の[XRP](../../introduction/what-is-xrp.md)が消却されます。この _トランザクションコスト_ はネットワークの負荷とともに増加するように設計されており、故意または不注意にネットワークに過剰な負荷をかけると非常に高くつきます。 各トランザクションのトランザクションコストを支払う際には、[消却するXRPの額を指定](#トランザクションコストの指定)する必要があります。 @@ -27,9 +27,9 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ |-----------------------|--------------------------| | [Referenceトランザクション](#referenceトランザクションコスト)(ほとんどのトランザクション) | 10 drop | | [Key Resetトランザクション](#key-resetトランザクション)| 0 | -| [マルチシグトランザクション](multi-signing.html)| 10 drop × (1 + 署名の数) | -| [フルフィルメントを伴うEscrowFinishトランザクション](escrowfinish.html)| 10 drop × (33 + (バイト単位のフルフィルメントサイズ ÷ 16)) | -| [AccountDeleteトランザクション](deleting-accounts.html)| 2,000,000 drop | +| [マルチシグトランザクション](../accounts/multi-signing.md)| 10 drop × (1 + 署名の数) | +| [フルフィルメントを伴うEscrowFinishトランザクション](../../references/protocol/transactions/types/escrowfinish.md)| 10 drop × (33 + (バイト単位のフルフィルメントサイズ ÷ 16)) | +| [AccountDeleteトランザクション](../accounts/deleting-accounts.md)| 2,000,000 drop | ## トランザクションコストの受取人 @@ -53,7 +53,7 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ## ローカル負荷コスト -各`rippled`サーバーには、現在の負荷に基づいてコストしきい値が保持されています。送信するトランザクションの`Fee`値が`rippled`サーバーの現在の負荷ベーストランザクションコストより低い場合、そのサーバーはトランザクションの適用も中継もしません。(**注記:** [管理者接続](get-started-using-http-websocket-apis.html)を介してトランザクションを送信する場合、トランザクションがスケーリングされていない最低トランザクションコストを満たすかぎり、サーバーはそのトランザクションを適用し、中継します。)トランザクションの`Fee`値が大半のサーバーの要件を満たさないかぎり、そのトランザクションが[コンセンサスプロセス](consensus.html)を完了する可能性は極めて低くなります。 +各`rippled`サーバーには、現在の負荷に基づいてコストしきい値が保持されています。送信するトランザクションの`Fee`値が`rippled`サーバーの現在の負荷ベーストランザクションコストより低い場合、そのサーバーはトランザクションの適用も中継もしません。(**注記:** [管理者接続](../../tutorials/get-started/get-started-using-http-websocket-apis.md)を介してトランザクションを送信する場合、トランザクションがスケーリングされていない最低トランザクションコストを満たすかぎり、サーバーはそのトランザクションを適用し、中継します。)トランザクションの`Fee`値が大半のサーバーの要件を満たさないかぎり、そのトランザクションが[コンセンサスプロセス](../consensus-protocol/index.md)を完了する可能性は極めて低くなります。 ## オープンレジャーコスト @@ -61,7 +61,7 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ 新しいレジャーバージョンごとに、サーバーは前のレジャーのトランザクション数に基づいてオープンレジャーに含めるトランザクション数のソフトリミットを選択します。オープンレジャーコストは、オープンレジャー内のトランザクション数がソフトリミットと等しくなるまでは、スケーリングされていない最低トランザクションコストと同じです。それを超えると、オープンレジャーコストはオープンレジャーに含まれるトランザクションごとに急激に増加します。次のレジャーでは、現行のレジャーにソフトリミットを超えるトランザクションが含まれていれば、サーバーはソフトリミットを高くし、コンセンサスプロセスに5秒より時間が掛かる場合はソフトリミットを低くします。 -オープンレジャーコストの水準は、絶対的なトランザクションコストではなく[標準的なトランザクションコストに比例](#手数料レベル)しています。標準よりも高い要件を持つトランザクションタイプ([マルチシグトランザクション](multi-signing.html)など)は、オープンレジャーコストを満たすために最低限のトランザクションコスト要件を持つトランザクションよりも多く支払う必要があります。 +オープンレジャーコストの水準は、絶対的なトランザクションコストではなく[標準的なトランザクションコストに比例](#手数料レベル)しています。標準よりも高い要件を持つトランザクションタイプ([マルチシグトランザクション](../accounts/multi-signing.md)など)は、オープンレジャーコストを満たすために最低限のトランザクションコスト要件を持つトランザクションよりも多く支払う必要があります。 関連項目: [`rippled`リポジトリー内のFee Escalationの説明](https://github.com/XRPLF/rippled/blob/release/src/ripple/app/misc/FeeEscalation.md)。 @@ -69,11 +69,11 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ `rippled`が、サーバーのローカル負荷コストは満たすが[オープンレジャーコスト](#オープンレジャーコスト)は満たさないトランザクションを受け取った場合、サーバーはそのトランザクションが後のレジャーに「含まれる可能性」を判断します。その可能性が高いと判断すれば、サーバーはそのトランザクションをトランザクションキューに追加し、他のネットワークメンバーにトランザクションを中継します。そうでない場合、サーバーはトランザクションを破棄します。[トランザクションコストは検証済みレジャーに含まれるトランザクションにのみ適用される](#トランザクションコストと失敗したトランザクション)ため、サーバーは、トランザクションコストを支払わないトランザクションにより生じるネットワーク負荷量を最低限に抑えようとします。 -キューに入れられたトランザクションの詳細は、[トランザクションキュー](transaction-queue.html)を参照してください。 +キューに入れられたトランザクションの詳細は、[トランザクションキュー](transaction-queue.md)を参照してください。 ## Referenceトランザクションコスト -「Referenceトランザクション」とは、負荷スケーリング前の[トランザクションコスト](transaction-cost.html)という観点からは、最も安価な(無料ではない)トランザクションと言えます。ほとんどのトランザクションのコストはReferenceトランザクションと同じです。[マルチシグトランザクション](multi-signing.html)など一部のトランザクションでは、このコストの数倍のコストが必要です。オープンレジャーコストが上昇する場合は、コスト水準はトランザクションの基本コストに比例します。 +「Referenceトランザクション」とは、負荷スケーリング前の[トランザクションコスト](transaction-cost.md)という観点からは、最も安価な(無料ではない)トランザクションと言えます。ほとんどのトランザクションのコストはReferenceトランザクションと同じです。[マルチシグトランザクション](../accounts/multi-signing.md)など一部のトランザクションでは、このコストの数倍のコストが必要です。オープンレジャーコストが上昇する場合は、コスト水準はトランザクションの基本コストに比例します。 ### 手数料レベル @@ -82,9 +82,9 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ | トランザクション | drop単位の最少コスト | 手数料レベルでの最少コスト | drop単位で倍のコスト | 手数料レベルで倍のコスト | |-------------|-----------------------|----------------------------|----------------------|---------------------------| | Referenceトランザクション(ほとんどのトランザクション) | 10 | 256 | 20 | 512 | -| 4つの署名を持つ[マルチシグトランザクション](multi-signing.html) | 50 | 256 | 100 | 512 | -| [Key Resetトランザクション](transaction-cost.html#key-resetトランザクション) | 0 | (事実上無限) | なし | (事実上無限) | -| 32バイトのプリイメージ付きの[EscrowFinishトランザクション](escrowfinish.html)。 | 350 | 256 | 700 | 512 | +| 4つの署名を持つ[マルチシグトランザクション](../accounts/multi-signing.md) | 50 | 256 | 100 | 512 | +| [Key Resetトランザクション](transaction-cost.md#key-resetトランザクション) | 0 | (事実上無限) | なし | (事実上無限) | +| 32バイトのプリイメージ付きの[EscrowFinishトランザクション](../../references/protocol/transactions/types/escrowfinish.md)。 | 350 | 256 | 700 | 512 | ## トランザクションコストの問い合わせ @@ -102,7 +102,7 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ### server_state -[server_stateメソッド][]は、`rippled`の内部負荷計算の内容をそのままの表示形式で返します。この場合、有効負荷率は`load_base`に対する`load_factor`の割合です。`validated_ledger.base_fee`パラメーターは、[XRPのdrop](basic-data-types.html#通貨額の指定)単位の最低トランザクションコストをレポートします。この設計により、`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`** @@ -110,72 +110,69 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ## トランザクションコストの指定 -署名されたすべてのトランザクションの[`Fee`フィールド](transaction-common-fields.html)には、トランザクションコストを含める必要があります。署名されたトランザクションのすべてのフィールドと同様に、このフィールドは署名の無効化を行わなければ変更できません。 +署名されたすべてのトランザクションの[`Fee`フィールド](../../references/protocol/transactions/common-fields.md)には、トランザクションコストを含める必要があります。署名されたトランザクションのすべてのフィールドと同様に、このフィールドは署名の無効化を行わなければ変更できません。 -通常、XRP Ledgerはトランザクションを署名された _とおりに_ 実行します。(少なくとも、分散型コンセンサスネットワーク全体をコーディネートしてそれ以外のことを実行するのは難しいと思われます。)したがって、`Fee`フィールドに指定されたXRPの額が、ネットワーク内で指定されているどの現在の最低トランザクションコストをもはるかに上回っていたとしても、指定したとおりのXRPがすべてのトランザクションで消却されます。トランザクションコストでは、アカウントの[準備金](reserves.html)用に確保していたXRPも消却される場合があります。 +通常、XRP Ledgerはトランザクションを署名された _とおりに_ 実行します。(少なくとも、分散型コンセンサスネットワーク全体をコーディネートしてそれ以外のことを実行するのは難しいと思われます。)したがって、`Fee`フィールドに指定されたXRPの額が、ネットワーク内で指定されているどの現在の最低トランザクションコストをもはるかに上回っていたとしても、指定したとおりのXRPがすべてのトランザクションで消却されます。トランザクションコストでは、アカウントの[準備金](../accounts/reserves.md)用に確保していたXRPも消却される場合があります。 トランザクションに署名する前に、[現在の負荷ベースのトランザクションコストを調べる](#トランザクションコストの問い合わせ)ことをお勧めします。負荷スケーリングが原因でトランザクションコストが高い場合は、低下するまで待つことができます。トランザクションをすぐに送信するつもりがない場合は、トランザクションコストにおける将来の負荷ベースの変動を考慮して、少し高めのトランザクションコストを指定することをお勧めします。 ### トランザクションコストの自動指定 -オンラインでトランザクションに署名する場合は、`Fee`フィールドを省略できます。この場合、`rippled`または[クライアントライブラリ](client-libraries.html)が現在の要件に照らしてピアツーピアネットワークの状態を確認し、トランザクションに署名する前に`Fee`値を追加します。ただし、このようなトランザクションコストへの自動入力にはいくつかの欠点と制限事項があります。 +オンラインでトランザクションに署名する場合は、`Fee`フィールドを省略できます。この場合、`rippled`または[クライアントライブラリ](../../references/client-libraries.md)が現在の要件に照らしてピアツーピアネットワークの状態を確認し、トランザクションに署名する前に`Fee`値を追加します。ただし、このようなトランザクションコストへの自動入力にはいくつかの欠点と制限事項があります。 * トランザクションに署名し、分散するまでの間にネットワークのトランザクションコストが上昇した場合、そのトランザクションは承認されない場合があります。 - * 最悪の場合、トランザクションに`LastLedgerSequence`パラメーターが含まれているか、同じ`Sequence`番号を使用する新しいトランザクションによってその[トランザクションがキャンセル](canceling-a-transaction.html)されない限り、トランザクションは明確に承認も拒否もされない状態のままとなってしまいます。ベストプラクティスについては、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 + * 最悪の場合、トランザクションに`LastLedgerSequence`パラメーターが含まれているか、同じ`Sequence`番号を使用する新しいトランザクションによってその[トランザクションがキャンセル](finality-of-results/canceling-a-transaction.md)されない限り、トランザクションは明確に承認も拒否もされない状態のままとなってしまいます。ベストプラクティスについては、[信頼できるトランザクションの送信](reliable-transaction-submission.md)を参照してください。 * 署名するトランザクションの`Fee`フィールドの正確な値は事前にわかりません。 * `rippled`を使用している場合は、[signメソッド][]の`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、署名しようとしている負荷スケーリングに制限を設定することもできます。 * オフラインのマシンから現在のトランザクションコストを調べることはできません。 -* [マルチシグ](multi-signing.html)の場合、トランザクションコストの自動指定は行えません。 +* [マルチシグ](../accounts/multi-signing.md)の場合、トランザクションコストの自動指定は行えません。 ## トランザクションコストと失敗したトランザクション -トランザクションコストの目的はXRP Ledgerピアツーピアネットワークを過度な負荷から保護することであるため、トランザクションが成功するかどうかにかかわらず、ネットワークに分散されるすべてのトランザクションにコストが適用されます。ただし、共有のグローバルレジャーに作用するため、トランザクションを検証済みレジャーに含める必要があります。したがって、`rippled`サーバーは[`tec`ステータスコード](transaction-results.html)(「tec」は「トランザクションエンジン - 請求手数料のみ」(Transaction Engine - Claimed fee only)を表します)で、失敗したトランザクションをレジャーに含めようとします。 +トランザクションコストの目的はXRP Ledgerピアツーピアネットワークを過度な負荷から保護することであるため、トランザクションが成功するかどうかにかかわらず、ネットワークに分散されるすべてのトランザクションにコストが適用されます。ただし、共有のグローバルレジャーに作用するため、トランザクションを検証済みレジャーに含める必要があります。したがって、`rippled`サーバーは[`tec`ステータスコード](../../references/protocol/transactions/transaction-results/transaction-results.md)(「tec」は「トランザクションエンジン - 請求手数料のみ」(Transaction Engine - Claimed fee only)を表します)で、失敗したトランザクションをレジャーに含めようとします。 トランザクションコストは、トランザクションが実際に検証済みレジャーに含められた場合に、送信者のXRP残高から差し引かれるだけです。このことは、トランザクションが成功するか`tec`コードとともに失敗するかにかかわらず適用されます。 -トランザクションの失敗が[確定](finality-of-results.html)である場合、`rippled`サーバーによるネットワークへの中継は行われません。トランザクションは検証済みレジャーに含まれないため、誰のXRP残高にも影響することはありません。 +トランザクションの失敗が[確定](finality-of-results/index.md)である場合、`rippled`サーバーによるネットワークへの中継は行われません。トランザクションは検証済みレジャーに含まれないため、誰のXRP残高にも影響することはありません。 ### 不十分なXRP -`rippled`サーバーが最初にトランザクションを評価するとき、送信側アカウントにXRPトランザクションコストを支払うのに十分なXRP残高がない場合は、エラーコード`terINSUF_FEE_B`にてトランザクションを拒否します。これは`ter`(再試行)コードであるため、トランザクションの結果が[確定](finality-of-results.html)になるまで、`rippled`サーバーはネットワークへの中継を行わずにトランザクションを再試行します。 +`rippled`サーバーが最初にトランザクションを評価するとき、送信側アカウントにXRPトランザクションコストを支払うのに十分なXRP残高がない場合は、エラーコード`terINSUF_FEE_B`にてトランザクションを拒否します。これは`ter`(再試行)コードであるため、トランザクションの結果が[確定](finality-of-results/index.md)になるまで、`rippled`サーバーはネットワークへの中継を行わずにトランザクションを再試行します。 トランザクションはすでにネットワークに配信されているけれども、アカウントにトランザクションコストを支払うのに十分なXRPがない場合は、結果コード`tecINSUFF_FEE`が発生します。この場合、アカウントからは可能なかぎりすべてのXRPが支払われるため、最終的に0 XRPになります。これは、`rippled`がトランザクションをネットワークに中継するかどうかを進行中のレジャーに基づいて判断するために起こります。しかしコンセンサスレジャーを作成するときにトランザクションは破棄されるか並べ替えられることになります。 ## Key Resetトランザクション -特殊なケースですが、アカウントの[lsfPasswordSpentフラグ](accountroot.html)が無効であるかぎり、そのアカウントはトランザクションコスト`0`で[SetRegularKey](setregularkey.html)トランザクションを送信できます。このトランザクションにはアカウントの _マスターキーペア_ による署名が必要です。このトランザクションを送信すると、lsfPasswordSpentフラグが有効になります。 +特殊なケースですが、アカウントの[lsfPasswordSpentフラグ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)が無効であるかぎり、そのアカウントはトランザクションコスト`0`で[SetRegularKey](../../references/protocol/transactions/types/setregularkey.md)トランザクションを送信できます。このトランザクションにはアカウントの _マスターキーペア_ による署名が必要です。このトランザクションを送信すると、lsfPasswordSpentフラグが有効になります。 この機能は、レギュラーキーが危害を受けた場合に、危害を受けたアカウントに使用可能なXRPがあるかどうかを気にすることなく、そのアカウントを復元できるように設計されています。このようにして、追加のXRPを送信する前にそのアカウントを再び管理できるようになります。 -[lsfPasswordSpentフラグ](accountroot.html)は無効になります。このフラグを有効にするには、マスターキーペアによって署名されたSetRegularKeyトランザクションを送信します。アカウントでXRPの[支払い](payment.html)が受け入れた場合、再び無効になります。 +[lsfPasswordSpentフラグ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)は無効になります。このフラグを有効にするには、マスターキーペアによって署名されたSetRegularKeyトランザクションを送信します。アカウントでXRPの[支払い](../../references/protocol/transactions/types/payment.md)が受け入れた場合、再び無効になります。 [FeeEscalation Amendment][]が有効な場合、Key Resetトランザクションの名目トランザクションコストがゼロであっても、`rippled`は他のトランザクションよりもKey Resetトランザクションを優先します。 ## トランザクションコストの変更 -XRP Ledgerは、XRPの価値が長期的に変化することを見越して、最低トランザクションコストを変更するしくみを備えています。変更はすべて、コンセンサスプロセスによる承認が必要です。詳細は、[手数料の投票](fee-voting.html)を参照してください。 +XRP Ledgerは、XRPの価値が長期的に変化することを見越して、最低トランザクションコストを変更するしくみを備えています。変更はすべて、コンセンサスプロセスによる承認が必要です。詳細は、[手数料の投票](../consensus-protocol/fee-voting.md)を参照してください。 ## 関連項目 - **コンセプト:** - - [準備金](reserves.html) - - [手数料投票](fee-voting.html) - - [トランザクションキュー](transaction-queue.html) + - [準備金](../accounts/reserves.md) + - [手数料投票](../consensus-protocol/fee-voting.md) + - [トランザクションキュー](transaction-queue.md) - **チュートリアル:** - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) + - [信頼できるトランザクションの送信](reliable-transaction-submission.md) - **リファレンス:** - [feeメソッド][] - [server_infoメソッド][] - - [FeeSettingsオブジェクト](feesettings.html) + - [FeeSettingsオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) - [SetFee疑似トランザクション][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/transactions/transaction-queue.md b/content/@i18n/ja/concepts/transactions/transaction-queue.md index 27047f2fd9..51f06f8d8d 100644 --- a/content/@i18n/ja/concepts/transactions/transaction-queue.md +++ b/content/@i18n/ja/concepts/transactions/transaction-queue.md @@ -7,13 +7,13 @@ labels: --- # トランザクションキュー -`rippled`サーバーは、トランザクションキューを使用して[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)を適用します。オープンレジャーコストにより、特定のレジャーの目標トランザクション数が設定され、オープンレジャーがこのサイズを超えると、必要なトランザクションコストが迅速に引き上げられます。`rippled`は引き上げられたトランザクションコストを支払うことができないトランザクションを無効にする代わりに、次のレジャーの構築に使用するトランザクションキューにそれらのトランザクションを入れようとします。 +`rippled`サーバーは、トランザクションキューを使用して[オープンレジャーコスト](transaction-cost.md#オープンレジャーコスト)を適用します。オープンレジャーコストにより、特定のレジャーの目標トランザクション数が設定され、オープンレジャーがこのサイズを超えると、必要なトランザクションコストが迅速に引き上げられます。`rippled`は引き上げられたトランザクションコストを支払うことができないトランザクションを無効にする代わりに、次のレジャーの構築に使用するトランザクションキューにそれらのトランザクションを入れようとします。 ## トランザクションキューとコンセンサス -トランザクションキューは、コンセンサスプロセスで特定のレジャーバージョンに記録されるトランザクションと除外されるトランザクションを選択する際に、重要な役割を果たします。以下のステップでは、トランザクションキューと[コンセンサスプロセス](consensus.html)の関係を説明します。 +トランザクションキューは、コンセンサスプロセスで特定のレジャーバージョンに記録されるトランザクションと除外されるトランザクションを選択する際に、重要な役割を果たします。以下のステップでは、トランザクションキューと[コンセンサスプロセス](../consensus-protocol/index.md)の関係を説明します。 -[![トランザクションキューとコンセンサスの図](img/consensus-with-queue.ja.png)](img/consensus-with-queue.ja.png) +[![トランザクションキューとコンセンサスの図](/img/consensus-with-queue.ja.png)](/img/consensus-with-queue.ja.png) 1. **コンセンサスラウンド1** - 各バリデータが、次のレジャーバージョンに記録するトランザクションセットを提案します。各バリデータは、現在提案されていないトランザクション候補のキューも保持します。 @@ -25,7 +25,7 @@ labels: 5. **次の提案の作成** - 各バリデータは、キューに入れられているトランザクションを最初に使用して、次のレジャーバージョンの提案を準備します。 -6. **キューへの追加** - 次の提案レジャーがすでにいっぱいである場合は、着信トランザクションはその後のレジャーバージョンのキューに入れられます。([オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)を支払うトランザクションは、次の提案レジャーが「いっぱい」であってもそのレジャーに追加されますが、このようにトランザクションが追加されるたびにオープンレジャーコストは急激に増加します。) +6. **キューへの追加** - 次の提案レジャーがすでにいっぱいである場合は、着信トランザクションはその後のレジャーバージョンのキューに入れられます。([オープンレジャーコスト](transaction-cost.md#オープンレジャーコスト)を支払うトランザクションは、次の提案レジャーが「いっぱい」であってもそのレジャーに追加されますが、このようにトランザクションが追加されるたびにオープンレジャーコストは急激に増加します。) このステップの後、プロセスが最初から繰り返されます。 @@ -35,46 +35,42 @@ labels: `rippled`サーバーはさまざまな経験則によるテストを行って「レジャーに追加される可能性がある」トランザクションを推定します。現行の実装では、以下のルールに基づいてキューに入れるトランザクションが決定されます。 -- トランザクションは適切な形式で作成され、有効な署名によって[承認](transactions.html#トランザクションの承認)されている必要があります。 +- トランザクションは適切な形式で作成され、有効な署名によって[承認](index.md#トランザクションの承認)されている必要があります。 - `AccountTxnID`フィールドが指定されているトランザクションはキューに入れることができません。 - 1つの送信側アドレスには、同時に最大10個のトランザクションを入れることができます。 -- トランザクションをキューに入れるには、送信者が以下のすべてを行うのに十分なXRPを保有している必要があります。[更新: rippled 1.2.0][] - - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.html)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では10 XRP)を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) +- トランザクションをキューに入れるには、送信者が以下のすべてを行うのに十分なXRPを保有している必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}更新: rippled 1.2.0{% /badge %} + - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.md)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では10 XRP)を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) - キュー内のすべての送信者のトランザクションの送金を可能とするXRPの最大合計額の送信。 - - アカウントの[必要準備金](reserves.html)を確保するのに十分なXRPの保有。 -- あるトランザクションが、送信側アドレスがトランザクションを承認する方法に影響する場合、同じアドレスからの他のトランザクションをそのトランザクションの後にキューに入れることはできません。[新規: rippled 0.32.0][] + - アカウントの[必要準備金](../accounts/reserves.md)を確保するのに十分なXRPの保有。 +- あるトランザクションが、送信側アドレスがトランザクションを承認する方法に影響する場合、同じアドレスからの他のトランザクションをそのトランザクションの後にキューに入れることはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} - トランザクションに`LastLedgerSequence`フィールドが指定されている場合、そのフィールドの値は少なくとも **現在のレジャーインデックス+ 2**になります。 ### 手数料の平均化 -[新規: rippled 0.33.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}新規: rippled 0.33.0{% /badge %} -送信側アドレスのキューに1つ以上のトランザクションが入っている場合、その送信者はキューに入れられている既存のトランザクションをオープンレジャーに「プッシュ」するため、それらすべてのトランザクションのトランザクションコストの支払いをするのに十分なトランザクションコストが指定された新しいトランザクションを送信します。具体的には、新しいトランザクションは、そのトランザクション自体と、そのトランザクションより先にキュー内に入れられている同じ送信者からの各トランザクションの[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)をカバーするのに十分なトランザクションコストを支払う必要があります。(オープンレジャーコストは、トランザクションがトランザクションコストを支払うたびに急激に増加することに留意してください。)トランザクションは他の[キューの制約事項](#キューの制約事項)にも従い、送信側アドレスはキュー内のすべてのトランザクションのトランザクションコストを支払うのに十分な額のXRPを保有している必要があります。 +送信側アドレスのキューに1つ以上のトランザクションが入っている場合、その送信者はキューに入れられている既存のトランザクションをオープンレジャーに「プッシュ」するため、それらすべてのトランザクションのトランザクションコストの支払いをするのに十分なトランザクションコストが指定された新しいトランザクションを送信します。具体的には、新しいトランザクションは、そのトランザクション自体と、そのトランザクションより先にキュー内に入れられている同じ送信者からの各トランザクションの[オープンレジャーコスト](transaction-cost.md#オープンレジャーコスト)をカバーするのに十分なトランザクションコストを支払う必要があります。(オープンレジャーコストは、トランザクションがトランザクションコストを支払うたびに急激に増加することに留意してください。)トランザクションは他の[キューの制約事項](#キューの制約事項)にも従い、送信側アドレスはキュー内のすべてのトランザクションのトランザクションコストを支払うのに十分な額のXRPを保有している必要があります。 この機能により、特定の状況を回避できます。キュー内にある低コストのトランザクションを1つ以上送信した場合、同じアドレスから新しいトランザクションを送信するには、以下のいずれかを実行する必要があります。 * キュー内のトランザクションが検証済みレジャーに追加されるまで待機する。 -* キュー内のトランザクションに[`LastLedgerSequence`フィールド](reliable-transaction-submission.html#lastledgersequence)が設定されている場合、それらのトランザクションが完全に無効化されるまで待機する。 -* [キュー内のトランザクションを取り消す](cancel-or-skip-a-transaction.html)。このためには、同じシーケンス番号で、これらのトランザクションよりも高いトランザクションコストを指定した新しいトランザクションを送信します。 +* キュー内のトランザクションに[`LastLedgerSequence`フィールド](reliable-transaction-submission.md#lastledgersequence)が設定されている場合、それらのトランザクションが完全に無効化されるまで待機する。 +* [キュー内のトランザクションを取り消す](finality-of-results/canceling-a-transaction.md)。このためには、同じシーケンス番号で、これらのトランザクションよりも高いトランザクションコストを指定した新しいトランザクションを送信します。 上記のどの操作も行われないと、トランザクションは理論上無期限にキューに入れられたままとなり、他の送信者はそれらよりもトランザクションコストが高いトランザクションを送信してキューに「割り込む」ことができます。署名済みのトランザクションは変更できないため、キュー内のトランザクションのトランザクションコストを増加して、トランザクションの優先度を上げることはできません。以前に送信されたトランザクションを無効にしたくない場合には、手数料の平均化が回避策となります。新しいトランザクションのトランザクションコストを増額して不足分を補えば、キュー内のトランザクションは即時にオープンレジャーに追加されます。 ## キュー内の順序 -トランザクションキュー内では、最も高いトランザクションコストを支払うトランザクションが一番になるようにトランザクションがランク付けされています。このランク付けはトランザクションの _絶対_ XRPコストではなく、 _[該当するトランザクションタイプの最小コスト](transaction-cost.html#特別なトランザクションコスト)に相対的な_ コストに基づいています。トランザクションコストが同額のトランザクションが複数ある場合は、サーバーが受信した順にランク付けされます。キュー内のトランザクションの順序にはその他の要因も影響します。たとえば、同一送信者からのトランザクションはその`Sequence`番号によりソートされ、順に送信されます。 +トランザクションキュー内では、最も高いトランザクションコストを支払うトランザクションが一番になるようにトランザクションがランク付けされています。このランク付けはトランザクションの _絶対_ XRPコストではなく、 _[該当するトランザクションタイプの最小コスト](transaction-cost.md#特別なトランザクションコスト)に相対的な_ コストに基づいています。トランザクションコストが同額のトランザクションが複数ある場合は、サーバーが受信した順にランク付けされます。キュー内のトランザクションの順序にはその他の要因も影響します。たとえば、同一送信者からのトランザクションはその`Sequence`番号によりソートされ、順に送信されます。 -キュー内のトランザクションの数が次のレジャーバージョンの予期サイズを超える場合には、キュー内のトランザクションの正確な順序に基づいて、次の処理レジャーバージョンに追加されるトランザクションが決定します。トランザクションの順序は**検証済みレジャー内でのトランザクションの実行順序には影響しません**。各検証済みレジャーバージョンでは、そのバージョンのトランザクションセットが[正規の順序](consensus-structure.html#検証の計算と共有)で実行されます。 +キュー内のトランザクションの数が次のレジャーバージョンの予期サイズを超える場合には、キュー内のトランザクションの正確な順序に基づいて、次の処理レジャーバージョンに追加されるトランザクションが決定します。トランザクションの順序は**検証済みレジャー内でのトランザクションの実行順序には影響しません**。各検証済みレジャーバージョンでは、そのバージョンのトランザクションセットが[正規の順序](../consensus-protocol/consensus-structure.md#検証の計算と共有)で実行されます。 -**注記:**`rippled`がトランザクションをキューに入れるときに付与される暫定的な[トランザクションレスポンスコード](transaction-results.html)は`terQUEUED`です。つまり、トランザクションは今後のレジャーバージョンで成功する見込みです。すべての暫定的なレスポンスコードと同様に、トランザクションが検証済みレジャーに追加されるか、または[完全に無効であると示される](finality-of-results.html)までは、トランザクションの結果は最終的ではありません。 +**注記:**`rippled`がトランザクションをキューに入れるときに付与される暫定的な[トランザクションレスポンスコード](../../references/protocol/transactions/transaction-results/transaction-results.md)は`terQUEUED`です。つまり、トランザクションは今後のレジャーバージョンで成功する見込みです。すべての暫定的なレスポンスコードと同様に、トランザクションが検証済みレジャーに追加されるか、または[完全に無効であると示される](finality-of-results/index.md)までは、トランザクションの結果は最終的ではありません。 ## 関連項目 -- トランザクションコストが設けられている理由と、XRP Ledgerでのトランザクションコストの適用方法については、[トランザクションコスト](transaction-cost.html)を参照してください。 -- コンセンサスプロセスによるトランザクション承認方法についての詳しい説明は、[コンセンサス](consensus.html)を参照してください。 +- トランザクションコストが設けられている理由と、XRP Ledgerでのトランザクションコストの適用方法については、[トランザクションコスト](transaction-cost.md)を参照してください。 +- コンセンサスプロセスによるトランザクション承認方法についての詳しい説明は、[コンセンサス](../consensus-protocol/index.md)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/xrpl-sidechains/cross-chain-bridges.md b/content/@i18n/ja/concepts/xrpl-sidechains/cross-chain-bridges.md index b000ff789e..a8bd528b33 100644 --- a/content/@i18n/ja/concepts/xrpl-sidechains/cross-chain-bridges.md +++ b/content/@i18n/ja/concepts/xrpl-sidechains/cross-chain-bridges.md @@ -9,7 +9,7 @@ labels: --- # クロスチェーンブリッジ -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ クロスチェーンブリッジは、XRP Ledgerと他のブロックチェーン間でXRPやトークンの移動を可能にします。ブリッジによって接続されたブロックチェーンを呼ぶ場合、一方はロックチェーンであり、もう一方は発行チェーンです。 @@ -19,7 +19,7 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ **注記:** 資産をクロスチェーンで移動させる場合、ブリッジは特別な _ドアアカウント_ を利用します。ロックチェーンのドアアカウントは資産を保管するために使用され、発行チェーンのドアアカウントはラップされた資産を発行するために使用されます。 -ロックチェーンと発行チェーンはともに、独立したノードとバリデータを持つ並列ネットワークとして動作します。2つのチェーン間の取引を監視し、資産が特別に指定されたアカウントに移動したことを証明するために、独立した[Witnessサーバ](witness-servers.html)を利用します。 +ロックチェーンと発行チェーンはともに、独立したノードとバリデータを持つ並列ネットワークとして動作します。2つのチェーン間の取引を監視し、資産が特別に指定されたアカウントに移動したことを証明するために、独立した[Witnessサーバ](witness-servers.md)を利用します。 ## ブリッジの仕組み @@ -38,8 +38,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ 5. 発行チェーン上のWitnessサーバのアカウントに報酬が分配されます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/xrpl-sidechains/index.md b/content/@i18n/ja/concepts/xrpl-sidechains/index.md index 1c3686ff45..3f392bd2f5 100644 --- a/content/@i18n/ja/concepts/xrpl-sidechains/index.md +++ b/content/@i18n/ja/concepts/xrpl-sidechains/index.md @@ -8,7 +8,7 @@ labels: --- # XRPLサイドチェーン -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ サイドチェーンは、独自のコンセンサスアルゴリズム、トランザクションタイプ、ルール、ノードを持つ独立した台帳です。サイドチェーンは、メインチェーン(XRP Ledger)と並行して動作する独自のブロックチェーンとして機能し、メインチェーンのスピード、効率性、スループットを損なうことなく、両者の間で価値の移動を可能にします。 @@ -17,7 +17,7 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ * スマートコントラクト層の追加: [Xahau](https://xahau.network/)をご覧ください。 * イーサリアム仮想マシン(EVM)互換性の追加: [EVMサイドチェーン](https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/)をご覧ください。 * 独自のアルゴリズムによるステーブルコインの構築。 -* メインネットの[分散型取引所](decentralized-exchange.html)で資産を取引できる、パーミッションあり、またはほぼパーミッションレス、中央集権型、または大部分が分散されている台帳の構築。 +* メインネットの[分散型取引所](../tokens/decentralized-exchange/index.md)で資産を取引できる、パーミッションあり、またはほぼパーミッションレス、中央集権型、または大部分が分散されている台帳の構築。 **ノート:** @@ -67,8 +67,4 @@ _民事責任_ : 米国やその他の管轄区域では原告による訴訟が これらのFAQは、一般的なガイダンスを提供することを目的としており、技術的、財務的、または法的なアドバイスを提供するものではありません。これらのFAQは、各自の具体的な状況に合わせた専門的なアドバイスの代わりとして使用すべきではありません。ブロックチェーンとデジタル資産の状況は複雑で常に変化しているため、常に最新の情報を入手し、専門家の助言を求める必要があります。サイドチェーンに関わる者は、政府や規制機関のWebサイトなどの公式リソースを定期的にチェックすることをお勧めします。とはいえ、ブロックチェーンや暗号通貨を専門とする法律専門家に相談することが、正確で個別のアドバイスを得るための最も信頼できる方法です。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/concepts/xrpl-sidechains/witness-servers.md b/content/@i18n/ja/concepts/xrpl-sidechains/witness-servers.md index e4a3d2ccc0..f953989c9d 100644 --- a/content/@i18n/ja/concepts/xrpl-sidechains/witness-servers.md +++ b/content/@i18n/ja/concepts/xrpl-sidechains/witness-servers.md @@ -10,7 +10,7 @@ labels: # Witnessサーバ [[ソース]](https://github.com/seelabs/xbridge_witness "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ Witnessサーバは、ロックチェーンと発行チェーン間のトランザクションの中立的な監視人として機能します。このサーバはブリッジの両側のドアアカウントをリッスンし、トランザクションが発生したことを確認する証明書に署名します。サーバは基本的に、送金元アカウントで価値がロックまたはバーンされたことを"証明"するオラクルとして機能し、これにより受取人は送金先アカウントで同等の資金を(作成またはロック解除によって)請求することができます。 @@ -145,7 +145,4 @@ Witnessサーバはコマンドライン引数`--conf`で指定されたJSON設 | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/contributing/report-a-scam.md b/content/@i18n/ja/contributing/report-a-scam.md index 82d05b274a..7063126376 100644 --- a/content/@i18n/ja/contributing/report-a-scam.md +++ b/content/@i18n/ja/contributing/report-a-scam.md @@ -24,7 +24,7 @@ parent: contribute.html - [Uphold](https://support.uphold.com/hc/en-us/requests/new) - [Bitrue](https://www.bitrue.com/exchange-web/footer/contactus.html) -4. 詐欺業者がXRP Ledger上でXRPを他のトークンと交換した場合、そのトークンの発行者に連絡してください。発行者は[詐欺業者のトラストラインを凍結する](freeze-a-trust-line.html)ことができるかもしれません。 +4. 詐欺業者がXRP Ledger上でXRPを他のトークンと交換した場合、そのトークンの発行者に連絡してください。発行者は[詐欺業者のトラストラインを凍結する](../tutorials/use-tokens/freeze-a-trust-line.md)ことができるかもしれません。 詐欺業者の報告に関する詳細は、[Xrplorer Forensicsのヘルプ](https://xrplorer.com/forensics/help)をご覧ください。 diff --git a/content/@i18n/ja/faq.md b/content/@i18n/ja/faq.md index d9f2ab1458..ec431af187 100644 --- a/content/@i18n/ja/faq.md +++ b/content/@i18n/ja/faq.md @@ -28,12 +28,12 @@ name: よくある質問 #### プルーフ・オブ・ワーク(PoW)が最善の検証メカニズムではないのですか? -プルーフ・オブ・ワークは、信頼できる第三者を必要とせずに二重支出の問題を解決する最初のコンセンサンス・メカニズムでした。[XRP Ledgerのコンセンサス。メカニズム](consensus.html)は、同じ問題をはるかに速く、安く、より良いエネルギー効率で解決します。 +プルーフ・オブ・ワークは、信頼できる第三者を必要とせずに二重支出の問題を解決する最初のコンセンサンス・メカニズムでした。[XRP Ledgerのコンセンサス。メカニズム](concepts/consensus-protocol/index.md)は、同じ問題をはるかに速く、安く、より良いエネルギー効率で解決します。 #### どのようにして持続可能なブロックチェーンを実現するのでしょうか? -ビットコインのエネルギー消費量は、2021年現在アルゼンチンのエネルギー総消費量に相当します。また、ビットコインの採掘者が使用する電力の多くは環境を汚染するリソースから供給されていることが広く報告されています。XRPLは、プルーフ・オブ・ワークのようにエネルギーを浪費しない[コンセンサス・メカニズム](consensus.html)を通じてトランザクションを承認し、カーボン・オフセットを活用して、[真にカーボンニュートラルな最初のブロックチェーンのひとつ](https://ripple.com/ripple-press/ripple-leads-sustainability-agenda-to-achieve-carbon-neutrality-by-2030)となっています。 +ビットコインのエネルギー消費量は、2021年現在アルゼンチンのエネルギー総消費量に相当します。また、ビットコインの採掘者が使用する電力の多くは環境を汚染するリソースから供給されていることが広く報告されています。XRPLは、プルーフ・オブ・ワークのようにエネルギーを浪費しない[コンセンサス・メカニズム](concepts/consensus-protocol/index.md)を通じてトランザクションを承認し、カーボン・オフセットを活用して、[真にカーボンニュートラルな最初のブロックチェーンのひとつ](https://ripple.com/ripple-press/ripple-leads-sustainability-agenda-to-achieve-carbon-neutrality-by-2030)となっています。 #### XRPLではXRP以外の通貨も取引できますか? @@ -52,7 +52,7 @@ name: よくある質問 バリデータは、トランザクションがプロトコル要件を満たしていて、結果として「有効」であるかどうかを判断します。バリデータが独自に提供する機能は、順序付けされた単位にトランザクションをグループ化し、二重支払いを防ぐことを目的としてその順序に同意することです。 -コンセンサスプロセスの詳細は、[コンセンサス](consensus.html)を参照してください。 +コンセンサスプロセスの詳細は、[コンセンサス](concepts/consensus-protocol/index.md)を参照してください。 #### バリデータの実行にはいくらかかりますか? @@ -97,7 +97,7 @@ UNLとは、ある参加者が共謀しないと信じるバリデータのリ しかし、レジャーの最新バージョンは常に1つだけであり、他のバージョンは無関係で無害です。 -XRP Ledgerのコンセンサスメカニズムが不利な状況でどのように動作するかについては、[攻撃と失敗モードに対するコンセンサスの保護](consensus-protections.html)をご覧ください。 +XRP Ledgerのコンセンサスメカニズムが不利な状況でどのように動作するかについては、[攻撃と失敗モードに対するコンセンサスの保護](concepts/consensus-protocol/consensus-protections.md)をご覧ください。 #### XRP Ledgerでは正式なバリデータのオンボーディングプロセスを使用していますか? @@ -105,7 +105,7 @@ XRP Ledgerのコンセンサスメカニズムが不利な状況でどのよう 個々のデフォルトUNLの発行者は、推奨リストにいつバリデータを追加したり削除したりするかについて、独自のポリシーを設けています。 -推奨事項やベストプラクティスについては、[バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html)を参照してください。 +推奨事項やベストプラクティスについては、[バリデータとしての`rippled`の実行](infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)を参照してください。 #### デフォルトUNL(dUNL)がネットワークに最も影響力を持つなら、XRPLは中央集権的ではないでしょうか? @@ -121,12 +121,12 @@ XRP Ledgerのコンセンサスメカニズムが不利な状況でどのよう #### XRPはどのような目的で利用されますか? -XRPはXRP Ledgerのネイティブ資産として、これまでのどのデジタルアセットよりも速く、環境に優しく、安価な次世代の決済を実現するために作られました。XRPはまた、スパムから台帳を保護し、XRP Ledgerの分散型取引所で[通貨のブリッジ](autobridging.html)を行うことがユーザーにとって有益である場合に、その役割を果たします。時間とともに、XRP Ledgerコミュニティは、XRPの新しい[ユースケース](uses.html)やXRP Ledgerそのものを発展させてきました。 +XRPはXRP Ledgerのネイティブ資産として、これまでのどのデジタルアセットよりも速く、環境に優しく、安価な次世代の決済を実現するために作られました。XRPはまた、スパムから台帳を保護し、XRP Ledgerの分散型取引所で[通貨のブリッジ](concepts/tokens/decentralized-exchange/autobridging.md)を行うことがユーザーにとって有益である場合に、その役割を果たします。時間とともに、XRP Ledgerコミュニティは、XRPの新しい[ユースケース](/about/uses)やXRP Ledgerそのものを発展させてきました。 #### XRP Ledgerにおいて大量のトランザクションに対してはどのように対応しますか? -XRP Ledgerは、スパム対策として、需要に基づいて[トランザクションコスト](transaction-cost.html)を動的に設定するように設計されています。潜在的なXRPの操作による影響は、時価総額とトランザクション量の増加に伴うネットワークサイズの拡大によって最小限に抑えられます。 +XRP Ledgerは、スパム対策として、需要に基づいて[トランザクションコスト](concepts/transactions/transaction-cost.md)を動的に設定するように設計されています。潜在的なXRPの操作による影響は、時価総額とトランザクション量の増加に伴うネットワークサイズの拡大によって最小限に抑えられます。 #### マネーロンダリングや疑わしい経済活動に対して、どのような標準操作手順が実施されていますか? @@ -153,11 +153,11 @@ Rippleは Ledgerネットワーク全体のAMLフラグを監視・報告し、 いいえ、RippleはXRP LedgerまたはXRP Ledgerネットワークを所有も管理もしていません。 -Rippleは、コアとなるXRP Ledgerサーバ([`rippled`](https://github.com/xrplf/rippled))のリファレンス実装へ貢献し、オープンソースコードベースに貢献しているエンジニアチームを雇用しています。Rippleはまた、利用可能なソフトウェアのプリコンパイル済みバイナリーパッケージを定期的に公開しています。必要に応じて、誰でも自由に[ソースからソフトウェアをダウンロードしてコンパイル](install-rippled.html)できます。 +Rippleは、コアとなるXRP Ledgerサーバ([`rippled`](https://github.com/xrplf/rippled))のリファレンス実装へ貢献し、オープンソースコードベースに貢献しているエンジニアチームを雇用しています。Rippleはまた、利用可能なソフトウェアのプリコンパイル済みバイナリーパッケージを定期的に公開しています。必要に応じて、誰でも自由に[ソースからソフトウェアをダウンロードしてコンパイル](infrastructure/installation/index.md)できます。 いくつかの団体が推奨バリデータリスト(UNL)を公開しています。2023年7月現在、RippleはデフォルトのUNLにある35のバリデータのうち1つのみを実行しています。 #### Rippleは検証用のコードベースとユーザーソフトウェア用のコードベースを区別していますか? -XRP Ledgerの[クライアントライブラリ](client-libraries.html)は、ソフトウェア開発者向けのものです。これらのライブラリは、ネットワークを支え、トランザクションを検証する[XRP Ledgerのコアサーバ](xrpl-servers.html)とは異なるコードベースとリポジトリを持っています。 +XRP Ledgerの[クライアントライブラリ](references/client-libraries.md)は、ソフトウェア開発者向けのものです。これらのライブラリは、ネットワークを支え、トランザクションを検証する[XRP Ledgerのコアサーバ](concepts/networks-and-servers/index.md)とは異なるコードベースとリポジトリを持っています。 diff --git a/content/@i18n/ja/infrastructure/commandline-usage.md b/content/@i18n/ja/infrastructure/commandline-usage.md index 096a437e42..eacd15e6ca 100644 --- a/content/@i18n/ja/infrastructure/commandline-usage.md +++ b/content/@i18n/ja/infrastructure/commandline-usage.md @@ -64,10 +64,10 @@ rippled [OPTIONS] | `--fg` | デーモンをフォアグラウンドでシングルプロセスとして実行します。このオプションを指定しない場合、`rippled`は1番目のプロセスがモニターとして実行されている間に、デーモンの2番目のプロセスをフォークします。 | | `--import` | 完全に起動する前に、別の`rippled`サーバーのレジャーストアーからレジャーデータをインポートしてください。構成ファイルに有効な`[import_db]`スタンザが指定されている必要があります。 | | `--net` | **廃止予定** デバッグのためのオプションです。ネットワークからレジャーを取得できるようになるまで、ローカルレジャーを作成しません。 | -| `--nodetoshard` | 完全に起動する前に、すべての完全な[履歴シャード](history-sharding.html)をレジャーストアーからシャードストアーにコピーしてください(シャードストアーに設定されている最大ディスク容量まで)。CPUとI/Oを大量に使用します。注意: このコマンドは、データを(移動するのではなく)コピーするため、シャードストアーとレジャーストアーの両方にデータを保存するのに十分なディスク容量が必要です。 | -| `--quorum {QUORUM}` | これは[テストネットワーク](parallel-networks.html)のブートストラップ用のオプションです。検証のための最小定数をオーバーライドするには、`{QUORUM}`の信頼できるバリデータの同意を必要とします。デフォルトでは、検証のための定数は、信頼できるバリデータの実際の数に基づき、安全な数に自動的に設定されます。一部のバリデータがオンラインではない場合、このオプションにより、標準定数よりも少ない数のバリデータで続行できるようになります。**警告:** 定数を手動で設定すると、設定した値が小さすぎるためにサーバーがネットワークの他の部分から分岐することを防ぐことができない可能性があります。このオプションは、コンセンサスを十分に理解し、標準以外の設定を使用する必要がある場合にのみ使用してください。 | +| `--nodetoshard` | 完全に起動する前に、すべての完全な[履歴シャード](configuration/data-retention/history-sharding.md)をレジャーストアーからシャードストアーにコピーしてください(シャードストアーに設定されている最大ディスク容量まで)。CPUとI/Oを大量に使用します。注意: このコマンドは、データを(移動するのではなく)コピーするため、シャードストアーとレジャーストアーの両方にデータを保存するのに十分なディスク容量が必要です。 | +| `--quorum {QUORUM}` | これは[テストネットワーク](../concepts/networks-and-servers/parallel-networks.md)のブートストラップ用のオプションです。検証のための最小定数をオーバーライドするには、`{QUORUM}`の信頼できるバリデータの同意を必要とします。デフォルトでは、検証のための定数は、信頼できるバリデータの実際の数に基づき、安全な数に自動的に設定されます。一部のバリデータがオンラインではない場合、このオプションにより、標準定数よりも少ない数のバリデータで続行できるようになります。**警告:** 定数を手動で設定すると、設定した値が小さすぎるためにサーバーがネットワークの他の部分から分岐することを防ぐことができない可能性があります。このオプションは、コンセンサスを十分に理解し、標準以外の設定を使用する必要がある場合にのみ使用してください。 | -次のフィールドは廃止されました: `--validateShards`。 [削除: rippled 1.7.0][] +次のフィールドは廃止されました: `--validateShards`。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}削除: rippled 1.7.0{% /badge %} ## スタンドアロンモードのオプション @@ -84,10 +84,10 @@ rippled -a [OPTIONS] | オプション | 説明 | |:----------------------|:-----------------------------------------------------| | `--ledger {LEDGER}` | `{LEDGER}`(レジャーハッシュまたはレジャーインデックス)により初期レジャーと識別されているレジャーバージョンを読み込みます。指定されたレジャーバージョンは、サーバーのレジャーストアーに格納される必要があります。 | -| `--ledgerfile {FILE}` | 指定された`{FILE}`からレジャーバージョンを読み込みます(このファイルには完全なレジャーがJSONフォーマットで格納されている必要があります)。このようなファイルの例については、付属の[`ledger-file.json`]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_api-examples/rippled-cli/ledger-file.json)を参照してください。 | +| `--ledgerfile {FILE}` | 指定された`{FILE}`からレジャーバージョンを読み込みます(このファイルには完全なレジャーがJSONフォーマットで格納されている必要があります)。このようなファイルの例については、付属の{% repo-link path="content/_api-examples/rippled-cli/ledger-file.json" %}`ledger-file.json`{% /repo-link %}を参照してください。 | | `--load` | **廃止予定** デバッグのためのオプションです。ディスク上のレジャーストアーから初期レジャーを読み込むだけです。 | | `--replay` | デバッグのためのオプションです。`--ledger`と組み合わせて使用し、レジャーの閉鎖をリプレイします。サーバーのレジャーストアーには、当該レジャーとその直前のバージョンのレジャーがすでに格納されている必要があります。サーバーでは、前のレジャーをベースとして使用して、指定されたレジャーのすべてのトランザクションが処理されます。その結果、指定されたレジャーが再作成されます。デバッガーを使用して、特定のトランザクションの処理ロジックを分析するためのブレークポイントを追加できます。 | -| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバーに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](amendments.html)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | +| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバーに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](../concepts/networks-and-servers/amendments.md)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | | `--valid` | **廃止予定** デバッグのためのオプションです。ネットワークとの完全同期の前であっても、初期レジャーを有効なネットワークレジャーと見なします。 | ## クライアントモードのオプション @@ -98,7 +98,7 @@ rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} クライアントモードでは、`rippled`実行可能ファイルが別の`rippled`サービスのクライアントとして動作します。(サービスは別のプロセスでローカルに実行されている同じ実行可能ファイルである場合や、別のサーバー上の`rippled`サーバーである場合があります。) -クライアントモードで実行するには、いずれかの[`rippled` API](http-websocket-apis.html)メソッドの[コマンドライン構文](request-formatting.html#コマンドライン形式)を指定します。 +クライアントモードで実行するには、いずれかの[`rippled` API](../references/http-websocket-apis/index.md)メソッドの[コマンドライン構文](../references/http-websocket-apis/api-conventions/request-formatting.md#コマンドライン形式)を指定します。 クライアントモードは、個別のコマンド構文の他に、[汎用オプション](#汎用オプション)と以下のオプションに対応します。 @@ -136,7 +136,7 @@ rippled -u [OPTIONS] | オプション | 短縮形 | 説明 | |:-----------------------------------|:--------------|:------------------------| -| `--unittest-ipv6` | | 単体テストの実行時に[IPv6](https://en.wikipedia.org/wiki/IPv6)を使用してローカルサーバーに接続します。このオプションが指定されていない場合、単体テストではIPv4が代わりに使用されます。[新規: rippled 1.1.0][] | +| `--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` | 単体テストの実行時に出力される診断メッセージの数が減少します。 | @@ -180,8 +180,4 @@ Longest suite times: |:------------------------|:---------------------------------------------------| | `--unittest-arg {ARG}` | 実行される単体テストに引数`{ARG}`を指定します。引数を受け入れる単体テストはそれぞれ、固有の引数形式を定義しています。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/configure-amendment-voting.md b/content/@i18n/ja/infrastructure/configuration/configure-amendment-voting.md index 984962a78d..b08c2997a8 100644 --- a/content/@i18n/ja/infrastructure/configuration/configure-amendment-voting.md +++ b/content/@i18n/ja/infrastructure/configuration/configure-amendment-voting.md @@ -8,14 +8,13 @@ labels: --- # Amendment投票機能の設定 -バリデーターとして設定されたサーバーは、[feature メソッド][]を使ってXRP Ledgerプロトコルの[Amendment](amendments.html)に投票することができます。(この方法には[管理者アクセス](get-started-using-http-websocket-apis.html#管理者アクセス権限)が必要です). +バリデーターとして設定されたサーバーは、[feature メソッド][]を使ってXRP Ledgerプロトコルの[Amendment](../../concepts/networks-and-servers/amendments.md)に投票することができます。(この方法には[管理者アクセス](../../tutorials/get-started/get-started-using-http-websocket-apis.md#管理者アクセス権限)が必要です). 例えば、「SHAMapV2」Amendmentに反対票を投じるには、以下のコマンドを実行します。 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "any_id_here", @@ -24,9 +23,9 @@ labels: "vetoed": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "feature", @@ -38,14 +37,15 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled feature SHAMapV2 reject ``` +{% /tab %} - +{% /tabs %} **注記:** Amendmentの省略名は大文字と小文字が区別されます。また、AmendmentのIDを16進数で指定することもできますが、この場合は大文字と小文字が区別されません。 @@ -64,11 +64,8 @@ rippled feature SHAMapV2 reject ## 関連項目 -- [Amendment](amendments.html) - - [既知のAmendment](known-amendments.html) +- [Amendment](../../concepts/networks-and-servers/amendments.md) + - [既知のAmendment](../../resources/known-amendments.md) - [feature メソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/configure-grpc.md b/content/@i18n/ja/infrastructure/configuration/configure-grpc.md index 0d2f89aadb..57007a9991 100644 --- a/content/@i18n/ja/infrastructure/configuration/configure-grpc.md +++ b/content/@i18n/ja/infrastructure/configuration/configure-grpc.md @@ -7,7 +7,7 @@ labels: --- # gRPCの設定 -`rippled`サーバは[P2Pモードサーバ](rippled-server-modes.html)が提供できる限定的な[gRPC API](https://grpc.io/)を持っています。レポートモードのサーバはこのAPIを使って、最新の有効なレジャーやトランザクションに関するデータを取得します。新しい設定を使って、サーバ上でgRPC APIを有効にすることができます。 +`rippled`サーバは[P2Pモードサーバ](../../concepts/networks-and-servers/rippled-server-modes.md)が提供できる限定的な[gRPC API](https://grpc.io/)を持っています。レポートモードのサーバはこのAPIを使って、最新の有効なレジャーやトランザクションに関するデータを取得します。新しい設定を使って、サーバ上でgRPC APIを有効にすることができます。 **注意:** gRPCのサポートは、特にP2Pモードサーバからレポートモードサーバにデータを提供することを目的としています。gRPC APIは予告なく変更される可能性がありますし、将来のバージョンで完全に削除される可能性もあります。 @@ -15,7 +15,7 @@ labels: gRPCを有効にするには、次の前提条件を満たす必要があります。 -- [rippledのインストール](install-rippled.html)が必要です。. +- [rippledのインストール](../installation/index.md)が必要です。. - サーバは選択したポートに接続できる必要があります。 @@ -25,32 +25,33 @@ gRPCを有効にするには、次の前提条件を満たす必要がありま 1. `[port_grpc]`が`rippled`設定ファイルにあることを確認してください。 - [port_grpc] - port = 50051 - ip = 127.0.0.1 + ``` + [port_grpc] + port = 50051 + ip = 127.0.0.1 + ``` - `port`はサーバがクライアントアプリケーションからのgRPC接続を待ち受けるポートを定義します。推奨されるポートは`50051`です。 - ip`はサーバが待ち受けるインタフェースを定義します。127.0.0.1`はローカルループバックネットワーク(同じマシン)への接続を制限し、デフォルトで有効になっています。この値を`0.0.0.0`に変更すると、利用可能なすべてのネットワークインターフェイスを待ち受けます。 - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. `rippled`サービスを開始(または再起動)します。 - sudo systemctl restart rippled + ``` + sudo systemctl restart rippled + ``` ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](xrp-ledger-overview.html) - - [`rippled`サーバのモード](rippled-server-modes.html) + - [XRP Ledgerの概要](/about/) + - [`rippled`サーバのモード](../../concepts/networks-and-servers/rippled-server-modes.md) - **チュートリアル:** - - [HTTP / WebSocketAPIを使ってみる](get-started-using-http-websocket-apis.html) - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [rippledサーバの管理](manage-the-rippled-server.html) + - [HTTP / WebSocketAPIを使ってみる](../../tutorials/get-started/get-started-using-http-websocket-apis.md) + - [信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md) + - [rippledサーバの管理](../installation/install-rippled-on-ubuntu.md) - **リファレンス:** - - [HTTP / WebSocket APIリファレンス](http-websocket-apis.html) + - [HTTP / WebSocket APIリファレンス](../../references/http-websocket-apis/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/configure-statsd.md b/content/@i18n/ja/infrastructure/configuration/configure-statsd.md index ad04647b7f..84202751a2 100644 --- a/content/@i18n/ja/infrastructure/configuration/configure-statsd.md +++ b/content/@i18n/ja/infrastructure/configuration/configure-statsd.md @@ -15,37 +15,47 @@ labels: 1. 別のマシンで`rippledmon`インスタンスをセットアップし、統計情報を受信して集計します。 - $ git clone https://github.com/ripple/rippledmon.git - $ cd rippledmon - $ docker-compose up + ``` + $ git clone https://github.com/ripple/rippledmon.git + $ cd rippledmon + $ docker-compose up + ``` 上記の手順を実行する際には、[Docker](https://docs.docker.com/)と[DockerCompose](https://docs.docker.com/compose/install/)がマシンにインストールされていることを確認してください。`rippledmon`の設定については、[`rippledmon`リポジトリ](https://github.com/ripple/rippledmon)をご覧ください。 0. `[insight]`を`rippled`の設定ファイルに追加します。 - [insight] - server=statsd - address=192.0.2.0:8125 - prefix=my_rippled + ``` + [insight] + server=statsd + address=192.0.2.0:8125 + prefix=my_rippled + ``` - `address`には`rippledmon`が接続しているIPアドレスとポートを指定します。デフォルトでは、このポートは8125です。 - `prefix`には設定する`rippled`サーバを識別する名前を指定します。prefixには、空白、コロン":"、または縦棒"|"を含めてはいけません。このprefix(接頭辞)は、このサーバからエクスポートされるすべてのStatsDの統計情報に表示されます。 - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 1. `rippled`サービスを再起動します。 - $ sudo systemctl restart rippled + ``` + $ sudo systemctl restart rippled + ``` 2. 統計情報がエクスポートされていることを確認します。 - $ tcpdump -i en0 | grep UDP + ``` + $ tcpdump -i en0 | grep UDP + ``` `en0`をあなたのマシンの適切なネットワークインターフェースに置き換えてください。あなたのマシンのインターフェースの完全なリストを取得するには`$ tcpdump -D`を使ってください。 出力の例: - 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 + ``` + 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 + ``` `rippledmon`インスタンスの設定されたアドレスとポートへの送信トラフィックを示すメッセージが定期的に表示されるはずです。 @@ -56,11 +66,11 @@ StatsDの各データの説明については、[`rippledmon`リポジトリ](ht ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](xrp-ledger-overview.html) - - [`rippled`サーバ](xrpl-servers.html) + - [XRP Ledgerの概要](/about/) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [`rippled`のインストール](install-rippled.html) - - [容量の計画](capacity-planning.html) + - [`rippled`のインストール](../installation/index.md) + - [容量の計画](../installation/capacity-planning.md) - **リアファレンス:** - - [server_infoメソッド](server_info.html) - - [printメソッド](print.html) + - [server_infoメソッド](../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) + - [printメソッド](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md) diff --git a/content/@i18n/ja/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md b/content/@i18n/ja/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md index 8202defa07..d2259f9b2c 100644 --- a/content/@i18n/ja/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md +++ b/content/@i18n/ja/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md @@ -9,9 +9,9 @@ labels: --- # rippledを並列ネットワークに接続 -様々な[テスト用・開発用の代替ネットワーク](parallel-networks.html)が存在しており、開発者は実際の資金をリスクにさらすことなく、アプリのテストや機能の実験を行うことができます。**これらのネットワークで使用される資金は実際の資金ではなく、テスト専用です。**あなたの[`rippled`サーバ](xrpl-servers.html)をこれらのテストネットワークのいずれかに接続することができます。 +様々な[テスト用・開発用の代替ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)が存在しており、開発者は実際の資金をリスクにさらすことなく、アプリのテストや機能の実験を行うことができます。**これらのネットワークで使用される資金は実際の資金ではなく、テスト専用です。**あなたの[`rippled`サーバ](../../concepts/networks-and-servers/index.md)をこれらのテストネットワークのいずれかに接続することができます。 -**警告:** 新機能や実験的な機能を持つテストネットワークでは、ネットワークと同期するためにサーバの本番リリース前のリリースを実行することが必要になる場合があります。各ネットワークに必要なコードのバージョンについては、[並列ネットワークのページ](parallel-networks.html)をご覧ください。 +**警告:** 新機能や実験的な機能を持つテストネットワークでは、ネットワークと同期するためにサーバの本番リリース前のリリースを実行することが必要になる場合があります。各ネットワークに必要なコードのバージョンについては、[並列ネットワークのページ](../../concepts/networks-and-servers/parallel-networks.md)をご覧ください。 ## 手順 @@ -21,66 +21,68 @@ labels: `rippled.cfg`ファイルを編集します。 -{% include '_snippets/conf-file-location.ja.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} 1. `[ips]`に接続したいネットワークのハブを設定します。 - + {% tabs %} - *Testnet* + ```{% label="Testnet" %} + [ips] + s.altnet.rippletest.net 51235 + ``` - [ips] - s.altnet.rippletest.net 51235 + ```{% label="Devnet" %} + [ips] + s.devnet.rippletest.net 51235 + ``` - *Devnet* + ```{% label="Mainnet" %} + # No [ips] stanza. Use the default hubs to connect to Mainnet. + ``` - [ips] - s.devnet.rippletest.net 51235 + ```{% label="Sidechain-Devnet" %} + [ips] + sidechain-net2.devnet.rippletest.net 51235 + ``` - *Mainnet* - - # No [ips] stanza. Use the default hubs to connect to Mainnet. - - *Sidechain-Devnet* - - [ips] - sidechain-net2.devnet.rippletest.net 51235 - - + {% /tabs %} 2. 以前の `[ips]`があれば、コメントアウトしてください。 - # [ips] - # r.ripple.com 51235 - # zaphod.alloy.ee 51235 - # sahyadri.isrdc.in 51235 + ``` + # [ips] + # r.ripple.com 51235 + # zaphod.alloy.ee 51235 + # sahyadri.isrdc.in 51235 + ``` 3. `[network_id]`に適切な値を追加します。 - + {% tabs %} - *Testnet* + ```{% label="Testnet" %} + [network_id] + testnet + ``` - [network_id] - testnet + ```{% label="Devnet" %} + [network_id] + devnet + ``` - *Devnet* + ```{% label="Mainnet" %} + [network_id] + main + ``` - [network_id] - devnet + ```{% label="Sidechain-Devnet" %} + [network_id] + 262 + ``` - *Mainnet* - - [network_id] - main - - *Sidechain-Devnet* - - [network_id] - 262 - - + {% /tabs %} カスタムネットワークの場合、そのネットワークに接続する全員が、そのネットワークに固有の値を使用する必要があります。新しいネットワークを作成するときは、ネットワークIDを11から4,294,967,295までの整数からランダムに選択します。 @@ -92,42 +94,41 @@ labels: 1. 接続したいネットワークの`[validator_list_sites]`と`[validator_list_keys]`コメントを解除するか、追加します。 - + {% tabs %} - *Testnet* + ```{% label="Testnet" %} + [validator_list_sites] + https://vl.altnet.rippletest.net - [validator_list_sites] - https://vl.altnet.rippletest.net + [validator_list_keys] + ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 + ``` - [validator_list_keys] - ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 + ```{% label="Devnet" %} + [validator_list_sites] + https://vl.devnet.rippletest.net - *Devnet* + [validator_list_keys] + EDDF2F53DFEC79358F7BE76BC884AC31048CFF6E2A00C628EAE06DB7750A247B12 + ``` - [validator_list_sites] - https://vl.devnet.rippletest.net + ```{% label="Mainnet" %} + [validator_list_sites] + https://vl.ripple.com - [validator_list_keys] - EDDF2F53DFEC79358F7BE76BC884AC31048CFF6E2A00C628EAE06DB7750A247B12 + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` + ```{% label="Sidechain-Devnet" %} + [validator_list_sites] + https://vlsidechain-net2.devnet.rippletest.net - *Mainnet* + [validator_list_keys] + EDA5504C7133743FADA46342229B4E9CBBE1CF9BCA19D16633574F7CBB72F79569 + ``` - [validator_list_sites] - https://vl.ripple.com - - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - - *Sidechain-Devnet* - - [validator_list_sites] - https://vlsidechain-net2.devnet.rippletest.net - - [validator_list_keys] - EDA5504C7133743FADA46342229B4E9CBBE1CF9BCA19D16633574F7CBB72F79569 - - + {% /tabs %} **ヒント:** プレビュー版パッケージには必要な項目があらかじめ設定されている場合がありますが、念のため確認してください。 @@ -135,57 +136,59 @@ labels: 例えば: - # [validator_list_sites] - # https://vl.ripple.com - # - # [validator_list_keys] - # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` + # [validator_list_sites] + # https://vl.ripple.com + # + # [validator_list_keys] + # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - # Old hard-coded List of Devnet Validators - # [validators] - # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c - # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B - # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD - # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U - # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd - # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC - # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS + # Old hard-coded List of Devnet Validators + # [validators] + # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c + # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B + # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD + # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U + # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd + # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC + # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS + ``` ## 3. 機能を有効化(無効化)する 実験的な機能を使用するテストネットワークでは、設定ファイルで該当する機能を強制的に有効にする必要があります。その他のネットワークでは、`[features]`を使用しないでください。設定ファイルの`[features]`を以下のように追加または変更します。 - - -_Testnet_ +{% tabs %} +{% tab label="Testnet" %} ``` # [features] # Delete or comment out. Don't force-enable features on Testnet. ``` +{% /tab %} -_Devnet_ - +{% tab label="Devnet" %} ``` # [features] # Delete or comment out. Don't force-enable features on Devnet. ``` +{% /tab %} -_Mainnet_ - +{% tab label="Mainnet" %} ``` # [features] # Delete or comment out. Don't force-enable features on Mainnet. ``` +{% /tab %} -_Sidechain-Devnet_ - +{% tab label="Sidechain-Devnet" %} ``` [features] XChainBridge ``` +{% /tab %} - +{% /tabs %} **警告:** メインネットまたはテストネットに接続するときは、`[features]`を使用しないでください。他のネットワークと異なる機能を強制的に有効にすると、サーバがネットワークから分断される可能性があります。 @@ -207,28 +210,23 @@ $ sudo systemctl restart rippled rippled server_info | grep seq ``` -WebSocketツールの[server_info](websocket-api-tool.html#server_info)を使って、対象のネットワーク上の最新のレジャーインデックス(`seq`)を調べることができます。 +WebSocketツールの[server_info](/resources/dev-tools/websocket-api-tool#server_info)を使って、対象のネットワーク上の最新のレジャーインデックス(`seq`)を調べることができます。 ## 関連項目 - **ツール:** - - [XRP Faucets](xrp-testnet-faucet.html) - - [WebSocket APIツール](websocket-api-tool.html) - 接続オプションで「Testnet Public Server」または「Devnet Public Server」を選択します。 + - [XRP Faucets](/resources/dev-tools/xrp-faucets) + - [WebSocket APIツール](/resources/dev-tools/websocket-api-tool) - 接続オプションで「Testnet Public Server」または「Devnet Public Server」を選択します。 - **コンセプト:** - - [並列ネットワーク](parallel-networks.html) - - [コンセンサス](consensus.html) + - [並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md) + - [コンセンサス](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [バリデータとしてのrippledの実行](run-rippled-as-a-validator.html) - - [オフラインで`rippled`をスタンドアロンモードでテストする](use-stand-alone-mode.html) - - [`rippled`のトラブルシューティング](troubleshoot-the-rippled-server.html) + - [バリデータとしてのrippledの実行](server-modes/run-rippled-as-a-validator.md) + - [オフラインで`rippled`をスタンドアロンモードでテストする](../testing-and-auditing/index.md) + - [`rippled`のトラブルシューティング](../troubleshooting/index.md) - **References:** - [server_infoメソッド][] - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-advisory-deletion.md b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-advisory-deletion.md index ba9362716e..e0cadde78d 100644 --- a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-advisory-deletion.md +++ b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-advisory-deletion.md @@ -16,7 +16,7 @@ labels: - サポートされているオペレーティングシステムを使用している。Ubuntu Linux、Red Hat Enterprise Linux(RHEL)、CentOS -- `rippled`サーバーがすでに[インストール](install-rippled.html)されており、[オンライン削除](online-deletion.html)が有効になっている。 +- `rippled`サーバーがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 デフォルトの構成ファイルは、レジャーバージョンが2000個を超えるとオンライン削除を実行するよう設定されています。 @@ -26,11 +26,13 @@ labels: RHELまたはCentOSでは、以下の`cronie`パッケージをインストールできます。 - $ sudo yum install cronie + ``` + $ sudo yum install cronie + ``` - 選択した量の履歴をレジャーストアーに保管するのに十分なディスク容量がサーバーにある。 - 各種設定で必要なストレージの容量についての詳細は、[容量計画](capacity-planning.html)を参照してください。指示による削除が有効な場合、削除が実行されるまでにサーバーに蓄積可能な履歴の最大数は、`online_delete`設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を**加算**したものに相当します。 + 各種設定で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)を参照してください。指示による削除が有効な場合、削除が実行されるまでにサーバーに蓄積可能な履歴の最大数は、`online_delete`設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を**加算**したものに相当します。 - サーバーの使用率が最も低い時間帯を把握している。 @@ -40,30 +42,36 @@ labels: 1. `rippled`の構成ファイルの`[node_db]`スタンザで`advisory_delete`を有効にします。 - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=1 + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=1 + ``` - 指示された場合にのみオンライン削除を実行するには、`advisory_delete`を`1`に設定します。(`0`に設定すると、新しいレジャーバージョンが使用可能になると自動的にオンライン削除が実行されます。) - `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。オンライン削除が実行されるまでに蓄積される履歴は、この値よりも多くなります。 - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. サーバーに対してオンライン削除を指示する[can_deleteメソッド][]の実行をテストします。 - このコマンドの実行には[`rippled`コマンドラインインターフェイス](get-started-using-http-websocket-apis.html#コマンドライン)を使用できます。例: + このコマンドの実行には[`rippled`コマンドラインインターフェイス](../../../tutorials/get-started/get-started-using-http-websocket-apis.md#コマンドライン)を使用できます。例: - $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now + ``` + $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now + ``` レスポンスは、サーバーがそのレジャーストアーから削除するレジャーインデックスの最大値を示します。たとえば、以下のメッセージはレジャーインデックス43633667以下のレジャーバージョンを削除できることを示します。 - { - "result": { - "can_delete": 43633667, - "status": "success" - } - } + ``` + { + "result": { + "can_delete": 43633667, + "status": "success" + } + } + ``` サーバー内の _新しい_ 検証済みレジャーバージョンの数が、`online_delete`の設定以上となった場合にのみ、レジャーバージョンが削除されます。 @@ -71,11 +79,15 @@ labels: `cron` 設定を編集します。 - $ crontab -e + ``` + $ crontab -e + ``` 以下の例では、サーバー時刻で毎日1:05 AMにサーバーが削除を実行するように設定されています。 - 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now + ``` + 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now + ``` サーバーで設定されているタイムゾーンに基づいてコマンドが実行されるようにスケジュールしてください。 @@ -83,7 +95,9 @@ labels: 4. `rippled`サービスを起動(または再起動)します。 - $ sudo systemctl restart rippled + ``` + $ sudo systemctl restart rippled + ``` 5. [server_infoメソッド][]を使用してサーバーの`complete_ledgers`範囲を定期的に調べ、レジャーがスケジュール通りに削除されていることを確認します。 @@ -98,9 +112,6 @@ labels: - `cron`ジョブを設定したユーザーに、コマンドラインクライアントとして`rippled`サーバーを実行できる権限があることを確認します。 - cronジョブの構文とこのジョブの実行予定時刻を確認します。 - `rippled`実行可能ファイルが`cron`設定で指定したパスで使用可能であることを確認します。必要に応じて実行可能ファイルの絶対パス(`/opt/ripple/bin/rippled`など)を指定します。 -- `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを調べます。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.html#オンライン削除の中断)可能性があります。 +- `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを調べます。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-full-history.md b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-full-history.md index 39727bad44..d4c5145ffc 100644 --- a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-full-history.md +++ b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-full-history.md @@ -18,7 +18,7 @@ labels: ネットワークへの参加、トランザクションの検証、またはネットワークの現在の状態の確認には、全履歴を記録するサーバーは必要ありません。全履歴が有用となるのは、過去に発生したトランザクションの結果や、過去の特定の時点におけるレジャーの状態を確認する場合だけです。このような情報を取得するには、必要とする履歴を保持している他のサーバーを利用する必要があります。 -全履歴は保管せずにXRP Ledgerネットワークの履歴の保管に参加したい場合には、[履歴シャーディングを構成](configure-history-sharding.html)すれば、レジャー履歴のグループをランダムに選択して保管できます。 +全履歴は保管せずにXRP Ledgerネットワークの履歴の保管に参加したい場合には、[履歴シャーディングを構成](configure-history-sharding.md)すれば、レジャー履歴のグループをランダムに選択して保管できます。 ## 構成手順 @@ -26,32 +26,40 @@ labels: 1. `rippled`サーバーが稼働中の場合は停止します。 - $ sudo systemctl stop rippled + ``` + $ sudo systemctl stop rippled + ``` 0. サーバーの構成ファイルで`[node_db]`スタンザの`online_delete`設定と`advisory_delete`設定を削除(またはコメントアウト)し、タイプをまだ`NuDB`に変更していない場合は変更します。 - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - #online_delete=300000 - #advisory_delete=0 + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + #online_delete=300000 + #advisory_delete=0 + ``` - 全履歴が記録されるサーバーでは、レジャーストアーにNuDBを使用します。これは、データベースがこれほど大きいと、RocksDBでは非常に大量のRAMが必要になるためです。詳細は、[容量の計画](capacity-planning.html)を参照してください。パフォーマンス関連の構成オプション`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データベース)設定の両方を変更する必要があります。このようにしないと、サーバーの[起動が失敗する](server-wont-start.html#状態dbエラー)可能性があります。 + **注意:** RocksDBで履歴をすでにダウンロードしている場合は、NuDBへ切り替えるときに構成ファイルでデータベースのパスを変更するか、またはそのデータを削除する必要があります。`[node_db]`スタンザの`path`設定**および**`[database_path]`(SQLiteデータベース)設定の両方を変更する必要があります。このようにしないと、サーバーの[起動が失敗する](../../troubleshooting/server-wont-start.md#状態dbエラー)可能性があります。 - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 0. サーバーの構成ファイルで`[ledger_history]`スタンザを`full`に設定します。 - [ledger_history] - full + ``` + [ledger_history] + full + ``` 0. 全履歴が保管されている1台以上のサーバーと明示的にピア接続するように、サーバーの構成ファイルで`[ips_fixed]`スタンザを設定します。 - [ips_fixed] - 169.55.164.20 - 50.22.123.215 + ``` + [ips_fixed] + 169.55.164.20 + 50.22.123.215 + ``` サーバーのダイレクトピアの1つが使用可能な履歴データを保持している場合に限り、サーバーはピアツーピアネットワークから履歴データをダウンロードできます。全履歴をダウンロードする最も容易な方法は、すでに全履歴を保管しているサーバーとピア接続することです。 @@ -59,29 +67,37 @@ labels: 0. 全履歴が記録されている別のサーバーからのデータベースダンプがあり、このダンプをベースとして利用できる場合は、サーバーの構成ファイルで`[import_db]`スタンザがインポート対象データを指し示すように設定します。(それ以外の場合はこのステップをスキップします。) - [import_db] - type=NuDB - path=/tmp/full_history_dump/ + ``` + [import_db] + type=NuDB + path=/tmp/full_history_dump/ + ``` 0. 以前に稼働していた`rippled`からの既存のデータベースファイルがサーバーにある場合は、そのデータベースファイルを削除します。 オンライン削除を無効にすると、サーバーはオンライン削除が有効であった間にダウンロードしたデータをすべて無視するため、ディスク容量を空けることができます。次に例を示します。 - rm -r /var/lib/rippled/db/* + ``` + rm -r /var/lib/rippled/db/* + ``` **警告:** フォルダーを削除する前に、保持したいファイルがそのフォルダーに含まれていないことを確認してください。通常は安全に`rippled`サーバーのデータベースファイルをすべて削除できますが、この操作は、設定されているデータベースフォルダーが`rippled`のデータベース以外には使用されていない場合にのみ行ってください。 0. `rippled`サーバーを起動し、インポート可能なデータベースダンプがある場合にはインポートします。 - `[Import_db]`で構成されている読み取り対象データベースダンプがある場合は、`--import` [コマンドラインオプション](commandline-usage.html#デーモンモードのオプション)を指定してサーバーを明示的に起動します。 + `[Import_db]`で構成されている読み取り対象データベースダンプがある場合は、`--import` [コマンドラインオプション](../../commandline-usage.md#デーモンモードのオプション)を指定してサーバーを明示的に起動します。 - $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import + ``` + $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import + ``` 大量のデータベースダンプのインポートには数分から数時間かかることがあります。インポート中はサーバーは完全には起動せず、ネットワークと同期しません。インポートの状況を確認するには、サーバーログを参照してください。 データベースダンプをインポートしない場合は、サーバーを通常の方法で起動します。 - $ sudo systemctl start rippled + ``` + $ sudo systemctl start rippled + ``` 0. `[import_db]`スタンザをサーバーの構成ファイルに追加した場合は、インポートの完了後にそのスタンザを削除してください。 @@ -93,8 +109,4 @@ labels: 本番環境のXRP Ledgerの履歴で最も古い利用可能なレジャーバージョンは、レジャーインデックス**32570**です。レジャー履歴の最初の約2週間分は、当時のサーバーのバグが原因で失われています。Test Netやその他のチェーンでは通常、履歴の最初のバージョンはレジャーインデックス**1**です。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-history-sharding.md b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-history-sharding.md index f9f075fc44..5b4cb5b1df 100644 --- a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-history-sharding.md +++ b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-history-sharding.md @@ -8,7 +8,7 @@ labels: --- # 履歴シャーディングの設定 -[履歴シャーディング](history-sharding.html)では、各サーバーで完全な履歴を保管することなく、履歴XRP Ledgerデータを保存できます。デフォルトでは`rippled`サーバーは履歴シャードを保管しません。 +[履歴シャーディング](history-sharding.md)では、各サーバーで完全な履歴を保管することなく、履歴XRP Ledgerデータを保存できます。デフォルトでは`rippled`サーバーは履歴シャードを保管しません。 **ヒント:** バリデータおよび`rippled`追跡(またはストック)サーバーの両方で履歴シャードを保管するように設定できます。ただし`rippled`バリデータサーバーの経費を抑えるために、バリデータサーバーでシャードを保管するように設定 _しない_ ことが推奨されます。バリデータを実行していて、XRP Ledger履歴を保管したい場合は、履歴シャーディングを有効にして別の`rippled`サーバーを実行することが推奨されます。 @@ -30,7 +30,7 @@ labels: `rippled.cfg`ファイルを編集し、`[shard_db]`スタンザを追加します。 -{% include '_snippets/conf-file-location.ja.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} 以下のスニペットに、`[shard_db]`スタンザの例を示します。 @@ -41,9 +41,9 @@ path=/var/lib/rippled/db/shards/nudb max_size_gb=50 ``` -`type`フィールドは省略できます。省略しない場合は、`NuDB`である _必要があります_ 。[新規: rippled 1.3.1][] +`type`フィールドは省略できます。省略しない場合は、`NuDB`である _必要があります_ 。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.3.1" %}新規: rippled 1.3.1{% /badge %} -**注意:** `rippled`がシャードストアーパスで不適切なデータを検出すると、[起動できない](server-wont-start.html)可能性があります。シャードストアーには新しいフォルダーを使用する必要があります。以前にRocksDBシャードストアー(`rippled` 1.2.x以前)を使用していた場合は、別のパスを使用するか、RocksDBシャードデータを削除します。 +**注意:** `rippled`がシャードストアーパスで不適切なデータを検出すると、[起動できない](../../troubleshooting/server-wont-start.md)可能性があります。シャードストアーには新しいフォルダーを使用する必要があります。以前にRocksDBシャードストアー(`rippled` 1.2.x以前)を使用していた場合は、別のパスを使用するか、RocksDBシャードデータを削除します。 詳細は、[rippled.cfgの設定例](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)の`[shard_db]`の例を参照してください。 @@ -61,24 +61,21 @@ systemctl restart rippled [download_shardメソッド][]を使用して、サーバーにアーカイブファイルからシャードをダウンロードしてインポートするように指示できます。 -サーバーとそのピアが使用できるシャードのリストを表示するには、[crawl_shardsメソッド][]か[ピアクローラー](peer-crawler.html)を使用します。 +サーバーとそのピアが使用できるシャードのリストを表示するには、[crawl_shardsメソッド][]か[ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を使用します。 ## 関連項目 - **コンセプト:** - - [レジャー履歴](ledger-history.html) - - [オンライン削除](online-deletion.html) + - [レジャー履歴](../../../concepts/networks-and-servers/ledger-history.md) + - [オンライン削除](online-deletion.md) - **チュートリアル:** - - [オンライン削除の設定](configure-online-deletion.html) - - [ピアクローラーの設定](configure-the-peer-crawler.html) - - [容量の計画](capacity-planning.html) + - [オンライン削除の設定](configure-online-deletion.md) + - [ピアクローラーの設定](../peering/configure-the-peer-crawler.md) + - [容量の計画](../../installation/capacity-planning.md) - **リファレンス:** - [download_shardメソッド][] - [crawl_shardsメソッド][] - - [レジャーデータフォーマット](ledger-data-formats.html) + - [レジャーデータフォーマット](../../../references/protocol/ledger-data/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-online-deletion.md b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-online-deletion.md index 0e8015444e..e8b1bd35c0 100644 --- a/content/@i18n/ja/infrastructure/configuration/data-retention/configure-online-deletion.md +++ b/content/@i18n/ja/infrastructure/configuration/data-retention/configure-online-deletion.md @@ -8,7 +8,7 @@ labels: --- # オンライン削除の設定 -`rippled`サーバーのデフォルトの構成では、最新2000個のレジャーバージョンよりも古い[履歴が削除され](online-deletion.html)、レジャー履歴は約15分間維持されます(現行のレジャー毎の間隔に基づく)。このページでは、削除までに`rippled`サーバーに保管される履歴の量を設定する方法を説明します。 +`rippled`サーバーのデフォルトの構成では、最新2000個のレジャーバージョンよりも古い[履歴が削除され](online-deletion.md)、レジャー履歴は約15分間維持されます(現行のレジャー毎の間隔に基づく)。このページでは、削除までに`rippled`サーバーに保管される履歴の量を設定する方法を説明します。 ## 前提条件 @@ -16,11 +16,11 @@ labels: - サポートされているオペレーティングシステムを使用している。Ubuntu Linux、Red Hat Enterprise Linux(RHEL)、CentOS -- `rippled`サーバーがすでに[インストール](install-rippled.html)されており、[オンライン削除](online-deletion.html)が有効になっている。 +- `rippled`サーバーがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 推奨されるプラットフォームのインストール手順に従えば、オンライン削除はデフォルトで有効となります。 -- 選択した量の履歴をレジャーストアーに保管するのに[十分なディスク容量](capacity-planning.html)がサーバーにある。 +- 選択した量の履歴をレジャーストアーに保管するのに[十分なディスク容量](../../installation/capacity-planning.md)がサーバーにある。 ## 構成手順 @@ -29,24 +29,28 @@ labels: 1. 保管する履歴に相当するレジャーバージョンの数を決定します。 - 新しいレジャーバージョンは通常3~4秒間隔で検証されます。このため、レジャーバージョンの数は、保管する期間におおむね対応しています。各種構成で必要なストレージの容量についての詳細は、[容量計画](capacity-planning.html)を参照してください。 + 新しいレジャーバージョンは通常3~4秒間隔で検証されます。このため、レジャーバージョンの数は、保管する期間におおむね対応しています。各種構成で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)を参照してください。 オンライン削除は、履歴の削除 _後_ に維持するレジャーバージョンの数に基づいておこなわれるので、設定した維持するレジャー数の2倍を保管するのに十分なディスク容量が必要です。 0. `rippled`の構成ファイルで`[node_db]` スタンザの`online_delete`フィールドを編集します。 - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=0 + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=0 + ``` `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。自動削除が設定されている場合(デフォルト)、サーバーは通常、この数の約2倍のレジャーバージョンが蓄積されると削除を実行します。 - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 0. `rippled`サービスを起動(または再起動)します。 - $ sudo systemctl restart rippled + ``` + $ sudo systemctl restart rippled + ``` 0. サーバーがネットワークと同期するまで待ちます。 @@ -58,26 +62,22 @@ labels: オンライン削除実行後の`complete_ledgers`範囲には、古いレジャーが使用できなくなったことが反映されます。サーバーに履歴が蓄積されるにつれ、使用可能なレジャーの総数が徐々に増加します。この数が設定した`online_delete`値の2倍に達し、オンライン削除が実行されるとレジャーの総数は減少します。 -0. `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを確認します。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.html#オンライン削除の中断)可能性があります。 +0. `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを確認します。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 この状況が定期的に発生する場合は、サーバーのスペックが不十分で、オンライン削除の実行中にレジャーを最新状態に維持できていない可能性があります。同じハードウェア上の他のサービス(スケジュール済みバックアップやセキュリティスキャンなど)と`rippled`サーバーがリソースをめぐって競合していないことを確認してください。以下のいずれかの操作を実行できます。 - - システムスペックを強化する。推奨事項については、[システム要件](system-requirements.html)を参照してください。 + - システムスペックを強化する。推奨事項については、[システム要件](../../installation/system-requirements.md)を参照してください。 - 設定を変更し、保管する履歴の量を減らす。(このチュートリアルのステップ2) - - サーバーの[`node_size`パラメーター](capacity-planning.html)を変更する。 - - レジャーストアーに[RocksDBの代わりにNuDB](capacity-planning.html)を使用する。 - - [指示による削除を使用してオンライン削除をスケジュールする](configure-advisory-deletion.html)。 + - サーバーの[`node_size`パラメーター](../../installation/capacity-planning.md)を変更する。 + - レジャーストアーに[RocksDBの代わりにNuDB](../../installation/capacity-planning.md)を使用する。 + - [指示による削除を使用してオンライン削除をスケジュールする](configure-advisory-deletion.md)。 ## 関連項目 -- [オンライン削除](online-deletion.html) -- [指示による削除の設定](configure-advisory-deletion.html) -- [履歴シャーディングの設定](configure-history-sharding.html) -- [完全な履歴の設定](configure-full-history.html) +- [オンライン削除](online-deletion.md) +- [指示による削除の設定](configure-advisory-deletion.md) +- [履歴シャーディングの設定](configure-history-sharding.md) +- [完全な履歴の設定](configure-full-history.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/data-retention/history-sharding.md b/content/@i18n/ja/infrastructure/configuration/data-retention/history-sharding.md index e1fb40c194..b55d43cdc7 100644 --- a/content/@i18n/ja/infrastructure/configuration/data-retention/history-sharding.md +++ b/content/@i18n/ja/infrastructure/configuration/data-retention/history-sharding.md @@ -8,7 +8,7 @@ labels: --- # 履歴シャーディング -[導入: rippled 0.90.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}導入: rippled 0.90.0{% /badge %} 稼働中のサーバーは、ネットワーク実行時に検知または取得したレジャーに関するデータを格納したデータベースを作成します。各`rippled`サーバーは、そのレジャーのデータをレジャーストアーに保存しますが、保存されたレジャー数が設定された容量制限を超えると、オンライン削除ロジックによりこれらのデータベースがローテーションされます。 @@ -16,7 +16,7 @@ labels: 履歴シャーディング機能を使用すると、個々の`rippled`サーバーが履歴データの保存する役割を担い、すべての履歴(数テラバイト)を保存する必要がなくなります。シャードストアーはレジャーストアーに代わるものではありませんが、XRP Ledgerネットワーク上の分散レジャー履歴への信頼性の高いパスを実現します。 -[![XRP Ledgerネットワーク: レジャーストアーとシャードストアーの図](img/xrp-ledger-network-ledger-store-and-shard-store.ja.png)](img/xrp-ledger-network-ledger-store-and-shard-store.ja.png) +[![XRP Ledgerネットワーク: レジャーストアーとシャードストアーの図](/img/xrp-ledger-network-ledger-store-and-shard-store.ja.png)](/img/xrp-ledger-network-ledger-store-and-shard-store.ja.png) @@ -34,11 +34,8 @@ labels: ## 関連項目 -- [履歴シャーディングの設定](configure-history-sharding.html) +- [履歴シャーディングの設定](configure-history-sharding.md) - [download_shardメソッド][] - [crawl_shardsメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/data-retention/index.md b/content/@i18n/ja/infrastructure/configuration/data-retention/index.md index 22acf7ba01..4ecf1e87e5 100644 --- a/content/@i18n/ja/infrastructure/configuration/data-retention/index.md +++ b/content/@i18n/ja/infrastructure/configuration/data-retention/index.md @@ -1,9 +1,13 @@ --- html: data-retention.html parent: configure-rippled.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: サーバが保存するデータの量と、古いデータを削除するタイミングを制御します。 --- # データの保存 サーバが保存するデータの量と、古いバージョンのレジャーステートや過去のトランザクションを含む古いデータを削除するタイミングを制御します。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/configuration/data-retention/online-deletion.md b/content/@i18n/ja/infrastructure/configuration/data-retention/online-deletion.md index 8fbe6debb0..1b1eee9094 100644 --- a/content/@i18n/ja/infrastructure/configuration/data-retention/online-deletion.md +++ b/content/@i18n/ja/infrastructure/configuration/data-retention/online-deletion.md @@ -9,18 +9,18 @@ labels: # オンライン削除 [[ソース]
](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/misc/SHAMapStoreImp.cpp "Source") -オンライン削除機能により、`rippled`サーバーはレジャーの古いバージョンのローカルコピーを削除できます。これにより、時間とともにディスク使用量が急増しないようにできます。デフォルトの構成ファイルにはオンライン削除の自動実行が設定されていますが、指示があった場合にのみオンライン削除を実行するようにも設定できます。[新規: rippled 0.27.0][] +オンライン削除機能により、`rippled`サーバーはレジャーの古いバージョンのローカルコピーを削除できます。これにより、時間とともにディスク使用量が急増しないようにできます。デフォルトの構成ファイルにはオンライン削除の自動実行が設定されていますが、指示があった場合にのみオンライン削除を実行するようにも設定できます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.27.0" %}新規: rippled 0.27.0{% /badge %} サーバーは、レジャーおよびそのすべての残高と設定を、常に完全かつ _最新_ の状態に維持します。削除されるデータには、保存されている履歴よりも古いレジャー状態の古いトランザクションやバージョンがあります。 デフォルトの構成ファイルは、`rippled`サーバーが2000の最新レジャーバージョンを保持し、古いデータを自動的に削除するように設定されています。 -**ヒント:** オンライン削除を使用しても、同一期間のレジャーデータを保管するのに必要なディスク容量は時間の経過とともに増加します。これは、個々のレジャーバージョンのサイズが時間とともに増加する傾向にあるためです。蓄積データが増加するペースは、古いレジャーを削除しない場合に比べると、非常にゆっくりとしています。必要なディスク容量に関する詳細は、[容量の計画](capacity-planning.html)を参照してください。 +**ヒント:** オンライン削除を使用しても、同一期間のレジャーデータを保管するのに必要なディスク容量は時間の経過とともに増加します。これは、個々のレジャーバージョンのサイズが時間とともに増加する傾向にあるためです。蓄積データが増加するペースは、古いレジャーを削除しない場合に比べると、非常にゆっくりとしています。必要なディスク容量に関する詳細は、[容量の計画](../../installation/capacity-planning.md)を参照してください。 ## 背景 -`rippled`サーバーでは[レジャー履歴](ledger-history.html)がその _レジャーストアー_ に保管されます。このデータは時間とともに蓄積されます。 +`rippled`サーバーでは[レジャー履歴](../../../concepts/networks-and-servers/ledger-history.md)がその _レジャーストアー_ に保管されます。このデータは時間とともに蓄積されます。 レジャーストアー内ではレジャーデータの「重複排除」が行われます。つまり、バージョン間で変更されていないデータは1回だけ保存されます。レジャーストアーのレコード自体には、レコードが記録されているレジャーバージョンの記載はありません。オンライン削除処理において、古いレジャーバージョンでのみ使用されるレコードが特定されます。この処理には時間がかかり、またディスクI/Oとアプリケーションキャッシュに影響するため、レジャーを閉鎖するたびに古いデータを削除することは現実的ではありません。 @@ -29,7 +29,7 @@ labels: オンライン削除の設定では、`rippled`サーバーがレジャーストアーで使用可能な状態で維持するレジャーバージョンの数が設定されます。ただし、指定される数は目安であり、厳格に適用されるものではありません。 -- サーバーでは、設定された数のレジャーバージョンよりも新しいデータが削除されることはありませんが、長期にわたってサーバーが稼働していない場合や、ネットワークとの同期が失われた場合には、サーバーに含まれるレジャーバージョンの数が使用可能な数よりも少ないことがあります。(サーバーは一部の履歴の埋め戻しを試みます。詳細は、[履歴の取得](ledger-history.html#履歴の取得)を参照してください。) +- サーバーでは、設定された数のレジャーバージョンよりも新しいデータが削除されることはありませんが、長期にわたってサーバーが稼働していない場合や、ネットワークとの同期が失われた場合には、サーバーに含まれるレジャーバージョンの数が使用可能な数よりも少ないことがあります。(サーバーは一部の履歴の埋め戻しを試みます。詳細は、[履歴の取得](../../../concepts/networks-and-servers/ledger-history.md#履歴の取得)を参照してください。) - オンライン削除の自動実行が設定されている場合、設定されているレジャーバージョンの数の2倍を超える数まで保存できる可能性があります。(オンライン削除を実行するたびに、保管されるレジャーバージョンの数が削減され、設定数に近くなります。) PCサーバーがビジーのためオンライン削除が遅延すると、レジャーバージョンが蓄積し続けることがあります。正常に動作している場合には、サーバー内のレジャーバージョン数が設定された数の2倍に達した時点でオンライン削除が開始されますが、さらにいくつかのレジャーバージョンが蓄積するまではオンライン削除が完了しないことがあります。 @@ -55,7 +55,7 @@ labels: ### オンライン削除の中断 -[サーバーの状態](rippled-server-states.html)が`full`より優先順位の低い状態になると、オンライン削除は自動的に停止します。この場合、サーバーはプレフィクス`SHAMapStore::WRN`が付いたログメッセージを書き込みます。サーバーは完全に同期された後、次の検証済みレジャーバージョン以降からオンライン削除の再開を試みます。 +[サーバーの状態](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md)が`full`より優先順位の低い状態になると、オンライン削除は自動的に停止します。この場合、サーバーはプレフィクス`SHAMapStore::WRN`が付いたログメッセージを書き込みます。サーバーは完全に同期された後、次の検証済みレジャーバージョン以降からオンライン削除の再開を試みます。 サーバーを停止した場合や、オンライン削除の実行中にサーバーがクラッシュした場合には、サーバーが再起動し、完全に同期されれば、オンライン削除が再開されます。 @@ -68,7 +68,7 @@ labels: - **`online_delete`** - 維持する検証済みレジャーバージョンの数を指定します。サーバーは、この数よりも古いレジャーバージョンをすべて定期的に削除します。数を指定しなければ、レジャーは削除されません。 - デフォルトの構成ファイルでは、この値は2000に設定されています。この値に256未満の数は設定はできません。これは、[手数料投票](fee-voting.html)や[Amendmentプロセス](amendments.html#amendmentプロセス)などのイベントで一度に更新されるレジャーの数が256であるためです。 + デフォルトの構成ファイルでは、この値は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`設定の変更後にサーバーを再起動する前に、既存の履歴を削除します。 @@ -78,7 +78,7 @@ labels: 次の図は、`online_delete`設定と`ledger_history`設定の関係を示します。 - ![`online_delete`より古いレジャーは自動的に削除されます。`ledger_history`よりも新しいレジャーは埋め戻されます。その間に位置するレジャーは、使用可能な場合は保持されますが、埋め戻しは行われません](img/online_delete-vs-ledger_history.ja.png) + ![`online_delete`より古いレジャーは自動的に削除されます。`ledger_history`よりも新しいレジャーは埋め戻されます。その間に位置するレジャーは、使用可能な場合は保持されますが、埋め戻しは行われません](/img/online_delete-vs-ledger_history.ja.png) - **`advisory_delete`** - 有効な場合、オンライン削除は自動的にスケジュールされません。代わりに管理者が手動でオンライン削除をトリガーする必要があります。無効にするには値`0`を使用し、有効にするには`1`を使用します。 @@ -92,9 +92,9 @@ labels: 次の図は、fetch_depthの仕組みを示します。 - ![fetch_depthよりも古いレジャーバージョンはピアに提供されません](img/fetch_depth.ja.png) + ![fetch_depthよりも古いレジャーバージョンはピアに提供されません](/img/fetch_depth.ja.png) -さまざまな量の履歴の保管に必要なディスク容量の見積もりについては、[容量の計画](capacity-planning.html#ディスク容量)を参照してください。 +さまざまな量の履歴の保管に必要なディスク容量の見積もりについては、[容量の計画](../../installation/capacity-planning.md#ディスク容量)を参照してください。 ### 指示による削除 @@ -113,18 +113,14 @@ labels: オンライン削除を実行する場合、サーバーはまず、最も古いレジャーバージョンの中から保持するものを確認し、そのレジャーバージョンのすべてのオブジェクトを読み取り専用の「古い」データベースから「現行」データベースにコピーします。これにより、「現行」データベースには、選択したレジャーバージョンとそれ以降のすべての新しいバージョンで使用されるオブジェクトがすべて含まれることになります。次に、サーバーは「古い」データベースを削除し、既存の「現行」データベースを「古い」読み取り専用データベースにします。これ以降、サーバーは新しい「現行」データベースを始動し、新たな変更をすべてこのデータベースに保存します。 -![オンライン削除で2つのデータベースがどのように使用されるかを示す図](img/online-deletion-process.ja.png) +![オンライン削除で2つのデータベースがどのように使用されるかを示す図](/img/online-deletion-process.ja.png) ## 関連項目 -- [容量の計画](capacity-planning.html) +- [容量の計画](../../installation/capacity-planning.md) - [can_deleteメソッド][] - APIリファレンス資料 -- [オンライン削除の設定](configure-online-deletion.html) -- [指示による削除の設定](configure-advisory-deletion.html) -- [完全な履歴の設定](configure-full-history.html) +- [オンライン削除の設定](configure-online-deletion.md) +- [指示による削除の設定](configure-advisory-deletion.md) +- [完全な履歴の設定](configure-full-history.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/enable-public-signing.md b/content/@i18n/ja/infrastructure/configuration/enable-public-signing.md index 32e247efc4..d8aacbf363 100644 --- a/content/@i18n/ja/infrastructure/configuration/enable-public-signing.md +++ b/content/@i18n/ja/infrastructure/configuration/enable-public-signing.md @@ -8,9 +8,9 @@ labels: --- # パブリック署名の有効化 -[新規: rippled 1.1.0][]デフォルトでは、`rippled`の署名メソッドは管理者接続に限定されています。v1.1.0以前のバージョンの`rippled`のように、署名メソッドをパブリックAPIメソッドとして使用できるようにするには、構成を変更することで、これを使用できるようにします。 +{% 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接続](get-started-using-http-websocket-apis.html)を受け入れる場合は、これらのパブリック接続で以下のメソッドが使用できるようになります。 +これにより、サーバーが「パブリック」[JSON-RPC接続およびWebSocket接続](../../tutorials/get-started/get-started-using-http-websocket-apis.md)を受け入れる場合は、これらのパブリック接続で以下のメソッドが使用できるようになります。 - [sign][signメソッド] - [sign_for][sign_forメソッド] @@ -24,21 +24,23 @@ labels: 1. `rippled`の構成ファイルを編集します。 - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. 以下のスタンザを構成ファイルに追加し、変更を保存します。 - [signing_support] - true + ``` + [signing_support] + true + ``` 3. `rippled`サーバーを再起動します。 - systemctl restart rippled + ``` + systemctl restart rippled + ``` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/index.md b/content/@i18n/ja/infrastructure/configuration/index.md index be63483bc5..96d387a7d4 100644 --- a/content/@i18n/ja/infrastructure/configuration/index.md +++ b/content/@i18n/ja/infrastructure/configuration/index.md @@ -1,9 +1,13 @@ --- html: configure-rippled.html parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: rippledサーバーの構成をカスタマイズします。 --- # rippledの設定 -rippledサーバーの構成をカスタマイズします。 \ No newline at end of file +rippledサーバーの構成をカスタマイズします。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/cluster-rippled-servers.md b/content/@i18n/ja/infrastructure/configuration/peering/cluster-rippled-servers.md index b166c2c983..1e978b32ef 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/cluster-rippled-servers.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/cluster-rippled-servers.md @@ -7,7 +7,7 @@ labels: --- # rippledサーバーのクラスター化 -1つのデータセンターで複数の`rippled`サーバーを稼働している場合は、これらのサーバーを[クラスター](clustering.html)に構成して、効率を最大化できます。クラスター構成の設定は次のとおりです。 +1つのデータセンターで複数の`rippled`サーバーを稼働している場合は、これらのサーバーを[クラスター](../../../concepts/networks-and-servers/clustering.md)に構成して、効率を最大化できます。クラスター構成の設定は次のとおりです。 1. 各サーバーのIPアドレスをメモします。 @@ -15,18 +15,20 @@ labels: コマンドラインインターフェイスを使用する場合の例を以下に示します。 - $ rippled validation_create + ``` + $ rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` 各レスポンスの`validation_seed`パラメーターと`validation_public_key`パラメーターを安全な場所に保存します。 @@ -34,61 +36,66 @@ labels: 1. `[ips_fixed]`セクションに、クラスターの _その他の_ 各メンバーのIPアドレスとポートを記入します。各サーバーのポート番号は、サーバーの `rippled.cfg`に指定されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例: - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` この例では、このサーバーがダイレクトピアツーピア接続の維持を常に試みる先のピアサーバーを特定しています。 2. `[node_seed]`セクションでは、サーバーのノードシードを、ステップ2で[validation_createメソッド][]を使用して生成した`validation_seed`の値の1つに設定します。各サーバーは一意のノードシードを使用する必要があります。例: - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` この例では、ピアツーピア通信(検証メッセージを除く)の署名にサーバーが使用するキーペアを定義しています。 3. `[cluster_nodes]`セクションでは、サーバーのクラスターのメンバーを設定します。これらのメンバーは`validation_public_key`の値で識別されます。各サーバーのクラスターの _その他の_ すべてのメンバーをここに記入する必要があります。任意で、各サーバーのカスタム名を追加します。例: - [cluster_nodes] - n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes - n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman + ``` + [cluster_nodes] + n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes + n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman + ``` この例は、サーバーがクラスターのメンバーを認識するために使用するキーペアを定義しています。 4. 構成ファイルを保存した後、各サーバーで`rippled`を再起動します。 - # systemctl restart rippled + ``` + # systemctl restart rippled + ``` 5. 各サーバーがクラスターのメンバーになっていることを確認するには、[peersメソッド][]を使用します。`cluster`フィールドに、各サーバーの公開鍵とカスタム名(構成している場合)のリストが表示されます。 コマンドラインインターフェイスを使用する場合の例を以下に示します。 - $ rippled peers + ``` + $ rippled peers - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "cluster" : { - "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { - "tag": "keynes", - "age": 1 - }, - "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { - "tag": "friedman", - "age": 1 - } + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "cluster" : { + "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { + "tag": "keynes", + "age": 1 }, - "peers" : [ - ...(omitted) ... - ], - "status" : "success" - } - } + "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { + "tag": "friedman", + "age": 1 + } + }, + "peers" : [ + ...(omitted) ... + ], + "status" : "success" + } + } + ``` - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/configure-a-private-server.md b/content/@i18n/ja/infrastructure/configuration/peering/configure-a-private-server.md index c7d2c0d2a8..d1d9380cc4 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/configure-a-private-server.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/configure-a-private-server.md @@ -8,14 +8,14 @@ labels: --- # プライベートサーバーの設定 -[プライベートサーバー](peer-protocol.html#プライベートピア)は、オープンなピアツーピアネットワーク内の検出されたピアに直接接続するのではなく、特定の信頼できるピアのみを通じてネットワークに接続する`rippled`サーバーです。この種の構成は、[バリデータ](run-rippled-as-a-validator.html)に一般的に推奨される任意の対策ですが、その他の特定の目的でも役立ちます。 +[プライベートサーバー](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)は、オープンなピアツーピアネットワーク内の検出されたピアに直接接続するのではなく、特定の信頼できるピアのみを通じてネットワークに接続する`rippled`サーバーです。この種の構成は、[バリデータ](../server-modes/run-rippled-as-a-validator.md)に一般的に推奨される任意の対策ですが、その他の特定の目的でも役立ちます。 ## 前提条件 プライベートサーバーを使用するには、次の前提条件を満たしている必要があります。 -- [`rippled`をインストール](install-rippled.html)して最新バージョンにアップデートし、まだ実行していない状態である必要があります。 -- 自社で運用している**プロキシ**を通じて接続するか、**公開ハブ**を通じて接続するかを決める必要があります。これらの選択肢の違いについては、[ピアリング構成のメリットとデメリット](peer-protocol.html#ピア接続設定のメリットとデメリット)を参照してください。 +- [`rippled`をインストール](../../installation/index.md)して最新バージョンにアップデートし、まだ実行していない状態である必要があります。 +- 自社で運用している**プロキシ**を通じて接続するか、**公開ハブ**を通じて接続するかを決める必要があります。これらの選択肢の違いについては、[ピアリング構成のメリットとデメリット](../../../concepts/networks-and-servers/peer-protocol.md#ピア接続設定のメリットとデメリット)を参照してください。 - プロキシを使用している場合、`rippled`がインストールされていてプロキシとして使用し実行される別のマシンが必要です。これらのサーバーは、外部のネットワークとプライベートサーバーに接続できる必要があります。 - どちらの構成でも、接続先のピアのIPアドレスとポートを把握しておく必要があります。 @@ -25,16 +25,20 @@ labels: 1. `rippled`の構成ファイルを編集します。 - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. プライベートピアリングを有効にします。 構成ファイルに以下のスタンザを追加するか、コメントを解除します。 - [peer_private] - 1 + ``` + [peer_private] + 1 + ``` 3. 固定数のピアを追加します。 @@ -42,29 +46,37 @@ labels: 例えば、**公開ハブ**を使用して接続する場合は、以下のスタンザを使用できます。 - [ips_fixed] - r.ripple.com 51235 - zaphod.alloy.ee 51235 + ``` + [ips_fixed] + r.ripple.com 51235 + zaphod.alloy.ee 51235 + ``` サーバーが**プロキシ**を使用して接続している場合は、IPアドレスとポートが、プロキシとして使用している`rippled`サーバーの構成と一致している必要があります。これらの各サーバーについては、ポート番号が、サーバーの構成ファイルに記載されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例えば、構成は次のようになります。 - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` 4. プロキシを使用している場合、プロキシをプライベートピアと互いを含めてクラスター化します。 公開ハブを使用している場合は、このステップをスキップします。 - プロキシを使用している場合、プライベートピアを含む[クラスターとしてプロキシを構成](cluster-rippled-servers.html)します。クラスターの各メンバーは、クラスターの_他の_各メンバーをリストにした`[ips_fixed]`スタンザを持っている必要があります。ただし、`[peer_private]`スタンザを持つのは**プライベートサーバーのみ**とします。 + プロキシを使用している場合、プライベートピアを含む[クラスターとしてプロキシを構成](cluster-rippled-servers.md)します。クラスターの各メンバーは、クラスターの_他の_各メンバーをリストにした`[ips_fixed]`スタンザを持っている必要があります。ただし、`[peer_private]`スタンザを持つのは**プライベートサーバーのみ**とします。 各プロキシで`rippled`を再起動します。各プロキシサーバーで、次のようにします。 - sudo service systemctl restart rippled + ``` + sudo service systemctl restart rippled + ``` 5. プライベートサーバーで`rippled`を起動します。 - sudo service systemctl start rippled + ``` + sudo service systemctl start rippled + ``` 6. [peersメソッド][]を使用して、プライベートサーバーが自身のピアに _のみ_ 接続していることを確認します。 @@ -73,26 +85,22 @@ labels: ## 次のステップ -追加の予防対策として、自身のピアでないサーバーからプライベートサーバーへの着信接続をブロックするようにファイアウォールを設定する必要があります。プロキシサーバーを実行している場合は、ファイヤーウォールを通じてプロキシに[ピアポートを転送](forward-ports-for-peering.html)するようにします。ただし、プライベートピアで**ない**ものに転送します。この設定方法の具体的な手順は、使用するファイアウォールによって異なります。 +追加の予防対策として、自身のピアでないサーバーからプライベートサーバーへの着信接続をブロックするようにファイアウォールを設定する必要があります。プロキシサーバーを実行している場合は、ファイヤーウォールを通じてプロキシに[ピアポートを転送](forward-ports-for-peering.md)するようにします。ただし、プライベートピアで**ない**ものに転送します。この設定方法の具体的な手順は、使用するファイアウォールによって異なります。 ファイアウォールがポート80で発信HTTP接続を**ブロックしない**ことを確認します。デフォルトの設定では、このポートを使用して**vl.ripple.com**から最新の推奨バリデータリストをダウンロードします。バリデータリストがないと、サーバーはどのバリデータを信頼してよいかわからず、ネットワークが、いつコンセンサスに至ったかを認識できません。 ## 関連項目 - **コンセプト:** - - [ピアプロトコル](peer-protocol.html) - - [コンセンサス](consensus.html) - - [並列ネットワーク](parallel-networks.html) + - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) + - [コンセンサス](../../../concepts/consensus-protocol/index.md) + - [並列ネットワーク](../../../concepts/networks-and-servers/parallel-networks.md) - **チュートリアル:** - - [ピアクローラーの設定](configure-the-peer-crawler.html) + - [ピアクローラーの設定](configure-the-peer-crawler.md) - **リファレンス:** - [peersメソッド][] - [connectメソッド][] - [fetch_infoメソッド][] - - [ピアクローラー](peer-crawler.html) + - [ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/configure-the-peer-crawler.md b/content/@i18n/ja/infrastructure/configuration/peering/configure-the-peer-crawler.md index 1b1c5cf6a8..c1f9a2db2f 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/configure-the-peer-crawler.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/configure-the-peer-crawler.md @@ -8,7 +8,7 @@ labels: --- # ピアクローラの設定 -デフォルトでは、[`rippled`サーバ](xrpl-servers.html)は、[ピアクローラAPI](peer-crawler.html)を使ってリクエストしてきた人に統計を公開し、[XRP Ledgerのピアツーピアネットワーク](peer-protocol.html)の健全性と状況を追跡しやすくしています。より多くの情報を提供したり、より少ない情報を提供したり、あるいはピアクローラーのリクエストを完全に拒否するように、サーバを設定することができます。 +デフォルトでは、[`rippled`サーバ](../../../concepts/networks-and-servers/index.md)は、[ピアクローラAPI](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を使ってリクエストしてきた人に統計を公開し、[XRP Ledgerのピアツーピアネットワーク](../../../concepts/networks-and-servers/peer-protocol.md)の健全性と状況を追跡しやすくしています。より多くの情報を提供したり、より少ない情報を提供したり、あるいはピアクローラーのリクエストを完全に拒否するように、サーバを設定することができます。 このドキュメントには、2つのオプションについて説明しています。 @@ -21,23 +21,29 @@ labels: 1. `rippled`の設定ファイルを編集します。 - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. 設定ファイルに`[crawl]`を追加または更新し、変更を保存します。 - [crawl] - overlay = 1 - server = 1 - counts = 0 - unl = 1 + ``` + [crawl] + overlay = 1 + server = 1 + counts = 0 + unl = 1 + ``` - このスタンザのフィールドは、サーバが[peer crawlerレスポンス](peer-crawler.html#レスポンスのフォーマット)で返すフィールドを制御します。設定フィールドの名前はAPIレスポンスのフィールドと一致します。値が`1`の設定は、レスポンスにそのフィールドを含めることを意味します。0`の値は、そのフィールドをレスポンスから省略することを意味します。この例では、各設定のデフォルト値を示しています。 + このスタンザのフィールドは、サーバが[peer crawlerレスポンス](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md#レスポンスのフォーマット)で返すフィールドを制御します。設定フィールドの名前はAPIレスポンスのフィールドと一致します。値が`1`の設定は、レスポンスにそのフィールドを含めることを意味します。0`の値は、そのフィールドをレスポンスから省略することを意味します。この例では、各設定のデフォルト値を示しています。 3. 設定ファイルに変更を保存したら、`rippled`サーバを再起動して、更新された設定を適用します。 - systemctl restart rippled + ``` + systemctl restart rippled + ``` ## ピアクローラの無効化 @@ -46,34 +52,37 @@ labels: 1. `rippled`の設定ファイルを編集します。 - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. 設定ファイルに`[crawl]`を追加または更新し、変更を保存します。 - [crawl] - 0 + ``` + [crawl] + 0 + ``` `[crawl]`の他のすべての内容を削除するか、コメントアウトしてください。 3. 設定ファイルに変更を保存したら、`rippled`サーバを再起動して、更新された設定を適用します。 - systemctl restart rippled + ``` + systemctl restart rippled + ``` ## 関連項目 - **コンセプト:** - - [ピアプロトコル](peer-protocol.html) + - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) - **チュートリアル:** - - [rippledサーバの管理](manage-the-rippled-server.html) + - [rippledサーバの管理](../../installation/install-rippled-on-ubuntu.md) - **リファレンス:** - [server_infoメソッド][] - [peersメソッド][] - - [ピアクローラ](peer-crawler.html) + - [ピアクローラ](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/enable-link-compression.md b/content/@i18n/ja/infrastructure/configuration/peering/enable-link-compression.md index 0e49b95b38..c6ab3a7e74 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/enable-link-compression.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/enable-link-compression.md @@ -7,7 +7,7 @@ labels: --- # 回線圧縮の有効化 -`rippled`サーバは[ピアツーピア通信](peer-protocol.html)を圧縮することで帯域幅を節約できますが、その代償としてCPU使用率が高くなります。回線圧縮を有効にすると、サーバーは回線圧縮を有効にしているピアサーバとの通信を自動的に圧縮します。 +`rippled`サーバは[ピアツーピア通信](../../../concepts/networks-and-servers/peer-protocol.md)を圧縮することで帯域幅を節約できますが、その代償としてCPU使用率が高くなります。回線圧縮を有効にすると、サーバーは回線圧縮を有効にしているピアサーバとの通信を自動的に圧縮します。 ## 手順 @@ -19,7 +19,7 @@ labels: $ vim /etc/opt/ripple/rippled.cfg ``` -{% include '_snippets/conf-file-location.ja.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} ### 2. 設定ファイルに`[compression]`を追加またはコメントアウトします。 @@ -42,10 +42,7 @@ $ sudo systemctl restart rippled.service ## 関連項目 -- [容量の計画](capacity-planning.html) -- [ピアプロトコル](peer-protocol.html) +- [容量の計画](../../installation/capacity-planning.md) +- [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/forward-ports-for-peering.md b/content/@i18n/ja/infrastructure/configuration/peering/forward-ports-for-peering.md index 5a0e4c65ba..7fa3fb0926 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/forward-ports-for-peering.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/forward-ports-for-peering.md @@ -7,7 +7,7 @@ labels: --- # ピアリングのポート転送 -XRP Ledgerのピアツーピアネットワーク内にあるサーバーは、[ピアプロトコル](peer-protocol.html)を介して通信します。セキュリティとネットワークの他の部分との接続を両立させるために、ファイアウォールを使用して、サーバーをほとんどのポートから保護し、ピアプロトコルポートだけを開放するか転送するようにする必要があります。 +XRP Ledgerのピアツーピアネットワーク内にあるサーバーは、[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)を介して通信します。セキュリティとネットワークの他の部分との接続を両立させるために、ファイアウォールを使用して、サーバーをほとんどのポートから保護し、ピアプロトコルポートだけを開放するか転送するようにする必要があります。 `rippled`サーバーの稼動中に、[server_infoメソッド][]を実行すると、いくつのピアがあるか確認することができます。`info`オブジェクトの`peers`フィールドは、サーバーに現在接続しているピアの数を示します。この数が10または11の場合、通常はファイアウォールが着信接続をブロックしていることを示します。 @@ -49,18 +49,15 @@ $ sudo firewall-cmd --add-forward-port=port=51235:proto=tcp:toport=51235 ## 関連項目 - **コンセプト:** - - [ピアプロトコル](peer-protocol.html) - - [`rippled`サーバー](xrpl-servers.html) + - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) + - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [容量の計画](capacity-planning.html) - - [`rippled`サーバーのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [容量の計画](../../installation/capacity-planning.md) + - [`rippled`サーバーのトラブルシューティング](../../troubleshooting/index.md) - **リファレンス:** - [connectメソッド][] - [peersメソッド][] - [printメソッド][] - [server_infoメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/index.md b/content/@i18n/ja/infrastructure/configuration/peering/index.md index 7365db869f..5806053901 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/index.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/index.md @@ -2,7 +2,8 @@ html: configure-peering.html name: ピアリング parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: サーバをピアツーピアネットワークに接続する方法を設定します。 labels: - コアサーバー @@ -11,4 +12,7 @@ labels: XRP Ledgerのピアツーピアプロトコルは、ほとんどの場合、ピア接続を自動的に管理します。場合によっては、サーバーが接続するピアを手動で調整して、サーバーの可用性とネットワークの他の部分との接続性を最大限に高めたいというケースがあります。 -同じデータセンター内で複数のサーバーを稼動させている場合は、[クラスター化](cluster-rippled-servers.html)して効率を向上させたいケースがあります。ピアツーピアネットワークのトポロジー内の重要なハブなど、稼動していないが接続を維持したいサーバー用の予約済みピアスロットを使うことができます。他のピアについては、サーバーはピアを自動検出し、その接続を管理しますが、望ましくない動作をするピアをブロックするように手動で介入することもできます。 +同じデータセンター内で複数のサーバーを稼動させている場合は、[クラスター化](cluster-rippled-servers.md)して効率を向上させたいケースがあります。ピアツーピアネットワークのトポロジー内の重要なハブなど、稼動していないが接続を維持したいサーバー用の予約済みピアスロットを使うことができます。他のピアについては、サーバーはピアを自動検出し、その接続を管理しますが、望ましくない動作をするピアをブロックするように手動で介入することもできます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md b/content/@i18n/ja/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md index c917419337..cb74b83a6f 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md @@ -7,26 +7,25 @@ labels: --- # 特定のピアへの手動接続 -サーバーをXRP Ledgerネットワーク内の特定の[ピア](peer-protocol.html)に手動で接続するには、次の手順を実行します。 +サーバーをXRP Ledgerネットワーク内の特定の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)に手動で接続するには、次の手順を実行します。 -**ヒント:** サーバーが起動時にこのサーバーに自動的に接続して、以降も接続を維持するようにするには、そのピアに対して[ピアリザベーション](use-a-peer-reservation.html)を設定することができます。 +**ヒント:** サーバーが起動時にこのサーバーに自動的に接続して、以降も接続を維持するようにするには、そのピアに対して[ピアリザベーション](use-a-peer-reservation.md)を設定することができます。 ## 前提条件 - 接続先のピアのIPアドレスを把握しておく必要があります。 -- 接続先のピアがXRP Ledger[ピアプロトコル](peer-protocol.html)に使用するポートを把握しておく必要があります。デフォルトでは、ポート51235です。 -- サーバーからピアへのネットワーク接続を用意する必要があります。例えば、ピアサーバーは[ファイアウォールを通じて適切なポートを転送する](forward-ports-for-peering.html)必要があります。 -- ピアサーバーに使用可能なピアスロットがある必要があります。ピアがすでにピアの最大数に達している場合、ピアサーバーのオペレーターに依頼して、サーバーの[ピアリザベーション](use-a-peer-reservation.html)を追加してもらいます。 +- 接続先のピアがXRP Ledger[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)に使用するポートを把握しておく必要があります。デフォルトでは、ポート51235です。 +- サーバーからピアへのネットワーク接続を用意する必要があります。例えば、ピアサーバーは[ファイアウォールを通じて適切なポートを転送する](forward-ports-for-peering.md)必要があります。 +- ピアサーバーに使用可能なピアスロットがある必要があります。ピアがすでにピアの最大数に達している場合、ピアサーバーのオペレーターに依頼して、サーバーの[ピアリザベーション](use-a-peer-reservation.md)を追加してもらいます。 ## 手順 接続するには、[connectメソッド][]を使用します。例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "command": "connect", @@ -34,9 +33,9 @@ labels: "port": 51235 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` { "method": "connect", @@ -48,32 +47,29 @@ labels: ] } ``` +{% /tab %} - -*コマンドライン* - +{% tab label="コマンドライン" %} ``` rippled connect 169.54.2.151 51235 ``` +{% /tab %} - +{% /tabs %} ## 関連項目 - **コンセプト:** - - [ピアプロトコル](peer-protocol.html) - - [`rippled`サーバー](xrpl-servers.html) + - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) + - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [容量の計画](capacity-planning.html) - - [`rippled`サーバーのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [容量の計画](../../installation/capacity-planning.md) + - [`rippled`サーバーのトラブルシューティング](../../troubleshooting/index.md) - **リファレンス:** - [connectメソッド][] - [peersメソッド][] - [printメソッド][] - [server_infoメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/set-max-number-of-peers.md b/content/@i18n/ja/infrastructure/configuration/peering/set-max-number-of-peers.md index 40c77057d7..c027b031e1 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/set-max-number-of-peers.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/set-max-number-of-peers.md @@ -7,49 +7,52 @@ labels: --- # ピアの最大数の設定 -`rippled`サーバーには、接続先の[ピア](peer-protocol.html)の数を定める設定可能なソフト最大数があります。ピアのデフォルトの最大数は**21**です。 +`rippled`サーバーには、接続先の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)の数を定める設定可能なソフト最大数があります。ピアのデフォルトの最大数は**21**です。 -**注記:** 内部的に、サーバーは受信ピアと送信ピアのおおよそのクォータを生成します。[固定ピアやピアリザベーション](peer-protocol.html#固定ピアとピアリザベーション)を使用している場合、あるいは[connectメソッド][]を使用して追加のピアに手動で接続している場合は、このソフト最大数を超える可能性があります。 +**注記:** 内部的に、サーバーは受信ピアと送信ピアのおおよそのクォータを生成します。[固定ピアやピアリザベーション](../../../concepts/networks-and-servers/peer-protocol.md#固定ピアとピアリザベーション)を使用している場合、あるいは[connectメソッド][]を使用して追加のピアに手動で接続している場合は、このソフト最大数を超える可能性があります。 サーバーが許可するピアの最大数を変更するには、以下の手順を実行します。 1. `rippled`の構成ファイルを編集します。 - $ vim /etc/opt/ripple/rippled.cfg + ``` + $ vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. 構成ファイルで、`[peers_max]`スタンザのコメントを解除して編集するか、まだない場合は追加します。 - [peers_max] - 30 + ``` + [peers_max] + 30 + ``` スタンザの内容は、許可するピアの合計数を示す整数のみである必要があります。デフォルトでは、サーバーは受信ピアが約85%、送信ピアが約15%という比率を維持するように試みますが、送信ピアの最小数が10であるため、68未満の値にしても、サーバーが行う送信ピア接続の数は増えません。 - `[peers_max]`値を10未満にした場合でも、サーバーはハードコーディングされた最小数である10台の送信ピアを許可するため、ネットワークとの接続を維持できます。すべての送信ピア接続をブロックするには、[サーバーをプライベートピアとして設定](run-rippled-as-a-validator.html#プロキシを使用した接続)します。 + `[peers_max]`値を10未満にした場合でも、サーバーはハードコーディングされた最小数である10台の送信ピアを許可するため、ネットワークとの接続を維持できます。すべての送信ピア接続をブロックするには、[サーバーをプライベートピアとして設定](../server-modes/run-rippled-as-a-validator.md#プロキシを使用した接続)します。 **注意:** 接続先のピアサーバーが増えると、`rippled`サーバーが使用するネットワーク帯域幅も増えます。`rippled`サーバーに良好なネットワーク接続があり、使用する帯域幅のコストを許容できる場合にのみ、ピアサーバーの数に大きな値を設定してください。 3. `rippled`サーバーを再起動します。 - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` ## 関連項目 - **コンセプト:** - - [ピアプロトコル](peer-protocol.html) - - [`rippled`サーバー](xrpl-servers.html) + - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) + - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [容量の計画](capacity-planning.html) - - [`rippled`サーバーのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [容量の計画](../../installation/capacity-planning.md) + - [`rippled`サーバーのトラブルシューティング](../../troubleshooting/index.md) - **リファレンス:** - [connectメソッド][] - [peersメソッド][] - [printメソッド][] - [server_infoメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/peering/use-a-peer-reservation.md b/content/@i18n/ja/infrastructure/configuration/peering/use-a-peer-reservation.md index a4fef358b9..e8b49e1d03 100644 --- a/content/@i18n/ja/infrastructure/configuration/peering/use-a-peer-reservation.md +++ b/content/@i18n/ja/infrastructure/configuration/peering/use-a-peer-reservation.md @@ -9,7 +9,7 @@ lables: [ピアリザベーション][]を使用すると、`rippled`サーバーが予約とマッチしたピアからの通信を常に受け入れるように設定できます。このページでは、ピアリザベーションを使用して2台のサーバー間のピアツーピア通信を、各サーバーの管理者の協力のもと一貫して維持する方法について説明します。 -ピアリザベーションは、2台のサーバーが異なる組織によって運用されていて、着信接続を受信するサーバーが、多くのピアを持つ[ハブサーバー](rippled-server-modes.html#公開ハブ)である場合に特に便利です。分かりやすいように、これらの手順では次の用語を使用します。 +ピアリザベーションは、2台のサーバーが異なる組織によって運用されていて、着信接続を受信するサーバーが、多くのピアを持つ[ハブサーバー](../../../concepts/networks-and-servers/rippled-server-modes.md#公開ハブ)である場合に特に便利です。分かりやすいように、これらの手順では次の用語を使用します。 - **ストックサーバー**は発信接続を行うサーバーです。このサーバーは、ハブサーバー上のピアリザベーションを _使用_ します。 - **ハブサーバー**は着信接続を受信するサーバーです。管理者は、このサーバーにピアリザベーションを _追加_ します。 @@ -20,10 +20,10 @@ lables: これらの手順を実行するには、次の前提条件を満たしている必要があります。 -- 両方のサーバーの管理者が`rippled`を[インストール](install-rippled.html)して実行している。 +- 両方のサーバーの管理者が`rippled`を[インストール](../../installation/index.md)して実行している。 - 両方のサーバーの管理者が協力することに合意し、連絡が取り合える。秘密情報を共有する必要はないため、パブリックな通信チャネルを使用してもかまいません。 -- ハブサーバーが着信ピア接続を受信できる。ファイアウォールをそのように設定する手順については、[ピアリングのポート転送](forward-ports-for-peering.html)を参照してください。 -- 両方のサーバーが、同じ[XRP Ledgerネットワーク](parallel-networks.html)(本番XRP Ledger、Testnet、Devnetなど)と同期するように設定されている。 +- ハブサーバーが着信ピア接続を受信できる。ファイアウォールをそのように設定する手順については、[ピアリングのポート転送](forward-ports-for-peering.md)を参照してください。 +- 両方のサーバーが、同じ[XRP Ledgerネットワーク](../../../concepts/networks-and-servers/parallel-networks.md)(本番XRP Ledger、Testnet、Devnetなど)と同期するように設定されている。 ## 手順 @@ -33,7 +33,7 @@ lables: ストックサーバーの管理者が、以下の手順を実行します。 -永続ノードキーペア値をすでにサーバーに設定している場合は、[ステップ2: ノード公開鍵をピアの管理者に連絡する](#2ストックサーバーのノード公開鍵を連絡する)に進んでください。(例えば、各サーバーの永続ノードキーペアは[サーバークラスターの設定](cluster-rippled-servers.html)の一環として設定します。) +永続ノードキーペア値をすでにサーバーに設定している場合は、[ステップ2: ノード公開鍵をピアの管理者に連絡する](#2ストックサーバーのノード公開鍵を連絡する)に進んでください。(例えば、各サーバーの永続ノードキーペアは[サーバークラスターの設定](cluster-rippled-servers.md)の一環として設定します。) **ヒント:** 永続ノードキーペアの設定は省略可能ですが、この設定をしておけば、サーバーのデータベースの消去や新規マシンへの移行が必要となった場合にピア接続の設定を容易に維持することができます。永続ノードキーペアを設定しない場合は、[server_infoメソッド][]のレスポンスの`pubkey_node`フィールドに表示される、サーバーが自動生成したノード公開鍵を使用できます。 @@ -41,39 +41,47 @@ lables: 例: - rippled validation_create + ``` + rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` `validation_seed`(ノードシード値)と`validation_public_key`値(ノード公開鍵)を保存します。 2. `rippled`の構成ファイルを編集します。 - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 3. 前のステップで生成した`validation_seed`値を使用して、`[node_seed]`スタンザを追加します。 例: - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` **警告:** すべてのサーバーの`[node_seed]`値が一意である必要があります。構成ファイルを別のサーバーにコピーする場合は、`[node_seed]`値を削除するか、変更してください。`[node_seed]`は公開しないようにします。不正使用者がこの値にアクセスできた場合、それを使用してサーバーを偽装し、XRP Ledgerのピアツーピア通信を行う可能性があります。 4. `rippled`サーバーを再起動します。 - systemctl restart rippled + ``` + systemctl restart rippled + ``` ### 2.ストックサーバーのノード公開鍵を連絡する @@ -110,10 +118,9 @@ Connecting to 127.0.0.1:5005 [connectメソッド][]を使用して、サーバーをハブサーバーに接続します。例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "command": "connect", @@ -121,9 +128,9 @@ Connecting to 127.0.0.1:5005 "port": 51235 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` { "method": "connect", @@ -136,14 +143,15 @@ Connecting to 127.0.0.1:5005 ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` rippled connect 169.54.2.151 51235 ``` +{% /tab %} - +{% /tabs %} ハブサーバーの管理者が上記の手順に従ってピアリザベーションを設定した場合、自動的に接続され、可能な限り接続が維持されます。 @@ -163,12 +171,12 @@ rippled connect 169.54.2.151 51235 ## 関連項目 - **コンセプト:** - - [ピアプロトコル](peer-protocol.html) - - [コンセンサス](consensus.html) - - [並列ネットワーク](parallel-networks.html) + - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) + - [コンセンサス](../../../concepts/consensus-protocol/index.md) + - [並列ネットワーク](../../../concepts/networks-and-servers/parallel-networks.md) - **チュートリアル:** - - [容量の計画](capacity-planning.html) - - [`rippled`のトラブルシューティング](troubleshoot-the-rippled-server.html) + - [容量の計画](../../installation/capacity-planning.md) + - [`rippled`のトラブルシューティング](../../troubleshooting/index.md) - **リファレンス:** - [peersメソッド][] - [peer_reservations_addメソッド][] @@ -176,10 +184,6 @@ rippled connect 169.54.2.151 51235 - [peer_reservations_listメソッド][] - [connectメソッド][] - [fetch_infoメソッド][] - - [ピアクローラー](peer-crawler.html) + - [ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/server-modes/index.md b/content/@i18n/ja/infrastructure/configuration/server-modes/index.md index 7ad0488084..e60d5f5baa 100644 --- a/content/@i18n/ja/infrastructure/configuration/server-modes/index.md +++ b/content/@i18n/ja/infrastructure/configuration/server-modes/index.md @@ -1,9 +1,13 @@ --- html: server-modes.html parent: configure-rippled.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: コアサーバを用途別に適した様々なモードで運用する方法を紹介します。 --- # サーバの種類 XRP Ledgerのコアサーバは、用途別に適した様々なモードで実行することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md b/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md index 157298a258..6d4d1fe568 100644 --- a/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md +++ b/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md @@ -7,49 +7,45 @@ labels: --- # ウォレットサーバーとしてのrippledの実行 -ストックサーバは`rippled`用の汎用的な設定です。ストックサーバを利用することで、XRP Ledgerにトランザクションを送信したり、レジャーの履歴にアクセスしたり、XRPやXRP Ledgerと統合するための最新の[ツール](software-ecosystem.html)を利用したりすることができます。このサーバを使って、クライアントアプリケーションをXRP Ledgerに接続することができます。 +ストックサーバは`rippled`用の汎用的な設定です。ストックサーバを利用することで、XRP Ledgerにトランザクションを送信したり、レジャーの履歴にアクセスしたり、XRPやXRP Ledgerと統合するための最新の[ツール](../../../introduction/software-ecosystem.md)を利用したりすることができます。このサーバを使って、クライアントアプリケーションをXRP Ledgerに接続することができます。 ウォレットサーバーは、次のすべてのことを行います。 -- [ピアネットワーク](peer-protocol.html)に接続 +- [ピアネットワーク](../../../concepts/networks-and-servers/peer-protocol.md)に接続 -- 暗号署名された[トランザクション](transactions.html)を中継 +- 暗号署名された[トランザクション](../../../concepts/transactions/index.md)を中継 -- 完全な共有グローバル[レジャー](ledgers.html)のローカルコピーを維持 +- 完全な共有グローバル[レジャー](../../../concepts/ledgers/index.md)のローカルコピーを維持 -バリデータとして[コンセンサスプロセス](consensus.html)に参加するには、代わりに[バリデータとしてrippledを実行](run-rippled-as-a-validator.html)してください。 +バリデータとして[コンセンサスプロセス](../../../concepts/consensus-protocol/index.md)に参加するには、代わりに[バリデータとしてrippledを実行](run-rippled-as-a-validator.md)してください。 ## `rippled`のインストールと実行 -デフォルトのパッケージインストールでは、取引履歴の少ないストックサーバーがインストールされます。インストール手順については、[`rippled`のインストール](install-rippled.html)をご覧ください。 +デフォルトのパッケージインストールでは、取引履歴の少ないストックサーバーがインストールされます。インストール手順については、[`rippled`のインストール](../../installation/index.md)をご覧ください。 -インストール後、サーバーが一度に保存する履歴の量を調整することができます。この方法については、[オンライン削除の設定](configure-online-deletion.html)をご覧ください。 +インストール後、サーバーが一度に保存する履歴の量を調整することができます。この方法については、[オンライン削除の設定](../data-retention/configure-online-deletion.md)をご覧ください。 ## トラブルシューティング -詳しくは、[`rippled`のトラブルシューティング](troubleshoot-the-rippled-server.html)をご覧ください。 +詳しくは、[`rippled`のトラブルシューティング](../../troubleshooting/index.md)をご覧ください。 ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](xrp-ledger-overview.html) - - [`rippled`サーバ](xrpl-servers.html) + - [XRP Ledgerの概要](/about/) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [rippledサーバのクラスター化](cluster-rippled-servers.html) - - [`rippled`のインストール](install-rippled.html) - - [容量の計画](capacity-planning.html) + - [rippledサーバのクラスター化](../peering/cluster-rippled-servers.md) + - [`rippled`のインストール](../../installation/index.md) + - [容量の計画](../../installation/capacity-planning.md) - **リファレンス:** - [Validator Keysツールガイド](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) - [consensus_infoメソッド][] - [validator_list_sitesメソッド][] - [validatorsメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md b/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md index 1e70d10e27..afb332bda0 100644 --- a/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md +++ b/content/@i18n/ja/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md @@ -10,15 +10,15 @@ top_nav_name: UNLに参加しよう --- # バリデータとしてのrippledの実行 -[バリデータモード](rippled-server-modes.html)で実行されている[`rippled`サーバー](xrpl-servers.html)は、ストックサーバーが実行するあらゆる処理を実行します。 +[バリデータモード](../../../concepts/networks-and-servers/rippled-server-modes.md)で実行されている[`rippled`サーバー](../../../concepts/networks-and-servers/index.md)は、ストックサーバーが実行するあらゆる処理を実行します。 -- [ピアのネットワーク](peer-protocol.html)への接続 +- [ピアのネットワーク](../../../concepts/networks-and-servers/peer-protocol.md)への接続 -- 暗号署名された[トランザクション](transactions.html)の中継 +- 暗号署名された[トランザクション](../../../concepts/transactions/index.md)の中継 -- 完全な共有グローバル[レジャー](ledgers.html)のローカルコピーの維持 +- 完全な共有グローバル[レジャー](../../../concepts/ledgers/index.md)のローカルコピーの維持 -バリデータが _特異である_ のは、検証メッセージも発行するという点です。これらのメッセージは、[コンセンサスプロセス](consensus-principles-and-rules.html#コンセンサスの仕組み)の進行中、XRP Ledgerネットワークによる評価の対象となる候補のトランザクションです。 +バリデータが _特異である_ のは、検証メッセージも発行するという点です。これらのメッセージは、[コンセンサスプロセス](../../../concepts/consensus-protocol/consensus-principles-and-rules.md#コンセンサスの仕組み)の進行中、XRP Ledgerネットワークによる評価の対象となる候補のトランザクションです。 ただし、単に検証メッセージを発行するだけで、バリデータにコンセンサスプロセスでの発言権が自動的に付与されるわけではありません。他のサーバーがバリデータ(モードのサーバー)を彼らのユニークノードリスト(UNL)に追加しない限り、彼らは(バリデータモードのサーバーからの)検証メッセージを無視します。バリデータがUNLに含まれている場合、 _信頼できる_ バリデータであり、その提案は、信頼する側のサーバーによってコンセンサスプロセスで検討されます。 @@ -42,7 +42,7 @@ top_nav_name: UNLに参加しよう - **適時の投票** - 優れたバリデータの投票は、コンセンサスラウンドが終了する前に、素早く届きます。適時の投票を維持するには、バリデータが推奨される[システム要件](system-requirements.html)を満たしていることを確認してください。これには、高速のインターネット接続が含まれます。 + 優れたバリデータの投票は、コンセンサスラウンドが終了する前に、素早く届きます。適時の投票を維持するには、バリデータが推奨される[システム要件](../../installation/system-requirements.md)を満たしていることを確認してください。これには、高速のインターネット接続が含まれます。 バリデータを使って新しいトランザクションを送信したりデータを検索したりすることは可能ですが、APIクエリの負荷が高くなるとバリデータがコンセンサスに追いつけなくなる可能性があります。APIの負荷が十分軽ければ、サーバを両方の目的に使うことができます。理想的には、バリデータはコンセンサスに参加するために特化したものであるべきです。 @@ -56,7 +56,7 @@ top_nav_name: UNLに参加しよう ## 2. `rippled`サーバーのインストール -詳細は、[`rippled`のインストール](install-rippled.html)を参照してください。 +詳細は、[`rippled`のインストール](../../installation/index.md)を参照してください。 @@ -72,19 +72,25 @@ top_nav_name: UNLに参加しよう 2. `create_keys`コマンドを使用して、バリデータキーペアを生成します。 - $ validator-keys create_keys + ``` + $ validator-keys create_keys + ``` Ubuntuでの出力の例: - Validator keys stored in /home/my-user/.ripple/validator-keys.json + ``` + Validator keys stored in /home/my-user/.ripple/validator-keys.json - This file should be stored securely and not shared. + This file should be stored securely and not shared. + ``` macOSでの出力の例: - Validator keys stored in /Users/my-user/.ripple/validator-keys.json + ``` + Validator keys stored in /Users/my-user/.ripple/validator-keys.json - This file should be stored securely and not shared. + This file should be stored securely and not shared. + ``` **警告:** 生成した`validator-keys.json`キーファイルは、暗号化されたUSBフラッシュドライブなど、安全かつ回復可能なオフラインの場所に保管してください。内容には修正を加えないでください。特に、キーの使用場所となるバリデータにキーファイルを保存しないようにします。バリデータの`secret_key`が悪用された場合は、ただちに[キーを破棄](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#key-revocation)します。 @@ -92,23 +98,27 @@ top_nav_name: UNLに参加しよう 3. `create_token`コマンドを使用して、バリデータトークンを生成します。 - $ validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json + ``` + $ validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json + ``` 出力の例: - Update rippled.cfg file with these values: + ``` + Update rippled.cfg file with these values: - # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr + # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` バリデータ(サーバー)で、以下の手順に従います。 @@ -118,11 +128,15 @@ top_nav_name: UNLに参加しよう 2. `rippled`を再起動します。 - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` 3. `server_info`コマンドを使用してバリデータの情報を取得し、バリデータとして実行されていることを確認します。 - $ rippled server_info + ``` + $ rippled server_info + ``` - レスポンスに含まれている`pubkey_validator`の値は、バリデータで使用するために生成した`validator-keys.json`ファイルの`public_key`と一致している必要があります。 @@ -140,12 +154,12 @@ top_nav_name: UNLに参加しよう - [公開ハブ](#公開ハブを使用した接続): 評価の高い特定の公開サーバーにのみ接続します。 -これらのアプローチの違いについては、[ピア接続設定のメリットとデメリット](peer-protocol.html#ピア接続設定のメリットとデメリット)を参照してください。 +これらのアプローチの違いについては、[ピア接続設定のメリットとデメリット](../../../concepts/networks-and-servers/peer-protocol.md#ピア接続設定のメリットとデメリット)を参照してください。 ### 検出されたピアを使用した接続 -この構成では、[検出されたピア](peer-protocol.html#ピアの検出)を使用してバリデータを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)が提供されています。 @@ -156,11 +170,11 @@ _**検出されたピアを使用してバリデータをXRP Ledgerネットワ _**プロキシを使用してバリデータをXRP Ledgerネットワークに接続するには、次の手順を実行します。**_ -1. ストック`rippled`サーバーを設置します。詳細は、[rippledのインストール](install-rippled.html)を参照してください。 +1. ストック`rippled`サーバーを設置します。詳細は、[rippledのインストール](../../installation/index.md)を参照してください。 -2. バリデータとストック`rippled`サーバーを設定して、[クラスター](cluster-rippled-servers.html)内で実行します。 +2. バリデータとストック`rippled`サーバーを設定して、[クラスター](../peering/cluster-rippled-servers.md)内で実行します。 -3. バリデータの`rippled.cfg`ファイルで、`[peer_private]`を`1`に設定します。そうすることで、バリデータのIPアドレスが転送されないようにします。詳細は、[プライベートピア](peer-protocol.html#プライベートピア)を参照してください。また、これによりクラスター内でバリデータを実行するよう`[ips_fixed]`スタンザで定義したサーバー以外のサーバーに、バリデータが接続しないようになります。 +3. バリデータの`rippled.cfg`ファイルで、`[peer_private]`を`1`に設定します。そうすることで、バリデータのIPアドレスが転送されないようにします。詳細は、[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)を参照してください。また、これによりクラスター内でバリデータを実行するよう`[ips_fixed]`スタンザで定義したサーバー以外のサーバーに、バリデータが接続しないようになります。 **警告:** バリデータのIPアドレスを、その他の方法で公開していないことを確認してください。 @@ -172,26 +186,32 @@ _**プロキシを使用してバリデータをXRP Ledgerネットワークに 5. `rippled`を再起動します。 - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` -6. いずれかのストック`rippled`サーバーにある[ピアクローラー](peer-crawler.html)エンドポイントを使用します。レスポンスには、バリデータが含まれていないはずです。これにより、バリデータの`[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 + ``` + $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool + ``` ### 公開ハブを使用した接続 -この構成では、2つの[公開ハブ](rippled-server-modes.html#公開ハブ)を使用してバリデータをネットワークに接続します。この構成は、[自社で運用しているプロキシを使用した接続](#プロキシを使用した接続)と似ていますが、公開ハブを通じて接続します。 +この構成では、2つの[公開ハブ](../../../concepts/networks-and-servers/rippled-server-modes.md#公開ハブ)を使用してバリデータをネットワークに接続します。この構成は、[自社で運用しているプロキシを使用した接続](#プロキシを使用した接続)と似ていますが、公開ハブを通じて接続します。 _**公開ハブを使用してバリデータをネットワークに接続するには、次の手順を実行します。**_ 1. バリデータの`rippled.cfg`ファイルに、次の`[ips_fixed]`スタンザを含めます。2つの値`r.ripple.com 51235`と`zaphod.alloy.ee 51235`がデフォルトの公開ハブです。このスタンザは、これらの公開ハブとのピア接続を常に維持するよう`rippled`に指示します。 - [ips_fixed] - r.ripple.com 51235 - zaphod.alloy.ee 51235 + ``` + [ips_fixed] + r.ripple.com 51235 + zaphod.alloy.ee 51235 + ``` **注意:** この構成では、デフォルトの公開ハブを使用してバリデータをネットワークに接続します。これらは _デフォルト_ の公開ハブであるため、ビジー状態になってバリデータにネットワークへの接続を提供できない場合があります。この問題を避けるために、接続する公開ハブの数を増やすか、デフォルトでない公開ハブに接続するようにします。 @@ -205,8 +225,10 @@ _**公開ハブを使用してバリデータをネットワークに接続す 2. また、バリデータの`rippled.cfg`ファイルに、次の`[peer_private]`スタンザを含めて、それを`1`に設定します。それにより、バリデータのピアに対して、バリデータのIPアドレスをブロードキャストしないよう指示することになります。また、バリデータに対して、`[ips_fixed]`スタンザで設定されているピアにのみ接続するよう指示することになります。これにより、既知の信頼できるピア`rippled`サーバーに対してのみ、バリデータが接続を確立し、IPアドレスを共有することが保証されます。 - [peer_private] - 1 + ``` + [peer_private] + 1 + ``` **警告:** バリデータのIPアドレスを、その他の方法で公開していないことを確認してください。 @@ -214,7 +236,9 @@ _**公開ハブを使用してバリデータをネットワークに接続す 3. `rippled`を再起動します。 - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` @@ -222,17 +246,17 @@ _**公開ハブを使用してバリデータをネットワークに接続す ここでは、バリデータがXRP Ledgerネットワークへの健全な接続を保持していることを検証する方法をいくつか紹介します。 -- [`peers`](peers.html)コマンドを使用して、バリデータに接続しているすべての`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]`スタンザで設定した数よりも最終的に少なくなることがあります。初めて拒否された場合、バリデータは接続を再試行します。 ネットワークへの安全かつ信頼できる接続を維持することが困難であり、公開ハブまたはプロキシを使用して接続を設定していない場合、[4. ネットワークへの接続](#4-ネットワークへの接続)を参照してください。このセクションで説明されているいずれかの方法は、バリデータがネットワークへの健全な接続を維持する上で有用となる可能性があります。 -- [`server_info`](server_info.html)コマンドを使用して、バリデータに関するいくつかの基本情報を取得します。`server_state`は、`proposing`に設定されているはずです。`full`または`validating`に設定されている場合もありますが、`proposing`に移行するまでの数分間に限られます。 +- [`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`サーバーの状態](rippled-server-states.html)および[`server_info`の取得](diagnosing-problems.html#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`](validators.html)コマンドを使用して、バリデータによって使用される、公開済みかつ信頼できるバリデータの最新リストを取得します。`validator_list_expires`の値が、`never`(無期限)、期限が切れていない、または期限切れ間近のいずれかであることを確認してください。 +- [`validators`](../../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md)コマンドを使用して、バリデータによって使用される、公開済みかつ信頼できるバリデータの最新リストを取得します。`validator_list_expires`の値が、`never`(無期限)、期限が切れていない、または期限切れ間近のいずれかであることを確認してください。 @@ -258,27 +282,33 @@ _**公開ハブを使用してバリデータをネットワークに接続す $ /opt/ripple/bin/rippled server_info | grep pubkey_validator - 返された値を、Googleフォームの**Validator Public Key**フィールドに入力します。 + ``` + 返された値を、Googleフォームの**Validator Public Key**フィールドに入力します。 + ``` 2. WebドメインのTLS秘密鍵を使用して、バリデータの公開鍵に署名します。TLS秘密鍵ファイルをバリデータのサーバーに保存する必要はありません。 $ openssl dgst -sha256 -hex -sign /PATH/TO/YOUR/TLS.key <(echo YOUR_VALIDATOR_PUBLIC_KEY_HERE) - 出力の例: + ``` + 出力の例: - 4a8b84ac264d18d116856efd2761a76f3f4544a1fbd82b9835bcd0aa67db91c53342a1ab197ab1ec4ae763d8476dd92fb9c24e6d9de37e3594c0af05d0f14fd2a00a7a5369723c019f122956bf3fc6c6b176ed0469c70c864aa07b4bf73042b1c7cf0b2c656aaf20ece5745f54ab0f78fab50ebd599e62401f4b57a4cccdf8b76d26f4490a1c51367e4a36faf860d48dd2f98a6134ebec1a6d92fadf9f89aae67e854f33e1acdcde12cfaf5f5dbf1b6a33833e768edbb9ff374cf4ae2be21dbc73186a5b54cc518f63d6081919e6125f7daf9a1d8e96e3fdbf3b94b089438221f8cfd78fd4fc85c646b288eb6d22771a3ee47fb597d28091e7aff38a1e636b4f + 4a8b84ac264d18d116856efd2761a76f3f4544a1fbd82b9835bcd0aa67db91c53342a1ab197ab1ec4ae763d8476dd92fb9c24e6d9de37e3594c0af05d0f14fd2a00a7a5369723c019f122956bf3fc6c6b176ed0469c70c864aa07b4bf73042b1c7cf0b2c656aaf20ece5745f54ab0f78fab50ebd599e62401f4b57a4cccdf8b76d26f4490a1c51367e4a36faf860d48dd2f98a6134ebec1a6d92fadf9f89aae67e854f33e1acdcde12cfaf5f5dbf1b6a33833e768edbb9ff374cf4ae2be21dbc73186a5b54cc518f63d6081919e6125f7daf9a1d8e96e3fdbf3b94b089438221f8cfd78fd4fc85c646b288eb6d22771a3ee47fb597d28091e7aff38a1e636b4f - 返された値を、Googleフォームの**SSL Signature**フィールドに入力します。 + 返された値を、Googleフォームの**SSL Signature**フィールドに入力します。 + ``` 3. [`validator-keys`ツール](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md)(`rippled`のRPMに収録)を使用して、ドメイン名に署名します。 $ validator-keys --keyfile /PATH/TO/YOUR/validator-keys.json sign YOUR_DOMAIN_NAME - 出力の例: + ``` + 出力の例: - E852C2FE725B64F353E19DB463C40B1ABB85959A63B8D09F72C6B6C27F80B6C72ED9D5ED6DC4B8690D1F195E28FF1B00FB7119C3F9831459F3C3DE263B73AC04 + E852C2FE725B64F353E19DB463C40B1ABB85959A63B8D09F72C6B6C27F80B6C72ED9D5ED6DC4B8690D1F195E28FF1B00FB7119C3F9831459F3C3DE263B73AC04 - 返された値を、Googleフォームの**Domain Signature**フィールドに入力します。 + 返された値を、Googleフォームの**Domain Signature**フィールドに入力します。 + ``` 4. 記入したGoogleフォームを送信すると、ドメイン検証の成否を通知するメールがXRP Chartsから送信されます。ドメイン検証が成功した場合は、XRP Chartsの[バリデータレジストリー](https://xrpcharts.ripple.com/#/validators)にバリデータとドメインが表示されます。 @@ -296,20 +326,16 @@ _**公開ハブを使用してバリデータをネットワークに接続す ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](xrp-ledger-overview.html) - - [`rippled`サーバー](xrpl-servers.html) + - [XRP Ledgerの概要](/about/) + - [`rippled`サーバー](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [rippledサーバーのクラスター化](cluster-rippled-servers.html) - - [`rippled`のインストール](install-rippled.html) - - [容量の計画](capacity-planning.html) + - [rippledサーバーのクラスター化](../peering/cluster-rippled-servers.md) + - [`rippled`のインストール](../../installation/index.md) + - [容量の計画](../../installation/capacity-planning.md) - **リファレンス:** - [Validator Keysツールガイド](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) - [consensus_infoメソッド][] - [validator_list_sitesメソッド][] - [validatorsメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/index.md b/content/@i18n/ja/infrastructure/index.md index a880fb2fbc..9aa9ec8a97 100644 --- a/content/@i18n/ja/infrastructure/index.md +++ b/content/@i18n/ja/infrastructure/index.md @@ -1,9 +1,13 @@ --- html: infrastructure.html parent: docs.html -template: pagetype-category.html.jinja +metadata: + indexPage: true top_nav_grouping: カテゴリ --- # インフラストラクチャ -XRP Ledgerを動かすソフトウェアのインストール、設定、管理。 \ No newline at end of file +XRP Ledgerを動かすソフトウェアのインストール、設定、管理。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/installation/build-on-linux-mac-windows.md b/content/@i18n/ja/infrastructure/installation/build-on-linux-mac-windows.md index 0878c1cb07..f0ac396e28 100644 --- a/content/@i18n/ja/infrastructure/installation/build-on-linux-mac-windows.md +++ b/content/@i18n/ja/infrastructure/installation/build-on-linux-mac-windows.md @@ -13,7 +13,4 @@ Windows、Linux、macOSなど様々なプラットフォームで`rippled`をビ 続きを読むには、[GitHubの最新の`rippled`ビルド手順](https://github.com/XRPLF/rippled/blob/develop/BUILD.md)をご覧ください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/build-run-rippled-in-reporting-mode.md b/content/@i18n/ja/infrastructure/installation/build-run-rippled-in-reporting-mode.md index 63eaf5defc..ad348596ba 100644 --- a/content/@i18n/ja/infrastructure/installation/build-run-rippled-in-reporting-mode.md +++ b/content/@i18n/ja/infrastructure/installation/build-run-rippled-in-reporting-mode.md @@ -9,13 +9,13 @@ top_nav_grouping: 人気ページ --- # レポートモードでの`rippled`のビルドと実行 -[レポートモード](rippled-server-modes.html)は、[HTTPとWebSocket API](http-websocket-apis.html)の提供に特化したXRP Ledgerのコアサーバのモードです。 +[レポートモード](../../concepts/networks-and-servers/rippled-server-modes.md)は、[HTTPとWebSocket API](../../references/http-websocket-apis/index.md)の提供に特化したXRP Ledgerのコアサーバのモードです。 レポートモードでは、サーバはピアツーピアネットワークに接続しません。その代わりに、gRPCを使用して、P2Pネットワークに接続されている1つまたは複数の信頼できるサーバから有効なデータを取得します。 そしてAPIコールを効率的に処理し、P2Pモードで動作している`rippled`サーバの負荷を軽減することができます。 -{{ include_svg("img/reporting-mode-basic-architecture.svg", "図 1: レポートモードでの`rippled`の動作") }} +[{% inline-svg file="/img/reporting-mode-basic-architecture.svg" /%}](/img/reporting-mode-basic-architecture.svg "図 1: レポートモードでの`rippled`の動作") `rippled`のレポートモードでは2種類のデータストアを使用します。 @@ -31,7 +31,7 @@ top_nav_grouping: 人気ページ ### 前提条件 -1. お使いのシステムが[システム要件](system-requirements.html)を満たしていることを確認してください。 +1. お使いのシステムが[システム要件](system-requirements.md)を満たしていることを確認してください。 **注記:** データベースとしてCassandraを選択した場合、データがローカルディスクに保存されないため、`rippled`のディスク要件は低くなります。 @@ -47,7 +47,9 @@ top_nav_grouping: 人気ページ 3. macOSでは、Cassandraのcppライバを手動でインストールする必要があります。その他のプラットフォームでは、Cassandraドライバは`rippled`ビルドの一部としてビルドされます。 - brew install cassandra-cpp-driver + ``` + brew install cassandra-cpp-driver + ``` #### PostgreSQLのインストール @@ -57,29 +59,35 @@ top_nav_grouping: 人気ページ 2. `psql`を使用してPostgreSQLデータベースサーバに接続し、ユーザ`newuser`とデータベース`reporting`を作成します。 - psql postgres - CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; - ALTER ROLE newuser CREATEDB; - \q - psql postgres -U newuser - postgres=# create database reporting; + ``` + psql postgres + CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; + ALTER ROLE newuser CREATEDB; + \q + psql postgres -U newuser + postgres=# create database reporting; + ``` **macOSにPostgreSQLをインストール** 1. macOSにPostgreSQLをダウンロードしてインストールします。 - brew install postgres - brew services start postgres + ``` + brew install postgres + brew services start postgres + ``` 2. `psql` を使用してPostgreSQLデータベースサーバに接続し、ユーザ`newuser`とデータベース`reporting`を作成します。 - psql postgres - CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; - ALTER ROLE newuser CREATEDB; - \q - psql postgres -U newuser - postgres=# create database reporting; + ``` + psql postgres + CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; + ALTER ROLE newuser CREATEDB; + \q + psql postgres -U newuser + postgres=# create database reporting; + ``` #### プライマリ永続データストアのインストールと設定 @@ -89,9 +97,11 @@ Cassandraをインストールし、レプリケーションを使用して`ripp レプリケーション係数は3が推奨されますが、ローカルで実行する場合はレプリケーションは不要なので、`replication_factor`を1に設定することができます。 - $ cqlsh [host] [port] - > CREATE KEYSPACE `rippled` WITH REPLICATION = - {'class' : 'SimpleStrategy', 'replication_factor' : 1 }; +``` +$ cqlsh [host] [port] +> CREATE KEYSPACE `rippled` WITH REPLICATION = +{'class' : 'SimpleStrategy', 'replication_factor' : 1 }; +``` **NuDB** @@ -104,29 +114,30 @@ NuDBは`rippled`ビルドセットアップの一部としてインストール 1. [UbuntuまたはmacOS](https://github.com/XRPLF/rippled/blob/release/BUILD.md)のレポートモード用に`rippled`をビルド。 - + {% tabs %} - *Linux* + ```{% label="Linux" %} + wget https://github.com/Kitware/CMake/releases/download/v3.16.3/cmake-3.16.3-Linux-x86_64.sh + sudo sh cmake-3.16.3-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir + cmake -B build -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug + cmake --build build --parallel $(nproc) + ``` - wget https://github.com/Kitware/CMake/releases/download/v3.16.3/cmake-3.16.3-Linux-x86_64.sh - sudo sh cmake-3.16.3-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir - cmake -B build -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug - cmake --build build --parallel $(nproc) + ```{% label="macOS" %} + cmake -B build -G "Unix Makefiles" -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug + cmake --build build --parallel $(nproc) + ``` - - *macOS* - - cmake -B build -G "Unix Makefiles" -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug - cmake --build build --parallel $(nproc) - - + {% /tabs %} 2. レポートモードで`rippled`を実行するための設定ファイルを作成します。 設定ファイル例`rippled-example.cfg`をコピーして、非rootユーザで`rippled`を実行できる場所に`rippled-reporting-mode.cfg`として保存してください。例えば - mkdir -p $HOME/.config/ripple - cp /cfg/rippled-example.cfg $HOME/.config/ripple/rippled-reporting-mode.cfg + ``` + mkdir -p $HOME/.config/ripple + cp /cfg/rippled-example.cfg $HOME/.config/ripple/rippled-reporting-mode.cfg + ``` 3. rippled-reporting-mode.cfgを編集して必要なファイルパスを設定してください。あなたが`rippled`を実行する予定のユーザは、ここで指定したすべてのパスに書き込み権限を持っている必要があります。 @@ -142,75 +153,89 @@ NuDBは`rippled`ビルドセットアップの一部としてインストール 1. `[reporting]`スタンザのコメントを外すか、新しいスタンザを追加してください: - [reporting] - etl_source - read_only=0 + ``` + [reporting] + etl_source + read_only=0 + ``` 2. データを抽出する`rippled`ソース(ETLソース)をリストアップします。これらの`rippled`サーバはgRPCが有効になっている必要があります。 注記: レポートモードはP2Pネットワークに接続しないため、データがネットワークのコンセンサスレジャーと実際に一致しているかどうかを検証できないため、信頼できるサーバだけを含めるようにしてください。 - [etl_source] - source_grpc_port=50051 - source_ws_port=6006 - source_ip=127.0.0.1 + ``` + [etl_source] + source_grpc_port=50051 + source_ws_port=6006 + source_ip=127.0.0.1 + ``` 5. データベースの設定 1. `[ledger_tx_tables]`にPostgres DBを指定します。 - [ledger_tx_tables] - conninfo = postgres://newuser:password@127.0.0.1/reporting - use_tx_tables=1 + ``` + [ledger_tx_tables] + conninfo = postgres://newuser:password@127.0.0.1/reporting + use_tx_tables=1 + ``` 2. `[node_db]` にデータベースを指定します。 - + {% tabs %} - *NuDB* + ```{% label="NuDB" %} + [node_db] + type=NuDB + path=/home/ubuntu/ripple/ - [node_db] - type=NuDB - path=/home/ubuntu/ripple/ + [ledger_history] + 1000000 + ``` - [ledger_history] - 1000000 + ```{% label="Cassandra" %} + [node_db] + type=Cassandra - *Cassandra* + [ledger_history] + 1000000 + ``` - [node_db] - type=Cassandra - - [ledger_history] - 1000000 - - + {% /tabs %} 6. `rippled`の設定を変更してポートを開放してください。 1. パブリックWebSocketのポートを開きます。 - [port_ws_admin_local] - port = 6006 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = ws + ``` + [port_ws_admin_local] + port = 6006 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = ws + ``` 2. ポートを開きます。 - [port_grpc] - port = 60051 - ip = 0.0.0.0 + ``` + [port_grpc] + port = 60051 + ip = 0.0.0.0 + ``` 3. レポートシステムのIPに安全なゲートウェイを追加します。 - secure_gateway = 127.0.0.1 + ``` + secure_gateway = 127.0.0.1 + ``` 7. レポートモードで`rippled`を実行します。 - ./rippled --conf /home/ubuntu/.config/ripple/rippled-reporting-example.cfg + ``` + ./rippled --conf /home/ubuntu/.config/ripple/rippled-reporting-example.cfg + ``` ### 予想される結果 @@ -280,22 +305,22 @@ Loading: "/home/ubuntu/.config/ripple/rippled-reporting-example.cfg" 2021-Dec-09 21:31:53.291048 UTC NetworkOPs:NFO STATE->full 2021-Dec-09 21:31:53.291192 UTC Application:FTL Startup RPC: { - "command" : "log_level", - "severity" : "debug" + "command" : "log_level", + "severity" : "debug" } 2021-Dec-09 21:31:53.291347 UTC RPCHandler:DBG RPC call log_level completed in 2.2e-08seconds 2021-Dec-09 21:31:53.291440 UTC Application:FTL Result: { - "warnings" : - [ - - { - "id" : 1004, - "message" : "This is a reporting server. The default behavior of a reporting server is to only return validated data. If you are looking for not yet validated data, include \"ledger_index : current\" in your request, which will cause this server to forward the request to a p2p node. If the forward is successful the response will include \"forwarded\" : \"true\"" - } - ] + "warnings" : + [ + + { + "id" : 1004, + "message" : "This is a reporting server. The default behavior of a reporting server is to only return validated data. If you are looking for not yet validated data, include \"ledger_index : current\" in your request, which will cause this server to forward the request to a p2p node. If the forward is successful the response will include \"forwarded\" : \"true\"" + } + ] } @@ -332,7 +357,7 @@ Loading: "/home/ubuntu/.config/ripple/rippled-reporting-example.cfg" 最後に、P2Pモードサーバはごく最近の履歴しか保持する必要がありませんが、レポートモードサーバは長期間の履歴を保持します。 -`rippled`を実行するためのシステム要件については、[`rippled`のシステム要件](system-requirements.html)をご覧ください。 +`rippled`を実行するためのシステム要件については、[`rippled`のシステム要件](system-requirements.md)をご覧ください。 **PostgreSQLまたはCassandraデータベースから送られてくるデータの信頼性を確認するにはどうすればよいですか。** @@ -342,7 +367,4 @@ Loading: "/home/ubuntu/.config/ripple/rippled-reporting-example.cfg" 技術的には、データベースに直接アクセスすることも*可能*です。しかし、データはバイナリーBlobとして保存されており、その中のデータにアクセスするにはBlobをデコードしなければなりません。このため、従来のSQLクエリは、データの個々のフィールドを検索したりフィルタリングしたりすることができず、あまり役に立ちません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/capacity-planning.md b/content/@i18n/ja/infrastructure/installation/capacity-planning.md index 2be8da50cc..504c06027b 100644 --- a/content/@i18n/ja/infrastructure/installation/capacity-planning.md +++ b/content/@i18n/ja/infrastructure/installation/capacity-planning.md @@ -10,7 +10,7 @@ labels: このドキュメントでは、XRP Ledgerサーバーのパフォーマンスを調整・最適化するために使用できる、構成、ネットワーク、ハードウェアに関する推奨事項を説明しています。 -XRP Ledgerのサーバーの負荷は、複数の要因によって変化します。ひとつは、ネットワーク内の活動です。共有レジャーのデータサイズや送信されるトランザクションの総量は、グローバルなXRP Ledgerコミュニティ全体の有機的な要因に基づいて変化します。もうひとつの要因は、APIの使用状況です。異なる種類の[APIコール](http-websocket-apis.html)は、サーバーに異なる負荷をかけます。パブリックなAPIを提供しているサーバーと、特定の統合ソフトウェアにプライベートなAPIを提供しているサーバー、あるいはAPIを全く提供していないサーバーとでは、パフォーマンス特性が大きく異なります。 +XRP Ledgerのサーバーの負荷は、複数の要因によって変化します。ひとつは、ネットワーク内の活動です。共有レジャーのデータサイズや送信されるトランザクションの総量は、グローバルなXRP Ledgerコミュニティ全体の有機的な要因に基づいて変化します。もうひとつの要因は、APIの使用状況です。異なる種類の[APIコール](../../references/http-websocket-apis/index.md)は、サーバーに異なる負荷をかけます。パブリックなAPIを提供しているサーバーと、特定の統合ソフトウェアにプライベートなAPIを提供しているサーバー、あるいはAPIを全く提供していないサーバーとでは、パフォーマンス特性が大きく異なります。 これらの要素を考慮して、構成するサーバーが現在および将来のXRP Ledgerネットワークの活動を処理する能力を持っていることを確認する必要があります。 @@ -25,7 +25,7 @@ XRP Ledgerのサーバーの負荷は、複数の要因によって変化しま ### ノードサイズ -`[node_size]`パラメータは、サーバのハードウェア全体の容量を反映する必要があります。このパラメータを省略すると、システムの総RAMとCPUスレッド数に基づいて、サーバが自動的に適切な設定を選択します。システムのRAMやスレッドの一部を他のソフトウェア用に確保する必要がある場合や、オペレーティングシステムから報告される量が不正確な場合など、自動設定がシステムに合わない場合は、この値を明示的に設定できます。(これは一部のコンテナで発生する可能性があります。) [更新: rippled 1.8.1][]. +`[node_size]`パラメータは、サーバのハードウェア全体の容量を反映する必要があります。このパラメータを省略すると、システムの総RAMとCPUスレッド数に基づいて、サーバが自動的に適切な設定を選択します。システムのRAMやスレッドの一部を他のソフトウェア用に確保する必要がある場合や、オペレーティングシステムから報告される量が不正確な場合など、自動設定がシステムに合わない場合は、この値を明示的に設定できます。(これは一部のコンテナで発生する可能性があります。) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}更新: rippled 1.8.1{% /badge %}. 一般的には、使用可能なRAMがサポートする最大のノードサイズを常に使用する必要があります。推奨される設定については、以下の表を参照してください。 @@ -43,7 +43,7 @@ XRP Ledgerのサーバーの負荷は、複数の要因によって変化しま | 32GB | `large` | **非推奨** 実際には、この設定はほとんどの状況で `huge` よりもパフォーマンスが低下します。安定性を求めるのであれば、常に `huge` を使用してください。 | | 64GB | `huge` | 実稼働サーバーに推奨。 | -`node_size`パラメーターを無効な値に設定すると、[サーバーは起動しません](server-wont-start.html#node_sizeの値が正しくない)。 +`node_size`パラメーターを無効な値に設定すると、[サーバーは起動しません](../troubleshooting/server-wont-start.md#node_sizeの値が正しくない)。 ### ノードDBタイプ @@ -120,7 +120,7 @@ XRP Ledgerネットワークの各サーバーは、ネットワークのすべ ### 推奨事項 -推奨されるハードウェアのスペックをまとめたものは、[システム要件](system-requirements.html)をご覧ください +推奨されるハードウェアのスペックをまとめたものは、[システム要件](system-requirements.md)をご覧ください #### CPU使用率および仮想化 @@ -137,9 +137,9 @@ XRP Ledgerネットワークの各サーバーは、ネットワークのすべ #### ディスク容量 -`[node_db]`節はサーバの_レジャーの保存容量_を制御し、[レジャーの履歴](ledger-history.html)を保持します。必要なディスク容量は、どの程度の履歴をローカルに保存するかによって決まります。XRP Ledgerサーバーは、コンセンサス・プロセスを追跡し、レジャーの完全な状態を報告するために、最新の256以上のレジャーバージョンを保存する必要はありません。ただし、サーバーで照会できる実行済みトランザクションは、ローカルで保存されたレジャーバージョンにあるものだけです。`[node_db]`の`path`を設定して、レジャーの保存場所を決めてください。 +`[node_db]`節はサーバの_レジャーの保存容量_を制御し、[レジャーの履歴](../../concepts/networks-and-servers/ledger-history.md)を保持します。必要なディスク容量は、どの程度の履歴をローカルに保存するかによって決まります。XRP Ledgerサーバーは、コンセンサス・プロセスを追跡し、レジャーの完全な状態を報告するために、最新の256以上のレジャーバージョンを保存する必要はありません。ただし、サーバーで照会できる実行済みトランザクションは、ローカルで保存されたレジャーバージョンにあるものだけです。`[node_db]`の`path`を設定して、レジャーの保存場所を決めてください。 -保持するデータ量は、[オンライン削除](online-deletion.html)で管理できます。デフォルトの構成ファイルの設定では、サーバーは最新の2000のレジャーバージョンを保持します。オンライン削除を使用しないと、サーバーのディスク要件が際限なく増え続けます。 +保持するデータ量は、[オンライン削除](../configuration/data-retention/online-deletion.md)で管理できます。デフォルトの構成ファイルの設定では、サーバーは最新の2000のレジャーバージョンを保持します。オンライン削除を使用しないと、サーバーのディスク要件が際限なく増え続けます。 以下のテーブルは、本書の執筆時点(2018年12月13日)における、様々な履歴量の要件をまとめたものです。 @@ -158,18 +158,18 @@ XRP Ledgerネットワークの各サーバーは、ネットワークのすべ `online_delete`設定は、古い履歴の削除後に保持するレジャーバージョンの数を指定するものです。オンライン削除が実行される直前レジャーの最大数の2倍を格納できるほどの十分な容量を計画する必要があります。 -保持する履歴量の変更方法については、[オンライン削除の設定](configure-online-deletion.html)を参照してください。 +保持する履歴量の変更方法については、[オンライン削除の設定](../configuration/data-retention/configure-online-deletion.md)を参照してください。 `[database_path]`では、個別のデータベースを設定します。これらには、トランザクションデータといくつかのランタイム設定が含まれます。 -一般的なルールとして、実行されていない`rippled`サーバーのデータベースファイル(レジャーストアとデータベースの両方)を安全に削除することができます。これにより、サーバーに保存されているレジャーの履歴はすべて消去されますが、そのデータをネットワークから再取得することができます。ただし、`[database_path]`にある`wallet.db`ファイルを削除すると、[Amendment 投票](configure-amendment-voting.html)や[ピアリザベーション](use-a-peer-reservation.html)などのランタイムの設定変更を手動で再適用しなければなりません。 +一般的なルールとして、実行されていない`rippled`サーバーのデータベースファイル(レジャーストアとデータベースの両方)を安全に削除することができます。これにより、サーバーに保存されているレジャーの履歴はすべて消去されますが、そのデータをネットワークから再取得することができます。ただし、`[database_path]`にある`wallet.db`ファイルを削除すると、[Amendment 投票](../configuration/configure-amendment-voting.md)や[ピアリザベーション](../configuration/peering/use-a-peer-reservation.md)などのランタイムの設定変更を手動で再適用しなければなりません。 -レジャー履歴を格納したくても、全履歴を格納するための十分な容量がない場合には、[履歴シャーディング](history-sharding.html)機能を使用して個別の共有ストアにランダムな範囲のレジャーを格納できます。履歴シャーディングは、`[shard_db]`節で構成されます。 +レジャー履歴を格納したくても、全履歴を格納するための十分な容量がない場合には、[履歴シャーディング](../configuration/data-retention/history-sharding.md)機能を使用して個別の共有ストアにランダムな範囲のレジャーを格納できます。履歴シャーディングは、`[shard_db]`節で構成されます。 ##### Amazon Web Services -Amazon Web Services(AWS)は、人気のある仮想化ホスト環境です。AWSで`rippled`を実行することはできますが、Elastic Block Storage(EBS)は使用しないでください。詳しくは[システム要件](system-requirements.html)をご覧ください。 +Amazon Web Services(AWS)は、人気のある仮想化ホスト環境です。AWSで`rippled`を実行することはできますが、Elastic Block Storage(EBS)は使用しないでください。詳しくは[システム要件](system-requirements.md)をご覧ください。 AWSインスタンスストア(`ephemeral`ストレージ)では適切なパフォーマンスが提供されます。しかし、インスタンスを開始/停止するときなど、いくつかの状況でデータが失われる可能性があります。しかし、個々のXRP Ledgerサーバーは、通常、失われたレジャーの履歴を他サーバーから再取得することができるので、これは許容範囲内でしょう。設定内容は、より信頼性の高いストレージに保存する必要があります。 @@ -181,7 +181,7 @@ AWSインスタンスストア(`ephemeral`ストレージ)では適切なパ #### ネットワーク -企業や企業レベルのデータセンターでは、XRP Ledgerサーバーの稼働をサポートするために、非常に大きなネットワーク帯域幅が必要です。実際に必要な帯域幅は、ネットワークにおける現在のトランザクション量に応じて大きく変わります。サーバーの動作([レジャー履歴](ledger-history.html)の埋め戻しなど)もネットワークに影響します。一般的な家庭用インターネットでは、信頼性の高いサーバーを稼働させるには不十分です。 +企業や企業レベルのデータセンターでは、XRP Ledgerサーバーの稼働をサポートするために、非常に大きなネットワーク帯域幅が必要です。実際に必要な帯域幅は、ネットワークにおける現在のトランザクション量に応じて大きく変わります。サーバーの動作([レジャー履歴](../../concepts/networks-and-servers/ledger-history.md)の埋め戻しなど)もネットワークに影響します。一般的な家庭用インターネットでは、信頼性の高いサーバーを稼働させるには不十分です。 トランザクション量が非常に多い時期には、サーバーが100メガビット/秒のネットワークリンクを完全に飽和してしまうという報告を受けた事業者もあります。そのため、信頼性の高いパフォーマンスを実現するためには、ギガビット・ネットワーク・インターフェースが必要となります。 @@ -194,25 +194,22 @@ AWSインスタンスストア(`ephemeral`ストレージ)では適切なパ | 履歴レジャーとトランザクションレポートを提供する | 100Mbps以上の転送 | | `rippled`の起動 | 20Mbpsの受信 | -[P2P通信で圧縮を有効にする](enable-link-compression.html)ことで帯域幅を節約することができますが、その代償としてCPU使用率が高くなります。多くのハードウェア構成では、通常の使用時にはCPUの容量に余裕があるため、ネットワークの帯域幅が限られている場合には、この方法が経済的な選択肢となります。 +[P2P通信で圧縮を有効にする](../configuration/peering/enable-link-compression.md)ことで帯域幅を節約することができますが、その代償としてCPU使用率が高くなります。多くのハードウェア構成では、通常の使用時にはCPUの容量に余裕があるため、ネットワークの帯域幅が限られている場合には、この方法が経済的な選択肢となります。 ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [`rippled`の構成](configure-rippled.html) - - [オンライ削除の設定](configure-online-deletion.html) - サーバーが一度に保持するレジャー履歴のバージョン数を調整します。 - - [`rippled`のトラブルシューティング](troubleshoot-the-rippled-server.html) + - [`rippled`の構成](../configuration/index.md) + - [オンライ削除の設定](../configuration/data-retention/configure-online-deletion.md) - サーバーが一度に保持するレジャー履歴のバージョン数を調整します。 + - [`rippled`のトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [logrotate メソッド][] - サーバーのデバッグログを閉じたり再開したりして、標準的なツールでローテーション可能にします。 - [server_info メソッド][] - 同期の状態や、ディスク上で利用可能なレジャー履歴のバージョン数など、サーバーに関する一般的な情報を取得します。 - [get_counts メソッド][] - 追加のサーバの正常情報、特にRAM内に様々な種類のオブジェクトをいくつ保持しているかを取得します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/index.md b/content/@i18n/ja/infrastructure/installation/index.md index cdc101b6cb..1e92e394de 100644 --- a/content/@i18n/ja/infrastructure/installation/index.md +++ b/content/@i18n/ja/infrastructure/installation/index.md @@ -1,9 +1,13 @@ --- html: install-rippled.html parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: rippledサーバーをインストールして更新します。 --- # rippledのインストール -rippledサーバーをインストールして更新します。 \ No newline at end of file +rippledサーバーをインストールして更新します。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/installation/install-clio-on-ubuntu.md b/content/@i18n/ja/infrastructure/installation/install-clio-on-ubuntu.md index 0321c6b549..dbae47f375 100644 --- a/content/@i18n/ja/infrastructure/installation/install-clio-on-ubuntu.md +++ b/content/@i18n/ja/infrastructure/installation/install-clio-on-ubuntu.md @@ -16,7 +16,7 @@ labels: Clioをインストールする前に、以下の条件を満たしている必要があります。 -- お使いのシステムが[システム要件](system-requirements.html)を満たしていることを確認してください。 +- お使いのシステムが[システム要件](system-requirements.md)を満たしていることを確認してください。 **Note:** Clioのシステム要件は`rippled`サーバと同じですが、同じ量のレジャー履歴を保存するのに必要なディスク容量はClioの方が少なくなります。 @@ -26,69 +26,91 @@ Clioをインストールする前に、以下の条件を満たしている必 - Clioデータを永続化する場合は、DockerコンテナでCassandraを実行し、Clioデータを格納する空のディレクトリを指定します: - docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ - cassandra cassandra:4.0.4 + ``` + docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ + cassandra cassandra:4.0.4 + ``` - Clioのデータを永続化したくない場合は、以下のコマンドを実行してください。 - docker run --rm -it --network=host --name cassandra cassandra:4.0.4 + ``` + docker run --rm -it --network=host --name cassandra cassandra:4.0.4 + ``` -- P2Pモードでは1つ以上の`rippled`サーバにgRPCでアクセスする必要があります。この`rippled`サーバはローカルでもリモートでも構いませんが、信頼する必要があります。最も確実な方法は、[`rippled`を自分でインストール](install-rippled.html)することです。 +- P2Pモードでは1つ以上の`rippled`サーバにgRPCでアクセスする必要があります。この`rippled`サーバはローカルでもリモートでも構いませんが、信頼する必要があります。最も確実な方法は、[`rippled`を自分でインストール](index.md)することです。 ## インストールの手順 1. リポジトリを更新します。 - sudo apt -y update + ``` + sudo apt -y update + ``` **ヒント:** すでに同じマシンに`rippled`の最新版をインストールしている場合、Rippleのパッケージリポジトリと署名キーを追加する以下のステップは省略できます。ステップ5の"Rippleリポジトリを取得します。"から再開します。 2. ユーティリティをインストールします。 - sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` 3. Rippleのパッケージ署名用のGPGキーを、信頼できるキーのリストに追加します。 - sudo mkdir /usr/local/share/keyrings/ - wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg - sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` + sudo mkdir /usr/local/share/keyrings/ + wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg + sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` 4. 追加したキーのフィンガープリントを確認します。 - gpg /usr/local/share/keyrings/ripple-key.gpg + ``` + gpg /usr/local/share/keyrings/ripple-key.gpg + ``` 出力に、次のようなRipple用のエントリーが含まれていることを確認してください。 - gpg: WARNING: no command supplied. Trying to guess what you mean ... - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` + gpg: WARNING: no command supplied. Trying to guess what you mean ... + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` 特に、フィンガープリントが一致することを確認してください。(上記の例では、フィンガープリントは三行目の`C001`で始まる部分です。) 4. 使用しているオペレーティングシステムのバージョンに対応する適切なRippleリポジトリを追加します。 - echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` + echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` 上記の例は、**Ubuntu 20.04 Focal Fossa**向けのものです。 5. Rippleリポジトリを取得します。 - sudo apt -y update + ``` + sudo apt -y update + ``` 6. Clioソフトウェアパッケージをインストールします。オプションは2つあります。 - 同じマシン上で`rippled`を実行するには、両方のサーバーをセットアップする`clio`パッケージをインストールしてください: - sudo apt -y install clio + ``` + sudo apt -y install clio + ``` - Clio を`rippled`とは別のマシンで実行するには、Clioのみをセットアップする`clio-server`パッケージをインストールしてください: - sudo apt -y install clio-server + ``` + sudo apt -y install clio-server + ``` 7. 別のマシンで`rippled`を実行している場合は、Clioの設定ファイルを修正して、そちらを指すようにします。`clio`パッケージを使って同じマシンに両方をインストールした場合は、この手順を省略できます。 @@ -96,14 +118,16 @@ Clioをインストールする前に、以下の条件を満たしている必 1. Clioサーバの設定ファイルを編集して`rippled`サーバの接続情報を変更します。パッケージはこのファイルを`/opt/clio/etc/config.json`にインストールします。 - "etl_sources": - [ - { - "ip":"127.0.0.1", - "ws_port":"6006", - "grpc_port":"50051" - } - ] + ``` + "etl_sources": + [ + { + "ip":"127.0.0.1", + "ws_port":"6006", + "grpc_port":"50051" + } + ] + ``` 以下の情報が含まれます。 @@ -119,28 +143,36 @@ Clioをインストールする前に、以下の条件を満たしている必 * 暗号化されていないWebSocket接続を受け付けるポートを開きます。 - [port_ws_public] - port = 6005 - ip = 0.0.0.0 - protocol = ws + ``` + [port_ws_public] + port = 6005 + ip = 0.0.0.0 + protocol = ws + ``` * gRPCリクエストを処理するポートを開き、`secure_gateway`項目にClioサーバのIPを指定します。 - [port_grpc] - port = 50051 - ip = 0.0.0.0 - secure_gateway = 127.0.0.1 + ``` + [port_grpc] + port = 50051 + ip = 0.0.0.0 + secure_gateway = 127.0.0.1 + ``` **ヒント:** もし`rippled`と同じマシンでClioを実行していない場合は、サンプルの`secure_gateway`を変更して、ClioサーバのIPアドレスを使用してください。 8. Clioのsystemdサービスを有効にして起動します。 - sudo systemctl enable clio + ``` + sudo systemctl enable clio + ``` 9. `rippled`サーバとClioサーバを起動します。 - sudo systemctl start rippled - sudo systemctl start clio + ``` + sudo systemctl start rippled + sudo systemctl start clio + ``` 新しいデータベースで始める場合、Clioは完全なレジャーをダウンロードする必要があります。これには時間がかかります。両方のサーバを初めて起動する場合、Clioはレジャーを抽出する前に`rippled`の同期を待つため、さらに時間がかかることがあります。 @@ -151,4 +183,4 @@ Clioをインストールする前に、以下の条件を満たしている必 ## 関連項目 - **コンセプト:** - - [Clioサーバ](the-clio-server.html) + - [Clioサーバ](../../concepts/networks-and-servers/the-clio-server.md) diff --git a/content/@i18n/ja/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md b/content/@i18n/ja/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md index 704913144c..e0cce9cb68 100644 --- a/content/@i18n/ja/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md +++ b/content/@i18n/ja/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md @@ -14,67 +14,75 @@ labels: ## 前提条件 -`rippled`をインストールする前に、[システム要件](system-requirements.html)を満たす必要があります。 +`rippled`をインストールする前に、[システム要件](system-requirements.md)を満たす必要があります。 ## インストール手順 1. Ripple RPMリポジトリをインストールします。 - $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ - enabled=1 - gpgcheck=0 - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - repo_gpgcheck=1 - REPOFILE + ``` + $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ + enabled=1 + gpgcheck=0 + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + repo_gpgcheck=1 + REPOFILE + ``` 2. 最新のrepoのアップデートを取得します。 - $ sudo yum -y update + ``` + $ sudo yum -y update + ``` 3. 新しい`rippled`パッケージをインストールします。 - $ sudo yum install rippled + ``` + $ sudo yum install rippled + ``` バージョン1.3.1では、構成ファイル(`rippled.cfg`および`validators.txt`)を変更する必要はありません。このアップデート手順では、既存の構成ファイルが現在のまま残ります。 4. systemdユニットファイルを再度読み込みます。 - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 5. 起動時に開始するように、`rippled`サービスを設定します。 - $ sudo systemctl enable rippled.service + ``` + $ sudo systemctl enable rippled.service + ``` 6. `rippled`サービスを開始します。 - $ sudo systemctl start rippled.service + ``` + $ sudo systemctl start rippled.service + ``` ## 次のステップ -{% include '_snippets/post-rippled-install.ja.md' %} +{% partial file="/_snippets/post-rippled-install.md" /%} ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [rippledの構成](configure-rippled.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) - - [rippled APIの使用開始](get-started-using-http-websocket-apis.html) + - [rippledの構成](../configuration/index.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [rippled APIの使用開始](../../tutorials/get-started/get-started-using-http-websocket-apis.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/install-rippled-on-ubuntu.md b/content/@i18n/ja/infrastructure/installation/install-rippled-on-ubuntu.md index 01a6bacbbd..5f727e04e9 100644 --- a/content/@i18n/ja/infrastructure/installation/install-rippled-on-ubuntu.md +++ b/content/@i18n/ja/infrastructure/installation/install-rippled-on-ubuntu.md @@ -14,43 +14,55 @@ labels: ## 前提条件 -`rippled`をインストールする前に、[システム要件](system-requirements.html)を満たす必要があります。 +`rippled`をインストールする前に、[システム要件](system-requirements.md)を満たす必要があります。 ## インストール手順 1. リポジトリを更新します。 - sudo apt -y update + ``` + sudo apt -y update + ``` 2. ユーティリティをインストールします。 - sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` 3. Rippleのパッケージ署名用のGPGキーを、信頼できるキーのリストに追加します。 - sudo mkdir /usr/local/share/keyrings/ - wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg - sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` + sudo mkdir /usr/local/share/keyrings/ + wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg + sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` 4. 追加したキーのフィンガープリントを確認します。 - gpg /usr/local/share/keyrings/ripple-key.gpg + ``` + gpg /usr/local/share/keyrings/ripple-key.gpg + ``` 出力に、次のようなRipple用のエントリーが含まれていることを確認してください。 - gpg: WARNING: no command supplied. Trying to guess what you mean ... - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` + gpg: WARNING: no command supplied. Trying to guess what you mean ... + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` 特に、フィンガープリントが一致することを確認してください。(上記の例では、フィンガープリントは三行目の`C001`で始まる部分です。) 5. 使用しているオペレーティングシステムのバージョンに対応する適切なRippleリポジトリを追加します。 - echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` + echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` 上記の例は、**Ubuntu 20.04 Focal Fossa**向けのものです。。その他のオペレーティングシステムについては、`focal`という単語を次のいずれかに置き換えます。 @@ -68,42 +80,46 @@ labels: 6. Rippleリポジトリを取得します。 - sudo apt -y update + ``` + sudo apt -y update + ``` 7. `rippled`ソフトウェアパッケージをインストールします。 - sudo apt -y install rippled + ``` + sudo apt -y install rippled + ``` 8. `rippled`サービスのステータスをチェックします。 - systemctl status rippled.service + ``` + systemctl status rippled.service + ``` `rippled`サービスが自動的に開始します。開始しない場合は、手動で開始できます。 - sudo systemctl start rippled.service + ``` + sudo systemctl start rippled.service + ``` ## 次のステップ -{% include '_snippets/post-rippled-install.ja.md' %} - +{% partial file="/_snippets/post-rippled-install.md" /%} + ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [rippledの構成](configure-rippled.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) - - [rippled APIの使用開始](get-started-using-http-websocket-apis.html) + - [rippledの構成](../configuration/index.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [rippled APIの使用開始](../../tutorials/get-started/get-started-using-http-websocket-apis.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/rippled-1-3-migration-instructions.md b/content/@i18n/ja/infrastructure/installation/rippled-1-3-migration-instructions.md index 536f6098c9..e1d6b47bb7 100644 --- a/content/@i18n/ja/infrastructure/installation/rippled-1-3-migration-instructions.md +++ b/content/@i18n/ja/infrastructure/installation/rippled-1-3-migration-instructions.md @@ -12,56 +12,68 @@ blurb: rippled 1.2.4以前のバージョンからrippled v1.3以降に移行す - [CentOSまたはRed Hat Enterprise Linux(RHEL)](#centosまたはred-hat-enterprise-linuxrhelでの移行) - [Ubuntu Linux](#ubuntu-linuxでの移行) -その他のプラットフォームについては、ソースからコンパイルするためのアップデート手順を参照してください。([Ubuntu](build-run-rippled-ubuntu.html)、[macOS](build-run-rippled-macos.html)、または[Windows](https://github.com/XRPLF/rippled/tree/develop/Builds/VisualStudio2017)) +その他のプラットフォームについては、ソースからコンパイルするためのアップデート手順を参照してください。([Ubuntu](build-on-linux-mac-windows.md)、[macOS](build-on-linux-mac-windows.md)、または[Windows](https://github.com/XRPLF/rippled/tree/develop/Builds/VisualStudio2017)) ## CentOSまたはRed Hat Enterprise Linux(RHEL)での移行 -Rippleの公式RPMリポジトリとそれを使用するための手順が変更されました。[自動更新](update-rippled-automatically-on-linux.html)を有効にしている場合は、システムで移行が自動的に実行されます。以前のリポジトリから新しいリポジトリに手動で移行するには、以下の手順を実行します。 +Rippleの公式RPMリポジトリとそれを使用するための手順が変更されました。[自動更新](update-rippled-automatically-on-linux.md)を有効にしている場合は、システムで移行が自動的に実行されます。以前のリポジトリから新しいリポジトリに手動で移行するには、以下の手順を実行します。 1. `rippled`サーバーを停止します。 - $ sudo systemctl stop rippled.service + ``` + $ sudo systemctl stop rippled.service + ``` 2. 以前のRippleリポジトリパッケージを削除します。 - $ sudo rpm -e ripple-repo + ``` + $ sudo rpm -e ripple-repo + ``` `rippled-repo`パッケージは、現在**廃止予定**です。このパッケージはバージョン1.3.1に対応するために、最後にもう一度だけ更新されました。今後は、リポジトリに変更があれば、`ripple.repo`ファイルに手動で変更を加える必要があります。 3. Rippleの新しいyumリポジトリを追加します。 - $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ - enabled=1 - gpgcheck=0 - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - repo_gpgcheck=1 - REPOFILE + ``` + $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ + enabled=1 + gpgcheck=0 + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + repo_gpgcheck=1 + REPOFILE + ``` 4. 新しい`rippled`パッケージをインストールします。 - $ sudo yum install rippled + ``` + $ sudo yum install rippled + ``` バージョン1.3.1では、構成ファイル(`rippled.cfg`および`validators.txt`)を変更する必要はありません。このアップデート手順では、既存の構成ファイルが現在のまま残ります。 5. systemdユニットファイルを再度読み込みます。 - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 6. `rippled`サービスを開始します。 - $ sudo systemctl start rippled.service + ``` + $ sudo systemctl start rippled.service + ``` -**警告:** [自動更新](update-rippled-automatically-on-linux.html)を使用している場合、この移行プロセスを実行した後も自動更新が続きます。ただし、**`ripple-repo`パッケージは、現在は廃止予定**です。そのため、今後は、Rippleのリポジトリへの変更があれば、各自がrepoファイルを手動で更新する必要があります。 +**警告:** [自動更新](update-rippled-automatically-on-linux.md)を使用している場合、この移行プロセスを実行した後も自動更新が続きます。ただし、**`ripple-repo`パッケージは、現在は廃止予定**です。そのため、今後は、Rippleのリポジトリへの変更があれば、各自がrepoファイルを手動で更新する必要があります。 ## Ubuntu Linuxでの移行 -バージョン1.3より前では、Ubuntu Linuxに`rippled`をインストールする方法として、Alienを使用してRPMパッケージをインストールする方法がサポートされていました。`rippled`v1.3.1から、RippleはUbuntuおよびDebian Linux向けのネイティブパッケージを提供しており、これが推奨のインストール方法となります。すでにRPMパッケージをインストールしている場合は、[インストール手順](install-rippled-on-ubuntu.html)を実行して、パッケージをアップグレードし、ネイティブAPT(`.deb`)パッケージに切り替えます。 +バージョン1.3より前では、Ubuntu Linuxに`rippled`をインストールする方法として、Alienを使用してRPMパッケージをインストールする方法がサポートされていました。`rippled`v1.3.1から、RippleはUbuntuおよびDebian Linux向けのネイティブパッケージを提供しており、これが推奨のインストール方法となります。すでにRPMパッケージをインストールしている場合は、[インストール手順](install-rippled-on-ubuntu.md)を実行して、パッケージをアップグレードし、ネイティブAPT(`.deb`)パッケージに切り替えます。 構成ファイル(`/opt/ripple/etc/rippled.cfg`および`/opt/ripple/etc/validators.txt`)に変更を加えている場合は、インストール中に`apt`から、構成ファイルをパッケージからの最新バージョンで上書きするかどうかを尋ねられる場合があります。バージョン1.3では、構成ファイルに変更を加える必要はありません。そのため、既存の構成ファイルはそのまま維持できます。 @@ -69,43 +81,47 @@ Rippleの公式RPMリポジトリとそれを使用するための手順が変 1. systemdユニットファイルを再度読み込みます。 - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 2. `rippled`サービスを再起動します。 - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` 他のパッケージ用にAlienを使用する必要がなくなった場合は、必要に応じて、次の手順でAlienとその依存関係をアンインストールできます。 1. Alienをアンインストールします。 - $ sudo apt -y remove alien + ``` + $ sudo apt -y remove alien + ``` 2. 使用していない依存関係をアンインストールします。 - $ sudo apt -y autoremove + ``` + $ sudo apt -y autoremove + ``` ### 自動更新 -`rippled` v1.3パッケージには、UbuntuおよびDebian Linuxで動作する最新のauto-updateスクリプトが含まれています。詳細は、[Linuxでの`rippled`の自動更新](update-rippled-automatically-on-linux.html)を参照してください。 +`rippled` v1.3パッケージには、UbuntuおよびDebian Linuxで動作する最新のauto-updateスクリプトが含まれています。詳細は、[Linuxでの`rippled`の自動更新](update-rippled-automatically-on-linux.md)を参照してください。 ## 関連項目 - **[`rippled` v1.3.1リリースノート](https://github.com/XRPLF/rippled/releases/1.3.1)** - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [Linuxでの自動更新](update-rippled-automatically-on-linux.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) - - [rippled APIの使用開始](get-started-using-http-websocket-apis.html) + - [Linuxでの自動更新](update-rippled-automatically-on-linux.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [rippled APIの使用開始](../../tutorials/get-started/get-started-using-http-websocket-apis.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/system-requirements.md b/content/@i18n/ja/infrastructure/installation/system-requirements.md index 2dda87eb6e..3e8b05bd9b 100644 --- a/content/@i18n/ja/infrastructure/installation/system-requirements.md +++ b/content/@i18n/ja/infrastructure/installation/system-requirements.md @@ -21,7 +21,7 @@ labels: ## 最小仕様 -**注意:** この仕様では、確実に[メインネットとの同期を保つ](server-doesnt-sync.html)には不十分です。本番環境で使用する場合は、上記の推奨仕様に従ってください。 +**注意:** この仕様では、確実に[メインネットとの同期を保つ](../troubleshooting/server-doesnt-sync.md)には不十分です。本番環境で使用する場合は、上記の推奨仕様に従ってください。 テスト目的の場合、次の最小使用で一般的なハードウェア上でXRP Ledgerサーバを稼働させることができます。 @@ -43,19 +43,15 @@ labels: ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [容量の計画](capacity-planning.html) - 本番環境向けの推奨仕様および計画についての詳細情報 - - [`rippled`のインストール](install-rippled.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [容量の計画](capacity-planning.md) - 本番環境向けの推奨仕様および計画についての詳細情報 + - [`rippled`のインストール](index.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/update-rippled-automatically-on-linux.md b/content/@i18n/ja/infrastructure/installation/update-rippled-automatically-on-linux.md index 8f1a51ab35..74c0012f7d 100644 --- a/content/@i18n/ja/infrastructure/installation/update-rippled-automatically-on-linux.md +++ b/content/@i18n/ja/infrastructure/installation/update-rippled-automatically-on-linux.md @@ -10,21 +10,25 @@ labels: Linuxでは、`rippled`が1回限りの`cron`構成を使用して最新バージョンに自動的にアップグレードされるように設定できます。可能であれば自動更新を有効にしておくことが推奨されます。 -以下の手順では、`rippled`が[`yum`リポジトリから(CentOS/RedHat)](install-rippled-on-centos-rhel-with-yum.html)、または[`apt`(Ubuntu/Debian)を使用して](install-rippled-on-ubuntu.html)インストールされていることを前提としています。 +以下の手順では、`rippled`が[`yum`リポジトリから(CentOS/RedHat)](install-rippled-on-centos-rhel-with-yum.md)、または[`apt`(Ubuntu/Debian)を使用して](install-rippled-on-ubuntu.md)インストールされていることを前提としています。 自動更新を設定するには、以下の手順に従います。 -1. `/opt/ripple/etc/update-rippled-cron`が存在することを確認します。存在しない場合は、([CentOS/Red Hat](update-rippled-manually-on-centos-rhel.html)または[Ubuntu/Debian](update-rippled-manually-on-ubuntu.html)を)手動で更新します。 +1. `/opt/ripple/etc/update-rippled-cron`が存在することを確認します。存在しない場合は、([CentOS/Red Hat](update-rippled-manually-on-centos-rhel.md)または[Ubuntu/Debian](update-rippled-manually-on-ubuntu.md)を)手動で更新します。 2. `cron.d`フォルダーに、`/opt/ripple/etc/update-rippled-cron`構成ファイルへのsymlinkを作成します。 - $ sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ + ``` + $ sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ + ``` - このcron構成は、インストール済みの`rippled`パッケージを新版のリリース後1時間以内に更新するためのスクリプトを実行します。同時に更新を実行しているすべてのサーバーが停止する可能性を抑えるため、このスクリプトは`rippled`サービスを再起動しません。手動再起動しますまで、以前のバージョンを実行し続けます。[新規: rippled 1.8.1][] + このcron構成は、インストール済みの`rippled`パッケージを新版のリリース後1時間以内に更新するためのスクリプトを実行します。同時に更新を実行しているすべてのサーバーが停止する可能性を抑えるため、このスクリプトは`rippled`サービスを再起動しません。手動再起動しますまで、以前のバージョンを実行し続けます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} 3. 新しいリリースが公開された後、`rippled`サービスを手動再起動する。 - sudo systemctl restart rippled.service + ``` + sudo systemctl restart rippled.service + ``` @@ -34,18 +38,14 @@ Linuxでは、`rippled`が1回限りの`cron`構成を使用して最新バー ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [容量の計画](capacity-planning.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [容量の計画](capacity-planning.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-centos-rhel.md b/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-centos-rhel.md index 0cd553f4db..70715fca08 100644 --- a/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-centos-rhel.md +++ b/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-centos-rhel.md @@ -8,9 +8,9 @@ labels: --- # CentOS/Red Hatでの手動更新 -このページでは、CentOSまたはRed Hat Enterprise Linuxで最新リリースの`rippled`に手動で更新する手順を説明します。可能であれば手動更新ではなく[自動更新](update-rippled-automatically-on-linux.html)を設定することが推奨されます。 +このページでは、CentOSまたはRed Hat Enterprise Linuxで最新リリースの`rippled`に手動で更新する手順を説明します。可能であれば手動更新ではなく[自動更新](update-rippled-automatically-on-linux.md)を設定することが推奨されます。 -以下の手順は、[`rippled`がすでに`yum`リポジトリからインストール](install-rippled-on-centos-rhel-with-yum.html)されていることを前提としています。 +以下の手順は、[`rippled`がすでに`yum`リポジトリからインストール](install-rippled-on-centos-rhel-with-yum.md)されていることを前提としています。 **ヒント:** これらの手順をすべて一度に実行するには、`rippled`パッケージに含まれている`/opt/ripple/bin/update-rippled.sh`スクリプトを実行します。このスクリプトは`sudo`ユーザーとして実行する必要があります。 @@ -18,44 +18,48 @@ labels: 1. `rippled` 1.7.0にその以前のバージョンから更新する場合は、リポジトリを再度追加して、Rippleの更新されたGPGキーを取得します。それ以外の場合は、この手順をスキップしてください。 - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - REPOFILE + ``` + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + REPOFILE + ``` 1. 最新の`rippled`パッケージをダウンロードしてインストールします。 - sudo yum update rippled + ``` + sudo yum update rippled + ``` 2. `systemd`ユニットファイルを再度読み込みます。 - sudo systemctl daemon-reload + ``` + sudo systemctl daemon-reload + ``` 3. `rippled`サービスを再起動します。 - sudo systemctl restart rippled.service + ``` + sudo systemctl restart rippled.service + ``` ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-ubuntu.md b/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-ubuntu.md index 20a970603b..a2e4c74ec7 100644 --- a/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-ubuntu.md +++ b/content/@i18n/ja/infrastructure/installation/update-rippled-manually-on-ubuntu.md @@ -8,9 +8,9 @@ labels: --- # UbuntuまたはDebianでの手動更新 -このページでは、Ubuntu Linuxで最新リリースの`rippled`に手動で更新する手順を説明します。以下の手順は、[`rippled`がすでにネイティブパッケージを使用してインストール](install-rippled-on-ubuntu.html)されていることを前提としています。可能であれば手動更新ではなく[自動更新](update-rippled-automatically-on-linux.html)を設定することが推奨されます。 +このページでは、Ubuntu Linuxで最新リリースの`rippled`に手動で更新する手順を説明します。以下の手順は、[`rippled`がすでにネイティブパッケージを使用してインストール](install-rippled-on-ubuntu.md)されていることを前提としています。可能であれば手動更新ではなく[自動更新](update-rippled-automatically-on-linux.md)を設定することが推奨されます。 -**注意:** Ubuntu Linuxで`rippled` 1.2.xから1.3.1以降にアップグレードするには、[1.3.1への移行手順](rippled-1-3-migration-instructions.html)に従う必要があります。以下の手順は、バージョン1.3.1以降で提供されているネイティブAPTパッケージがインストール済みであることを前提としています。 +**注意:** Ubuntu Linuxで`rippled` 1.2.xから1.3.1以降にアップグレードするには、[1.3.1への移行手順](rippled-1-3-migration-instructions.md)に従う必要があります。以下の手順は、バージョン1.3.1以降で提供されているネイティブAPTパッケージがインストール済みであることを前提としています。 **ヒント:** これらの手順をすべて一度に実行するには、`rippled`パッケージに含まれている`/opt/ripple/bin/update-rippled.sh`スクリプトを実行します。`rippled`バージョン1.3.1以降、このスクリプトはUbuntuおよびDebianと互換性があります。このスクリプトは`sudo`ユーザーとして実行する必要があります。 @@ -18,36 +18,40 @@ labels: 1. リポジトリを更新します。 - $ sudo apt -y update + ``` + $ sudo apt -y update + ``` 2. `rippled`パッケージをアップグレードします。 - $ sudo apt -y upgrade rippled + ``` + $ sudo apt -y upgrade rippled + ``` 3. `systemd`ユニットファイルを再度読み込みます。 - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 4. `rippled`サービスを再起動します。 - $ sudo service rippled restart + ``` + $ sudo service rippled restart + ``` ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [コンセンサスについて](consensus.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md b/content/@i18n/ja/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md index 6fcb66a3b5..646d150214 100644 --- a/content/@i18n/ja/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md +++ b/content/@i18n/ja/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md @@ -13,12 +13,8 @@ labels: rippled ledger_accept --conf=/path/to/rippled.cfg ``` -スタンドアロンモードでは`rippled`は「閉鎖済み」レジャーバージョンと「検証済み」レジャーバージョンは区別されません。(これらのバージョンの違いについての詳細は、[XRP Ledgerコンセンサスプロセス](consensus.html)を参照してください。) +スタンドアロンモードでは`rippled`は「閉鎖済み」レジャーバージョンと「検証済み」レジャーバージョンは区別されません。(これらのバージョンの違いについての詳細は、[XRP Ledgerコンセンサスプロセス](../../concepts/consensus-protocol/index.md)を参照してください。) -`rippled`は、レジャーを閉鎖するたびに、確定的だが操作困難なアルゴリズムに基づいてトランザクションを並べ替えます。(トランザクションはネットワークの異なるパスに異なる順序で着信することがあるため、これはコンセンサスの重要な部分です。)スタンドアロンモードで`rippled`を使用するときには、別のアドレスからのトランザクションの結果に依存するトランザクションは、それを送信する前に、レジャーを手動で進める必要があります。このようにしないと、レジャーの閉鎖時に2つのトランザクションが逆の順序で実行される可能性があります。**注記:** 複数のトランザクションを1つのアドレスから1つのレジャーへ安全に送信できます。これは、同じアドレスからのトランザクションは`rippled`により[`Sequence`番号](transaction-common-fields.html)の昇順でソートされるためです。 +`rippled`は、レジャーを閉鎖するたびに、確定的だが操作困難なアルゴリズムに基づいてトランザクションを並べ替えます。(トランザクションはネットワークの異なるパスに異なる順序で着信することがあるため、これはコンセンサスの重要な部分です。)スタンドアロンモードで`rippled`を使用するときには、別のアドレスからのトランザクションの結果に依存するトランザクションは、それを送信する前に、レジャーを手動で進める必要があります。このようにしないと、レジャーの閉鎖時に2つのトランザクションが逆の順序で実行される可能性があります。**注記:** 複数のトランザクションを1つのアドレスから1つのレジャーへ安全に送信できます。これは、同じアドレスからのトランザクションは`rippled`により[`Sequence`番号](../../references/protocol/transactions/common-fields.md)の昇順でソートされるためです。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/testing-and-auditing/index.md b/content/@i18n/ja/infrastructure/testing-and-auditing/index.md index d1af9ee5c8..cb4d341788 100644 --- a/content/@i18n/ja/infrastructure/testing-and-auditing/index.md +++ b/content/@i18n/ja/infrastructure/testing-and-auditing/index.md @@ -1,9 +1,13 @@ --- html: use-stand-alone-mode.html parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: 新機能や実験用に、スタンドアロンモードを使用してフルネットワークで機能をテストできます。 --- # スタンドアロンモードでrippledをテスト -新機能や実験用に、スタンドアロンモードを使用してフルネットワークで機能をテストできます。 \ No newline at end of file +新機能や実験用に、スタンドアロンモードを使用してフルネットワークで機能をテストできます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md b/content/@i18n/ja/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md index fccff032e9..a6c7df45b5 100644 --- a/content/@i18n/ja/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md +++ b/content/@i18n/ja/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md @@ -7,9 +7,9 @@ labels: --- # スタンドアロンモードでの保存済みレジャーの読み込み -以前にディスクに保存していた[履歴レジャーバージョン](ledgers.html)を使用して、`rippled`サーバーを[スタンドアロンモード](rippled-server-modes.html)で起動できます。例えば、以前に`rippled`サーバーをXRP Ledgerのピアツーピアネットワーク([本番Mainnet、Testnet、Devnetなど](parallel-networks.html))と同期していた場合は、過去にサーバーで使用できていた任意のレジャーバージョンを読み込むことができます。 +以前にディスクに保存していた[履歴レジャーバージョン](../../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](amendments.html)を有効にした場合のトランザクションセットの処理の結果を比較したりすることができます。万が一、[XRP Ledgerのコンセンサスメカニズムに対する攻撃](consensus-protections.html)が発生して共有レジャーの状態に悪影響が及んでも、このプロセスを始めることで、バリデータのコンセンサスを以前の良好だったネットワークの状態に「ロールバック」できる可能性があります。 +履歴レジャーバージョンを読み込むことにより、レジャーを「リプレイ」して、トランザクションがネットワークのルールに従って処理されていたか検証したり、異なる[Amendment](../../concepts/networks-and-servers/amendments.md)を有効にした場合のトランザクションセットの処理の結果を比較したりすることができます。万が一、[XRP Ledgerのコンセンサスメカニズムに対する攻撃](../../concepts/consensus-protocol/consensus-protections.md)が発生して共有レジャーの状態に悪影響が及んでも、このプロセスを始めることで、バリデータのコンセンサスを以前の良好だったネットワークの状態に「ロールバック」できる可能性があります。 ## 1. `rippled`を通常の方法で起動します。 @@ -27,7 +27,7 @@ rippled --conf=/path/to/rippled.cfg * `proposing` * `validating` -詳細は、[考えられるサーバーの状態](rippled-server-states.html)を参照してください。 +詳細は、[考えられるサーバーの状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)を参照してください。 ## 3. (省略可)特定のレジャーバージョンを取得します。 @@ -59,11 +59,11 @@ rippled -a --load --conf=/path/to/rippled.cfg rippled -a --load --ledger 19860944 --conf=/path/to/rippled.cfg ``` -スタンドアロンモードで`rippled`を起動するときに使用可能なオプションについての詳細は、[コマンドラインの使用: スタンドアロンモードのオプション ](commandline-usage.html#スタンドアロンモードのオプション)を参照してください。 +スタンドアロンモードで`rippled`を起動するときに使用可能なオプションについての詳細は、[コマンドラインの使用: スタンドアロンモードのオプション ](../commandline-usage.md#スタンドアロンモードのオプション)を参照してください。 ## 6. レジャーを手動で進めます。 -スタンドアロンモードで`--ledger`を使用してレジャーを読み込むと、読み込まれたレジャーが現行のオープンレジャーになるので、[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.html)必要があります。 +スタンドアロンモードで`--ledger`を使用してレジャーを読み込むと、読み込まれたレジャーが現行のオープンレジャーになるので、[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.md)必要があります。 ``` rippled ledger_accept --conf=/path/to/rippled.cfg @@ -72,18 +72,15 @@ rippled ledger_accept --conf=/path/to/rippled.cfg ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [`rippled`サーバーのモード](rippled-server-modes.html) - - [コンセンサスについて](consensus.html) - - [Amendment](amendments.html) + - [`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) - **リファレンス:** - [ledger_acceptメソッド][] - [server_infoメソッド][] - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - **ユースケース:** - - [XRP Ledgerへのコードの提供](contribute-code.html) + - [XRP Ledgerへのコードの提供](../../resources/contribute-code/contribute-code.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/testing-and-auditing/run-private-network-with-docker.md b/content/@i18n/ja/infrastructure/testing-and-auditing/run-private-network-with-docker.md index 7f19f20951..b3c8fbbf50 100644 --- a/content/@i18n/ja/infrastructure/testing-and-auditing/run-private-network-with-docker.md +++ b/content/@i18n/ja/infrastructure/testing-and-auditing/run-private-network-with-docker.md @@ -27,7 +27,7 @@ labels: 次の図は、これからセットアップするコンテナ型プライベートネットワークの概要を示したものです。 -{{ include_svg("img/xrp-ledger-private-network-docker.svg", "図1:3つのノードのコンテナ型プライベートレジャーネットワークの構成図") }} +[{% inline-svg file="/img/xrp-ledger-private-network-docker.svg" /%}](/img/xrp-ledger-private-network-docker.svg "図1:3つのノードのコンテナ型プライベートレジャーネットワークの構成図") ## 前提条件 @@ -39,56 +39,72 @@ labels: 1. ターミナルで以下を実行し、`rippled`のDockerコンテナシェル内でコマンドを実行します: - docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest + ``` + docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest + ``` **注記:** Apple M1またはM2チップの場合は、代わりに`docker run -it --platform linux/amd64 --entrypoint /bin/bash xrpllabsofficial/xrpld:latest`を実行してください。 出力の例: - root@7732bd585b14:/# + ``` + root@7732bd585b14:/# + ``` 2. `create_keys`コマンドを使ってバリデータのキーペアを生成します。 - cd /opt/ripple/bin && - ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json + ``` + cd /opt/ripple/bin && + ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json + ``` 出力の例: - バリデータのキーは/PATH/TO/YOUR/validator--keys.jsonに保存されています。 + ``` + バリデータのキーは/PATH/TO/YOUR/validator--keys.jsonに保存されています。 - このファイルは安全に保管し、決して他人と共有しないようにしてください。 + このファイルは安全に保管し、決して他人と共有しないようにしてください。 + ``` **注意:** 本番環境やテスト環境では、常にベストプラクティスに従い、生成された鍵は暗号化されたUSBフラッシュドライブなど、安全でオフラインかつ復元可能な場所に保管してください。しかし、このチュートリアルはローカルの開発セットアップの例なので、鍵をコンピュータに保存するだけで十分です。 3. JSON出力から**public_key**の値をコピーし、コンピュータ上のテキストファイルに保存します。 - cat /PATH/TO/YOUR/validator--keys.json + ``` + cat /PATH/TO/YOUR/validator--keys.json + ``` 出力の例: - { - "key_type" : "ed25519", - "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", - "revoked" : false, - "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", - "token_sequence" : 0 - } + ``` + { + "key_type" : "ed25519", + "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", + "revoked" : false, + "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", + "token_sequence" : 0 + } + ``` 4. `create_token`コマンドを使ってバリデータトークンを作成します。 - ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json + ``` + ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json + ``` 出力から次のようなトークンの値をコピーし、コンピュータ上のテキストファイルに保存します。 - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` 5. 残りのバリデータノードについても**2-4**の手順を繰り返します。すべてのバリデータのキーとトークンを生成したら、ターミナルで`exit`と入力してDockerコンテナを終了します。 @@ -102,17 +118,21 @@ labels: コンピュータに、プライベートネットワーク内のすべてのノードのディレクトリと、それぞれの設定フォルダを作成します。 - xrpl-private-network/ - ├── validator_1/ - │ └── config - ├── validator_2/ - │ └── config - └── validator_3/ - └── config +``` +xrpl-private-network/ + ├── validator_1/ + │ └── config + ├── validator_2/ + │ └── config + └── validator_3/ + └── config +``` ターミナルで以下のコマンドを実行し、ディレクトリを作成します。 - mkdir -p xrpl-private-network/{validator_1/config,validator_2/config,validator_3/config} +``` +mkdir -p xrpl-private-network/{validator_1/config,validator_2/config,validator_3/config} +``` ### バリデータ設定ファイルの作成 @@ -122,113 +142,117 @@ labels: 2. 以下の`rippled.cfg`テンプレートの情報をファイルにコピーします。 - [server] - port_rpc_admin_local - port_rpc - port_ws_admin_local - port_ws_public - port_peer - # ssl_key = /etc/ssl/private/server.key - # ssl_cert = /etc/ssl/certs/server.crt + ``` + [server] + port_rpc_admin_local + port_rpc + port_ws_admin_local + port_ws_public + port_peer + # ssl_key = /etc/ssl/private/server.key + # ssl_cert = /etc/ssl/certs/server.crt - [port_rpc_admin_local] - port = 5005 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = http + [port_rpc_admin_local] + port = 5005 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = http - [port_ws_admin_local] - port = 6006 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = ws + [port_ws_admin_local] + port = 6006 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = ws - [port_ws_public] - port = 80 - ip = 0.0.0.0 - protocol = ws + [port_ws_public] + port = 80 + ip = 0.0.0.0 + protocol = ws - [port_peer] - port = 51235 - ip = 0.0.0.0 - protocol = peer + [port_peer] + port = 51235 + ip = 0.0.0.0 + protocol = peer - [port_rpc] - port = 51234 - ip = 0.0.0.0 - admin = 127.0.0.1 - protocol = https, http + [port_rpc] + port = 51234 + ip = 0.0.0.0 + admin = 127.0.0.1 + protocol = https, http - [node_size] - small - # tiny - # small - # medium - # large - # huge + [node_size] + small + # tiny + # small + # medium + # large + # huge - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - advisory_delete=0 + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + advisory_delete=0 - # How many ledgers do we want to keep (history)? - # Integer value that defines the number of ledgers - # between online deletion events - online_delete=256 + # How many ledgers do we want to keep (history)? + # Integer value that defines the number of ledgers + # between online deletion events + online_delete=256 - [ledger_history] - # How many ledgers do we want to keep (history)? - # Integer value (ledger count) - # or (if you have lots of TB SSD storage): 'full' - 256 + [ledger_history] + # How many ledgers do we want to keep (history)? + # Integer value (ledger count) + # or (if you have lots of TB SSD storage): 'full' + 256 - [database_path] - /var/lib/rippled/db + [database_path] + /var/lib/rippled/db - [debug_logfile] - /var/log/rippled/debug.log + [debug_logfile] + /var/log/rippled/debug.log - [sntp_servers] - time.windows.com - time.apple.com - time.nist.gov - pool.ntp.org + [sntp_servers] + time.windows.com + time.apple.com + time.nist.gov + pool.ntp.org - [ips_fixed] - validator_1 51235 - validator_2 51235 - validator_3 51235 + [ips_fixed] + validator_1 51235 + validator_2 51235 + validator_3 51235 - [validators_file] - validators.txt + [validators_file] + validators.txt - [rpc_startup] - { "command": "log_level", "severity": "warning" } - # severity (order: lots of information .. only errors) - # debug - # info - # warn - # error - # fatal + [rpc_startup] + { "command": "log_level", "severity": "warning" } + # severity (order: lots of information .. only errors) + # debug + # info + # warn + # error + # fatal - [ssl_verify] - 0 + [ssl_verify] + 0 - [validator_token] - + [validator_token] + + ``` 3. チュートリアルの[最初](#バリデータキーの生成)に作成した次のようなバリデータトークンを追加します。 - [validator_token] - eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG - V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz - cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS - YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw - NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 - aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl - eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 - NUQzMUVBOTU1QjQyMTIifQ== + ``` + [validator_token] + eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG + V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz + cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS + YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw + NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 + aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl + eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 + NUQzMUVBOTU1QjQyMTIifQ== + ``` 各バリデータノードは固有のトークンを持たなければなりません。 @@ -242,10 +266,12 @@ labels: 2. チュートリアルの[最初](#バリデータキーの生成)に生成した`validator-keys.json`ファイルから公開鍵をコピーします。 3. 次のようにすべてのバリデータの公開鍵を追加します。 - [validators] - nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu - nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY - nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc + ``` + [validators] + nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu + nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY + nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc + ``` ## ネットワークを開始する @@ -257,51 +283,55 @@ Docker Composeを使用すると、簡単な`yaml`ファイルの設定でコン 1. `xrpl-private-network`ディレクトリのルートに`docker-compose.yml`ファイルを作成し、次の内容を追加します。 - version: "3.9" - services: - validator_1: - platform: linux/amd64 - container_name: validator_1 - image: "xrpllabsofficial/xrpld" - ports: - - "8001:80" - - "5006:5005" - - "4001:6006" - - "9001:51235" - volumes: - - ./validator_1/config:/config/ - validator_2: - platform: linux/amd64 - container_name: validator_2 - image: "xrpllabsofficial/xrpld" - ports: - - "8002:80" - - "5007:5005" - - "4002:6006" - - "9002:51235" - volumes: - - ./validator_2/config:/config/ - validator_3: - platform: linux/amd64 - container_name: validator_3 - image: "xrpllabsofficial/xrpld" - ports: - - "8003:80" - - "5008:5005" - - "4003:6006" - - "9003:51235" - volumes: - - ./validator_3/config:/config/ + ``` + version: "3.9" + services: + validator_1: + platform: linux/amd64 + container_name: validator_1 + image: "xrpllabsofficial/xrpld" + ports: + - "8001:80" + - "5006:5005" + - "4001:6006" + - "9001:51235" + volumes: + - ./validator_1/config:/config/ + validator_2: + platform: linux/amd64 + container_name: validator_2 + image: "xrpllabsofficial/xrpld" + ports: + - "8002:80" + - "5007:5005" + - "4002:6006" + - "9002:51235" + volumes: + - ./validator_2/config:/config/ + validator_3: + platform: linux/amd64 + container_name: validator_3 + image: "xrpllabsofficial/xrpld" + ports: + - "8003:80" + - "5008:5005" + - "4003:6006" + - "9003:51235" + volumes: + - ./validator_3/config:/config/ + ``` 各 `service`の`volumes`キーは、設定ファイルが保存されている場所を表します。例えば、`./validator_1/config:/config/`はホストコンピュータの`/validator_1/config`ディレクトリをDockerコンテナの`/config/`マップします。ホストのディレクトリで行われた変更は、自動的にコンテナに反映されます。 2. ターミナルから`docker-compose.yml`ファイルを作成した場所で`docker-compose up -d`を実行してください。以下のような出力が表示されるはずです。 - [+] Running 4/4 - ✔ Network xrpl-private-network_default Created 0.0s - ✔ Container validator_3 Started 0.5s - ✔ Container validator_1 Started 0.5s - ✔ Container validator_2 Started 0.5s + ``` + [+] Running 4/4 + ✔ Network xrpl-private-network_default Created 0.0s + ✔ Container validator_3 Started 0.5s + ✔ Container validator_1 Started 0.5s + ✔ Container validator_2 Started 0.5s + ``` ## ネットワークを検証する @@ -311,47 +341,55 @@ Docker Composeを使用すると、簡単な`yaml`ファイルの設定でコン 2. - rippled server_info | grep server_state +``` +rippled server_info | grep server_state +``` - 出力の例: +``` +出力の例: - "server_state" : "proposing" + "server_state" : "proposing" - **注記:** server_stateが**proposing**に更新されない場合は、レジャーの更新に時間がかかることがあるため、数分後にステップ**2**を繰り返してください。 +**注記:** server_stateが**proposing**に更新されない場合は、レジャーの更新に時間がかかることがあるため、数分後にステップ**2**を繰り返してください。 +``` 3. バリデータに接続しているピア数を確認します。 - rippled server_info | grep peers +``` + rippled server_info | grep peers - 出力の例: +出力の例: - "peers" : 2 + "peers" : 2 +``` 4. 以下のコマンドを実行して、genesisのアカウント情報を確認します。 - rippled account_info rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh validated strict +``` + rippled account_info rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh validated strict - 出力の例: +出力の例: - { - "result" : { - "account_data" : { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Balance" : "100000000000000000", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "0000000000000000000000000000000000000000000000000000000000000000", - "PreviousTxnLgrSeq" : 0, - "Sequence" : 1, - "index" : "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" - }, - "ledger_hash" : "CFCEFB049A71E26DE812529ABB212F330FAF583A98FE073F14713B0644D7CEE9", - "ledger_index" : 10181, - "status" : "success", - "validated" : true - } - } + { + "result" : { + "account_data" : { + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Balance" : "100000000000000000", + "Flags" : 0, + "LedgerEntryType" : "AccountRoot", + "OwnerCount" : 0, + "PreviousTxnID" : "0000000000000000000000000000000000000000000000000000000000000000", + "PreviousTxnLgrSeq" : 0, + "Sequence" : 1, + "index" : "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" + }, + "ledger_hash" : "CFCEFB049A71E26DE812529ABB212F330FAF583A98FE073F14713B0644D7CEE9", + "ledger_index" : 10181, + "status" : "success", + "validated" : true + } + } +``` 5. Dockerコンテナシェルから抜けるには、ターミナルで`exit`と入力します。 @@ -361,60 +399,68 @@ Docker Composeを使用すると、簡単な`yaml`ファイルの設定でコン 1. ターミナルで以下のコマンドを実行し、トランザクションを送信します。 - docker exec -it validator_1 \ - rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' + ``` + docker exec -it validator_1 \ + rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' + ``` 出力の例: - { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", - "tx_json" : { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Amount" : "1000000000", - "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 1, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "Payment", - "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", - "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" - } + ``` + { + "result" : { + "engine_result" : "tesSUCCESS", + "engine_result_code" : 0, + "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", + "status" : "success", + "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", + "tx_json" : { + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Amount" : "1000000000", + "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Fee" : "10", + "Flags" : 2147483648, + "Sequence" : 1, + "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType" : "Payment", + "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", + "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" } - } + } + } + ``` 2. 各バリデータについて、宛先アカウント `r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs` に 1000000000 XRP があることを確認します。 - docker exec -it validator_1 \ - rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict + ``` + docker exec -it validator_1 \ + rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict + ``` 出力の例: - { - "result" : { - "account_data" : { - "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Balance" : "1000000000", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", - "PreviousTxnLgrSeq" : 36, - "Sequence" : 1, - "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" - }, - "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", - "ledger_index" : 51, - "status" : "success", - "validated" : true - } - } - + ``` + { + "result" : { + "account_data" : { + "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Balance" : "1000000000", + "Flags" : 0, + "LedgerEntryType" : "AccountRoot", + "OwnerCount" : 0, + "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", + "PreviousTxnLgrSeq" : 36, + "Sequence" : 1, + "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" + }, + "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", + "ledger_index" : 51, + "status" : "success", + "validated" : true + } + } + + ``` すべてのバリデータノードは、`r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs`アカウントの同じ残高1000000000XRPでレスポンスする必要があります。 ## ネットワークを停止する @@ -424,20 +470,24 @@ Docker Composeを使用すると、簡単な`yaml`ファイルの設定でコン 1. ターミナルで`xrpl-private-network`ディレクトリに移動します。 2. 以下のコマンドを実行して、ネットワークをシャットダウンします。 - docker-compose down + ``` + docker-compose down + ``` 出力の例: - [+] Running 4/4 - ✔ Container validator_3 Removed 1.7s - ✔ Container validator_1 Removed 1.6s - ✔ Container validator_2 Removed 1.6s - ✔ Network xrpl-private-network_default Removed 0.0s + ``` + [+] Running 4/4 + ✔ Container validator_3 Removed 1.7s + ✔ Container validator_1 Removed 1.6s + ✔ Container validator_2 Removed 1.6s + ✔ Network xrpl-private-network_default Removed 0.0s + ``` ## 関連項目 - **ネットワークとサーバ:** - - [ピアプロトコル](peer-protocol.html) + - [ピアプロトコル](../../concepts/networks-and-servers/peer-protocol.md) - **References:** - [XRPL TestnetのDocker用セットアップスクリプト](https://github.com/UNIC-IFF/xrpl-docker-testnet) diff --git a/content/@i18n/ja/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md b/content/@i18n/ja/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md index ff469f760d..602548bf71 100644 --- a/content/@i18n/ja/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md +++ b/content/@i18n/ja/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md @@ -15,9 +15,9 @@ labels: rippled -a --start --conf=/path/to/rippled.cfg ``` -スタンドアロンモードで`rippled`を起動時に使用できるオプションについての詳細は、[コマンドラインの使用リファレンスのスタンドアロンモードのオプション](commandline-usage.html#スタンドアロンモードのオプション)を参照してください。 +スタンドアロンモードで`rippled`を起動時に使用できるオプションについての詳細は、[コマンドラインの使用リファレンスのスタンドアロンモードのオプション](../commandline-usage.md#スタンドアロンモードのオプション)を参照してください。 -ジェネシスレジャーの[ジェネシスアドレス](addresses.html#特別なアドレス)は1,000億XRPすべてを保有しています。ジェネシスアドレスのキーは以下のように[ハードコーディング](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184)されています。 +ジェネシスレジャーの[ジェネシスアドレス](../../concepts/accounts/addresses.md#特別なアドレス)は1,000億XRPすべてを保有しています。ジェネシスアドレスのキーは以下のように[ハードコーディング](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184)されています。 **アドレス:** `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` @@ -25,11 +25,8 @@ rippled -a --start --conf=/path/to/rippled.cfg ## 新しいジェネシスレジャーの設定 -新しいジェネシスレジャーでは、デフォルトでハードコーディングされる[準備金](reserves.html)は**200 XRP**です。この額は、新規アドレスに支給される最低額で、レジャーの1オブジェクトにつき**50 XRP**ずつ増加します。これらは本番環境ネットワークの現在の必要準備金よりも大きな値です。(関連項目: [手数料投票](fee-voting.html)) +新しいジェネシスレジャーでは、デフォルトでハードコーディングされる[準備金](../../concepts/accounts/reserves.md)は**200 XRP**です。この額は、新規アドレスに支給される最低額で、レジャーの1オブジェクトにつき**50 XRP**ずつ増加します。これらは本番環境ネットワークの現在の必要準備金よりも大きな値です。(関連項目: [手数料投票](../../concepts/consensus-protocol/fee-voting.md)) -デフォルトでは、新しいジェネシスレジャーでは[Amendment](amendments.html)が有効になっていません。`--start`を使用して新しいジェネシスレジャーを開始する場合、ジェネシスレジャーには、構成ファイルで明示的に無効にされたAmendmentを除き、`rippled`サーバーでネイティブにサポートされているすべてのAmendmentを有効にする[EnableAmendment疑似トランザクション](enableamendment.html)が含まれています。これらのAmendmentの効果は、直後のレジャーバージョンから反映されます。(留意事項: スタンドアロンモードでは[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.html)必要があります。)[新規: rippled 0.50.0][] +デフォルトでは、新しいジェネシスレジャーでは[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 %} - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/testing-and-auditing/test-amendments.md b/content/@i18n/ja/infrastructure/testing-and-auditing/test-amendments.md index 180d2d8aa8..0016a151c2 100644 --- a/content/@i18n/ja/infrastructure/testing-and-auditing/test-amendments.md +++ b/content/@i18n/ja/infrastructure/testing-and-auditing/test-amendments.md @@ -14,13 +14,14 @@ labels: 機能を強制的に有効にするには、`rippled.cfg` ファイルに `[features]`節とAmendmentの短い名前を追加してください。各Amendmentにはそれぞれ行が必要です。 - -_Example_ +{% tabs %} +{% tab label="Example" %} ``` [features] MultiSign TrustSetAuth ``` +{% /tab %} - +{% /tabs %} diff --git a/content/@i18n/ja/infrastructure/troubleshooting/diagnosing-problems.md b/content/@i18n/ja/infrastructure/troubleshooting/diagnosing-problems.md index 4a3cf286c8..f661814151 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/diagnosing-problems.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/diagnosing-problems.md @@ -9,7 +9,7 @@ labels: `rippled`で問題が発生した場合はまず、問題の特徴を正確に明らかにするため、詳細な情報を収集します。これにより、根本原因を洗い出して修正策を編み出すことが容易になります。 -サーバーが起動しない場合(クラッシュが発生した場合や自動的にシャットダウンした場合など)は、[rippledサーバーが起動しない](server-wont-start.html)で考えられる原因と修正策のリストを確認してください。 +サーバーが起動しない場合(クラッシュが発生した場合や自動的にシャットダウンした場合など)は、[rippledサーバーが起動しない](server-wont-start.md)で考えられる原因と修正策のリストを確認してください。 このドキュメントでは、サーバーが稼働している場合(プロセスがアクティブだがネットワークと同期できない場合を含む)に発生する可能性がある問題の診断手順を説明します。 @@ -23,63 +23,67 @@ rippled server_info このコマンドに対するレスポンスには大量の情報が含まれています。これについては、[server_infoメソッド][]で説明します。トラブルシューティングで最も重要なフィールドは以下のとおりです(最も一般的に使われるものから順に説明します)。 -- **`server_state`** - ほとんどの場合、このフィールドには`proposing`([バリデータとして設定されている](run-rippled-as-a-validator.html)サーバーの場合)または`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です。 - 例えば、以下のサーバー状態情報は、正常なサーバーで同期が3分以内に完了しており(`disconnected`、`connected`、`syncing`の状態に分かれている)、現在は完全に同期された`proposing`状態が約90分間続いていることを示しています。 - $ ./rippled server_info - Loading: "/etc/opt/ripple/rippled.cfg" - 2020-Jan-03 22:49:32.834134358 HTTPClient:NFO Connecting to 127.0.0.1:5005 + ``` + $ ./rippled server_info + Loading: "/etc/opt/ripple/rippled.cfg" + 2020-Jan-03 22:49:32.834134358 HTTPClient:NFO Connecting to 127.0.0.1:5005 - { - "result" : { - "info" : { - ...(省略)... - "server_state" : "proposing", - "server_state_duration_us" : "5183282365", - "state_accounting" : { - "connected" : { - "duration_us" : "126164786", - "transitions" : 1 - }, - "disconnected" : { - "duration_us" : "2111321", - "transitions" : 1 - }, - "full" : { - "duration_us" : "5183282365", - "transitions" : 1 - }, - "syncing" : { - "duration_us" : "5545604", - "transitions" : 1 - }, - "tracking" : { - "duration_us" : "0", - "transitions" : 1 - } - }, - ...(省略)... - } - } - } + { + "result" : { + "info" : { + ...(省略)... + "server_state" : "proposing", + "server_state_duration_us" : "5183282365", + "state_accounting" : { + "connected" : { + "duration_us" : "126164786", + "transitions" : 1 + }, + "disconnected" : { + "duration_us" : "2111321", + "transitions" : 1 + }, + "full" : { + "duration_us" : "5183282365", + "transitions" : 1 + }, + "syncing" : { + "duration_us" : "5545604", + "transitions" : 1 + }, + "tracking" : { + "duration_us" : "0", + "transitions" : 1 + } + }, + ...(省略)... + } + } + } + ``` サーバーが同じ状態間で複数の`transitions`を示している場合、サーバーが同期状態を維持できなかったことを示します。`full`または`proposing`状態でない場合、サーバーはまだネットワークに同期されていません。長期の間には、インターネット接続が不安定になってサーバーの同期が時々失われる場合があります。そのためこれが問題になるのは、同期されていない時間がアップタイムのかなりの部分を占める場合のみです。アップタイムが約24時間経過した後に、`full`または`proposing`状態だった時間がサーバーの合計実行時間の99%に満たない場合、不安定になっている原因を調査することをお勧めします。 - - 同期の問題をデバッグする際の参考として、[サーバーが同期しない](server-doesnt-sync.html)を参照してください。 + - 同期の問題をデバッグする際の参考として、[サーバーが同期しない](server-doesnt-sync.md)を参照してください。 -- **`complete_ledgers`** - このフィールドは、サーバーに完全なレジャーデータが保管されている[レジャーインデックス](basic-data-types.html#レジャーインデックス)を示します。通常、正常なサーバーには連続した最新のレジャーのセット(`"12133424-12133858"`など)があります。 +- **`complete_ledgers`** - このフィールドは、サーバーに完全なレジャーデータが保管されている[レジャーインデックス](../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)を示します。通常、正常なサーバーには連続した最新のレジャーのセット(`"12133424-12133858"`など)があります。 - 連続していない完全なレジャーのセット(`"11845721-12133420,12133424-12133858"`など)がある場合、サーバーで断続的な障害が発生したか、またはネットワークの他の部分との同期が一時的にできなかった可能性があります。このようなケースの最も一般的な原因は、ディスクI/Oまたはネットワーク帯域幅の不足です。 - 通常、`rippled`サーバーはピアから最新のレジャー履歴をダウンロードします。レジャー履歴のギャップが数時間以上続く場合は、欠落データを所有しているピアに接続されていない可能性があります。この状況が発生した場合は、構成ファイルに次のスタンザを追加して再起動すれば、完全な履歴が保管されているRippleのパブリックサーバーの1つにサーバーを強制的にピア接続できます。 - [ips_fixed] - s2.ripple.com 51235 + ``` + [ips_fixed] + s2.ripple.com 51235 + ``` -- **`amendment_blocked`** - このフィールドは通常`server_info`レスポンスでは省略されます。このフィールドの値が`true`の場合は、ネットワークにより承認された[Amendment](amendments.html)がサーバーに導入されていません。ほとんどの場合は、最新バージョンに[rippledを更新する](install-rippled.html)ことで修正できます。また[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ピアと表示されます。 @@ -103,34 +107,31 @@ rippled server_info 通常これはさまざまな問題の1つを示します。 - `rippled`サーバーが起動したばかりであるか、または完全に稼働していません。サービスのステータスを確認してください。稼働している場合は数秒間待ってから再試行してください。 -- サーバーに接続するために異なる[パラメーターを`rippled`コマンドラインクライアントに](commandline-usage.html#クライアントモードのオプション)渡す必要があります。 +- サーバーに接続するために異なる[パラメーターを`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`を使用して開始するのではなく)直接開始した場合、デフォルトではログメッセージはコンソールにも出力されます。 -デフォルトの構成ファイルでは、起動時に[log_levelメソッド][]を内部で使用して、すべてのログメッセージカテゴリーでログレベルの重大度は「警告」に設定されています。デバッグログの詳細レベルを制御するには、[起動時に`--silent`コマンドラインオプションを使用し](commandline-usage.html#詳細レベルのオプション)、サーバーの稼働中に[log_levelメソッド][]を使用します。(設定については構成ファイルの`[rpc_startup]`スタンザを参照してください。) +デフォルトの構成ファイルでは、起動時に[log_levelメソッド][]を内部で使用して、すべてのログメッセージカテゴリーでログレベルの重大度は「警告」に設定されています。デバッグログの詳細レベルを制御するには、[起動時に`--silent`コマンドラインオプションを使用し](../commandline-usage.md#詳細レベルのオプション)、サーバーの稼働中に[log_levelメソッド][]を使用します。(設定については構成ファイルの`[rpc_startup]`スタンザを参照してください。) `rippled`サーバーが起動中に多数の警告レベルの(`WRN`)メッセージを出力し、その後はときどきいくつかの警告レベルメッセージを出力することは正常です。サーバー起動時の最初の5~15分間に出力されるほとんどの警告は、**安全に無視**できます。 -さまざまな種類のログメッセージに関する詳しい説明については、[ログメッセージについて](understanding-log-messages.html)を参照してください。 +さまざまな種類のログメッセージに関する詳しい説明については、[ログメッセージについて](understanding-log-messages.md)を参照してください。 ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [Amendment](amendments.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [Amendment](../../concepts/networks-and-servers/amendments.md) - **チュートリアル:** - - [容量の計画](capacity-planning.html) - - [rippledの構成](configure-rippled.html) + - [容量の計画](../installation/capacity-planning.md) + - [rippledの構成](../configuration/index.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [log_levelメソッド][] - [server_infoメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md b/content/@i18n/ja/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md index a52cba8ad9..408e0b9b76 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md @@ -15,7 +15,7 @@ blurb: rippledバージョン0.40.0以前で起動された完全履歴サーバ SQLiteデータベースの容量は、データベースの_ページサイズ_パラメーターによって決まります。この容量は、データベース作成後は容易に変更できません。(SQLiteの内部についての詳細は、[SQLite公式ドキュメント](https://www.sqlite.org/fileformat.html)を参照してください。)データベースが保管されているディスクとファイルシステムに空き容量がある場合でも、データベースが容量いっぱいになることがあります。以下の「[解決策](#解決策)」で説明するように、この問題を回避するためにページサイズを再構成するには、時間のかかる移行プロセスが必要です。 -**ヒント:** ほとんどの場合、`rippled`サーバーの稼働に全履歴が必要となることはありません。サーバーにトランザクションの全履歴が記録されていれば、長期分析やアーカイブ、または災害に対する事前対策に役立ちます。リソースを大量に消費せずにトランザクション履歴を保管する方法については、[履歴シャーディング](history-sharding.html)を参照してください。 +**ヒント:** ほとんどの場合、`rippled`サーバーの稼働に全履歴が必要となることはありません。サーバーにトランザクションの全履歴が記録されていれば、長期分析やアーカイブ、または災害に対する事前対策に役立ちます。リソースを大量に消費せずにトランザクション履歴を保管する方法については、[履歴シャーディング](../configuration/data-retention/history-sharding.md)を参照してください。 ## 検出 @@ -70,23 +70,27 @@ Terminating thread doJob:AcquisitionDone: unhandled ## 解決策 -この問題を解決するには、このドキュメントで説明する手順に従い、サポートされているLinuxシステムで`rippled`を使用します。[推奨されるハードウェア構成](capacity-planning.html#推奨事項-1)とおおよそ一致するシステムスペックで全履歴を記録するサーバーの場合、このプロセスにかかる日数は2日を超える可能性があります。 +この問題を解決するには、このドキュメントで説明する手順に従い、サポートされているLinuxシステムで`rippled`を使用します。[推奨されるハードウェア構成](../installation/capacity-planning.md#推奨事項-1)とおおよそ一致するシステムスペックで全履歴を記録するサーバーの場合、このプロセスにかかる日数は2日を超える可能性があります。 ### 前提条件 - **[rippledバージョン1.1.0][新規: rippled 1.1.0]以上**を実行している必要があります。 - - このプロセスを開始する前に、安定した最新バージョンに[rippledをアップグレード](install-rippled.html)します。 + - このプロセスを開始する前に、安定した最新バージョンに[rippledをアップグレード](../installation/index.md)します。 - 以下のコマンドを実行して、ローカルにインストールした`rippled`のバージョンを確認できます。 - rippled --version + ``` + rippled --version + ``` - `rippled`ユーザーが書き込めるディレクトリーに、トランザクションデータベースの2つめのコピーを一時的に保管するのに十分な空き容量が必要です。この空き容量は、既存のトランザクションデータベースと同じファイルシステムに設ける必要はありません。 トランザクションデータベースは、構成の`[database_path]`設定で指定されるフォルダーの`transaction.db`ファイルに保管されます。このファイルのサイズを調べ、必要な空き容量を確認できます。次に例を示します。 - ls -l /var/lib/rippled/db/transaction.db + ``` + ls -l /var/lib/rippled/db/transaction.db + ``` ### 移行プロセス @@ -96,83 +100,109 @@ Terminating thread doJob:AcquisitionDone: unhandled 2. 移行プロセスの実行中に一時ファイルを保管するフォルダーを作成します。 - mkdir /tmp/rippled_txdb_migration + ``` + mkdir /tmp/rippled_txdb_migration + ``` 3. `rippled`ユーザーに、一時フォルダーの所有権を付与します。これにより、ユーザーは一時フォルダー内のファイルに書き込みできるようになります。(`rippled`ユーザーがすでにアクセス権限を持つ場所に一時フォルダーがある場合は、この操作は不要です。) - chown rippled /tmp/rippled_txdb_migration + ``` + chown rippled /tmp/rippled_txdb_migration + ``` 4. 一時フォルダーに、トランザクションデータベースのコピーを保管するのに十分な空き容量があることを確認します。 たとえば、`df`コマンドの`Avail`出力と、[`transaction.db`ファイルのサイズ](#前提条件)を比較します。 - df -h /tmp/rippled_txdb_migration + ``` + df -h /tmp/rippled_txdb_migration - Filesystem Size Used Avail Use% Mounted on - /dev/sda2 5.4T 2.6T 2.6T 50% /tmp + Filesystem Size Used Avail Use% Mounted on + /dev/sda2 5.4T 2.6T 2.6T 50% /tmp + ``` 5. `rippled`がまだ稼働している場合は停止します。 - sudo systemctl stop rippled + ``` + sudo systemctl stop rippled + ``` 6. `screen`セッション(または類似のツール)を開き、ログアウトしてもプロセスが停止しないようにします。 - screen + ``` + screen + ``` 7. `rippled`ユーザーになります。 - sudo su - rippled + ``` + sudo su - rippled + ``` 8. 一時ディレクトリへのパスを指定した`--vacuum`コマンドで、`rippled`実行可能ファイルを直接実行できます。 - /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration + ``` + /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration + ``` `rippled`実行可能ファイルにより次のメッセージが即時に表示されます。 - VACUUM beginning. page_size:1024 + ``` + VACUUM beginning. page_size:1024 + ``` 9. プロセスが完了するまで待ちます。これには丸2日以上かかることがあります。 プロセスが完了したら、`rippled`実行可能ファイルは以下のメッセージを表示して終了します。 - VACUUM finished. page_size:4096 + ``` + VACUUM finished. page_size:4096 + ``` 待機している間に`screen`セッションを切り離すには、**CTRL-A**を押してから**D**を押します。その後、以下のようなコマンドでスクリーンセッションを再接続します。 - screen -x -r + ``` + screen -x -r + ``` プロセスが完了したら、スクリーンセッションを終了します。 - exit + ``` + exit + ``` `screen`コマンドについての詳細は、[公式Screenユーザーマニュアル](https://www.gnu.org/software/screen/manual/screen.html)またはオンラインで使用可能なその他の多数のリソースを参照してください。 10. `rippled`サービスを再起動します。 - sudo systemctl start rippled + ``` + sudo systemctl start rippled + ``` 11. `rippled`サービスが正常に起動したかどうかを確認します。 - [コマンドラインインターフェイス](get-started-using-http-websocket-apis.html#コマンドライン)を使用してサーバーの状況を確認できます(サーバーがJSON-RPCリクエストを受け入れないように設定している場合を除く)。次に例を示します。 + [コマンドラインインターフェイス](../../tutorials/get-started/get-started-using-http-websocket-apis.md#コマンドライン)を使用してサーバーの状況を確認できます(サーバーがJSON-RPCリクエストを受け入れないように設定している場合を除く)。次に例を示します。 - /opt/ripple/bin/rippled server_info + ``` + /opt/ripple/bin/rippled server_info + ``` このコマンドの予期されるレスポンスの説明については、[server_infoメソッド][]ドキュメントを参照してください。 12. サーバーのデバッグログを参照し、`SQLite page size`が現在4096であることを確認します。 - tail -F /var/log/rippled/debug.log + ``` + tail -F /var/log/rippled/debug.log + ``` また[定期的なログメッセージ](#事前の検出)には、移行前に比べて非常に多くのフリーページとフリースペースが示されているはずです。 13. 必要に応じて、移行プロセスのために作成した一時フォルダーをこの時点で削除できます。 - rm -r /tmp/rippled_txdb_migration + ``` + rm -r /tmp/rippled_txdb_migration + ``` トランザクションデータベースの一時コピーを保持するために追加のストレージをマウントした場合は、この時点でそのストレージをアンマウントして取り外すことができます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/troubleshooting/health-check-interventions.md b/content/@i18n/ja/infrastructure/troubleshooting/health-check-interventions.md index 34079bbc4d..3a96eec699 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/health-check-interventions.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/health-check-interventions.md @@ -7,7 +7,7 @@ labels: --- # ヘルスチェックの導入 -[Health Checkメソッド](health-check.html)は、自動監視によって`rippled`サーバが正常でないことを認識し、サーバの再起動や人間の管理者への警告などの介入を促すために利用することができます。 +[Health Checkメソッド](../../references/http-websocket-apis/peer-port-methods/health-check.md)は、自動監視によって`rippled`サーバが正常でないことを認識し、サーバの再起動や人間の管理者への警告などの介入を促すために利用することができます。 インフラモニタリング、そしてより一般的な信頼性の設計は、複数のデータソースを利用して状況に応じて意思決定を行う高度な学問分野です。本書では、ヘルスチェックを最も効果的に使用する方法についていくつかの提案を行いますが、これらの提案は、より大きな対策の一環としてのガイドラインに過ぎません。 @@ -25,8 +25,8 @@ labels: 特殊なケースの例としては、次のようなものがあります。 -- [プライベートピア](peer-protocol.html#private-peers)は通常、既知のサーバのみに接続するごく少数のピアツーピア接続を持ちますが、サーバが7つ以下のピアに接続している場合、ヘルスチェックは`peers`メトリックで警告を報告します。サーバが設定されているピア数を正確に把握し、その値をチェックする必要があります。 -- 新しいトランザクションが継続的に送信されていない[並列ネットワークまたはテストネットワーク](parallel-networks.html)では、ネットワークは新しいトランザクションを最大20秒待ってから新しいレジャーバージョンの検証を試みますが、検証された最新のレジャーが7秒以上古い場合、ヘルスチェックは`validated_ledger`メトリックで警告を報告します。本番環境でないネットワークで`rippled`を実行している場合、トランザクションが定期的に送信されていることが分かっていない限り、これに対する`warning`メッセージを無視することができます。XRP Ledgerプロトコルは、処理する新しいトランザクションがなくても、少なくとも20秒に一度は新しいレジャーバージョンを検証するように設計されているからです。 +- [プライベートピア](../../concepts/networks-and-servers/peer-protocol.md#private-peers)は通常、既知のサーバのみに接続するごく少数のピアツーピア接続を持ちますが、サーバが7つ以下のピアに接続している場合、ヘルスチェックは`peers`メトリックで警告を報告します。サーバが設定されているピア数を正確に把握し、その値をチェックする必要があります。 +- 新しいトランザクションが継続的に送信されていない[並列ネットワークまたはテストネットワーク](../../concepts/networks-and-servers/parallel-networks.md)では、ネットワークは新しいトランザクションを最大20秒待ってから新しいレジャーバージョンの検証を試みますが、検証された最新のレジャーが7秒以上古い場合、ヘルスチェックは`validated_ledger`メトリックで警告を報告します。本番環境でないネットワークで`rippled`を実行している場合、トランザクションが定期的に送信されていることが分かっていない限り、これに対する`warning`メッセージを無視することができます。XRP Ledgerプロトコルは、処理する新しいトランザクションがなくても、少なくとも20秒に一度は新しいレジャーバージョンを検証するように設計されているからです。 ## 推奨される対策 @@ -43,7 +43,7 @@ labels: ### トラフィックのリダイレクト -一般的な信頼性のためのテクニックは、1つ以上の負荷分散プロキシを通して冗長なサーバのプールを実行することです。これは`rippled`サーバではできますが、[バリデータ](rippled-server-modes.html)ではすべきではありません。場合によっては、ロードバランサはプール内のサーバの健全性を監視し、現在健全であると報告しているサーバだけにトラフィックを向けることができます。これにより、サーバは一時的な過負荷から回復し、自動的にアクティブなサーバのプールに戻ることができます。 +一般的な信頼性のためのテクニックは、1つ以上の負荷分散プロキシを通して冗長なサーバのプールを実行することです。これは`rippled`サーバではできますが、[バリデータ](../../concepts/networks-and-servers/rippled-server-modes.md)ではすべきではありません。場合によっては、ロードバランサはプール内のサーバの健全性を監視し、現在健全であると報告しているサーバだけにトラフィックを向けることができます。これにより、サーバは一時的な過負荷から回復し、自動的にアクティブなサーバのプールに戻ることができます。 特に`health`ステータスが`warning`と表示されたサーバに対しては、不健全なサーバからトラフィックをリダイレクトすることが適切な対応です。`critical`の範囲にあるサーバはより重要な介入が必要かもしれません。 @@ -70,11 +70,11 @@ $ sudo systemctl restart rippled.service ### 更新 -サーバがヘルスチェックで`"amendment_blocked": true`と報告した場合、これはXRP Ledgerがサーバが理解できない[プロトコルの修正(Amendment)](amendments.html)を有効にしたことを示しています。ネットワークの改訂されたルールを誤って解釈して損害を被らないようにするため、このようなサーバーは正常に動作する代わりに"amendment blocked(Amendmentブロック)"となります。 +サーバがヘルスチェックで`"amendment_blocked": true`と報告した場合、これはXRP Ledgerがサーバが理解できない[プロトコルの修正(Amendment)](../../concepts/networks-and-servers/amendments.md)を有効にしたことを示しています。ネットワークの改訂されたルールを誤って解釈して損害を被らないようにするため、このようなサーバーは正常に動作する代わりに"amendment blocked(Amendmentブロック)"となります。 -Amendmentブロックを解消するには、[サーバをアップデート](install-rippled.html)して、Amendmentプログラムを理解できる新しいバージョンのソフトウェアにしてください。 +Amendmentブロックを解消するには、[サーバをアップデート](../installation/index.md)して、Amendmentプログラムを理解できる新しいバージョンのソフトウェアにしてください。 -また、ソフトウェアのバグによってサーバが[同期できない](server-doesnt-sync.html)状態になることもあります。この場合、`server_state`メトリクスはwarningまたはcriticalな状態になっている可能性があります。最新の安定版リリースを使用していない場合は、アップグレードして、この問題を引き起こす可能性のある既知の問題に対する最新の修正を入手してください。 +また、ソフトウェアのバグによってサーバが[同期できない](server-doesnt-sync.md)状態になることもあります。この場合、`server_state`メトリクスはwarningまたはcriticalな状態になっている可能性があります。最新の安定版リリースを使用していない場合は、アップグレードして、この問題を引き起こす可能性のある既知の問題に対する最新の修正を入手してください。 ### ネットワークの調査 @@ -97,7 +97,7 @@ Amendmentブロックを解消するには、[サーバをアップデート](in ハードウェアの故障や、ハードウェアの処理能力を超える高負荷が原因で障害が発生した場合、コンポーネントの交換やサーバ全体の交換が必要になることがあります。 -XRP Ledgerのサーバにかかる負荷の量は、ネットワークのトランザクション量に一部依存し、それはランダムに変化します。また、負荷は利用者の利用パターンにも依存します。状況に応じて適切なハードウェアと設定を計画する方法については、[容量の計画](capacity-planning.html)をご覧ください。 +XRP Ledgerのサーバにかかる負荷の量は、ネットワークのトランザクション量に一部依存し、それはランダムに変化します。また、負荷は利用者の利用パターンにも依存します。状況に応じて適切なハードウェアと設定を計画する方法については、[容量の計画](../installation/capacity-planning.md)をご覧ください。 次の [metrics][]のwarningまたはcriticalの値は、ハードウェアが十分でないことを示している可能性があります。 @@ -110,8 +110,7 @@ XRP Ledgerのサーバにかかる負荷の量は、ネットワークのトラ - -[metrics]: health-check.html#レスポンスのフォーマット -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + +[metrics]: ../../references/http-websocket-apis/peer-port-methods/health-check.md#レスポンスのフォーマット + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/troubleshooting/index.md b/content/@i18n/ja/infrastructure/troubleshooting/index.md index eae8d693c9..b030e52646 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/index.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/index.md @@ -1,9 +1,13 @@ --- html: troubleshoot-the-rippled-server.html parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: rippledサーバーのあらゆる種類の問題をトラブルシューティングします。 --- # rippledのトラブルシューティング -rippledサーバーのあらゆる種類の問題をトラブルシューティングします。 \ No newline at end of file +rippledサーバーのあらゆる種類の問題をトラブルシューティングします。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/infrastructure/troubleshooting/server-doesnt-sync.md b/content/@i18n/ja/infrastructure/troubleshooting/server-doesnt-sync.md index dfb89c8941..f28db96506 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/server-doesnt-sync.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/server-doesnt-sync.md @@ -7,9 +7,9 @@ labels: --- # rippledサーバーが同期しない -このページでは、[`rippled`サーバー](xrpl-servers.html)が正常に起動したのに、ネットワークに完全に接続できずに[「connected」状態](rippled-server-states.html)のままになっている場合の原因について説明します。(サーバーが起動中または起動直後にクラッシュした場合は、[サーバーが起動しない](server-wont-start.html)を参照してください。) +このページでは、[`rippled`サーバー](../../concepts/networks-and-servers/index.md)が正常に起動したのに、ネットワークに完全に接続できずに[「connected」状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)のままになっている場合の原因について説明します。(サーバーが起動中または起動直後にクラッシュした場合は、[サーバーが起動しない](server-wont-start.md)を参照してください。) -以下の手順では、サポートされているプラットフォームに[`rippled`がインストール](install-rippled.html)されていることを前提としています。 +以下の手順では、サポートされているプラットフォームに[`rippled`がインストール](../installation/index.md)されていることを前提としています。 ## 通常の同期動作 @@ -17,7 +17,7 @@ labels: ネットワークとの同期は、通常はおよそ5分から15分で完了します。その間に、サーバーは次のようなさまざまなことを行います。 - 推奨バリデータリストを読み込み(例: `vl.ripple.com`)、信頼できるバリデータを判断します。 -- [ピアサーバーを検出](peer-protocol.html#ピアの検出)して接続します。 +- [ピアサーバーを検出](../../concepts/networks-and-servers/peer-protocol.md#ピアの検出)して接続します。 - 信頼できるバリデータをリッスンして、最近検証されたレジャーハッシュを見つけます。 - ピアから最新のレジャーを完全にダウンロードし、それを使ってレジャーデータの内部データベースを構築します。 - 新たにブロードキャストされたトランザクションを収集し、それを進行中のレジャーに適用します。 @@ -29,14 +29,14 @@ labels: 多くの同期の問題は、サーバーを再起動することで解決できます。最初に同期が失敗した原因がどのようなものであっても、2回目では成功する場合があります。 -[server_infoメソッド][]で[`server_state`](rippled-server-states.html)が`proposing`または`full`以外の状態であると示され、`server_state_duration_us`が`900000000`(15分のマイクロ秒表記)より大きい場合は、`rippled`サービスをシャットダウンしてから数秒間待ち、再起動してください。場合によっては、マシン全体を再起動します。 +[server_infoメソッド][]で[`server_state`](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)が`proposing`または`full`以外の状態であると示され、`server_state_duration_us`が`900000000`(15分のマイクロ秒表記)より大きい場合は、`rippled`サービスをシャットダウンしてから数秒間待ち、再起動してください。場合によっては、マシン全体を再起動します。 問題が解決しない場合は、このページに記載されている他の原因を確認してください。いずれも当てはまらないと思われる場合は、[`rippled`リポジトリに問題を登録](https://github.com/XRPLF/rippled/issues)し、「Syncing issue」ラベルを追加します。 ## 同期の問題のよくある原因 -同期の問題の原因として最もよくあるのは、[システム要件](system-requirements.html)を満たしていないことです。要件を満たせない主な原因は次の3つです。 +同期の問題の原因として最もよくあるのは、[システム要件](../installation/system-requirements.md)を満たしていないことです。要件を満たせない主な原因は次の3つです。 - **低速なディスク。** 安定して高速な性能を発揮するソリッドステートディスク(SSD)が必要です。AWSなどのクラウドプロバイダーはディスク性能を保証しておらず、ハードウェアを共有する他のユーザーの影響を受ける可能性があります。 - **不十分なRAM。** メモリー要件はさまざまな要因に大きく左右されます。例えば、ネットワークの負荷やXRP Ledgerがどのように使われるかなど、予測しづらい要因もあるため、念のため最小システム要件よりも大きいメモリーを用意することをお勧めします。 @@ -47,7 +47,7 @@ labels: ## バリデータリストを読み込めない -デフォルトの構成では、`vl.ripple.com`から受信した推奨バリデータリストを使用します。このリストは、Rippleの暗号鍵ペアで署名されており、有効期限が組み込まれています。サーバーが何らかの理由でリストを`vl.ripple.com`からダウンロードできない場合、サーバーは信頼できるバリデータのセットを選択せず、有効として宣言できるレジャーを決定できません。([Testnetや別の並列ネットワーク](parallel-networks.html)に接続している場合、サーバーは代わりにそのネットワークの信頼できるバリデータのリストを使用します。) +デフォルトの構成では、`vl.ripple.com`から受信した推奨バリデータリストを使用します。このリストは、Rippleの暗号鍵ペアで署名されており、有効期限が組み込まれています。サーバーが何らかの理由でリストを`vl.ripple.com`からダウンロードできない場合、サーバーは信頼できるバリデータのセットを選択せず、有効として宣言できるレジャーを決定できません。([Testnetや別の並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)に接続している場合、サーバーは代わりにそのネットワークの信頼できるバリデータのリストを使用します。) [server_infoメソッド][]レスポンスの`validator_list`ブロックは、バリデータリストの有効期限などのステータスを示します。リストがあるが期限切れである場合、サーバーは以前はそのバリデータリストのサイトに接続できていたものの、その後接続できなくなった可能性があります。その場合、現在のリストはサーバーがそれより新しいリストをダウンロードできなかったために期限切れとなった可能性があります。 @@ -58,9 +58,9 @@ labels: ## 十分な数のピアがない -サーバーが十分な数の[ピアサーバー](peer-protocol.html)に接続していない場合、サーバーは十分なデータをダウンロードできず、ネットワークが新しいトランザクションを処理するときに同期がとれなくなる可能性があります。この問題は、ネットワーク接続の信頼性が低い場合や、十分な数の信頼できる固定ピアを追加せずにサーバーを[プライベートサーバー](peer-protocol.html#プライベートピア)として構成している場合に起こる可能性があります。 +サーバーが十分な数の[ピアサーバー](../../concepts/networks-and-servers/peer-protocol.md)に接続していない場合、サーバーは十分なデータをダウンロードできず、ネットワークが新しいトランザクションを処理するときに同期がとれなくなる可能性があります。この問題は、ネットワーク接続の信頼性が低い場合や、十分な数の信頼できる固定ピアを追加せずにサーバーを[プライベートサーバー](../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として構成している場合に起こる可能性があります。 -[peersメソッド][]を使用して、サーバーの現在のピアについての情報を取得します。ピアの数が10または11の場合、ファイアウォールが着信ピア接続をブロックしていることを示しています。[ポートフォワーディングを設定](forward-ports-for-peering.html)して、より多くの着信接続を許可します。サーバーがプライベートサーバーとして構成されている場合は、構成ファイルの`[ips_fixed]`スタンザの内容と構文を再度確認し、可能であればプロキシと公開ハブをさらに追加します。 +[peersメソッド][]を使用して、サーバーの現在のピアについての情報を取得します。ピアの数が10または11の場合、ファイアウォールが着信ピア接続をブロックしていることを示しています。[ポートフォワーディングを設定](../configuration/peering/forward-ports-for-peering.md)して、より多くの着信接続を許可します。サーバーがプライベートサーバーとして構成されている場合は、構成ファイルの`[ips_fixed]`スタンザの内容と構文を再度確認し、可能であればプロキシと公開ハブをさらに追加します。 ## データベースの破損 @@ -69,31 +69,39 @@ labels: テストとして、十分な空き容量があれば、サーバーのデータベースへのパスを一時的に変更することで、現行のレジャーをダウンロードし直して、別の設定を保存できます。 -**注記:** データベースのパスを変更した場合、サーバーはサーバーの現在の[ノードキーペア][]や[ピアリザベーション](peer-protocol.html#固定ピアとピアリザベーション)など、保存されている一部の設定を読み込めません。データベースのパスを変更することでサーバーの同期の問題が解決した場合は、これらの設定の一部を再作成することをお勧めします。 +**注記:** データベースのパスを変更した場合、サーバーはサーバーの現在の[ノードキーペア][]や[ピアリザベーション](../../concepts/networks-and-servers/peer-protocol.md#固定ピアとピアリザベーション)など、保存されている一部の設定を読み込めません。データベースのパスを変更することでサーバーの同期の問題が解決した場合は、これらの設定の一部を再作成することをお勧めします。 1. `rippled`サーバーが稼働中の場合は停止します。 - $ sudo systemctl stop rippled + ``` + $ sudo systemctl stop rippled + ``` 2. 新しいデータベースを格納するための新しい空のフォルダーを作成します。 - $ mkdir /var/lib/rippled/db_new/ - $ mkdir /var/lib/rippled/db_new/nudb + ``` + $ mkdir /var/lib/rippled/db_new/ + $ mkdir /var/lib/rippled/db_new/nudb + ``` 3. 新しいパスを使用するように構成ファイルを編集します。`[node_db]`スタンザの`path`フィールド**と**`[database_path]`スタンザの値を変更します。 - [node_db] - type=NuDB - path=/var/lib/rippled/db_new/nudb + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db_new/nudb - [database_path] - /var/lib/rippled/db_new + [database_path] + /var/lib/rippled/db_new + ``` - {% include '_snippets/conf-file-location.ja.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 4. `rippled`サーバーを再起動します。 - $ sudo systemctl start rippled + ``` + $ sudo systemctl start rippled + ``` 新しいデータベースを使用してサーバーが同期に成功したら、以前のデータベースを格納していたフォルダーを削除できます。また、ハードウェア障害、特にディスクとRAMの障害を確認することもお勧めします。 @@ -101,19 +109,16 @@ labels: ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [ピアプロトコル](peer-protocol.html) - - [技術に関するよくある質問](technical-faq.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [ピアプロトコル](../../concepts/networks-and-servers/peer-protocol.md) + - [技術に関するよくある質問](../../faq.md) - **チュートリアル:** - - [ログメッセージについて](understanding-log-messages.html) - - [容量の計画](capacity-planning.html) + - [ログメッセージについて](understanding-log-messages.md) + - [容量の計画](../installation/capacity-planning.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - [peersメソッド][] - [server_infoメソッド][] - [validator_list_sitesメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/troubleshooting/server-is-amendment-blocked.md b/content/@i18n/ja/infrastructure/troubleshooting/server-is-amendment-blocked.md index b84cb6973a..ece89dc7fb 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/server-is-amendment-blocked.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/server-is-amendment-blocked.md @@ -9,7 +9,7 @@ labels: Amendmentブロックされたサーバは、レジャーの有効性を判断したり、トランザクションを送信または処理したり、コンセンサスプロセスに参加したりすることができません。 -あなたの`rippled`サーバが[Amendmentブロック](amendments.html#amendmentブロックされたサーバ)されたことを示す最初の兆候の一つは、トランザクションを送信したときに返される`amendmentBlocked`エラーです。以下は`amendmentBlocked`エラーの例です。 +あなたの`rippled`サーバが[Amendmentブロック](../../concepts/networks-and-servers/amendments.md#amendmentブロックされたサーバ)されたことを示す最初の兆候の一つは、トランザクションを送信したときに返される`amendmentBlocked`エラーです。以下は`amendmentBlocked`エラーの例です。 ```json { @@ -65,7 +65,7 @@ Amendmentブロックされたサーバは、レジャーの有効性を判断 最新バージョンより古いバージョンにアップグレードすることで`rippled`サーバのブロックを解除できるかどうかを調べるには、どの機能がサーバをブロックしているかを調べ、ブロックされた機能をサポートしている`rippled`バージョンを調べます。 -どの機能が`rippled`サーバをブロックしているかを調べるには、[`feature`](feature.html)管理者コマンドを使います。以下のような機能を探してください。 +どの機能が`rippled`サーバをブロックしているかを調べるには、[`feature`](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md)管理者コマンドを使います。以下のような機能を探してください。 ``` "enabled" : true @@ -128,4 +128,4 @@ Amendmentブロックされたサーバは、レジャーの有効性を判断 * `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` -どの`rippled`バージョンがこれらの機能をサポートしているか調べるには、[既知のAmendment](known-amendments.html)をご覧ください。 +どの`rippled`バージョンがこれらの機能をサポートしているか調べるには、[既知のAmendment](../../resources/known-amendments.md)をご覧ください。 diff --git a/content/@i18n/ja/infrastructure/troubleshooting/server-wont-start.md b/content/@i18n/ja/infrastructure/troubleshooting/server-wont-start.md index d99b319bd8..df970fb77d 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/server-wont-start.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/server-wont-start.md @@ -7,9 +7,9 @@ labels: --- # rippledサーバーが起動しない -このページでは、[`rippled`サーバー](xrpl-servers.html)が起動しない際に考えられる原因とその修正方法を説明します。 +このページでは、[`rippled`サーバー](../../concepts/networks-and-servers/index.md)が起動しない際に考えられる原因とその修正方法を説明します。 -以下の手順では、サポートされているプラットフォームに[`rippled`がインストール](install-rippled.html)されていることを前提としています。 +以下の手順では、サポートされているプラットフォームに[`rippled`がインストール](../installation/index.md)されていることを前提としています。 ## ファイル記述子の制限 @@ -24,22 +24,30 @@ limit the number of simultaneous connections. 1. 次の行を`/etc/security/limits.conf`ファイルの終わりに追加します。 - * soft nofile 65536 - * hard nofile 65536 + ``` + * soft nofile 65536 + * hard nofile 65536 + ``` 2. [開くことができるファイルの数のハード制限](https://ss64.com/bash/ulimit.html)が現在`65536`であることを確認します。 - ulimit -Hn + ``` + ulimit -Hn + ``` このコマンドの出力は`65536`になるはずです。 3. `rippled`をもう一度起動します。 - systemctl start rippled + ``` + systemctl start rippled + ``` 4. それでも`rippled`が起動しない場合は、`/etc/sysctl.conf`を開き、以下のカーネルレベル設定を付加します。 - fs.file-max = 65536 + ``` + fs.file-max = 65536 + ``` ## /etc/opt/ripple/rippled.cfgを開くことができない @@ -61,7 +69,7 @@ Aborted (core dumped) **ヒント:** `rippled`リポジトリには、RPMのインストール時にデフォルトの構成として提供される[`rippled.cfg`サンプルファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)が含まれています。このファイルがない場合は、上記のリンク先からコピーできます。 -- `--conf`[コマンドラインオプション](commandline-usage.html)を使用して、使用する構成ファイルのパスを指定します。 +- `--conf`[コマンドラインオプション](../commandline-usage.md)を使用して、使用する構成ファイルのパスを指定します。 ## バリデータファイルを開くことができない @@ -83,11 +91,13 @@ Aborted (core dumped) - `rippled.cfg`ファイルを編集し、`[validators_file]`設定を削除します。バリデータ設定を`rippled.cfg`ファイルに直接追加します。例: - [validator_list_sites] - https://vl.ripple.com + ``` + [validator_list_sites] + https://vl.ripple.com - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` ## データベースパスを作成できない @@ -172,22 +182,22 @@ Terminating thread rippled: main: unhandled St13runtime_error 'online_delete mus Terminating thread rippled: main: unhandled N5beast14BadLexicalCastE 'std::bad_cast' ``` -`node_size`フィールドの有効なパラメーターは`tiny`、`small`、`medium`、`large`、`huge`です。詳細は、[ノードサイズ](capacity-planning.html#ノードサイズ)を参照してください。 +`node_size`フィールドの有効なパラメーターは`tiny`、`small`、`medium`、`large`、`huge`です。詳細は、[ノードサイズ](../installation/capacity-planning.md#ノードサイズ)を参照してください。 ## シャードパスが欠落している -以下のようなエラーが出力される場合は、`rippled.cfg`の[履歴シャーディング](history-sharding.html)の設定が不完全です。 +以下のようなエラーが出力される場合は、`rippled.cfg`の[履歴シャーディング](../configuration/data-retention/history-sharding.md)の設定が不完全です。 ```text Terminating thread rippled: main: unhandled St13runtime_error 'shard path missing' ``` -設定に`[shard_db]`スタンザが含まれている場合、このスタンザには`path`フィールドが指定されている必要があります。このフィールドは、`rippled`がシャードストアーのデータを書き込むことができるディレクトリを指しています。このエラーが発生する場合は、`path`フィールドが欠落しているか、誤った位置に指定されています。構成ファイルで余分な空白やスペルミスがないかどうかを確認し、[シャード設定の例](configure-history-sharding.html#2-rippledcfgの編集)と比較してください。 +設定に`[shard_db]`スタンザが含まれている場合、このスタンザには`path`フィールドが指定されている必要があります。このフィールドは、`rippled`がシャードストアーのデータを書き込むことができるディレクトリを指しています。このエラーが発生する場合は、`path`フィールドが欠落しているか、誤った位置に指定されています。構成ファイルで余分な空白やスペルミスがないかどうかを確認し、[シャード設定の例](../configuration/data-retention/configure-history-sharding.md#2-rippledcfgの編集)と比較してください。 ## サポート対象外のシャードストアータイプ: RocksDB -RocksDBは、[履歴シャーディング](history-sharding.html)のバックエンドとしてサポートされなくなりました。RocksDBシャードストアーを定義している既存の構成がある場合は、サーバーが起動に失敗します。[新規: rippled 1.3.1][] +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コマンドの直後にプロセスが終了し、出力ログの早い段階で次のようなメッセージが表示されます。 @@ -205,17 +215,14 @@ ShardStore:ERR Unsupported shard store type: RocksDB ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [技術に関するよくある質問](technical-faq.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [技術に関するよくある質問](../../faq.md) - **チュートリアル:** - - [ログメッセージについて](understanding-log-messages.html) - - [容量の計画](capacity-planning.html) + - [ログメッセージについて](understanding-log-messages.md) + - [容量の計画](../installation/capacity-planning.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/infrastructure/troubleshooting/understanding-log-messages.md b/content/@i18n/ja/infrastructure/troubleshooting/understanding-log-messages.md index 6aefdca51a..03b78dc74f 100644 --- a/content/@i18n/ja/infrastructure/troubleshooting/understanding-log-messages.md +++ b/content/@i18n/ja/infrastructure/troubleshooting/understanding-log-messages.md @@ -7,9 +7,9 @@ labels: --- # ログメッセージについて -以下のセクションでは、[`rippled`サーバー](xrpl-servers.html)のデバッグログに出力される最も一般的なログメッセージタイプとその解釈を説明します。 +以下のセクションでは、[`rippled`サーバー](../../concepts/networks-and-servers/index.md)のデバッグログに出力される最も一般的なログメッセージタイプとその解釈を説明します。 -これは、`rippled`の[問題を診断する](diagnosing-problems.html)上で重要なステップです。 +これは、`rippled`の[問題を診断する](diagnosing-problems.md)上で重要なステップです。 ## クラッシュ @@ -23,13 +23,13 @@ Throw Terminating thread rippled: main: unhandled St13runtime_error ``` -サーバーが起動時に常にクラッシュする場合は、[サーバーが起動しない](server-wont-start.html)で考えられる原因を参照してください。 +サーバーが起動時に常にクラッシュする場合は、[サーバーが起動しない](server-wont-start.md)で考えられる原因を参照してください。 -サーバーが稼働中にランダムにクラッシュする場合、または特定のコマンドを実行するとクラッシュする場合は、`rippled`が最新バージョンに[更新](install-rippled.html)されていることを確認してください。最新バージョンに更新済で、サーバーがクラッシュする場合は、以下の点を確認してください。 +サーバーが稼働中にランダムにクラッシュする場合、または特定のコマンドを実行するとクラッシュする場合は、`rippled`が最新バージョンに[更新](../installation/index.md)されていることを確認してください。最新バージョンに更新済で、サーバーがクラッシュする場合は、以下の点を確認してください。 - サーバーのメモリーが不足していませんか。一部のシステムでは、OOM(Out Of Memory)Killerやその他の監視プロセスによって`rippled`が終了されることがあります。 - サーバーが共有環境で稼働している場合、他のユーザーや管理者によってマシンまたはサービスが再起動されますか。たとえば、一部のホステッドプロバイダーは、長期にわたって共有マシンのリソースを大量に消費するサービスを自動的に終了します。 -- サーバーは`rippled`を実行するための[最小要件](system-requirements.html)を満たしていますか。[本番環境サーバーに関する推奨事項](system-requirements.html#推奨される仕様)を適用していますか。 +- サーバーは`rippled`を実行するための[最小要件](../installation/system-requirements.md)を満たしていますか。[本番環境サーバーに関する推奨事項](../installation/system-requirements.md#推奨される仕様)を適用していますか。 上記のいずれにも該当しない場合は、その問題をセキュリティ上重要なバグとしてRippleに報告してください。Rippleでクラッシュを再現できる場合は、報奨を受領できる可能性があります。詳細はを参照してください。 @@ -71,7 +71,7 @@ Terminating thread rippled: main: unhandled St13runtime_error InboundLedger:WRN 11 timeouts for ledger 8265938 ``` -これは、サーバーがそのピアに対して特定のレジャーデータをリクエストする際に問題が発生していることを示しています。[レジャーインデックス](basic-data-types.html#レジャーインデックス)が、[server_infoメソッド][]により報告される最新の検証済みレジャーのインデックスよりもかなり小さい場合は、サーバーが[履歴シャード](history-sharding.html)のダウンロード中である可能性があります。 +これは、サーバーがそのピアに対して特定のレジャーデータをリクエストする際に問題が発生していることを示しています。[レジャーインデックス](../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)が、[server_infoメソッド][]により報告される最新の検証済みレジャーのインデックスよりもかなり小さい場合は、サーバーが[履歴シャード](../configuration/data-retention/history-sharding.md)のダウンロード中である可能性があります。 これは厳密には問題ではありませんが、レジャー履歴を迅速に取得したい場合は、`[ips_fixed]`構成スタンザを追加または編集してからサーバーを再起動することで、すべての履歴が記録されたピアに接続するように`rippled`を構成できます。たとえば、すべての履歴が記録されたRippleのサーバーに常に接続するには、以下のようにします。 @@ -89,7 +89,7 @@ s2.ripple.com 51235 InboundLedger:WRN Want: 5AE53B5E39E6388DBACD0959E5F5A0FCAF0E0DCBA45D9AB15120E8CDD21E019B ``` -これは、サーバーの同期中、埋め戻し中、[履歴シャード](history-sharding.html)のダウンロード中は正常です。 +これは、サーバーの同期中、埋め戻し中、[履歴シャード](../configuration/data-retention/history-sharding.md)のダウンロード中は正常です。 ## LoadMonitor:WRN Job @@ -129,7 +129,7 @@ type=RocksDB ## No hash for fetch pack -以下のようなメッセージは、[履歴シャーディング](history-sharding.html)のために履歴レジャーをダウンロードする際に、`rippled` v1.1.0以前のバグが原因で発生します。 +以下のようなメッセージは、[履歴シャーディング](../configuration/data-retention/history-sharding.md)のために履歴レジャーをダウンロードする際に、`rippled` v1.1.0以前のバグが原因で発生します。 ```text 2018-Aug-28 22:56:21.397076850 LedgerMaster:ERR No hash for fetch pack. Missing Index 7159808 @@ -140,7 +140,7 @@ type=RocksDB ## Potential Censorship -XRP Ledgerが取引検閲の可能性を検出すると、以下のようなログメッセージが出力されます。ログメッセージと取引検閲検出機能の詳細は、[取引検閲の検知](transaction-censorship-detection.html)を参照してください。 +XRP Ledgerが取引検閲の可能性を検出すると、以下のようなログメッセージが出力されます。ログメッセージと取引検閲検出機能の詳細は、[取引検閲の検知](../../concepts/networks-and-servers/transaction-censorship-detection.md)を参照してください。 **警告メッセージ** @@ -157,7 +157,7 @@ LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 ## シャード: No such file or directory -`rippled` 1.3.1のバグが原因で、[履歴シャーディング](history-sharding.html)を有効にしたときに次のようなログメッセージが書き込まれることがあります。 +`rippled` 1.3.1のバグが原因で、[履歴シャーディング](../configuration/data-retention/history-sharding.md)を有効にしたときに次のようなログメッセージが書き込まれることがあります。 ```text ShardStore:ERR shard 1804: No such file or directory @@ -187,8 +187,8 @@ ShardStore:ERR shard 2236: No such file or directory 2018-Aug-28 22:56:22.256065549 Validations:WRN Unable to determine hash of ancestor seq=3 from ledger hash=00B1E512EF558F2FD9A0A6C263B3D922297F26A55AEB56A009341A22895B516E seq=12133675 ``` -{% include '_snippets/unsynced_warning_logs.ja.md' %} - +{% partial file="/_snippets/unsynced_warning_logs.md" /%} + ## View of consensus changed during open @@ -201,8 +201,8 @@ ShardStore:ERR shard 2236: No such file or directory 2018-Aug-28 22:56:22.368499966 LedgerConsensus:WRN {"accepted":true,"account_hash":"89A821400087101F1BF2D2B912C6A9F2788CC715590E8FA5710F2D10BF5E3C03","close_flags":0,"close_time":588812130,"close_time_human":"2018-Aug-28 22:55:30.000000000","close_time_resolution":30,"closed":true,"hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_index":"3","parent_close_time":588812070,"parent_hash":"5F5CB224644F080BC8E1CC10E126D62E9D7F9BE1C64AD0565881E99E3F64688A","seqNum":"3","totalCoins":"100000000000000000","total_coins":"100000000000000000","transaction_hash":"0000000000000000000000000000000000000000000000000000000000000000"} ``` -{% include '_snippets/unsynced_warning_logs.ja.md' %} - +{% partial file="/_snippets/unsynced_warning_logs.md" /%} + ## We are not running on the consensus ledger @@ -211,24 +211,21 @@ ShardStore:ERR shard 2236: No such file or directory NetworkOPs:WRN We are not running on the consensus ledger ``` -{% include '_snippets/unsynced_warning_logs.ja.md' %} - +{% partial file="/_snippets/unsynced_warning_logs.md" /%} + ## 関連項目 - **コンセプト:** - - [`rippled`サーバー](xrpl-servers.html) - - [技術に関するよくある質問](technical-faq.html) + - [`rippled`サーバー](../../concepts/networks-and-servers/index.md) + - [技術に関するよくある質問](../../faq.md) - **チュートリアル:** - - [問題の診断](diagnosing-problems.html) - - [容量の計画](capacity-planning.html) + - [問題の診断](diagnosing-problems.md) + - [容量の計画](../installation/capacity-planning.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [`rippled`コマンドラインの使用](commandline-usage.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) - [server_infoメソッド][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/introduction/crypto-wallets.md b/content/@i18n/ja/introduction/crypto-wallets.md index 8876377490..14d7e30012 100644 --- a/content/@i18n/ja/introduction/crypto-wallets.md +++ b/content/@i18n/ja/introduction/crypto-wallets.md @@ -18,7 +18,7 @@ labels: この種のウォレットは使い勝手がよく、パスワードを忘れても通常リセットしてもらえるため、日々の支払いにはこちらの方が望ましいかもしれません。また、XRP Ledgerのアカウントを持っていない場合、レジャーの準備金はあなたには適用されません。管理人は、あなたがXRP Ledgerで問題に遭遇した場合のバッファーの役割を果たし、あなたが何かをする方法がわからない場合、支援やサポートを提供することがあります。 -![カストディアル vs ノンカストディアル ウォレット](img/introduction15-custodial-non-custodial.png) +![カストディアル vs ノンカストディアル ウォレット](/img/introduction15-custodial-non-custodial.png) [XUMM](https://xumm.app/)のようなノンカストディアルウォレットは、あなたのアカウントの秘密鍵をあなた自身が管理するものです。つまり、アカウントのセキュリティを管理する最終的な責任はあなたにあるのです。 @@ -35,7 +35,7 @@ labels: ハードウェアウォレットは、あなたの秘密鍵を保管する物理的なデバイスです。ハードウェアウォレットを使用する主な利点は、使用していないときにインターネットから切り離して情報を保護できることです。ハードウェアウォレットは、ハッキングが容易なコンピュータやスマートフォンから鍵を完全に隔離することができます。 -![ハードウェア vs ソフトウェア ウォレット](img/introduction16-hardware-software.png) +![ハードウェア vs ソフトウェア ウォレット](/img/introduction16-hardware-software.png) 一方で、ソフトウェアウォレットは、完全にデジタル化されているのが特徴です。そのため、使い勝手が良い反面、安全性に劣りますが、通常、使い勝手を向上させるための追加機能が付いています。最終的に、この2つを選択するのは、あなた自身の使いやすさと、簡単であることがどれだけ重要であるかということになります。 @@ -45,4 +45,4 @@ labels: XRP Ledgerはオープンソースプロジェクトであり、クライアントライブラリやAPIメソッドが公開されています。技術的にはHTTP/WebSocketツールを使ってレジャーとやりとりすることができますが、日常的な使用としては現実的ではありません。独自のウォレットを作成してレジャーとやり取りすることはできますが、このオプションを選択する前に、アカウント、トランザクション、レジャーがどのように連携しているかを正確に理解する必要があります。 -次のページ: [トランザクションとリクエスト](txn-and-requests.html) +次のページ: [トランザクションとリクエスト](transactions-and-requests.md) diff --git a/content/@i18n/ja/introduction/index.md b/content/@i18n/ja/introduction/index.md index 81ad8cf20a..5fd3218f35 100644 --- a/content/@i18n/ja/introduction/index.md +++ b/content/@i18n/ja/introduction/index.md @@ -1,9 +1,13 @@ --- html: introduction.html parent: docs.html -template: pagetype-category.html.jinja +metadata: + indexPage: true top_nav_grouping: カテゴリ --- # 基本 -XRP Ledger(XRPL)の主要な機能を簡単に紹介します。これを読んでXRPLのハイレベルな理解を深め、その後、特に興味のある分野についての詳細を読むことができます。XRP Ledgerは、アカウント間のトークンのデジタルトランザクションを永続的に記録するブロックチェーンです。以下のセクションは、その文章で紹介された概念を拡張するものです。 \ No newline at end of file +XRP Ledger(XRPL)の主要な機能を簡単に紹介します。これを読んでXRPLのハイレベルな理解を深め、その後、特に興味のある分野についての詳細を読むことができます。XRP Ledgerは、アカウント間のトークンのデジタルトランザクションを永続的に記録するブロックチェーンです。以下のセクションは、その文章で紹介された概念を拡張するものです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/introduction/software-ecosystem.md b/content/@i18n/ja/introduction/software-ecosystem.md index ee13d9d1d5..3990263231 100644 --- a/content/@i18n/ja/introduction/software-ecosystem.md +++ b/content/@i18n/ja/introduction/software-ecosystem.md @@ -8,7 +8,7 @@ labels: # ソフトウェアエコシステム XRP Ledgerは、価値のインターネットを実現するソフトウェアプロジェクトの、深く階層的なエコシステムの本拠地となっています。 XRP Ledgerと相互作用する全てのプロジェクト、ツール、ビジネスをリストアップすることは不可能なので、このページではいくつかのカテゴリーを挙げ、このウェブサイトで文書化されているいくつかの中心的なプロジェクトに焦点を当てます。 -![XRPLエコシステム](img/ecosystem-apps-and-services.svg) +![XRPLエコシステム](/img/ecosystem-apps-and-services.svg) ## スタックレベル @@ -23,33 +23,33 @@ XRP Ledgerは、価値のインターネットを実現するソフトウェア ### コアサーバ -XRP Ledgerの中心であるピアツーピアネットワークは、コンセンサスとトランザクションプロセスのルールを実行するために、信頼性が高く、効率のよいサーバを必要とします。XRP Ledger財団では、このサーバソフトウェアのリファレンス実装である[**`rippled`**](xrpl-servers.html)(発音は「リップルディー」)を公開しています。このサーバは、[一般利用が可能なオープンソースライセンス](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md)の下で使用できるため、誰でもこのサーバの自身のインスタンスを検証し、変更することができます。また、いくつかの制限の下でそれを再公開することができます。 +XRP Ledgerの中心であるピアツーピアネットワークは、コンセンサスとトランザクションプロセスのルールを実行するために、信頼性が高く、効率のよいサーバを必要とします。XRP Ledger財団では、このサーバソフトウェアのリファレンス実装である[**`rippled`**](../concepts/networks-and-servers/index.md)(発音は「リップルディー」)を公開しています。このサーバは、[一般利用が可能なオープンソースライセンス](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md)の下で使用できるため、誰でもこのサーバの自身のインスタンスを検証し、変更することができます。また、いくつかの制限の下でそれを再公開することができます。 -![コアサーバ](img/ecosystem-peer-to-peer.svg) +![コアサーバ](/img/ecosystem-peer-to-peer.svg) -各コアサーバは、([テストネットワーク](parallel-networks.html)に従うように構成されていない限り)同じネットワークに同期され、ネットワーク全体のあらゆる通信にアクセスできます。ネットワーク上の各サーバは、最近のトランザクションと、それらのトランザクションで行われた変更の記録とともに、XRP Ledger全体の最新の状態データの完全なコピーを保持します。また、各サーバは各トランザクションを単独で処理すると同時に、そのトランザクションの結果が残りのネットワークに一致するか検証します。サーバは、より多くの[レジャー履歴](ledger-history.html)を保持したり、[バリデータ](rippled-server-modes.html#バリデータ)としてコンセンサスプロセスに参加するように構成することができます。 +各コアサーバは、([テストネットワーク](../concepts/networks-and-servers/parallel-networks.md)に従うように構成されていない限り)同じネットワークに同期され、ネットワーク全体のあらゆる通信にアクセスできます。ネットワーク上の各サーバは、最近のトランザクションと、それらのトランザクションで行われた変更の記録とともに、XRP Ledger全体の最新の状態データの完全なコピーを保持します。また、各サーバは各トランザクションを単独で処理すると同時に、そのトランザクションの結果が残りのネットワークに一致するか検証します。サーバは、より多くの[レジャー履歴](../concepts/networks-and-servers/ledger-history.md)を保持したり、[バリデータ](../concepts/networks-and-servers/rippled-server-modes.md#バリデータ)としてコンセンサスプロセスに参加するように構成することができます。 -コアサーバは、ユーザがデータを調べたり、サーバを管理したり、トランザクションを送信したりするために、[HTTP / WebSocket API](http-websocket-apis.html)を公開します。また、HTTP / WebSocket APIを提供するものの、ピアツーピアネットワークに直接接続せず、トランザクションを処理したりコンセンサスに参加したりしないサーバも存在します。Reportingモードで動作する`rippled`サーバやClioサーバなどのこれらのサーバは、トランザクションを処理するためにP2Pモードのコアサーバに依存しています。 +コアサーバは、ユーザがデータを調べたり、サーバを管理したり、トランザクションを送信したりするために、[HTTP / WebSocket API](../references/http-websocket-apis/index.md)を公開します。また、HTTP / WebSocket APIを提供するものの、ピアツーピアネットワークに直接接続せず、トランザクションを処理したりコンセンサスに参加したりしないサーバも存在します。Reportingモードで動作する`rippled`サーバやClioサーバなどのこれらのサーバは、トランザクションを処理するためにP2Pモードのコアサーバに依存しています。 ### クライアントライブラリ ライブラリは、通常HTTP / WebSocket APIを通じてXRP Ledgerにアクセスする際の共通作業の一部をシンプルにするものです。これらは、データを様々なプログラミング言語にとってより身近で便利な形に変換し、一般的な操作の実装を備えています。クライアントライブラリの中には、XRP Ledger財団によって公式にメンテナンスされているものもあれば、コミュニティの他のエンティティによってメンテナンスされているものもあります。 -![クライアントライブラリ](img/ecosystem-client-libraries.svg) +![クライアントライブラリ](/img/ecosystem-client-libraries.svg) ほとんどのクライアント・ライブラリのコアな機能の一つは、トランザクションをローカルで署名することであり、ユーザは秘密鍵をネットワーク上で送信する必要をなくします。 多くのミドルウェアサービスは、内部でクライアントライブラリを使用しています。 -現在利用可能なクライアントライブラリについては、[クライアントライブラリ](client-libraries.html)を参照してください。 +現在利用可能なクライアントライブラリについては、[クライアントライブラリ](../references/client-libraries.md)を参照してください。 ### ミドルウェア ミドルウェアサービスは、一方ではXRP Ledger APIを利用し、もう一方では独自のAPIを提供するプログラムです。抽象化層を提供して、いくつかの一般的な機能をサービスとして提供することで上位のアプリケーションを容易に構築できるようにします。 -![ミドルウェア](img/ecosystem-middleware.svg) +![ミドルウェア](/img/ecosystem-middleware.svg) クライアントライブラリは、インポートしたプログラムとともに新たにインスタンス化され、シャットダウンされますが、ミドルウェアサービスは通常、無期限に稼働し続け、独自のデータベース(リレーショナルSQLデータベースなど)や設定ファイルを持つことがあります。クラウドサービスとして提供されているものもあり、価格や利用方法にさまざまな制限があります。 @@ -58,11 +58,8 @@ XRP Ledgerの中心であるピアツーピアネットワークは、コンセ 最上層は、最もエキサイティングなことが起こる場所です。アプリとサービスは、XRP Ledgerに接続するための手段をユーザとデバイスに提供します。私設取引所、トークン発行者、マーケットプレイス、分散型取引所へのインターフェース、ウォレットなどのサービスは、XRPやあらゆる種類のトークンを含む様々な資産を売買・取引するためのユーザインターフェースを提供します。その他にも、さらに上位に重ねた追加サービスなど、多くの可能性が存在します。 -![アプリとサービス](img/ecosystem-apps-and-services.svg) +![アプリとサービス](/img/ecosystem-apps-and-services.svg) -このレイヤーで構築できるいくつかの例については、[ユースケース](use-cases.html)をご覧ください。 +このレイヤーで構築できるいくつかの例については、[ユースケース](../use-cases/index.md)をご覧ください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/introduction/transactions-and-requests.md b/content/@i18n/ja/introduction/transactions-and-requests.md index 8ac4a512c8..4eee883a7f 100644 --- a/content/@i18n/ja/introduction/transactions-and-requests.md +++ b/content/@i18n/ja/introduction/transactions-and-requests.md @@ -35,11 +35,11 @@ XRP Ledgerとのすべてのやり取りは、レジャーに変更を加える JavaScript、Python、コマンドライン、または互換性のあるサービスから、RESTfulコマンドとしてトランザクションをレジャーに送信します。rippledサーバは、トランザクションをレジャーに提案します。 -![トランザクションの提案](img/introduction17-gather-txns.png) +![トランザクションの提案](/img/introduction17-gather-txns.png) バリデータの80%超が提案された現在のトランザクションを承認すると、その取引は永久的にレジャーの一部として記録されます。rippledサーバは、送信したトランザクションの結果を返します。 -トランザクションについてのより詳しい解説は、[トランザクション](transactions.html)をご覧ください。 +トランザクションについてのより詳しい解説は、[トランザクション](../concepts/transactions/index.md)をご覧ください。 ## リクエストの仕組み @@ -49,7 +49,7 @@ JavaScript、Python、コマンドライン、または互換性のあるサー リクエストを送信すると、rippledサーバまたはClioサーバ(リクエストに対応する専用のサーバ)で処理されます。 -![Clioサーバ](img/introduction19-clio.png) +![Clioサーバ](/img/introduction19-clio.png) ClioサーバはXRPL上の他のrippledサーバの負荷の一部を軽減し、処理速度と信頼性を向上させます。 @@ -109,6 +109,6 @@ ClioサーバはXRPL上の他のrippledサーバの負荷の一部を軽減し } } ``` -Accountのフィールドについては、[アカウント](accounts.html)をご覧ください。 +Accountのフィールドについては、[アカウント](../concepts/accounts/accounts.md)をご覧ください。 -次のページ: [ソフトウェアエコシステム](software-ecosystem.html) +次のページ: [ソフトウェアエコシステム](software-ecosystem.md) diff --git a/content/@i18n/ja/introduction/what-is-the-xrp-ledger.md b/content/@i18n/ja/introduction/what-is-the-xrp-ledger.md index 1d8a22154d..3986b60c78 100644 --- a/content/@i18n/ja/introduction/what-is-the-xrp-ledger.md +++ b/content/@i18n/ja/introduction/what-is-the-xrp-ledger.md @@ -14,35 +14,35 @@ XRPは、中央集権的な機関が管理せずブロックチェーン暗号 ブロックチェーンは、連続的に変化するデータのリストです。ブロックチェーンは、データのブロックからなります。 -![データのブロック](img/introduction2-data-block.png) +![データのブロック](/img/introduction2-data-block.png) 信頼できるバリデータノードのグループが、データが有効であるとのコンセンサスを得ます。 -![バリデータノード](img/introduction3-validators.png) +![バリデータノード](/img/introduction3-validators.png) ブロックは、非常に精巧で複雑な、コンピュータで生成された、16進数64文字の暗号化されたハッシュ値で一意に識別されます。 -![暗号化されたハッシュ値](img/introduction4-hash.png) +![暗号化されたハッシュ値](/img/introduction4-hash.png) また、ブロックは、作成時刻を示すタイムスタンプで識別されます。 -![タイムスタンプ](img/introduction5-time-stamp.png) +![タイムスタンプ](/img/introduction5-time-stamp.png) 各バリデータノードはデータブロックの各自のコピーを保持します。単一の中央機関は存在しません。すべてのコピーが同一に有効です。 -![有効なコピーを持つバリデータ](img/introduction6-valid-copies.png) +![有効なコピーを持つバリデータ](/img/introduction6-valid-copies.png) 各ブロックは、前のブロックへのリンクとしてハッシュポインタを含んでいます。また、タイムスタンプ、新しいデータ、独自のハッシュ値も持っています。 -![ハッシュポインタ](img/introduction7-two-blocks.png) +![ハッシュポインタ](/img/introduction7-two-blocks.png) この構造により、各ブロックはチェーンの中で明確な位置を持ち、前のデータブロックにリンクしています。これにより、ブロックの不変的なチェーンが形成されます。前のブロックをたどることで、チェーン上の現在のすべての情報を常に確認することができます。 -![3つのデータブロック](img/introduction8-3-blocks.png) +![3つのデータブロック](/img/introduction8-3-blocks.png) 設計上、ブロックチェーンはデータの改変に耐性があります。すべての台帳ノードは、ブロックチェーンの正確なコピーを取得します。 -![ブロックチェーンの同一コピーを持つ2人のバリデータ](img/introduction9-2-sets-of-3.png) +![ブロックチェーンの同一コピーを持つ2人のバリデータ](/img/introduction9-2-sets-of-3.png) これにより、当事者間のトランザクションを効率よく、検証可能かつ永続的に記録するオープンな分散型台帳ができあがります。 @@ -52,11 +52,11 @@ XRPは、中央集権的な機関が管理せずブロックチェーン暗号 XRPLのrippledサーバのほとんどは、トランザクションを監視または提案します。サーバの重要なサブセットはバリデータとして実行されます。これらの信頼できるサーバは、新しいトランザクションのリストを新しく作成可能なレジャーインスタンス(ブロックチェーンにおける新しいブロック)に蓄積します。 -![トランザクションの収集](img/introduction17-gather-txns.png) +![トランザクションの収集](/img/introduction17-gather-txns.png) バリデータはそのリストを他のすべてのバリデータと共有します。バリデータは互いの変更案を取り入れ、新しいバージョンのレジャー案を配布します。 -![80%のコンセンサス](img/introduction18-80-percent-consensus.png) +![80%のコンセンサス](/img/introduction18-80-percent-consensus.png) 80%超のバリデータが一連のトランザクションに合意すると、チェーンの末尾に新しいレジャーインスタンスを作成し、再びプロセスを開始します。このコンセンサスプロセスには4~6秒かかります。レジャーインスタンスが作成される様子は、[https://livenet.xrpl.org/](https://livenet.xrpl.org/)にて、リアルタイムで確認することができます。 @@ -66,4 +66,4 @@ XRPLは、rippledサーバの自分のインスタンスをセットアップし 自己資金を投入せずにXRPLの機能を試したい開発者や新規ユーザのために、 _Testnet_ と _Devnet_ という2つの開発者向けの環境が用意されています。ユーザは(偽の)1,000XRPの資金を得てアカウントを作成し、どちらの環境にも接続してXRPLとやり取りすることができます。 -次のページ: [XRPとは?](what-is-xrp.html) +次のページ: [XRPとは?](what-is-xrp.md) diff --git a/content/@i18n/ja/introduction/what-is-xrp.md b/content/@i18n/ja/introduction/what-is-xrp.md index 340ead7c32..d0c8676b7f 100644 --- a/content/@i18n/ja/introduction/what-is-xrp.md +++ b/content/@i18n/ja/introduction/what-is-xrp.md @@ -13,7 +13,7 @@ XRPはXRP Ledgerにて使用可能な暗号通貨です。 暗号通貨は、暗号技術によって保護され、ブロックチェーンを使用して追跡されるデジタルまたは仮想通貨です。暗号通貨のセキュリティと完全性により、偽造や二重支払いはほぼ不可能です。 -![ブロックチェーン上のXRPL](img/introduction10-xrp-on-chain.png) +![ブロックチェーン上のXRPL](/img/introduction10-xrp-on-chain.png) 暗号通貨、デジタル通貨、デジタル資産は、すべて同じ一般的なカテゴリに分類されます。暗号通貨とは次のようなものを指します。 @@ -25,7 +25,7 @@ XRPはXRP Ledgerにて使用可能な暗号通貨です。 - 偽造できない - 銀行口座や決済のためのインフラに依存しない -![暗号通貨の利点](img/introduction11-all-the-things.png) +![暗号通貨の利点](/img/introduction11-all-the-things.png) 暗号通貨は _代替可能トークン_ です。 _代替可能_ とは、あるトークンを同じ価値の他のトークンに置き換えることができるという意味です。郵便切手は代替可能(相対的な価値が一致し、交換可能)であるため、手紙を出すのに50セントかかる場合、25セント切手を2枚使うか、10セント切手を5枚使って郵便料金を支払うことが出来ます。 @@ -35,7 +35,7 @@ XRPはXRP Ledgerにて使用可能な暗号通貨です。 ## しかし、なぜそれが価値あるのでしょうか? -![暗号通貨の利点](img/introduction12-diamond.png) +![暗号通貨の利点](/img/introduction12-diamond.png) 暗号通貨がコンピュータのデータのみに基づくものであり、貴金属のような有形の商品には基づかないというのは、一見不思議に思えるかもしれません。歴史的に見ると、通貨は牛や貝殻、希少金属、石などの物理的な物に基づいています。しかし、これらのものは、ある文化圏の人々の間で合意があったからこそ価値を持つものでした。 @@ -48,19 +48,19 @@ XRPはXRP Ledgerにて使用可能な暗号通貨です。 XRP Ledgerは、2011年から2012年初頭にかけて、Jed McCaleb、Arthur Britto、David Schwartzによって開発されました。2012年9月、JedとArthurはChris LarsenとともにRippleと名の会社(当時はOpenCoin Inc.という会社)を設立し、Ripple社がXRP Ledger上で開発を行う代わりに、800億XRPをRipple社へ譲渡することを決定しました。 -![男性と1XRP](img/introduction13-x-prefix.png) +![男性と1XRP](/img/introduction13-x-prefix.png) それ以来、同社はXRPを定期的に売却し、XRP市場の強化とネットワーク流動性の向上に利用し、より大きなエコシステムの発展を促してきました。2017年、同社は[550億XRPをエスクローに預け](https://ripple.com/insights/ripple-escrows-55-billion-xrp-for-supply-predictability/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993)、当面の間、一般供給量に入る量が[予測可能に成長する](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993)ことを保証しました。Ripple社の[XRPマーケットパフォーマンスサイト](https://ripple.com/xrp/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993)は、同社が現在利用可能でエスクローにロックされているXRPの量を報告しています。 -![1,000億を表す "B "](img/introduction14-hundred-billion.png) +![1,000億を表す "B "](/img/introduction14-hundred-billion.png) ### 名称 -元々、XRP Ledgerは、その技術が[複数のホップと通貨を通じて波及(ripple)する](rippling.html)支払いを可能にする方法から「リップル」と呼ばれていました。Ledgerに組み込まれたネイティブアセットについて、クリエイターたちは「リップルクレジット」または「リップル」という用語と、[ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)標準の非国家通貨を表すX接頭辞から「XRP」というティッカーシンボルを選びました。同社は「Ripple Labs」として登録。「XRP」という名称は、技術や会社の類似した名称との混同を避けるため、あらゆる文脈で資産を指すために使用されるようになり、最終的に同社は自らの名称を「Ripple」に短縮しました。2018年5月、[コミュニティは、それまで会社とデジタル資産の両方に使用されていたトリスケリオンのロゴと区別するために、XRPを表す新しい「X」のシンボル](https://twitter.com/xrpsymbol/status/1006925937571713025)を選択しました。 +元々、XRP Ledgerは、その技術が[複数のホップと通貨を通じて波及(ripple)する](../concepts/tokens/fungible-tokens/rippling.md)支払いを可能にする方法から「リップル」と呼ばれていました。Ledgerに組み込まれたネイティブアセットについて、クリエイターたちは「リップルクレジット」または「リップル」という用語と、[ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)標準の非国家通貨を表すX接頭辞から「XRP」というティッカーシンボルを選びました。同社は「Ripple Labs」として登録。「XRP」という名称は、技術や会社の類似した名称との混同を避けるため、あらゆる文脈で資産を指すために使用されるようになり、最終的に同社は自らの名称を「Ripple」に短縮しました。2018年5月、[コミュニティは、それまで会社とデジタル資産の両方に使用されていたトリスケリオンのロゴと区別するために、XRPを表す新しい「X」のシンボル](https://twitter.com/xrpsymbol/status/1006925937571713025)を選択しました。 | XRPの"X"ロゴ | Ripple社のトリスケリオン | |:-------------------------------------|:-------------------------------------------| -| !["X"ロゴ](assets/img/xrp-x-logo.png) | ![トリスケリオン](img/ripple-triskelion.png) | +| !["X"ロゴ](assets/img/xrp-x-logo.png) | ![トリスケリオン](/img/ripple-triskelion.png) | ### 商標 @@ -69,4 +69,4 @@ XRP Ledgerは、2011年から2012年初頭にかけて、Jed McCaleb、Arthur Br この商標出願は2013年に米国特許商標庁(USPTO)に登録され、OpenCoin IncとRipple Labs Incが譲受人となっています。2022年に商標の譲渡が更新され、現在はMITTETULUNDUSÜHING XRP LEDGER TRUST(「XRPLF」)に譲渡されています。 -次のページ: [暗号通貨のウォレット](crypto-wallets.html) +次のページ: [暗号通貨のウォレット](crypto-wallets.md) diff --git a/content/@i18n/ja/references/client-libraries.md b/content/@i18n/ja/references/client-libraries.md index 455219d470..a51da3c8ee 100644 --- a/content/@i18n/ja/references/client-libraries.md +++ b/content/@i18n/ja/references/client-libraries.md @@ -7,14 +7,14 @@ blurb: これらのライブラリを使用して、お好みのプログラミ これらのクライアントライブラリは、XRP Ledgerのデータにアクセスし処理するための一般的な作業の一部を簡素化し、それぞれのプログラミング言語のネイティブな規約に従った形でデータを表示します。 -その他のプログラミング言語の場合、[HTTP APIs](http-websocket-apis.html)を通してXRP Ledgerにアクセスすることが可能です。 +その他のプログラミング言語の場合、[HTTP APIs](http-websocket-apis/index.md)を通してXRP Ledgerにアクセスすることが可能です。 | 言語 | ライブラリ名 | Get Started | APIリファレンス | ソースコード | |---------------------------------|------------------------|--------------|---------------|-------------| -| **Python** | `xrpl-py` | [Pythonを使ってみよう](get-started-using-python.html) | [API リファレンス](https://xrpl-py.readthedocs.io/) | [リポジトリ](https://github.com/XRPLF/xrpl-py) | -| **JavaScript** / **TypeScript** | `xrpl.js` | [JavaScriptを使ってみよう](get-started-using-javascript.html) | [API リファレンス](https://js.xrpl.org/) | [リポジトリ](https://github.com/XRPLF/xrpl.js) | +| **Python** | `xrpl-py` | [Pythonを使ってみよう](../tutorials/get-started/get-started-using-python.md) | [API リファレンス](https://xrpl-py.readthedocs.io/) | [リポジトリ](https://github.com/XRPLF/xrpl-py) | +| **JavaScript** / **TypeScript** | `xrpl.js` | [JavaScriptを使ってみよう](../tutorials/get-started/get-started-using-javascript.md) | [API リファレンス](https://js.xrpl.org/) | [リポジトリ](https://github.com/XRPLF/xrpl.js) | | **JavaScript** / **TypeScript** | `xrpl-client` | [触ってみる](https://jsfiddle.net/WietseWind/35az6p1b/) | [NPM リファレンス](https://www.npmjs.com/package/xrpl-client) | [リポジトリ](https://github.com/XRPL-Labs/xrpl-client) | | **JavaScript** / **TypeScript** | `xrpl-accountlib` | [触ってみる](https://jsfiddle.net/WietseWind/gkefpnu0/) | [NPM リファレンス](https://www.npmjs.com/package/xrpl-accountlib) | [リポジトリ](https://github.com/WietseWind/xrpl-accountlib) | | **C++** | `rippled` 署名ライブラリ | [署名ライブラリを使ってみよう](https://github.com/XRPLF/rippled/tree/develop/Builds/linux#signing-library) | | ([`rippled`](https://github.com/XRPLF/rippled/))の一部 | -| **Java** | `xrpl4j` | [Javaを使ってみよう](get-started-using-java.html) | [API リファレンス](https://javadoc.io/doc/org.xrpl/) | [リポジトリ](https://github.com/XRPLF/xrpl4j) | -| **PHP** | `XRPL_PHP` | [PHPを使ってみよう](get-started-using-php.html) | [XRPL_PHP ドキュメント](https://alexanderbuzz.github.io/xrpl-php-docs/) | [リポジトリ](https://github.com/AlexanderBuzz/xrpl-php) | +| **Java** | `xrpl4j` | [Javaを使ってみよう](../tutorials/get-started/get-started-using-java.md) | [API リファレンス](https://javadoc.io/doc/org.xrpl/) | [リポジトリ](https://github.com/XRPLF/xrpl4j) | +| **PHP** | `XRPL_PHP` | [PHPを使ってみよう](../tutorials/get-started/get-started-using-php.md) | [XRPL_PHP ドキュメント](https://alexanderbuzz.github.io/xrpl-php-docs/) | [リポジトリ](https://github.com/AlexanderBuzz/xrpl-php) | diff --git a/content/@i18n/ja/references/data-api.md b/content/@i18n/ja/references/data-api.md index 025829f753..930235658e 100644 --- a/content/@i18n/ja/references/data-api.md +++ b/content/@i18n/ja/references/data-api.md @@ -7,12 +7,12 @@ nav_omit: true --- # Ripple Data API v2 -**警告:** Ripple Data API v2は非推奨となりました。代わりに[HTTP / WebSocket API](http-websocket-apis.html)を使って下さい。 +**警告:** Ripple Data API v2は非推奨となりました。代わりに[HTTP / WebSocket API](http-websocket-apis/index.md)を使って下さい。 古いData APIについては[rippled-historical-database リポジトリ](https://github.com/ripple/rippled-historical-database)をご覧ください. ## Alternatives -アカウント残高や取引履歴のリクエストなど、ほとんどの一般的な操作では、[WebSocket接続](get-started-using-http-websocket-apis.html#websocket-api)または[JSON-RPC(HTTP POST)](get-started-using-http-websocket-apis.html#json-rpc)を使用して、セルフホストまたは[公開XRP Ledgerサーバー](public-servers.html)にリクエストすることとができます。 +アカウント残高や取引履歴のリクエストなど、ほとんどの一般的な操作では、[WebSocket接続](../tutorials/get-started/get-started-using-http-websocket-apis.md#websocket-api)または[JSON-RPC(HTTP POST)](../tutorials/get-started/get-started-using-http-websocket-apis.md#json-rpc)を使用して、セルフホストまたは[公開XRP Ledgerサーバー](../tutorials/get-started/public-servers.md)にリクエストすることとができます。 -詳細については、[HTTP / WebSocket APIsの使用を開始する](get-started-using-http-websocket-apis.html)ページをご覧ください。 +詳細については、[HTTP / WebSocket APIsの使用を開始する](../tutorials/get-started/get-started-using-http-websocket-apis.md)ページをご覧ください。 diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/index.md index 3846c1a3da..4e07295394 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/index.md @@ -9,51 +9,51 @@ labels: `rippled`サーバーと直接通信する際には管理APIメソッドを使用します。管理メソッドは、信頼できるサーバー運用担当者のみを対象としています。管理メソッドには、サーバーの管理、監視、デバッグのためのコマンドが含まれています。 -管理コマンドを使用できるのは、管理者として、`rippled.cfg`ファイルに指定されているホストとポートで`rippled`サーバーに接続している場合に限られます。デフォルトでは、コマンドラインクライアントが管理接続を使用します。`rippled`への接続についての詳細は、[rippled API入門](get-started-using-http-websocket-apis.html)を参照してください。 +管理コマンドを使用できるのは、管理者として、`rippled.cfg`ファイルに指定されているホストとポートで`rippled`サーバーに接続している場合に限られます。デフォルトでは、コマンドラインクライアントが管理接続を使用します。`rippled`への接続についての詳細は、[rippled API入門](../../../tutorials/get-started/get-started-using-http-websocket-apis.md)を参照してください。 -## [キー生成メソッド](key-generation-methods.html) +## [キー生成メソッド](key-generation-methods/index.md) キーを生成および管理するには、以下のメソッドを使用します。 -* **[`validation_create`](validation_create.html)** - 新しいrippledバリデータのキーを生成します。 -* **[`wallet_propose`](wallet_propose.html)** - 新規アカウントのキーを生成します。 +* **[`validation_create`](key-generation-methods/validation_create.md)** - 新しいrippledバリデータのキーを生成します。 +* **[`wallet_propose`](key-generation-methods/wallet_propose.md)** - 新規アカウントのキーを生成します。 -## [ロギングおよびデータ管理のメソッド](logging-and-data-management-methods.html) +## [ロギングおよびデータ管理のメソッド](logging-and-data-management-methods/index.md) ログレベルとその他のデータ(レジャーなど)の管理には、以下のメソッドを使用します。 -* **[`can_delete`](can_delete.html)** - 特定レジャーまでのレジャーのオンライン削除を許可します。 -* **[`download_shard`](download_shard.html)** - レジャー履歴の特定のシャードをダウンロードします。 -* **[`ledger_cleaner`](ledger_cleaner.html)** - レジャークリーナーサービスが破損データを確認するように設定します。 -* **[`ledger_request`](ledger_request.html)** - ピアサーバーに対し特定のレジャーバージョンを照会します。 -* **[`log_level`](log_level.html)** - ログの詳細レベルを取得または変更します。 -* **[`logrotate`](logrotate.html)** - ログファイルを再度開きます。 +* **[`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)** - ピアサーバーに対し特定のレジャーバージョンを照会します。 +* **[`log_level`](logging-and-data-management-methods/log_level.md)** - ログの詳細レベルを取得または変更します。 +* **[`logrotate`](logging-and-data-management-methods/logrotate.md)** - ログファイルを再度開きます。 -## [サーバー制御メソッド](server-control-methods.html) +## [サーバー制御メソッド](server-control-methods/index.md) rippledサーバーの管理には、以下のメソッドを使用します。 -* **[`connect`](connect.html)** - rippledサーバーを特定のピアに強制的に接続します。 -* **[`ledger_accept`](ledger_accept.html)** - スタンドアロンモードでレジャーを閉鎖し、次のレジャーに進みます。 -* **[`stop`](stop.html)** - rippledサーバーをシャットダウンします。 -* **[`validation_seed`](validation_seed.html)** - 検証に使用するキーを一時的に設定します。 +* **[`connect`](peer-management-methods/connect.md)** - rippledサーバーを特定のピアに強制的に接続します。 +* **[`ledger_accept`](server-control-methods/ledger_accept.md)** - スタンドアロンモードでレジャーを閉鎖し、次のレジャーに進みます。 +* **[`stop`](server-control-methods/stop.md)** - rippledサーバーをシャットダウンします。 +* **[`validation_seed`](server-control-methods/validation_seed.md)** - 検証に使用するキーを一時的に設定します。 -## [ステータスおよびデバッグメソッド](status-and-debugging-methods.html) +## [ステータスおよびデバッグメソッド](status-and-debugging-methods/index.md) ネットワークとサーバーのステータスを確認するには、以下のメソッドを使用します。 -* **[`consensus_info`](consensus_info.html)** - 発生したコンセンサスの状態に関する情報を取得します。 -* **[`feature`](feature.html)** - プロトコルAmendmentに関する情報を取得します。 -* **[`fetch_info`](fetch_info.html)** - サーバーとネットワークの同期に関する情報を取得します。 -* **[`get_counts`](get_counts.html)** - サーバー内部とメモリー使用状況に関する統計情報を取得します。 -* **[`peers`](peers.html)** - 接続しているピアサーバーに関する情報を取得します。 -* **[`print`](print.html)** - 内部サブシステムに関する情報を取得します。 -* **[`validators`](validators.html)** - 現在のバリデータに関する情報を取得します。 -* **[`validator_list_sites`](validator_list_sites.html)** - バリデータリストを公開するサイトに関する情報を取得します。 +* **[`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)** - 接続しているピアサーバーに関する情報を取得します。 +* **[`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)** - バリデータリストを公開するサイトに関する情報を取得します。 ## 廃止予定のメソッド @@ -64,8 +64,4 @@ rippledサーバーの管理には、以下のメソッドを使用します。 * `unl_add`、`unl_delete`、`unl_list`、`unl_load`、`unl_network`、`unl_reset`、`unl_score` - 代わりに UNL管理用構成ファイルを使用してください。 * `wallet_seed` - 代わりに[wallet_proposeメソッド][]を使用してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md index 8cad3d1f8c..891fadb0e0 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md @@ -1,8 +1,12 @@ --- html: key-generation-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # キー生成メソッド -以下のメソッドを使用してキーを生成および管理することができます。 \ No newline at end of file +以下のメソッドを使用してキーを生成および管理することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md index 5750b301fb..9ef20f5123 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md @@ -9,22 +9,21 @@ labels: # validation_create [[ソース]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/ValidationCreate.cpp "Source") -`validation_create`コマンドキーを使用して、[`rippled`サーバーがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵](peer-protocol.html#ノードキーペア)を生成します。[wallet_proposeメソッド][]と同様に、このメソッドでは適切なフォーマットで一連のキーが単に生成されるだけです。XRP Ledgerのデータやサーバー構成は変更されません。 +`validation_create`コマンドキーを使用して、[`rippled`サーバーがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵](../../../../concepts/networks-and-servers/peer-protocol.md#ノードキーペア)を生成します。[wallet_proposeメソッド][]と同様に、このメソッドでは適切なフォーマットで一連のキーが単に生成されるだけです。XRP Ledgerのデータやサーバー構成は変更されません。 -_`validation_create`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`validation_create`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ -サーバーを設定することにより、生成されたキーペアを検証の署名(検証キーペア)に使用するか、または通常のピアツーピア通信の署名([ノードキーペア](peer-protocol.html#ノードキーペア))に使用するかを指定できます。 +サーバーを設定することにより、生成されたキーペアを検証の署名(検証キーペア)に使用するか、または通常のピアツーピア通信の署名([ノードキーペア](../../../../concepts/networks-and-servers/peer-protocol.md#ノードキーペア))に使用するかを指定できます。 -**ヒント:** 堅牢なバリデータを設定するには、`validator-keys`ツール(`rippled` RPMに付属)を使用してバリデータトークン(ローテーション可能)とオフラインマスターキーを生成してください。詳細は、[rippledサーバーで検証を有効化](run-rippled-as-a-validator.html#3-rippledサーバーで検証を有効化)を参照してください。 +**ヒント:** 堅牢なバリデータを設定するには、`validator-keys`ツール(`rippled` RPMに付属)を使用してバリデータトークン(ローテーション可能)とオフラインマスターキーを生成してください。詳細は、[rippledサーバーで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバーで検証を有効化)を参照してください。 ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -32,9 +31,9 @@ _`validation_create`メソッドは、権限のないユーザーは実行でき "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "validation_create", @@ -45,15 +44,16 @@ _`validation_create`メソッドは、権限のないユーザーは実行でき ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: validation_create [secret] rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -67,10 +67,9 @@ rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIR 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -81,9 +80,9 @@ rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIR } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -97,8 +96,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -113,7 +113,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 * `badSeed` - リクエストに無効なシード値が指定されていました。この場合は通常、シード値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md index 94a9da5f43..f9d052d524 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md @@ -9,20 +9,19 @@ labels: # wallet_propose [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/WalletPropose.cpp "Source") -`wallet_propose`メソッドを使用して、キーペアとXRP Ledgerアドレスを生成します。このコマンドは単にキーとアドレス値を生成し、XRP Ledger自体には何ら影響しません。レジャー上で資金供給済みのアドレスになるには、そのアドレスで、[必要準備金](reserves.html)を満たすのに十分なXRPの[Paymentトランザクションを受け取る](accounts.html#アカウントの作成)必要があります。 +`wallet_propose`メソッドを使用して、キーペアとXRP Ledgerアドレスを生成します。このコマンドは単にキーとアドレス値を生成し、XRP Ledger自体には何ら影響しません。レジャー上で資金供給済みのアドレスになるには、そのアドレスで、[必要準備金](../../../../concepts/accounts/reserves.md)を満たすのに十分なXRPの[Paymentトランザクションを受け取る](../../../../concepts/accounts/accounts.md#アカウントの作成)必要があります。 -*`wallet_propose`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。*(このコマンドは、アカウントの機密情報を求めてネットワーク上の伝送情報をスニッフィングする人々から守るためにadminコマンドとされています。adminコマンドは通常、外部ネットワーク上で伝送されることはありません。) +*`wallet_propose`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。*(このコマンドは、アカウントの機密情報を求めてネットワーク上の伝送情報をスニッフィングする人々から守るためにadminコマンドとされています。adminコマンドは通常、外部ネットワーク上で伝送されることはありません。) -[更新: rippled 0.31.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}更新: rippled 0.31.0{% /badge %} ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket(キータイプあり)* +{% tabs %} +{% tab label="WebSocket(キータイプあり)" %} ```json { "command": "wallet_propose", @@ -30,18 +29,18 @@ labels: "key_type": "secp256k1" } ``` +{% /tab %} -*WebSocket(キータイプなし)* - +{% tab label="WebSocket(キータイプなし)" %} ```json { "command": "wallet_propose", "passphrase": "masterpassphrase" } ``` +{% /tab %} -*JSON-RPC(キータイプあり)* - +{% tab label="JSON-RPC(キータイプあり)" %} ```json { "method": "wallet_propose", @@ -53,9 +52,9 @@ labels: ] } ``` +{% /tab %} -*JSON-RPC(キータイプなし)* - +{% tab label="JSON-RPC(キータイプなし)" %} ```json { "method": "wallet_propose", @@ -66,21 +65,22 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: wallet_propose [passphrase] rippled wallet_propose masterpassphrase ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターを含めることができます。 | `Field` | 型 | 説明 | |:-------------|:-------|:-----------------------------------------------------| -| `key_type` | 文字列 | このキーペアの導出に使用する[署名アルゴリズム](cryptographic-keys.html#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。デフォルトは`secp256k1`です。 | +| `key_type` | 文字列 | このキーペアの導出に使用する[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。デフォルトは`secp256k1`です。 | | `passphrase` | 文字列 | _(省略可)_ このシード値からキーペアとアドレスを生成します。この値は、[16進数][]、XRP Ledgerの[base58][]フォーマット、[RFC-1751][]、または任意の文字列でフォーマットできます。`seed`または`seed_hex`とともに使用することはできません。 | | `seed` | 文字列 | _(省略可能)_ このシード値からXRP Ledgerの[base58][]エンコードフォーマットでキーペアとアドレスを生成します。`passphrase`または`seed_hex`とともに使用することはできません。 | | `seed_hex` | 文字列 | _(省略可能)_ このシード値から[16進数][]形式でキーペアとアドレスを生成します。`passphrase`または`seed`とともに使用することはできません。 | @@ -91,7 +91,7 @@ rippled wallet_propose masterpassphrase #### シードの指定 -ほとんどの場合、強力な乱数ソースから生成されたシード値を使用する必要があります。あるアドレスのシード値を知っている人は、[そのアドレスで署名されたトランザクションを送信する](transactions.html#トランザクションの承認)すべての権限を持っています。一般的に、ランダムシードの生成には、このコマンドにパラメーターを指定しないで実行する方法が適しています。 +ほとんどの場合、強力な乱数ソースから生成されたシード値を使用する必要があります。あるアドレスのシード値を知っている人は、[そのアドレスで署名されたトランザクションを送信する](../../../../concepts/transactions/index.md#トランザクションの承認)すべての権限を持っています。一般的に、ランダムシードの生成には、このコマンドにパラメーターを指定しないで実行する方法が適しています。 以下の場合には、既知のシードを指定します。 @@ -112,10 +112,9 @@ rippled wallet_propose masterpassphrase 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -132,9 +131,9 @@ rippled wallet_propose masterpassphrase } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -149,9 +148,9 @@ rippled wallet_propose masterpassphrase } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -169,29 +168,30 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従い、正常に終了した場合、新しい(可能性がある)アカウントについての重要な各種情報を含みます。以下のフィールドを含みます。 | `Field` | 型 | 説明 | |:------------------|:-------|:------------------------------------------------| -| `key_type` | 文字列 | このキーペアの導出に使用された[署名アルゴリズム](cryptographic-keys.html#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。 | +| `key_type` | 文字列 | このキーペアの導出に使用された[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。 | | `master_seed` | 文字列 | これはキーペアの秘密鍵です。このアカウントに関するその他のあらゆる情報が、マスターシードからXRP Ledgerの[base58][]エンコード文字列フォーマットで引き出されます。通常、このフォーマットのキーを使用してトランザクションに署名します。 | | `master_seed_hex` | 文字列 | 16進数形式のマスターシード。単純で広く支持されている秘密鍵表示法。トランザクションの署名に使用できます。 | | `master_key` | 文字列 | **廃止予定** [RFC-1751][]形式のマスターシード。覚えやすく書き留めやすい秘密鍵。トランザクションの署名に使用できます。**注記:** `rippled`の実装では、RFC-1751からデコードした後、RFC-1751にエンコードする前に、キーのバイト順序が逆になります。別のRFC-1751実装を使用して、XRP Ledgerで使用するキーの読み書きを行う場合は、同様にして、`rippled`のRFC-1751エンコーディングとの互換性を保つ必要があります。 | -| `account_id` | 文字列 | XRP Ledgerの[base58][]フォーマットで作成されたアカウントの[アドレス][]。これは公開鍵ではありませんが、公開鍵を2回ハッシュ化したものです。チェックサムも持っているため、タイプミスした場合はほぼ間違いなく無効なアドレスとみなされ、有効だが異なるアドレスとはみなされません。これはXRP LedgerのアカウントのプライマリIDです。支払いを受けるときにこれを人に伝えたり、トランザクションにおいて、自身や、支払先、委託先識別するのに使用します。[マルチシグリスト](multi-signing.html)でもこれを使用して、他の署名者を識別します。 | +| `account_id` | 文字列 | XRP Ledgerの[base58][]フォーマットで作成されたアカウントの[アドレス][]。これは公開鍵ではありませんが、公開鍵を2回ハッシュ化したものです。チェックサムも持っているため、タイプミスした場合はほぼ間違いなく無効なアドレスとみなされ、有効だが異なるアドレスとはみなされません。これはXRP LedgerのアカウントのプライマリIDです。支払いを受けるときにこれを人に伝えたり、トランザクションにおいて、自身や、支払先、委託先識別するのに使用します。[マルチシグリスト](../../../../concepts/accounts/multi-signing.md)でもこれを使用して、他の署名者を識別します。 | | `public_key` | 文字列 | XRP Ledgerの[base58][]エンコード文字列フォーマットで作成された、キーペアの公開鍵。`master_seed`から生成されます。 | | `public_key_hex` | 文字列 | これは16進数で作成されたキーペアの公開鍵です。`master_seed`から生成されます。トランザクションの署名を検証する場合、`rippled`にはこの公開鍵が必要です。そのため、署名されたトランザクションのフォーマットの`SigningPubKey`フィールドには公開鍵が入力されています。 | -| `warning` | 文字列 | (削除される可能性あり)リクエストにシード値を指定した場合、このフィールドに安全でない可能性があるという警告が表示されます。[新規: rippled 0.32.0][] | +| `warning` | 文字列 | (削除される可能性あり)リクエストにシード値を指定した場合、このフィールドに安全でない可能性があるという警告が表示されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | このメソッドを使用してキーペアを生成し、アカウントのレギュラーキーペアとして使用することもできます。アカウントにレギュラーキーペアを割り当てて、それを使用してほとんどのトランザクションに署名し、マスターキーペアをできるだけオフラインにしておくことも可能です。 レギュラーキーペアとして使用するほかに、マルチシグのリスト(SignerList)のメンバーとして使用することもできます。 -マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。 +マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](../../../../concepts/accounts/cryptographic-keys.md)を参照してください。 -マルチシグの詳細は、[マルチシグ](multi-signing.html)を参照してください。 +マルチシグの詳細は、[マルチシグ](../../../../concepts/accounts/multi-signing.md)を参照してください。 ### 考えられるエラー @@ -200,7 +200,4 @@ Connecting to 127.0.0.1:5005 * `invalidParams` - 1つ以上のフィールドが不正に指定されています。 * `badSeed` - リクエストには、空の文字列やXRP Ledgerアドレスに似た文字列などの許可されないシード値が(`passphrase`、`seed`、または`seed_hex`フィールド内に)指定されています。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md index 1bceac1ffc..bcd1e30a8d 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md @@ -8,18 +8,17 @@ labels: # can_delete [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/CanDelete.cpp "Source") -`can_delete`メソッドは[指示による削除が有効なオンライン削除](online-deletion.html#指示による削除)を使用する`rippled`サーバーに削除が可能のレジャーバージョンを通知します。指定したレジャーバージョン以前が削除可能になります。指示による削除が有効ではない場合、このメソッドは何も行いません。 +`can_delete`メソッドは[指示による削除が有効なオンライン削除](../../../../infrastructure/configuration/data-retention/online-deletion.md#指示による削除)を使用する`rippled`サーバーに削除が可能のレジャーバージョンを通知します。指定したレジャーバージョン以前が削除可能になります。指示による削除が有効ではない場合、このメソッドは何も行いません。 -_`can_delete`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`can_delete`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -27,9 +26,9 @@ _`can_delete`メソッドは、権限のないユーザーは実行できない[ "can_delete": 11320417 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "can_delete", @@ -40,15 +39,16 @@ _`can_delete`メソッドは、権限のないユーザーは実行できない[ ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: can_delete [||now|always|never] rippled can_delete 11320417 ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターを指定できます。 @@ -76,10 +76,7 @@ rippled can_delete 11320417 ## 参照項目 -- [オンライン削除](online-deletion.html) -- [指示による削除の設定](configure-advisory-deletion.html) +- [オンライン削除](../../../../infrastructure/configuration/data-retention/online-deletion.md) +- [指示による削除の設定](../../../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md index d2dace3026..2197920354 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md @@ -9,18 +9,17 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/CrawlShards.cpp "Source") -使用可能な[履歴レジャーデータのシャード](history-sharding.html)に関するピアサーバーからの情報をリクエストします。[新規: rippled 1.2.0][] +使用可能な[履歴レジャーデータのシャード](../../../../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`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`crawl_shards`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "crawl_shards", @@ -28,9 +27,9 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな "limit": 0 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "crawl_shards", @@ -42,8 +41,9 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな ] } ``` +{% /tab %} - +{% /tabs %} **注記:** このメソッドのコマンドライン構文はありません。コマンドラインからアクセスするには[jsonメソッド][]を使用してください。 @@ -61,10 +61,9 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -85,10 +84,9 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな "type": "response" } ``` +{% /tab %} - -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -110,27 +108,27 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな } } ``` +{% /tab %} - - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 | `Field` | 型 | 説明 | |:------------------|:-------|:------------------------------------------------| -| `complete_shards` | 文字列 | _(省略可)_ ローカルサーバーで利用可能な[履歴シャード](history-sharding.html)の範囲。これは、空の文字列か、または連続していない範囲である場合があります。たとえば、`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つの完全な[履歴シャード](history-sharding.html)が使用可能なピアのみが含まれます。配列の各オブジェクトには以下のフィールドが含まれます。 +レスポンスの`peers`配列のメンバーはそれぞれ、ピアツーピアネットワーク内の1つのサーバーを表すオブジェクトです。リストには、少なくとも1つの完全な[履歴シャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)が使用可能なピアのみが含まれます。配列の各オブジェクトには以下のフィールドが含まれます。 | `Field` | 型 | 説明 | |:----------|:-------|:--------------------------------------------------------| | `complete_shards` | 文字列 | このピアが使用可能な履歴シャードの範囲。連続していない場合があります。たとえば、`1-2,5,7-9`は、シャード1、2、5、7、8、9が利用可能であることを示します。 | -| `ip` | 文字列 | _(省略される場合があります)_ このオブジェクトが表すピアのIPアドレス。IPv4アドレスまたはIPv6アドレスを指定できます。[プライベートピア](peer-protocol.html#プライベートピア)の場合は省略されます。 | -| `public_key` | 文字列 | _(リクエストで`"pubkey": true`が指定されている場合を除き省略)_ XRP Ledgerの[base58フォーマット](base58-encodings.html)で、このピアでピアツーピア通信に使用される公開鍵。 | +| `ip` | 文字列 | _(省略される場合があります)_ このオブジェクトが表すピアのIPアドレス。IPv4アドレスまたはIPv6アドレスを指定できます。[プライベートピア](../../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)の場合は省略されます。 | +| `public_key` | 文字列 | _(リクエストで`"pubkey": true`が指定されている場合を除き省略)_ XRP Ledgerの[base58フォーマット](../../../protocol/data-types/base58-encodings.md)で、このピアでピアツーピア通信に使用される公開鍵。 | ### 考えられるエラー @@ -138,8 +136,4 @@ _`crawl_shards`メソッドは、権限のないユーザーは実行できな - いずれかの[汎用エラータイプ][]。 - `invalidParams` - リクエストで1つ以上の必須フィールドが省略されていたか、または指定されたフィールドのデータタイプが誤っています。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md index 8a10907349..bba4ab2a2f 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md @@ -8,9 +8,9 @@ labels: # download_shard [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/DownloadShard.cpp "Source") -サーバーに対し、外部ソースから特定の[履歴レジャーデータのシャード](history-sharding.html)をダウンロードするように指示します。`rippled`サーバーで[履歴シャードが保管されるように設定する](configure-history-sharding.html)必要があります。[新規: rippled 1.1.0][] +サーバーに対し、外部ソースから特定の[履歴レジャーデータのシャード](../../../../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`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`download_shard`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ 外部ソースからHTTPSを使用してシャードが[lz4圧縮](https://lz4.github.io/lz4/) [tarアーカイブ](https://en.wikipedia.org/wiki/Tar_(computing))として提供される必要があります。アーカイブには、NuDB形式のシャードディレクトリとデータファイルが含まれている必要があります。 @@ -20,10 +20,9 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "download_shard", @@ -34,9 +33,9 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "download_shard", @@ -51,8 +50,9 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな ] } ``` +{% /tab %} - +{% /tabs %} リクエストには以下のフィールドが含まれます。 @@ -61,23 +61,22 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな |:-----------|:--------|:------------------------------------------------------| | `shards` | 配列 | ダウンロードするシャードとダウンロード元を記述したShard Descriptorオブジェクト(以下の説明を参照)のリスト。 | -`validate`のフィールドは廃止予定であり、今後予告なしに削除される可能性があります。`rippled`は全てのシャードの検証を実行します。[更新: rippled 1.6.0][] +`validate`のフィールドは廃止予定であり、今後予告なしに削除される可能性があります。`rippled`は全てのシャードの検証を実行します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}更新: rippled 1.6.0{% /badge %} `shards`配列の各**Shard Descriptorオブジェクト**には以下のフィールドが含まれています。 | `Field` | 型 | 説明 | |:--------|:-------|:----------------------------------------------------------| | `index` | 数値 | 取得するシャードのインデックス。本番環境のXRP Ledgerでは、最も古いシャードのインデックスは1であり、このシャードにはレジャー32750~32768が含まれています。次のシャードのインデックスは2であり、このシャードにはレジャー32769~49152が含まれています。 | -| `url` | 文字列 | このシャードをダウンロードできるURL。このURLは`https://`か`http://`かで始まり`.tar.lz4`(大文字小文字の区別なし)で終わる必要があります。このダウンロードを提供するWebサーバーは、信頼できる認証局(CA)によって署名された有効なTLS証明書を使用する必要があります。(`rippled`はオペレーティングシステムのCAストアーを使用します。) [更新: rippled 1.7.0][] | +| `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 %} | ### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -87,10 +86,9 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな "type": "response" } ``` +{% /tab %} - -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -101,9 +99,9 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな } } ``` +{% /tab %} - - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -120,7 +118,4 @@ _`download_shard`メソッドは、権限のないユーザーは実行できな - `tooBusy` - サーバーはすでに、ピアツーピアネットワークから、または以前の`download_shard`リクエストの結果として、シャードをダウンロード中です。 - `invalidParams` - リクエストで1つ以上の必須フィールドが省略されていたか、または指定されたフィールドのデータタイプが誤っています。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md index 5608f5a77d..de9f60e334 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md @@ -1,8 +1,12 @@ --- html: logging-and-data-management-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # ログとデータの管理メソッド -以下のメソッドを使用して、ログレベルや台帳などのデータを管理することができます。 \ No newline at end of file +以下のメソッドを使用して、ログレベルや台帳などのデータを管理することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md index 420a199e48..0b4b6cb6b5 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md @@ -10,15 +10,14 @@ labels: `ledger_cleaner`コマンドは[レジャークリーナー](https://github.com/XRPLF/rippled/blob/f313caaa73b0ac89e793195dcc2a5001786f916f/src/ripple/app/ledger/README.md#the-ledger-cleaner)を制御します。レジャークリーナーは、`rippled`のレジャーデータベースの破損を検出して修復できる非同期メンテナンスプロセスです。 -_`ledger_cleaner`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`ledger_cleaner`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "ledger_cleaner", @@ -27,8 +26,9 @@ _`ledger_cleaner`メソッドは、権限のないユーザーは実行できな "stop": false } ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -46,10 +46,9 @@ _`ledger_cleaner`メソッドは、権限のないユーザーは実行できな 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json 200 OK @@ -61,8 +60,9 @@ _`ledger_cleaner`メソッドは、権限のないユーザーは実行できな } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -75,7 +75,4 @@ _`ledger_cleaner`メソッドは、権限のないユーザーは実行できな * いずれかの[汎用エラータイプ][]。 * `internal`: いずれかのパラメーターが正しく指定されていない場合。(これはバグです。本来のエラーコードは`invalidParams`です。) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md index 2070c9f88c..c3e4c769fb 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md @@ -10,15 +10,14 @@ labels: `ledger_request`コマンドは、サーバーに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。これは、サーバーが直接接続しているピアの1つにそのレジャーが存在している場合にのみ機能します。場合によっては、レジャーを完全に取得するにはこのコマンドを繰り返し実行する必要があります。 -*`ledger_request`リクエストは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`ledger_request`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 102, @@ -26,14 +25,15 @@ labels: "ledger_index": 13800000 } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` rippled ledger_request 13800000 ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -52,10 +52,9 @@ rippled ledger_request 13800000 失敗した場合のレスポンスには、レジャーの取得状況が示されます。成功した場合のレスポンスには、[ledgerメソッド][]に類似したフォーマットでレジャーの情報が含まれます。 - - -*コマンドライン(失敗)* +{% tabs %} +{% tab label="コマンドライン(失敗)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -79,9 +78,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} -*コマンドライン(進行中)* - +{% tab label="コマンドライン(進行中)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -126,9 +125,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} -*コマンドライン(成功)* - +{% tab label="コマンドライン(成功)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -157,14 +156,15 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} 3つのレスポンスのフォーマットは次のとおりです。 1. `lgrNotFound`エラーが返された場合、レスポンスの`acquiring`フィールドには、ピアツーピアネットワークからのレジャー取得状況を示す[レジャーリクエストオブジェクト](#レジャーリクエストオブジェクト)が指定されています。 2. サーバーが現在データを取得中であるとレスポンスに示される場合、その結果の本文として、ピアツーピアネットワークからのレジャー取得状況を示す[レジャーリクエストオブジェクト](#レジャーリクエストオブジェクト)が表示されます。 -3. レジャーが完全に利用可能な場合、レスポンスには[レジャーヘッダー](ledger-header.html)が表示されます。 +3. レジャーが完全に利用可能な場合、レスポンスには[レジャーヘッダー](../../../protocol/ledger-data/ledger-header.md)が表示されます。 ### レジャーリクエストオブジェクト @@ -187,7 +187,4 @@ Connecting to 127.0.0.1:5005 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。このエラーは、指定したレジャーインデックスが現在進行中のレジャーのインデックス以上である場合にも発生します。 * `lgrNotFound` - レジャーがまだ利用可能ではない場合。これは、サーバーがレジャーの取得を開始していますが、リクエストされたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコード`ledgerNotFound`が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md index 9286c2201e..f1609839ea 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md @@ -10,15 +10,14 @@ labels: `log_level`コマンドは`rippled`サーバーのログ詳細レベルを変更するか、各ログメッセージカテゴリー(_パーティション_)の現在のログレベルを返します。 -_`log_level`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`log_level`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "ll1", @@ -27,15 +26,16 @@ _`log_level`メソッドは、権限のないユーザーは実行できない[ "partition": "PathRequest" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: log_level [[partition] severity] rippled log_level PathRequest debug ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -48,10 +48,9 @@ rippled log_level PathRequest debug 成功した場合のレスポンス例: - - -*コマンドライン(ログレベルの設定)* +{% tabs %} +{% tab label="コマンドライン(ログレベルの設定)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -62,9 +61,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} -*コマンドライン(ログレベルの確認)* - +{% tab label="コマンドライン(ログレベルの確認)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -127,8 +126,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っています。レスポンスのフォーマットは、リクエストに`severity`が指定されているかどうかに応じて異なります。指定されていた場合はログレベルが変更され、成功した場合の結果には追加フィールドが含まれません。 @@ -143,7 +143,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md index f3747f01d1..a4b5efcf3c 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md @@ -38,30 +38,30 @@ labels: **注記:** システムのlogrotateスクリプトは、アプリケーションごとに1つしか持てません。同じディレクトリを処理するログローテーションが他にないことを確認してください。 -_`logrotate`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`logrotate`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "lr1", "command": "logrotate" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: logrotate rippled logrotate ``` +{% /tab %} - +{% /tabs %} リクエストにはパラメーターが含まれていません。 @@ -69,10 +69,9 @@ rippled logrotate 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json 200 OK @@ -84,9 +83,9 @@ rippled logrotate } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -99,8 +98,9 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -112,7 +112,4 @@ Connecting to 127.0.0.1:5005 * いずれかの[汎用エラータイプ][]。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md index a22ae46ff1..89dcf7c409 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md @@ -8,45 +8,45 @@ labels: # node_to_shard [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/rpc/handlers/NodeToShard.cpp "Source") -`{{currentpage.name}}`メソッドは、レジャーストアから[シャードストア](history-sharding.html)へのデータコピーを管理します。データコピーの開始、停止、状態チェックが可能です。 +{% code-page-name /%}メソッドは、レジャーストアから[シャードストア](../../../../infrastructure/configuration/data-retention/history-sharding.md)へのデータコピーを管理します。データコピーの開始、停止、状態チェックが可能です。 -_`{{currentpage.name}}`メソッドは、権限のないユーザーには実行できない[管理メソッド](admin-api-methods.html)です。_ +_{% code-page-name /%}メソッドは、権限のないユーザーには実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマット例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "action": "start" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "action": "start" }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh -#Syntax: {{currentpage.name}} start|stop|status -rippled {{currentpage.name}} start +#Syntax: {% $frontmatter.seo.title %} start|stop|status +rippled {% $frontmatter.seo.title %} start ``` +{% /tab %} - +{% /tabs %} リクエストは、以下のパラメータを含みます: @@ -59,10 +59,9 @@ rippled {{currentpage.name}} start 正常レスポンス例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -72,9 +71,9 @@ rippled {{currentpage.name}} start "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -84,9 +83,9 @@ rippled {{currentpage.name}} start } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -99,8 +98,9 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} レスポンスは、[標準フォーマット][]に従っており、成功した場合は、以下の項目を含みます: @@ -113,10 +113,7 @@ Connecting to 127.0.0.1:5005 - いずれかの[汎用エラータイプ][]。 - `internal` - コピーが実行されていない時にコピーの状態チェックをするといったような無効な操作の場合。 -- `notEnabled` - サーバが[履歴シャード](history-sharding.html)を保存するように環境設定されていない場合。 +- `notEnabled` - サーバが[履歴シャード](../../../../infrastructure/configuration/data-retention/history-sharding.md)を保存するように環境設定されていない場合。 - `invalidParams` - 1つ以上の項目が誤って定義されている、もしくは、1つ以上の必須項目が抜けている。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md index a37215223d..928febfa89 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md @@ -10,15 +10,14 @@ labels: `connect`コマンドは、`rippled`サーバーを特定のピア`rippled`サーバーに強制的に接続します。 -*`connect`リクエストは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`connect`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "connect", @@ -26,9 +25,9 @@ labels: "port": 51235 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "connect", @@ -40,32 +39,31 @@ labels: ] } ``` +{% /tab %} - -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: connect ip [port] rippled connect 192.170.145.88 51235 ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 | `Field` | 型 | 説明 | |:--------|:-------|:----------------------------------------------------------| | `ip` | 文字列 | 接続するサーバーのIPアドレス。 | -| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは**2459**です。 [新規: rippled 1.6.0][] | +| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは**2459**です。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} | ### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -74,9 +72,9 @@ rippled connect 192.170.145.88 51235 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -88,8 +86,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -103,7 +102,4 @@ Connecting to 127.0.0.1:5005 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * スタンドアロンモードでは接続できません - スタンドアロンモードではネットワーク関連のコマンドが無効にされています。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md index f3be0e8c16..8e57700a62 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md @@ -1,8 +1,12 @@ --- html: peer-management-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # ピア管理メソッド -以下のメソッドを使用して、サーバーのピアツーピア接続を管理することができます。 \ No newline at end of file +以下のメソッドを使用して、サーバーのピアツーピア接続を管理することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md index eabb67a84e..2a5eefcef0 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md @@ -8,48 +8,48 @@ labels: # peer_reservations_add [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L36 "Source") -この`{{currentpage.name}}`メソッドは、XRP Ledger[ピアツーピアネットワーク](peer-protocol.html)内の特定のピアサーバーの予約済みスロットを追加または更新します。[新規: rippled 1.4.0][] +この{% 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 %} -_`{{currentpage.name}}`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_{% code-page-name /%}メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_add_example_1", - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", "description": "Ripple s1 server 'WOOL'" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", "description": "Ripple s1 server 'WOOL'" }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh -#Syntax: {{currentpage.name}} [] -rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 "Ripple s1 server 'WOOL'" +#Syntax: {% $frontmatter.seo.title %} [] +rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 "Ripple s1 server 'WOOL'" ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -64,10 +64,9 @@ rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG9 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_add_example_1", @@ -81,9 +80,9 @@ rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG9 "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -95,9 +94,9 @@ rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG9 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -112,8 +111,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -127,8 +127,8 @@ Connecting to 127.0.0.1:5005 `previous`フィールドが指定されている場合は、このピアリザベーションの以前のステータスが次のフィールドとともに表示されます。 -{% include '_snippets/peer_reservation_object.ja.md' %} - +{% partial file="/_snippets/peer_reservation_object.md" /%} + ### 考えられるエラー @@ -137,7 +137,4 @@ Connecting to 127.0.0.1:5005 - `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 - `publicMalformed` - リクエストの`public_key`フィールドが無効です。[base58][]フォーマットの有効なノード公開鍵である必要があります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md index 337cd4cec5..9ceeda1bd9 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md @@ -9,9 +9,9 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L89 "Source") -`{{currentpage.name}}`メソッドは、特定の[ピアリザベーション][]を削除します(存在する場合)。[新規: rippled 1.4.0][] +{% code-page-name /%}メソッドは、特定の[ピアリザベーション][]を削除します(存在する場合)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} -_`{{currentpage.name}}`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_{% code-page-name /%}メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ **注記:** ピアリザベーションを削除しても、対応するピアが接続されている場合、そのピアは自動的に切断されません。 @@ -19,37 +19,37 @@ _`{{currentpage.name}}`メソッドは、権限のないユーザーは実行で リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_del_example_1", - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh -#Syntax: {{currentpage.name}} -rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 +#Syntax: {% $frontmatter.seo.title %} +rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -62,10 +62,9 @@ rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG9 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_del_example_1", @@ -79,9 +78,9 @@ rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG9 "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -93,9 +92,9 @@ rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG9 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -110,8 +109,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -125,8 +125,8 @@ Connecting to 127.0.0.1:5005 `previous`フィールドが指定されている場合は、このピアリザベーションの以前のステータスが次のフィールドとともに表示されます。 -{% include '_snippets/peer_reservation_object.ja.md' %} - +{% partial file="/_snippets/peer_reservation_object.md" /%} + ### 考えられるエラー @@ -134,7 +134,4 @@ Connecting to 127.0.0.1:5005 - `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 - `publicMalformed` - リクエストの`public_key`フィールドが無効です。[base58][]フォーマットの有効なノード公開鍵である必要があります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md index d08aebe35d..276c239138 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md @@ -8,42 +8,42 @@ labels: # peer_reservations_list [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L116 "Source") -`{{currentpage.name}}`メソッドは、[ピアリザベーション][]を一覧表示します。[新規: rippled 1.4.0][] +{% code-page-name /%}メソッドは、[ピアリザベーション][]を一覧表示します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} -_`{{currentpage.name}}`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_{% code-page-name /%}メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_list_example_1", - "command": "{{currentpage.name}}" + "command": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}" + "method": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh -#Syntax: {{currentpage.name}} -rippled {{currentpage.name}} +#Syntax: {% $frontmatter.seo.title %} +rippled {% $frontmatter.seo.title %} ``` +{% /tab %} - +{% /tabs %} このリクエストにはパラメーターは含まれません。 @@ -52,10 +52,9 @@ rippled {{currentpage.name}} 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_list_example_1", @@ -74,9 +73,9 @@ rippled {{currentpage.name}} "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -93,9 +92,9 @@ rippled {{currentpage.name}} } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" 2019-Dec-27 21:56:07.253260422 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -115,8 +114,9 @@ Loading: "/etc/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -128,14 +128,11 @@ Loading: "/etc/rippled.cfg" `reservations`配列の各メンバーは、1つの[ピアリザベーション][]を表すJSONオブジェクトです。このオブジェクトのフィールドを次に示します。 -{% include '_snippets/peer_reservation_object.ja.md' %} - +{% partial file="/_snippets/peer_reservation_object.md" /%} + ### 考えられるエラー - いずれかの[汎用エラータイプ][]。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md index 4d816ae4b0..10bb0f8375 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md @@ -8,31 +8,31 @@ labels: # peers [[ソース]](https://github.com/XRPLF/rippled/blob/52f298f150fc1530d201d3140c80d3eaf781cb5f/src/ripple/rpc/handlers/Peers.cpp "Source") -`peers`コマンドは、[ピアプロトコル](peer-protocol.html)でこのサーバーに現在接続されているその他のすべての`rippled`サーバーのリスト(各サーバーの接続状況と同期状況を含む)を返します。 +`peers`コマンドは、[ピアプロトコル](../../../../concepts/networks-and-servers/peer-protocol.md)でこのサーバーに現在接続されているその他のすべての`rippled`サーバーのリスト(各サーバーの接続状況と同期状況を含む)を返します。 -*`peers`リクエストは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`peers`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, "command": "peers" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` rippled peers ``` +{% /tab %} - +{% /tabs %} このリクエストには追加パラメーターはありません。 @@ -40,10 +40,9 @@ rippled peers 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -156,9 +155,9 @@ rippled peers } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -269,9 +268,9 @@ rippled peers } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -375,14 +374,15 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドからなるJSONオブジェクトが含まれます。 | `Field` | 型 | 説明 | |:----------|:-------|:--------------------------------------------------------| -| `cluster` | オブジェクト | [クラスターとして構成されている](clustering.html)場合は、同じクラスター内の他の`rippled`サーバーの概要。[新規: rippled 0.30.1][] | +| `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`として返される値と同じです。)そのフィールドの内容は、以下のフィールドを持つオブジェクトです。 @@ -390,7 +390,7 @@ Connecting to 127.0.0.1:5005 | `Field` | 型 | 説明 | |:--------|:-------|:----------------------------------------------------------| | `tag` | 文字列 | 構成ファイルで定義されているこのクラスターメンバーの表示名。 | -| `fee` | 数値 | (省略される場合があります)このクラスターメンバーが[トランザクションコスト](transaction-cost.html)に適用する負荷乗数。 | +| `fee` | 数値 | (省略される場合があります)このクラスターメンバーが[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)に適用する負荷乗数。 | | `age` | 数値 | このクラスターメンバーからの最終クラスターレポート以降の経過秒数。 | `peers`配列の各メンバーは、以下のフィールドを持つpeerオブジェクトです。 @@ -409,14 +409,11 @@ Connecting to 127.0.0.1:5005 | `public_key` | 文字列 | (省略される場合があります)ピアのメッセージの整合性の検証に使用できる公開鍵。これは、検証に使用する公開鍵とは異なりますが、フォーマットは同じです。 | | `sanity` | 文字列 | (省略される場合があります)このピアが現行サーバーと同じルールとレジャーシーケンスに従っているかどうか。値が`insane`の場合、ピアは並列ネットワークの一部である可能性があります。値が`unknown`の場合、現行サーバーはピアに互換性があるかどうかを把握していません。 | | `status` | 文字列 | (省略される場合があります)ピアからの最新のステータスメッセージ。`connecting`、`connected`、`monitoring`、`validating`、`shutting`のいずれかです。 | -| `uptime` | 数値 | `rippled`サーバーがこのピアに継続して接続していた秒数。[新規: rippled 0.30.1][] | +| `uptime` | 数値 | `rippled`サーバーがこのピアに継続して接続していた秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | | `version` | 文字列 | (省略される場合があります)ピアサーバーの`rippled`バージョン番号 | ### 考えられるエラー * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md index eaf7371831..d10d25a027 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md @@ -1,8 +1,12 @@ --- html: server-control-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # サーバ操作メソッド -以下のメソッドを使用して、rippledサーバーを管理することができます。 \ No newline at end of file +以下のメソッドを使用して、rippledサーバーを管理することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md index 3e4ba3e666..007082531b 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md @@ -10,31 +10,31 @@ labels: `ledger_accept`メソッドは、サーバーが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。このメソッドはテスト専用であり、`rippled`サーバーがスタンドアロンモードで実行されている場合にのみ使用できます。 -*`ledger_accept`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`ledger_accept`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "Accept my ledger!", "command": "ledger_accept" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: ledger_accept rippled ledger_accept ``` +{% /tab %} - +{% /tabs %} このリクエストはパラメーターを受け入れません。 @@ -65,7 +65,4 @@ rippled ledger_accept * [汎用エラータイプ][]のすべて。 * `notStandAlone` - `rippled`サーバーが現在スタンドアロンモードで実行されていない場合。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md index 6a9cfc0854..3ecf474ea3 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md @@ -10,24 +10,23 @@ labels: サーバーのグレースフルシャットダウンを行います。 -_`stop`リクエストは、権限のないユーザーは実行できない*[管理メソッド](admin-api-methods.html)です。_ +_`stop`リクエストは、権限のないユーザーは実行できない*[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, "command": "stop" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "stop", @@ -36,14 +35,15 @@ _`stop`リクエストは、権限のないユーザーは実行できない*[ ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` rippled stop ``` +{% /tab %} - +{% /tabs %} リクエストにはパラメーターが含まれていません。 @@ -51,10 +51,9 @@ rippled stop 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -63,9 +62,9 @@ rippled stop } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -77,8 +76,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -90,7 +90,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md index 6d58dcfd15..ac28ce07f7 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md @@ -9,17 +9,16 @@ labels: # validation_seed [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ValidationSeed.cpp "Source") -`validation_seed`コマンドは、rippledが検証の署名に使用するシークレット値を一時的に設定します。サーバーを再起動すると、この値は構成ファイルに基づいてリセットされます。[rippled 0.29.1 以降では無効](https://github.com/XRPLF/rippled/releases/tag/0.29.1-rc1 "BADGE_RED") +`validation_seed`コマンドは、rippledが検証の署名に使用するシークレット値を一時的に設定します。サーバーを再起動すると、この値は構成ファイルに基づいてリセットされます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.1-rc1" %}rippled 0.29.1 以降では無効{% /badge %} -*`validation_seed`リクエストは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`validation_seed`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "set_seed_1", @@ -27,15 +26,16 @@ labels: "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: validation_seed [secret] rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -47,10 +47,9 @@ rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json 200 OK @@ -63,9 +62,9 @@ rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -79,8 +78,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -95,7 +95,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 * `badSeed` - リクエストに無効なシークレット値が指定されていました。この場合は通常、シークレット値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/index.md index 0bd905d282..bd97aeea7a 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/index.md @@ -1,8 +1,12 @@ --- html: signing-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # 署名メソッド -以下のメソッドを使用して、トランザクションを扱うことができます。 \ No newline at end of file +以下のメソッドを使用して、トランザクションを扱うことができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md index c046c77c74..c56eeb27c7 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md @@ -8,20 +8,19 @@ labels: # sign [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/SignHandler.cpp "ソース") -`sign`メソッドは[JSONフォーマットのトランザクション](transaction-formats.html)と[シード値](cryptographic-keys.html)を受け取り、トランザクションの署名済みバイナリー表現を返します。[マルチシグトランザクション](multi-signing.html)に署名を付与する場合は、代わりに[sign_forメソッド][]を使用します。 +`sign`メソッドは[JSONフォーマットのトランザクション](../../../protocol/transactions/index.md)と[シード値](../../../../concepts/accounts/cryptographic-keys.md)を受け取り、トランザクションの署名済みバイナリー表現を返します。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)に署名を付与する場合は、代わりに[sign_forメソッド][]を使用します。 -{% include '_snippets/public-signing-note.md' %} - +{% partial file="/_snippets/public-signing-note.md" /%} -**注意:** 独自の`rippled`サーバーを運用している場合を除き、このコマンドを使用するのではなく、[クライアントライブラリ](client-libraries.html)を実行してください。詳細については[安全な署名の設定](secure-signing.html)を参照してください。 + +**注意:** 独自の`rippled`サーバーを運用している場合を除き、このコマンドを使用するのではなく、[クライアントライブラリ](../../../client-libraries.md)を実行してください。詳細については[安全な署名の設定](../../../../concepts/transactions/secure-signing.md)を参照してください。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -41,9 +40,9 @@ labels: "fee_mult_max": 1000 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign", @@ -66,17 +65,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: sign secret tx_json [offline] rippled sign s████████████████████████████ '{"TransactionType": "Payment", "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "Amount": { "currency": "USD", "value": "1", "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Sequence": 360, "Fee": "10000"}' offline ``` +{% /tab %} - +{% /tabs %} -トランザクションに署名するには、[トランザクションを承認](transactions.html#トランザクションの承認)できるシークレットキーを提供する必要があります。通常、サーバーが秘密鍵を取得するシード値を提供します。これを行うには、以下の方法があります。 +トランザクションに署名するには、[トランザクションを承認](../../../../concepts/transactions/index.md#トランザクションの承認)できるシークレットキーを提供する必要があります。通常、サーバーが秘密鍵を取得するシード値を提供します。これを行うには、以下の方法があります。 * `secret`フィールドにシードを指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 * `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません)。 @@ -85,25 +85,25 @@ rippled sign s██████████████████████ | `Field` | 型 | 説明 | |:---------------|:--------|:--------------------------------------------------| -| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](transaction-formats.html) | +| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md) | | `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` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](cryptographic-keys.html#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。 | +| `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。 | | `offline` | ブール値 | _(省略可)_ `true`の場合は、トランザクションの生成時に、トランザクションの詳細を[自動入力](#自動入力可能なフィールド)しないでください。デフォルトは`false`です。 | | `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | -| `fee_mult_max` | 整数 | _(省略可)_[自動的に提供される`Fee`フィールド](transaction-common-fields.html#自動入力可能なフィールド)の上限値を設定します。現在の[トランザクションコストの負荷の乗数](transaction-cost.html#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](transaction-cost.html))を指定した場合は無視されます。デフォルトは`10`です。 | -| `fee_div_max` | 整数 | _(省略可)_ 現在の[トランザクションコストの負荷の乗数](transaction-cost.html#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](transaction-cost.html))を指定した場合は無視されます。デフォルトは`1`です。[新規: rippled 0.30.1][] | +| `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`([トランザクションオブジェクト](transaction-formats.html))の特定のフィールドを省略すると、サーバーは自動的に入力しようとします。リクエストの`offline`を`true`と指定しない限り、サーバーは署名前に以下のフィールドを提供します。 +`tx_json`([トランザクションオブジェクト](../../../protocol/transactions/index.md))の特定のフィールドを省略すると、サーバーは自動的に入力しようとします。リクエストの`offline`を`true`と指定しない限り、サーバーは署名前に以下のフィールドを提供します。 * `Sequence` - サーバーは、送信者のアカウント情報にある次のシーケンス番号を自動的に使用します。 * **注意:** アカウントの次のシーケンス番号は、このトランザクションが適用されるまで増分されません。トランザクションの送信および個々のトランザクションへのレスポンスを待たずに複数のトランザクションに署名する場合は、最初のトランザクション以降の各トランザクションについて、正しいシーケンス番号を手動で提供する必要があります。 * `Fee` - `Fee`パラメーターを省略した場合、サーバーは適切なトランザクションコストを自動的に入力しようとします。本番環境のXRP Ledgerでは、適切な`fee_mult_max`値を提供しない限り、この処理は`rpcHIGH_FEE`エラーで失敗します。 - * `fee_mult_max`パラメーターと`fee_div_max`パラメーターは、[リファレンストランザクションコスト](transaction-cost.html#referenceトランザクションコスト)に適用される負荷スケーリング乗数によって、自動的に提供されるトランザクションコストの上限値を設定します。デフォルト設定では、自動的に提供される値が10×の乗数より大きい場合、エラーが返されます。ただし、本番環境のXRP Ledgerでは、[1000×の負荷乗数を使用することが一般的](transaction-cost.html#現在のトランザクションコスト)です。 + * `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`の値を無視して、きわめて大きなトランザクションコストを指定するおそれがあります。 * `Paths` - Payment型のトランザクションの場合(XRP間の移動を除く)、Pathsフィールドは、[ripple_path_findメソッド][]を使用した場合と同様に自動的に入力できます。`build_path`を指定した場合のみ入力されます。 @@ -112,10 +112,9 @@ rippled sign s██████████████████████ 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -142,9 +141,9 @@ rippled sign s██████████████████████ } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -171,9 +170,9 @@ rippled sign s██████████████████████ } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -201,15 +200,16 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 | `Field` | 型 | 説明 | |:----------|:-------|:--------------------------------------------------------| | `tx_blob` | 文字列 | 正しく作成された署名済みトランザクションの16進バイナリー表現 | -| `tx_json` | オブジェクト | 自動的に入力されたフィールドを含む、署名済み[トランザクション全体](transaction-formats.html)のJSON仕様 | +| `tx_json` | オブジェクト | 自動的に入力されたフィールドを含む、署名済み[トランザクション全体](../../../protocol/transactions/index.md)のJSON仕様 | **注意:** このコマンドの結果としてエラーメッセージが表示された場合は、リクエストで指定されたシークレット値がメッセージの中に含まれている可能性があります。これらのエラーが他者から見えない状態であることを確認してください。 @@ -225,6 +225,4 @@ Connecting to 127.0.0.1:5005 * `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。 * `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md index 2d7c594bde..973fcee9f3 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md @@ -8,20 +8,19 @@ labels: # sign_for [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/SignFor.cpp "Source") -`sign_for`コマンドは、[マルチシグトランザクション](multi-signing.html)の署名を1つ提供します。 +`sign_for`コマンドは、[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)の署名を1つ提供します。 -{% include '_snippets/public-signing-note.md' %} - +{% partial file="/_snippets/public-signing-note.md" /%} -このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] + +このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":"sign_for_example", @@ -44,9 +43,9 @@ labels: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"sign_for", @@ -70,9 +69,9 @@ labels: }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: rippled sign_for [offline] rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s████████████████████████████ '{ @@ -89,15 +88,16 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ "Fee":"30000" }' ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 | `Field` | 型 | 説明 | |:-------------|:---------------------|:---------------------------------------| | `account` | 文字列 - [アドレス][] | 署名を提供するアドレス。 | -| `tx_json` | オブジェクト | 署名する[トランザクション](transaction-formats.html)。[signメソッド][]を使用する場合とは異なり、トランザクションのすべてのフィールド(`Fee`と`Sequence`を含む)を指定する必要があります。トランザクションに、空の文字列を値として指定した`SigningPubKey`フィールドを含める必要があります。このオブジェクトには、以前に収集した署名を持つ`Signers`配列を必要に応じて含めることができます。 | +| `tx_json` | オブジェクト | 署名する[トランザクション](../../../protocol/transactions/index.md)。[signメソッド][]を使用する場合とは異なり、トランザクションのすべてのフィールド(`Fee`と`Sequence`を含む)を指定する必要があります。トランザクションに、空の文字列を値として指定した`SigningPubKey`フィールドを含める必要があります。このオブジェクトには、以前に収集した署名を持つ`Signers`配列を必要に応じて含めることができます。 | | `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`と同時に使用することはできません。 | @@ -113,10 +113,9 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":"sign_for_example", @@ -150,9 +149,9 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` 200 OK { @@ -185,9 +184,9 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading:"/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -222,15 +221,16 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 | `Field` | 型 | 説明 | |:----------|:-------|:--------------------------------------------------------| -| `tx_blob` | 文字列 | 新規に追加した署名を含む署名済みトランザクションの16進数表記。トランザクションに十分な数の署名がある場合には、[`submit`メソッドを使用してこの文字列を送信](submit.html#送信専用モード)できます。 | -| `tx_json` | オブジェクト | 新規に追加された署名を含む`Signers`配列を持つ[トランザクションの指定](transaction-formats.html)(JSONフォーマット) 。トランザクションに十分な数の署名がある場合には、[submit_multisignedメソッド][]を使用してこのオブジェクトを送信できます。 | +| `tx_blob` | 文字列 | 新規に追加した署名を含む署名済みトランザクションの16進数表記。トランザクションに十分な数の署名がある場合には、[`submit`メソッドを使用してこの文字列を送信](../../public-api-methods/transaction-methods/submit.md#送信専用モード)できます。 | +| `tx_json` | オブジェクト | 新規に追加された署名を含む`Signers`配列を持つ[トランザクションの指定](../../../protocol/transactions/index.md)(JSONフォーマット) 。トランザクションに十分な数の署名がある場合には、[submit_multisignedメソッド][]を使用してこのオブジェクトを送信できます。 | ## 考えられるエラー @@ -241,6 +241,4 @@ Connecting to 127.0.0.1:5005 * `badSeed` - 指定されたシード値のフォーマットが正しくありません。 * `badSecret` - 指定されたシークレット値のフォーマットが正しくありません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md index 6485d27b69..fd258d535d 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md @@ -9,26 +9,25 @@ labels: # consensus_info [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ConsensusInfo.cpp "Source") -`consensus_info`メソッドは、デバッグのための[コンセンサスプロセス](consensus.html)に関する情報を返します。 +`consensus_info`メソッドは、デバッグのための[コンセンサスプロセス](../../../../concepts/consensus-protocol/index.md)に関する情報を返します。 -_`consensus_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`consensus_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 99, "command": "consensus_info" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "consensus_info", @@ -37,15 +36,16 @@ _`consensus_info`メソッドは、権限のないユーザーは実行できな ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: consensus_info rippled consensus_info ``` +{% /tab %} - +{% /tabs %} このリクエストにはパラメーターはありません。 @@ -53,10 +53,9 @@ rippled consensus_info 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -129,9 +128,9 @@ rippled consensus_info } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -207,8 +206,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -236,7 +236,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md index cc9fc67de8..0f67f353df 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md @@ -9,28 +9,27 @@ labels: # feature [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Feature1.cpp "Source") -`feature`コマンドは、[Amendment](amendments.html)に関してこのサーバが認識している情報(Amendmentが有効であるかどうか、サーバが[Amendmentプロセス](amendments.html#amendmentプロセス)でこれらのAmendmentに賛成票を投じたかどうかなど)を返します。[新規: rippled 0.31.0][] +`feature`コマンドは、[Amendment](../../../../concepts/networks-and-servers/amendments.md)に関してこのサーバが認識している情報(Amendmentが有効であるかどうか、サーバが[Amendmentプロセス](../../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)でこれらのAmendmentに賛成票を投じたかどうかなど)を返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} -`feature`コマンドを使用して、Amendmentへの賛成票または反対票を投じるようにサーバを一時的に設定できます。この変更は、サーバの再起動後も保持されます。[更新: rippled 1.7.0][] +`feature`コマンドを使用して、Amendmentへの賛成票または反対票を投じるようにサーバを一時的に設定できます。この変更は、サーバの再起動後も保持されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} -_`feature`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`feature`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket - すべてリスト* +{% tabs %} +{% tab label="WebSocket - すべてリスト" %} ```json { "id": "list_all_features", "command": "feature" } ``` +{% /tab %} -*WebSocket - 拒否* - +{% tab label="WebSocket - 拒否" %} ```json { "id": "reject_multi_sign", @@ -39,9 +38,9 @@ _`feature`メソッドは、権限のないユーザーは実行できない[管 "vetoed": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "feature", @@ -53,15 +52,16 @@ _`feature`メソッドは、権限のないユーザーは実行できない[管 ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: feature [ [accept|reject]] rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 accept ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -76,10 +76,9 @@ rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 処理が成功したレスポンスの例: - - -*WebSocket - すべてリスト* +{% tabs %} +{% tab label="WebSocket - すべてリスト" %} ```json { "id": "list_all_features", @@ -121,9 +120,9 @@ rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 } } ``` +{% /tab %} -*WebSocket - 拒否* - +{% tab label="WebSocket - 拒否" %} ```json { "id": "reject_multi_sign", @@ -141,9 +140,9 @@ rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -159,9 +158,9 @@ rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -178,8 +177,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に**Amendmentのマップ**がJSONプロジェクトとして含まれています。オブジェクトのキーはAmendment IDです。各キーの値は、そのIDのAmendmentのステータスを記述した _Amendmentオブジェクト_ です。リクエストに`feature`が指定されいる場合、リクエストによる変更の適用後には、リクエストされたAmendmentオブジェクトだけがマップに含まれます。各Amendmentオブジェクトのフィールドを次に示します。 @@ -187,8 +187,8 @@ Connecting to 127.0.0.1:5005 |:------------|:--------|:-----------------------------------------------------| | `enabled` | ブール値 | 最新レジャーでこのAmendmentが現在有効であるかどうか。 | | `name` | 文字列 | (省略される場合があります)このAmendmentの人間が読める形式の名前(判明している場合)。 | -| `supported` | ブール値 | サーバがこのAmendmentの適用方法を認識しているかどうか。このフィールドが`false`(サーバがこのAmendmentの適用方法を認識していない)に設定されており、`enabled`が`true`(このAmendmentが最新レジャーで有効である)に設定されている場合、このAmendmentによりサーバが[Amendmentブロック](amendments.html#amendment-blocked)される可能性があります。 | -| `vetoed` | ブール値 または 文字列 | ほとんどのAmendmentにおいて、これはサーバがこのAmendmentに反対票を投じるように指示されているかどうかを示すブール値です。コードの中で廃止とマークされているAmendmentについては、代わりに`Obsolete`という文字列を指定します。[更新: rippled 1.11.0][]. | +| `supported` | ブール値 | サーバがこのAmendmentの適用方法を認識しているかどうか。このフィールドが`false`(サーバがこのAmendmentの適用方法を認識していない)に設定されており、`enabled`が`true`(このAmendmentが最新レジャーで有効である)に設定されている場合、このAmendmentによりサーバが[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)される可能性があります。 | +| `vetoed` | ブール値 または 文字列 | ほとんどのAmendmentにおいて、これはサーバがこのAmendmentに反対票を投じるように指示されているかどうかを示すブール値です。コードの中で廃止とマークされているAmendmentについては、代わりに`Obsolete`という文字列を指定します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %}. | **注意:** Amendmentの`name`は、Amendmentの内容を厳密に示すものではありません。サーバ間でこの名前が一意であることや整合性があることは保証されません。 @@ -198,7 +198,4 @@ Connecting to 127.0.0.1:5005 * `badFeature` - 指定されている`feature`のフォーマットが正しくないか、サーバがその名前のAmendmentを認識していません。 - `reportingUnsupported` - ([レポートモード][]サーバのみ) このメソッドはレポートモードでは使用できません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md index e55f74762e..ec653f783d 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md @@ -10,15 +10,14 @@ labels: `fetch_info`コマンドは、このサーバーが現在ネットワークからフェッチしているオブジェクトに関する情報と、その情報を所有しているピアの数を返します。これは現在の取得操作をリセットする場合にも使用できます。 -_`fetch_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`fetch_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 91, @@ -26,9 +25,9 @@ _`fetch_info`メソッドは、権限のないユーザーは実行できない[ "clear": false } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "fetch_info", @@ -39,15 +38,16 @@ _`fetch_info`メソッドは、権限のないユーザーは実行できない[ ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: fetch_info [clear] rippled fetch_info ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -59,10 +59,9 @@ rippled fetch_info 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -98,9 +97,9 @@ rippled fetch_info } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -139,8 +138,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -163,7 +163,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md index 9887071fc4..d28dffbc1b 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md @@ -10,15 +10,14 @@ labels: `get_counts`コマンドは、サーバーの健全性に関するさまざまな統計情報を提供します。そのほとんどは、現在メモリーに格納されている各種オブジェクトの数です。 -_`get_counts`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。_ +_`get_counts`メソッドは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 90, @@ -26,9 +25,9 @@ _`get_counts`メソッドは、権限のないユーザーは実行できない[ "min_count": 100 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "get_counts", @@ -39,15 +38,16 @@ _`get_counts`メソッドは、権限のないユーザーは実行できない[ ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: get_counts [min_count] rippled get_counts 100 ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -59,10 +59,9 @@ rippled get_counts 100 処理が成功したレスポンスの例: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -97,9 +96,9 @@ rippled get_counts 100 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -137,8 +136,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っています。結果に含まれるフィールドのリストは、予告なく変更される可能性がありますが、(特に)以下のいずれかが含まれます。 @@ -155,7 +155,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md index 3a95d2c743..6bea54c2bf 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md @@ -1,8 +1,12 @@ --- html: status-and-debugging-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # ステータスとデバッグのメソッド -以下のメソッドを使用して、ネットワークとサーバーのステータスを確認することができます。 \ No newline at end of file +以下のメソッドを使用して、ネットワークとサーバーのステータスを確認することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md index 645a4b98e9..86b01d6632 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md @@ -10,29 +10,29 @@ labels: `print`コマンドは、さまざまな内部サブシステム(ピア、レジャークリーナー、リソースマネージャーなど)の現在の状況を返します。 -*`print`リクエストは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`print`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "print_req_1", "command": "print" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` rippled print ``` +{% /tab %} - +{% /tabs %} リクエストにはパラメーターが含まれていません。 @@ -40,10 +40,9 @@ rippled print 処理が成功したレスポンスの例: - - -*コマンドライン* +{% tabs %} +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -229,8 +228,9 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っています。結果に含まれる追加フィールドは、`rippled`サーバーの内部状態に応じて異なります。このコマンドの実行結果は、予告なく変更されることがあります。 @@ -238,7 +238,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md index bed368ca89..5406183b91 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md @@ -9,41 +9,41 @@ labels: # validator_info [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ValidatorInfo.cpp "ソース") -`{{currentpage.name}}`メソッドは、サーバがバリデータとして設定されている場合に、現在のバリデータの設定を返します。 +{% code-page-name /%}メソッドは、サーバがバリデータとして設定されている場合に、現在のバリデータの設定を返します。 -_`{{currentpage.name}}`メソッドは[管理メソッド](admin-api-methods.html)で、権限のないユーザは実行できません。_ +_{% code-page-name /%}メソッドは[管理メソッド](../index.md)で、権限のないユーザは実行できません。_ ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}" + "command": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}" + "method": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh -#Syntax: {{currentpage.name}} -rippled {{currentpage.name}} +#Syntax: {% $frontmatter.seo.title %} +rippled {% $frontmatter.seo.title %} ``` +{% /tab %} - +{% /tabs %} リクエストはパラメータを使用しません。 @@ -52,10 +52,9 @@ rippled {{currentpage.name}} 成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -69,9 +68,9 @@ rippled {{currentpage.name}} "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -86,9 +85,9 @@ rippled {{currentpage.name}} } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -104,8 +103,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従い、成功した結果には以下のフィールドが含まれます. @@ -113,7 +113,7 @@ Connecting to 127.0.0.1:5005 |:----------------|:------|:----------------------------------------------------------| | `domain` | 文字列 | _(省略される場合があります)_ このバリデータに関連付けられたドメイン名 (ドメイン名が設定されている場合)。 | | `ephemeral_key` | 文字列 | _(省略される場合があります)_ このサーバが検証メッセージに署名する際に使用する公開鍵。この鍵は、バリデータが設定したトークンを変更した際に変更されます。 | -| `manifest` | 文字列 | _(省略される場合があります)_ このバリデータが設定したトークンに対応するパブリックな「マニフェスト」を[バイナリにシリアライズ](serialization.html)して、base64でエンコードしたもの。このフィールドには個人情報は含まれません。 | +| `manifest` | 文字列 | _(省略される場合があります)_ このバリデータが設定したトークンに対応するパブリックな「マニフェスト」を[バイナリにシリアライズ](../../../protocol/binary-format.md)して、base64でエンコードしたもの。このフィールドには個人情報は含まれません。 | | `master_key` | 文字列 | このバリデータのマスターキーペアの公開鍵。このキーはバリデータを一意に識別するもので、バリデータが公開鍵をローテーションする場合でも同じです。サーバが`[validator_token]`ではなく`[validation_seed]`を用いて設定されている場合、レスポンスのフィールドはこれだけとなります。 | | `seq` | 数値 | _(省略される場合があります)_ このバリデータのバリデーション用トークンおよび設定のシーケンス番号。この番号は、バリデータのオペレータがトークンを更新して鍵をローテーションしたり設定を変更したりするたびに増加します。 | @@ -123,9 +123,6 @@ Connecting to 127.0.0.1:5005 ### 考えられるエラー * [汎用エラータイプ][]のすべて。 -- `invalidParams` - サーバが[バリデータとして設定されていない](run-rippled-as-a-validator.html)場合、サーバはこのエラーを`"error_message" : "not a validator"`と共に返します。 +- `invalidParams` - サーバが[バリデータとして設定されていない](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)場合、サーバはこのエラーを`"error_message" : "not a validator"`と共に返します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md index 87fb9bdea2..c0e746a85a 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md @@ -9,26 +9,25 @@ labels: # validator_list_sites [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ValidatorListSites.cpp "Source") -`validator_list_sites`コマンドは、バリデータリストを処理するサイトのステータス情報を返します。[新規: rippled 0.80.1][] +`validator_list_sites`コマンドは、バリデータリストを処理するサイトのステータス情報を返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.80.1" %}新規: rippled 0.80.1{% /badge %} -*`validator_list_sites`リクエストは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`validator_list_sites`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "validator_list_sites" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "validator_list_sites", @@ -37,15 +36,16 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: validator_list_sites rippled validator_list_sites ``` +{% /tab %} - +{% /tabs %} リクエストにはパラメーターが含まれていません。 @@ -53,10 +53,9 @@ rippled validator_list_sites 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":5, @@ -75,9 +74,9 @@ rippled validator_list_sites } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -95,9 +94,9 @@ rippled validator_list_sites } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -116,8 +115,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -138,7 +138,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md index 5c3db2896f..e3194cb264 100644 --- a/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +++ b/content/@i18n/ja/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md @@ -9,26 +9,25 @@ labels: # validators [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Validators.cpp "Source") -`validators`コマンドは、サーバーが使用する公開済みの信頼できるバリデータの最新リストに関する情報を、人間が読み取れる形式で返します。[新規: rippled 0.80.1][] +`validators`コマンドは、サーバーが使用する公開済みの信頼できるバリデータの最新リストに関する情報を、人間が読み取れる形式で返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.80.1" %}新規: rippled 0.80.1{% /badge %} -*`validators`リクエストは、権限のないユーザーは実行できない[管理メソッド](admin-api-methods.html)です。* +*`validators`リクエストは、権限のないユーザーは実行できない[管理メソッド](../index.md)です。* ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "validators" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "validators", @@ -37,15 +36,16 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: validators rippled validators ``` +{% /tab %} - +{% /tabs %} リクエストにはパラメーターが含まれていません。 @@ -53,10 +53,9 @@ rippled validators 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":5, @@ -88,9 +87,9 @@ rippled validators } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -122,9 +121,9 @@ rippled validators "status":"success" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -157,8 +156,9 @@ Connecting to 127.0.0.1:5005 "status":"success" } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -186,7 +186,4 @@ Connecting to 127.0.0.1:5005 * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/api-conventions/ctid.md b/content/@i18n/ja/references/http-websocket-apis/api-conventions/ctid.md index 1a85a19c04..147bb3c2d2 100644 --- a/content/@i18n/ja/references/http-websocket-apis/api-conventions/ctid.md +++ b/content/@i18n/ja/references/http-websocket-apis/api-conventions/ctid.md @@ -7,9 +7,9 @@ labels: --- # トランザクション軽量識別子 -CTID(トランザクション軽量識別子 / Compact Transaction Identifier)は、XRP Ledgerのメインネットを含む、あらゆる[ネットワーク](parallel-networks.html)で利用可能な、検証済みトランザクションの一意な識別子です。 +CTID(トランザクション軽量識別子 / Compact Transaction Identifier)は、XRP Ledgerのメインネットを含む、あらゆる[ネットワーク](../../../concepts/networks-and-servers/parallel-networks.md)で利用可能な、検証済みトランザクションの一意な識別子です。 -CTIDとトランザクションの[識別ハッシュ](transactions.html#identifying-transactions)の違いは以下の通りです: +CTIDとトランザクションの[識別ハッシュ](../../../concepts/transactions/index.md#identifying-transactions)の違いは以下の通りです: - CTIDは、ネットワークID、レジャーインデックス、レジャー内の位置に基づいて検証されたトランザクションを識別します。トランザクションがどのネットワークで検証されたかを特定するため、サイドチェーンへの接続など、複数のネットワークとやりとりする状況で使用できます。CTIDは64ビットで、通常は`C`で始まる16進数の大文字で、例えば`C005523E000000`のように記述します。 - トランザクションの識別ハッシュは、そのトランザクションがどのチェーンで検証されたかに関係なく、その内容に基づいて署名されたトランザクションを識別します。これは暗号ハッシュであるため、トランザクションの内容が完全であることを証明するために使用することもできます。トランザクションハッシュは256ビットで、通常64文字の16進数で記述され、例えば`E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7`となります。 @@ -22,8 +22,8 @@ CTIDは以下の要素を含みます(ビッグエンディアン順)。 1. 4ビット: CTIDであることを示す16進数の頭文字`C` 2. 28ビット: トランザクションが検証されたレジャーのインデックス -3. 16ビット: トランザクションのインデックス。これは[トランザクションのメタデータ](transaction-metadata.html)の`TransactionIndex`フィールドとして提供されます -4. 16ビット: トランザクションを検証したネットワークの[ネットワークID](transaction-common-fields.html#networkidフィールド) +3. 16ビット: トランザクションのインデックス。これは[トランザクションのメタデータ](../../protocol/transactions/metadata.md)の`TransactionIndex`フィールドとして提供されます +4. 16ビット: トランザクションを検証したネットワークの[ネットワークID](../../protocol/transactions/common-fields.md#networkidフィールド) **注記:** レジャーインデックスは通常32ビットの符号なし整数として保存され、新しいレジャーが作成されるたびに1ずつ増加します。ネットワークのレジャーインデックスが268,435,455より大きい場合、28ビットに収まらないので、必要に応じて先頭の`C`を`D`、`E`、`F`にインクリメントする必要があります。これは少なくとも2043年までは必要ないと思われます。 diff --git a/content/@i18n/ja/references/http-websocket-apis/api-conventions/error-formatting.md b/content/@i18n/ja/references/http-websocket-apis/api-conventions/error-formatting.md index d3602bb636..0eeb113416 100644 --- a/content/@i18n/ja/references/http-websocket-apis/api-conventions/error-formatting.md +++ b/content/@i18n/ja/references/http-websocket-apis/api-conventions/error-formatting.md @@ -12,10 +12,9 @@ blurb: WebSocket、JSON-RPC、コマンドラインインターフェイスの エラーの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "id": 3, @@ -31,9 +30,9 @@ blurb: WebSocket、JSON-RPC、コマンドラインインターフェイスの } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` HTTP Status: 200 OK { @@ -49,9 +48,9 @@ HTTP Status: 200 OK } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` { "result": { @@ -66,8 +65,9 @@ HTTP Status: 200 OK } } ``` +{% /tab %} - +{% /tabs %} ## WebSocketフォーマット @@ -104,7 +104,7 @@ HTTPステータスコード200 OKが返されるその他のエラーの場合 すべてのメソッドは、以下のいずれかの値の`error`コードを返す可能性があります。 -* `unknownCmd` - リクエストに、`rippled`サーバーが認識する[コマンド](http-websocket-apis.html)が含まれていません。 +* `unknownCmd` - リクエストに、`rippled`サーバーが認識する[コマンド](../index.md)が含まれていません。 * `jsonInvalid` -(WebSocketのみ)リクエストは適切なJSONオブジェクトではありません。 * この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 * `missingCommand` -(WebSocketのみ)リクエストに`command`フィールドが指定されていませんでした。 @@ -114,4 +114,4 @@ HTTPステータスコード200 OKが返されるその他のエラーの場合 * `noCurrent` - 高い負荷、ネットワークの問題、バリデータ障害、誤った構成、またはその他の問題が原因で、サーバーが現行のレジャーを認識できません。 * `noClosed` - サーバーに決済済みレジャーがありません。通常、このエラーは起動が完了していないことが原因で発生します。 * `wsTextRequired` -(WebSocketのみ)リクエストの[opcode](https://tools.ietf.org/html/rfc6455#section-5.2)がテキストではありません。 -* `amendmentBlocked` - サーバーの状態が[Amendment blocked](amendments.html#amendment-blocked)であるため、XRP Ledgerネットワークとの同期を維持するために最新バージョンに更新する必要があります。 +* `amendmentBlocked` - サーバーの状態が[Amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked)であるため、XRP Ledgerネットワークとの同期を維持するために最新バージョンに更新する必要があります。 diff --git a/content/@i18n/ja/references/http-websocket-apis/api-conventions/index.md b/content/@i18n/ja/references/http-websocket-apis/api-conventions/index.md index cdf2e1c3cc..70133c3fe4 100644 --- a/content/@i18n/ja/references/http-websocket-apis/api-conventions/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/api-conventions/index.md @@ -2,10 +2,14 @@ html: api-conventions.html parent: http-websocket-apis.html blurb: rippled APIのデータ型とフォーマットについて説明します。 -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # APIの規則 このセクションでは、JSON-RPCおよびWebSocketインターフェイスを含む`rippled` APIのデータ型とフォーマットについて説明します。 -これらのデータ型の一部は、[Data API](data-api.html)を含む、より高度なAPIにも使用されます。 +これらのデータ型の一部は、[Data API](../../data-api.md)を含む、より高度なAPIにも使用されます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/api-conventions/rate-limiting.md b/content/@i18n/ja/references/http-websocket-apis/api-conventions/rate-limiting.md index 907c889508..2a5b4238f1 100644 --- a/content/@i18n/ja/references/http-websocket-apis/api-conventions/rate-limiting.md +++ b/content/@i18n/ja/references/http-websocket-apis/api-conventions/rate-limiting.md @@ -9,9 +9,9 @@ labels: `rippled`サーバはAPIクライアントが公開APIにリクエストできるレートを制限できます。レート制限はクライアントのIPアドレスに基づいて行われるため、[ネットワークアドレス変換](https://ja.wikipedia.org/wiki/ネットワークアドレス変換)の背後にいるクライアントは公開IPアドレスに基づく制限を共有します。 -**ヒント:** レート制限は、クライアントが[管理者](get-started-using-http-websocket-apis.html#管理者アクセス権限)として接続されているときには適用されません +**ヒント:** レート制限は、クライアントが[管理者](../../../tutorials/get-started/get-started-using-http-websocket-apis.md#管理者アクセス権限)として接続されているときには適用されません -クライアントがレート制限に近づいている場合、サーバーは[APIレスポンス](response-formatting.html)のトップレベルにフィールド`"warning": "load"`というフィールドを[APIレスポンス](response-formatting.html)のトップレベルに追加します。この警告はすべてのレスポンスに追加されるわけではありませんが、サーバはクライアントを切断する前に何度かこのような警告を送ることがあります。 +クライアントがレート制限に近づいている場合、サーバーは[APIレスポンス](response-formatting.md)のトップレベルにフィールド`"warning": "load"`というフィールドを[APIレスポンス](response-formatting.md)のトップレベルに追加します。この警告はすべてのレスポンスに追加されるわけではありませんが、サーバはクライアントを切断する前に何度かこのような警告を送ることがあります。 クライアントがレート制限を超えると、サーバーはそのクライアントを切断し、しばらくの間、クライアントのAPIアドレスからのリクエストを受け付けません。WebSocket APIとJSON-RPC APIでは、異なる切断メッセージを使用します。 @@ -54,16 +54,13 @@ Server is overloaded ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](xrpl-servers.html) - - [ソフトウェアエコシステム](software-ecosystem.html) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) + - [ソフトウェアエコシステム](../../../introduction/software-ecosystem.md) - **チュートリアル:** - - [XRP Ledger APIの使用開始](get-started-using-http-websocket-apis.html) - - [rippledのトラブルシューティング](troubleshoot-the-rippled-server.html) + - [XRP Ledger APIの使用開始](../../../tutorials/get-started/get-started-using-http-websocket-apis.md) + - [rippledのトラブルシューティング](../../../infrastructure/troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) - - [エラーのフォーマット](error-formatting.html) + - [rippled APIリファレンス](../index.md) + - [エラーのフォーマット](error-formatting.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/api-conventions/request-formatting.md b/content/@i18n/ja/references/http-websocket-apis/api-conventions/request-formatting.md index df34ed35ca..0639988d45 100644 --- a/content/@i18n/ja/references/http-websocket-apis/api-conventions/request-formatting.md +++ b/content/@i18n/ja/references/http-websocket-apis/api-conventions/request-formatting.md @@ -36,10 +36,9 @@ JSON-RPCリクエストを実行するには、`rippled`サーバーがJSON-RPC ### リクエストの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "id": 2, @@ -49,9 +48,9 @@ JSON-RPCリクエストを実行するには、`rippled`サーバーがJSON-RPC "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` POST http://s1.ripple.com:51234/ { @@ -65,11 +64,12 @@ POST http://s1.ripple.com:51234/ ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated true ``` +{% /tab %} - +{% /tabs %} diff --git a/content/@i18n/ja/references/http-websocket-apis/api-conventions/response-formatting.md b/content/@i18n/ja/references/http-websocket-apis/api-conventions/response-formatting.md index 221e69a263..3dd44a284a 100644 --- a/content/@i18n/ja/references/http-websocket-apis/api-conventions/response-formatting.md +++ b/content/@i18n/ja/references/http-websocket-apis/api-conventions/response-formatting.md @@ -14,16 +14,15 @@ blurb: WebSocket、JSON-RPC、コマンドラインインターフェイスの | `id` | (場合により異なる) | (WebSocketのみ)このレスポンスのリクエスト元となったリクエストで指定されているID。 | | `status` | 文字列 | (WebSocketのみ)値が`success`である場合、リクエストがサーバーによって正常に受信され、理解されたことを示します。 | | `result.status` | 文字列 | (JSON-RPCおよびコマンドライン)値が`success`である場合、リクエストがサーバーによって正常に受信され、理解されたことを示します。 | -| `type` | 文字列 | (WebSocketのみ)値が`response`の場合、コマンドに対する正常なレスポンスであることを示します。[非同期の通知](subscribe.html)では、`ledgerClosed`や`transaction`など異なる値が使用されます。 | +| `type` | 文字列 | (WebSocketのみ)値が`response`の場合、コマンドに対する正常なレスポンスであることを示します。[非同期の通知](../public-api-methods/subscription-methods/subscribe.md)では、`ledgerClosed`や`transaction`など異なる値が使用されます。 | | `result` | オブジェクト | クエリーの結果。内容はコマンドによって異なります。 | ## 成功した場合のレスポンスの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "id": 2, @@ -45,9 +44,9 @@ blurb: WebSocket、JSON-RPC、コマンドラインインターフェイスの } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` HTTP Status: 200 OK { @@ -68,8 +67,9 @@ HTTP Status: 200 OK } } ``` -*コマンドライン* +{% /tab %} +{% tab label="コマンドライン" %} ``` { "result": { @@ -89,5 +89,6 @@ HTTP Status: 200 OK } } ``` +{% /tab %} - +{% /tabs %} diff --git a/content/@i18n/ja/references/http-websocket-apis/api-conventions/rippled-server-states.md b/content/@i18n/ja/references/http-websocket-apis/api-conventions/rippled-server-states.md index 93545a087c..877e3ab330 100644 --- a/content/@i18n/ja/references/http-websocket-apis/api-conventions/rippled-server-states.md +++ b/content/@i18n/ja/references/http-websocket-apis/api-conventions/rippled-server-states.md @@ -21,7 +21,4 @@ labels: **注記:** `full`、`validating`、`proposing`の区別は、グローバルネットワークの他者との同期の状況に基づいていますが、通常サーバーの上記の状態は一般的なオペレーションの中で変動します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/index.md b/content/@i18n/ja/references/http-websocket-apis/index.md index 85f3d8d7a7..2d6e793b3c 100644 --- a/content/@i18n/ja/references/http-websocket-apis/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/index.md @@ -1,8 +1,12 @@ --- html: http-websocket-apis.html parent: references.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # HTTP / WebSocket API リファレンス -XRP Ledgerを管理するコアのピアツーピアサーバーであるrippledと直接通信します。 \ No newline at end of file +XRP Ledgerを管理するコアのピアツーピアサーバーであるrippledと直接通信します。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/health-check.md b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/health-check.md index c99a51f848..fb3c7fa3a9 100644 --- a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/health-check.md +++ b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/health-check.md @@ -8,13 +8,13 @@ labels: # ヘルスチェック [[ソース]](https://github.com/XRPLF/rippled/blob/de0c52738785de8bf837f9124da65c7905e7bb5a/src/ripple/overlay/impl/OverlayImpl.cpp#L1084-L1168 "ソース") -ヘルスチェックは、個々の`rippled`サーバの状態を報告するための特別な[peer portメソッド](peer-port-methods.html)です。このメソッドは、自動化された監視において、機能停止を認識し、サーバの再起動のような自動または手動による介入を促すために使用することを意図しています。[新規: rippled 1.6.0][] +ヘルスチェックは、個々の`rippled`サーバの状態を報告するための特別な[peer portメソッド](index.md)です。このメソッドは、自動化された監視において、機能停止を認識し、サーバの再起動のような自動または手動による介入を促すために使用することを意図しています。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} このメソッドは、複数の情報をチェックして、一般に正常とみなされる範囲にあるかどうかを確認します。すべての情報が正常な範囲にある場合、このメソッドは、サーバが正常であることを報告します。いずれかの情報が正常な範囲外の場合、このメソッドは、サーバが正常でないことを報告し、正常でない情報を報告します。 情報によっては、急速に正常範囲から外れる情報もあるため、ヘルスチェックが複数回連続して失敗しない限り、アラートを発生させないようにしてください。 -**注記:** ヘルスチェックは[peer portメソッド](peer-port-methods.html)であるため、[スタンドアロンモード][]でサーバをテストしているときは利用できません。 +**注記:** ヘルスチェックは[peer portメソッド](index.md)であるため、[スタンドアロンモード][]でサーバをテストしているときは利用できません。 ## リクエストのフォーマット @@ -32,10 +32,9 @@ labels: ## レスポンスの例 - - -*Healthy* +{% tabs %} +{% tab label="Healthy" %} ```json HTTP/1.1 200 OK Server: rippled-1.6.0-b8 @@ -47,9 +46,9 @@ Transfer-Encoding: chunked "info": {} } ``` +{% /tab %} -*Warning* - +{% tab label="Warning" %} ```json HTTP/1.1 503 Service Unavailable Server: rippled-1.6.0 @@ -64,9 +63,9 @@ Transfer-Encoding: chunked } } ``` +{% /tab %} -*Critical* - +{% tab label="Critical" %} ```json HTTP/1.1 500 Internal Server Error Server: rippled-1.6.0 @@ -82,8 +81,9 @@ Transfer-Encoding: chunked } } ``` +{% /tab %} - +{% /tabs %} ## レスポンスのフォーマット @@ -101,18 +101,14 @@ Transfer-Encoding: chunked | `Field` | 値 | 説明 | |:--------------------|:------|:---------------------------------------------| -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ `true`の場合、サーバは[amendmentブロック](amendments.html#amendment-blocked-servers)状態で、ネットワークとの同期を維持するためにアップグレードする必要があります。この状態は非常に重要です。サーバがAmendmentブロックされていない場合、このフィールドは省略されます。 | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ `true`の場合、サーバは[amendmentブロック](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers)状態で、ネットワークとの同期を維持するためにアップグレードする必要があります。この状態は非常に重要です。サーバがAmendmentブロックされていない場合、このフィールドは省略されます。 | | `load_factor` | 数値 | _(省略される場合があります)_ サーバが受けている全体的な負荷の指標。I/O、CPU、メモリの制限が反映されます。負荷率が100以上の場合はwarning、1000以上の場合はcriticalです。 | -| `peers` | 数値 | _(省略される場合があります)_ このサーバが接続している[ピアサーバ](peer-protocol.html)の数。7つ以下のピアに接続されている場合はwarning、0つのピアに接続されている場合はcriticalです。 | -| `server_state` | 文字列 | _(省略される場合があります)_ 現在の[サーバの状態](rippled-server-states.html)。サーバの状態が`tracking`、`syncing`、`connected`の場合はwarningです。サーバが`disconnected`状態の場合はcriticalです。 | -| `validated_ledger` | 数値 | _(省略される場合があります)_ レジャーが最後に[コンセンサス](consensus.html)によって検証されてから何秒経ったかを表します。検証されたレジャーがない場合([サーバ起動時の初期同期期間](server-doesnt-sync.html#normal-syncing-behavior))、この値は`-1`となり、warningとみなされます。また、最後に検証されたレジャーが少なくとも7秒前であればwarningとなり、最後に検証されたレジャーが少なくとも20秒前であればcriticalとなります。 | +| `peers` | 数値 | _(省略される場合があります)_ このサーバが接続している[ピアサーバ](../../../concepts/networks-and-servers/peer-protocol.md)の数。7つ以下のピアに接続されている場合はwarning、0つのピアに接続されている場合はcriticalです。 | +| `server_state` | 文字列 | _(省略される場合があります)_ 現在の[サーバの状態](../api-conventions/rippled-server-states.md)。サーバの状態が`tracking`、`syncing`、`connected`の場合はwarningです。サーバが`disconnected`状態の場合はcriticalです。 | +| `validated_ledger` | 数値 | _(省略される場合があります)_ レジャーが最後に[コンセンサス](../../../concepts/consensus-protocol/index.md)によって検証されてから何秒経ったかを表します。検証されたレジャーがない場合([サーバ起動時の初期同期期間](../../../infrastructure/troubleshooting/server-doesnt-sync.md#normal-syncing-behavior))、この値は`-1`となり、warningとみなされます。また、最後に検証されたレジャーが少なくとも7秒前であればwarningとなり、最後に検証されたレジャーが少なくとも20秒前であればcriticalとなります。 | ## 関連項目 -ヘルスチェックの結果を判断するガイダンスについては、[ヘルスチェックの導入](health-check-interventions.html)をご覧ください。 +ヘルスチェックの結果を判断するガイダンスについては、[ヘルスチェックの導入](../../../infrastructure/troubleshooting/health-check-interventions.md)をご覧ください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/index.md index 03b7534fda..be5f40933b 100644 --- a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/index.md @@ -1,8 +1,12 @@ --- html: peer-port-methods.html parent: http-websocket-apis.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # ピアポートメソッド -ネットワークトポロジーやステータスメトリクスを共有するための特別なAPIメソッドです。 \ No newline at end of file +ネットワークトポロジーやステータスメトリクスを共有するための特別なAPIメソッドです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/peer-crawler.md b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/peer-crawler.md index 260c59bb96..546fed1129 100644 --- a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/peer-crawler.md +++ b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/peer-crawler.md @@ -8,7 +8,7 @@ labels: --- # ピアクローラ -ピアクローラは、ピアツーピアネットワークの健全性と統計情報を報告するための特別な[peer portメソッド](peer-port-methods.html)です。このAPIメソッドは、デフォルトでは[ピアプロトコル](peer-protocol.html)のポートを通して非rootベースで利用可能で、コンセンサスやレジャーの履歴、その他の必要な情報についての`rippled`サーバのピアツーピア通信にも使用されます。 +ピアクローラは、ピアツーピアネットワークの健全性と統計情報を報告するための特別な[peer portメソッド](index.md)です。このAPIメソッドは、デフォルトでは[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)のポートを通して非rootベースで利用可能で、コンセンサスやレジャーの履歴、その他の必要な情報についての`rippled`サーバのピアツーピア通信にも使用されます。 ピアクローラによって報告された情報は事実上公開され、XRP Ledgerのネットワーク全体やその健全性、統計情報について報告するために使用することができます。 @@ -34,18 +34,18 @@ JSONオブジェクトは次のフィールドを含んでいます。 |:-----------------|:-----------|:-------------------------------------------------| | `counts` | オブジェクト | _(省略可)_ [get_countsメソッド][]のレスポンスと同じように、このサーバの状態に関する統計情報を返します。デフォルトの設定では、このフィールドは報告されません。報告される情報には、レジャーデータベースとトランザクションデータベースのサイズ、アプリケーション内キャッシュのキャッシュヒット率、さまざまな種類のオブジェクトがメモリにキャッシュされている数などがあります。メモリに保存されるオブジェクトの種類には、レジャー(`Ledger`)、トランザクション(`STTx`)、検証メッセージ (`STValidation`)などがあります。 | | `overlay` | オブジェクト | _(省略可)_ [peersメソッド][]のレスポンスに似ています。`active`というフィールドがあり、これはオブジェクトの配列です(下記参照)。 | -| `server` | オブジェクト | _(省略可)_ このサーバに関する情報。[server_stateメソッド][]の公開フィールドを含みます。どの`rippled`バージョン(`build_version`)か、どの[レジャーバージョン](ledger-history.html)が利用可能か(`complete_ledgers`)、サーバーの負荷量などです。[更新: rippled 1.2.1][]. | -| `unl` | オブジェクト | _(省略可)_ [validatorsメソッド][]や[validator_list_sitesメソッド][]のレスポンスと同様です。[更新: rippled 1.2.1][]. | -| `version` | 数値 | このピアクローラのレスポンスのフォーマットのバージョンを示します。現在のピアクローラのバージョン番号は`2`です。[更新: rippled 1.2.1][]. | +| `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 %}. | `overlay.active`配列の各メンバーは、次のフィールドを持つオブジェクトです。 | `Field` | 値 | 説明 | |:-------------------|:-----------------------|:-----------------------------------| -| `complete_ledgers` | 文字列 | このピアで利用可能な[レジャーバージョン](ledger-history.html)の範囲。 | -| `complete_shards` | 文字列 | _(省略可)_ このピアが利用可能な[レジャー履歴シャード](history-sharding.html)の範囲。 | -| `ip` | 文字列 (IPv4アドレス) | _(省略可)_この接続ピアの IPアドレス。ピアがバリデータまたは[プライベートピア](peer-protocol.html#プライベートピア)として設定されている場合は省略されます。[更新: rippled 1.2.1][]. | -| `port` | 文字列 (数値) | _(省略可)_ RTXPを提供するピアサーバのポート番号。通常は`51235`。ピアがバリデータまたは[プライベートピア](peer-protocol.html#プライベートピア)として設定されている場合は省略されます。[更新: rippled 1.2.1][]. | +| `complete_ledgers` | 文字列 | このピアで利用可能な[レジャーバージョン](../../../concepts/networks-and-servers/ledger-history.md)の範囲。 | +| `complete_shards` | 文字列 | _(省略可)_ このピアが利用可能な[レジャー履歴シャード](../../../infrastructure/configuration/data-retention/history-sharding.md)の範囲。 | +| `ip` | 文字列 (IPv4アドレス) | _(省略可)_この接続ピアの IPアドレス。ピアがバリデータまたは[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として設定されている場合は省略されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | +| `port` | 文字列 (数値) | _(省略可)_ RTXPを提供するピアサーバのポート番号。通常は`51235`。ピアがバリデータまたは[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として設定されている場合は省略されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | | `public_key` | 文字列 (Base64エンコード) | このピアがRTXPメッセージに署名するために使用するECDSA鍵ペアの公開鍵。(これはピアサーバの[server_infoメソッド][]で報告される`pubkey_node`と同じデータです)。 | | `type` | 文字列 | `in`または`out`の値で、ピアへのTCP接続が着信か発信かを示します。 | | `uptime` | 数値 | サーバがこのピアに接続している秒数。 | @@ -55,39 +55,31 @@ JSONオブジェクトは次のフィールドを含んでいます。 リクエスト: - - -*HTTP* +{% tabs %} +{% tab label="HTTP" %} ``` GET https://localhost:51235/crawl ``` +{% /tab %} -*cURL* - +{% tab label="cURL" %} ``` curl --insecure https://localhost:51235/crawl ``` +{% /tab %} - +{% /tabs %} レスポンス: -```json -200 OK - -{% include '_api-examples/peer-crawler/crawl.json' %} -``` +{% code-snippet file="/_api-examples/peer-crawler/crawl.json" language="json" prefix="200 OK\n\n" /%} ## 関連項目 -- [ピアプロトコル](peer-protocol.html) -- [ピアクローラの設定](configure-the-peer-crawler.html) +- [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) +- [ピアクローラの設定](../../../infrastructure/configuration/peering/configure-the-peer-crawler.md) - [Validator History Service](https://github.com/ripple/validator-history-service)は、検証関連データの取り込み、集計、保存、配布にピアクローラを使用するサービスの一例です。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/validator-list.md b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/validator-list.md index 7fdf19c256..52ab18cf6a 100644 --- a/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/validator-list.md +++ b/content/@i18n/ja/references/http-websocket-apis/peer-port-methods/validator-list.md @@ -8,9 +8,9 @@ labels: --- # バリデータリストメソッド -バリデータリストメソッドは特別なAPIエンドポイントで、`rippled`サーバが現在使用している信頼できるバリデータリストを取得します。これは多くの場合、サーバが信頼するバリデータの正確なリストを表します。[新規: rippled 1.5.0][]. +バリデータリストメソッドは特別なAPIエンドポイントで、`rippled`サーバが現在使用している信頼できるバリデータリストを取得します。これは多くの場合、サーバが信頼するバリデータの正確なリストを表します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}新規: rippled 1.5.0{% /badge %}. -[ピアクローラ](peer-crawler.html)と同様に、バリデータリストメソッドはデフォルトで非root権限で[ピアプロトコル](peer-protocol.html)ポートから利用できます。 +[ピアクローラ](peer-crawler.md)と同様に、バリデータリストメソッドはデフォルトで非root権限で[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)ポートから利用できます。 ## リクエストのフォーマット @@ -41,14 +41,14 @@ JSONオブジェクトには以下のフィールドがあります。 | `blob` | 文字列 | バリデータリストを表すBase64エンコードされたJSONデータ。 | | `signature` | 文字列 | 16進数で表した`blob`データの署名。 | | `version` | 数値 | このオブジェクトが使用するバリデータリストプロトコルのバージョン。現在のバージョンは **1** です。それ以上のバージョン番号は、バリデータリストプロトコルの以前のバージョンとの下位互換性を表します。 | -| `public_key` | 文字列 | このバリデータリストのデータを検証するために使用する公開鍵。これは32バイトのEd25519公開鍵で、先頭に`0xED`というバイトが付きます。[新規: rippled 1.7.0][]. | +| `public_key` | 文字列 | このバリデータリストのデータを検証するために使用する公開鍵。これは32バイトのEd25519公開鍵で、先頭に`0xED`というバイトが付きます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %}. | ### マニフェストデータ [[ソース]](https://github.com/XRPLF/rippled/blob/97712107b71a8e2089d2e3fcef9ebf5362951110/src/ripple/app/misc/impl/Manifest.cpp#L43-L66 "ソース") -"マニフェスト"には、コンセンサスプロセスに関与する個人または組織(***バリデータ**または**リスト発行者**)を一意に識別する情報が含まれます。バリデータのマニフェストには、その[バリデータのトークン](run-rippled-as-a-validator.html#3-enable-validation-on-your-rippled-server)の _公開_ 情報が含まれます。リスト発行者のマニフェストはリスト発行者に関する情報を提供します。どちらも通常、XRP Ledgerの標準的な[バイナリフォーマット](serialization.html)でバイナリにエンコードされます。(マニフェストの標準的なJSON形式はありません)。 +"マニフェスト"には、コンセンサスプロセスに関与する個人または組織(***バリデータ**または**リスト発行者**)を一意に識別する情報が含まれます。バリデータのマニフェストには、その[バリデータのトークン](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server)の _公開_ 情報が含まれます。リスト発行者のマニフェストはリスト発行者に関する情報を提供します。どちらも通常、XRP Ledgerの標準的な[バイナリフォーマット](../../protocol/binary-format.md)でバイナリにエンコードされます。(マニフェストの標準的なJSON形式はありません)。 -マニフェストの主な目的の1つは、バリデータ鍵のローテーションです。バリデータはそのエフェメラル鍵ペアを変更すると、新しいエフェメラル公開鍵を共有するために新しいマニフェストを発行します。バリデータは[コンセンサスプロセス](consensus.html)の一部としてバリデーションに署名するためにエフェメラル鍵ペアを使用し、新しいマニフェストに署名するためにのみマスター鍵ペアを使用します。(マニフェストは、[バリデータ管理者が`rippled.cfg`設定ファイルに追加する](run-rippled-as-a-validator.html#3-enable-validation-on-your-rippled-server)プライベートデータと一緒にバリデータトークンに組み込まれます)。 +マニフェストの主な目的の1つは、バリデータ鍵のローテーションです。バリデータはそのエフェメラル鍵ペアを変更すると、新しいエフェメラル公開鍵を共有するために新しいマニフェストを発行します。バリデータは[コンセンサスプロセス](../../../concepts/consensus-protocol/index.md)の一部としてバリデーションに署名するためにエフェメラル鍵ペアを使用し、新しいマニフェストに署名するためにのみマスター鍵ペアを使用します。(マニフェストは、[バリデータ管理者が`rippled.cfg`設定ファイルに追加する](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server)プライベートデータと一緒にバリデータトークンに組み込まれます)。 マニフェストでエンコードされるデータは次のとおりです。 @@ -62,7 +62,7 @@ JSONオブジェクトには以下のフィールドがあります。 | `sfSigningPubKey` | Blob | _(省略可)_ この個人または組織が現在使用している鍵ペアのエフェメラル公開鍵。これは33バイトのsecp256k1公開鍵でなければなりません。 | | `sfSignature` | Blob | _(省略可)_ エフェメラルキーペアからのこのマニフェストデータの署名。 | -`sfMasterSignature`と`sfSignature`の署名は、署名フィールド(`sfMasterSignature`と`sfSignature`)自体を除いて、マニフェストの[シリアライズされた](serialization.html)バイナリデータに署名することで作成されます。 +`sfMasterSignature`と`sfSignature`の署名は、署名フィールド(`sfMasterSignature`と`sfSignature`)自体を除いて、マニフェストの[シリアライズされた](../../protocol/binary-format.md)バイナリデータに署名することで作成されます。 ### Blobデータ @@ -85,45 +85,36 @@ base64から`blob`をデコードすると、以下のフィールドを持つJS #### デコードされたBlobの例 -```json -{% include '_api-examples/vl/vl-blob.json' %} -``` +{% code-snippet file="/_api-examples/vl/vl-blob.json" language="json" /%} ## 例 リクエスト: - - -*HTTP* +{% tabs %} +{% tab label="HTTP" %} ``` GET https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` +{% /tab %} -*cURL* - +{% tab label="cURL" %} ``` curl --insecure https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` +{% /tab %} - +{% /tabs %} レスポンス: -```json -200 OK - -{% include '_api-examples/vl/vl.json' %} -``` +{% code-snippet file="/_api-examples/vl/vl.json" language="json" prefix="200 OK\n\n" /%} ## 関連項目 -- [ピアプロトコル](peer-protocol.html) -- [コンセンサス](consensus.html) +- [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) +- [コンセンサス](../../../concepts/consensus-protocol/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md index 8018850e25..3c29e471ba 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md @@ -8,17 +8,16 @@ labels: # account_channels [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/AccountChannels.cpp "Source") -_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ +_([PayChan Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}新規: rippled 0.33.0{% /badge %})_ `account_channels`メソッドは、アカウントのPayment Channelに関する情報を返します。指定されたアカウントがChannelの送金元であり、送金先ではないChannelのみが含まれます。(Channelの「送金元」と「所有者」は同一です。)取得された情報はすべて、特定バージョンのレジャーに関連付けられています。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -28,9 +27,9 @@ _([PayChan Amendment][]が有効になっている必要があります。[新 "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_channels", @@ -41,17 +40,18 @@ _([PayChan Amendment][]が有効になっている必要があります。[新 }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```bash #Syntax: account_channels [] [] rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTKHSANinZseWnPcX validated ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#account_channels) +[試してみる>](/resources/dev-tools/websocket-api-tool#account_channels) リクエストには以下のパラメーターが含まれます。 @@ -69,10 +69,9 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -98,9 +97,9 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -126,9 +125,9 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json 200 OK @@ -154,8 +153,9 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -163,9 +163,9 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK |:-----------|:-------------------------------------------|:-------------------| | `account` | 文字列 | Payment Channelの送金元/所有者のアドレス。これはリクエストの`account`フィールドに対応しています。 | | `channels` | channelオブジェクトの配列 | この`account`が所有するPayment Channel。 | -| `ledger_hash` | 文字列 | このレスポンスの生成に使用されたレジャーバージョンの識別用[ハッシュ][]。[新規: rippled 0.90.0][] | -| `ledger_index` | 数値 | このレスポンスの生成に使用されたレジャーバージョンの[レジャーインデックス][]。[新規: rippled 0.90.0][] | -| `validated` | ブール値 | _(省略される場合があります)_`true`の場合、このレスポンスの情報は検証済みレジャーバージョンから取り込まれます。trueでない場合、情報は変更されることがあります。[新規: rippled 0.90.0][] | +| `ledger_hash` | 文字列 | このレスポンスの生成に使用されたレジャーバージョンの識別用[ハッシュ][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | +| `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` | [マーカー][] | _(省略される場合があります)_ ページネーションのサーバー定義の値。この値を次のコールに渡して、このコールで終わった箇所から結果の取得を再開します。この後に追加のページがない場合は省略されます。 | @@ -176,15 +176,15 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK | `account` | 文字列 | Channelの所有者([アドレス][]として)。 | | `amount` | 文字列 | このChannelに割り当てられる[XRP、drop単位][]の合計額。 | | `balance` | 文字列 | 使用されているレジャーバージョンにおいて、このChannelから支払われた[XRP、drop単位][]の合計額。(Channelに残っているXRPの額を計算するには、`balance`を`amount`から差し引きます。) | -| `channel_id` | 文字列 | このChannelの一意のID(64文字の16進数文字列)。レジャーの状態データの[channelオブジェクトのID](paychannel.html#paychannel-idのフォーマット)でもあります。 | +| `channel_id` | 文字列 | このChannelの一意のID(64文字の16進数文字列)。レジャーの状態データの[channelオブジェクトのID](../../../protocol/ledger-data/ledger-entry-types/paychannel.md#paychannel-idのフォーマット)でもあります。 | | `destination_account` | 文字列 | Channelの送金先アカウント([アドレス][]として)。このアカウントだけが、Channelがオープンしている間にXRPを受領できます。 | | `public_key` | 文字列 | _(省略される場合があります)_ XRP Ledgerの[base58][]フォーマットのPayment Channelの公開鍵。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | | `public_key_hex` | 文字列 | _(省略される場合があります)_ Payment Channel作成時にChannelの公開鍵を指定している場合はその公開鍵(16進数フォーマット)。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | | `settle_delay` | 符号なし整数 | Payment Channelの所有者がChannel閉鎖を依頼した後に、そのChannelが開いている必要がある秒数。 | | `expiration` | 符号なし整数 | _(省略される場合があります)_ このChannelに設定された有効期限([Rippleエポック以降の経過秒数][])。この有効期限の日付は変更可能です。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | | `cancel_after` | 符号なし整数 | _(省略される場合があります)_ このChannelの変更不可能な有効期限がChannel作成時に指定されている場合はその有効期限([Rippleエポック以降の経過秒数][])。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | -| `source_tag` | 符号なし整数 | _(省略される場合があります)_ このPayment Channelを通じた支払いの[送金元タグ](source-and-destination-tags.html)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金元アカウントでのPayment Channelの送金人またはその他の目的を示します。通常、このChannelからの支払いを差し戻す場合、返金の`DestinationTag`にこの値を指定する必要があります。 | -| `destination_tag` | 符号なし整数 | _(省略される場合があります)_ このChannelを通じた支払いの[送金先タグ](source-and-destination-tags.html)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金先アカウントでのPayment Channelの受取人またはその他の目的を示します。 | +| `source_tag` | 符号なし整数 | _(省略される場合があります)_ このPayment Channelを通じた支払いの[送金元タグ](../../../../concepts/transactions/source-and-destination-tags.md)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金元アカウントでのPayment Channelの送金人またはその他の目的を示します。通常、このChannelからの支払いを差し戻す場合、返金の`DestinationTag`にこの値を指定する必要があります。 | +| `destination_tag` | 符号なし整数 | _(省略される場合があります)_ このChannelを通じた支払いの[送金先タグ](../../../../concepts/transactions/source-and-destination-tags.md)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金先アカウントでのPayment Channelの受取人またはその他の目的を示します。 | ## 考えられるエラー @@ -193,6 +193,4 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md index 32ab97ae1b..8b2e40163f 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md @@ -13,10 +13,9 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "account_currencies", @@ -25,9 +24,9 @@ labels: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_currencies", @@ -41,16 +40,17 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#account_currencies) +[試してみる>](/resources/dev-tools/websocket-api-tool#account_currencies) リクエストには以下のパラメーターが含まれます。 | `Field` | 型 | 説明 | |:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | このアカウントが送受信できる通貨を検索します。[更新: rippled 1.11.0][] | +| `account` | 文字列 | このアカウントが送受信できる通貨を検索します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %} | | `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用する[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | @@ -61,10 +61,9 @@ labels: 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "result": { @@ -97,9 +96,9 @@ labels: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` 200 OK { @@ -132,8 +131,9 @@ labels: } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -145,7 +145,7 @@ labels: | `send_currencies` | 文字列の配列 | このアカウントが送金できる通貨の[通貨コード][]の配列。 | | `validated` | ブール値 | `true`の場合、このデータは検証済みレジャーから取得されます。 | -**注記:** アカウントが送金または受領できる通貨は、アカウントのトラストラインのチェックに基づいて定義されます。アカウントに通貨のトラストラインがあり、残高を増額できる余裕がある場合、その通貨を受領できます。トラストラインの残高を減らせる場合、アカウントはその通貨を送金できます。このメソッドでは、トラストラインが[凍結](freezes.html)または承認されているかどうかは確認 _されません_ 。 +**注記:** アカウントが送金または受領できる通貨は、アカウントのトラストラインのチェックに基づいて定義されます。アカウントに通貨のトラストラインがあり、残高を増額できる余裕がある場合、その通貨を受領できます。トラストラインの残高を減らせる場合、アカウントはその通貨を送金できます。このメソッドでは、トラストラインが[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)または承認されているかどうかは確認 _されません_ 。 ## 考えられるエラー @@ -154,6 +154,4 @@ labels: * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_info.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_info.md index 782fc37304..8dd41fa7d7 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_info.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_info.md @@ -15,10 +15,9 @@ labels: account_infoリクエストの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -28,9 +27,9 @@ account_infoリクエストの例: "queue": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_info", @@ -43,27 +42,28 @@ account_infoリクエストの例: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: account_info account [ledger_index|ledger_hash] rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#account_info) +[試してみる>](/resources/dev-tools/websocket-api-tool#account_info) リクエストには以下のパラメーターが含まれます。 | `Field` | 型 | 必須? | 説明 | |:---------------|:---------------------------|:------|:-------------------------------| -| `account` | 文字列 - [アドレス][] | はい | 検索するアカウント。[更新: rippled 1.11.0][] | +| `account` | 文字列 - [アドレス][] | はい | 検索するアカウント。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %} | | `ledger_hash` | 文字列 | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください。) | | `ledger_index` | 文字列または整数 | いいえ | 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください。) | | `queue` | 真偽値 | いいえ | `true`の場合、このアカウントに関連するキューに入れられたトランザクションについてのステータスも返されます。これを使用するのは、現在のオープンレジャーのデータを問い合わせる場合のみです。 | -| `signer_lists` | 真偽値 | いいえ | `true`の場合、このアカウントに関連するすべての[SignerListオブジェクト](signerlist.html)も返されます。 | +| `signer_lists` | 真偽値 | いいえ | `true`の場合、このアカウントに関連するすべての[SignerListオブジェクト](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)も返されます。 | 次のフィールドは廃止予定のため、指定しないでください。`ident`、`ledger`,`strict` @@ -71,10 +71,9 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 5, @@ -122,9 +121,9 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -170,9 +169,9 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -195,45 +194,46 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従い、リクエストされたアカウントとそのデータ、アカウントの適用先レジャーが結果として表示されます。以下のフィールドが含まれます。 | `Field` | 型 | 説明 | |:-----------------------|:-----------|:------------------------------------------| -| `account_data` | オブジェクト | このアカウントの情報を含む[AccountRootレジャーオブジェクト](accountroot.html)がレジャーに保管されているとおりに表示されます。 | -| `account_flags` | オブジェクト | アカウントの`Flags`フィールドに基づく、アカウントのフラグ情報(下記参照)。 [新規: rippled 1.11.0][] | -| `signer_lists` | 配列 | (リクエストに`signer_lists`が指定されていて、少なくとも1つのSignerListがアカウントに関連する場合を除いて省略)[マルチシグ](multi-signing.html)用にアカウントに関連付けられた[SignerListレジャーオブジェクト](signerlist.html)の配列。アカウントが所有できるSignerListは最大1つであるため、この配列のメンバーは存在するとすれば、1メンバーのみです。 | +| `account_data` | オブジェクト | このアカウントの情報を含む[AccountRootレジャーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/accountroot.md)がレジャーに保管されているとおりに表示されます。 | +| `account_flags` | オブジェクト | アカウントの`Flags`フィールドに基づく、アカウントのフラグ情報(下記参照)。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | +| `signer_lists` | 配列 | (リクエストに`signer_lists`が指定されていて、少なくとも1つのSignerListがアカウントに関連する場合を除いて省略)[マルチシグ](../../../../concepts/accounts/multi-signing.md)用にアカウントに関連付けられた[SignerListレジャーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)の配列。アカウントが所有できるSignerListは最大1つであるため、この配列のメンバーは存在するとすれば、1メンバーのみです。 | | `ledger_current_index` | 整数 | (`ledger_index`が代わりに指定されている場合は省略) この情報を取得したときに使用されていた最新のレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | | `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略) この情報を取得したときに使用されていたレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | -| `queue_data` | オブジェクト | (`queue`が`true`と指定され、現在開いているレジャーを問い合わせている場合を除いて省略) このアカウントによって送信された[キューに入れられたトランザクション](transaction-cost.html#キューに入れられたトランザクション)についての情報。この情報にはローカル`rippled`サーバの状態が示されますが、コンセンサスネットワーク内の他のサーバとは異なる場合があります。示される値はキューメカニズムによって「大まかに」計算されるため、一部のフィールドは省略される場合があります。 | -| `validated` | 真偽値 | このデータが検証済みのレジャーバージョンのものである場合はTrueです。省略されているかFalseが設定されている場合、このデータは最終のものではありません。[新規: rippled 0.26.0][] | +| `queue_data` | オブジェクト | (`queue`が`true`と指定され、現在開いているレジャーを問い合わせている場合を除いて省略) このアカウントによって送信された[キューに入れられたトランザクション](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)についての情報。この情報にはローカル`rippled`サーバの状態が示されますが、コンセンサスネットワーク内の他のサーバとは異なる場合があります。示される値はキューメカニズムによって「大まかに」計算されるため、一部のフィールドは省略される場合があります。 | +| `validated` | 真偽値 | このデータが検証済みのレジャーバージョンのものである場合はTrueです。省略されているかFalseが設定されている場合、このデータは最終のものではありません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.26.0" %}新規: rippled 0.26.0{% /badge %} | `account_flags`フィールドは以下のネストしたフィールドを含みます: | `Field` | 型 | 説明 | |:-----------------------|:--------|:------------------------------------------| -| `defaultRipple` | 真偽値 | `true`の場合、アカウントはデフォルトでトラストラインの[rippling](rippling.html)を許可します。 | -| `depositAuth` | 真偽値 | `true`の場合、このアカウントは[Deposit Authorization](depositauth.html)を使用しており、未知の第三者からの入金を受け付けていません。 | -| `disableMasterKey` | 真偽値 | `true`の場合、アカウントの[マスターキーペア](cryptographic-keys.html)が無効になっています。 | -| `disallowIncomingCheck` | 真偽値 | `true`の場合、このアカウントは第三者からの[Check](checks.html)の送信を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | -| `disallowIncomingNFTokenOffer` | 真偽値 | `true`の場合、このアカウントは第三者からの[NFT売買オファー](non-fungible-token-transfers.html)の作成を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | -| `disallowIncomingPayChan` | 真偽値 | `true`の場合、このアカウントは第三者からの[ペイメントチャンネル](payment-channels.html)の作成を許可していません。 _([DisallowIncoming amendment][]が必要です)_ | -| `disallowIncomingTrustline` | 真偽値 | `true`の場合、このアカウントは第三者が[トラストライン](trust-lines-and-issuing.html)を作ることを許可していません。 _([DisallowIncoming amendment][]が必要です)_ | +| `defaultRipple` | 真偽値 | `true`の場合、アカウントはデフォルトでトラストラインの[rippling](../../../../concepts/tokens/fungible-tokens/rippling.md)を許可します。 | +| `depositAuth` | 真偽値 | `true`の場合、このアカウントは[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を使用しており、未知の第三者からの入金を受け付けていません。 | +| `disableMasterKey` | 真偽値 | `true`の場合、アカウントの[マスターキーペア](../../../../concepts/accounts/cryptographic-keys.md)が無効になっています。 | +| `disallowIncomingCheck` | 真偽値 | `true`の場合、このアカウントは第三者からの[Check](../../../../concepts/payment-types/checks.md)の送信を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | +| `disallowIncomingNFTokenOffer` | 真偽値 | `true`の場合、このアカウントは第三者からの[NFT売買オファー](../../../../concepts/tokens/nfts/trading.md)の作成を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | +| `disallowIncomingPayChan` | 真偽値 | `true`の場合、このアカウントは第三者からの[ペイメントチャンネル](../../../../concepts/payment-types/payment-channels.md)の作成を許可していません。 _([DisallowIncoming amendment][]が必要です)_ | +| `disallowIncomingTrustline` | 真偽値 | `true`の場合、このアカウントは第三者が[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)を作ることを許可していません。 _([DisallowIncoming amendment][]が必要です)_ | | `disallowIncomingXRP` | 真偽値 | `true`の場合、このアカウントは他者からXRPを受け取りたくありません。(これは参考情報であり、プロトコルレベルでは強制されません) | | `globalFreeze` | 真偽値 | `true`の場合、このアカウントによって発行されたすべてのトークンは現在凍結されています。 | -| `noFreeze` | 真偽値 | `true`の場合、このアカウントは個々のトラストラインを凍結したり、グローバル凍結を行う機能を永久に放棄しています。詳細は[No Freeze](freezes.html#no-freeze)をご覧ください。 | -| `passwordSpent` | 真偽値 | `false`の場合、このアカウントはトランザクションコスト0の特別な[キーリセットトランザクション](transaction-cost.html#key-resetトランザクション)を送信できます。プロトコルはこのフラグを自動的にオン/オフします。 | -| `requireAuthorization` | 真偽値 | `true`の場合、このアカウントは[認可トラストライン](authorized-trust-lines.html)を使って、発行するトークンを保持できる人を制限しています。 | -| `requireDestinationTag` | 真偽値 | `true`の場合、このアカウントは受け取るすべての支払いに[宛先タグ](require-destination-tags.html)をリクエストしています。 | +| `noFreeze` | 真偽値 | `true`の場合、このアカウントは個々のトラストラインを凍結したり、グローバル凍結を行う機能を永久に放棄しています。詳細は[No Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze)をご覧ください。 | +| `passwordSpent` | 真偽値 | `false`の場合、このアカウントはトランザクションコスト0の特別な[キーリセットトランザクション](../../../../concepts/transactions/transaction-cost.md#key-resetトランザクション)を送信できます。プロトコルはこのフラグを自動的にオン/オフします。 | +| `requireAuthorization` | 真偽値 | `true`の場合、このアカウントは[認可トラストライン](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使って、発行するトークンを保持できる人を制限しています。 | +| `requireDestinationTag` | 真偽値 | `true`の場合、このアカウントは受け取るすべての支払いに[宛先タグ](../../../../tutorials/manage-account-settings/require-destination-tags.md)をリクエストしています。 | `queue_data`パラメーターが存在する場合、以下のフィールドが含まれます。 | `Field` | 型 | 説明 | |:------------------------|:--------|:-----------------------------------------| | `txn_count` | 整数 | このアドレスからキューに入れられたトランザクションの数。 | -| `auth_change_queued` | 真偽値 | (省略される場合があります)キュー内のトランザクションがこのアドレスの[トランザクションの承認方法](transactions.html#トランザクションの承認)を変更するかどうかを示します。`true`の場合、トランザクションが実行されているかキューから除外されるまで、このアドレスはトランザクションをこれ以上キューに入れることができません。 | +| `auth_change_queued` | 真偽値 | (省略される場合があります)キュー内のトランザクションがこのアドレスの[トランザクションの承認方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。`true`の場合、トランザクションが実行されているかキューから除外されるまで、このアドレスはトランザクションをこれ以上キューに入れることができません。 | | `lowest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も低い[シーケンス番号][]。 | | `highest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も高い[シーケンス番号][]。 | | `max_spend_drops_total` | 文字列 | (省略される場合があります)キュー内のすべてのトランザクションが利用可能なXRPを最大限消費する場合に、このアドレスから差し引くことができる[XRPのdrop数][]を示す整数の金額。 | @@ -243,8 +243,8 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated | `Field` | 型 | 説明 | |:------------------|:--------|:-----------------------------------------------| -| `auth_change` | 真偽値 | このトランザクションがこのアドレスの[トランザクション承認の方法](transactions.html#トランザクションの承認)を変更するかどうかを示します。 | -| `fee` | 文字列 | このトランザクションの[トランザクションコスト](transaction-cost.html)([XRPのdrop数][])。 | +| `auth_change` | 真偽値 | このトランザクションがこのアドレスの[トランザクション承認の方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。 | +| `fee` | 文字列 | このトランザクションの[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)([XRPのdrop数][])。 | | `fee_level` | 文字列 | このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | | `max_spend_drops` | 文字列 | このトランザクションで送信または消却できる[XRPのdrop数][]の最高額。 | | `seq` | 整数 | このトランザクションの[シーケンス番号][]。 | @@ -256,6 +256,6 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated * `actNotFound` - リクエストの`account`フィールドに指定したアドレスが、レジャー内のアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -[手数料レベル]: transaction-cost.html#手数料レベル -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +[手数料レベル]: ../../../../concepts/transactions/transaction-cost.md#手数料レベル + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md index d2afeaf94b..9a3c2066d9 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md @@ -14,10 +14,9 @@ labels: リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -25,9 +24,9 @@ labels: "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_lines", @@ -38,17 +37,18 @@ labels: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: account_lines [] [|] rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#account_lines) +[試してみる >](/resources/dev-tools/websocket-api-tool#account_lines) リクエストには以下のパラメーターを指定できます。 @@ -67,10 +67,9 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -113,9 +112,9 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -158,8 +157,9 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 } } ``` +{% /tab %} -*コマンドライン* +{% tab label="コマンドライン" %} ```json { "result" : { @@ -404,8 +404,9 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合には、アカウントのアドレスとトラストラインオブジェクトの配列が含まれています。具体的には、結果オブジェクトには以下のフィールドが含まれます。 @@ -429,12 +430,12 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 | `limit_peer` | 文字列 | 相手側アカウントがパースペクティブアカウントからの借用を希望する特定の通貨の上限額。 | | `quality_in` | 符号なし整数 | このアカウントが、このトラストラインの入金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | | `quality_out` | 符号なし整数 | このアカウントが、このトラストラインの出金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | -| `no_ripple` | 真偽値 | (省略される場合があります)`true`の場合、このアカウントはこのトラストラインの[No Rippleフラグ](rippling.html)を有効にしています。もし`false`であれば、このアカウントは[No Rippleフラグ](ripplestate.html#所有者の準備金への資金供給)を無効にしていますが、これは[デフォルト値](ripplestate.html#所有者の準備金への資金供給)ではありません。。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグは無効で、Default Rippleが有効となります。[更新: rippled 1.7.0][] | -| `no_ripple_peer` | 真偽値 | (省略される場合があります)`true`の場合、ピアアカウントはこのトラストラインで[No Rippleフラグ](rippling.html)を有効にしています。もし`false`なら、このアカウントはNo Rippleフラグを無効にしていますが、このアカウントはDefault Rippleフラグも無効にしているため、[デフォルト値](ripplestate.html#所有者の準備金への資金供給)とはみなされません。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグが無効で、Default Rippleが有効です。[更新: rippled 1.7.0][] | -| `authorized` | 真偽値 | (省略される場合があります)このアカウントが[このトラストラインを承認した](authorized-trust-lines.html)場合は、`true`。省略されている場合は、`false`と同じです。 | -| `peer_authorized` | 真偽値 | (省略される場合があります)ピアアカウントが[このトラストラインを承認した](authorized-trust-lines.html)場合は`true`。省略されている場合は、`false`と同じです。 | -| `freeze` | 真偽値 | (省略される場合があります)このアカウントがこのトラストラインを[凍結](freezes.html)した場合は`true`。省略されている場合は、`false`と同じです。 | -| `freeze_peer` | 真偽値 | (省略される場合があります)ピアアカウントがこのトラストラインを[凍結](freezes.html)した場合は、`true`。省略されている場合は、`false`と同じです。 | +| `no_ripple` | 真偽値 | (省略される場合があります)`true`の場合、このアカウントはこのトラストラインの[No Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にしています。もし`false`であれば、このアカウントは[No Rippleフラグ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)を無効にしていますが、これは[デフォルト値](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)ではありません。。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグは無効で、Default Rippleが有効となります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | +| `no_ripple_peer` | 真偽値 | (省略される場合があります)`true`の場合、ピアアカウントはこのトラストラインで[No Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にしています。もし`false`なら、このアカウントはNo Rippleフラグを無効にしていますが、このアカウントはDefault Rippleフラグも無効にしているため、[デフォルト値](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)とはみなされません。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグが無効で、Default Rippleが有効です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | +| `authorized` | 真偽値 | (省略される場合があります)このアカウントが[このトラストラインを承認した](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)場合は、`true`。省略されている場合は、`false`と同じです。 | +| `peer_authorized` | 真偽値 | (省略される場合があります)ピアアカウントが[このトラストラインを承認した](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)場合は`true`。省略されている場合は、`false`と同じです。 | +| `freeze` | 真偽値 | (省略される場合があります)このアカウントがこのトラストラインを[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)した場合は`true`。省略されている場合は、`false`と同じです。 | +| `freeze_peer` | 真偽値 | (省略される場合があります)ピアアカウントがこのトラストラインを[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)した場合は、`true`。省略されている場合は、`false`と同じです。 | ## 考えられるエラー @@ -444,6 +445,4 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 * `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md index 6da98b435a..0d8021fc68 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md @@ -15,12 +15,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ ## リクエストのフォーマット リクエストのフォーマットの例 -{% include '_snippets/no-cli-syntax.ja.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "account_nfts", @@ -28,9 +27,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_nfts", @@ -40,10 +39,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ }] } ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#account_nfts) +[試してみる >](/resources/dev-tools/websocket-api-tool#account_nfts) リクエストには以下のパラメーターが含まれます。 @@ -59,10 +59,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -93,9 +92,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -125,8 +124,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -145,10 +145,10 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ | `Field` | 型 | 説明 | |:---------------|:------------------- |:-------------------------------------| -| `Flags` | 数値 | このNFTokenで有効なブール値フラグのビットマップ。指定できる値については、[NFTokenフラグ](nftoken.html#nftoken-フラグ)を参照してください。 | +| `Flags` | 数値 | このNFTokenで有効なブール値フラグのビットマップ。指定できる値については、[NFTokenフラグ](../../../protocol/data-types/nftoken.md#nftoken-フラグ)を参照してください。 | | `Issuer` | 文字列 - [アドレス][] | このNFTokenを発行したアカウント。 | | `NFTokenID` | 文字列 | このNFTokenの一意の識別子(16進数)。 | -| `NFTokenTaxon` | 数値 | このトークンの[taxon](nftoken.html#nftokentaxon分類群)の非乱数化した値。同じtaxonを持つ複数のトークンは、一つの限定されたシリーズのインスタンスを表すかもしれません。 | +| `NFTokenTaxon` | 数値 | このトークンの[taxon](../../../protocol/data-types/nftoken.md#nftokentaxon分類群)の非乱数化した値。同じtaxonを持つ複数のトークンは、一つの限定されたシリーズのインスタンスを表すかもしれません。 | | `URI` | String | このNFTokenに関連付けられた16進数のURI データ。 | | `nft_serial` | 文字列 | このNFTokenのトークンシーケンス番号。 | @@ -159,6 +159,4 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md index 0a54aaf249..68ed97c1dd 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md @@ -13,25 +13,24 @@ labels: アカウントの`account_objects`レスポンスに含まれる可能性のあるオブジェクトのタイプには以下のものがあります。 -- [Offerエントリ](offer.html): 現在処理中であり、資金化されていない、または有効期限切れで削除されていない注文情報。(詳細は、[オファーのライフサイクル](offers.html#オファーのライフサイクル)をご覧ください。) -- [RippleStateエントリ](ripplestate.html): このアカウント側がデフォルト状態にないトラストライン。 -- アカウントの[SignerList](signerlist.html): アカウントで[マルチシグ](multi-signing.html)が有効な場合。 -- [Escrowエントリ](escrow.html): 実行されていないかまたはキャンセルされていない保留中の支払い。 -- [PayChannelエントリ](paychannel.html): 現在開いているペイメントチャネル。 -- [Checkエントリ](check.html): 保留中のCheck。 -- [DepositPreauthエントリ](depositpreauth-object.html): 入金の事前承認。 -- [Ticketエントリ](tickets.html): Ticket情報。 -- [NFTokenOfferエントリ](nftokenoffer.html): NFTを購入・売却するためのオファー。 -- [NFTokenPageエントリ](nftokenpage.html): NFTの集合。 [新規: rippled 1.11.0][] +- [Offerエントリ](../../../protocol/ledger-data/ledger-entry-types/offer.md): 現在処理中であり、資金化されていない、または有効期限切れで削除されていない注文情報。(詳細は、[オファーのライフサイクル](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)をご覧ください。) +- [RippleStateエントリ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md): このアカウント側がデフォルト状態にないトラストライン。 +- アカウントの[SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md): アカウントで[マルチシグ](../../../../concepts/accounts/multi-signing.md)が有効な場合。 +- [Escrowエントリ](../../../../concepts/payment-types/escrow.md): 実行されていないかまたはキャンセルされていない保留中の支払い。 +- [PayChannelエントリ](../../../protocol/ledger-data/ledger-entry-types/paychannel.md): 現在開いているペイメントチャネル。 +- [Checkエントリ](../../../protocol/ledger-data/ledger-entry-types/check.md): 保留中のCheck。 +- [DepositPreauthエントリ](../../../protocol/ledger-data/ledger-entry-types/depositpreauth.md): 入金の事前承認。 +- [Ticketエントリ](../../../../concepts/accounts/tickets.md): Ticket情報。 +- [NFTokenOfferエントリ](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md): NFTを購入・売却するためのオファー。 +- [NFTokenPageエントリ](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md): NFTの集合。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -43,9 +42,9 @@ labels: "limit": 10 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_objects", @@ -60,23 +59,23 @@ labels: ] } ``` +{% /tab %} - -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: account_objects [] rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 | `Field` | 型 | 必須? | 説明 | |:-------------------------|:----------------------|:-----|:---------------| | `account` | 文字列 | はい | アカウントの一意のIDであり、最も一般的にはアカウントのアドレスが使用されます。 | -| `deletion_blockers_only` | Boolean | いいえ | `true`の場合、このアカウントが[削除](deleting-accounts.html)されるのをブロックするオブジェクトのみをレスポンスに含めます。デフォルトは`false`です。 [新規: rippled 1.4.0][] | +| `deletion_blockers_only` | Boolean | いいえ | `true`の場合、このアカウントが[削除](../../../../concepts/accounts/deleting-accounts.md)されるのをブロックするオブジェクトのみをレスポンスに含めます。デフォルトは`false`です。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | | `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | | `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]ををご覧ください) | | `limit` | 符号なし整数 | いいえ | 結果に含めることができるオブジェクトの最大数。非管理者接続では10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | @@ -89,10 +88,9 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 8, @@ -350,9 +348,9 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -609,9 +607,9 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result" : { @@ -1201,8 +1199,9 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -1224,8 +1223,4 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md index ab797c5c1b..98782282d8 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md @@ -8,16 +8,15 @@ labels: # account_offers [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AccountOffers.cpp "Source") -`account_offers`メソッドは、特定の[アカウント](accounts.html)から出された[オファー](offers.html)のうち、特定の[レジャーバージョン](ledgers.html)で未処理であったオファーのリストを取得します。 +`account_offers`メソッドは、特定の[アカウント](../../../../concepts/accounts/accounts.md)から出された[オファー](../../../../concepts/tokens/decentralized-exchange/offers.md)のうち、特定の[レジャーバージョン](../../../../concepts/ledgers/index.md)で未処理であったオファーのリストを取得します。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -25,9 +24,9 @@ labels: "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_offers", @@ -38,17 +37,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: account_offers account [ledger_index] rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#account_offers) +[試してみる >](/resources/dev-tools/websocket-api-tool#account_offers) リクエストには以下のパラメーターを指定できます。 @@ -66,10 +66,9 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 9, @@ -107,9 +106,9 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -157,9 +156,9 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result" : { @@ -183,8 +182,9 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -203,11 +203,11 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current | `Field` | 型 | 説明 | |:-------------|:---------------------|:-------------------------------------------| | `flags` | 符号なし整数 | このオファーエントリに対してビットフラグとして設定されているオプション。 | -| `seq` | 符号なし整数 | このエントリを作成したトランザクションのシーケンス番号。(トランザクションの[シーケンス番号](basic-data-types.html#アカウントシーケンス)はアカウントに関連付けられています。) | +| `seq` | 符号なし整数 | このエントリを作成したトランザクションのシーケンス番号。(トランザクションの[シーケンス番号](../../../protocol/data-types/basic-data-types.md#アカウントシーケンス)はアカウントに関連付けられています。) | | `taker_gets` | 文字列またはオブジェクト | オファーを受け入れるアカウントが受領する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]をご覧ください。) | | `taker_pays` | 文字列またはオブジェクト | オファーを受け入れるアカウントが提供する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]をご覧ください。) | -| `quality` | 文字列 | オファーの為替レート。元の`taker_pays`を元の`taker_gets`で割った比率です。オファーの実行時には、最も好ましい(最も低い)クオリティのオファーが最初に消費されます。同じクオリティのオファーは古いものから新しいものの順で実行されます。[新規: rippled 0.29.0][] | -| `expiration` | 符号なし整数 | (省略される場合があります)この時刻の経過後は、資金化されなかったオファーとみなされます([Rippleエポック以降の経過秒数][])。関連項目: [オファーの有効期限](offers.html#オファーの有効期限)。[新規: rippled 0.30.1][] | +| `quality` | 文字列 | オファーの為替レート。元の`taker_pays`を元の`taker_gets`で割った比率です。オファーの実行時には、最も好ましい(最も低い)クオリティのオファーが最初に消費されます。同じクオリティのオファーは古いものから新しいものの順で実行されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}新規: rippled 0.29.0{% /badge %} | +| `expiration` | 符号なし整数 | (省略される場合があります)この時刻の経過後は、資金化されなかったオファーとみなされます([Rippleエポック以降の経過秒数][])。関連項目: [オファーの有効期限](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーの有効期限)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | ## 考えられるエラー @@ -217,6 +217,4 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 * `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md index 2b35be5654..d5562d9a63 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md @@ -15,10 +15,9 @@ labels: リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -31,9 +30,9 @@ labels: "forward": false } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_tx", @@ -49,17 +48,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax account_tx account ledger_index_min ledger_index_max [offset] [limit] [binary] [count] [forward] rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#account_tx) +[試してみる >](/resources/dev-tools/websocket-api-tool#account_tx) リクエストには以下のパラメーターが含まれます。 @@ -77,7 +77,7 @@ rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 次の各フィールドは省略可能とされていますが、リクエスト内で**1つ以上は使用する必要があります**: `ledger_index`、`ledger_hash`、`ledger_index_min`、または`ledger_index_max`。 -次のフィールドは廃止されました: `offset`、`count`、`descending`、`ledger_max`、`ledger_min`。 [削除: rippled 1.7.0][] +次のフィールドは廃止されました: `offset`、`count`、`descending`、`ledger_max`、`ledger_min`。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}削除: rippled 1.7.0{% /badge %} ### 照会されたデータの繰り返し @@ -89,10 +89,9 @@ rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -326,9 +325,9 @@ rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -561,8 +560,9 @@ rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -594,8 +594,6 @@ 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`を指定したか、[ネットワークと同期](troubleshoot-the-rippled-server.html)されていないためにサーバーに検証済みレジャーの範囲が存在しません。 +* `lgrIdxsInvalid` - リクエストで`ledger_index_min`の前にある`ledger_index_max`を指定したか、[ネットワークと同期](../../../../infrastructure/troubleshooting/index.md)されていないためにサーバーに検証済みレジャーの範囲が存在しません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md index 955921003e..6845367f7f 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md @@ -9,15 +9,14 @@ labels: # gateway_balances [[ソース]](https://github.com/XRPLF/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/GatewayBalances.cpp "Source") -`gateway_balances`コマンドは、特定のアカウントから発行された残高の合計を計算します。オプションで、[運用アドレス](account-types.html)が保有する額を除外できます。[新規: rippled 0.28.2][] +`gateway_balances`コマンドは、特定のアカウントから発行された残高の合計を計算します。オプションで、[運用アドレス](../../../../concepts/accounts/account-types.md)が保有する額を除外できます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.2" %}新規: rippled 0.28.2{% /badge %} ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_gateway_balances_1", @@ -28,9 +27,9 @@ labels: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "gateway_balances", @@ -47,16 +46,17 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 | `Field` | 型 | 説明 | |:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | チェックする[アドレス][]。[発行アドレス](account-types.html)である必要があります。 | +| `account` | 文字列 | チェックする[アドレス][]。[発行アドレス](../../../../concepts/accounts/account-types.md)である必要があります。 | | `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | -| `hotwallet` | 文字列または配列 | _(省略可)_ 発行済み残高から除外する[運用アドレス](account-types.html)、またはそのようなアドレスの配列。 | +| `hotwallet` | 文字列または配列 | _(省略可)_ 発行済み残高から除外する[運用アドレス](../../../../concepts/accounts/account-types.md)、またはそのようなアドレスの配列。 | | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーバージョンの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | @@ -64,10 +64,9 @@ labels: 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -133,9 +132,9 @@ labels: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -200,8 +199,9 @@ labels: } } ``` +{% /tab %} - +{% /tabs %} **注記:** このメソッドのコマンドライン構文はありません。コマンドラインからアクセスするには[jsonメソッド][]を使用してください。 @@ -212,7 +212,7 @@ labels: | `account` | 文字列 - [アドレス][] | 残高を発行したアカウントのアドレス。 | | `obligations` | オブジェクト | (空の場合は省略)除外されていないアドレスに発行された額の合計。発行された価値の合計に対する通貨のマップとして示されます。 | | `balances` | オブジェク | _(空の場合は省略)_ リクエストから`hotwallet`アドレスに発行された額。キーはアドレスであり、値はアドレスが保有する通貨額の配列です。 | -| `assets` | オブジェクト | _(空の場合は省略)_ 他から発行された保有額の合計。推奨される構成では、[発行アドレス](account-types.html)の保有額はありません。 | +| `assets` | オブジェクト | _(空の場合は省略)_ 他から発行された保有額の合計。推奨される構成では、[発行アドレス](../../../../concepts/accounts/account-types.md)の保有額はありません。 | | `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンの識別用ハッシュ。 | | `ledger_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | | | `ledger_current_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ この情報の取得時に使用した、現在処理中のレジャーバージョンの[レジャーインデックス][]。 | @@ -225,6 +225,4 @@ labels: * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/index.md index f41b66f329..47dc2af645 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/index.md @@ -1,8 +1,12 @@ --- html: account-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Accountメソッド -XRP Ledgerのアカウントとは、XRPの保有者とトランザクションの送信者を意味します。以下のメソッドを使用して、アカウント情報を処理することができます。 \ No newline at end of file +XRP Ledgerのアカウントとは、XRPの保有者とトランザクションの送信者を意味します。以下のメソッドを使用して、アカウント情報を処理することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md index 8fd2005ecc..41dd2c3844 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md @@ -8,15 +8,14 @@ labels: # noripple_check [[ソース]](https://github.com/XRPLF/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/NoRippleCheck.cpp "Source") -`noripple_check`コマンドを使用すると、[アカウントのDefaultRippleフィールドとそのトラストラインのNoRippleフラグ](rippling.html)の状態を、推奨される設定と比較して迅速にチェックできます。 +`noripple_check`コマンドを使用すると、[アカウントのDefaultRippleフィールドとそのトラストラインのNoRippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)の状態を、推奨される設定と比較して迅速にチェックできます。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -28,9 +27,9 @@ labels: "transactions": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "noripple_check", @@ -45,8 +44,9 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} **注記:** このメソッドのコマンドライン構文はありません。コマンドラインからアクセスするには[jsonメソッド][]を使用してください。 @@ -56,7 +56,7 @@ labels: |:---------------|:---------------------------|:-------------------------------| | `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントのアドレスです。 | | `role` | 文字列 | アドレスが`gateway`と`user`のいずれを指しているか。推奨事項はアカウントの役割に応じて異なります。イシュアーのDefaultRippleを有効にし、すべてのトラストラインでNoRippleを無効にする必要があります。ユーザーのDefaultRippleを無効にし、すべてのトラストラインでNoRippleを有効にする必要があります。 | -| `transactions` | ブール値 | _(省略可)_ `true`の場合、提案される[トランザクション](transaction-formats.html)(JSONオブジェクト)の配列を指定します。問題を修正するために、これらのトランザクションに署名して送信することができます。デフォルトではfalseです。 | +| `transactions` | ブール値 | _(省略可)_ `true`の場合、提案される[トランザクション](../../../protocol/transactions/index.md)(JSONオブジェクト)の配列を指定します。問題を修正するために、これらのトランザクションに署名して送信することができます。デフォルトではfalseです。 | | `limit` | 符号なし整数 | _(省略可)_ 結果に含めることができるトラストライン問題の最大数。デフォルトでは300です。 | | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]を参照してください。) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | @@ -65,10 +65,9 @@ labels: 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -118,9 +117,9 @@ labels: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -169,8 +168,9 @@ labels: } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -178,7 +178,7 @@ labels: |:-----------------------|:-------|:-------------------------------------------| | `ledger_current_index` | 数値 | これらの結果の計算に使用するレジャーのシーケンス番号。 | | `problems` | 配列 | 人間が読み取ることができる形式の問題の記述が含まれている文字列の配列。アカウントのDefaultRipple設定が推奨に従っていない場合は、最大1つのエントリーが含まれます。加えて、NoRipple設定が推奨に従っていないトラストラインのエントリー(最大で`limit`に指定されている数)も含まれます。 | -| `transactions` | 配列 | (省略される場合があります)リクエストで`transactions`が`true`に指定されている場合、これはJSONオブジェクトの配列です。各JSONオブジェクトは、JSON形式の[トランザクション](transaction-formats.html)で、記述されている問題の1つを修正します。この配列の長さは`problems`配列と同じであり、各エントリーは、その配列の同じインデックスで記述されている問題の修正を目的としています。 | +| `transactions` | 配列 | (省略される場合があります)リクエストで`transactions`が`true`に指定されている場合、これはJSONオブジェクトの配列です。各JSONオブジェクトは、JSON形式の[トランザクション](../../../protocol/transactions/index.md)で、記述されている問題の1つを修正します。この配列の長さは`problems`配列と同じであり、各エントリーは、その配列の同じインデックスで記述されている問題の修正を目的としています。 | ## 考えられるエラー @@ -187,6 +187,4 @@ labels: * `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md index 1b1edc2e3f..b66521a2c0 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md @@ -8,28 +8,24 @@ labels: # ledger [[ソース]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/Ledger.cpp "ソース") -`ledger`コマンドは公開されている[レジャー](ledgers.html)の情報を取得します。[新規: Clio v1.0.0](https://github.com/XRPLF/clio/releases/tag/1.0.0 "BADGE_BLUE") +`ledger`コマンドは公開されている[レジャー](../../../../concepts/ledgers/index.md)の情報を取得します。{% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}新規: Clio v1.0.0{% /badge %} Clioサーバはデフォルトで検証済みのレジャーデータを返すことに注意してください。 ## リクエストのフォーマット リクエストのフォーマットの例: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/ledger-clio/wsrpc-request.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/ledger-clio/wsrpc-request.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/ledger-clio/jsonrpc-request.json" language="json" /%} +{% /tab %} -*JSON-RPC* - -```json -{% include '_api-examples/ledger-clio/jsonrpc-request.json' %} -``` - - +{% /tabs %} @@ -47,35 +43,31 @@ Clioサーバはデフォルトで検証済みのレジャーデータを返す `ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 -> **注記:** Clioの`ledger`コマンドは、[rippledのledgerコマンド](ledger.html)でサポートされている以下のフィールドをサポートしていません。 -> -> * `accounts` -> * `full` -> * `queue` -> -> 上記のフィールドのいずれかが`true`に設定されている場合、Clioは**常に**リクエストを`rippled`に転送します。 +{% admonition type="info" name="注記" %} +Clioの`ledger`コマンドは、[rippledのledgerコマンド](../ledger-methods/ledger.md)でサポートされている以下のフィールドをサポートしていません。 + +* `accounts` +* `full` +* `queue` + +上記のフィールドのいずれかが`true`に設定されている場合、Clioは**常に**リクエストを`rippled`に転送します。 +{% /admonition %} ## レスポンスのフォーマット 処理が成功したレスポンスの例: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/ledger-clio/wsrpc-response.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/ledger-clio/wsrpc-response.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/ledger-clio/jsonrpc-response.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* - -```json -200 OK - -{% include '_api-examples/ledger-clio/jsonrpc-response.json' %} -``` - - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果にレジャーに関する情報を表す次のフィールドが含まれています。 @@ -83,8 +75,8 @@ Clioサーバはデフォルトで検証済みのレジャーデータを返す |:-------------------------------|:-----------|:----------------------------------| | `ledger` | オブジェクト | このレジャーの完全なヘッダーデータ。 | | `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウントの状態情報のハッシュ値。 | -| `ledger.accountState` | 配列 | (リクエストで指定がない場合省略) このレジャーのすべての[アカウント状態情報](ledger-data-formats.html)(16進数) | -| `ledger.close_flags` | 数値 | このレジャーの[クローズに関するフラグ](ledger-header.html#close-flags)のビットマップ。 | +| `ledger.accountState` | 配列 | (リクエストで指定がない場合省略) このレジャーのすべての[アカウント状態情報](../../../protocol/ledger-data/index.md)(16進数) | +| `ledger.close_flags` | 数値 | このレジャーの[クローズに関するフラグ](../../../protocol/ledger-data/ledger-header.md#close-flags)のビットマップ。 | | `ledger.close_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][])。 | | `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻。常にUTCタイムゾーンを使用します。 | | `ledger.close_time_resolution` | 数値 | レジャー閉鎖時刻が丸められる秒数の範囲。 | @@ -101,11 +93,11 @@ Clioサーバはデフォルトで検証済みのレジャーデータを返す | `validated` | 真偽値 | _(省略される場合があります)_ `true`の場合、このレジャーは最終バージョンです。省略または `false` の場合、このレジャーのデータは最終版ではありません。 | | `diff` | オブジェクト | _(リクエストで`diff`パラメータの指定がない場合省略)_ レジャーのトランザクションの一部として追加、変更、または削除されたハッシュの配列を含むオブジェクト。 | -リクエストに`"owner_funds": true`が指定されておりトランザクションが展開されている場合、レスポンスには、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](offers.html#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](subscribe.html#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 +リクエストに`"owner_funds": true`が指定されておりトランザクションが展開されている場合、レスポンスには、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](../subscription-methods/subscribe.md#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 | `Field` | 値 | 説明 | |:--------------|:------|:----------------------------------------------------| -| `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[凍結](freezes.html)されているかどうかはチェックされません。 | +| `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されているかどうかはチェックされません。 | リクエストで`”diff": true`を指定した場合、レスポンスにはオブジェクト`diff`が含まれます。このオブジェクトのフィールドは以下の通りです。 @@ -117,9 +109,7 @@ Clioサーバはデフォルトで検証済みのレジャーデータを返す ### `diff`に`true`を設定した場合のレスポンス -````json -{% include '_api-examples/ledger-clio/jsonrpc-diff-response.json' %} -```` +`{% code-snippet file="/_api-examples/ledger-clio/jsonrpc-diff-response.json" language="json" /%}` ## 考えられるエラー @@ -127,7 +117,4 @@ Clioサーバはデフォルトで検証済みのレジャーデータを返す * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md index d3d2431261..31998755c1 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md @@ -9,17 +9,16 @@ labels: [[ソース]](https://github.com/XRPLF/clio/blob/4a5cb962b6971872d150777881801ce27ae9ed1a/src/rpc/handlers/NFTHistory.cpp "ソース") -`nft_history`コマンドはクエリ対象の[NFT](non-fungible-tokens.html)の過去のトランザクションメタデータをClioサーバに問い合わせます。[新規: Clio v1.1.0](https://github.com/XRPLF/clio/releases/tag/1.1.0 "BADGE_BLUE") +`nft_history`コマンドはクエリ対象の[NFT](../../../../concepts/tokens/nfts/index.md)の過去のトランザクションメタデータをClioサーバに問い合わせます。{% badge href="https://github.com/XRPLF/clio/releases/tag/1.1.0" %}新規: Clio v1.1.0{% /badge %} **注記** `nft_history`はNFTに関連する成功したトランザクションのみを返します。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -27,9 +26,9 @@ labels: "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_history", @@ -40,8 +39,9 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} @@ -66,10 +66,9 @@ labels: 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -152,9 +151,9 @@ labels: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -235,15 +234,15 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} `binary`パラメータを_true_に設定すると、16進数文字列を使用したコンパクトなレスポンスを受け取ります。人間が読めるものではありませんが、より簡潔です。 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -271,9 +270,9 @@ labels: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -300,7 +299,9 @@ labels: } ``` - +{% /tab %} + +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -326,7 +327,7 @@ labels: | `tx_blob` | 文字列 | (Binaryのみ) トランザクションを表す一意のハッシュ化された文字列。 | | `validated` | 真偽値 | トランザクションが検証済みレジャーに含まれているかどうか。まだ有効なレジャーに含まれていないトランザクションは、変更される可能性があります。 | -`tx`オブジェクトで返されるフィールドの定義については、[トランザクションメタデータ](transaction-metadata.html)をご覧ください。 +`tx`オブジェクトで返されるフィールドの定義については、[トランザクションメタデータ](../../../protocol/transactions/metadata.md)をご覧ください。 ## 考えられるエラー @@ -334,8 +335,6 @@ labels: * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `actMalformed` - リクエストの`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 * `lgrIdxMalformed` - `ledger_index_min`または`ledger_index_max`で指定されたレジャーが存在しないか、存在してもサーバに保存されていません。 -* `lgrIdxsInvalid` - リクエストが`ledger_index_min`よりも前の`ledger_index_max`を指定しているか、サーバが[ネットワークと同期していない](server-doesnt-sync.html)ために有効なレジャー範囲を持っていません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +* `lgrIdxsInvalid` - リクエストが`ledger_index_min`よりも前の`ledger_index_max`を指定しているか、サーバが[ネットワークと同期していない](../../../../infrastructure/troubleshooting/server-doesnt-sync.md)ために有効なレジャー範囲を持っていません。 +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md index 629b5b12b8..c94192a33d 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md @@ -8,15 +8,14 @@ labels: # nft_info [[ソース]](https://github.com/XRPLF/clio/blob/4a5cb962b6971872d150777881801ce27ae9ed1a/src/rpc/handlers/NFTInfo.cpp "ソース") -`nft_info`コマンドはクエリ対象の[NFT](non-fungible-tokens.html)に関する情報をClioサーバに問い合わせます。[新規: Clio v1.1.0](https://github.com/XRPLF/clio/releases/tag/1.1.0 "BADGE_BLUE") +`nft_info`コマンドはクエリ対象の[NFT](../../../../concepts/tokens/nfts/index.md)に関する情報をClioサーバに問い合わせます。{% badge href="https://github.com/XRPLF/clio/releases/tag/1.1.0" %}新規: Clio v1.1.0{% /badge %} ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -24,9 +23,9 @@ labels: "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_info", @@ -37,8 +36,9 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} @@ -57,10 +57,9 @@ labels: 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -90,9 +89,9 @@ labels: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -121,8 +120,9 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][] に従い、成功すると以下のフィールドをいくつか並べた`nft_info`レスポンスオブジェクトが返されます。 @@ -133,7 +133,7 @@ labels: | `owner` | 文字列 | このレジャーインデックスにおけるこのNFTの所有者のアカウントID。 | | `is_burned` | 真偽値 | NFTがこのレジャーでバーンされていれば`true`を、そうでなければ`false`を返します。 | | `flags ` | 整数 | このNFTのフラグ | -| `transfer_fee` | 整数 | このNFTの送金手数料。送金手数料の詳細については、[NFTokenMintのフィールド](nftokenmint.html#nftokenmint-フィールド)をご覧ください。 | +| `transfer_fee` | 整数 | このNFTの送金手数料。送金手数料の詳細については、[NFTokenMintのフィールド](../../../protocol/transactions/types/nftokenmint.md#nftokenmint-フィールド)をご覧ください。 | | `issuer` | 文字列 | このNFTの発行者を示すアカウントID。| | `nft_taxon` | 整数 | このNFTのTaxon。 | | `nft_sequence` | 整数 | このNFTのシーケンス番号. | @@ -144,7 +144,4 @@ labels: * いずれかの[汎用エラータイプ][]。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md index aa74b22978..53eee32740 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md @@ -8,25 +8,24 @@ labels: # server_info [[ソース]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/ServerInfo.cpp "ソース") -`server_info`コマンドは[Clioサーバ](the-clio-server.html)にクエリされるClioサーバに関する様々な情報を人間が読める形で問い合わせます。`rippled`サーバについては、代わりに[`server_info` (`rippled`)](server_info.html)をご覧ください。[新規: Clio v1.0.0](https://github.com/XRPLF/clio/releases/tag/1.0.0 "BADGE_BLUE") +`server_info`コマンドは[Clioサーバ](../../../../concepts/networks-and-servers/the-clio-server.md)にクエリされるClioサーバに関する様々な情報を人間が読める形で問い合わせます。`rippled`サーバについては、代わりに[`server_info` (`rippled`)](../server-info-methods/server_info.md)をご覧ください。{% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}新規: Clio v1.0.0{% /badge %} ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "server_info" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "server_info", @@ -35,8 +34,9 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} @@ -48,10 +48,9 @@ labels: クライアントが`localhost`経由で接続した場合の成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -261,9 +260,9 @@ labels: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -474,15 +473,15 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} クライアントが`localhost`経由で接続しなかった場合の成功レスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -518,9 +517,9 @@ labels: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -557,8 +556,9 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従い、結果が正常な場合`info`オブジェクトが唯一のフィールドとして含まれます。 @@ -583,15 +583,15 @@ labels: | `subscriptions.account` | | | | `subscriptions.accounts_proposed` | | | | `subscriptions.books` | | | -| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。[新規: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | -| `uptime` | 数値 | サーバが連続して稼働している秒数。[新規: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ Clioサーバが[Amendmentブロック](amendments.html#amendment-blocked-clio-servers)がされているかどうか。[新規: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | -| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](transaction-cost.html#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | +| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `uptime` | 数値 | サーバが連続して稼働している秒数。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ Clioサーバが[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-clio-servers)がされているかどうか。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | | `clio_version` | 文字列 | 実行中のClioサーバのバージョン番号。 | -| `libxrpl_version` | 文字列 | このClioサーバがビルドされた`libxrpl`ライブラリのバージョン番号。[新規: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | +| `libxrpl_version` | 文字列 | このClioサーバがビルドされた`libxrpl`ライブラリのバージョン番号。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | | `validation_quorum` | 数値 | _(省略される場合があります)_ レジャーバージョンを検証するために必要な、信頼できる検証の最小数。状況によっては、サーバがより多くの検証をリクエストすることもあります。この値は`rippled`から取得します。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。 | | `rippled_version` | 文字列 | _(省略される場合があります)_ Clioサーバが接続している`rippled`サーバのバージョン番号。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。 | -| `network_id` | 文字列 | _(省略される場合があります)_ このClioサーバが接続している`rippled`が動作しているネットワークのネットワークID。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。[新規: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | +| `network_id` | 文字列 | _(省略される場合があります)_ このClioサーバが接続している`rippled`が動作しているネットワークのネットワークID。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | | `validated_ledger` | オブジェクト | _(省略される場合があります)_ 完全に検証された最新のレジャーに関する情報。検証済みの最新のレジャーがない場合、レスポンスではこのフィールドは省略され、代わりに`closed_ledger`が含まれます。 | | `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドはレスポンスにて省略され、代わりに`closed_ledger`が含まれます。 | | `validated_ledger.age` | 数値 | レジャーの閉鎖以降の秒数。 | @@ -625,8 +625,4 @@ labels: * いずれかの[汎用エラータイプ][]。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-server/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-server/index.md index deca916dda..f9be649f83 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-server/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/clio-server/index.md @@ -1,8 +1,12 @@ --- html: clio-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Clio Serverメソッド -以下のメソッドを使用して、ClioサーバーのAPIから情報を取得することができます。 \ No newline at end of file +以下のメソッドを使用して、ClioサーバーのAPIから情報を取得することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/index.md index 0f4b5588fd..632c10263c 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/index.md @@ -9,95 +9,95 @@ top_nav_name: APIのメソッド --- # rippledのパブリックメソッド -以下のパブリックAPIメソッドを使用して、[XRP Ledgerサーバー](xrpl-servers.html)と直接通信します。パブリックメソッドは必ずしも一般大衆向けに設計されたのではありませんが、サーバーに接続されたあらゆるクライアントが使用します。パブリックメソッドは、サーバーを運用している組織のメンバーまたは顧客向けのものと考えてください。 +以下のパブリックAPIメソッドを使用して、[XRP Ledgerサーバー](../../../concepts/networks-and-servers/index.md)と直接通信します。パブリックメソッドは必ずしも一般大衆向けに設計されたのではありませんが、サーバーに接続されたあらゆるクライアントが使用します。パブリックメソッドは、サーバーを運用している組織のメンバーまたは顧客向けのものと考えてください。 -## [アカウントメソッド](account-methods.html) +## [アカウントメソッド](account-methods/index.md) XRP Ledgerのアカウントとは、XRPの保有者と取引の送信者を意味ます。以下のメソッドを使用して、アカウント情報を処理します。 -* **[`account_channels`](account_channels.html)** - アカウントがチャンネルのソースであるペイメントチャネルのリストを取得します。 -* **[`account_currencies`](account_currencies.html)** - アカウントが送受信できる通貨のリストを取得します。 -* **[`account_info`](account_info.html)** - アカウントについての基本データを取得します。 -* **[`account_lines`](account_lines.html)** - アカウントのトラストラインについての情報を取得します。 -* **[`account_objects`](account_objects.html)** - アカウントが保有しているすべてのレジャーオブジェクトを取得します。 -* **[`account_offers`](account_offers.html)** - アカウントの通貨取引オファーについての情報を取得します。 -* **[`account_tx`](account_tx.html)** - アカウントのトランザクションについての情報を取得します。 -* **[`gateway_balances`](gateway_balances.html)** - アカウントによって発行された総額を計算します。 -* **[`noripple_check`](noripple_check.html)** - アカウントのDefaultRippleおよびNoRipple設定への推奨される変更を取得します。 +* **[`account_channels`](account-methods/account_channels.md)** - アカウントがチャンネルのソースであるペイメントチャネルのリストを取得します。 +* **[`account_currencies`](account-methods/account_currencies.md)** - アカウントが送受信できる通貨のリストを取得します。 +* **[`account_info`](account-methods/account_info.md)** - アカウントについての基本データを取得します。 +* **[`account_lines`](account-methods/account_lines.md)** - アカウントのトラストラインについての情報を取得します。 +* **[`account_objects`](account-methods/account_objects.md)** - アカウントが保有しているすべてのレジャーオブジェクトを取得します。 +* **[`account_offers`](account-methods/account_offers.md)** - アカウントの通貨取引オファーについての情報を取得します。 +* **[`account_tx`](account-methods/account_tx.md)** - アカウントのトランザクションについての情報を取得します。 +* **[`gateway_balances`](account-methods/gateway_balances.md)** - アカウントによって発行された総額を計算します。 +* **[`noripple_check`](account-methods/noripple_check.md)** - アカウントのDefaultRippleおよびNoRipple設定への推奨される変更を取得します。 -## [レジャーメソッド](ledger-methods.html) +## [レジャーメソッド](ledger-methods/index.md) レジャーバージョンには、ヘッダー、トランザクションツリー、状態ツリーが含まれ、さらにその中にアカウント設定、トラストライン、残高、トランザクション、その他のデータが含まれます。以下のメソッドを使用して、レジャー情報を取得します。 -* **[`ledger`](ledger.html)** - レジャーバージョンについての情報を取得します。 -* **[`ledger_closed`](ledger_closed.html)** - 最新の閉鎖済みレジャーバージョンを取得します。 -* **[`ledger_current`](ledger_current.html)** - 現在処理中のレジャーバージョンを取得します。 -* **[`ledger_data`](ledger_data.html)** - レジャーバージョンの生データコンテンツを取得します。 -* **[`ledger_entry`](ledger_entry.html)** - レジャーバージョンから1つのエレメントを取得します。 +* **[`ledger`](ledger-methods/ledger.md)** - レジャーバージョンについての情報を取得します。 +* **[`ledger_closed`](ledger-methods/ledger_closed.md)** - 最新の閉鎖済みレジャーバージョンを取得します。 +* **[`ledger_current`](ledger-methods/ledger_current.md)** - 現在処理中のレジャーバージョンを取得します。 +* **[`ledger_data`](ledger-methods/ledger_data.md)** - レジャーバージョンの生データコンテンツを取得します。 +* **[`ledger_entry`](ledger-methods/ledger_entry.md)** - レジャーバージョンから1つのエレメントを取得します。 -## [トランザクションメソッド](transaction-methods.html) +## [トランザクションメソッド](transaction-methods/index.md) トランザクションだけが、XRP Ledgerの共有されている状態を変更できます。XRP Ledgerに対するすべてのビジネスはトランザクションの形態をとります。以下のメソッドを使用して、トランザクションを処理します。 -* **[`sign`](sign.html)** - トランザクションに暗号で署名します。 -* **[`sign_for`](sign_for.html)** - マルチ署名に署名を提供します。 -* **[`submit`](submit.html)** - トランザクションをネットワークに送信します。 -* **[`submit_multisigned`](submit_multisigned.html)** - マルチ署名済みトランザクションをネットワークに送信します。 -* **[`transaction_entry`](transaction_entry.html)** - レジャーの特定のバージョンからトランザクションについての情報を取得します。 -* **[`tx`](tx.html)** - 手元にあるすべてのレジャーからトランザクションについての情報を取得します。 -* **[`tx_history`](tx_history.html)** - 最新の全トランザクションについての情報を取得します。 +* **[`sign`](../admin-api-methods/signing-methods/sign.md)** - トランザクションに暗号で署名します。 +* **[`sign_for`](../admin-api-methods/signing-methods/sign_for.md)** - マルチ署名に署名を提供します。 +* **[`submit`](transaction-methods/submit.md)** - トランザクションをネットワークに送信します。 +* **[`submit_multisigned`](transaction-methods/submit_multisigned.md)** - マルチ署名済みトランザクションをネットワークに送信します。 +* **[`transaction_entry`](transaction-methods/transaction_entry.md)** - レジャーの特定のバージョンからトランザクションについての情報を取得します。 +* **[`tx`](transaction-methods/tx.md)** - 手元にあるすべてのレジャーからトランザクションについての情報を取得します。 +* **[`tx_history`](transaction-methods/tx_history.md)** - 最新の全トランザクションについての情報を取得します。 -## [パスおよびオーダーブックのメソッド](path-and-order-book-methods.html) +## [パスおよびオーダーブックのメソッド](path-and-order-book-methods/index.md) パスは、支払いが送信者から受信者に届くまでに中間ステップでたどる道筋を定義します。パスは、送信者と受信者をオーダーブックを介してつなぐことで、クロスカレンシー支払いを可能にします。パスと他のオーダーブックに関しては、以下のメソッドを使用します。 -* **[`amm_info`](amm_info.html)** :not_enabled: - 自動マーケットメイカー(AMM)についての情報を取得します。 -* **[`book_offers`](book_offers.html)** - 2つの通貨を交換するオファーに関する情報を取得します。 -* **[`deposit_authorized`](deposit_authorized.html)** - あるアカウントが別のアカウントへの支払いの直接送信について承認されているかどうかを調べます。 -* **[`nft_buy_offers`](nft_buy_offers.html)** - Retrieve a list of buy offers for a specified NFToken object. -* **[`nft_sell_offers`](nft_sell_offers.html)** - Retrieve a list of sell offers for a specified NFToken object. -* **[`path_find`](path_find.html)** - 2つのアカウント間の支払いのパスを見つけて、更新を受け取ります。 -* **[`ripple_path_find`](ripple_path_find.html)** - 2つのアカウント間の支払いのパスを1回だけ見つけます。 +* **[`amm_info`](path-and-order-book-methods/amm_info.md)** {% not-enabled /%} - 自動マーケットメイカー(AMM)についての情報を取得します。 +* **[`book_offers`](path-and-order-book-methods/book_offers.md)** - 2つの通貨を交換するオファーに関する情報を取得します。 +* **[`deposit_authorized`](path-and-order-book-methods/deposit_authorized.md)** - あるアカウントが別のアカウントへの支払いの直接送信について承認されているかどうかを調べます。 +* **[`nft_buy_offers`](path-and-order-book-methods/nft_buy_offers.md)** - Retrieve a list of buy offers for a specified NFToken object. +* **[`nft_sell_offers`](path-and-order-book-methods/nft_sell_offers.md)** - Retrieve a list of sell offers for a specified NFToken object. +* **[`path_find`](path-and-order-book-methods/path_find.md)** - 2つのアカウント間の支払いのパスを見つけて、更新を受け取ります。 +* **[`ripple_path_find`](path-and-order-book-methods/ripple_path_find.md)** - 2つのアカウント間の支払いのパスを1回だけ見つけます。 -## [Payment Channel メソッド](payment-channel-methods.html) +## [Payment Channel メソッド](payment-channel-methods/index.md) Payment Channel は、2名の当事者間での一方向の繰り返しの支払い、またはそれに伴う一時的な貸付を容易に行えるようにするためのツールです。Payment Channelに関しては、以下のメソッドを使用します。 -* **[`channel_authorize`](channel_authorize.html)** - ペイメントチャネルへのクレーム(支払請求)に署名します。 -* **[`channel_verify`](channel_verify.html)** - payment channel クレームの署名をチェックします。 +* **[`channel_authorize`](payment-channel-methods/channel_authorize.md)** - ペイメントチャネルへのクレーム(支払請求)に署名します。 +* **[`channel_verify`](payment-channel-methods/channel_verify.md)** - payment channel クレームの署名をチェックします。 -## [サブスクリプションメソッド](subscription-methods.html) +## [サブスクリプションメソッド](subscription-methods/index.md) 以下のメソッドにより、各種イベントの発生時にサーバーからクライアントに更新が通知されるように設定できます。これにより、イベントを即座に把握し、対処することができます。_WebSocket APIのみ。_ -* **[`subscribe`](subscribe.html)** - 特定の対象について更新の通知を受けます。 -* **[`unsubscribe`](unsubscribe.html)** - 特定の対象についての更新の通知を停止します。 +* **[`subscribe`](subscription-methods/subscribe.md)** - 特定の対象について更新の通知を受けます。 +* **[`unsubscribe`](subscription-methods/unsubscribe.md)** - 特定の対象についての更新の通知を停止します。 -## [サーバー情報メソッド](server-info-methods.html) +## [サーバー情報メソッド](server-info-methods/index.md) 以下のメソッドを使用して、`rippled`サーバーの現在の状態についての情報を取得します。 -* **[`fee`](fee.html)** - トランザクションコストについての情報を取得します。 -* **[`server_info`](server_info.html)** - サーバーのステータスを人間が読めるフォーマットで取得します。 -* **[`server_state`](server_state.html)** - サーバーのステータスを機械が読み取れるフォーマットで取得します。 +* **[`fee`](server-info-methods/fee.md)** - トランザクションコストについての情報を取得します。 +* **[`server_info`](server-info-methods/server_info.md)** - サーバーのステータスを人間が読めるフォーマットで取得します。 +* **[`server_state`](server-info-methods/server_state.md)** - サーバーのステータスを機械が読み取れるフォーマットで取得します。 -## [ユーティリティメソッド](utility-methods.html) +## [ユーティリティメソッド](utility-methods/index.md) 以下のメソッドを使用して、pingや乱数生成などの便利なタスクを実行します。 -* **[`json`](json.html)** - プロキシとして使用して、他のコマンドを実行します。コマンドのパラメーターをJSON値として受け入れます。_コマンドラインのみ。_ -* **[`ping`](ping.html)** - サーバーとの接続を確認します。 -* **[`random`](random.html)** - 乱数を生成します。 +* **[`json`](utility-methods/json.md)** - プロキシとして使用して、他のコマンドを実行します。コマンドのパラメーターをJSON値として受け入れます。_コマンドラインのみ。_ +* **[`ping`](utility-methods/ping.md)** - サーバーとの接続を確認します。 +* **[`random`](utility-methods/random.md)** - 乱数を生成します。 ## 廃止予定のメソッド -`owner_info`コマンドは廃止される予定です。代わりに[`account_objects`](account_objects.html)を使用してください。 +`owner_info`コマンドは廃止される予定です。代わりに[`account_objects`](account-methods/account_objects.md)を使用してください。 diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/index.md index 8770ce11bc..9b96063c50 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/index.md @@ -1,8 +1,12 @@ --- html: ledger-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Ledgerメソッド -レジャーバージョンには、ヘッダー、トランザクションツリー、状態ツリーが含まれ、さらにその中にアカウント設定、トラストライン、残高、トランザクション、その他のデータが含まれます。以下のメソッドを使用して、レジャー情報を取得することができます。 \ No newline at end of file +レジャーバージョンには、ヘッダー、トランザクションツリー、状態ツリーが含まれ、さらにその中にアカウント設定、トラストライン、残高、トランザクション、その他のデータが含まれます。以下のメソッドを使用して、レジャー情報を取得することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md index 376e04e12f..9c3bd22a94 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md @@ -13,10 +13,9 @@ label: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":14, @@ -27,9 +26,9 @@ label: "owner_funds": false } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"ledger", @@ -43,19 +42,20 @@ label: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: ledger ledger_index|ledger_hash [full|tx] # "full" is equivalent to "full": true # "tx" is equivalent to "transactions": true rippled ledger current ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger) リクエストには以下のパラメーターを含めることができます。 @@ -67,7 +67,7 @@ rippled ledger current | `expand` | 真偽値 | いいえ | ハッシュのみではなく、トランザクション/アカウントの完全な情報がJSONフォーマットで提供されます。デフォルトでは`false`です。トランザクション、アカウント、またはその両方をリクエストしない場合は無視されます。 | | `owner_funds` | 真偽値 | いいえ | `true`の場合、レスポンスのOfferCreateトランザクションのメタデータに`owner_funds`フィールドが含まれます。デフォルトでは`false`です。トランザクションが含まれておらず、`expand`がtrueではない場合には無視されます。 | | `binary` | 真偽値 | いいえ | `true`で、かつ`transactions`と`expand`が両方とも`true`の場合、JSONフォーマットではなくバイナリフォーマット(16進文字列)でトランザクション情報が返されます。 | -| `queue` | 真偽値 | いいえ | `true`で、かつコマンドが`current`レジャーをリクエストしている場合、[キューに入れらているトランザクション](transaction-cost.html#キューに入れられたトランザクション)の配列が結果に含まれます。 +| `queue` | 真偽値 | いいえ | `true`で、かつコマンドが`current`レジャーをリクエストしている場合、[キューに入れらているトランザクション](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)の配列が結果に含まれます。 `ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。`full`、`accounts`、`type`フィールド(管理者専用)も非推奨です。 @@ -76,41 +76,30 @@ rippled ledger current 処理が成功したレスポンスの例: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/ledger/ws-response.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/ledger/ws-response.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/ledger/jsonrpc-response.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* +{% tab label="コマンドライン" %} +{% code-snippet file="/_api-examples/ledger/jsonrpc-response.json" language="json" prefix="Loading: \"/etc/opt/ripple/rippled.cfg\"\n2023-Nov-01 21:38:14.638871262 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005\n\n" /%} +{% /tab %} -```json -200 OK - -{% include '_api-examples/ledger/jsonrpc-response.json' %} -``` - -*コマンドライン* - -```json -Loading: "/etc/opt/ripple/rippled.cfg" -2023-Nov-01 21:38:14.638871262 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 - -{% include '_api-examples/ledger/jsonrpc-response.json' %} -``` - - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果にレジャーに関する情報を表す次のフィールドが含まれています。 | `Field` | 型 | 説明 | |:-------------------------------|:------------|:--------------------------| -| `ledger` | オブジェクト | このレジャーの完全な[レジャーヘッダのデータ](ledger-header.html)で、便宜上いくつかのフィールドが追加されています。 | +| `ledger` | オブジェクト | このレジャーの完全な[レジャーヘッダのデータ](../../../protocol/ledger-data/ledger-header.md)で、便宜上いくつかのフィールドが追加されています。 | | `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウント状態情報の[ハッシュ][](16進数) | -| `ledger.accountState` | 配列 | このレジャーのすべての[アカウント状態情報](ledger-data-formats.html)(16進数)。 | -| `ledger.close_flags` | 整数 | このレジャーの[クローズに関するフラグ](ledger-header.html#close-flags)のビットマップ。 | +| `ledger.accountState` | 配列 | このレジャーのすべての[アカウント状態情報](../../../protocol/ledger-data/index.md)(16進数)。 | +| `ledger.close_flags` | 整数 | このレジャーの[クローズに関するフラグ](../../../protocol/ledger-data/ledger-header.md#close-flags)のビットマップ。 | | `ledger.close_time` | 整数 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][])。 | | `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻。常にUTCタイムゾーンを使用します。 | | `ledger.close_time_resolution` | 整数 | レジャー閉鎖時刻が丸められる秒数の範囲。 | @@ -128,27 +117,27 @@ Loading: "/etc/opt/ripple/rippled.cfg" `ledger.accountState`フィールド(`"full": true`または`"accounts": true`でリクエストされない限り省略)は廃止予定です。 -次のフィールドは廃止予定であり、今後予告なしに削除される可能性があります。`accepted`、`hash`(代わりに`ledger_hash`を使用)、`seqNum`(代わりに`ledger_index`を使用)、`totalCoins`(代わりに`total_coins`を使用)。[更新: rippled 1.12.0][] +次のフィールドは廃止予定であり、今後予告なしに削除される可能性があります。`accepted`、`hash`(代わりに`ledger_hash`を使用)、`seqNum`(代わりに`ledger_index`を使用)、`totalCoins`(代わりに`total_coins`を使用)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}更新: rippled 1.12.0{% /badge %} `queue_data`配列の各メンバーは、キュー内の1つのトランザクションを表します。このオブジェクトの一部フィールドは、まだ計算されていないために省略されることがあります。このオブジェクトのフィールドを次に示します。 | フィールド | 値 | 説明 | |:--------------------|:---------------------|:------------------------------------| | `account` | 文字列 | このキューに入れられたトランザクションの送信者の[アドレス][]。 | -| `tx` | 文字列またはオブジェクト | デフォルトでは、これはトランザクションの[識別用ハッシュ](basic-data-types.html#ハッシュ)を含む文字列です。トランザクションがバイナリフォーマットで展開されている場合、これは`tx_blob`が唯一のフィールドであるオブジェクトであり、バイナリー形式のトランザクションが10進文字列として含まれています。トランザクションがJSONフォーマットで展開されている場合、これは`hash`フィールドにトランザクションの識別用ハッシュが指定されている[トランザクションオブジェクト](transaction-formats.html)を含むオブジェクトです。 | +| `tx` | 文字列またはオブジェクト | デフォルトでは、これはトランザクションの[識別用ハッシュ](../../../protocol/data-types/basic-data-types.md#ハッシュ)を含む文字列です。トランザクションがバイナリフォーマットで展開されている場合、これは`tx_blob`が唯一のフィールドであるオブジェクトであり、バイナリー形式のトランザクションが10進文字列として含まれています。トランザクションがJSONフォーマットで展開されている場合、これは`hash`フィールドにトランザクションの識別用ハッシュが指定されている[トランザクションオブジェクト](../../../protocol/transactions/index.md)を含むオブジェクトです。 | | `retries_remaining` | 数値 | このトランザクションの再試行可能回数。この回数を超えるとトランザクションが除外されます。 | | `preflight_result` | 文字列 | 初期トランザクションチェックの一時的な結果。これは常に`tesSUCCESS`です。 | -| `last_result` | 文字列 | _(省略される場合があります)_[再試行可能な(`ter`)の結果](ter-codes.html)を取得した後でこのトランザクションがキューに残っている場合、これは取得した正確な`ter`結果コードです。 | -| `auth_change` | 真偽値 | _(省略される場合があります)_ このトランザクションがこのアドレスの[トランザクション承認方法](transactions.html#トランザクションの承認)を変更するかどうかを示します。 | -| `fee` | 文字列 | _(省略される場合があります)_ このトランザクションの[トランザクションコスト](transaction-cost.html)([XRPのdrop数][])。 | +| `last_result` | 文字列 | _(省略される場合があります)_[再試行可能な(`ter`)の結果](../../../protocol/transactions/transaction-results/ter-codes.md)を取得した後でこのトランザクションがキューに残っている場合、これは取得した正確な`ter`結果コードです。 | +| `auth_change` | 真偽値 | _(省略される場合があります)_ このトランザクションがこのアドレスの[トランザクション承認方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。 | +| `fee` | 文字列 | _(省略される場合があります)_ このトランザクションの[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)([XRPのdrop数][])。 | | `fee_level` | 文字列 | _(省略される場合があります)_ このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | | `max_spend_drops` | 文字列 | _(省略される場合があります)_ このトランザクションで送信または消却できる[XRP、drop単位][]の最高額。 | -リクエストに`"owner_funds": true`が指定されておりトランザクションが展開されている場合、レスポンスには、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](offers.html#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](subscribe.html#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 +リクエストに`"owner_funds": true`が指定されておりトランザクションが展開されている場合、レスポンスには、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](../subscription-methods/subscribe.md#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 | `Field` | 値 | 説明 | |:--------------|:-------|:----------------------------------------------------| -| `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[凍結](freezes.html)されているかどうかはチェックされません。 | +| `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されているかどうかはチェックされません。 | ## 考えられるエラー @@ -159,8 +148,6 @@ Loading: "/etc/opt/ripple/rippled.cfg" -[手数料レベル]: transaction-cost.html#手数料レベル - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +[手数料レベル]: ../../../../concepts/transactions/transaction-cost.md#手数料レベル + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md index dbc43e29bb..128b01da4b 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md @@ -13,19 +13,18 @@ label: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, "command": "ledger_closed" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_closed", @@ -34,27 +33,27 @@ label: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` #Syntax: ledger_closed rippled ledger_closed ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_closed) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_closed) このメソッドはパラメーターを受け入れません。 ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -66,9 +65,9 @@ rippled ledger_closed } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -80,8 +79,9 @@ rippled ledger_closed } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -94,6 +94,4 @@ rippled ledger_closed * いずれかの[汎用エラータイプ][]。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md index a8e07de247..4b5ff7cc0e 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md @@ -14,19 +14,18 @@ label: リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":2, "command":"ledger_current" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"ledger_current", @@ -35,17 +34,18 @@ label: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: ledger_current rippled ledger_current ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_current) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_current) このリクエストにはパラメーターは含まれていません。 @@ -53,10 +53,9 @@ rippled ledger_current ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":2, @@ -67,9 +66,9 @@ rippled ledger_current } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -80,8 +79,9 @@ rippled ledger_current } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -95,6 +95,4 @@ rippled ledger_current * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md index f8db3ff157..6ced24a240 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md @@ -14,10 +14,9 @@ label: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":2, @@ -27,9 +26,9 @@ label: "binary": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"ledger_data", @@ -42,8 +41,9 @@ label: ] } ``` +{% /tab %} - +{% /tabs %} **注記:**`ledger_data`のコマンドライン構文はありません。代わりに[jsonメソッド][]を使用してコマンドラインからこのメソッドにアクセスできます。 @@ -64,10 +64,9 @@ label: 処理が成功したレスポンスの例: - - -*WebSocket (binary:true)* +{% tabs %} +{% tab label="WebSocket (binary:true)" %} ```json { "id":2, @@ -102,9 +101,9 @@ label: "type":"response" } ``` +{% /tab %} -*WebSocket (binary:false)* - +{% tab label="WebSocket (binary:false)" %} ```json { "id":2, @@ -201,9 +200,9 @@ label: "type":"response" } ``` +{% /tab %} -*JSON-RPC (binary:true)* - +{% tab label="JSON-RPC (binary:true)" %} ```json 200 OK @@ -238,8 +237,9 @@ label: } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -255,7 +255,7 @@ label: | `Field` | 型 | 説明 | |:--------------------|:----------|:-------------------------------------------| | `data` | 文字列 | (`"binary":true`の場合にのみ含まれる)リクエストされたデータの16進表現。 | -| `LedgerEntryType` | 文字列 | (`"binary":false`の場合にのみ含まれる)このオブジェクトが表すレジャーオブジェクトの型を示す文字列。詳細なリストについては[レジャーデータフォーマット](ledger-data-formats.html)を参照してください。 | +| `LedgerEntryType` | 文字列 | (`"binary":false`の場合にのみ含まれる)このオブジェクトが表すレジャーオブジェクトの型を示す文字列。詳細なリストについては[レジャーデータフォーマット](../../../protocol/ledger-data/index.md)を参照してください。 | | (追加のフィールド) | (各種) | (`"binary":false`の場合にのみ含まれる)このオブジェクトを記述する追加フィールド。オブジェクトのLedgerEntryTypeに応じて異なります。 | | `index` | 文字列 | このレジャーエントリの一意のID(16進数) | @@ -265,6 +265,4 @@ label: * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md index bf43fefae0..c041dd2c64 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md @@ -13,15 +13,15 @@ label: ## リクエストのフォーマット -このメソッドは複数の異なる種類のデータを取得することができます。以下に記載されている一般的なフィールドと特定のタイプのフィールドで構成される適切なパラメータを渡し、標準の[リクエストのフォーマット](request-formatting.html)に従うことで、取得するアイテムの種類を選択できます。(例えば、WebSocketリクエストは常に`command`フィールドとオプションで`id`フィールドを持ち、JSON-RPCリクエストは`method`フィールドと`params`フィールドを使います)。 +このメソッドは複数の異なる種類のデータを取得することができます。以下に記載されている一般的なフィールドと特定のタイプのフィールドで構成される適切なパラメータを渡し、標準の[リクエストのフォーマット](../../api-conventions/request-formatting.md)に従うことで、取得するアイテムの種類を選択できます。(例えば、WebSocketリクエストは常に`command`フィールドとオプションで`id`フィールドを持ち、JSON-RPCリクエストは`method`フィールドと`params`フィールドを使います)。 -{% include '_snippets/no-cli-syntax.ja.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} ### 一般的なフィールド | フィールド | 型 | 説明 | |:------------------------|:-----------------------|:----------------------| -| `binary` | ブール値 | _(省略可)_ `true`の場合、リクエストしたレジャーオブジェクトの内容がXRP Ledgerの[バイナリ形式](serialization.html)の16進数の文字列として返されます。それ以外の場合はデータがJSONフォーマットで返されます。デフォルトは`false`です。[更新: rippled 1.2.0][] | +| `binary` | ブール値 | _(省略可)_ `true`の場合、リクエストしたレジャーオブジェクトの内容がXRP Ledgerの[バイナリ形式](../../../protocol/binary-format.md)の16進数の文字列として返されます。それ以外の場合はデータがJSONフォーマットで返されます。デフォルトは`false`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}更新: rippled 1.2.0{% /badge %} | | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数の文字列。([レジャーの指定][]をご覧ください。 | | `ledger_index` | 文字列 または 符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列("validated"や"closed"、"current"など)。([レジャーの指定][]をご覧ください。 | @@ -32,7 +32,7 @@ label: - [`index`](#idからレジャーオブジェクトを取得する) - [`account_root`](#accountrootオブジェクトを取得する) - [`directory`](#directorynodeオブジェクトを取得する) -- [`amm`](#ammオブジェクトを取得する) :not_enabled: +- [`amm`](#ammオブジェクトを取得する) {% not-enabled /%} - [`offer`](#offerオブジェクトを取得する) - [`ripple_state`](#ripplestateオブジェクトを取得する) - [`check`](#checkオブジェクトを取得する) @@ -51,12 +51,11 @@ label: | フィールド | 型 | 説明 | |:---------|:-------|:----------------------------------------------------------| -| `index` | 文字列 | レジャーから取得する1オブジェクトの[オブジェクトID](ledger-object-ids.html)を、64文字(256ビット)の16進数の文字列。 | +| `index` | 文字列 | レジャーから取得する1オブジェクトの[オブジェクトID](../../../protocol/ledger-data/common-fields.md)を、64文字(256ビット)の16進数の文字列。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "ledger_entry", @@ -64,9 +63,9 @@ label: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -78,38 +77,40 @@ label: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-by-object-id) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-by-object-id) -> **ヒント:** このタイプのリクエストは、レジャーデータにシングルトンオブジェクトが存在する場合、そのIDは常に同一であるため、任意のシングルトンオブジェクトを取得するために使用できます。たとえば -> -> - [`Amendments`](amendments-object.html) - `7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4` -> - [`FeeSettings`](feesettings.html) - `4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651` -> - [Recent History `LedgerHashes`](ledgerhashes.html) - `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B` -> - [`NegativeUNL`](negativeunl.html) - `2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244` +{% admonition type="success" name="ヒント" %} +このタイプのリクエストは、レジャーデータにシングルトンオブジェクトが存在する場合、そのIDは常に同一であるため、任意のシングルトンオブジェクトを取得するために使用できます。たとえば + +- [`Amendments`](../../../protocol/ledger-data/ledger-entry-types/amendments.md) - `7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4` +- [`FeeSettings`](../../../protocol/ledger-data/ledger-entry-types/feesettings.md) - `4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651` +- [Recent History `LedgerHashes`](../../../protocol/ledger-data/ledger-entry-types/ledgerhashes.md) - `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B` +- [`NegativeUNL`](../../../protocol/ledger-data/ledger-entry-types/negativeunl.md) - `2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244` +{% /admonition %} ### AccountRootオブジェクトを取得する -アドレスから[AccountRootオブジェクト](accountroot.html)を取得します。これは[account_infoメソッド][]とほぼ同じです。 +アドレスから[AccountRootオブジェクト](../../../protocol/ledger-data/ledger-entry-types/accountroot.md)を取得します。これは[account_infoメソッド][]とほぼ同じです。 | フィールド | 型 | 説明 | |:----------- ---|:--------------------|:----------------------| -| `account_root` | 文字列 - [アドレス][] | 取得する[AccountRootオブジェクト](accountroot.html)の標準アドレス。 | +| `account_root` | 文字列 - [アドレス][] | 取得する[AccountRootオブジェクト](../../../protocol/ledger-data/ledger-entry-types/accountroot.md)の標準アドレス。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_accountroot", @@ -118,9 +119,9 @@ rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -132,35 +133,35 @@ rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "account_root": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-accountroot) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-accountroot) ### AMMオブジェクトを取得する -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ レジャーからAutomated Market-Maker(AMM)オブジェクトを取得します。これは[amm_infoメソッド][]と似ていますが、`ledger_entry`は保存されているレジャーエントリのみを返します。 | フィールド | 型 | 説明 | |:-------------|:---------------------|:----------------------| -| `amm` | オブジェクトまたは文字列 | 取得する[AMM](amm.html)。文字列を指定する場合は、AMMの[オブジェクトID](ledger-object-ids.html)を16進数で指定しなければなりません。オブジェクトを指定する場合は、`asset`と`asset2`のサブフィールドを含む必要があります。 | -| `amm.asset` | オブジェクト | このAMMのプールにある2つの資産のうちのひとつを、[金額なしの通貨オブジェクト](currency-formats.html#金額なしでの通貨の指定)として指定します。 | -| `amm.asset2` | オブジェクト | このAMMのプールにある2つの資産のうちのもうひとつを、[金額なしの通貨オブジェクト](currency-formats.html#金額なしでの通貨の指定)として指定します。 | +| `amm` | オブジェクトまたは文字列 | 取得する[AMM](../../../protocol/ledger-data/ledger-entry-types/amm.md)。文字列を指定する場合は、AMMの[オブジェクトID](../../../protocol/ledger-data/common-fields.md)を16進数で指定しなければなりません。オブジェクトを指定する場合は、`asset`と`asset2`のサブフィールドを含む必要があります。 | +| `amm.asset` | オブジェクト | このAMMのプールにある2つの資産のうちのひとつを、[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | +| `amm.asset2` | オブジェクト | このAMMのプールにある2つの資産のうちのもうひとつを、[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -177,9 +178,9 @@ _([AMM amendment][] :not_enabled:が必要です。)_ "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -199,34 +200,34 @@ _([AMM amendment][] :not_enabled:が必要です。)_ ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "amm": { "asset": { "currency": "XRP" }, "asset2": { "currency" : "TST", "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#ledger_entry-amm) +[試してみる >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#ledger_entry-amm) ### DirectoryNodeオブジェクトを取得する -他のレジャーオブジェクトのリストを含む[DirectoryNode](directorynode.html)を取得します。文字列(DirectoryのオブジェクトID)またはオブジェクトを指定します。 +他のレジャーオブジェクトのリストを含む[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)を取得します。文字列(DirectoryのオブジェクトID)またはオブジェクトを指定します。 | フィールド | 型 | 説明 | |:------------------------|:---------------------------|:----------------------| -| `directory` | オブジェクト または 文字列 | 取得する[DirectoryNode](directorynode.html)。文字列の場合は、ディレクトリの[オブジェクトID](ledger-object-ids.html)を16進数で指定します。オブジェクトの場合は、サブフィールドとして`dir_root`または`owner`が必要で、オプションとして`sub_index`サブフィールドを指定可能です。 | -| `directory.sub_index` | 符号なし整数 | _(省略可)_ 指定された場合、その"ページ"以降の[DirectoryNode](directorynode.html)にジャンプします。 | +| `directory` | オブジェクト または 文字列 | 取得する[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)。文字列の場合は、ディレクトリの[オブジェクトID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合は、サブフィールドとして`dir_root`または`owner`が必要で、オプションとして`sub_index`サブフィールドを指定可能です。 | +| `directory.sub_index` | 符号なし整数 | _(省略可)_ 指定された場合、その"ページ"以降の[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)にジャンプします。 | | `directory.dir_root` | 文字列 | _(省略可)_ 取得するディレクトリを表す一意のインデックス。 | | `directory.owner` | 文字列 | _(省略可)_ このディレクトリに関連付けられているアカウントの一意のアドレス。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -238,9 +239,9 @@ rippled json ledger_entry '{ "amm": { "asset": { "currency": "XRP" }, "asset2": "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -255,33 +256,33 @@ rippled json ledger_entry '{ "amm": { "asset": { "currency": "XRP" }, "asset2": ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "sub_index": 0 }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-directorynode) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-directorynode) ### Offerオブジェクトを取得する -通貨交換のオファーを定義した [Offer オブジェクト](offer.html) を取得します。文字列 (オファーの一意なインデックス) あるいはオブジェクトを指定します。 +通貨交換のオファーを定義した [Offer オブジェクト](../../../protocol/ledger-data/ledger-entry-types/offer.md) を取得します。文字列 (オファーの一意なインデックス) あるいはオブジェクトを指定します。 | フィールド | 型 | 説明 | |:------------------------|:---------------------------|:----------------------| -| `offer` | オブジェクトまたは 文字列 | 取得する[オファーオブジェクト](offer.html)。文字列の場合、オファーに対する[一意のオブジェクトID](ledger-object-ids.html)を指定します。オブジェクトの場合、オファーを一意に識別するためのサブフィールド`account`と`seq`を指定します。 | +| `offer` | オブジェクトまたは 文字列 | 取得する[オファーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/offer.md)。文字列の場合、オファーに対する[一意のオブジェクトID](../../../protocol/ledger-data/common-fields.md)を指定します。オブジェクトの場合、オファーを一意に識別するためのサブフィールド`account`と`seq`を指定します。 | | `offer.account` | 文字列 - [アドレス][] | _(`offer`がオブジェクト形式で指定されている場合、必須)_ オファーを作成したアカウント。 | | `offer.seq` | 符号なし整数 | _(`offer`がオブジェクト形式で指定されている場合、必須)_ オファーオブジェクトを作成したトランザクションの[シーケンス番号][]。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_offer", @@ -293,9 +294,9 @@ rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwu "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -310,33 +311,33 @@ rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwu ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "offer": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "seq": 359}, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-offer) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-offer) ### RippleStateオブジェクトを取得する -2つのアカウント間の(XRP以外の)通貨残高を追跡する[RippleStateオブジェクト](ripplestate.html)を取得します。 +2つのアカウント間の(XRP以外の)通貨残高を追跡する[RippleStateオブジェクト](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)を取得します。 | フィールド | 型 | 説明 | |:------------------------|:---------------------------|:----------------------| | `ripple_state` | オブジェクト | 取得するRippleState(trust line)オブジェクトを指定するオブジェクト。取得するRippleStateエントリを一意に指定するには、`accounts`と`currency`のサブフィールドが必要です。 | -| `ripple_state.accounts` | 配列 | _(`ripple_state`が指定されている場合、必須)_ この[RippleStateオブジェクト](ripplestate.html)によってリンクされた2つのアカウントを長さ2の配列で指定します。 | -| `ripple_state.currency` | 文字列 | _(`ripple_state`が指定されている場合、必須)_ 取得する[RippleStateオブジェクト](ripplestate.html)の[通貨コード][]を指定します。 | +| `ripple_state.accounts` | 配列 | _(`ripple_state`が指定されている場合、必須)_ この[RippleStateオブジェクト](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)によってリンクされた2つのアカウントを長さ2の配列で指定します。 | +| `ripple_state.currency` | 文字列 | _(`ripple_state`が指定されている場合、必須)_ 取得する[RippleStateオブジェクト](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)の[通貨コード][]を指定します。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_ripplestate", @@ -351,9 +352,9 @@ rippled json ledger_entry '{ "offer": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJY "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -369,31 +370,31 @@ rippled json ledger_entry '{ "offer": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJY }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "ripple_state": { "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], "currency": "USD"}, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-ripplestate) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-ripplestate) ### Checkオブジェクトを取得する -[Checkオブジェクト](check.html)を取得します。[新規: rippled 1.0.0][]. +[Checkオブジェクト](../../../protocol/ledger-data/ledger-entry-types/check.md)を取得します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}新規: rippled 1.0.0{% /badge %}. | フィールド | 型 | 説明 | |:---------|:------|:----------------------| -| `check` | 文字列 | 取得する[Checkオブジェクト](check.html)の[オブジェクトID](ledger-object-ids.html)。 | +| `check` | 文字列 | 取得する[Checkオブジェクト](../../../protocol/ledger-data/ledger-entry-types/check.md)の[オブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_check", @@ -402,9 +403,9 @@ rippled json ledger_entry '{ "ripple_state": { "accounts": ["rf1BiGeXwwQoi8Z2ueF "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -414,33 +415,33 @@ rippled json ledger_entry '{ "ripple_state": { "accounts": ["rf1BiGeXwwQoi8Z2ueF }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-check) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-check) ### Escrowオブジェクトを取得する -[Escrowオブジェクト](escrow-object.html)を取得します。文字列(エスクローのオブジェクトID)またはオブジェクトとして指定します。[新規: rippled 1.0.0][] +[Escrowオブジェクト](../../../protocol/ledger-data/ledger-entry-types/escrow.md)を取得します。文字列(エスクローのオブジェクトID)またはオブジェクトとして指定します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}新規: rippled 1.0.0{% /badge %} | フィールド | 型 | 説明 | |:------------------------|:---------------------------|:----------------------| -| `escrow` | オブジェクト または 文字列 | 取得する[Escrowオブジェクト](escrow-object.html)を指定します。文字列の場合は、エスクローの[オブジェクトID](ledger-object-ids.html)を16進数で指定します。オブジェクトの場合、`owner`と`seq`サブフィールドを指定します。. | +| `escrow` | オブジェクト または 文字列 | 取得する[Escrowオブジェクト](../../../protocol/ledger-data/ledger-entry-types/escrow.md)を指定します。文字列の場合は、エスクローの[オブジェクトID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合、`owner`と`seq`サブフィールドを指定します。. | | `escrow.owner` | 文字列 - [アドレス][] | _(`escrow`がオブジェクト形式で指定されている場合、必須)_ Escrowオブジェクトの所有者(送信者)。 | | `escrow.seq` | 符号なし整数 | _(`escrow`がオブジェクト形式で指定されている場合、必須)_ エスクローオブジェクトを作成したトランザクションの[シーケンス番号][]。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_escrow", @@ -452,9 +453,9 @@ rippled json ledger_entry '{ "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D79 "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -467,31 +468,31 @@ rippled json ledger_entry '{ "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D79 }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "escrow": { "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", "seq": 126 }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-escrow) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-escrow) ### PayChannelオブジェクトを取得する -非同期決済用のXRPを保持する[PayChannelオブジェクト](paychannel.html)を取得します。[新規: rippled 1.0.0][]. +非同期決済用のXRPを保持する[PayChannelオブジェクト](../../../protocol/ledger-data/ledger-entry-types/paychannel.md)を取得します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}新規: rippled 1.0.0{% /badge %}. | フィールド | 型 | 説明 | |:------------------|:-------|:------------------------------------------------| -| `payment_channel` | 文字列 | 取得する[PayChannelオブジェクト](paychannel.html)の[オブジェクトID](ledger-object-ids.html)。 | +| `payment_channel` | 文字列 | 取得する[PayChannelオブジェクト](../../../protocol/ledger-data/ledger-entry-types/paychannel.md)の[オブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_paychannel", @@ -500,9 +501,9 @@ rippled json ledger_entry '{ "escrow": { "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9 "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -512,32 +513,32 @@ rippled json ledger_entry '{ "escrow": { "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9 }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-paychannel) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-paychannel) ### DepositPreauthオブジェクトを取得する -[DepositPreauthオブジェクト](depositpreauth-object.html)を取得します。このオブジェクトは、[Deposit Authorization](depositauth.html)を必要とする口座への支払いの事前承認を記録します。文字列(DepositPreauthのオブジェクトID)またはオブジェクトとして指定します。[新規: rippled 1.1.0][]. +[DepositPreauthオブジェクト](../../../protocol/ledger-data/ledger-entry-types/depositpreauth.md)を取得します。このオブジェクトは、[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を必要とする口座への支払いの事前承認を記録します。文字列(DepositPreauthのオブジェクトID)またはオブジェクトとして指定します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %}. | フィールド | 型 | 説明 | |:-----------------------------|:-----------------------|:-----------------------| -| `deposit_preauth` | オブジェクト または 文字列 | 取得する[DepositPreauthオブジェクト](depositpreauth-object.html)を指定します。文字列の場合、DepositPreauthオブジェクトの[オブジェクトID](ledger-object-ids.html)を16進数で指定します。オブジェクトの場合、`owner`と`authorized`のサブフィールドを指定します。 | +| `deposit_preauth` | オブジェクト または 文字列 | 取得する[DepositPreauthオブジェクト](../../../protocol/ledger-data/ledger-entry-types/depositpreauth.md)を指定します。文字列の場合、DepositPreauthオブジェクトの[オブジェクトID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合、`owner`と`authorized`のサブフィールドを指定します。 | | `deposit_preauth.owner` | 文字列 - [アドレス][] | _(`deposit_preauth`がオブジェクト形式で指定されている場合、必須)_ 事前承認を行ったアカウント。 | | `deposit_preauth.authorized` | 文字列 - [アドレス][] | _(`deposit_preauth`がオブジェクト形式で指定されている場合、必須)_ 事前承認を受けたアカウント。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_deposit_preauth", @@ -549,9 +550,9 @@ rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -564,32 +565,32 @@ rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "deposit_preauth": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-depositpreauth) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-depositpreauth) ### Ticketオブジェクトを取得する -将来の使用のために確保された[シーケンス番号][]を表す[Ticketオブジェクト](ticket.html)を取得します。文字列(TicketのオブジェクトID)またはオブジェクトを指定します。 _([TicketBatch amendment][]により追加されました。)_ +将来の使用のために確保された[シーケンス番号][]を表す[Ticketオブジェクト](../../../protocol/ledger-data/ledger-entry-types/ticket.md)を取得します。文字列(TicketのオブジェクトID)またはオブジェクトを指定します。 _([TicketBatch amendment][]により追加されました。)_ | フィールド | 型 | 説明 | |:--------------------|:-----------------------|:----------------------| -| `ticket` | オブジェクト または 文字列 | 取得する[Ticketオブジェクト](ticket.html)。文字列の場合、チケットの[オブジェクトID](ledger-object-ids.html)を16進数で指定します。オブジェクトの場合、チケットエントリを一意に指定するために`account`と`ticket_seq`サブフィールドを指定します。 | +| `ticket` | オブジェクト または 文字列 | 取得する[Ticketオブジェクト](../../../protocol/ledger-data/ledger-entry-types/ticket.md)。文字列の場合、チケットの[オブジェクトID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合、チケットエントリを一意に指定するために`account`と`ticket_seq`サブフィールドを指定します。 | | `ticket.account` | 文字列 - [アドレス][] | _(`ticket`がオブジェクト形式で指定されている場合、必須)_ Ticketオブジェクトの所有者を指定します。 | | `ticket.ticket_seq` | 数値 | _(`ticket`がオブジェクト形式で指定されている場合、必須)_ 取得するTicketのTicketシーケンス番号を指定します。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_ticket", @@ -601,9 +602,9 @@ rippled json ledger_entry '{ "deposit_preauth": { "owner": "rf1BiGeXwwQoi8Z2ueFY "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -616,16 +617,17 @@ rippled json ledger_entry '{ "deposit_preauth": { "owner": "rf1BiGeXwwQoi8Z2ueFY }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "ticket": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "ticket_seq: 389 }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-ticket) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-ticket) ### NFT Pageを取得する @@ -634,12 +636,11 @@ NFT ページを生のレジャー形式で取得します。 | フィールド | 型 | 説明 | |:------------------------|:-------|:----------------------| -| `nft_page` | 文字列 | 取得する[NFTページ](nftokenpage.html)の[オブジェクトID](ledger-object-ids.html)。 | +| `nft_page` | 文字列 | 取得する[NFTページ](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md)の[オブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_nft_page", @@ -648,9 +649,9 @@ NFT ページを生のレジャー形式で取得します。 "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -660,16 +661,17 @@ NFT ページを生のレジャー形式で取得します。 }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ledger_entry-nft-page) +[試してみる >](/resources/dev-tools/websocket-api-tool#ledger_entry-nft-page) ## レスポンスのフォーマット @@ -677,17 +679,16 @@ rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F0 | フィールド | 型 | 説明 | |:---------------|:-----------------|:-----------------------------------------| -| `index` | 文字列 | [レジャーオブジェクト](ledger-object-types.html)の一意のID。 | +| `index` | 文字列 | [レジャーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/index.md)の一意のID。 | | `ledger_index` | 符号なし整数 | このデータを取得する際に使用したレジャーの [レジャーインデックス][]。 | | `node` | オブジェクト | _(`"binary": true`が指定されている場合、省略)_ [レジャーフォーマット][]に基づいた、この元帳オブジェクトのデータを含むオブジェクト。 | -| `node_binary` | 文字列 | _(`"binary": true`が指定されていない場合、省略)_ レジャーオブジェクトの[バイナリ形式](serialization.html)を16進数で表したもの。 | +| `node_binary` | 文字列 | _(`"binary": true`が指定されていない場合、省略)_ レジャーオブジェクトの[バイナリ形式](../../../protocol/binary-format.md)を16進数で表したもの。 | 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_accountroot", @@ -718,9 +719,9 @@ rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F0 "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -751,9 +752,9 @@ rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F0 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result": { @@ -782,8 +783,9 @@ rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F0 } } ``` +{% /tab %} - +{% /tabs %} ## 考えられるエラー @@ -799,9 +801,4 @@ rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F0 * `malformedRequest` - リクエストにフィールドが無効な組み合わせで指定されているか、1つ以上のフィールドの型が誤っています。 * `unknownOption` - リクエストに指定されたフィールドが、予期されるリクエストのフォーマットのいずれにも一致していません。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md index ac6b3be9cf..253e68466a 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md @@ -11,24 +11,23 @@ labels: # amm_info [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AMMInfo.cpp "Source") -`{{currentpage.name}}`メソッドは、自動マーケットメーカー(AMM)インスタンスに関する情報を取得します。 +{% code-page-name /%}メソッドは、自動マーケットメーカー(AMM)インスタンスに関する情報を取得します。 -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ ### リクエストのフォーマット リクエストの例 -{% include '_snippets/no-cli-syntax.ja.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "asset": { "currency": "XRP" }, @@ -38,12 +37,12 @@ _([AMM amendment][] :not_enabled:が必要です。)_ } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "asset": { "currency": "XRP" @@ -55,10 +54,11 @@ _([AMM amendment][] :not_enabled:が必要です。)_ }] } ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#amm_info) +[試してみる>](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#amm_info) リクエストには以下のパラメーターが含まれます。 @@ -75,10 +75,9 @@ _([AMM amendment][] :not_enabled:が必要です。)_ 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -131,9 +130,9 @@ _([AMM amendment][] :not_enabled:が必要です。)_ "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -187,8 +186,9 @@ _([AMM amendment][] :not_enabled:が必要です。)_ } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、成功した場合は以下のフィールドを含みます。 @@ -210,8 +210,8 @@ _([AMM amendment][] :not_enabled:が必要です。)_ | `amm_account` | 文字列 | AMMアカウントの[アドレス][]です。 | | `amount` | [通貨額][] | AMMのプールにある1つの資産の合計額。(注記:リクエストに指定した`asset` _または_ `asset2`になります。) | | `amount2` | [通貨額][] | AMMのプール内の他の資産の合計額。(注意:リクエストに指定した`asset` _または_ `asset2`になります。) | -| `asset_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount`の通貨は現在[凍結](freezes.html)されています。 | -| `asset2_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount2`の通貨は現在[凍結](freezes.html)されています。 | +| `asset_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount`の通貨は現在[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | +| `asset2_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount2`の通貨は現在[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | | `auction_slot` | オブジェクト | _(省略される場合があります)_ 存在する場合、現在のオークションスロットの所有者を記述した[オークションスロットオブジェクト](#オークションスロットオブジェクト)です。 | | `lp_token` | [通貨額][] | このAMMのLPトークンの発行残高の合計。リクエスト時に`account`フィールドで流動性プロバイダを指定した場合、その流動性プロバイダが保有するこのAMMのLPトークンの量です。 | | `trading_fee` | 数値 | AMMの現在の取引手数料。単位は1/100,000で、1は0.001%の手数料に相当します。 | @@ -252,11 +252,8 @@ _([AMM amendment][] :not_enabled:が必要です。)_ ## 関連項目 - - [AMMオブジェクト](amm.html) - AMMオブジェクトの正規の保存形式 + - [AMMオブジェクト](../../../protocol/ledger-data/ledger-entry-types/amm.md) - AMMオブジェクトの正規の保存形式 - [AMMBid][] - オークションスロットと入札の仕組みについての詳細はこちら - [AMMVote][] - 取引手数料の投票メカニズムの詳細はこちら - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md index b2537372bc..18a7726a34 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md @@ -14,10 +14,9 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 4, @@ -33,9 +32,9 @@ labels: "limit": 10 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "book_offers", @@ -54,17 +53,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: book_offers taker_pays taker_gets [taker [ledger [limit] ] ] rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#book_offers) +[試してみる >](/resources/dev-tools/websocket-api-tool#book_offers) リクエストには以下のパラメーターが含まれます。 @@ -74,7 +74,7 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | | `limit` | 符号なし整数 | _(省略可)_ 指定されている場合、サーバーはこの制限を超える数のオファーを結果に含めません。資金供給のないオファーはサーバーにより省略されるため、返される結果の総数はこの制限よりも少ないことがあります。 | | `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | -| `taker` | 文字列 | _(省略可)_ パースペクティブとして使用するアカウントの[アドレス][]。このアカウントが発行した[資金供給のないオファー](offers.html#オファーのライフサイクル)は常にレスポンスに含まれます。(これを使用して、キャンセルしたい各自のオーダーを検索できます。) | +| `taker` | 文字列 | _(省略可)_ パースペクティブとして使用するアカウントの[アドレス][]。このアカウントが発行した[資金供給のないオファー](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)は常にレスポンスに含まれます。(これを使用して、キャンセルしたい各自のオーダーを検索できます。) | | `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][通貨額]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | | `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を、[通貨額][通貨額]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | @@ -82,10 +82,9 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 11, @@ -144,9 +143,9 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -159,8 +158,9 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -170,7 +170,7 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 | `ledger_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略可)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンのレジャーインデックス。 | | `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | | `marker` | [マーカー][] | _(省略される場合があります)_ レスポンスがページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。 | -| `offers` | 配列 | Offerオブジェクトの配列。各オブジェクトには[Offer オブジェクト](offer.html)のフィールドが含まれています。 | +| `offers` | 配列 | Offerオブジェクトの配列。各オブジェクトには[Offer オブジェクト](../../../protocol/ledger-data/ledger-entry-types/offer.md)のフィールドが含まれています。 | `offers`配列の要素には、Offerの標準フィールドの他に以下のフィールドが含まれます。 @@ -192,8 +192,4 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 * `dstIsrMalformed` - リクエストの`taker_gets`フィールドの`issuer`フィールドが無効です。 * `badMarket` - 必要なオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md index 24a6cf5ff9..6e49f6883b 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md @@ -9,15 +9,14 @@ labels: # deposit_authorized [[ソース]](https://github.com/XRPLF/rippled/blob/817d2339b8632cb2f97d3edd6f7af33aa7631744/src/ripple/rpc/handlers/DepositAuthorized.cpp "Source") -`deposit_authorized`コマンドは、あるアカウントに別のアカウントへ支払を直接送金する権限があるかどうかを示します。アカウントへの送金に承認を義務付ける方法については、[Deposit Authorization](depositauth.html)を参照してください。 +`deposit_authorized`コマンドは、あるアカウントに別のアカウントへ支払を直接送金する権限があるかどうかを示します。アカウントへの送金に承認を義務付ける方法については、[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を参照してください。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -27,9 +26,9 @@ labels: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "deposit_authorized", @@ -42,15 +41,16 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```bash #Syntax: deposit_authorized [] rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8 validated ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -66,10 +66,9 @@ rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJY 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -85,9 +84,9 @@ rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJY "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -101,9 +100,9 @@ rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJY } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" 2018-Jul-30 20:07:38.771658157 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -120,14 +119,15 @@ Loading: "/etc/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 | `Field` | 型 | 説明 | |:-----------------------|:--------------------------|:------------------------| -| `deposit_authorized` | ブール値 | 指定の支払元アカウントから支払先アカウントへの直接送金が承認されているかどうか。`true`の場合、支払先アカウントで[Deposit Authorization](depositauth.html)を必要としていないか、または支払元アカウントが事前承認されています。 | +| `deposit_authorized` | ブール値 | 指定の支払元アカウントから支払先アカウントへの直接送金が承認されているかどうか。`true`の場合、支払先アカウントで[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を必要としていないか、または支払元アカウントが事前承認されています。 | | `destination_account` | 文字列 - [アドレス][] | リクエストに指定されている宛先アカウント。 | | `ledger_hash` | 文字列 | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーの識別用ハッシュ。 | | `ledger_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | @@ -135,7 +135,7 @@ Loading: "/etc/rippled.cfg" | `source_account` | 文字列 - [アドレス][] | リクエストに指定されている支払元アカウント。 | | `validated` | ブール値 | _(省略される場合があります)_`true`の場合、検証済みレジャーバージョンからの情報が取り込まれます。 | -**注記:** `deposit_authorized`ステータスが`true`でも、指定の支払元から指定の支払先への送金が可能であるとは保証されません。たとえば、支払先アカウントに指定通貨の[トラストライン](trust-lines-and-issuing.html)がない場合や、送金に十分な流動性がない場合があります。 +**注記:** `deposit_authorized`ステータスが`true`でも、指定の支払元から指定の支払先への送金が可能であるとは保証されません。たとえば、支払先アカウントに指定通貨の[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)がない場合や、送金に十分な流動性がない場合があります。 ## 考えられるエラー @@ -146,6 +146,4 @@ Loading: "/etc/rippled.cfg" * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 * `srcActNotFound` - リクエストの`source_account`フィールドがレジャーのアカウントに対応していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md index 89ff586cb3..862b5a0288 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md @@ -1,8 +1,12 @@ --- html: path-and-order-book-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # PathおよびOrderBookのメソッド パスは、支払いが送信者から受信者に届くまでに中間ステップでたどる道筋を定義します。パスは、送信者と受信者をオーダーブックを介してつなぐことで、クロスカレンシー支払いを可能にします。パスと他のオーダーブックに関しては、以下のメソッドを使用します。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md index 904ce86427..4f3d2b55f3 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md @@ -15,12 +15,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ ## リクエストのフォーマット リクエストのフォーマットの例: -{% include '_snippets/no-cli-syntax.ja.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "nft_buy_offers", @@ -28,9 +27,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_buy_offers", @@ -40,10 +39,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ }] } ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#nft_buy_offers) +[試してみる >](/resources/dev-tools/websocket-api-tool#nft_buy_offers) リクエストには以下のパラメーターが含まれます。 @@ -59,10 +59,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -80,9 +79,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -99,8 +98,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -118,8 +118,8 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ | `Field` | 型 | 説明 | |:------------------|:-----------------------|:--------------------------------------| | `amount` | 文字列 または オブジェクト | NFTを購入するために提示される金額で、XRPのドロップ数を表す文字列、または(代替可能)トークンの金額を表すオブジェクトです。([通貨金額の指定][通貨額]をご覧ください)。 | -| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](nftokenoffer.html#nftokenofferのフラグ)をご覧ください。 | -| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](ledger-object-ids.html)。 | +| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenofferのフラグ)をご覧ください。 | +| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | | `owner` | 文字列 | このオファーを作成アカウント。 | ## 考えられるエラー @@ -129,6 +129,4 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md index 1b23d78362..cf6d3639e0 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md @@ -15,12 +15,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ ## リクエストのフォーマット リクエストのフォーマットの例: -{% include '_snippets/no-cli-syntax.ja.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "nft_sell_offers", @@ -28,9 +27,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_sell_offers", @@ -41,10 +40,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ ] } ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#nft_sell_offers) +[試してみる >](/resources/dev-tools/websocket-api-tool#nft_sell_offers) リクエストには以下のパラメーターが含まれます。 @@ -59,10 +59,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -80,9 +79,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -99,8 +98,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -119,8 +119,8 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ | `Field` | 型 | 説明 | |:------------------|:-----------------------|:--------------------------------------| | `amount` | 文字列 または オブジェクト | NFTを売却するために提示される金額で、XRPのドロップ数を表す文字列、または(代替可能)トークンの金額を表すオブジェクトです。([通貨金額の指定][通貨額]をご覧ください)。 | -| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](nftokenoffer.html#nftokenofferのフラグ)をご覧ください。 | -| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](ledger-object-ids.html)。 | +| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenofferのフラグ)をご覧ください。 | +| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | | `owner` | 文字列 | このオファーを作成アカウント。 | ## 考えられるエラー @@ -130,6 +130,4 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ * `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md index d8edbb1c0e..d7622f48af 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md @@ -9,7 +9,7 @@ labels: # path_find [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp "Source") -*WebSocket APIのみ。*`path_find`メソッドは、トランザクションが実行される可能性のある[パス](paths.html)を探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。JSON-RPCでサポートされているシンプルなバージョンについては、[ripple_path_findメソッド][]を参照してください。完全にXRPで行われる支払いの場合、XRPはどのアカウントにも直接送金できるためパスを探索する必要はありません。 +*WebSocket APIのみ。*`path_find`メソッドは、トランザクションが実行される可能性のある[パス](../../../../concepts/tokens/fungible-tokens/paths.md)を探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。JSON-RPCでサポートされているシンプルなバージョンについては、[ripple_path_findメソッド][]を参照してください。完全にXRPで行われる支払いの場合、XRPはどのアカウントにも直接送金できるためパスを探索する必要はありません。 path_findコマンドには3種類のモード(サブコマンド)があります。使用するモードを`subcommand`パラメーターに指定します。 @@ -29,10 +29,9 @@ path_findコマンドには3種類のモード(サブコマンド)があり ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":8, @@ -47,10 +46,11 @@ path_findコマンドには3種類のモード(サブコマンド)があり } } ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#path_find) +[試してみる >](/resources/dev-tools/websocket-api-tool#path_find) リクエストには以下のパラメーターが含まれます。 @@ -59,9 +59,9 @@ path_findコマンドには3種類のモード(サブコマンド)があり | `subcommand` | 文字列 | `"create"`を使用してcreateサブコマンドを送信します。 | | `source_account` | 文字列 | 探索するパスの送金元アカウントの一意のアドレス。(つまり、支払いを送金するアカウントです。) | | `destination_account` | 文字列 | 探索するパスの送金先アカウントの一意のアドレス。(つまり、支払いを受領するアカウントです。) | -| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:**[新規: rippled 0.30.0][]`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスがリクエストされます。ただし`send_max`が指定されている場合は、指定額を上回る額が支払われることはありません。 | -| `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションに使用する[通貨額][]。`source_currencies`と同時に指定することはできません。[新規: rippled 0.30.0][] | -| `paths` | 配列 | _(省略可)_ チェックする[ペイメントパス](paths.html)を表すオブジェクトの配列。すでに判明している特定パスの変更内容を常に把握する場合や、特定パスに沿った支払いにかかる総コストを確認する場合にこのフィールドを使用できます。 | +| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:**{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}新規: rippled 0.30.0{% /badge %}`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスがリクエストされます。ただし`send_max`が指定されている場合は、指定額を上回る額が支払われることはありません。 | +| `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`フィールドも認識しますが、これらのフィールドを使用した場合の結果は保証されません。これらのフィールドは将来のために予約されているものと考えてください。 @@ -69,10 +69,9 @@ path_findコマンドには3種類のモード(サブコマンド)があり 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, @@ -438,25 +437,26 @@ path_findコマンドには3種類のモード(サブコマンド)があり } } ``` +{% /tab %} - +{% /tabs %} -この初期レスポンスは[標準フォーマット](response-formatting.html)に従っており、正常に完了した場合は次のフィールドが含まれています。 +この初期レスポンスは[標準フォーマット](../../api-conventions/response-formatting.md)に従っており、正常に完了した場合は次のフィールドが含まれています。 | `Field` | 型 | 説明 | |:----------------------|:-----------------|:----------------------------------| -| `alternatives` | 配列 | 以下に説明する、提案される[パス](paths.html)のオブジェクトの配列。空の場合、送金元アカウントと送金先アカウントを結ぶパスが見つかりませんでした。 | +| `alternatives` | 配列 | 以下に説明する、提案される[パス](../../../../concepts/tokens/fungible-tokens/paths.md)のオブジェクトの配列。空の場合、送金元アカウントと送金先アカウントを結ぶパスが見つかりませんでした。 | | `destination_account` | 文字列 | トランザクションを受信するアカウントの一意のアドレス。 | | `destination_amount` | 文字列またはオブジェクト | 送金先がトランザクションで受領する[通貨額][]。 | | `id` | (各種) | (WebSocketのみ)WebSocketリクエストに指定されているIDが再びこのレベルで含まれます。 | | `source_account` | 文字列 | トランザクションを送信するアカウントの一意のアドレス。 | -| `full_reply` | ブール値 | `false`の場合、これは不完全な検索の結果です。これ以降のレスポンスに、より適切なパスが含まれている可能性があります。`true`の場合、これは検出された最良のパスです。(理論上、これよりも優れたパスが存在している可能性がありますが`rippled`では検出されません。)Pathfindingリクエストをクローズするまで、`rippled`は引き続き、新しいレジャーが閉鎖されるたびに更新を送信します。[新規: rippled 0.29.0][] | +| `full_reply` | ブール値 | `false`の場合、これは不完全な検索の結果です。これ以降のレスポンスに、より適切なパスが含まれている可能性があります。`true`の場合、これは検出された最良のパスです。(理論上、これよりも優れたパスが存在している可能性がありますが`rippled`では検出されません。)Pathfindingリクエストをクローズするまで、`rippled`は引き続き、新しいレジャーが閉鎖されるたびに更新を送信します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}新規: rippled 0.29.0{% /badge %} | `alternatives`配列の各要素は、1つの送金元通貨(開始アカウントが保有)から送金先アカウントへのパスと通貨を表すオブジェクトです。このオブジェクトのフィールドを次に示します。 | `Field` | 型 | 説明 | |:-----------------|:-----------------|:---------------------------------------| -| `paths_computed` | 配列 | [ペイメントパス](paths.html)を定義するオブジェクトの配列。 | +| `paths_computed` | 配列 | [ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を定義するオブジェクトの配列。 | | `source_amount` | 文字列またはオブジェクト | 送金先が必要な額を受領するために、送金元がこのパスで送金する必要がある[通貨額][]。 | ### 考えられるエラー @@ -467,16 +467,15 @@ path_findコマンドには3種類のモード(サブコマンド)があり ### 非同期フォローアップ -サーバーからは初期レスポンスの他に、時間の経過にともなう[ペイメントパス](paths.html)のステータスを更新するため類似したフォーマットでさらにメッセージが送信されます。これらのメッセージには、元のWebSocketリクエストの`id`が含まれているので、どのリクエストからメッセージが送信されたかを確認できます。また、最上位レベルの`"type": "path_find"`フィールドは、追加レスポンスであることを示します。その他のフィールドは、初期レスポンスと同じ方法で定義されます。 +サーバーからは初期レスポンスの他に、時間の経過にともなう[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)のステータスを更新するため類似したフォーマットでさらにメッセージが送信されます。これらのメッセージには、元のWebSocketリクエストの`id`が含まれているので、どのリクエストからメッセージが送信されたかを確認できます。また、最上位レベルの`"type": "path_find"`フィールドは、追加レスポンスであることを示します。その他のフィールドは、初期レスポンスと同じ方法で定義されます。 フォローアップに`"full_reply": true`が含まれている場合、これは現行レジャーの時点でrippledが検出できる最良のパスです。 path_find createリクエストからの非同期フォローアップの例を次に示します。 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, @@ -493,8 +492,9 @@ path_find createリクエストからの非同期フォローアップの例を "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` +{% /tab %} - +{% /tabs %} ## path_find close [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L58-L67 "Source") @@ -504,10 +504,9 @@ path_find createリクエストからの非同期フォローアップの例を ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":57, @@ -515,8 +514,9 @@ path_find createリクエストからの非同期フォローアップの例を "subcommand":"close" } ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -549,10 +549,9 @@ Pathfindingリクエストが正常にクローズされた場合、レスポン ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":58, @@ -560,8 +559,9 @@ Pathfindingリクエストが正常にクローズされた場合、レスポン "subcommand":"status" } ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -586,6 +586,4 @@ Pathfindingリクエストが実行中の場合、レスポンスは[`path_find * `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が_ある_Pathfindingメソッドについては、[ripple_path_findメソッド][]を参照してください。) * `noPathRequest` - Pathfindingリクエストのステータスを確認しようとしましたが、処理中のリクエストがありませんでした。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md index f0bcf5537b..2952f484d4 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md @@ -9,7 +9,7 @@ labels: # ripple_path_find [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/RipplePathFind.cpp "Source") -`ripple_path_find`メソッドは、[path_findメソッド][]のシンプルなバージョンであり、すぐに利用できる[ペイメントパス](paths.html)を含む1つのレスポンスを返します。WebSocket APIとJSON-RPC APIの両方で使用できます。ただし、結果は時間の経過とともに古くなる傾向にあります。最新の状態を維持するために複数のコールを実行する代わりに、可能な場合には[path_findメソッド][]を使用して、継続的な更新をサブスクライブします。 +`ripple_path_find`メソッドは、[path_findメソッド][]のシンプルなバージョンであり、すぐに利用できる[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を含む1つのレスポンスを返します。WebSocket APIとJSON-RPC APIの両方で使用できます。ただし、結果は時間の経過とともに古くなる傾向にあります。最新の状態を維持するために複数のコールを実行する代わりに、可能な場合には[path_findメソッド][]を使用して、継続的な更新をサブスクライブします。 `rippled`サーバーは支払いを行うため最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。 @@ -18,10 +18,9 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":8, @@ -43,9 +42,9 @@ labels: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"ripple_path_find", @@ -70,17 +69,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax ripple_path_find json ledger_index|ledger_hash rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "source_currencies":[ { "currency":"XRP" }, { "currency":"USD" } ], "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "destination_amount":{ "value":"0.001", "currency":"USD", "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" } }' ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ripple_path_find) +[試してみる >](/resources/dev-tools/websocket-api-tool#ripple_path_find) リクエストには以下のパラメーターが含まれます。 @@ -88,8 +88,8 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" |:----------------------|:---------------------------|:------------------------| | `source_account` | 文字列 | トランザクションで資金を送金するアカウントの一意のアドレス。 | | `destination_account` | 文字列 | トランザクションで資金を受領するアカウントの一意のアドレス。 | -| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:** [新規: rippled 0.30.0][]`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスがリクエストされます。ただし`send_max`が指定されている場合は、指定されている額を上回る額が支払われることはありません。 | -| `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションで使用する[通貨額][]。`source_currencies`と同時に使用することはできません。[新規: rippled 0.30.0][] | +| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:** {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}新規: rippled 0.30.0{% /badge %}`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスがリクエストされます。ただし`send_max`が指定されている場合は、指定されている額を上回る額が支払われることはありません。 | +| `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションで使用する[通貨額][]。`source_currencies`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}新規: rippled 0.30.0{% /badge %} | | `source_currencies` | 配列 | _(省略可)_ 送信元アカウントが使用する通貨の配列。この配列の各エントリーは、必須の`currency`フィールドとオプションの`issuer`フィールドを有するJSONオブジェクトです([通貨額][]の指定方法と同様)。指定できる送金元通貨は**18**種類以下です。デフォルトでは、あらゆる送金元通貨を使用し、最大で**88**の異なる通貨/イシュアーペアに使用できます。 | | `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | @@ -98,10 +98,9 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":8, @@ -208,9 +207,9 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -317,8 +316,9 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -332,7 +332,7 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" | `Field` | 型 | 説明 | |:-----------------|:-----------------|:---------------------------------------| -| `paths_computed` | 配列 | (省略可)[ペイメントパス](paths.html)を定義するオブジェクトの配列。 | +| `paths_computed` | 配列 | (省略可)[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を定義するオブジェクトの配列。 | | `source_amount` | 文字列またはオブジェクト | 送金先が希望額を受領できるよう、送金元がこのパスで送金する必要のある[通貨額][]。 | 次のフィールドは廃止予定のため、省略される可能性があります。`paths_canonical`および`paths_expanded`。出力される場合は無視してください。 @@ -349,6 +349,4 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" * `srcCurMalformed` - `source_currencies`フィールドのフォーマットが適切ではありません。 * `srcIsrMalformed` - リクエストの1つ以上の通貨オブジェクトの`issuer`フィールドが有効ではありません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md index fac77c295d..4b53498d92 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md @@ -8,17 +8,16 @@ labels: # channel_authorize [[ソース]](https://github.com/XRPLF/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L41 "Source") -_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ +_([PayChan Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}新規: rippled 0.33.0{% /badge %})_ `channel_authorize`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名を作成します。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "channel_authorize_example_id1", @@ -29,9 +28,9 @@ _([PayChan Amendment][]が有効になっている必要があります。[新 "amount": "1000000", } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json POST http://localhost:5005/ Content-Type: application/json @@ -46,40 +45,40 @@ Content-Type: application/json }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: channel_authorize [] rippled channel_authorize s████████████████████████████ secp256k1 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 | フィールド | 型 | 説明 | |-------|------|-------------| | `channel_id` | 文字列 | Payment Channelが使用する一意のID。 -| `secret` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密鍵。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。[更新: rippled 1.4.0][] | -| `seed ` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。[新規: rippled 1.4.0][] | -| `seed_hex` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。[新規: rippled 1.4.0][] | -| `passphrase` | 文字列 | _(省略可)_ クレームへの署名に使用する文字列パスフレーズ。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。[このパスフレーズから導出した鍵](cryptographic-keys.html#鍵導出)は、チャネルで指定された公開鍵と一致する必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。[新規: rippled 1.4.0][] | -| `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](cryptographic-keys.html#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。[新規: rippled 1.4.0][] | +| `secret` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密鍵。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}更新: rippled 1.4.0{% /badge %} | +| `seed ` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| `seed_hex` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| `passphrase` | 文字列 | _(省略可)_ クレームへの署名に使用する文字列パスフレーズ。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。[このパスフレーズから導出した鍵](../../../../concepts/accounts/cryptographic-keys.md#鍵導出)は、チャネルで指定された公開鍵と一致する必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | | `amount` | 文字列 | 承認するXRPの累積額(drop数)送金先がこのChannelからすでに受領しているXRPの額がこのフィールドの額よりも少ない場合、このメソッドで作成される署名を使用して差額を清算できます。 | リクエストでは、`secret`、`seed`、`seed_hex`、`passphrase`のうち1つだけを指定する**必要があります**。 -**警告:** 信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて秘密鍵を送信しないでください。(これには、このリクエストの`secret`、`seed`、`seed_hex`、または`passphrase`フィールドも含まれます)このメソッドは、自身が実行するサーバー、または資金を預けている十分に信頼できるサーバーへの、安全で暗号化されたネットワーク接続でのみ使用してください。そうでない場合、盗聴者があなたの秘密鍵を使用してクレームに署名し、同じキーペアを使用してこのPayment Channelなどから資金をすべて持ち出す可能性があります。手順については、[安全な署名の設定](secure-signing.html)を参照してください。 +**警告:** 信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて秘密鍵を送信しないでください。(これには、このリクエストの`secret`、`seed`、`seed_hex`、または`passphrase`フィールドも含まれます)このメソッドは、自身が実行するサーバー、または資金を預けている十分に信頼できるサーバーへの、安全で暗号化されたネットワーク接続でのみ使用してください。そうでない場合、盗聴者があなたの秘密鍵を使用してクレームに署名し、同じキーペアを使用してこのPayment Channelなどから資金をすべて持ち出す可能性があります。手順については、[安全な署名の設定](../../../../concepts/transactions/secure-signing.md)を参照してください。 ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "channel_authorize_example_id1", @@ -89,9 +88,9 @@ rippled channel_authorize s█████████████████ } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -102,9 +101,9 @@ rippled channel_authorize s█████████████████ } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result": { @@ -113,8 +112,9 @@ rippled channel_authorize s█████████████████ } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -125,12 +125,9 @@ rippled channel_authorize s█████████████████ ## 考えられるエラー * いずれかの[汎用エラータイプ][]。 -* `badKeyType` - リクエストの`key_type`パラメーターは、有効なキータイプではありません。(有効なタイプは、`secp256k1`または`ed25519`です。)[新規: rippled 1.4.0][] +* `badKeyType` - リクエストの`key_type`パラメーターは、有効なキータイプではありません。(有効なタイプは、`secp256k1`または`ed25519`です。){% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} * `badSeed` - リクエストの`secret`が有効なシークレットキーではありません。 * `channelAmtMalformed` - リクエストの`amount`が有効な[XRPの額][XRP、drop単位]ではありません。 * `channelMalformed` - リクエストの`channel_id`が有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列です。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md index 0a5bcd3ce8..9314790d94 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md @@ -8,17 +8,16 @@ labels: # channel_verify [[ソース]](https://github.com/XRPLF/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L89 "Source") -_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ +_([PayChan Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}新規: rippled 0.33.0{% /badge %})_ `channel_verify`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名の有効性を検証します。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, @@ -29,9 +28,9 @@ _([PayChan Amendment][]が有効になっている必要があります。[新 "amount":"1000000" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"channel_verify", @@ -43,15 +42,16 @@ _([PayChan Amendment][]が有効になっている必要があります。[新 }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: channel_verify rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064 ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 @@ -66,10 +66,9 @@ rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB0 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, @@ -80,9 +79,9 @@ rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB0 } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -93,9 +92,9 @@ rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB0 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result":{ @@ -104,8 +103,9 @@ rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB0 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -119,10 +119,8 @@ rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB0 * [汎用エラータイプ][]のすべて。 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `publicMalformed` - リクエストの`public_key`フィールドが、正しいフォーマットの有効な公開鍵ではありません。公開鍵は33バイトであり、base58または16進数で表記されている必要があります。[アカウントの公開鍵のbase58表現は文字`a`から始まります](base58-encodings.html)。16進表現は66文字です。 +* `publicMalformed` - リクエストの`public_key`フィールドが、正しいフォーマットの有効な公開鍵ではありません。公開鍵は33バイトであり、base58または16進数で表記されている必要があります。[アカウントの公開鍵のbase58表現は文字`a`から始まります](../../../protocol/data-types/base58-encodings.md)。16進表現は66文字です。 * `channelMalformed` - リクエストの`channel_id`フィールドが有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列である必要があります。 * `channelAmtMalformed` - リクエストの`amount`に指定された値が、有効な[XRPの額][XRP、drop単位]ではありませんでした。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md index 59aaaaf43e..51e2ab7c78 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md @@ -1,8 +1,12 @@ --- html: payment-channel-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Payment Channelメソッド -Payment Channelは、2者間で繰り返される一方向の支払いや一時的な与信を可能にするためのツールです。これらのメソッドを使用して、Payment Channelを使用することができます。 \ No newline at end of file +Payment Channelは、2者間で繰り返される一方向の支払いや一時的な与信を可能にするためのツールです。これらのメソッドを使用して、Payment Channelを使用することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md index 54a4478f0e..e16c2bc897 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md @@ -8,41 +8,41 @@ labels: # fee [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/Fee1.cpp "Source") -`fee`コマンドは、[トランザクションコスト](transaction-cost.html)に関するオープンレジャーの要件の現在の状態を報告します。このコマンドを使用するには、[FeeEscalation Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] +`fee`コマンドは、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)に関するオープンレジャーの要件の現在の状態を報告します。このコマンドを使用するには、[FeeEscalation Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} これは権限のないユーザーが使用できるパブリックコマンドです。[更新: rippled 0.32.0][新規: rippled 0.32.0] ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":"fee_websocket_example", "command":"fee" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"fee", "params":[{}] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: fee rippled fee ``` +{% /tab %} - +{% /tabs %} リクエストにはパラメーターは含まれていません。 @@ -50,10 +50,9 @@ rippled fee 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":"fee_websocket_example", @@ -80,9 +79,9 @@ rippled fee } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -109,9 +108,9 @@ rippled fee } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading:"/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -139,8 +138,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -149,18 +149,18 @@ Connecting to 127.0.0.1:5005 | `current_ledger_size` | 文字列(整数) | 進行中のレジャーに暫定的に含まれているトランザクションの数。 | | `current_queue_size` | 文字列(整数) | 次のレジャーに追加するためにキューに入れられたトランザクションの数。 | | `drops` | オブジェクト | [XRPのdrop数][]で表されるトランザクションコスト(トランザクションの`Fee`フィールド)に関するさまざまな情報 。 | -| `drops.base_fee` | 文字列(整数) | 最小限の負荷でレジャーに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を追加するのに必要なトランザクションコスト(XRPのdrop数)。 | +| `drops.base_fee` | 文字列(整数) | 最小限の負荷でレジャーに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を追加するのに必要なトランザクションコスト(XRPのdrop数)。 | | `drops.median_fee` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストのおおよその中央値(XRPのdrop数)。 | -| `drops.minimum_fee` | 文字列(整数) | 後のレジャーのキューに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を入れる際の最少トランザクションコスト(XRPのdrop数)。`base_fee`より大きい場合、トランザクションキューは一杯になっています。 | -| `drops.open_ledger_fee` | 文字列(整数) | 現在のオープンレジャーに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を追加する際に支払う必要がある最少トランザクションコスト(XRPのdrop数)。 | +| `drops.minimum_fee` | 文字列(整数) | 後のレジャーのキューに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を入れる際の最少トランザクションコスト(XRPのdrop数)。`base_fee`より大きい場合、トランザクションキューは一杯になっています。 | +| `drops.open_ledger_fee` | 文字列(整数) | 現在のオープンレジャーに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を追加する際に支払う必要がある最少トランザクションコスト(XRPのdrop数)。 | | `expected_ledger_size` | 文字列(整数) | 現行レジャーへ追加される見込みのトランザクションの概数。これは前のレジャーのトランザクション数に基づいています。 | -| `ledger_current_index` | 数値 | これらのステータスにより示される現行オープンレジャーの[レジャーインデックス][]。[新規: rippled 0.50.0][] | +| `ledger_current_index` | 数値 | これらのステータスにより示される現行オープンレジャーの[レジャーインデックス][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.50.0" %}新規: rippled 0.50.0{% /badge %} | | `levels` | オブジェクト | トランザクションコスト([手数料レベル][])に関するさまざまな情報。手数料レベルの比率は、その特定トランザクションの最少コストを基準にすべてのトランザクションに適用されます。 | | `levels.median_level` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストの中央値([手数料レベル][])。 | | `levels.minimum_level` | 文字列(整数) | 今後のレジャーのキューに入れるのに必要となる最少トランザクションコスト([手数料レベル][])。 | | `levels.open_ledger_level` | 文字列(整数) | 現行オープンレジャーにトランザクションを追加するのに必要な最少トランザクションコスト([手数料レベル][])。 | | `levels.reference_level` | 文字列(整数) | 最少トランザクションコストに相当します([手数料レベル][]で表現されます)。 | -| `max_queue_size` | 文字列(整数) | [トランザクションキュー](transaction-cost.html#キューに入れられたトランザクション)で現在保持できるトランザクションの最大数。 | +| `max_queue_size` | 文字列(整数) | [トランザクションキュー](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)で現在保持できるトランザクションの最大数。 | ## 考えられるエラー @@ -168,6 +168,6 @@ Connecting to 127.0.0.1:5005 -[手数料レベル]: transaction-cost.html#手数料レベル -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +[手数料レベル]: ../../../../concepts/transactions/transaction-cost.md#手数料レベル + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/index.md index a44b18a9a7..f1a6cb5363 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/index.md @@ -1,8 +1,12 @@ --- html: server-info-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Server Infoメソッド -以下のメソッドを使用して、rippledサーバーの現在の状態についての情報を取得することができます。 \ No newline at end of file +以下のメソッドを使用して、rippledサーバーの現在の状態についての情報を取得することができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md index 1eb9ab3aa5..f573a81406 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md @@ -8,43 +8,43 @@ labels: # manifest [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Manifest.cpp "ソース") -`{{currentpage.name}}`メソッドは、指定したバリデータ公開鍵の現在の"マニフェスト"情報を報告します。"マニフェスト"は、バリデータのマスターキーペアから署名付きの公開鍵(ephemeral signing key)を認証するためのデータブロックです。[更新: rippled 1.7.0][]. +{% code-page-name /%}メソッドは、指定したバリデータ公開鍵の現在の"マニフェスト"情報を報告します。"マニフェスト"は、バリデータのマスターキーペアから署名付きの公開鍵(ephemeral signing key)を認証するためのデータブロックです。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %}. ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "public_key":"nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh -#Syntax: {{currentpage.name}} public_key -rippled {{currentpage.name}} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p +#Syntax: {% $frontmatter.seo.title %} public_key +rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメータが含まれます。 @@ -57,10 +57,9 @@ rippled {{currentpage.name}} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3 成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -77,9 +76,9 @@ rippled {{currentpage.name}} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3 "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -97,9 +96,9 @@ rippled {{currentpage.name}} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -118,8 +117,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} @@ -128,7 +128,7 @@ Connecting to 127.0.0.1:5005 | `Field` | 型 | 説明 | |:------------|:-----------|:------------------------------------------------------| | `details` | オブジェクト | _(省略される場合があります)_ このマニフェストに含まれるデータ。サーバがリクエストからの`public_key`に対するマニフェストを持っていない場合は省略されます。その内容の完全な説明については、以下の **オブジェクトの詳細** をご覧ください。 | -| `manifest` | 文字列 | _(省略される場合があります)_ base64形式の完全なマニフェストデータ。このデータは[シリアライズ](serialization.html)され、base64エンコードされる前にバイナリになります。サーバがリクエストからの`public_key`に対するマニフェストを持っていない場合は省略されます。 | +| `manifest` | 文字列 | _(省略される場合があります)_ base64形式の完全なマニフェストデータ。このデータは[シリアライズ](../../../protocol/binary-format.md)され、base64エンコードされる前にバイナリになります。サーバがリクエストからの`public_key`に対するマニフェストを持っていない場合は省略されます。 | | `requested` | 文字列 | リクエストの`public_key`。 | #### オブジェクトの詳細 @@ -149,7 +149,4 @@ Connecting to 127.0.0.1:5005 - `invalidParams` - `public_key`フィールドが見つからないか、正しく指定されていません。 - `reportingUnsupported` - ([レポートモード][]サーバのみ) このメソッドはレポートモードでは使用できません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md index 18f2dff359..af30a5df8d 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md @@ -8,24 +8,23 @@ labels: # server_info (rippled) [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ServerInfo.cpp "Source") -`server_info`コマンドは、問い合わせ中の`rippled`サーバについての各種情報を、人間が読めるフォーマットでサーバにリクエストします。[Clioサーバ](the-clio-server.html)については、[`server_info` (Clio)](server_info-clio.html)をご覧ください。 +`server_info`コマンドは、問い合わせ中の`rippled`サーバについての各種情報を、人間が読めるフォーマットでサーバにリクエストします。[Clioサーバ](../../../../concepts/networks-and-servers/the-clio-server.md)については、[`server_info` (Clio)](../clio-methods/server_info-clio.md)をご覧ください。 ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "server_info" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "server_info", @@ -34,17 +33,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: server_info rippled server_info ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#server_info) +[試してみる>](/resources/dev-tools/websocket-api-tool#server_info) リクエストにパラメーターは何も含まれません。 @@ -52,32 +52,21 @@ rippled server_info 処理が成功したレスポンスの例: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/server_info/ws-response.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/server_info/ws-response.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/server_info/jsonrpc-response.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* +{% tab label="コマンドライン" %} +{% code-snippet file="/_api-examples/server_info/jsonrpc-response.json" language="json" prefix="Loading: \"/etc/opt/ripple/rippled.cfg\"\n2023-Sep-13 22:19:39.404596100 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005\n\n" /%} +{% /tab %} -```json -200 OK - -{% include '_api-examples/server_info/jsonrpc-response.json' %} -``` - -*コマンドライン* - -```json -Loading: "/etc/opt/ripple/rippled.cfg" -2023-Sep-13 22:19:39.404596100 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 - -{% include '_api-examples/server_info/jsonrpc-response.json' %} -``` - - +{% /tabs %} レスポンスは[標準フォーマット][]に従い、結果が正常な場合`info`オブジェクトが唯一のフィールドとして含まれます。 @@ -85,37 +74,37 @@ Loading: "/etc/opt/ripple/rippled.cfg" | `Field` | 型 | 説明 | |:------------------------------------|:-----------|:-----------| -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](amendments.html#amendment-blocked)の状態です。サーバがAmendmentブロックの状態でない場合、このフィールドはレスポンスから省略されます。 | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)の状態です。サーバがAmendmentブロックの状態でない場合、このフィールドはレスポンスから省略されます。 | | `build_version` | 文字列 | 実行中の`rippled`のバージョン番号。 | | `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによってまだ検証されていない、最も最近更新を閉鎖したレジャーについての情報。最新の検証済みレジャーが使用可能な場合、このフィールドはレスポンスで省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | | `complete_ledgers` | 文字列 | ローカル`rippled`がデータベース内に有するレジャーのバージョンのシーケンス番号の範囲を示す表現。例えば、`24900901-24900984,24901116-24901158`のように、互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | | `hostid` | 文字列 | adminリクエストの場合、`rippled`インスタンスを実行するサーバのホスト名が返されます。それ以外のリクエストの場合、一意の4文字の単語が返されます。 | | `io_latency_ms` | 数値 | I/O処理の待ち時間(ミリ秒単位)。この数値がそれほど低くない場合、`rippled`サーバは深刻な負荷の問題を抱えている可能性があります。 | -| `jq_trans_overflow` | 文字列-数値 | このサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](capacity-planning.html)をご覧ください。 | +| `jq_trans_overflow` | 文字列-数値 | このサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](../../../../infrastructure/installation/capacity-planning.md)をご覧ください。 | | `last_close` | オブジェクト | サーバが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | | `last_close.converge_time_s` | 数値 | 直近で検証されたレジャーバージョンでコンセンサスに達するまでにかかった時間(秒)。 | | `last_close.proposers` | 数値 | 直近に検証されたレジャーバージョンのコンセンサスプロセスで、サーバが考慮した信頼できるバリデータの数(バリデータとして設定されている場合は自分自身を含む)。 | | `load` | オブジェクト | _(管理者のみ)_ サーバの現在の負荷状態についての詳細な情報。 | | `load.job_types` | 配列 | _(管理者のみ)_ サーバが実行している各種ジョブのレートや、各ジョブにかかる時間についての情報。 | | `load.threads` | 数値 | _(管理者のみ)_ サーバの主要なジョブプール内のスレッドの数。 | -| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](transaction-cost.html#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | +| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | | `load_factor_local` | 数値 | (省略される場合があります)このサーバに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | | `load_factor_net` | 数値 | (省略される場合があります)ネットワークのその他の部分で使用されている、[トランザクションコスト][]に適用される現在の乗数(他のサーバから報告された負荷値から推定します)。 | -| `load_factor_cluster` | 数値 | (省略される場合があります)[このクラスター](clustering.html)内のサーバに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | +| `load_factor_cluster` | 数値 | (省略される場合があります)[このクラスター](../../../../concepts/networks-and-servers/clustering.md)内のサーバに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | | `load_factor_fee_escalation` | 数値 | (省略される場合があります)オープンレジャーに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。 | | `load_factor_fee_queue` | 数値 | (省略される場合があります)キューが一杯になっている場合に、キューに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。 | -| `load_factor_server` | 数値 | (省略される場合があります)サーバが実施中の負荷係数。[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)は含まれません。 | +| `load_factor_server` | 数値 | (省略される場合があります)サーバが実施中の負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | | `peers` | 数値 | このサーバが現在接続している、他の`rippled`サーバの数。 | -| `ports` | 配列 | サーバがAPIコマンドを待ち受けているポートの一覧。配列の各エントリは[ポート記述子オブジェクト](#ポート記述子オブジェクト) となります。 [新規: rippled 1.12.0][] | -| `pubkey_node` | 文字列 | ピアツーピア通信の中でこのサーバを検証するために使用する公開鍵。この _ノードのキーペア_ は、サーバを初めて起動すると自動的に生成されます。(削除された場合、サーバは新たなキーペアを作成できます。)構成ファイルにて`[node_seed]`設定オプションを使用すると、永続値を設定できます。これは[クラスター化](clustering.html)に便利です。 | +| `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_validator` | 文字列 | _(管理者のみ)_ このノードがレジャーの検証の署名に使用する公開鍵。この _検証キーペア_ は、`[validator_token]`または`[validation_seed]`設定フィールドにて生成されます。 | -| `reporting` | オブジェクト | _([レポートモード](rippled-server-modes.html)サーバのみ)_ このサーバのレポートモード固有の設定に関する情報。 | -| `reporting.etl_sources` | 配列 | _([レポートモード](rippled-server-modes.html)サーバのみ)_ このレポートモードがデータを取得するP2Pモードサーバのリスト。この配列の各エントリは[ETLソースオブジェクト](#etlソースオブジェクト)です。 | -| `reporting.is_writer` | 真偽値 | _([レポートモード](rippled-server-modes.html)サーバのみ)_ `true`の場合、このサーバは外部データベースにレジャーデータを書き込んでいます。`false`の場合、他のレポートモードサーバが共有データベースにデータを書き込んでいるか、読み取り専用に設定されているため、現在は書き込んでいません。 | -| `reporting.last_publish_time` | 文字列 | _([レポートモード](rippled-server-modes.html)サーバのみ)_このサーバが最後に有効なレジャーを[サブスクリプションストリーム](subscribe.html)に公開した日時を示すISO 8601タイムスタンプ。 | -| `server_state` | 文字列 | サーバのネットワークへの参加の度合いを示す文字列。詳細は、[考えられるサーバの状態](rippled-server-states.html)を参照してください。 | +| `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_duration_us` | 数値 | サーバが現在の状態になってから経過したマイクロ秒数。 | -| `state_accounting` | オブジェクト | 各種[サーバ状態](rippled-server-states.html)のマップと、サーバが各状態に費やした時間についての情報。これは、サーバのネットワーク接続について長期的な健全性を追跡するのに便利です。 | +| `state_accounting` | オブジェクト | 各種[サーバ状態](../../api-conventions/rippled-server-states.md)のマップと、サーバが各状態に費やした時間についての情報。これは、サーバのネットワーク接続について長期的な健全性を追跡するのに便利です。 | | `state_accounting.*.duration_us` | 文字列 | サーバがこの状態になってから費やしたマイクロ秒数。(サーバが別の状態に移行するたびに更新されます。) | | `state_accounting.*.transitions` | 文字列 | サーバがこの状態に移行した回数。 | | `time` | 文字列 | サーバの時計によるUTCでの現在時刻。 | @@ -132,14 +121,12 @@ Loading: "/etc/opt/ripple/rippled.cfg" **注記:** `closed_ledger`フィールドがあり、`seq`の値が小さい(8桁未満)場合、`rippled`には現在、ピアツーピアネットワークから取得した検証済みレジャーのコピーがないことを表しています。これは、サーバが現在も同期中である可能性を示しています。接続速度とハードウェア仕様にもよりますが、通常はネットワークとの同期に約5分かかります。 -{% include '_snippets/etl-source-object.ja.md' %} +{% partial file="/_snippets/etl-source-object.md" /%} -{% include '_snippets/port-descriptor-object.ja.md' %} +{% partial file="/_snippets/port-descriptor-object.md" /%} ## 考えられるエラー * いずれかの[汎用エラータイプ][]。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md index d752ab8fce..f2c9ba7a25 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md @@ -14,19 +14,18 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, "command": "server_state" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "server_state", @@ -35,17 +34,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: server_state rippled server_state ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#server_state) +[試してみる>](/resources/dev-tools/websocket-api-tool#server_state) リクエストはパラメーターをとりません。 @@ -53,10 +53,9 @@ rippled server_state 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -121,9 +120,9 @@ rippled server_state "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -190,9 +189,9 @@ Headers } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/opt/ripple/rippled.cfg" 2020-Mar-24 01:30:08.646201720 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -260,8 +259,9 @@ Headers } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は、結果に唯一のフィールドとして`state`オブジェクトが含まれています。 @@ -269,35 +269,35 @@ Headers | `Field` | 型 | 説明 | |:---------------------------------|:-----------|:-----------------------| -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](amendments.html#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`になります。 | | `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによって検証されていない、最新の閉鎖済みレジャーに関する情報。最新の検証済みレジャーが使用可能な場合、レスポンスではこのフィールドは省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | | `io_latency_ms` | 数値 | I/O処理の待機に費やされた時間数(ミリ秒単位)。この数値が極端に低くない場合、`rippled`サーバーでは深刻な負荷の問題が発生している可能性があります。 | -| `jq_trans_overflow` | 文字列-数値 | Tこのサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](capacity-planning.html)をご覧ください | +| `jq_trans_overflow` | 文字列-数値 | Tこのサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](../../../../infrastructure/installation/capacity-planning.md)をご覧ください | | `last_close` | オブジェクト | サーバが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | | `last_close.converge_time` | 数値 | 直近で検証されたレジャーバージョンでコンセンサスに達するまでにかかった時間(ミリ秒)。 | | `last_close.proposers` | 数値 | 直近に検証されたレジャーバージョンのコンセンサスプロセスで、サーバが考慮した信頼できるバリデータの数(バリデータとして設定されている場合は自分自身を含む)。 | | `load` | オブジェクト | _(管理者専用)_ サーバの現在の負荷状態についての詳細な情報。 | | `load.job_types` | 配列 | _(管理者専用)_ サーバが実行している各種ジョブのレートや、各ジョブに要する時間についての情報。 | | `load.threads` | 数値 | _(管理者専用)_ サーバの主要なジョブプール内のスレッド数。 | -| `load_base` | 整数 | [トランザクションコスト](transaction-cost.html)の計算で使用されるサーバー負荷のベースライン量です。`load_factor`が`load_base`と同等の場合、基本トランザクションコストのみが適用されます。`load_factor`が`load_base`よりも大きい場合、トランザクションコストにそれらの値の比率が乗算されます。たとえば`load_factor`が`load_base`の2倍である場合、トランザクションコストは2倍になります。 | -| `load_factor` | 数値 | サーバーが現在適用している負荷係数。トランザクションコストの乗数は、この値と`load_base`の比率によって決まります。負荷係数は、個別サーバーの最も高い負荷係数、クラスターの負荷係数、[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)、およびネットワーク全体の負荷係数によって決定します。 | +| `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` | 数値 | (省略される場合があります)サーバーが適用している負荷係数。[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)は含まれません。 | +| `load_factor_server` | 数値 | (省略される場合があります)サーバーが適用している負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | | `peers` | 数値 | このサーバーが現在接続している他の`rippled`サーバーの数。 | -| `ports` | 配列 | サーバがAPIコマンドを待ち受けているポートの一覧。配列の各エントリは[ポート記述子オブジェクト](#ポート記述子オブジェクト) となります。 [新規: rippled 1.12.0][] | -| `pubkey_node` | 文字列 | ピアツーピア通信のためにこのサーバーを検証する際に使用される公開鍵。サーバーを初めて起動すると、サーバーにより _ノードキーペア_ が自動的に生成されます。(キーペアが削除されている場合、サーバーは新しいキーペアを作成できます。)`[node_seed]`構成オプションを使用して構成ファイルの永続値を設定できます。これは[クラスター化](clustering.html)で便利です。 | +| `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_validator` | 文字列 | _(管理者専用)_ このノードがレジャー検証の署名に使用する公開鍵。_検証キーペア_ は、`[validator_token]`構成フィールドまたは`[validation_seed]`構成フィールドから生成されます。 | -| `reporting` | オブジェクト | _([レポートモード](rippled-server-modes.html)サーバのみ)_ このサーバのレポートモード固有の設定に関する情報。 | -| `reporting.etl_sources` | 配列 | _([レポートモード](rippled-server-modes.html)サーバのみ)_ このレポートモードがデータを取得する P2P モードサーバのリスト。この配列の各エントリは[ETLソースオブジェクト](#etlソースオブジェクト)です。 | -| `reporting.is_writer` | 真偽値 | _([レポートモード](rippled-server-modes.html)サーバのみ)_ `true`の場合、このサーバは外部データベースにレジャーデータを書き込んでいます。`false`の場合、他のレポートモードサーバが共有データベースにデータを書き込んでいるか、読み取り専用に設定されているため、現在は書き込んでいません。 | -| `reporting.last_publish_time` | 文字列 | _([レポートモード](rippled-server-modes.html)サーバのみ)_このサーバが最後に有効なレジャーを[サブスクリプションストリーム](subscribe.html)に公開した日時を示すISO 8601タイムスタンプ。 | -| `server_state` | 文字列 | サーバーのネットワークへの参加度を示す文字列。詳細は、[考えられるサーバーの状態](rippled-server-states.html)をご覧ください。 | -| `server_state_duration_us` | 数値 | サーバが現在の状態になってから経過した連続マイクロ秒数。[新規: rippled 1.2.0][] | -| `state_accounting` | オブジェクト | 各種[サーバ状態](rippled-server-states.html)のマップと、サーバーが各状態に費やした時間についての情報。これは、サーバーのネットワーク接続性の健全性を長期的に追跡するのに便利です。 | +| `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_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.*.transitions` | 数値 | サーバがこの状態に移行した回数。 | | `time` | 文字列 | サーバの時計によるUTCでの現在時刻。 | @@ -312,14 +312,12 @@ Headers | `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバーがさらに検証をリクエストする場合があります。 | | `validator_list_expires` | 数値 | _(管理者専用)_ 現在のバリデータリストが期限切れになる時点([Rippleエポック以降の経過秒数][])。サーバーが発行済みのバリデータリストをロードしていない場合は0。 | -{% include '_snippets/etl-source-object.ja.md' %} +{% partial file="/_snippets/etl-source-object.md" /%} -{% include '_snippets/port-descriptor-object.ja.md' %} +{% partial file="/_snippets/port-descriptor-object.md" /%} ## 考えられるエラー * [汎用エラータイプ][]のすべて。 -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/index.md index 0f3ac78c1e..e91b042fd8 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/index.md @@ -1,8 +1,12 @@ --- html: subscription-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Subscriptionメソッド -以下のメソッドを使用して、さまざまなイベントが発生したときに更新情報をサーバーからクライアントにプッシュできるようになるため、即座に情報を取得することができます。WebSocket APIのみ対応しています。 \ No newline at end of file +以下のメソッドを使用して、さまざまなイベントが発生したときに更新情報をサーバーからクライアントにプッシュできるようになるため、即座に情報を取得することができます。WebSocket APIのみ対応しています。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md index 79a3443d19..fcdffc72a8 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md @@ -16,10 +16,9 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*アカウントのサブスクライブ* +{% tabs %} +{% tab label="アカウントのサブスクライブ" %} ```json { "id": "Example watch Bitstamp's hot wallet", @@ -27,9 +26,9 @@ labels: "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] } ``` +{% /tab %} -*オーダーブックのサブスクライブ* - +{% tab label="オーダーブックのサブスクライブ" %} ```json { "id": "Example subscribe to XRP/GateHub USD order book", @@ -48,9 +47,9 @@ labels: ] } ``` +{% /tab %} -*レジャーストリームのサブスクライブ* - +{% tab label="レジャーストリームのサブスクライブ" %} ```json { "id": "Example watch for new validated ledgers", @@ -58,10 +57,11 @@ labels: "streams": ["ledger"] } ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#subscribe) +[試してみる >](/resources/dev-tools/websocket-api-tool#subscribe) リクエストには以下のパラメーターが含まれます。 @@ -82,7 +82,7 @@ labels: * `server` - `rippled`サーバーのステータス(ネットワーク接続など)が変更されるたびにメッセージを送信します。 * `ledger` - コンセンサスプロセスで新しい検証済みレジャーが宣言されるたびにメッセージを送信します。 * `transactions` - 決済済みレジャーにトランザクションが追加されるたびにメッセージを送信します。 -* `transactions_proposed` - 決済済みレジャーにトランザクションが追加される場合や、検証済みレジャーにまだ追加されておらず、今後も追加される見込みのない一部のトランザクションが決済済みレジャーに追加される場合に、メッセージを送信します。提案されたすべてのトランザクションが検証前に表示されるわけではありません。**注記:** 検証済みレジャーには[失敗したトランザクションも記録されます](transaction-results.html)。これは、このようなトランザクションにはスパム対策のトランザクション手数料が課されるためです。 +* `transactions_proposed` - 決済済みレジャーにトランザクションが追加される場合や、検証済みレジャーにまだ追加されておらず、今後も追加される見込みのない一部のトランザクションが決済済みレジャーに追加される場合に、メッセージを送信します。提案されたすべてのトランザクションが検証前に表示されるわけではありません。**注記:** 検証済みレジャーには[失敗したトランザクションも記録されます](../../../protocol/transactions/transaction-results/transaction-results.md)。これは、このようなトランザクションにはスパム対策のトランザクション手数料が課されるためです。 * `validations` - サーバーがバリデータを信頼しているか否かにかかわらず、サーバーが検証メッセージを受信するたびに、メッセージを送信します。(個々の`rippled`は、サーバーが少なくとも定数の信頼できるバリデータから検証メッセージを受信した時点で、レジャーが検証済みであると宣言します。) * `consensus` - サーバーがコンセンサスサイクルのフェーズ(open、establish、acceptedなど)を変更するたびにメッセージを送信します。 * `peer_status` - **(管理者専用)** 接続しているピア`rippled`サーバーに関する情報(特にコンセンサスプロセスに関する情報)。 @@ -91,8 +91,8 @@ labels: | `Field` | 型 | 説明 | |:-------------|:--------|:----------------------------------------------------| -| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を[金額なしの通貨オブジェクト](currency-formats.html#金額なしでの通貨の指定)として指定します。 | -| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を[金額なしの通貨オブジェクト](currency-formats.html#金額なしでの通貨の指定)として指定します。 | +| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | +| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | | `taker` | 文字列 | オファーを表示するパースペクティブとして使用する一意のアカウントアドレス(XRP Ledgerの[base58][]フォーマット)。(これはオファーの資金提供ステータスと手数料に影響します。) | | `snapshot` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、更新の送信前にサブスクライブした時点でオーダーブックの現在の状態を一度返します。 | | `both` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、オーダーブックの両サイドを返します。 | @@ -101,10 +101,9 @@ labels: 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "Example watch Bitstamp's hot wallet", @@ -113,8 +112,9 @@ labels: "result": {} } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っています。レスポンスに含まれるフィールドは、リクエストに指定されたサブスクリプションに応じて異なります。 @@ -142,7 +142,7 @@ labels: ## レジャーストリーム -`ledger`ストリームは、[コンセンサスプロセス](consensus.html)で新しい検証済みレジャーが宣言されたときにのみ`ledgerClosed`メッセージを送信します。このメッセージはレジャーを識別し、そのレジャーの内容について何らかの情報を伝えます。 +`ledger`ストリームは、[コンセンサスプロセス](../../../../concepts/consensus-protocol/index.md)で新しい検証済みレジャーが宣言されたときにのみ`ledgerClosed`メッセージを送信します。このメッセージはレジャーを識別し、そのレジャーの内容について何らかの情報を伝えます。 ```json { @@ -164,20 +164,20 @@ labels: | `Field` | 型 | 説明 | |:--------------------|:--------------------------|:---------------------------| | `type` | 文字列 | `ledgerClosed`は、このメッセージがレジャーストリームからのものであることを示します。 | -| `fee_base` | 数値 | このレジャーバージョン時点の[Referenceトランザクションコスト](transaction-cost.html#referenceトランザクションコスト)([XRPのdrop数][])。このレジャーバージョンに[SetFee疑似トランザクション](setfee.html)が含まれている場合は、次のレジャーバージョンから新しいトランザクションコストが適用されます。 | -| `fee_ref` | 数値 | 「手数料単位」の[Referenceトランザクションコスト](transaction-cost.html#referenceトランザクションコスト)。 | +| `fee_base` | 数値 | このレジャーバージョン時点の[Referenceトランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)([XRPのdrop数][])。このレジャーバージョンに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が含まれている場合は、次のレジャーバージョンから新しいトランザクションコストが適用されます。 | +| `fee_ref` | 数値 | 「手数料単位」の[Referenceトランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)。 | | `ledger_hash` | 文字列 - [ハッシュ][] | 決済されたレジャーバージョンの識別用ハッシュ。 | | `ledger_index` | 数値 - [レジャーインデックス][] | 決済されたレジャーのレジャーインデックス。 | | `ledger_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | -| `reserve_base` | 数値 | アカウントの最低必要[準備金](reserves.html)([XRPのdrop数][])。このレジャーバージョンに[SetFee疑似トランザクション](setfee.html)が含まれる場合は、次のレジャーバージョンから新しい基本準備金が適用されます。 | -| `reserve_inc` | 数値 | アカウントがレジャーに所有しているオブジェクトごとの[所有者準備金](reserves.html#所有者準備金)([XRPのdrop数][])。レジャーに[SetFee疑似トランザクション](setfee.html)が記録されている場合、このレジャー以降は新しい所有者準備金が適用されます。 | +| `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` | 文字列 | _(省略される場合があります)_ サーバーで使用可能なレジャーの範囲。これは連続的ではない可能性があります。サーバーがネットワークに接続されていない場合や、サーバーが接続されていてもネットワークからレジャーをまだ取得していない場合は、このフィールドは返されません。 | ## 検証ストリーム -[新規: rippled 0.29.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}新規: rippled 0.29.0{% /badge %} 検証ストリームは、検証メッセージ(検証投票とも呼ばれる)を受信するたびにメッセージを送信します。検証メッセージが信頼できるバリデータからのものであるかどうかは関係ありません。次のようなメッセージを送信します。 @@ -211,18 +211,18 @@ labels: | `Field`         | 型        | 説明     | |:------------------------|:-----------------|:--------------------------------| | `type` | 文字列 | 値`validationReceived`は、このメッセージが検証ストリームからであることを示します。 | -| `amendments` | 文字列の配列 | (省略される場合があります)このサーバーがプロトコルへの追加を求める[Amendment](amendments.html)。[新規: rippled 0.32.0][] | -| `base_fee` | 整数 | (省略される場合があります)サーバーが[手数料投票](fee-voting.html)による設定を希望するスケーリングされていないトランザクションコスト(`reference_fee`値)。[新規: rippled 0.32.0][] | -| `flags` | 数値 | この検証メッセージに追加されるフラグのビットマスク。フラグ0x80000000は、検証の署名が完全に正規であることを示します。フラグ0x00000001は、完全な検証であることを示します。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。[新規: rippled 0.32.0][] | -| `full` | ブール値 | `true`の場合は、完全な検証です。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。[新規: rippled 0.32.0][] | +| `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` | 文字列 - 整数 | 提案されたレジャーの[レジャーインデックス][]。[新規: rippled 0.31.0][] | -| `load_fee` | 整数 | (省略される場合があります)このバリデータにより現在施行されているローカルの負荷スケーリングされたトランザクションコスト(手数料単位)。[新規: rippled 0.32.0][] | -| `master_key` | 文字列 | _(省略される場合があります)_ バリデータのマスター公開鍵(バリデータがXRP Ledgerの[base58][]フォーマットのバリデータトークンを使用している場合)。(関連項目: [`rippled`サーバーで検証を有効化](run-rippled-as-a-validator.html#3-rippledサーバーで検証を有効化)。)[新規: rippled 1.4.0][] | -| `reserve_base` | 整数 | (省略される場合があります)このバリデータが[手数料投票](fee-voting.html)による設定を希望する最低必要準備金(`account_reserve`値)。[新規: rippled 0.32.0][] | -| `reserve_inc` | 整数 | (省略される場合があります)このバリデータが[手数料投票](fee-voting.html)による設定を希望する必要準備金(`owner_reserve`値)の増分。[新規: rippled 0.32.0][] | +| `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 %} | +| `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` | 文字列 | バリデータがこのレジャーへの投票に署名するときに使用する署名。 | -| `signing_time` | 数値 | この検証投票が署名された時刻([Rippleエポック以降の経過秒数][])。[新規: rippled 0.32.0][] | +| `signing_time` | 数値 | この検証投票が署名された時刻([Rippleエポック以降の経過秒数][])。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | | `validation_public_key` | 文字列 | バリデータがメッセージの署名に使用したキーペアの公開鍵(XRP Ledgerの[base58][]形式)。このフィールドは、メッセージを送信するバリデータを特定します。また`signature`の検証にも使用できます。バリデータがトークンを使用している場合は一時的な公開鍵です。 | @@ -353,14 +353,14 @@ labels: | `Field`         | 型             | 説明       | |:------------------------|:--------------------------|:-----------------------| | `type` | 文字列 | `transaction`は、トランザクションの通知であることを示します。この通知はさまざまなストリームから送信される可能性があります。 | -| `engine_result` | 文字列 | 文字列の[トランザクション結果コード](transaction-results.html) | -| `engine_result_code` | 数値 | 数値の[トランザクションレスポンスコード](transaction-results.html)(該当する場合) | +| `engine_result` | 文字列 | 文字列の[トランザクション結果コード](../../../protocol/transactions/transaction-results/transaction-results.md) | +| `engine_result_code` | 数値 | 数値の[トランザクションレスポンスコード](../../../protocol/transactions/transaction-results/transaction-results.md)(該当する場合) | | `engine_result_message` | 文字列 | 人間が読み取れる形式のトランザクションレスポンスの説明 | -| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(未検証のトランザクションのみ)_ このトランザクションが現在提案されている現在進行中の[レジャーバージョン](ledgers.html)のレジャーインデックス。 | +| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(未検証のトランザクションのみ)_ このトランザクションが現在提案されている現在進行中の[レジャーバージョン](../../../../concepts/ledgers/index.md)のレジャーインデックス。 | | `ledger_hash` | 文字列 - [ハッシュ][] | _(検証済みのトランザクションのみ)_ このトランザクションを含む レジャーバージョンの識別用ハッシュ。 | | `ledger_index` | 数値 - [レジャーインデックス][] | _(検証済みのトランザクションのみ)_ このトランザクションを含むレジャーバージョンのレジャーインデックス。 | -| `meta` | オブジェクト | _(検証済みのトランザクションのみ)_ [トランザクションのメタデータ](transaction-metadata.html)。トランザクションの正確な結果を詳細に表示します。 | -| `transaction` | オブジェクト | JSONフォーマットの[トランザクションの定義](transaction-formats.html)。 | +| `meta` | オブジェクト | _(検証済みのトランザクションのみ)_ [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | +| `transaction` | オブジェクト | JSONフォーマットの[トランザクションの定義](../../../protocol/transactions/index.md)。 | | `validated` | ブール値 | `true`の場合、このトランザクションは検証済みのレジャーに含まれており、最終的な結果であることを意味します。`transaction`ストリームからのレスポンスは常に検証される必要があります。 | @@ -541,14 +541,14 @@ labels: | `Field`          | 値   | 説明       | |:--------------------------|:-------|:----------------------------------------| -| `transaction.owner_funds` | 文字列 | このOfferCreateトランザクションを送信する`Account`が、このトランザクション実行後に有する`TakerGets`通貨の金額。この通貨額が[凍結](freezes.html)されているかどうかはチェックされません。 | +| `transaction.owner_funds` | 文字列 | このOfferCreateトランザクションを送信する`Account`が、このトランザクション実行後に有する`TakerGets`通貨の金額。この通貨額が[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されているかどうかはチェックされません。 | ## コンセンサスストリーム -[新規: rippled 1.4.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} -`consensus`ストリームは、[コンセンサスプロセス](consensus.html)でフェーズが変更されると、`consensusPhase`メッセージを送信します。このメッセージには、サーバーで実行されているコンセンサスの新しいフェーズが含まれます。 +`consensus`ストリームは、[コンセンサスプロセス](../../../../concepts/consensus-protocol/index.md)でフェーズが変更されると、`consensusPhase`メッセージを送信します。このメッセージには、サーバーで実行されているコンセンサスの新しいフェーズが含まれます。 ```json { @@ -564,6 +564,4 @@ labels: | `type` | 文字列 | `consensusPhase`は、このメッセージがコンセンサスストリームからのものであることを示します。 | | `consensus` | 文字列 | サーバーで実行されている新しいコンセンサスフェーズ。値には、open、establish、acceptedなどがあります。 | - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md index 040b3effd7..65dba3a9ac 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md @@ -16,10 +16,9 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":"Unsubscribe a lot of stuff", @@ -41,10 +40,11 @@ labels: ] } ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#unsubscribe) +[試してみる >](/resources/dev-tools/websocket-api-tool#unsubscribe) このリクエストのパラメーターは、[subscribeメソッド][]のパラメーターとほぼ同様の方法で指定されますが、終了するサブスクリプションを定義するために使用される点が異なります。これらのパラメーターを以下に示します。 @@ -69,10 +69,9 @@ labels: 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":"Unsubscribe a lot of stuff", @@ -81,8 +80,9 @@ labels: "type":"response" } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果にフィールドが含まれません。 @@ -100,6 +100,4 @@ labels: * `dstIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 * `badMarket` - `books` フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/index.md index 27dd8f377b..0223449aaa 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/index.md @@ -1,8 +1,12 @@ --- html: transaction-methods.html # watch for clashes w/ this filename parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Transactionメソッド -トランザクションだけが、XRP Ledgerの共有されている状態を変更できます。XRP Ledgerに対するすべてのビジネスはトランザクションの形態をとります。以下のメソッドを使用して、トランザクションを処理します。 \ No newline at end of file +トランザクションだけが、XRP Ledgerの共有されている状態を変更できます。XRP Ledgerに対するすべてのビジネスはトランザクションの形態をとります。以下のメソッドを使用して、トランザクションを処理します。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md index 0cc03ce52c..ac4868360d 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md @@ -9,7 +9,7 @@ labels: # submit [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Submit.cpp "ソース") -`submit`メソッドは[トランザクション](transaction-formats.html)を適用し、トランザクションの確認と将来のレジャーへの記録が行われるように、ネットワークに送信します。 +`submit`メソッドは[トランザクション](../../../protocol/transactions/index.md)を適用し、トランザクションの確認と将来のレジャーへの記録が行われるように、ネットワークに送信します。 このコマンドには、以下の2つのモードがあります。 @@ -24,15 +24,14 @@ labels: | `Field` | 型 | 説明 | |:------------|:--------|:-----------------------------------------------------| -| `tx_blob` | 文字列 | 送信する署名済みトランザクションの16進表現。[マルチシグトランザクション](multi-signing.html)を送信することもできます。 | +| `tx_blob` | 文字列 | 送信する署名済みトランザクションの16進表現。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)を送信することもできます。 | | `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバーにも中継されません。 | ### リクエストのフォーマット - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -40,9 +39,9 @@ labels: "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "submit", @@ -53,24 +52,25 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: submit tx_blob submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754 ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#submit) +[試してみる>](/resources/dev-tools/websocket-api-tool#submit) ## 署名と送信モード -このモードでは、トランザクションに署名してただちに送信します。このモードは、テストで使用することを目的としています。[マルチシグトランザクション](multi-signing.html)には使用できません。 +このモードでは、トランザクションに署名してただちに送信します。このモードは、テストで使用することを目的としています。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)には使用できません。 - _デフォルトでは、署名と送信モードは[管理者専用](admin-api-methods.html)です。_ サーバーで[パブリック署名が有効になっている](enable-public-signing.html)場合は、パブリックメソッドとして使用できます。 + _デフォルトでは、署名と送信モードは[管理者専用](../../admin-api-methods/index.md)です。_ サーバーで[パブリック署名が有効になっている](../../../../infrastructure/configuration/enable-public-signing.md)場合は、パブリックメソッドとして使用できます。 トランザクションの署名に使用するシークレットキーは、以下の方法で提供できます。 @@ -81,7 +81,7 @@ submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534 | `Field` | 型 | 説明 | |:---------------|:--------|:--------------------------------------------------| -| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](transaction-formats.html)。自動入力可能なフィールドについては、省略することも可能です。 | +| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md)。自動入力可能なフィールドについては、省略することも可能です。 | | `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`と同時に使用することはできません。 | @@ -91,17 +91,16 @@ submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534 | `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | | `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。トランザクションがXRP間の直接移動である場合は、このフィールドを省略してください。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | | `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)`Fee`パラメーターを省略する場合は、自動的に提供される`Fee`値が長期の基本トランザクションコストとこの値の積以下になるよう、このフィールドで制限します。 | -| `fee_div_max` | 整数 | (省略可。デフォルトは1)`fee_mult_max`と併用して、制限に使用される分数の乗数を作成します。具体的には、サーバーは基本[トランザクションコスト](transaction-cost.html)を`fee_mult_max`で乗算した後、この値で除算して上限値(整数値に丸められます)を割り出します。自動的に提供される`Fee`値が上限値を超えている場合、submitコマンドは失敗します。[新規: rippled 0.30.1][] | +| `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メソッド][]を参照してください。 ### リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -121,9 +120,9 @@ submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534 "fee_mult_max": 1000 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "submit", @@ -146,26 +145,26 @@ submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534 ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: submit secret json [offline] rippled submit s████████████████████████████ '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Amount": { "currency": "USD", "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "value": "1" }, "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "TransactionType": "Payment", "Fee": "10000"}' ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#submit) +[試してみる>](/resources/dev-tools/websocket-api-tool#submit) ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -195,9 +194,9 @@ rippled submit s█████████████████████ } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -225,9 +224,9 @@ rippled submit s█████████████████████ } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -258,8 +257,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 @@ -271,7 +271,7 @@ Connecting to 127.0.0.1:5005 | `tx_blob` | 文字列 | トランザクション全体の16進文字列表現 | | `tx_json` | オブジェクト | トランザクション全体のJSON表現 | -**注意:** WebSocketのレスポンスに`"status":"success"`が含まれていても、これはコマンドが正常に受け付けられたことを示すものであり、トランザクションが正常に実行されたことを示しているわけでは _ありません_ 。トランザクションは、さまざまな状況で正常に処理されない可能性があります。例えば、ペイメントの2つのアカウントを接続するトラストラインの欠落や、トランザクション生成後のレジャーの状態の変化などです。問題が特にない場合も、トランザクションが含まれているバージョンのレジャーを閉鎖し検証するまでに数秒かかることがあります。詳細は、[トランザクションのレスポンスの完全なリスト](transaction-results.html)を参照してください。トランザクションの結果は、検証済みバージョンのレジャーにトランザクションが表示されるまで、最終的なものと考えないでください。 +**注意:** WebSocketのレスポンスに`"status":"success"`が含まれていても、これはコマンドが正常に受け付けられたことを示すものであり、トランザクションが正常に実行されたことを示しているわけでは _ありません_ 。トランザクションは、さまざまな状況で正常に処理されない可能性があります。例えば、ペイメントの2つのアカウントを接続するトラストラインの欠落や、トランザクション生成後のレジャーの状態の変化などです。問題が特にない場合も、トランザクションが含まれているバージョンのレジャーを閉鎖し検証するまでに数秒かかることがあります。詳細は、[トランザクションのレスポンスの完全なリスト](../../../protocol/transactions/transaction-results/transaction-results.md)を参照してください。トランザクションの結果は、検証済みバージョンのレジャーにトランザクションが表示されるまで、最終的なものと考えないでください。 **注意:** このコマンドの結果としてエラーメッセージが表示された場合、リクエストから取得されたシークレットキーがメッセージの中に記述されている可能性があります。(リクエストに含まれているものが署名済みのtx_blobである場合は問題ありません)。これらのエラーが他者から見えない状態であることを確認してください。 @@ -283,7 +283,7 @@ Connecting to 127.0.0.1:5005 ## 考えられるエラー * いずれかの[汎用エラータイプ][]。 -* `amendmentBlocked` - `rippled`サーバーでの[修正がブロックされている](amendments.html#amendment-blocked)ため、トランザクションをネットワークに送信できません。 +* `amendmentBlocked` - `rippled`サーバーでの[修正がブロックされている](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)ため、トランザクションをネットワークに送信できません。 * `highFee` - `fee_mult_max`パラメーターが指定されましたが、サーバーの現在の手数料の乗数が指定値を超えています(署名と送信モードのみ)。 * `internalJson` - トランザクションをJSONへとシリアル化するときに、内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 * `internalSubmit` - トランザクションを送信するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 @@ -293,6 +293,4 @@ Connecting to 127.0.0.1:5005 * `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。(署名と送信モードのみ)。 * `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。(署名と送信モードのみ)。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md index f3dc7cff2e..2de5d6382e 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md @@ -8,17 +8,16 @@ labels: # submit_multisigned [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/SubmitMultiSigned.cpp "Source") -`submit_multisigned`コマンドは[マルチシグ](multi-signing.html)トランザクションを適用し、このトランザクションをネットワークに送信して、今後のレジャーに追加します。([`submit`コマンドを送信専用モードで](submit.html#送信専用モード)使用して、マルチシグトランザクションをバイナリー形式で送信することもできます。) +`submit_multisigned`コマンドは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションを適用し、このトランザクションをネットワークに送信して、今後のレジャーに追加します。([`submit`コマンドを送信専用モードで](submit.md#送信専用モード)使用して、マルチシグトランザクションをバイナリー形式で送信することもできます。) -このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] +このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "submit_multisigned_example", @@ -52,9 +51,9 @@ labels: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "submit_multisigned", @@ -94,9 +93,9 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: submit_multisigned rippled submit_multisigned '{ @@ -130,24 +129,24 @@ rippled submit_multisigned '{ "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" }' ``` +{% /tab %} - +{% /tabs %} リクエストには以下のパラメーターが含まれます。 | `Field` | 型 | 説明 | |:------------|:--------|:-----------------------------------------------------| -| `tx_json` | オブジェクト | `Signers`からなる配列が指定された[JSONフォーマットのトランザクション](transaction-formats.html)。成功させるには、署名の重みが[SignerList](signerlist.html)の定数以上でなければなりません。 | +| `tx_json` | オブジェクト | `Signers`からなる配列が指定された[JSONフォーマットのトランザクション](../../../protocol/transactions/index.md)。成功させるには、署名の重みが[SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)の定数以上でなければなりません。 | | `fail_hard` | ブール値 | (省略可、デフォルトではfalseです)trueで、かつトランザクションがローカルで失敗する場合は、このトランザクションの再試行や、他のサーバーへのリレーは行わないでください。 | ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "submit_multisigned_example", @@ -191,9 +190,9 @@ rippled submit_multisigned '{ } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -237,8 +236,9 @@ rippled submit_multisigned '{ } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -247,8 +247,8 @@ rippled submit_multisigned '{ | `engine_result` | 文字列 | 以下は、トランザクションの暫定的な結果を示すコードの例です。 `tesSUCCESS` | | `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | | `engine_result_message` | 文字列 | 人間が読み取れる形式の暫定的なトランザクション結果の説明 | -| `tx_blob` | 文字列 | [トランザクション](transaction-formats.html)全体の16進文字列表現 | -| `tx_json` | オブジェクト | [トランザクション](transaction-formats.html)全体のJSON表現 | +| `tx_blob` | 文字列 | [トランザクション](../../../protocol/transactions/index.md)全体の16進文字列表現 | +| `tx_json` | オブジェクト | [トランザクション](../../../protocol/transactions/index.md)全体のJSON表現 | ## 考えられるエラー @@ -257,6 +257,4 @@ rippled submit_multisigned '{ * `srcActMalformed` - `tx_json`の`Account`フィールドが無効または欠落していました。 * `internal` - 内部エラーが発生しました。これには、指定されているトランザクションJSONに対して署名が無効な場合も含まれます。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md index 2a1fdcacb8..2c203dc6e3 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md @@ -14,10 +14,9 @@ labels: リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 4, @@ -26,9 +25,9 @@ labels: "ledger_index": 348734 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "transaction_entry", @@ -40,17 +39,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: transaction_entry transaction_hash ledger_index|ledger_hash rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 348734 ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#transaction_entry) +[試してみる >](/resources/dev-tools/websocket-api-tool#transaction_entry) リクエストには以下のパラメーターが含まれます。 @@ -66,10 +66,9 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 4, @@ -197,8 +196,9 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA "type": "response" } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 @@ -206,8 +206,8 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA |:---------------|:--------------------------|:--------------------------------| | `ledger_index` | 数値 - [レジャーインデックス][] | トランザクションが検出されたレジャーバージョンのレジャーインデックス。これはリクエストのレジャーインデックスと同じです。 | | `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ トランザクションが検出されたレジャーバージョンの識別用ハッシュ。これはリクエストのハッシュと同じです。 | -| `metadata` | オブジェクト | [トランザクションのメタデータ](transaction-metadata.html)。トランザクションの正確な結果を詳細に表示します。 | -| `tx_json` | オブジェクト | [Transactionオブジェクト](transaction-formats.html)のJSON表現。 | +| `metadata` | オブジェクト | [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | +| `tx_json` | オブジェクト | [Transactionオブジェクト](../../../protocol/transactions/index.md)のJSON表現。 | サーバーがトランザクションの検出に失敗する原因として、次のようなものが考えられます。 @@ -223,6 +223,4 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA * `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 * `transactionNotFound` - リクエストに指定されているトランザクションが指定のレジャーで見つかりませんでした。(トランザクションが異なるレジャーバージョンにあるか、またはトランザクションがまったく使用できない可能性があります。) - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md index ac32ee8663..c542de10b0 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md @@ -15,10 +15,9 @@ labels: リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -27,8 +26,9 @@ labels: "binary": false } ``` -*JSON-RPC* +{% /tab %} +{% tab label="JSON-RPC" %} ```json { "method": "tx", @@ -40,16 +40,18 @@ labels: ] } ``` -*コマンドライン* +{% /tab %} +{% tab label="コマンドライン" %} ```sh #Syntax: tx transaction [binary] rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 false ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#tx) +[試してみる>](/resources/dev-tools/websocket-api-tool#tx) リクエストには以下のパラメーターが含まれます。 @@ -62,10 +64,9 @@ rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 fals 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -191,10 +192,11 @@ rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 fals "type": "response" } ``` +{% /tab %} - +{% /tabs %} -このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に[Transactionオブジェクト](transaction-formats.html)フィールドと以下の追加のフィールドが含まれています。 +このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に[Transactionオブジェクト](../../../protocol/transactions/index.md)フィールドと以下の追加のフィールドが含まれています。 | `Field` | 型 | 説明 | |:---------------|:-----------------|:-----------------------------------------| @@ -203,7 +205,7 @@ rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 fals | `ledger_index` | 符号なし整数 | このトランザクションが記録されているレジャーのシーケンス番号。 | | `meta` | オブジェクト | トランザクションに関する各種メタデータ。 | | `validated` | ブール値 | このデータが検証済みレジャーバージョンのデータである場合はtrue。省略されている場合またはfalseに設定されている場合は、このデータは最終データではありません。 | -| (各種) | (各種) | [Transactionオブジェクト](transaction-formats.html)のその他のフィールド | +| (各種) | (各種) | [Transactionオブジェクト](../../../protocol/transactions/index.md)のその他のフィールド | ## 考えられるエラー @@ -211,6 +213,4 @@ rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 fals * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `txnNotFound` - トランザクションが存在しないか、または`rippled`で使用できない古いレジャーバージョンのトランザクションです。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md index f1bf050496..2a36f13276 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md @@ -13,10 +13,9 @@ blurb: 直近に作成されたトランザクションの一部を取得しま ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 5, @@ -24,9 +23,9 @@ blurb: 直近に作成されたトランザクションの一部を取得しま "start": 0 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "tx_history", @@ -37,17 +36,18 @@ blurb: 直近に作成されたトランザクションの一部を取得しま ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: tx_history [start] rippled tx_history 0 ``` +{% /tab %} - +{% /tabs %} -[試してみる>](websocket-api-tool.html#tx_history) +[試してみる>](/resources/dev-tools/websocket-api-tool#tx_history) リクエストには以下のパラメーターが含まれます。 @@ -59,10 +59,9 @@ rippled tx_history 0 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -513,9 +512,9 @@ rippled tx_history 0 } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -881,8 +880,9 @@ rippled tx_history 0 } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -891,7 +891,7 @@ rippled tx_history 0 | `index` | 符号なし整数 | リクエストに使用されている`start`の値。 | | `txs` | 配列 | トランザクションオブジェクトの配列。 | -各トランザクションオブジェクトに含まれているフィールドは、トランザクションのタイプに応じて多少異なります。詳細は、[トランザクションのフォーマット](transaction-formats.html)を参照してください。 +各トランザクションオブジェクトに含まれているフィールドは、トランザクションのタイプに応じて多少異なります。詳細は、[トランザクションのフォーマット](../../../protocol/transactions/index.md)を参照してください。 ## 考えられるエラー @@ -899,6 +899,4 @@ rippled tx_history 0 * `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 * `noPermission` - `start`フィールドに指定されている値が10000を超えていますが、サーバーに管理者として接続していません。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/index.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/index.md index 456fb23f5e..497950b902 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/index.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/index.md @@ -1,8 +1,12 @@ --- html: utility-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # ユーティリティメソッド -以下のメソッドを使用して、Pingや乱数生成などの便利な処理を行うことができます。 \ No newline at end of file +以下のメソッドを使用して、Pingや乱数生成などの便利な処理を行うことができます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/json.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/json.md index 1b500b805b..0878dc2201 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/json.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/json.md @@ -12,25 +12,24 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*コマンドライン* +{% tabs %} +{% tab label="コマンドライン" %} ```sh # Syntax: json method json_stanza rippled -q json ledger_closed '{}' ``` +{% /tab %} - +{% /tabs %} ## レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result" :{ @@ -40,11 +39,10 @@ rippled -q json ledger_closed '{}' } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、実行されたコマンドのタイプに対して適切なフィールドが含まれています。 - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/ping.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/ping.md index 82c55c05af..cc1c3dc9da 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/ping.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/ping.md @@ -13,19 +13,18 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, "command":"ping" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"ping", @@ -34,17 +33,18 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: ping rippled ping ``` +{% /tab %} - +{% /tabs %} -[試してみる >](websocket-api-tool.html#ping) +[試してみる >](/resources/dev-tools/websocket-api-tool#ping) リクエストにはパラメーターが含まれていません。 @@ -52,10 +52,9 @@ rippled ping 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, @@ -64,9 +63,9 @@ rippled ping "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -76,8 +75,9 @@ rippled ping } } ``` +{% /tab %} - +{% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果にフィールドが含まれません。クライアントはリクエストからレスポンスまでのラウンドトリップ時間を遅延として測定できます。 @@ -85,7 +85,4 @@ rippled ping * [汎用エラータイプ][]のすべて。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/random.md b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/random.md index aea94b1306..dbebc1fc23 100644 --- a/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/random.md +++ b/content/@i18n/ja/references/http-websocket-apis/public-api-methods/utility-methods/random.md @@ -13,19 +13,18 @@ labels: ## リクエストのフォーマット リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, "command":"random" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"random", @@ -34,15 +33,16 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: random rippled random ``` +{% /tab %} - +{% /tabs %} リクエストにはパラメーターが含まれていません。 @@ -50,10 +50,9 @@ rippled random 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":1, @@ -64,9 +63,9 @@ rippled random "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -77,8 +76,9 @@ rippled random } } ``` +{% /tab %} - +{% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 @@ -91,7 +91,4 @@ rippled random * [汎用エラータイプ][]のすべて。 * `internal` - 乱数生成機能に関連している可能性がある内部エラーが発生しました。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/binary-format.md b/content/@i18n/ja/references/protocol/binary-format.md index 1a38a458d8..f27e1410c6 100644 --- a/content/@i18n/ja/references/protocol/binary-format.md +++ b/content/@i18n/ja/references/protocol/binary-format.md @@ -16,15 +16,15 @@ curated_anchors: # バイナリフォーマット [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source") -このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、[サーバー間のピアツーピア通信](peer-protocol.html)を含む他の用途にも使用されます。通常、[`rippled` API](http-websocket-apis.html)は、JSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。 +このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、[サーバー間のピアツーピア通信](../../concepts/networks-and-servers/peer-protocol.md)を含む他の用途にも使用されます。通常、[`rippled` API](../http-websocket-apis/index.md)は、JSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。 トランザクションをJSONまたはその他の表現から正規バイナリフォーマットへシリアル化するプロセスのステップを、以下にまとめます。 -1. すべての必須フィールドが指定されていること(必須の[「自動入力可能」フィールド](transaction-common-fields.html#自動入力可能なフィールド)を含む)を確認します。 +1. すべての必須フィールドが指定されていること(必須の[「自動入力可能」フィールド](transactions/common-fields.md#自動入力可能なフィールド)を含む)を確認します。 - [トランザクションフォーマットリファレンス](transaction-formats.html)に、XRP Ledgerトランザクションの必須フィールドと省略可能なフィールドが定義されています。 + [トランザクションフォーマットリファレンス](transactions/index.md)に、XRP Ledgerトランザクションの必須フィールドと省略可能なフィールドが定義されています。 - **注記:** `SigningPubKey`もこのステップで指定する必要があります。署名の際に、署名用に指定された秘密鍵から[このキーを導出](cryptographic-keys.html#鍵導出)できます。 + **注記:** `SigningPubKey`もこのステップで指定する必要があります。署名の際に、署名用に指定された秘密鍵から[このキーを導出](../../concepts/accounts/cryptographic-keys.md#鍵導出)できます。 2. 各フィールドのデータを[「内部」バイナリフォーマット](#内部フォーマット)に変換します。 @@ -36,7 +36,7 @@ curated_anchors: その結果、ECDSA(secp256k1楕円曲線を使用)やEd25519などの既知の署名アルゴリズムを使用して署名できるバイナリBlobが1つ作成されます。XRP Ledgerのために、適切なプレフィクス(シングル署名の場合は`0x53545800`、マルシグの場合は`0x534D5400`)を使用してデータを[ハッシュ化][ハッシュ]する必要があります。署名後に、指定されている`TxnSignature`フィールドを使用してトランザクションを再度シリアル化する必要があります。 -**注記:** XRP Ledgerでは、[レジャーオブジェクト](ledger-object-types.html)や処理済みのトランザクションなど他のタイプのデータを表す場合にも同じシリアル化フォーマットが使用されます。ただし、署名されるトランザクションに追加するのに適切なフィールドは限られています。(たとえば署名自体が指定されている`TxnSignature`フィールドは、署名するバイナリBlobに含まれていてはなりません。)このように、「署名」フィールドとされてオブジェクトに署名するときにオブジェクトに含まれるフィールドもあれば、「非署名」とされてオブジェクトに含まれないフィールドもあります。 +**注記:** XRP Ledgerでは、[レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)や処理済みのトランザクションなど他のタイプのデータを表す場合にも同じシリアル化フォーマットが使用されます。ただし、署名されるトランザクションに追加するのに適切なフィールドは限られています。(たとえば署名自体が指定されている`TxnSignature`フィールドは、署名するバイナリBlobに含まれていてはなりません。)このように、「署名」フィールドとされてオブジェクトに署名するときにオブジェクトに含まれるフィールドもあれば、「非署名」とされてオブジェクトに含まれないフィールドもあります。 ### 例 @@ -44,15 +44,11 @@ curated_anchors: **JSON:** -```json -{% include '_code-samples/tx-serialization/py/test-cases/tx1.json' %} -``` +{% code-snippet file="/_code-samples/tx-serialization/py/test-cases/tx1.json" language="json" /%} **バイナリ(16進数として表現):** -```text -{% include '_code-samples/tx-serialization/py/test-cases/tx1-binary.txt' %} -``` +{% code-snippet file="/_code-samples/tx-serialization/py/test-cases/tx1-binary.txt" language="text" /%} ## サンプルコード @@ -60,7 +56,7 @@ curated_anchors: - C++: [`rippled`コードベース](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp) - JavaScript: [`ripple-binary-codec`](https://github.com/ripple/ripple-binary-codec/)パッケージ -- Python 3: [このリポジトリのコードサンプルセクション]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/tx-serialization/) +- Python 3: {% repo-link path="content/_code-samples/tx-serialization/" %}このリポジトリのコードサンプルセクション{% /repo-link %} これらのすべての実装には、一般利用が可能なオープンソースライセンスが提供されているので、学習のためにドキュメントと合わせて使用するだけでなく、必要に応じてコードをインポート、使用、または変更することができます。 @@ -68,9 +64,9 @@ curated_anchors: ## 内部フォーマット -各フィールドには「内部」バイナリフォーマットがあります。このフォーマットは、`rippled`ソースコードで署名時に(およびその他のほとんどの場合に)そのフィールドを表示するのに使用されます。すべてのフィールドの内部フォーマットは、[`SField.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/SField.cpp)のソースコードに定義されています。(このフィールドには、トランザクションフィールド以外のフィールドも含まれています。)[トランザクションフォーマットリファレンス](transaction-formats.html)にも、すべてのトランザクションフィールドの内部フォーマットが記載されています。 +各フィールドには「内部」バイナリフォーマットがあります。このフォーマットは、`rippled`ソースコードで署名時に(およびその他のほとんどの場合に)そのフィールドを表示するのに使用されます。すべてのフィールドの内部フォーマットは、[`SField.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/SField.cpp)のソースコードに定義されています。(このフィールドには、トランザクションフィールド以外のフィールドも含まれています。)[トランザクションフォーマットリファレンス](transactions/index.md)にも、すべてのトランザクションフィールドの内部フォーマットが記載されています。 -たとえば`Flags`[共通トランザクションフィールド](transaction-common-fields.html)はUInt32(32ビット符号なし整数)になります。 +たとえば`Flags`[共通トランザクションフィールド](transactions/common-fields.md)はUInt32(32ビット符号なし整数)になります。 ### 定義ファイル @@ -83,10 +79,10 @@ curated_anchors: | フィールド | 内容 | |:----------------------|:-----------------------------------------------------| | `TYPES` | フィールドIDの作成と正規順序でのフィールドのソートのためのデータタイプからその[「タイプコード」](#タイプコード)へのマップ。1未満のコードは実際のデータには含まれません。10000を超えるコードは、他のオブジェクト内部ではシリアル化できない「トランザクション」などの特殊な「上位」オブジェクトタイプを表します。各タイプのシリアル化方法についての詳細は、[タイプリスト](#タイプリスト)を参照してください。 | -| `LEDGER_ENTRY_TYPES` | [レジャーオブジェクト](ledger-object-types.html)から対応するデータタイプへのマップ。これはレジャー状態データと、処理されたトランザクションの[メタデータ](transaction-metadata.html)の「affected nodes」セクションに含まれます。 | +| `LEDGER_ENTRY_TYPES` | [レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)から対応するデータタイプへのマップ。これはレジャー状態データと、処理されたトランザクションの[メタデータ](transactions/metadata.md)の「affected nodes」セクションに含まれます。 | | `FIELDS` | トランザクション、レジャーオブジェクト、あるいはその他のデータに含まれる可能性があるすべてのフィールドを表すタプルからなるソート済み配列。各タプルの1番目のメンバーはフィールドの文字列名であり、2番目のメンバーはそのフィールドのプロパティーが含まれているオブジェクトです。(これらのフィールドの定義については、以下の「フィールドプロパティー」の表を参照してください。) | -| `TRANSACTION_RESULTS` | [トランザクション結果コード](transaction-results.html)から対応する数値へのマップ。レジャーに含まれない結果タイプにはマイナスの値が含まれています。`tesSUCCESS`に数値0が含まれています。[`tec`クラスコード](tec-codes.html)は、レジャーに含まれている失敗を示しています。 | -| `TRANSACTION_TYPES` | [トランザクションのタイプ](transaction-types.html)から対応する数値へのマップ。 | +| `TRANSACTION_RESULTS` | [トランザクション結果コード](transactions/transaction-results/transaction-results.md)から対応する数値へのマップ。レジャーに含まれない結果タイプにはマイナスの値が含まれています。`tesSUCCESS`に数値0が含まれています。[`tec`クラスコード](transactions/transaction-results/tec-codes.md)は、レジャーに含まれている失敗を示しています。 | +| `TRANSACTION_TYPES` | [トランザクションのタイプ](transactions/types/index.md)から対応する数値へのマップ。 | 署名と送信のためにトランザクションをシリアル化するという目的から、`FIELDS`、`TYPES`、および`TRANSACTION_TYPES`フィールドが必要です。 @@ -109,8 +105,8 @@ curated_anchors: | | タイプコード < 16 | タイプコード >= 16 | |:-----------------|:------------------------------------------------------------------------------|:--| -| **フィールドコード < 16** | ![1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。](img/field-id-common-type-common-field.ja.png) | ![2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。](img/field-id-uncommon-type-common-field.ja.png) | -| **フィールドコード >= 16** | ![2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。](img/field-id-common-type-uncommon-field.ja.png )| ![3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。](img/field-id-uncommon-type-uncommon-field.ja.png) | +| **フィールドコード < 16** | ![1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。](/img/field-id-common-type-common-field.ja.png) | ![2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。](/img/field-id-uncommon-type-common-field.ja.png) | +| **フィールドコード >= 16** | ![2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。](/img/field-id-common-type-uncommon-field.ja.png )| ![3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。](/img/field-id-uncommon-type-uncommon-field.ja.png) | デコードの際には、**1番目のバイト**のどのビットがゼロであるかによって、フィールドIDのバイト数を把握できます。これは、上記の表の例に対応しています。 @@ -133,11 +129,15 @@ curated_anchors: - フィールドに193~12480バイトのデータが含まれている場合、最初の2バイトは以下の式で算出されるフィールドの長さを示します。 - 193 + ((byte1 - 193) * 256) + byte2 + ``` + 193 + ((byte1 - 193) * 256) + byte2 + ``` - フィールドに12481~918744バイトのデータが含まれている場合、最初の3バイトは以下の式で算出されるフィールドの長さを示します。 - 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 + ``` + 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 + ``` - 長さプレフィクスが付加されているフィールドに格納できる最大データは918744バイトです。 @@ -176,14 +176,14 @@ curated_anchors: | タイプ名 | タイプコード | ビット長 | [長さプレフィクスを付加する]? | 説明 | |:--------------|:----------|:-----------|:-------------------|----------------| -| [AccountID][] | 8 | 160 | はい | [アカウント](accounts.html)の一意のID。 | +| [AccountID][] | 8 | 160 | はい | [アカウント](../../concepts/accounts/accounts.md)の一意のID。 | | [Amount][] | 6 | 64または384 | いいえ | XRPまたはトークンの金額。フィールドの長さは、XRPの場合は64ビット、トークンの場合は384ビット(64+160+160)です。 | | [Blob][] | 7 | 可変 | はい | 任意のバイナリデータ。このようなフィールドの中で重要なフィールドとして、`TxnSignature`(トランザクションを承認する署名)があります。 | | [Hash128][] | 4 | 128 | いいえ | 128ビットの任意のバイナリ値。該当する唯一のフィールドは`EmailHash`です。これは、[Gravatar](https://www.gravatar.com/)を取得する目的でアカウント所有者のメールのMD-5ハッシュを保管するフィールドです。 | | [Hash160][] | 17 | 160 | いいえ | 160ビットの任意のバイナリ値。これにより通貨コードまたはイシュアーが定義されます。 | | [Hash256][] | 5 | 256 | いいえ | 256ビットの任意のバイナリ値。これは通常、トランザクション、レジャーバージョン、またはレジャーデータオブジェクトの「SHA-512ハーフ」ハッシュを表します。 | -| [PathSet][] | 18 | 可変 | いいえ | [クロスカレンシー支払い](cross-currency-payments.html)の有効な[ペイメントパス](paths.html)のセット。 | -| [STArray][] | 15 | 可変 | いいえ | 可変数のメンバーからなる配列。フィールドによってタイプが異なる場合があります。この例として、[memos](transaction-common-fields.html#memosフィールド)や[マルチ署名](multi-signing.html)で使用される署名者のリストがあります。 | +| [PathSet][] | 18 | 可変 | いいえ | [クロスカレンシー支払い](../../concepts/payment-types/cross-currency-payments.md)の有効な[ペイメントパス](../../concepts/tokens/fungible-tokens/paths.md)のセット。 | +| [STArray][] | 15 | 可変 | いいえ | 可変数のメンバーからなる配列。フィールドによってタイプが異なる場合があります。この例として、[memos](transactions/common-fields.md#memosフィールド)や[マルチ署名](../../concepts/accounts/multi-signing.md)で使用される署名者のリストがあります。 | | [STIssue][] | 24 | 160 or 320 | いいえ | 数量を含まない、資産(XRPまたはトークン)を指定します。 | | [STObject][] | 14 | 可変 | いいえ | 1つ以上のネストされたフィールドを含むオブジェクト。 | | [UInt8][] | 16 | 8 | いいえ | 8ビットの符号なし整数。 | @@ -194,22 +194,22 @@ curated_anchors: [長さプレフィクスを付加する]: #長さプレフィクスを付加する -上記のフィールドタイプの他に、[レジャーオブジェクト](ledger-object-types.html)や[トランザクションメタデータ](transaction-metadata.html)などのコンテキストでは以下のタイプが含まれることがあります。 +上記のフィールドタイプの他に、[レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)や[トランザクションメタデータ](transactions/metadata.md)などのコンテキストでは以下のタイプが含まれることがあります。 | タイプ名 | タイプコード | [長さプレフィクスを付加する]? | 説明 | |:------------|:----------|:-------------------|:------------------------------| -| Transaction | 10001 | いいえ | [トランザクション](transaction-formats.html)全体を含む「上位」タイプ。 | -| LedgerEntry | 10002 | いいえ | [レジャーオブジェクト](ledger-object-types.html)全体を含む「上位」タイプ。 | -| Validation | 10003 | いいえ | ピアツーピア通信で[コンセンサスプロセス](consensus.html)の検証投票を表すために使用される「上位」タイプ。 | -| Metadata | 10004 | いいえ | [1つのトランザクションのメタデータ](transaction-metadata.html)を含む「上位」タイプ。 | +| Transaction | 10001 | いいえ | [トランザクション](transactions/index.md)全体を含む「上位」タイプ。 | +| LedgerEntry | 10002 | いいえ | [レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)全体を含む「上位」タイプ。 | +| Validation | 10003 | いいえ | ピアツーピア通信で[コンセンサスプロセス](../../concepts/consensus-protocol/index.md)の検証投票を表すために使用される「上位」タイプ。 | +| Metadata | 10004 | いいえ | [1つのトランザクションのメタデータ](transactions/metadata.md)を含む「上位」タイプ。 | | [UInt64][] | 3 | いいえ | 64ビットの符号なし整数。このタイプはトランザクションの指示には含まれませんが、さまざまなレジャーオブジェクトでこのタイプのフィールドが使用されます。 | -| Vector256 | 19 | はい | このタイプはトランザクションの指示には含まれませんが、[Amendmentレジャーオブジェクト](amendments-object.html)の`Amendments`フィールドでは、現在有効な[Amendment](amendments.html)を示すためにこのタイプが使用されます。 | +| Vector256 | 19 | はい | このタイプはトランザクションの指示には含まれませんが、[Amendmentレジャーオブジェクト](ledger-data/ledger-entry-types/amendments.md)の`Amendments`フィールドでは、現在有効な[Amendment](../../concepts/networks-and-servers/amendments.md)を示すためにこのタイプが使用されます。 | ### AccountIDフィールド [AccountID]: #accountidフィールド -このタイプのフィールドには、XRP Ledger[アカウント](accounts.html)の160ビットのIDが含まれています。JSONではこれらのフィールドは[base58][] XRP Ledger「アドレス」および追加のチェックサムデータとして表示されます。このため、スペルミスが有効なアドレスとなることがありません。(このエンコードは「Base58Check」とも呼ばれ、誤ったアドレスへの送金を防止します。)これらのフィールドのバイナリフォーマットにはチェックサムデータは含まれておらず、また[アドレスのbase58エンコード](addresses.html#アドレスのエンコード)で使用される`0x00`「タイププレフィクス」も含まれていません。(ただし、バイナリフォーマットは主に署名済みトランザクションに使用されるため、署名済みトランザクションを転記する際にスペルミスなどのエラーが発生すると署名が無効となり、送金できなくなります。) +このタイプのフィールドには、XRP Ledger[アカウント](../../concepts/accounts/accounts.md)の160ビットのIDが含まれています。JSONではこれらのフィールドは[base58][] XRP Ledger「アドレス」および追加のチェックサムデータとして表示されます。このため、スペルミスが有効なアドレスとなることがありません。(このエンコードは「Base58Check」とも呼ばれ、誤ったアドレスへの送金を防止します。)これらのフィールドのバイナリフォーマットにはチェックサムデータは含まれておらず、また[アドレスのbase58エンコード](../../concepts/accounts/addresses.md#アドレスのエンコード)で使用される`0x00`「タイププレフィクス」も含まれていません。(ただし、バイナリフォーマットは主に署名済みトランザクションに使用されるため、署名済みトランザクションを転記する際にスペルミスなどのエラーが発生すると署名が無効となり、送金できなくなります。) スタンドアロンフィールドとして表示されるAccountID(`Account`や`Destination`など)の長さは固定長の160ビットですが、[長さプレフィクスが付加](#長さプレフィクスを付加する)されます。その結果、これらのフィールドの長さインディケーターは常に`0x14`バイトになります。特殊フィールドの子として示されるAccountID([Amount `issuer`][Amount]、[PathSet `account`][PathSet]など)では長さプレフィクスは付加 _されません_ 。 @@ -228,19 +228,19 @@ curated_anchors: トークンは以下の3つのセグメントで構成され、セグメントの順序は以下のとおりです。 1. [トークンの数量フォーマット](#トークンの数量フォーマット)の額を示す64ビット。1番目のビットは、これがXRPではないことを示す`1`です。 - 2. [通貨コード](currency-formats.html#通貨コード)を示す160ビット。標準APIでは、[標準通貨コードフォーマット](currency-formats.html#標準通貨コード)を使用して「USD」などの3文字のコードが160ビットのコードに変換されますが、160ビットのカスタムコードも使用できます。 - 3. イシュアーのアカウントIDを示す160ビット。(関連項目: [アカウントアドレスエンコード](addresses.html#アドレスのエンコード) + 2. [通貨コード](data-types/currency-formats.md#通貨コード)を示す160ビット。標準APIでは、[標準通貨コードフォーマット](data-types/currency-formats.md#標準通貨コード)を使用して「USD」などの3文字のコードが160ビットのコードに変換されますが、160ビットのカスタムコードも使用できます。 + 3. イシュアーのアカウントIDを示す160ビット。(関連項目: [アカウントアドレスエンコード](../../concepts/accounts/addresses.md#アドレスのエンコード) 1番目のビットに基づいて2つのサブタイプのいずれに該当するかを確認できます。`0`の場合はXRP、`1`の場合はトークンです。 以下の図に、XRPの額とトークン額のシリアル化フォーマットを示します。 -![「非XRP」ビット、符号ビット、および62ビットの精度で構成されるXRPの額。「非XRP」ビット、符号ビット、指数(8ビット)、仮数(54ビット)、通貨コード(160ビット)、イシュアー(160ビット)で構成されるトークンの額。](img/serialization-amount.ja.svg) +![「非XRP」ビット、符号ビット、および62ビットの精度で構成されるXRPの額。「非XRP」ビット、符号ビット、指数(8ビット)、仮数(54ビット)、通貨コード(160ビット)、イシュアー(160ビット)で構成されるトークンの額。](/img/serialization-amount.ja.svg) #### トークンの数量フォーマット [[ソース]](https://github.com/XRPLF/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/STAmount.cpp "ソース") -{{ include_svg("img/currency-number-format.ja.svg", "トークンの数量フォーマットの図") }} +[{% inline-svg file="/img/currency-number-format.ja.svg" /%}](/img/currency-number-format.ja.svg "トークンの数量フォーマットの図") XRP Ledgerは64ビットを使って(代替可能な)トークンの金額をシリアライズします。(JSONフォーマットでは、通貨量オブジェクトの`value`フィールドが数値量になります)。バイナリ形式では、数値は"非XRP"ビット、符号ビット、指数、有効数字の順で構成されます。 @@ -258,9 +258,9 @@ XRP Ledgerは64ビットを使って(代替可能な)トークンの金額をシ - 通貨コード`0x0000000000000000000000005852500000000000`は**使用できません** 。(これは"標準フォーマット"において"XRP"を表します)。 - 通貨コード`0x0000000000000000000000000000000000000000`(すべてゼロ)は、**許可されません**。通常、XRPの金額を通貨コードで指定することはありません。しかし、XRPの通貨コードを指定しなければならないフィールドが存在する場合、このコードはXRPを示すために使用されます。 -[`rippled` API](http-websocket-apis.html)は、3文字のASCIIコードを160ビットの16進数に変換するための**標準フォーマット**を以下のようにサポートしています。 +[`rippled` API](../http-websocket-apis/index.md)は、3文字のASCIIコードを160ビットの16進数に変換するための**標準フォーマット**を以下のようにサポートしています。 -{{ include_svg("img/currency-code-format.ja.svg", "標準通貨コードのフォーマット") }} +[{% inline-svg file="/img/currency-code-format.ja.svg" /%}](/img/currency-code-format.ja.svg "標準通貨コードのフォーマット") 1. 最初の8ビットは`0x00`でなければなりません。 2. 次の88ビットは予約済みで、すべて`0`でなければなりません。 @@ -274,7 +274,7 @@ XRP Ledgerは64ビットを使って(代替可能な)トークンの金額をシ ### 配列フィールド [STArray]: #配列フィールド -一部のトランザクションフィールド([SignerListSetトランザクション][]の`SignerEntries`や[`Memos`](transaction-common-fields.html#memosフィールド)など)はオブジェクトの配列です(「STArray」タイプと呼ばれます)。 +一部のトランザクションフィールド([SignerListSetトランザクション][]の`SignerEntries`や[`Memos`](transactions/common-fields.md#memosフィールド)など)はオブジェクトの配列です(「STArray」タイプと呼ばれます)。 配列には、さまざまな[オブジェクトフィールド](#オブジェクトフィールド)がそのネイティブバイナリフォーマットで特定の順序で含まれています。JSONでは、各配列メンバーが1つのフィールド(メンバーオブジェクトフィールドの名前)を含むJSON「ラッパー」オブジェクトです。そのフィールドの値は(「内部」)オブジェクト自体です。 @@ -282,7 +282,7 @@ XRP Ledgerは64ビットを使って(代替可能な)トークンの金額をシ 以下の例は、配列のシリアル化フォーマットを示します(`SignerEntries`フィールド)。 -![配列フィールドID、各配列要素のフィールドIDと内容、および「配列の終わり」を示すフィールドID](img/serialization-array.ja.png) +![配列フィールドID、各配列要素のフィールドIDと内容、および「配列の終わり」を示すフィールドID](/img/serialization-array.ja.png) ### Blobフィールド @@ -305,7 +305,7 @@ XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256がありま ### Issueフィールド [STIssue]: #issueフィールド -いくつかのフィールドは、XRPや[トークン](tokens.html)といったアセットタイプを指定します。これらのフィールドは、1つまたは2つの160ビットから構成されています: +いくつかのフィールドは、XRPや[トークン](../../concepts/tokens/index.md)といったアセットタイプを指定します。これらのフィールドは、1つまたは2つの160ビットから構成されています: 1. 最初の160ビットはアセットの[通貨コード](#通貨コード)です。XRPの場合、これはすべて0です。 2. 最初の160ビットが全て0の場合(アセットがXRPの場合)、フィールドはそこで終了します。そうでない場合、アセットはトークンであり、次の160ビットは[トークン発行者のAccountID](#accountidフィールド)です。 @@ -319,13 +319,13 @@ XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256がありま 以下の例は、オブジェクトのシリアル化フォーマットを示します(`Memos`配列内の1つの`Memo`オブジェクト)。 -![オブジェクトフィールドID、各オブジェクトメンバーのオブジェクトIDと内容(正規順序)、および「オブジェクトの終わり」を示すフィールドID](img/serialization-object.ja.png) +![オブジェクトフィールドID、各オブジェクトメンバーのオブジェクトIDと内容(正規順序)、および「オブジェクトの終わり」を示すフィールドID](/img/serialization-object.ja.png) ### PathSetフィールド [PathSet]: #pathsetフィールド -クロスカレンシーの[Paymentトランザクション][]の`Paths`フィールドは、JSONで配列からなる配列として表される「PathSet」です。使用されるパスについての詳細は、[パス](paths.html)を参照してください。 +クロスカレンシーの[Paymentトランザクション][]の`Paths`フィールドは、JSONで配列からなる配列として表される「PathSet」です。使用されるパスについての詳細は、[パス](../../concepts/tokens/fungible-tokens/paths.md)を参照してください。 PathSetは、**1~6**の個別パスとして順序どおりにシリアル化されます[[ソース]](https://github.com/XRPLF/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L35-L36 "Source")。それぞれの完全なパスの後には、パスの後に続く内容を示すバイトが配置されます。 @@ -342,9 +342,9 @@ PathSetは、**1~6**の個別パスとして順序どおりにシリアル化 | `0x10` | `currency` | [通貨コード][] | 160ビット | 2番目 | | `0x20` | `issuer` | [AccountID][] | 160ビット | 3番目 | -[通貨コード]: currency-formats.html#標準通貨コード +[通貨コード]: data-types/currency-formats.md#標準通貨コード -いくつかの組み合わせは無効です。詳細は、[パスの仕様](paths.html#パスの仕様)を参照してください。 +いくつかの組み合わせは無効です。詳細は、[パスの仕様](../../concepts/tokens/fungible-tokens/paths.md#パスの仕様)を参照してください。 `account`フィールドと`issuer`フィールドのAccountIDには、長さプレフィクスは付加 _されていません_ 。`currency`がXRPの場合、通貨コードは160ビットのゼロとして表されます。 @@ -352,7 +352,7 @@ PathSetは、**1~6**の個別パスとして順序どおりにシリアル化 以下の例は、PathSetのシリアル化フォーマットを示します。 -![PathSetは複数のパスからなり、各パスの後に継続または終了を示すバイトが続きます。各パスは複数のパスステップからなり、各パスステップはタイプバイトと、タイプバイトに基づく1つ以上の160ビットフィールドで構成されます。](img/serialization-pathset.ja.png) +![PathSetは複数のパスからなり、各パスの後に継続または終了を示すバイトが続きます。各パスは複数のパスステップからなり、各パスステップはタイプバイトと、タイプバイトに基づく1つ以上の160ビットフィールドで構成されます。](/img/serialization-pathset.ja.png) ### UIntフィールド @@ -371,9 +371,9 @@ JSONオブジェクトにこれらのフィールドが含まれている場合 ### XChainBridgeフィールド [XChainBridge]: #xchainbridgeフィールド -{{ include_svg("img/serialization-xchainbridge.ja.svg", "XChainBridgeのフォーマットの図") }} +[{% inline-svg file="/img/serialization-xchainbridge.ja.svg" /%}](/img/serialization-xchainbridge.ja.svg "XChainBridgeのフォーマットの図") -`XChainBridge`フィールドは、[クロスチェーンブリッジ](cross-chain-bridges.html)に関連するトランザクションとレジャーエントリで使用され、XChainBridgeタイプの唯一のフィールドです。XChainBridgeフィールドは4つの要素から構成され、ブロックチェーン間のブリッジを定義します。 +`XChainBridge`フィールドは、[クロスチェーンブリッジ](../../concepts/xrpl-sidechains/cross-chain-bridges.md)に関連するトランザクションとレジャーエントリで使用され、XChainBridgeタイプの唯一のフィールドです。XChainBridgeフィールドは4つの要素から構成され、ブロックチェーン間のブリッジを定義します。 - ロックチェーンのドアアカウント、長さ接頭辞付きの[AccountID][]。 - ロックチェーンの資産タイプ、[STIssue][]。 @@ -386,7 +386,4 @@ JSONオブジェクトにこれらのフィールドが含まれている場合 全体として、XChainBridgeフィールドは常に656、816、または976ビット(82、102、または122バイト)のいずれかになります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/data-types/base58-encodings.md b/content/@i18n/ja/references/protocol/data-types/base58-encodings.md index 0b9f53f395..7bef843984 100644 --- a/content/@i18n/ja/references/protocol/data-types/base58-encodings.md +++ b/content/@i18n/ja/references/protocol/data-types/base58-encodings.md @@ -5,7 +5,7 @@ blurb: 暗号鍵と関連データをbase58形式で表すフォーマットで --- # base58エンコード -`rippled` APIでは、チェックサムを含む**base58**エンコード(「Base58Check」とも呼ばれます)を使用して[アカウントアドレス](addresses.html)や暗号鍵に関連するその他のタイプの値が表現されることがよくあります。このエンコードは、[Bitcoinのアドレスに使用されているエンコード](https://en.bitcoin.it/wiki/Base58Check_encoding)と同じですが、XRP Ledgerでは以下のディクショナリが使用される点が異なります。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。 +`rippled` APIでは、チェックサムを含む**base58**エンコード(「Base58Check」とも呼ばれます)を使用して[アカウントアドレス](../../../concepts/accounts/addresses.md)や暗号鍵に関連するその他のタイプの値が表現されることがよくあります。このエンコードは、[Bitcoinのアドレスに使用されているエンコード](https://en.bitcoin.it/wiki/Base58Check_encoding)と同じですが、XRP Ledgerでは以下のディクショナリが使用される点が異なります。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。 XRP Ledgerにより、さまざまなタイプの値をエンコードする前に、データタイプを区別する固有の8ビット数値が値の前に付加されます。XRP Ledgerのbase58ディクショナリの文字配列と組み合わされた、さまざまなタイプのエンコード値のbase58表現は、タイプごとに固有の文字で始まります。 @@ -20,17 +20,13 @@ XRP Ledgerにより、さまざまなタイプの値をエンコードする前 ¹ コンテンツのサイズでは1バイトのタイププレフィクスは除外されます。 -[アカウント]: accounts.html +[アカウント]: ../../../concepts/accounts/accounts.md ## 関連項目 -- [アドレスのエンコード](addresses.html#アドレスのエンコード) - アドレスのエンコードについての詳細な情報 -- [暗号鍵](cryptographic-keys.html) - XRP Ledgerの暗号鍵のタイプとその使用法 +- [アドレスのエンコード](../../../concepts/accounts/addresses.md#アドレスのエンコード) - アドレスのエンコードについての詳細な情報 +- [暗号鍵](../../../concepts/accounts/cryptographic-keys.md) - XRP Ledgerの暗号鍵のタイプとその使用法 - [wallet_proposeリファレンス][wallet_proposeメソッド] - アカウントキーを生成するためのAPIメソッド - [validation_createリファレンス][validation_createメソッド] - バリデータキーを生成するためのAPIメソッド - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/data-types/basic-data-types.md b/content/@i18n/ja/references/protocol/data-types/basic-data-types.md index ec2ae1c789..df34384dc0 100644 --- a/content/@i18n/ja/references/protocol/data-types/basic-data-types.md +++ b/content/@i18n/ja/references/protocol/data-types/basic-data-types.md @@ -7,24 +7,24 @@ blurb: アドレス、レジャーインデックス、通貨コードなどの さまざまなタイプのオブジェクトがそれぞれ異なる方法で一意に識別されます。 -[アカウント](accounts.html)は`"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"`のような[アドレス][]で一意に識別されます。アドレスは常に「r」で始まります。`rippled`メソッドの多くは、16進数表記に対応しています。 +[アカウント](../../../concepts/accounts/accounts.md)は`"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"`のような[アドレス][]で一意に識別されます。アドレスは常に「r」で始まります。`rippled`メソッドの多くは、16進数表記に対応しています。 -[トランザクション](transaction-formats.html)は、トランザクションのバイナリフォーマットの[ハッシュ][]で識別されます。また、トランザクションは送信アカウントと[シーケンス番号][]でも識別できます。 +[トランザクション](../transactions/index.md)は、トランザクションのバイナリフォーマットの[ハッシュ][]で識別されます。また、トランザクションは送信アカウントと[シーケンス番号][]でも識別できます。 -閉鎖された各[レジャー](ledger-data-formats.html)は、[レジャーインデックス][]と[ハッシュ][]値を保有します。[レジャーを指定する](#レジャーの指定)場合、いずれか1つを使用できます。 +閉鎖された各[レジャー](../ledger-data/index.md)は、[レジャーインデックス][]と[ハッシュ][]値を保有します。[レジャーを指定する](#レジャーの指定)場合、いずれか1つを使用できます。 ## アドレス [アドレス]: #アドレス -{% include '_snippets/data_types/address.ja.md' %} - +{% partial file="/_snippets/data_types/address.md" /%} + ## ハッシュ [ハッシュ]: #ハッシュ -{% include '_snippets/data_types/hash.ja.md' %} - +{% partial file="/_snippets/data_types/hash.md" /%} + ### ハッシュプレフィクス [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/HashPrefix.h "Source") @@ -48,24 +48,24 @@ blurb: アドレス、レジャーインデックス、通貨コードなどの | 検証の投票 | なし | `0x56414C00` | `VAL\0` | | バリデータサブキー認証(「バリデータマニフェスト」) | なし | `0x4D414E00` | `MAN\0` | -[レジャーヘッダー]: ledger-header.html -[SHAMapv2]: known-amendments.html#shamapv2 +[レジャーヘッダー]: ../ledger-data/ledger-header.md +[SHAMapv2]: ../../../resources/known-amendments.md#shamapv2 -[レジャーオブジェクトID](ledger-object-ids.html)も似た方法で計算されますが、ここで説明したプレフィクスの代わりに「スペースキー」という2バイトのプレフィクスを使用します。 +[レジャーオブジェクトID](../ledger-data/common-fields.md)も似た方法で計算されますが、ここで説明したプレフィクスの代わりに「スペースキー」という2バイトのプレフィクスを使用します。 ## アカウントシーケンス [シーケンス番号]: #アカウントシーケンス -{% include '_snippets/data_types/account_sequence.ja.md' %} - +{% partial file="/_snippets/data_types/account_sequence.md" /%} + ## レジャーインデックス [レジャーインデックス]: #レジャーインデックス -{% include '_snippets/data_types/ledger_index.ja.md' %} - +{% partial file="/_snippets/data_types/ledger_index.md" /%} + ### レジャーの指定 @@ -74,17 +74,23 @@ APIメソッドの多くは、レジャーのインスタンスを指定する 1. `ledger_index`パラメータにレジャーの[レジャーインデックス][]を指定します。閉鎖された各レジャーには識別用のレジャーインデックスが付いていて、その前に検証されたレジャーより1つ大きい番号になります。(最初のレジャーのインデックスは1です。) - "ledger_index": 61546724 + ``` + "ledger_index": 61546724 + ``` 2. `ledger_hash`パラメータにレジャーの[ハッシュ][]値を指定します。 - "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" + ``` + "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" + ``` 3. `ledger_index`パラメータに以下のいずれかのショートカットを指定します。 - * `validated`: [コンセンサスで検証](consensus-structure.html#検証)された最新のレジャー + * `validated`: [コンセンサスで検証](../../../concepts/consensus-protocol/consensus-structure.md#検証)された最新のレジャー - "ledger_index": "validated" + ``` + "ledger_index": "validated" + ``` * `closed`: 変更できないように閉鎖され、検証を提案されている最新のレジャー @@ -92,7 +98,7 @@ APIメソッドの多くは、レジャーのインスタンスを指定する 上記3つのフォーマットすべてを受け入れる、廃止予定の`ledger`パラメーターもあります。このパラメーターは使用*しないでください*。今後予告なしに廃止される可能性があります。 -レジャーを指定しない場合、デフォルトで`current`(処理中)レジャーが選択されます。レジャーを指定しなかった場合、サーバはリクエストにどのレジャーを使うかを決めます。デフォルトでは、サーバは`current`(進行中)のレジャーを選択します。[レポートモード](rippled-server-modes.html#レポートモード)では、サーバは最新の検証済みレジャーを使います。レジャーを指定するフィールドは複数指定しないでください。 +レジャーを指定しない場合、デフォルトで`current`(処理中)レジャーが選択されます。レジャーを指定しなかった場合、サーバはリクエストにどのレジャーを使うかを決めます。デフォルトでは、サーバは`current`(進行中)のレジャーを選択します。[レポートモード](../../../concepts/networks-and-servers/rippled-server-modes.md#レポートモード)では、サーバは最新の検証済みレジャーを使います。レジャーを指定するフィールドは複数指定しないでください。 **注記:** レジャーを指定する際に上記のデフォルトの動作に頼らないでください。変更される場合があります。可能であれば、常にリクエストでレジャーバージョンを指定してください。 @@ -103,23 +109,27 @@ APIメソッドの多くは、レジャーのインスタンスを指定する XRP LedgerにはXRPとトークンの2種類の通貨があります。これら2種類の通貨は、異なるフォーマット、異なる精度と丸め動作で指定されます。 -[Paymentトランザクション][]で送金する`Amount`のようないくつかのフィールドは、どちらのタイプにもすることができます。`Fee`フィールド([トランザクションコスト](transaction-cost.html))のように、XRPのみを使用可能なフィールドもあります。 +[Paymentトランザクション][]で送金する`Amount`のようないくつかのフィールドは、どちらのタイプにもすることができます。`Fee`フィールド([トランザクションコスト](../../../concepts/transactions/transaction-cost.md))のように、XRPのみを使用可能なフィールドもあります。 XRPは、XRPの “drop"数を含む整数の文字列として指定され、100万ドロップが1XRPに相当します。トークンは、10進数の金額、通貨コード、発行者のフィールドを持つオブジェクトとして指定されます。 - **XRP** - `Amount`フィールドに13.1 XRPを指定するには: - "Amount": "13100000" + ``` + "Amount": "13100000" + ``` - **トークン** - `rf1B...`が発行した13.1 FOOという値で`Amount`フィールドを指定するには: - "Amount": { - "value": "13.1", - "currency": "FOO", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } + ``` + "Amount": { + "value": "13.1", + "currency": "FOO", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + ``` -詳しくは[通貨フォーマット](currency-formats.html)をご覧ください。 +詳しくは[通貨フォーマット](currency-formats.md)をご覧ください。 ## 時間の指定 @@ -128,7 +138,4 @@ XRPは、XRPの “drop"数を含む整数の文字列として指定され、10 Rippleエポック時間を32ビット変数でUNIXエポック時間に変換しないでください。整数のオーバーフローが発生する恐れがあります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/data-types/currency-formats.md b/content/@i18n/ja/references/protocol/data-types/currency-formats.md index 75d9b5f03d..d52374bc86 100644 --- a/content/@i18n/ja/references/protocol/data-types/currency-formats.md +++ b/content/@i18n/ja/references/protocol/data-types/currency-formats.md @@ -8,7 +8,7 @@ labels: --- # 通貨フォーマット -XRP Ledgerには2種類の通貨、XRPと[トークン](tokens.html)があります。XRP Ledgerでは、これらの通貨のフォーマットは異なりますが、どちらも高精度です。 +XRP Ledgerには2種類の通貨、XRPと[トークン](../../../concepts/tokens/index.md)があります。XRP Ledgerでは、これらの通貨のフォーマットは異なりますが、どちらも高精度です。 ## 比較 @@ -18,16 +18,16 @@ XRP Ledgerには2種類の通貨、XRPと[トークン](tokens.html)がありま |:---------------------------------------------------------|:------------------| | 発行者は存在しません。 | XRP Ledgerのアカウントから発行されます。 | | 文字列形式で指定します。 | オブジェクト形式で指定します。 | -| [アカウント](accountroot.html)に記録されます。 | [トラストライン](ripplestate.html)に記録されます。 | +| [アカウント](../ledger-data/ledger-entry-types/accountroot.md)に記録されます。 | [トラストライン](../ledger-data/ledger-entry-types/ripplestate.md)に記録されます。 | | バーンするのみで作成することはできません。 | 自由に発行・償還が可能です。 | | 最小値: `0` (負の値はありません) | 最小値: `-9999999999999999e80` ゼロでない絶対値の最小値: `1000000000000000e-96` | 最大値 `100000000000` (1011) XRP (`100000000000000000` (1017) "drops") | 最大値 `9999999999999999e80` | | 最小の精度: "drop" (0.000001 XRP) | 小数点以下15桁の精度 | -| [凍結](freezes.html)できません | 発行者は残高を[凍結](freezes.html)することができます | -| 送金手数料はかかりません。XRP同士の支払いは常に直接行われます | 間接的な[パス](paths.html)を取ることができ、各発行者は一定の[送金手数料](transfer-fees.html)を請求できます | -| [ペイメントチャンネル](payment-channels.html)と[エスクロー](escrow.html)で使用できます | ペイメントチャネルやエスクローには対応していません | +| [凍結](../../../concepts/tokens/fungible-tokens/freezes.md)できません | 発行者は残高を[凍結](../../../concepts/tokens/fungible-tokens/freezes.md)することができます | +| 送金手数料はかかりません。XRP同士の支払いは常に直接行われます | 間接的な[パス](../../../concepts/tokens/fungible-tokens/paths.md)を取ることができ、各発行者は一定の[送金手数料](../../../concepts/tokens/transfer-fees.md)を請求できます | +| [ペイメントチャンネル](../../../concepts/payment-types/payment-channels.md)と[エスクロー](../../../concepts/payment-types/escrow.md)で使用できます | ペイメントチャネルやエスクローには対応していません | -詳しくは [XRPとは?](what-is-xrp.html)や[トークン](tokens.html)をご覧ください。 +詳しくは [XRPとは?](../../../introduction/what-is-xrp.md)や[トークン](../../../concepts/tokens/index.md)をご覧ください。 ## 通貨額の指定 @@ -50,13 +50,13 @@ XRPの金額は負になることはありません。 ### トークンの金額 -[(代替可能な)トークン](tokens.html)の金額を指定するには、Amountオブジェクトを使用します。これは、3つのフィールドを持つJSONオブジェクトです。 +[(代替可能な)トークン](../../../concepts/tokens/index.md)の金額を指定するには、Amountオブジェクトを使用します。これは、3つのフィールドを持つJSONオブジェクトです。 | `Field` | 型 | 説明 | |:-----------|:---------------------|:-----------------------------------| | `currency` | 文字列 - [通貨コード][] | トークンの任意の通貨コード。`XRP`は使用できません。 | | `value` | [文字列フォーマット][] | トークンの金額を10進数で表します。1.23e11`は123,000,000,000を意味します。e` と `E` の両方を使用することができます。残高を表示する場合には負の値を指定することができますが、送信金額を指定する場合などには負の値を指定することはできません。 | -| `issuer` | 文字列 | 一般的には、このトークンを発行する[アカウント](accounts.html)を指します。特殊なケースでは、トークンを保持しているアカウントを指します(例えば、[Clawback](clawback.html)トランザクションの場合など)。 | +| `issuer` | 文字列 | 一般的には、このトークンを発行する[アカウント](../../../concepts/accounts/accounts.md)を指します。特殊なケースでは、トークンを保持しているアカウントを指します(例えば、[Clawback](../transactions/types/clawback.md)トランザクションの場合など)。 | [文字列フォーマット]: #文字列フォーマット @@ -74,7 +74,7 @@ XRPの金額は負になることはありません。 #### 金額なしでの通貨の指定 -場合によっては、[分散型取引所](decentralized-exchange.html)でオーダーブックを指定するときなど、特定の金額なしで資産(XRPやトークン)を定義する必要があります。 +場合によっては、[分散型取引所](../../../concepts/tokens/decentralized-exchange/index.md)でオーダーブックを指定するときなど、特定の金額なしで資産(XRPやトークン)を定義する必要があります。 金額なしでトークンを記述するには、通貨オブジェクトとして指定し、`value`フィールドを省略します。例えば @@ -96,7 +96,7 @@ XRPを金額なしで記述するには、JSONオブジェクトとして`curren ## 文字列フォーマット -{% include '_snippets/string-number-formatting.ja.md' %} +{% partial file="/_snippets/string-number-formatting.md" /%} ## XRPの精度 @@ -106,15 +106,15 @@ XRPは64ビットの符号なし整数と同じ精度を持ち、各単位は0.0 トークンは、一般的に非常に小さい額や非常に大きい額で取引されるものを含め、さまざまな資産を表すことができます。このフォーマットは、科学的記数法と同様に、有効数字と10の累乗指数を使用します。このフォーマットは、指定された範囲内で有効数字の正負と指数をサポートしています。整数でない数の一般的な浮動小数点表現とは異なり、この形式ではすべての計算に整数演算を使用するため、常に小数点以下15桁の精度を維持します。掛け算と割り算には、最下位桁の丸めすぎを補正する調整があります。 -XRP Ledgerのピアツーピアネットワークでトークンの金額を送信する場合、サーバは金額を64ビットのバイナリ値に[シリアライズ](serialization.html)します。 +XRP Ledgerのピアツーピアネットワークでトークンの金額を送信する場合、サーバは金額を64ビットのバイナリ値に[シリアライズ](../binary-format.md)します。 -**ヒント:** 分割不可能なトークンについては、[非代替性トークン(NFT)](non-fungible-tokens.html)をご覧ください。 +**ヒント:** 分割不可能なトークンについては、[非代替性トークン(NFT)](../../../concepts/tokens/nfts/index.md)をご覧ください。 ## 通貨コード [通貨コード]: #通貨コード -{% include '_snippets/data_types/currency_code.ja.md' %} - +{% partial file="/_snippets/data_types/currency_code.md" /%} + ### 標準通貨コード @@ -125,10 +125,10 @@ XRP Ledgerのピアツーピアネットワークでトークンの金額を送 - 通貨コードは大文字と小文字を区別します。 - 通貨コード`XRP`(すべて大文字)は使用できません。ネイティブトークンとしてのXRPは通常、XRP Ledgerプロトコルでは通貨コードを使用しません。 -プロトコルレベルでは、このフォーマットは[シリアライズ](serialization.html#通貨コード)され、`0x00`で始まる160ビットのバイナリ値になります。 +プロトコルレベルでは、このフォーマットは[シリアライズ](../binary-format.md#通貨コード)され、`0x00`で始まる160ビットのバイナリ値になります。 ### 非標準通貨コード また、`015841551A748AD2C1F76FF6ECB0CCD000000`のような160ビット(40文字)の16進文字列を通貨コードとして使用することもできます。これが「標準的な」通貨コードとして扱われるのを防ぐために、最初の8ビットは`0x00`にしてはいけません (MUST NOT)。 -**廃止予定:** 一部の旧バージョンの[ripple-lib](https://github.com/XRPLF/xrpl.js)では通貨コードの種類として「有利子」または「マイナス利子」がサポートされていました。これらの通貨の先頭8ビットは`0x01`です。マイナス利子/有利子通貨はサポートされなくなりましたが、レジャーデータにこのような通貨が現れることがあります。詳しくは、[マイナス利子](demurrage.html)をご覧ください。 +**廃止予定:** 一部の旧バージョンの[ripple-lib](https://github.com/XRPLF/xrpl.js)では通貨コードの種類として「有利子」または「マイナス利子」がサポートされていました。これらの通貨の先頭8ビットは`0x01`です。マイナス利子/有利子通貨はサポートされなくなりましたが、レジャーデータにこのような通貨が現れることがあります。詳しくは、[マイナス利子](../../../concepts/tokens/fungible-tokens/demurrage.md)をご覧ください。 diff --git a/content/@i18n/ja/references/protocol/data-types/nftoken.md b/content/@i18n/ja/references/protocol/data-types/nftoken.md index b8852eabe1..dc21dafe10 100644 --- a/content/@i18n/ja/references/protocol/data-types/nftoken.md +++ b/content/@i18n/ja/references/protocol/data-types/nftoken.md @@ -11,7 +11,7 @@ labels: _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -20,7 +20,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ } ``` -通常の[レジャーエントリ](ledger-object-types.html)とは異なり、`NFToken`にはオブジェクトのタイプや現在の所有者を特定するフィールドはありません。`NFToken`オブジェクトは、そのオブジェクトのタイプを暗黙的に定義し、所有者を特定するページにグループ化されます。 +通常の[レジャーエントリ](../ledger-data/ledger-entry-types/index.md)とは異なり、`NFToken`にはオブジェクトのタイプや現在の所有者を特定するフィールドはありません。`NFToken`オブジェクトは、そのオブジェクトのタイプを暗黙的に定義し、所有者を特定するページにグループ化されます。 ## NFTokenID @@ -40,7 +40,7 @@ D) 32ビットの発行者が指定する[`NFTokenTaxon`](https://www.merriam-we E) 32ビットの(自動生成される)単調増加するのシーケンス番号 -![トークンIDの内訳](img/nftoken1.png "トークンIDの内訳") +![トークンIDの内訳](/img/nftoken1.png "トークンIDの内訳") 16ビットのフラグ、送金手数料フィールド、32ビットの`NFTokenTaxon`、シーケンス番号フィールドはビッグエンディアン形式で格納されます。 @@ -53,7 +53,7 @@ E) 32ビットの(自動生成される)単調増加するのシーケンス |:------------------|:-----------|:--------------------------------------------| | `lsfBurnable` | `0x0001` | 設定されている場合、発行者(または発行者が許可したエンティティ)が`NFToken`を破棄できることを示します。オブジェクトの所有者は常に破棄することができます。 | | `lsfOnlyXRP` | `0x0002` | 設定されている場合、`NFToken`はXRPに対してのみオファーまたは売却できることを示します。 | -| `lsfTrustLine` | `0x0004` | **廃止** 設定されている場合、送金手数料を保持するための[トラストライン](trust-lines-and-issuing.html)を自動的に作成します。設定されていない場合、発行者がそのトークンのトラストラインを持っていない場合、この`NFToken`をそのトークンで売買することは失敗します。[fixRemoveNFTokenAutoTrustLine amendment][]により、このフラグは利用できなくなります。| +| `lsfTrustLine` | `0x0004` | **廃止** 設定されている場合、送金手数料を保持するための[トラストライン](../../../concepts/tokens/fungible-tokens/index.md)を自動的に作成します。設定されていない場合、発行者がそのトークンのトラストラインを持っていない場合、この`NFToken`をそのトークンで売買することは失敗します。[fixRemoveNFTokenAutoTrustLine amendment][]により、このフラグは利用できなくなります。| | `lsfTransferable` | `0x0008` | 設定されている場合、この`NFToken`は所有者から別の所有者に転送することができます。設定されていない場合、所有者は発行者との間でのみ譲渡が可能です。 | | `lsfReservedFlag` | `0x8000` | 将来の使用に備えて確保されています。このフラグを設定しようとすると失敗します。 | @@ -63,7 +63,7 @@ E) 32ビットの(自動生成される)単調増加するのシーケンス この例では、`lsfBurnable`(`0x0001`), `lsfOnlyXRP`(`0x0002`), `lsfTransferable`(`0x0008`)の3つのフラグを設定しています。1+2+8 = 11、つまりビッグエンディアン形式で`0x000B`です。 -![フラグ](img/nftokena.png "フラグ") +![フラグ](/img/nftokena.png "フラグ") ### 送金手数料 @@ -74,20 +74,20 @@ E) 32ビットの(自動生成される)単調増加するのシーケンス この値では、転送手数料は31.4bps(0.314%)に設定されます。 -![送金手数料](img/nftokenb.png "送金手数料") +![送金手数料](/img/nftokenb.png "送金手数料") ### 発行者の識別 `NFTokenID`の3番目のセクションは、発行者のアドレスをビッグエンディアンで表現したものです。 -![発行者アドレス](img/nftokenc.png "発行者アドレス") +![発行者アドレス](/img/nftokenc.png "発行者アドレス") ### NFTokenTaxon(分類群) 4番目のセクションは、発行者が指定する`NFTokenTaxon`です。 -![`NFTokenTaxon` の概要図](img/nftokend.png) +![`NFTokenTaxon` の概要図](/img/nftokend.png) 発行者は同じ`NFTokenTaxon`を持つ複数の`NFToken`を発行する可能性があります。`NFToken`が複数のページにまたがるようにするため、`NFTokenTaxon`は第5セクションの連番を乱数発生器のシード値として乱数化されています。乱数化された値は`NFToken`と共に保存されますが、乱数化されていない値が実際の`NFTokenTaxon`となります。 @@ -97,7 +97,7 @@ E) 32ビットの(自動生成される)単調増加するのシーケンス 5番目のセクションは、発行者が`NFToken`を作成するたびに増加するシーケンス番号です。 -![シーケンス番号](img/nftokene.png "シーケンス番号") +![シーケンス番号](/img/nftokene.png "シーケンス番号") [NFTokenMint トランザクション][]では`NFTokenID`のこのフィールドを`Issuer`アカウントの`MintedNFTokens`フィールドを基に自動的に設定します。発行者の[AccountRoot オブジェクト][]が`MintedNFTokens`フィールドを持っていない場合、そのフィールドは値 0 と見なされます。フィールドの値は1ずつ増加します。 @@ -131,7 +131,4 @@ https://example.com/.well-known/xrpl-nft/{tokenid} `NFTokenMint`トランザクションを使用して`NFToken`を作成します。`NFTokenBurn`トランザクションを使用して`NFToken`を破棄することもできます。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/index.md b/content/@i18n/ja/references/protocol/index.md index d66ed2cbcb..81336ccb71 100644 --- a/content/@i18n/ja/references/protocol/index.md +++ b/content/@i18n/ja/references/protocol/index.md @@ -1,10 +1,14 @@ --- html: protocol-reference.html parent: references.html -template: pagetype-category.html.jinja +metadata: + indexPage: true eyebrow_text: 特徴とルール blurb: XRP Ledgerプロトコルの、利用方法に依存しない特徴やルールについて。 --- # XRP Ledgerプロトコルリファレンス -XRP Ledgerプロトコルの、利用方法に依存しない特徴やルールについて。 \ No newline at end of file +XRP Ledgerプロトコルの、利用方法に依存しない特徴やルールについて。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/common-fields.md b/content/@i18n/ja/references/protocol/ledger-data/common-fields.md index d298e7e600..880a6822b7 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/common-fields.md +++ b/content/@i18n/ja/references/protocol/ledger-data/common-fields.md @@ -5,12 +5,12 @@ blurb: これらの共通フィールドは、すべてのレジャーエント # Ledger Entryの共通フィールド [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp) -[レジャー](ledgers.html)の状態データの各エントリは、同じ共通フィールドのセットと、[レジャーエントリのタイプ](ledger-entry-types.html)に基づく追加フィールドを持ちます。フィールド名は大文字と小文字を区別します。すべてのレジャーエントリの共通フィールドは以下の通りです。 +[レジャー](../../../concepts/ledgers/index.md)の状態データの各エントリは、同じ共通フィールドのセットと、[レジャーエントリのタイプ](ledger-entry-types/index.md)に基づく追加フィールドを持ちます。フィールド名は大文字と小文字を区別します。すべてのレジャーエントリの共通フィールドは以下の通りです。 | `Field` | JSONの型 | [内部の型][] | 必須? | 説明 | |:-------------------------|:--------|:------------|:------|:------------| | `index` or `LedgerIndex` | 文字列 | Hash256 | いいえ | このレジャーエントリの一意のID。JSONでは、このフィールドはコンテキストやAPIメソッドによって異なる名前で表現されます。(コード上では"任意(optional)"と指定されていますが、XRP Ledgerの歴史のごく初期からのレガシーデータでない限り、すべてのレジャーエントリは一意であるべきです)。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーエントリのタイプ。有効な[レジャーエントリのタイプ](ledger-entry-types.html)には`AccountRoot`、`Offer`、`RippleState`などがあります。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーエントリのタイプ。有効な[レジャーエントリのタイプ](ledger-entry-types/index.md)には`AccountRoot`、`Offer`、`RippleState`などがあります。 | | `Flags` | 数値 | UInt32 | はい | このレジャーエントリのビットフラグのセット。 | **注意:** JSONでは、レジャーエントリIDは`index`または`LedgerIndex`フィールドになります。これは`ledger_index`フィールドの[レジャーインデックス][]とは異なります。 @@ -20,13 +20,13 @@ blurb: これらの共通フィールドは、すべてのレジャーエント [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp) -各レジャーエントリには一意のIDがあります。IDは、エントリの重要な内容と[名前空間識別子](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/LedgerFormats.h)をハッシュすることで得られます。[レジャーエントリのタイプ](ledger-entry-types.html)は、使用する名前空間識別子と、ハッシュに含めるコンテンツを決定します。これにより、すべてのIDが一意になります。ハッシュ関数は[SHA-512Half][]です。 +各レジャーエントリには一意のIDがあります。IDは、エントリの重要な内容と[名前空間識別子](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/LedgerFormats.h)をハッシュすることで得られます。[レジャーエントリのタイプ](ledger-entry-types/index.md)は、使用する名前空間識別子と、ハッシュに含めるコンテンツを決定します。これにより、すべてのIDが一意になります。ハッシュ関数は[SHA-512Half][]です。 -一般的に、レジャーエントリのIDはJSONの`index`フィールドとして、オブジェクトの内容と同じレベルで返されます。[トランザクションのメタデータ](transaction-metadata.html)では、JSONにおけるレジャーオブジェクトのIDは`LedgerIndex`です。 +一般的に、レジャーエントリのIDはJSONの`index`フィールドとして、オブジェクトの内容と同じレベルで返されます。[トランザクションのメタデータ](../transactions/metadata.md)では、JSONにおけるレジャーオブジェクトのIDは`LedgerIndex`です。 オファーディレクトリには特別なIDがあり、ハッシュの一部がそのディレクトリ内のオファーの取引レートに置き換えられます。 -{{ include_svg("img/ledger-object-ids.ja.svg", "図: 異なるタイプのレジャーエントリのID計算。スペースキーは、異なるタイプのIDが衝突するのを防ぎます。") }} +[{% inline-svg file="/img/ledger-object-ids.ja.svg" /%}](/img/ledger-object-ids.ja.svg "図: 異なるタイプのレジャーエントリのID計算。スペースキーは、異なるタイプのIDが衝突するのを防ぎます。") ## フラグ @@ -35,5 +35,4 @@ blurb: これらの共通フィールドは、すべてのレジャーエント フラグフィールドに指定できる値は、レジャーエントリのタイプによって異なります。一部のレジャーエントリのタイプでは、フラグが定義されていません。このような場合、`Flags`フィールドは常に値`0`になります。 - -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/index.md b/content/@i18n/ja/references/protocol/ledger-data/index.md index bd2c905800..d41cd4426a 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/index.md +++ b/content/@i18n/ja/references/protocol/ledger-data/index.md @@ -7,14 +7,14 @@ blurb: XRP Ledgerの共有状態を構成する個別のデータオブジェク XRP Ledgerに各レジャーバージョンは3つの要素で構成されています: -* **[レジャーヘッダー](ledger-header.html)**: このレジャーに関してメタデータです。 -* **[トランザクションセット](transaction-formats.html)**: このレジャーの作成時に、直前のレジャーに適用されたトランザクション。 -* **[状態データ](ledger-object-types.html)**: このバージョンのレジャーの設定、残高、オブジェクトを含むすべてのレジャーオブジェクト。 +* **[レジャーヘッダー](ledger-header.md)**: このレジャーに関してメタデータです。 +* **[トランザクションセット](../transactions/index.md)**: このレジャーの作成時に、直前のレジャーに適用されたトランザクション。 +* **[状態データ](ledger-entry-types/index.md)**: このバージョンのレジャーの設定、残高、オブジェクトを含むすべてのレジャーオブジェクト。 ## 状態データ -{% include '_snippets/ledger-objects-intro.ja.md' %} +{% partial file="/_snippets/ledger-objects-intro.md" /%} {% from '_snippets/macros/page-children.md' import page_children with context %} {{ page_children(pages|selectattr("html", "eq", "ledger-object-types.html")|first, 1, 1, True) }} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/accountroot.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/accountroot.md index cb146a3084..4df138d894 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/accountroot.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/accountroot.md @@ -9,9 +9,9 @@ labels: # AccountRoot [[ソース]](https://github.com/xrplf/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L27 "Source") -`AccountRoot`オブジェクトタイプは、1つの[アカウント](accounts.html)、そのアカウントの設定、XRP残高を記述します。 +`AccountRoot`オブジェクトタイプは、1つの[アカウント](../../../../concepts/accounts/accounts.md)、そのアカウントの設定、XRP残高を記述します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -32,40 +32,40 @@ labels: } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `AccountRoot`オブジェクトのフィールドは次のとおりです。 | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:------------------------------|:---------|:------------------|:------|:------| -| `Account` | 文字列 | AccountID | はい | この[アカウント](accounts.html)を識別するための(クラシック)アドレスです。 | -| `AccountTxnID` | 文字列 | Hash256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、[`AccountTxnID`トランザクションフィールド](transaction-common-fields.html#accounttxnid)を使うために有効になっていなければなりません。これを有効にするには、[`asfAccountTxnID`フラグを有効にしたAccountSetトランザクション](accountset.html#accountsetのフラグ)を送信してください。 | -| `AMMID` | 文字列 | Hash256 | いいえ | _([AMM amendment][] :not_enabled:が必要です。)_ 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 | +| `Account` | 文字列 | AccountID | はい | この[アカウント](../../../../concepts/accounts/accounts.md)を識別するための(クラシック)アドレスです。 | +| `AccountTxnID` | 文字列 | Hash256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、[`AccountTxnID`トランザクションフィールド](../../transactions/common-fields.md#accounttxnid)を使うために有効になっていなければなりません。これを有効にするには、[`asfAccountTxnID`フラグを有効にしたAccountSetトランザクション](../../transactions/types/accountset.md#accountsetのフラグ)を送信してください。 | +| `AMMID` | 文字列 | Hash256 | いいえ | _([AMM amendment][] {% not-enabled /%}が必要です。)_ 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 | | `Balance` | 文字列 | Amount | いいえ | アカウントの現在の[drop単位のXRP残高][XRP、drop単位]で、文字列で表現されます。 | -| `BurnedNFTokens` | 数値 | UInt32 | いいえ | このアカウントで発行された [非代替性トークン](non-fungible-tokens.html) のうち、バーンしたトークンの総数を表します。この数値は常に `MintedNFTokens` と同じかそれ以下となります。 | +| `BurnedNFTokens` | 数値 | UInt32 | いいえ | このアカウントで発行された [非代替性トークン](../../../../concepts/tokens/nfts/index.md) のうち、バーンしたトークンの総数を表します。この数値は常に `MintedNFTokens` と同じかそれ以下となります。 | | `Domain` | 文字列 | VariableLength | いいえ | このアカウントに関連付けられたドメイン。JSONでは、ドメインのASCII表現を16進数で表現します。[256バイトを超える長さは使用できません](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | | `EmailHash` | 文字列 | Hash128 | いいえ | メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内で[Gravatar](https://ja.gravatar.com/)などのアバターを検索できます。 | | [`Flags`](#accountrootのフラグ) | 数値 | UInt32 | はい | このアカウントに対して有効になっているブールフラグのビットマップ。 | | `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0061`で文字列`AccountRoot`にマッピングされ、AccountRootオブジェクトであることを示します。 | | `MessageKey` | 文字列 | VariableLength | いいえ | このアカウントに暗号化されたメッセージを送信するために使用することができる公開鍵です。JSONでは、16進数で指定します。33バイトであることが必要で、最初の1バイトは鍵の種類を表します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`となります。 | -| `MintedNFTokens` | 数値 | UInt32 | いいえ | このアカウントによって、またはこのアカウントのためにMintされた[非代替性トークン](non-fungible-tokens.html) の合計数。 | -| `NFTokenMinter` | 文字列 | AccountID | いいえ | このアカウントに代わって[非代替性トークン](non-fungible-tokens.html)をミントできる別のアカウントを表します。 | +| `MintedNFTokens` | 数値 | UInt32 | いいえ | このアカウントによって、またはこのアカウントのためにMintされた[非代替性トークン](../../../../concepts/tokens/nfts/index.md) の合計数。 | +| `NFTokenMinter` | 文字列 | AccountID | いいえ | このアカウントに代わって[非代替性トークン](../../../../concepts/tokens/nfts/index.md)をミントできる別のアカウントを表します。 | | `OwnerCount` | 数値 | UInt32 | はい | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 | | `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | | `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | -| `RegularKey` | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できる[キーペア](cryptographic-keys.html)のアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 | -| `Sequence` | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションの[シーケンス番号](basic-data-types.html#アカウントシーケンス) を表します。 | -| `TicketCount` | 数値 | UInt32 | いいえ | このアカウントが台帳に保有する[チケット](tickets.html)の数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 _([TicketBatch amendment][]により追加されました)_ | +| `RegularKey` | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できる[キーペア](../../../../concepts/accounts/cryptographic-keys.md)のアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 | +| `Sequence` | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションの[シーケンス番号](../../data-types/basic-data-types.md#アカウントシーケンス) を表します。 | +| `TicketCount` | 数値 | UInt32 | いいえ | このアカウントが台帳に保有する[チケット](../../../../concepts/accounts/tickets.md)の数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 _([TicketBatch amendment][]により追加されました)_ | | `TickSize` | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。_([TickSize Amendment][]により追加されました。)_ | -| `TransferRate` | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザーが相互に送金する際に、これらのユーザーに請求する[送金手数料](transfer-fees.html)。 | +| `TransferRate` | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザーが相互に送金する際に、これらのユーザーに請求する[送金手数料](../../../../concepts/tokens/transfer-fees.md)。 | | `WalletLocator` | 文字列 | Hash256 | いいえ | ユーザーが設定できる任意の256bit値。 | | `WalletSize` | 数値 | UInt32 | いいえ | 未使用。(コード上ではこのフィールドをサポートしていますが、設定する方法はありません)。 | ## AMMの特殊なAccountRootエントリ -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ -[自動マーケットメーカー](automated-market-makers.html)(AMM)は、AMMの詳細の一部を追跡するための[AMMレジャーエントリ](amm.html)に加えて、LPトークンを発行しAMMプール内の資産を保持するためにAccountRootレジャーエントリを使用します。AMMに関連するAccountRootのアドレスは、AMMが作成される前にユーザがそのアドレスを特定し資金を提供できないように、ランダム化されています。AMMのAccountRootは、通常のアカウントとは異なり、以下のような設定で作成されます。 +[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)は、AMMの詳細の一部を追跡するための[AMMレジャーエントリ](amm.md)に加えて、LPトークンを発行しAMMプール内の資産を保持するためにAccountRootレジャーエントリを使用します。AMMに関連するAccountRootのアドレスは、AMMが作成される前にユーザがそのアドレスを特定し資金を提供できないように、ランダム化されています。AMMのAccountRootは、通常のアカウントとは異なり、以下のような設定で作成されます。 - `lsfDisableMaster` **有効** : トランザクションへ署名する手段はありません。これにより、誰もそのアカウントを直接操作することができず、トランザクションを送信することができなくなります。 - `lsfRequireAuth` **有効** : 事前承認されているアカウントは存在しません。これにより、AMMアカウントに資産を追加する唯一の方法は、[AMMDepositトランザクション][]を使用することであることが保証されます。 @@ -73,12 +73,12 @@ _([AMM amendment][] :not_enabled:が必要です。)_ さらに、AMMのAccountRootエントリには以下の特別なルールが適用されます。 -- このAMM向けの特殊なアカウントは、[準備金要件](reserves.html)の対象外ですが、AMMのプール内の2つの資産のうちの1つであれば、XRPを保有することができます。 +- このAMM向けの特殊なアカウントは、[準備金要件](../../../../concepts/accounts/reserves.md)の対象外ですが、AMMのプール内の2つの資産のうちの1つであれば、XRPを保有することができます。 - チェック、エスクロー、ペイメントチャネルの宛先にはできません。そのようなエントリを作成するトランザクションは結果コード`tecNO_PERMISSION`で失敗します。 - ユーザはAMMのLPトークン以外のためにトラストラインを作成することはできません。そのようなトラストラインを作成するトランザクションは結果コード`tecNO_PERMISSION`で失敗します。(AMMはそのプール内のトークンを保持するために2つのトラストラインを持っており、プール内の他の資産がXRPの場合は1つのトラストラインを持っています)。 - [Clawback Amendment][]も有効になっている場合においても、トークンの発行者はAMMから資金を回収することはできません。 -LPトークンは他の[トークン](tokens.html)と同様に動作しますが、これらのトークンはAMM関連のトランザクションでも使用することができます。AMMの残高や、AMMに影響を与えたトランザクションの履歴は、通常のアカウントと同じように確認することができます。 +LPトークンは他の[トークン](../../../../concepts/tokens/index.md)と同様に動作しますが、これらのトークンはAMM関連のトランザクションでも使用することができます。AMMの残高や、AMMに影響を与えたトランザクションの履歴は、通常のアカウントと同じように確認することができます。 ## AccountRootのフラグ @@ -86,11 +86,11 @@ AccountRootフラグの多くは、[AccountSetトランザクション][]で変 AccountRootオブジェクトは`Flags`フィールドに以下のフラグを指定できます。 -| フラグ名 | 16進数値 | 10進数値 | 対応する[AccountSetのフラグ](accountset.html#accountsetのフラグ) | 説明 | +| フラグ名 | 16進数値 | 10進数値 | 対応する[AccountSetのフラグ](../../transactions/types/accountset.md#accountsetのフラグ) | 説明 | |-----------------------------------|--------------|----------|-------------------------------------|-------------------------------| -| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | このアカウントの[Clawback](clawing-back-tokens.html)を有効にします。 _([Clawback Amendment][]が必要です。)_ | -| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | このアドレスのトラストラインでデフォルトで[rippling](rippling.html)を有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 | -| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | このアカウントは、アカウントが送信するトランザクションと、[事前承認された](depositauth.html#事前承認)アカウントからの資金だけを受領します。([DepositAuth](depositauth.html)が有効になっています。) | +| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | このアカウントの[Clawback](../../../../concepts/tokens/fungible-tokens/clawing-back-tokens.md)を有効にします。 _([Clawback Amendment][]が必要です。)_ | +| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | このアドレスのトラストラインでデフォルトで[rippling](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 | +| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | このアカウントは、アカウントが送信するトランザクションと、[事前承認された](../../../../concepts/accounts/depositauth.md#事前承認)アカウントからの資金だけを受領します。([DepositAuth](../../../../concepts/accounts/depositauth.md)が有効になっています。) | | `lsfDisableMaster` | `0x00100000` | 1048576 | `asfDisableMaster` | このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 | | `lsfDisallowIncomingCheck` | `0x08000000` | 134217728 | `asfDisallowIncomingCheck` | このアカウントを宛先とするチェックの作成をブロックします。 _([DisallowIncoming Amendment][]により追加されました。)_ | | `lsfDisallowIncomingNFTokenOffer` | `0x04000000` | 67108864 | `asfDisallowIncomingNFTokenOffer` | このアカウントを宛先とするNFTokenオファーの作成をブロックします。 _([DisallowIncoming Amendment][]により追加されました。)_ | @@ -103,9 +103,9 @@ AccountRootオブジェクトは`Flags`フィールドに以下のフラグを | `lsfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` | このアカウントは、他のユーザーがこのアカウントのトークンを保有することを個別に承認する必要があります。 | | `lsfRequireDestTag` | `0x00020000` | 131072 | `asfRequireDest` | 受信ペイメントには宛先タグの指定が必要です。 | -## {{currentpage.name}}の準備金 +## {% $frontmatter.seo.title %}の準備金 -AccountRootエントリの[準備金](reserves.html)は、特別なAMM AccountRootの場合を除き、現在の基本準備金である{{target.base_reserve}}です。 +AccountRootエントリの[準備金](../../../../concepts/accounts/reserves.md)は、特別なAMM AccountRootの場合を除き、現在の基本準備金である{% $env.PUBLIC_BASE_RESERVE %}です。 このXRPは他人に送ることはできませんが、[トランザクションコスト][]の一部として利用することができます。 @@ -116,7 +116,4 @@ AccountRootエントリのIDは、以下の値がこの順序で連結されて * Accountスペースキー(`0x0061`) * アカウントのAccountID - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amendments.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amendments.md index d44f69b3db..7d6bd4225f 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amendments.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amendments.md @@ -8,9 +8,9 @@ labels: # Amendments [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L110-L113 "Source") -`Amendments`オブジェクトタイプには、現在アクティブな[Amendment](amendments.html)のリストが含まれています。各レジャーバージョンには**最大で1つの** `Amendments`オブジェクトが含まれています。 +`Amendments`オブジェクトタイプには、現在アクティブな[Amendment](../../../../concepts/networks-and-servers/amendments.md)のリストが含まれています。各レジャーバージョンには**最大で1つの** `Amendments`オブジェクトが含まれています。 -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 ```json { @@ -34,11 +34,11 @@ labels: } ``` -## {{currentpage.name}}のフィールド +## {% $frontmatter.seo.title %}のフィールド | 名前 | JSONの型 | [内部の型][] | 説明 | |-------------------|-----------|-------------------|-------------| -| `Amendments` | 配列 | STI_VECTOR256 | _(省略可)_ 現在有効なすべてのAmendmentの256ビット[Amendment ID](amendments.html)からなる配列。省略されている場合は、有効なAmendmentがありません。 | +| `Amendments` | 配列 | STI_VECTOR256 | _(省略可)_ 現在有効なすべてのAmendmentの256ビット[Amendment ID](../../../../concepts/networks-and-servers/amendments.md)からなる配列。省略されている場合は、有効なAmendmentがありません。 | | `Majorities` | 配列 | STI_ARRAY | _(省略可)_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 | | `Flags` | 数値 | UInt32 | ブール値フラグのビットマップ。Amendmentオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`です。 | | `LedgerEntryType` | 文字列 | UInt16 | 値が `0x0066`(文字列`Amendments`にマッピング)の場合は、このオブジェクトがXRP Ledgerに対するAmendmentのステータスを記述していることを示します。 | @@ -48,9 +48,9 @@ labels: | 名前 | JSONの型 | [内部の型][] | 説明 | |-------------------|-----------|-------------------|-------------| | `Amendment` | 文字列 | Hash256 | 保留中のAmendmentのAmendment ID。 | -| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](ledger-header.html)。 | +| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](../ledger-header.md)。 | -[Amendmentプロセス](amendments.html#amendmentプロセス)では、80%以上のバリデータが新しいAmendmentを支持してバリデータのコンセンサスが得られると、`tfGotMajority`フラグを指定した[EnableAmendment][]疑似トランザクションを使用してこの新しいAmendmentが`Majorities`フィールドに追加されます。保留中のAmendmentの支持が80%を下回ると、`tfLostMajority`フラグが指定された[EnableAmendment][]疑似トランザクションによりそのAmendmentが`Majorities`配列から削除されます。Amendmentが`Majorities`フィールドに含まれている状態が2週間以上継続している場合、フラグが指定されていない[EnableAmendment][]疑似トランザクションによってそのAmendmentは`Majorities`から削除され、`Amendments`フィールドに恒久的に追加されます。 +[Amendmentプロセス](../../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)では、80%以上のバリデータが新しいAmendmentを支持してバリデータのコンセンサスが得られると、`tfGotMajority`フラグを指定した[EnableAmendment][]疑似トランザクションを使用してこの新しいAmendmentが`Majorities`フィールドに追加されます。保留中のAmendmentの支持が80%を下回ると、`tfLostMajority`フラグが指定された[EnableAmendment][]疑似トランザクションによりそのAmendmentが`Majorities`配列から削除されます。Amendmentが`Majorities`フィールドに含まれている状態が2週間以上継続している場合、フラグが指定されていない[EnableAmendment][]疑似トランザクションによってそのAmendmentは`Majorities`から削除され、`Amendments`フィールドに恒久的に追加されます。 **注記:** 実際には、レジャー内のすべてのトランザクションは、その直前のレジャーバージョンで有効になっているAmendmentに基づいて処理されます。Amendmentが有効になったレジャーバージョンにトランザクションを適用する場合、このルールでは中間レジャーは変更されません。レジャーの閉鎖後、適用された新しいAmendmentにより定義される新しいルールが次のレジャーで使用されます。 @@ -64,7 +64,4 @@ labels: (`Amendments`レジャーオブジェクトタイプのIDと、個々のAmendmentのAmendment IDを混同しないでください。) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amm.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amm.md index 854dd913f9..310864a559 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amm.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/amm.md @@ -9,9 +9,9 @@ status: not_enabled # AMM [[ソース]](https://github.com/xrplf/rippled/blob/c1e4bfb08bcc9f187d794a71d653003a6148dc68/src/ripple/protocol/impl/LedgerFormats.cpp#L265-L275 "Source") -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ -`AMM`レジャーエントリは、単一の[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスを表します。これは常に[特殊な AccountRootエントリ](accountroot.html#ammの特殊なaccountrootエントリ)と対になっています。 +`AMM`レジャーエントリは、単一の[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスを表します。これは常に[特殊な AccountRootエントリ](accountroot.md#ammの特殊なaccountrootエントリ)と対になっています。 ## AMM JSONの例 @@ -75,7 +75,7 @@ _([AMM amendment][] :not_enabled:が必要です。)_ |:-----------------|:--------------------|:------------------|:----------|--------------| | `Asset` | オブジェクト | STIssue | はい | このAMMが保有する2つのアセットのうちの1つの定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 | | `Asset2` | オブジェクト | STIssue | はい | このAMMが保有するもう一つの資産の定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 | -| `Account` | 文字列 | AccountID | はい | このAMMの資産を保有する[特殊なアカウント](accountroot.html#ammの特殊なaccountrootエントリ)のアドレス。 | +| `Account` | 文字列 | AccountID | はい | このAMMの資産を保有する[特殊なアカウント](accountroot.md#ammの特殊なaccountrootエントリ)のアドレス。 | | `AuctionSlot` | オブジェクト | STObject | いいえ | オークションスロットの現在の所有者の詳細。[オークションスロットオブジェクト](#オークションスロットオブジェクト)形式です。| | `LPTokenBalance` | [通貨額][] | Amount | はい | AMMインスタンスの流動性供給者トークンの発行残高の合計。このトークンの保有者は、保有量に比例してAMMの取引手数料に投票したり、取引手数料の徴収とともに増えていくAMMの資産の一部とトークンを交換したりすることができます。 | | `TradingFee` | 数値 | UInt16 | はい | AMMインスタンスに対する取引に課される手数料のパーセンテージを1/100,000の単位で指定します。最大値は1000で、これは1%の手数料となります。 | @@ -93,9 +93,9 @@ _([AMM amendment][] :not_enabled:が必要です。)_ | `Price` | [通貨額][] | Amount | はい | オークションスロットの所有者がこのスロットを落札するために支払った金額(LPトークン)。 | | `Expiration` | 文字列 | UInt32 | はい | このスロットの有効期限が切れる[Rippleエポック以降の経過秒数][]で指定した時刻。 | -## {{currentpage.name}}の準備金 +## {% $frontmatter.seo.title %}の準備金 -`{{currentpage.name}}`エントリは準備金が不要です。 +{% code-page-name /%}エントリは準備金が不要です。 ## AMM フラグ @@ -113,7 +113,4 @@ _([AMM amendment][] :not_enabled:が必要です。)_ XRPの場合、トークン・発行者ともに全て0を使用します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/bridge.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/bridge.md index c3abfd18d6..cb0f8b7d66 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/bridge.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/bridge.md @@ -7,7 +7,7 @@ labels: status: not_enabled --- # Bridge -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L286-L300 "ソース") @@ -46,7 +46,7 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ ## Bridgeのフィールド -[共通フィールド](ledger-entry-common-fields.html)に加えて、`{{currentpage.name}}`エントリは次のフィールドを持ちます。 +[共通フィールド](../common-fields.md)に加えて、{% code-page-name /%}エントリは次のフィールドを持ちます。 | フィールド | JSONの型 | 内部の型 | 必須? | 説明 | |:---------------------------|:-------------|:--------------|:------|:----| @@ -68,8 +68,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/check.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/check.md index 169a365a98..607e71266f 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/check.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/check.md @@ -10,9 +10,9 @@ labels: _([Checks Amendment][]が必要です)_ -`Check`オブジェクトはCheckを表します。Checkは紙の個人小切手に似ており、送金先はCheckを換金して送金元からの資金を獲得できます。(予定されている支払いは送金元によりすでに承認されていますが、換金されるまでは資金の移動は発生しません。[Escrow](escrow.html)とは異なり、Checkの資金は預託されず、資金不足が原因でCheckの換金が失敗することがあります。) +`Check`オブジェクトはCheckを表します。Checkは紙の個人小切手に似ており、送金先はCheckを換金して送金元からの資金を獲得できます。(予定されている支払いは送金元によりすでに承認されていますが、換金されるまでは資金の移動は発生しません。[Escrow](../../../../concepts/payment-types/escrow.md)とは異なり、Checkの資金は預託されず、資金不足が原因でCheckの換金が失敗することがあります。) -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -33,7 +33,7 @@ _([Checks Amendment][]が必要です)_ } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `Check`オブジェクトのフィールドは次のとおりです。 @@ -63,8 +63,6 @@ _([Checks Amendment][]が必要です)_ * Checkスペースキー(`0x0043`) * `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。 * `Check`オブジェクトを作成した[CheckCreateトランザクション][]のシーケンス番号。 - CheckCreateトランザクションが[Ticket](tickets.html)を使用する場合は、代わりに`TicketSequence`値を使用します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + CheckCreateトランザクションが[Ticket](../../../../concepts/accounts/tickets.md)を使用する場合は、代わりに`TicketSequence`値を使用します。 + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md index 11d51a9172..4cc2e89561 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md @@ -10,9 +10,9 @@ labels: `DepositPreauth`オブジェクトはアカウント間の事前承認を追跡します。[DepositPreauthトランザクション][]によりこれらのオブジェクトが作成されます。 -これは、事前承認を付与したアカウントに[Deposit Authorization](depositauth.html)が不要な場合は、トランザクションの処理に影響しません。その場合、事前承認されたアカウントから、事前承認を付与したアカウントに対して、支払やその他のトランザクションを直接送信できます。事前認証は一方向であり、反対方向の支払には影響しません。 +これは、事前承認を付与したアカウントに[Deposit Authorization](../../../../concepts/accounts/depositauth.md)が不要な場合は、トランザクションの処理に影響しません。その場合、事前承認されたアカウントから、事前承認を付与したアカウントに対して、支払やその他のトランザクションを直接送信できます。事前認証は一方向であり、反対方向の支払には影響しません。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -27,7 +27,7 @@ labels: } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `DepositPreauth`オブジェクトのフィールドは次のとおりです。 @@ -50,7 +50,4 @@ labels: * このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザー)のAccountID。 * 事前承認されたアカウント(このオブジェクトを作成した[DepositPreauthトランザクション][]の`Authorized`フィールド、つまり事前承認を受けたユーザー)のAccountID。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/did.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/did.md index 7cf8f332d0..c45ca0b0d9 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/did.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/did.md @@ -9,9 +9,9 @@ status: not_enabled # DID [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L330-L341 "ソース) -_([DID Amendment][] :not_enabled: が必要です。)_ +_([DID Amendment][] {% not-enabled /%} が必要です。)_ -`DID`のレジャーエントリは、単一の[DID](decentralized-identifiers.html)への参照、またはそれに関連するデータを保持します。 +`DID`のレジャーエントリは、単一の[DID](../../../../concepts/accounts/decentralized-identifiers.md)への参照、またはそれに関連するデータを保持します。 ## DID JSONの例 @@ -33,7 +33,7 @@ _([DID Amendment][] :not_enabled: が必要です。)_ ## DIDのフィールド -[共通フィールド][]に加えて、{{currentpage.name}}エントリは以下のフィールドを使用します。 +[共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:--------------------|:----------|:-----------|:------|--------------| @@ -47,14 +47,14 @@ _([DID Amendment][] :not_enabled: が必要です。)_ | `URI` | 文字列 | Blob | いいえ | 対応するDIDドキュメントまたはDIDに関連付けられたデータを指すユニバーサルリソース識別子。このフィールドにはHTTP(S)URLまたはIPFS URIを指定できます。このフィールドの有効性はチェックされず、最大長は256バイトに制限されます。 | -## {{currentpage.name}}の準備金 +## {% $frontmatter.seo.title %}の準備金 -`{{currentpage.name}}`オブジェクトを作成したアカウントには、1つの所有者準備金が発生します。 +{% code-page-name /%}オブジェクトを作成したアカウントには、1つの所有者準備金が発生します。 -## {{currentpage.name}}のフラグ +## {% $frontmatter.seo.title %}のフラグ -`{{currentpage.name}}`エントリにはフラグが定義されていません。 +{% code-page-name /%}エントリにはフラグが定義されていません。 ## DID IDのフォーマット @@ -64,8 +64,4 @@ _([DID Amendment][] :not_enabled: が必要です。)_ 1. `DID`のスペースキー(`0x0049`). 2. DIDを管理するAccountID。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/directorynode.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/directorynode.md index 2a6ffcb047..27edaaf1b1 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/directorynode.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/directorynode.md @@ -9,19 +9,18 @@ labels: # DirectoryNode [[ソース]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L44 "Source") -`DirectoryNode`オブジェクトタイプは、レジャーの状態ツリー内の他オブジェクトへのリンクのリストを提供します。概念上の1つの _ディレクトリー_ は、1つ以上の各DirectoryNodeオブジェクトが含まれる二重リンクリストの形式になっています。各DirectoryNodeオブジェクトには、他オブジェクトの[ID](ledger-object-ids.html)が最大32個まで含まれています。1番目のオブジェクトはディレクトリーのルートと呼ばれ、ルートオブジェクト以外のオブジェクトはすべて必要に応じて自由に追加または削除できます。 +`DirectoryNode`オブジェクトタイプは、レジャーの状態ツリー内の他オブジェクトへのリンクのリストを提供します。概念上の1つの _ディレクトリー_ は、1つ以上の各DirectoryNodeオブジェクトが含まれる二重リンクリストの形式になっています。各DirectoryNodeオブジェクトには、他オブジェクトの[ID](../common-fields.md)が最大32個まで含まれています。1番目のオブジェクトはディレクトリーのルートと呼ばれ、ルートオブジェクト以外のオブジェクトはすべて必要に応じて自由に追加または削除できます。 2種類のディレクトリーがあります。 * **所有者ディレクトリー**は、アカウントが所有するその他のオブジェクト(`RippleState`オブジェクトや`Offer`オブジェクトなど)をリストします。 * **オファーディレクトリー**は、分散型取引所で利用可能なオファーをリストします。1つのオファーディレクトリーには、同一イシュアンスに同一為替レートが設定されているすべてのオファーが含まれます。 -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 - - -*オファーディレクトリー* +{% tabs %} +{% tab label="オファーディレクトリー" %} ```json { "ExchangeRate": "4F069BA8FF484000", @@ -38,9 +37,9 @@ labels: "index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000" } ``` +{% /tab %} -*所有者ディレクトリー* - +{% tab label="所有者ディレクトリー" %} ```json { "Flags": 0, @@ -54,10 +53,11 @@ labels: "index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94" } ``` +{% /tab %} - +{% /tabs %} -## {{currentpage.name}}のフィールド +## {% $frontmatter.seo.title %}のフィールド | 名前 | JSONの型 | [内部の型][] | 説明 | |-------------------|-----------|---------------|-------------| @@ -103,7 +103,4 @@ DirectoryNodeのIDを作成するときには、DirectoryNodeが以下のどの * ルートDirectoryNodeのID * このオブジェクトのページ番号(ルートDirectoryNodeは0であるため、この値は1以上の整数値です。) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/escrow.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/escrow.md index ceb6e273d8..43dcec9555 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/escrow.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/escrow.md @@ -17,7 +17,7 @@ _([Escrow Amendment][]により追加されました。)_ - `Escrow`オブジェクトの作成時にXRPを供給する所有者。保留中の支払が取り消されると、XRPは所有者に返金されます。 - 保留中の支払が成功するとXRPが支払われる宛先。宛先は所有者と同じにできます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -39,7 +39,7 @@ _([Escrow Amendment][]により追加されました。)_ } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `Escrow`オブジェクトのフィールドは次のとおりです。 @@ -69,7 +69,4 @@ _([Escrow Amendment][]により追加されました。)_ * `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。 * `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]のシーケンス番号。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/feesettings.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/feesettings.md index d02a7fa4e0..11eda8b93c 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/feesettings.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/feesettings.md @@ -9,9 +9,9 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120 "Source") `FeeSettings`オブジェク -トタイプには、現在の基本[トランザクションコスト](transaction-cost.html)と、[手数料投票](fee-voting.html)により決定する[準備金の額](reserves.html)が含まれています。各レジャーバージョンには**最大で1つの** `FeeSettings`オブジェクトが含まれています。 +トタイプには、現在の基本[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)と、[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)により決定する[準備金の額](../../../../concepts/accounts/reserves.md)が含まれています。各レジャーバージョンには**最大で1つの** `FeeSettings`オブジェクトが含まれています。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 `FeeSettings`オブジェクトの例。 @@ -27,17 +27,17 @@ labels: } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `FeeSettings`オブジェクトのフィールドは次のとおりです。 | 名前 | JSONの型 | [内部の型][] | 説明 | |:--------------------|:----------|:------------------|:-----------------------| | `LedgerEntryType` | 文字列 | UInt16 | 値`0x0073`が文字列`FeeSettings`にマッピングされている場合は、このオブジェクトにレジャーの手数料設定が含まれていることを示します。 | -| `BaseFee` | 文字列 | UInt64 | 「リファレンストランザクション」の[トランザクションコスト](transaction-cost.html)(XRPのdrop数、16進数) | +| `BaseFee` | 文字列 | UInt64 | 「リファレンストランザクション」の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)(XRPのdrop数、16進数) | | `ReferenceFeeUnits` | 数値 | UInt32 | 「手数料単位」に変換された`BaseFee` | -| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 | -| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 | +| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)(XRPのdrop数)。 | +| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)(XRPのdrop数)。 | | `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | **警告:** このレジャーオブジェクトのJSONフォーマットは一般的ではありません。`BaseFee`、`ReserveBase`、および`ReserveIncrement`はXRPのdrop数を示しますが、通常の[XRP指定][通貨額]フォーマットでは***ありません*** 。 @@ -50,7 +50,4 @@ labels: 4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651 ``` - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/index.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/index.md index a38da5c12b..8fc6eacc03 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/index.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/index.md @@ -1,10 +1,14 @@ --- html: ledger-entry-types.html parent: ledger-data-formats.html -template: pagetype-category.html.jinja +metadata: + indexPage: true labels: - データ保持 --- # レジャーエントリのタイプ -{% include '_snippets/ledger-objects-intro.ja.md' %} +{% partial file="/_snippets/ledger-objects-intro.md" /%} + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md index 0c3e7911aa..1901656164 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md @@ -44,7 +44,7 @@ labels: | 名前 | JSONの型 | [内部の型][] | 説明 | |-------------------|-----------|-------------------|-------------| | `LedgerEntryType` | 文字列 | UInt16 | 値`0x0068`が文字列`LedgerHashes`にマッピングされている場合は、このオブジェクトがレジャーハッシュのリストであることを示します。 | -| `FirstLedgerSequence` | 数値 | UInt32 | **廃止予定** 使用しないでください。(本番環境のXRP Ledgerの「最近のハッシュ」オブジェクトでは、このフィールドの値は`2`です。これは、以前の`rippled`ソフトウェアによるものです。この値は「最近のハッシュ」オブジェクトの更新に伴い持ち越されます。このフィールドは新しい「過去の履歴」オブジェクトには含まれていません。また、新しいバージョンの`rippled`で導入された[並列ネットワーク](parallel-networks.html)の「最近のハッシュ」オブジェクトにも含まれていません。) | +| `FirstLedgerSequence` | 数値 | UInt32 | **廃止予定** 使用しないでください。(本番環境のXRP Ledgerの「最近のハッシュ」オブジェクトでは、このフィールドの値は`2`です。これは、以前の`rippled`ソフトウェアによるものです。この値は「最近のハッシュ」オブジェクトの更新に伴い持ち越されます。このフィールドは新しい「過去の履歴」オブジェクトには含まれていません。また、新しいバージョンの`rippled`で導入された[並列ネットワーク](../../../../concepts/networks-and-servers/parallel-networks.md)の「最近のハッシュ」オブジェクトにも含まれていません。) | | `LastLedgerSequence` | 数値 | UInt32 | このオブジェクトの`Hashes`配列の最後の要素の[レジャーインデックス][]。 | | `Hashes` | 文字列の配列 | STI_VECTOR256 | 最大256個のレジャーハッシュからなる配列。その内容は、これが`LedgerHashes`オブジェクトのどのサブタイプであるかに応じて異なります。 | | `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | @@ -77,7 +77,4 @@ labels: **ヒント:** 65536で割ることで最上位16ビットが維持されます。これは、「過去の履歴」オブジェクトに含まれているすべてのフラッグレジャーでのみ同一です。この点を踏まえて、フラッグレジャーのハッシュが含まれている`LedgerHashes`オブジェクトを検索できます。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/negativeunl.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/negativeunl.md index bd5649320e..0787743eb0 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/negativeunl.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/negativeunl.md @@ -9,11 +9,11 @@ labels: _([NegativeUNL amendment][]により追加されました。)_ -`NegativeUNL`オブジェクトタイプは、[ネガティブUNL](negative-unl.html)の現在の状態、つまり現在オフラインであると考えられる信頼できるバリデーションのリストを含んでいます。 +`NegativeUNL`オブジェクトタイプは、[ネガティブUNL](../../../../concepts/consensus-protocol/negative-unl.md)の現在の状態、つまり現在オフラインであると考えられる信頼できるバリデーションのリストを含んでいます。 各台帳のバージョンには、**最大1つの**`NegativeUNL`オブジェクトが含まれます。無効になっているか、無効になる予定のバリデータがない場合、台帳には`NegativeUNL`オブジェクトは存在しません。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -61,7 +61,4 @@ _([NegativeUNL amendment][]により追加されました。)_ 2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244 ``` - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md index da04ce189c..ded5d5accf 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md @@ -11,7 +11,7 @@ labels: _([NonFungibleTokensV1_1 amendment][]により追加されました)_ -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -55,7 +55,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ## `NFTokenOffer`トランザクション -[代替可能トークンに対するOffer](offers.html)とは異なり、`NFTokenOffer`はオーダーブックに保存されず、自動的にマッチングされたり約定されたりすることはありません。買い手は売り手により提示されてた`NFTokenOffer`の受け入れを明示的に選択する必要があります。同様に、売り手は自分が所有する`NFToken`オブジェクトを買いたいと申し出た買い手の`NFTokenOffer`を受け入れることを明示的に選択しなければなりません。 +[代替可能トークンに対するOffer](../../../../concepts/tokens/decentralized-exchange/offers.md)とは異なり、`NFTokenOffer`はオーダーブックに保存されず、自動的にマッチングされたり約定されたりすることはありません。買い手は売り手により提示されてた`NFTokenOffer`の受け入れを明示的に選択する必要があります。同様に、売り手は自分が所有する`NFToken`オブジェクトを買いたいと申し出た買い手の`NFTokenOffer`を受け入れることを明示的に選択しなければなりません。 `NFToken`の取引のためのトランザクションは3つあります。 @@ -66,7 +66,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ### `NFTokenOffer`オブジェクトの検索 -各`NFToken`は、2つの[ディレクトリ](directorynode.html)があります。1つはトークンを購入するためのオファー、もう1つはトークンを売却するためのオファーが含まれています。マーケットプレイスやその他のクライアントアプリケーションは、ユーザに対し`NFToken`オブジェクトの取引オファーを提示したり、自動的にマッチングすることができます。 +各`NFToken`は、2つの[ディレクトリ](directorynode.md)があります。1つはトークンを購入するためのオファー、もう1つはトークンを売却するためのオファーが含まれています。マーケットプレイスやその他のクライアントアプリケーションは、ユーザに対し`NFToken`オブジェクトの取引オファーを提示したり、自動的にマッチングすることができます。 ### `NFTokenOffer`の準備金 @@ -82,8 +82,4 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ * オファーを出すアカウントの`AccountID` * `NFTokenCreateOffer`トランザクションが生成する`NFTokenCreateOffer`の`Sequence`(または`Ticket`) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md index c425fe3ae9..b2ca8d318a 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md @@ -12,7 +12,7 @@ labels: _([NonFungibleTokensV1_1 amendment][]により追加されました)_ -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -41,7 +41,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ページのサイズを最小にし、ストレージを最適化するために、`Owner`フィールドは存在しません。なぜなら、それはオブジェクトのレジャー識別子の一部としてエンコードされているからです。 -## {{currentpage.name}} フィールド +## {% $frontmatter.seo.title %} フィールド `NFTokenPage` オブジェクトは、以下の必須フィールドと任意フィールドを持つことができます。 @@ -100,7 +100,4 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ | 2 XRP | 2 XRP | 0.25 XRP | 0.125 XRP | 0.0625 XRP | 0.03125 XRP | | 1 XRP | 1 XRP | 0.125 XRP | 0.0625 XRP | 0.03125 XRP | 0.01562 XRP | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/offer.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/offer.md index 6c61a6e0b6..a6603caf0c 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/offer.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/offer.md @@ -8,13 +8,13 @@ labels: # Offer [[ソース]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L57 "Source") -台帳の`Offer`項目は、XRP Ledgerの[分散型取引所](decentralized-exchange.html)で通貨を交換する[オファー](offers.html)を表しています。(金融ではより伝統的に _オーダー_ として知られています)。[OfferCreateトランザクション][]は台帳にある他のOfferを全額約定できない場合、台帳に`Offer`項目を作成します。 +台帳の`Offer`項目は、XRP Ledgerの[分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)で通貨を交換する[オファー](../../../../concepts/tokens/decentralized-exchange/offers.md)を表しています。(金融ではより伝統的に _オーダー_ として知られています)。[OfferCreateトランザクション][]は台帳にある他のOfferを全額約定できない場合、台帳に`Offer`項目を作成します。 オファーがネットワーク上の他の活動によって資金不足になることはありますが、元帳には残ります。トランザクションを処理する際、ネットワークはトランザクションが見つけた資金不足のオファーを自動的に削除します。( _トランザクションのみ_ が台帳の状態を変更できるため、削除が行われないと資金不足のオファーが残ってしまいます。) -詳細は、[オファー](offers.html)を参照してください。 +詳細は、[オファー](../../../../concepts/tokens/decentralized-exchange/offers.md)を参照してください。 -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 ```json { @@ -37,14 +37,14 @@ labels: } ``` -## {{currentpage.name}}のフィールド +## {% $frontmatter.seo.title %}のフィールド `Offer`オブジェクトのフィールドを次に示します。 | 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | |-------------------|-----------|-----------|------|-------| | `Account` | 文字列 | AccountID | はい | このオファーを所有するアカウントのアドレス。 | -| `BookDirectory` | 文字列 | Hash256 | はい | このオファーにリンクしている[オファーディレクトリー](directorynode.html)のID。 | +| `BookDirectory` | 文字列 | Hash256 | はい | このオファーにリンクしている[オファーディレクトリー](directorynode.md)のID。 | | `BookNode` | 文字列 | UInt64 | はい | Offerディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。 | | `Expiration` | 数値 | UInt32 | いいえ | (省略可)このオファーが資金不足とみなされる時刻。詳細は、[時間の指定][]を参照してください。 | | `Flags` | 数値 | UInt32 | はい | このオファーに対して有効になっているブール値フラグのビットマップ。 | @@ -62,7 +62,7 @@ labels: `Offer`オブジェクトには以下のフラグ値を指定できます。 -| フラグ名 | 16進数値 | 10進数値 | 対応する[OfferCreateフラグ](offercreate.html#offercreateフラグ) | 説明 | +| フラグ名 | 16進数値 | 10進数値 | 対応する[OfferCreateフラグ](../../transactions/types/offercreate.md#offercreateフラグ) | 説明 | |-----------|-----------|---------------|-------------|------------------------| | lsfPassive | `0x00010000` | 65536 | tfPassive | オブジェクトはパッシブオファーとして発注されています。レジャー内のオブジェクトには影響しません。 | | lsfSell | `0x00020000` | 131072 | tfSell | オブジェクトは売却オファーとして発注されています。これは台帳にあるオブジェクトには何の影響もありません (`tfSell`は指定したレートよりも良いレートが存在する場合にのみ意味を持ち、台帳にこのフラグを持ったオブジェクトが入ることはありません。)。 | @@ -75,9 +75,6 @@ labels: * オファーを行うアカウントのAccountID * オファーを作成した[OfferCreateトランザクション][]のシーケンス番号 - OfferCreateトランザクションが[Ticket](tickets.html)を使用した場合、代わりに`TicketSequence`値を使用します。 + OfferCreateトランザクションが[Ticket](../../../../concepts/accounts/tickets.md)を使用した場合、代わりに`TicketSequence`値を使用します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/paychannel.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/paychannel.md index 2d96e87d14..11b1c72a53 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/paychannel.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/paychannel.md @@ -16,9 +16,9 @@ _([PayChan Amendment][]により追加されました。)_ 有効期限切れになったPayment Channelは、まずレジャーに残ります。これは、レジャーの内容を変更できるのは新しいトランザクションだけであるためです。有効期限の経過後にトランザクションがPayment Channelにアクセスすると、トランザクション処理によりそのPayment Channelは自動的に閉鎖されます。有効期限切れのChannelを閉鎖して未使用のXRPを所有者に返金するには、一部のアドレスがそのChannelにアクセスする新しいPaymentChannelClaimトランザクションまたはPaymentChannelFundトランザクションを送信する必要があります。 -Payment Channelの使用例については、[Payment Channelのチュートリアル](use-payment-channels.html)を参照してください。 +Payment Channelの使用例については、[Payment Channelのチュートリアル](../../../../tutorials/use-specialized-payment-types/use-payment-channels.md)を参照してください。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -41,7 +41,7 @@ Payment Channelの使用例については、[Payment Channelのチュートリ } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `PayChannel`オブジェクトのフィールドは次のとおりです。 @@ -58,8 +58,8 @@ Payment Channelの使用例については、[Payment Channelのチュートリ | `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | | `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | | `Flags` | 数値 | UInt32 | このPayment Channelに対して有効になっているブールフラグのビットマップ。現在、プロトコルでは`PayChannel` オブジェクトのフラグは定義されていません。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ このPayment Channelの変更可能な有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)を参照してください。 | -| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このPayment Channelの不変の有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。これは、Channelを作成するトランザクションによりオプションで設定され、変更できません。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ このPayment Channelの変更可能な有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](../ledger-header.md)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)を参照してください。 | +| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このPayment Channelの不変の有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](../ledger-header.md)よりも小さい場合、Channelは有効期限切れです。これは、Channelを作成するトランザクションによりオプションで設定され、変更できません。 | | `SourceTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの支払元(所有者のアドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | | `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | | `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fixPayChanRecipientOwnerDir Amendment][]を有効にする前に作成されたPayment Channelでは省略されています。 | @@ -67,7 +67,7 @@ Payment Channelの使用例については、[Payment Channelのチュートリ ## Channel有効期限の設定 -Payment Channelの`Expiration`フィールドは、`CancelAfter`フィールドが表す不変の有効期限とは対照的な変更可能な有効期限です。Channelの有効期限は常に、前のレジャーの[`close_time`フィールド](ledger-header.html)を基準にしているものとみなされます。`PayChannel`オブジェクトの作成時には、`Expiration`フィールドが省略されます。`PayChannel`オブジェクトの`Expiration`フィールドはさまざまな方法で更新できます。要約すると、Channelが最初の閉鎖試行操作の後、`SettleDelay`秒以上常に開いたままであれば、Channelの支払元アドレスはChannelの`Expiration`を自由に設定できます。 +Payment Channelの`Expiration`フィールドは、`CancelAfter`フィールドが表す不変の有効期限とは対照的な変更可能な有効期限です。Channelの有効期限は常に、前のレジャーの[`close_time`フィールド](../ledger-header.md)を基準にしているものとみなされます。`PayChannel`オブジェクトの作成時には、`Expiration`フィールドが省略されます。`PayChannel`オブジェクトの`Expiration`フィールドはさまざまな方法で更新できます。要約すると、Channelが最初の閉鎖試行操作の後、`SettleDelay`秒以上常に開いたままであれば、Channelの支払元アドレスはChannelの`Expiration`を自由に設定できます。 ### 支払元アドレス @@ -103,7 +103,4 @@ Payment Channelの`Expiration`フィールドは、`CancelAfter`フィールド * 宛先アカウントのAccountID * Channelを作成したトランザクションのシーケンス番号 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ripplestate.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ripplestate.md index 6c083bf770..744f66b24f 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ripplestate.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ripplestate.md @@ -12,7 +12,7 @@ labels: XRP Ledgerではどのアカウントにも権限がないため、`RippleState`オブジェクトはアカウントアドレスを数値順にソートし、正規の形式になるようにします。数値順の低いアドレスは「低位アカウント」と見なされ、数値順の高いアドレスは「高位アカウント」と見なされます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -41,7 +41,7 @@ XRP Ledgerではどのアカウントにも権限がないため、`RippleState` } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `RippleState`オブジェクトのフィールドは次のとおりです。 @@ -49,7 +49,7 @@ XRP Ledgerではどのアカウントにも権限がないため、`RippleState` |-----------------|-----------|---------------|-------------| | `LedgerEntryType` | 文字列 | UInt16 | 値`0x0072`が文字列`RippleState`にマッピングされている場合は、このオブジェクトがRippleStateオブジェクトであることを示します。 | | `Flags` | 数値 | UInt32 | このオブジェクトに対して有効になっているブールオプションのビットマップ。 | -| `Balance` | オブジェクト | Amount | 低位アカウントからみたトラストラインの残高。残高がマイナスの場合、低位アカウントから高位アカウントに対して通貨が発行されています。この場合のイシュアーは常に中立値[ACCOUNT_ONE](addresses.html#特別なアドレス)に設定されます。 | +| `Balance` | オブジェクト | Amount | 低位アカウントからみたトラストラインの残高。残高がマイナスの場合、低位アカウントから高位アカウントに対して通貨が発行されています。この場合のイシュアーは常に中立値[ACCOUNT_ONE](../../../../concepts/accounts/addresses.md#特別なアドレス)に設定されます。 | | `LowLimit` | オブジェクト | Amount | 低位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した低位アカウントのアドレスです。 | | `HighLimit` | オブジェクト | Amount | 高位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した高位アカウントのアドレスです。 | | `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | @@ -67,20 +67,20 @@ XRP Ledgerではどのアカウントにも権限がないため、`RippleState` RippleStateオブジェクトには以下のフラグ値を指定できます。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | 対応する[TrustSetフラグ](trustset.html#trustsetのフラグ) | +| フラグ名 | 16進数値 | 10進数値 | 説明 | 対応する[TrustSetフラグ](../../transactions/types/trustset.md#trustsetのフラグ) | |-----------|-----------|---------------|-------------|------------------------| | lsfLowReserve | 0x00010000 | 65536 | このRippleStateオブジェクトは[低位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) | | lsfHighReserve | 0x00020000 |131072 | このRippleStateオブジェクトは[高位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) | | lsfLowAuth | 0x00040000 | 262144 | 低位アカウントにより、高位アカウントが低位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth | | lsfHighAuth | 0x00080000 | 524288 | 高位アカウントにより、低位アカウントが高位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth | -| lsfLowNoRipple | 0x00100000 | 1048576 | 低位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple | -| lsfHighNoRipple | 0x00200000 | 2097152 | 高位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple | +| lsfLowNoRipple | 0x00100000 | 1048576 | 低位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](../../../../concepts/tokens/fungible-tokens/rippling.md)。 | tfSetNoRipple | +| lsfHighNoRipple | 0x00200000 | 2097152 | 高位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](../../../../concepts/tokens/fungible-tokens/rippling.md)。 | tfSetNoRipple | | lsfLowFreeze | 0x00400000 | 4194304 | 低位アカウントがトラストラインを凍結しており、高位アカウントから資産を移動できません。 | tfSetFreeze | | lsfHighFreeze | 0x00800000 | 8388608 | 高位アカウントがトラストラインを凍結しており、低位アカウントから資産を移動できません。 | tfSetFreeze | ## 所有者の準備金への資金供給 -アカウントがトラストラインをデフォルト以外の状態に変更した場合、そのトラストラインはアカウントの[所有者準備金](reserves.html#所有者準備金)に反映されます。RippleStateオブジェクトの`lsfLowReserve`フラグと`lsfHighReserve`フラグは、いずれのアカウントが所有者準備金に責任があるかを示します。`rippled`サーバーは、トラストラインの変更時にこれらのフラグを自動的に設定します。 +アカウントがトラストラインをデフォルト以外の状態に変更した場合、そのトラストラインはアカウントの[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)に反映されます。RippleStateオブジェクトの`lsfLowReserve`フラグと`lsfHighReserve`フラグは、いずれのアカウントが所有者準備金に責任があるかを示します。`rippled`サーバーは、トラストラインの変更時にこれらのフラグを自動的に設定します。 トラストラインのデフォルト以外の状態に反映される値は以下の通りです。 @@ -95,7 +95,7 @@ RippleStateオブジェクトには以下のフラグ値を指定できます。 **lsfLowAuth**フラグと**lsfHighAuth**フラグは無効にできないため、デフォルト状態に不利に作用することはありません。 -2つのNoRippleフラグのデフォルト状態は、対応するAccountRootオブジェクトの[lsfDefaultRippleフラグ](accountroot.html#accountrootのフラグ)の状態によって異なります。DefaultRippleが無効の場合(デフォルト)、アカウントのすべてのトラストラインのlsfNoRippleフラグはデフォルトで _有効_ となります。アカウントがDefaultRippleを有効にすると、アカウントのトラストラインのlsfNoRippleフラグはデフォルトで _無効_ となります(Ripplingが有効になります)。 +2つのNoRippleフラグのデフォルト状態は、対応するAccountRootオブジェクトの[lsfDefaultRippleフラグ](accountroot.md#accountrootのフラグ)の状態によって異なります。DefaultRippleが無効の場合(デフォルト)、アカウントのすべてのトラストラインのlsfNoRippleフラグはデフォルトで _有効_ となります。アカウントがDefaultRippleを有効にすると、アカウントのトラストラインのlsfNoRippleフラグはデフォルトで _無効_ となります(Ripplingが有効になります)。 **注記:** `rippled`バージョン0.27.3(2015年3月10日)にてDefaultRippleフラグが導入される前は、すべてのトラストラインはデフォルトで両方のNoRippleフラグが無効になっていました(Ripplingは有効)。 @@ -110,7 +110,4 @@ RippleStateオブジェクトのIDは、以下の値がこの順序で連結さ * 高位アカウントのAccountID * トラストラインの160ビットの通貨コード - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/signerlist.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/signerlist.md index e4392266c5..ea484a9669 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/signerlist.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/signerlist.md @@ -13,7 +13,7 @@ _([MultiSign Amendment][]により追加されました。)_ `SignerList`オブジェクトタイプは、個別アカウントの代わりにグループとしてトランザクション署名をすることが承認されている署名者のリストです。[SignerListSetトランザクション][]を使用して、SignerListを作成、置き換え、または削除できます。 -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 ```json { @@ -48,7 +48,7 @@ _([MultiSign Amendment][]により追加されました。)_ } ``` -## {{currentpage.name}}のフィールド +## {% $frontmatter.seo.title %}のフィールド `SignerList`オブジェクトのフィールドを次に示します。 @@ -60,7 +60,7 @@ _([MultiSign Amendment][]により追加されました。)_ | `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | | `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | | `SignerEntries` | 配列 | 配列 | この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。 | -| `SignerListID` | 数値 | UInt32 | この署名者リストのID。現時点では常に`0`に設定されます。今後の[Amendment](amendments.html)によってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。 | +| `SignerListID` | 数値 | UInt32 | この署名者リストのID。現時点では常に`0`に設定されます。今後の[Amendment](../../../../concepts/networks-and-servers/amendments.md)によってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。 | | `SignerQuorum` | 数値 | UInt32 | 署名者の重みのターゲット数。署名者がこのSignerListの所有者に代わって有効な署名を生成するには、重みの合計がこの数値以上である有効な署名を提出する必要があります。 | `SignerEntries`は、secp256k1キーまたはed25519キーを使用する資金供給のあるアドレスと資金供給のないアドレスの自由な組み合わせです。 @@ -75,9 +75,9 @@ _([MultiSign Amendment][]により追加されました。)_ | `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチシグは、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 | | `WalletLocator` | 文字列 | Hash256 | (省略可)任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。[ExpandedSignerList amendment][]により追加されました。 | -マルチシグトランザクションを処理する際に、サーバーはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.html)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。 +マルチシグトランザクションを処理する際に、サーバーはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.md)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。 -## {{currentpage.name}}のフラグ +## {% $frontmatter.seo.title %}のフラグ _([MultiSignReserve Amendment][]が必要です.)_ @@ -85,13 +85,13 @@ SignerListオブジェクトには以下のフラグ値を指定できます。 | フラグ名 | 16進値 | 10進値 | 説明 | |:-----------------|:-----------|:--------------|:-------------------------------| -| lsfOneOwnerCount | 0x00010000 | 65536 | このフラグが有効な場合、SignerListは[所有者準備金](reserves.html#所有者準備金)の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。[MultiSignReserve Amendment][]が有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。 | +| lsfOneOwnerCount | 0x00010000 | 65536 | このフラグが有効な場合、SignerListは[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。[MultiSignReserve Amendment][]が有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。 | ## SignerListと準備金 -SignerListは、所有者の[必要準備金](reserves.html)の対象となります。 +SignerListは、所有者の[必要準備金](../../../../concepts/accounts/reserves.md)の対象となります。 -[MultiSignReserve Amendment][]が有効ではない場合、SignerList自体が2つのオブジェクトとしてカウントされ、リストの各メンバーが1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金の合計は、1つのトラストライン([RippleState](ripplestate.html))またはレジャーの[Offer](offer.html)オブジェクトで必要な準備金の3~10倍になります。 +[MultiSignReserve Amendment][]が有効ではない場合、SignerList自体が2つのオブジェクトとしてカウントされ、リストの各メンバーが1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金の合計は、1つのトラストライン([RippleState](ripplestate.md))またはレジャーの[Offer](offer.md)オブジェクトで必要な準備金の3~10倍になります。 [MultiSignReserve Amendment][]が有効となれば、SignerListはそのメンバーの数に関わらず、1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金は、メンバーの数に関わらず5 XRPになります。 @@ -105,7 +105,4 @@ SignerListオブジェクトのIDは、以下の値がこの順序で連結さ * SignerListの所有者のAccountID * SignerListID(現時点では常に`0`) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ticket.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ticket.md index 55d71ae5fc..1a550aff4f 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ticket.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/ticket.md @@ -11,9 +11,9 @@ labels: _([TicketBatch amendment][]が必要です)_ -`Ticket`オブジェクトタイプは、将来の使用のために確保されたアカウント[シーケンス番号](basic-data-types.html#アカウントシーケンス)を追跡する[Ticket](tickets.html)を表します。[TicketCreate トランザクション][]で新しいチケットを作成することができます。[New in: rippled 1.7.0][]. +`Ticket`オブジェクトタイプは、将来の使用のために確保されたアカウント[シーケンス番号](../../data-types/basic-data-types.md#アカウントシーケンス)を追跡する[Ticket](../../../../concepts/accounts/tickets.md)を表します。[TicketCreate トランザクション][]で新しいチケットを作成することができます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}New in: rippled 1.7.0{% /badge %}. -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -27,21 +27,21 @@ _([TicketBatch amendment][]が必要です)_ } ``` -## {{currentpage.name}}フィールド +## {% $frontmatter.seo.title %}フィールド `Ticket`オブジェクトのフィールドは次のとおりです。 | フィールド | JSONの型 | 内部の型 | 説明      | |:--------------------|:----------|:--------------|:---------------------------| -| `LedgerEntryType` | 文字列 | UInt16 | 文字列 `Ticket` にマッピングされた値 `0x0054` は、このオブジェクトが {{currentpage.name}} オブジェクトであることを示しています。 | -| `Account` | 文字列 | AccountID | このチケットを所有する[アカウント](accounts.html)です。 | +| `LedgerEntryType` | 文字列 | UInt16 | 文字列 `Ticket` にマッピングされた値 `0x0054` は、このオブジェクトが {% $frontmatter.seo.title %} オブジェクトであることを示しています。 | +| `Account` | 文字列 | AccountID | このチケットを所有する[アカウント](../../../../concepts/accounts/accounts.md)です。 | | `Flags` | Number | UInt32 | ブール値フラグのビットマップ。Ticketにはフラグが定義されていないため、この値は常に0です。 | | `OwnerNode` | 文字列 | UInt64 | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。注記: このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更した[トランザクション](transactions.html)の識別用ハッシュ。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更した[トランザクション](../../../../concepts/transactions/index.md)の識別用ハッシュ。 | | `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][Ledger Index]。 | | `TicketSequence` | 数値 | UInt32 | 本チケットが設定する[シーケンス番号][]。 | -## {{currentpage.name}} IDのフォーマット +## {% $frontmatter.seo.title %} IDのフォーマット TicketオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです @@ -49,7 +49,4 @@ TicketオブジェクトのIDは、以下の値がこの順序で連結されて * チケットの所有者のアカウントID * チケットの`TicketSequence` - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md index 0accf5c7a8..229a56aefe 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md @@ -7,7 +7,7 @@ labels: status: not_enabled --- # XChainOwnedClaimID -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ [[ソース]](https://github.com/seelabs/rippled/blob/xbridge/src/ripple/protocol/impl/LedgerFormats.cpp#L281-L293 "ソース") @@ -103,7 +103,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md index 93275cfc6c..869f99051e 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md @@ -7,7 +7,7 @@ labels: status: not_enabled --- # XChainOwnedCreateAccountClaimID -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ [[ソース]](https://github.com/seelabs/rippled/blob/xbridge/src/ripple/protocol/impl/LedgerFormats.cpp#L296-L306 "ソース") @@ -86,8 +86,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/ledger-data/ledger-header.md b/content/@i18n/ja/references/protocol/ledger-data/ledger-header.md index 5b48b43ce2..333dc5f8a0 100644 --- a/content/@i18n/ja/references/protocol/ledger-data/ledger-header.md +++ b/content/@i18n/ja/references/protocol/ledger-data/ledger-header.md @@ -26,8 +26,8 @@ labels: ## レジャーインデックス -{% include '_snippets/data_types/ledger_index.ja.md' %} - +{% partial file="/_snippets/data_types/ledger_index.md" /%} + ## closeフラグ @@ -39,10 +39,6 @@ labels: ## 関連項目 -レジャーの基本的な説明については、[レジャー](ledgers.html)を参照してください。 +レジャーの基本的な説明については、[レジャー](../../../concepts/ledgers/index.md)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/common-fields.md b/content/@i18n/ja/references/protocol/transactions/common-fields.md index c3a3eb55ce..b754b3f255 100644 --- a/content/@i18n/ja/references/protocol/transactions/common-fields.md +++ b/content/@i18n/ja/references/protocol/transactions/common-fields.md @@ -7,20 +7,20 @@ labels: --- # トランザクションの共通フィールド -どのトランザクションについても、共通する一連のフィールドに加え、[トランザクションのタイプ](transaction-types.html)に応じた追加のフィールドがあります。フィールドの名前では、大文字と小文字が区別されます。すべてのトランザクションに共通するフィールドは、以下のとおりです。 +どのトランザクションについても、共通する一連のフィールドに加え、[トランザクションのタイプ](types/index.md)に応じた追加のフィールドがあります。フィールドの名前では、大文字と小文字が区別されます。すべてのトランザクションに共通するフィールドは、以下のとおりです。 | フィールド | JSONの型 | [内部の型][] | 説明 | |:-------------------|:-----------------|:------------------|:-----------------| -| Account | 文字列 | AccountID | _(必須)_ トランザクションを開始した[アカウント](accounts.html)の一意アドレス。 | +| Account | 文字列 | AccountID | _(必須)_ トランザクションを開始した[アカウント](../../../concepts/accounts/accounts.md)の一意アドレス。 | | TransactionType | 文字列 | UInt16 | _(必須)_ トランザクションのタイプ。有効なタイプは、`Payment`、`OfferCreate`、`OfferCancel`、`TrustSet`、`AccountSet`、`SetRegularKey`、`SignerListSet`、`EscrowCreate`、`EscrowFinish`、`EscrowCancel`、`PaymentChannelCreate`、`PaymentChannelFund`、`PaymentChannelClaim`、`DepositPreauth`です。 | | Fee | 文字列 | Amount | _(必須。[自動入力可能][])_ 整数で表したXRPの額(drop単位)。このトランザクションをネットワークに送信するためのコストとして消却されます。トランザクションのタイプによっては、最小要件が異なります。詳細は、[トランザクションコスト][]を参照してください。 | -| Sequence | 符号なし整数 | UInt32 | _(必須。[自動入力可能][])_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。 | +| Sequence | 符号なし整数 | UInt32 | _(必須。[自動入力可能][])_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](../../../concepts/transactions/finality-of-results/canceling-a-transaction.md)を参照してください。 | | [AccountTxnID][] | 文字列 | Hash256 | _(省略可)_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 | | [Flags][] | 符号なし整数 | UInt32 | _(省略可)_ このトランザクションのビットフラグのセット。 | -| LastLedgerSequence | 数値 | UInt32 | _(省略可。使用を強く推奨)_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 | +| LastLedgerSequence | 数値 | UInt32 | _(省略可。使用を強く推奨)_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 | | [`NetworkID`](#networkidフィールド) | Number | UInt32 | _(Network-specific)_ The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. | | [Memos][] | オブジェクトの配列 | 配列 | _(省略可)_ このトランザクションの識別に使用される任意の追加情報。 | -| [Signers][] | 配列 | 配列 | _(省略可)_ このトランザクションを承認するための[マルチシグ](multi-signing.html)を表すオブジェクトの配列。 | +| [Signers][] | 配列 | 配列 | _(省略可)_ このトランザクションを承認するための[マルチシグ](../../../concepts/accounts/multi-signing.md)を表すオブジェクトの配列。 | | SourceTag | 符号なし整数 | UInt32 | _(省略可)_ この支払いの理由、またはこのトランザクションの実行元である送信者を識別するために使用される任意の整数。一般的に、返金については、最初の支払いの`SourceTag`を返金の`DestinationTag`として指定する必要があります。 | | SigningPubKey | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションへの署名に使用される秘密鍵に対応する公開鍵の16進表現。空文字列の場合は、代わりに`Signers`フィールドにマルチシグが保持されていることを示します。 | | TxnSignature | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションが、発信元であると主張しているアカウントから発信されたものであることを検証するための署名。 | @@ -31,7 +31,7 @@ labels: [Memos]: #memosフィールド [Signers]: #signersフィールド -[削除: rippled 0.28.0][]: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/Hash256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](ledger-data-formats.html)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。 +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}削除: rippled 0.28.0{% /badge %}: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/Hash256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](../ledger-data/index.md)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。 ## AccountTxnID @@ -40,7 +40,7 @@ labels: このフィールドが有用になるのは、例えば、トランザクション送信用のプライマリーシステムと受動的なバックアップシステムを運用している場合です。受動的なバックアップシステムがプライマーリから切断されたものの、プライマリが完全に稼働停止となったわけではなく、両システムが同時に稼働を開始した場合は、トランザクションが2回送信される、あるいはまったく送信されないなど、深刻な問題が発生するおそれがあります。`AccountTxnID`を使用してトランザクションどうしをチェーンにすると、両方のシステムがアクティブになったときも、有効なトランザクションを送信できるのはいずれか一方のみとなります。 -AccountTxnIDを使用するには、アカウントの1つ前のトランザクションのIDがレジャーで追跡されるよう、最初に[asfAccountTxnID](accountset.html#accountsetのフラグ)フラグを設定する必要があります。 +AccountTxnIDを使用するには、アカウントの1つ前のトランザクションのIDがレジャーで追跡されるよう、最初に[asfAccountTxnID](types/accountset.md#accountsetのフラグ)フラグを設定する必要があります。 ## 自動入力可能なフィールド @@ -55,7 +55,7 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク 本番システムについては、これらのフィールドの値がサーバーによって入力される状態に _しない_ ことをお勧めします。例えば、ネットワークの負荷が一時的に急上昇したためにトランザクションコストが高騰した場合、トランザクションによっては、一時的な高額のコストを支払うよりも、必要に応じて待機し、コストが低下してから送信したほうが好ましいことがあります。 -[Paymentトランザクション][]タイプの[`Paths`フィールド](payment.html#パス)についても、値を自動入力できます。 +[Paymentトランザクション][]タイプの[`Paths`フィールド](types/payment.md#パス)についても、値を自動入力できます。 ## Flagsフィールド @@ -87,10 +87,10 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク | 範囲の名前 | ビットマスク | 説明 | |:-----------------|:-------------|:-------------------------------------------| | ユニバーサルフラグ | `0xff000000` | すべてのタイプのトランザクションに対して一様に適用されるフラグ。 | -| タイプに基づくフラグ | `0x00ff0000` | フラグを使用する[トランザクションのタイプ](transaction-types.html)に応じて意味が異なるフラグ。 | +| タイプに基づくフラグ | `0x00ff0000` | フラグを使用する[トランザクションのタイプ](types/index.md)に応じて意味が異なるフラグ。 | | 予約済みのフラグ | `0x0000ffff` | 現時点では定義されていないフラグ。トランザクションが有効になるのは、これらのフラグが無効になっている場合のみです。 | -**注記:** [AccountSetトランザクション][]タイプには、タイプに基づくフラグと似た目的を果たす[ビット単位ではない独自のフラグ](accountset.html#accountsetのフラグ)があります。[レジャーオブジェクト](ledger-object-types.html)にも、さまざまなビット単位のフラグが定義される`Flags`フィールドがあります。 +**注記:** [AccountSetトランザクション][]タイプには、タイプに基づくフラグと似た目的を果たす[ビット単位ではない独自のフラグ](types/accountset.md#accountsetのフラグ)があります。[レジャーオブジェクト](../ledger-data/ledger-entry-types/index.md)にも、さまざまなビット単位のフラグが定義される`Flags`フィールドがあります。 ## Memosフィールド @@ -126,9 +126,9 @@ MemoTypeフィールドとMemoFormatフィールドには、以下の文字の } ``` ## NetworkIDフィールド -[新規: rippled 1.11.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} -`NetworkID`フィールドは「クロスチェーン」トランザクションのリプレイ攻撃に対する保護であり、同じトランザクションがコピーされ、意図していない[ネットワーク](parallel-networks.html)で実行されることを防ぎます。既存のチェーンとの互換性のため、ネットワークIDが1024以下のネットワークでは`NetworkID`フィールドを省略する必要がありますが、ネットワークIDが1025以上のネットワークでは`NetworkID`フィールドを含める必要があります。以下の表は、さまざまな既知のネットワークのステータスと値を示しています。 +`NetworkID`フィールドは「クロスチェーン」トランザクションのリプレイ攻撃に対する保護であり、同じトランザクションがコピーされ、意図していない[ネットワーク](../../../concepts/networks-and-servers/parallel-networks.md)で実行されることを防ぎます。既存のチェーンとの互換性のため、ネットワークIDが1024以下のネットワークでは`NetworkID`フィールドを省略する必要がありますが、ネットワークIDが1025以上のネットワークでは`NetworkID`フィールドを含める必要があります。以下の表は、さまざまな既知のネットワークのステータスと値を示しています。 | ネットワーク | ID | `NetworkID`フィールド | |---------------|----|---------------------| @@ -143,7 +143,7 @@ MemoTypeフィールドとMemoFormatフィールドには、以下の文字の トランザクションのリプレイ攻撃は理論的には可能ですが、2つ目のネットワークに特定の条件が必要です。次のすべてが真でなければなりません。 - トランザクションの送信者が2つ目のネットワーク上の資金提供アカウントである。 -- 2つ目のネットワーク上の送信者の`Sequence`がトランザクションの`Sequence`と一致するか、トランザクションが第二のネットワークで利用可能な[Ticket](tickets.html)を使用している。 +- 2つ目のネットワーク上の送信者の`Sequence`がトランザクションの`Sequence`と一致するか、トランザクションが第二のネットワークで利用可能な[Ticket](../../../concepts/accounts/tickets.md)を使用している。 - トランザクションが`LastLedgerSequence`フィールドを持っていないか、2つ目レジャーの現在のレジャーインデックスよりも高い値を指定している。 - メインネットは一般的に、テストネットワークやサイドチェーンよりもレジャーインデックスが高いため、トランザクションが`LastLedgerSequence`を本来の意図通りに使用している場合、メインネットのトランザクションをサイドチェーンやテストネットワークでリプレイする方が現実的です。 - ネットワークが両方とも1024以下のIDを持っているか、両方のネットワークが同じIDを使用しているか、2つ目のネットワークが`NetworkID`フィールドを必要としないかのいずれか。 @@ -151,7 +151,7 @@ MemoTypeフィールドとMemoFormatフィールドには、以下の文字の ## Signersフィールド -`Signers`フィールドには、最大8つのキーペアから取得された署名を保持し、トランザクションを承認するための[マルチシグ](multi-signing.html)が含まれています。`Signers`リストはオブジェクトの配列であり、各オブジェクトが1つの`Signer`フィールドを保持しています。`Signer`フィールドには、以下の入れ子フィールドがあります。 +`Signers`フィールドには、最大8つのキーペアから取得された署名を保持し、トランザクションを承認するための[マルチシグ](../../../concepts/accounts/multi-signing.md)が含まれています。`Signers`リストはオブジェクトの配列であり、各オブジェクトが1つの`Signer`フィールドを保持しています。`Signer`フィールドには、以下の入れ子フィールドがあります。 | フィールド | 型 | [内部の型][] | 説明 | |:--------------|:-------|:------------------|:--------------------------------| @@ -159,13 +159,8 @@ MemoTypeフィールドとMemoFormatフィールドには、以下の文字の | TxnSignature | 文字列 | Blob | `SigningPubKey`を使用して検証できる、このトランザクションの署名。 | | SigningPubKey | 文字列 | Blob | この署名の作成に使用される公開鍵。 | -`SigningPubKey`は、`Account`アドレスに関連付けられているキーでなければなりません。参照されている`Account`が、レジャーにあり資金供給済みアカウントである場合、SigningPubKeyには、そのアカウントの現在のレギュラーキー(設定されている場合)を指定できます。また、[lsfDisableMaster](accountroot.html#accountrootのフラグ)フラグが有効になっている場合を除き、そのアカウントのマスターキーを指定することもできます。参照されている`Account`アドレスが、レジャーの資金供給済みのアカウントではない場合、`SigningPubKey`は、そのアドレスに関連付けられているマスターキーでなければなりません。 +`SigningPubKey`は、`Account`アドレスに関連付けられているキーでなければなりません。参照されている`Account`が、レジャーにあり資金供給済みアカウントである場合、SigningPubKeyには、そのアカウントの現在のレギュラーキー(設定されている場合)を指定できます。また、[lsfDisableMaster](../ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ)フラグが有効になっている場合を除き、そのアカウントのマスターキーを指定することもできます。参照されている`Account`アドレスが、レジャーの資金供給済みのアカウントではない場合、`SigningPubKey`は、そのアドレスに関連付けられているマスターキーでなければなりません。 署名の検証は大量の演算能力を消費するタスクであるため、マルチシグトランザクションをネットワークに中継するには、追加のXRPがコストとしてかかります。マルチシグに含まれている署名ごとに、トランザクションに必要な[トランザクションコスト][]が増加します。例えば、トランザクションをネットワークに中継するための現在の最小トランザクションコストが`10000`dropである場合、`Signers`配列に3つのエントリーが含まれているマルチシグトランザクションを中継するには、`Fee`の値を少なくとも`40000`dropにする必要があります。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/index.md b/content/@i18n/ja/references/protocol/transactions/index.md index 075925d335..22ccafad18 100644 --- a/content/@i18n/ja/references/protocol/transactions/index.md +++ b/content/@i18n/ja/references/protocol/transactions/index.md @@ -2,14 +2,14 @@ html: transaction-formats.html parent: protocol-reference.html blurb: プロトコルのすべてのトランザクションタイプとその結果を説明します。 -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # トランザクションリファレンス - _トランザクション_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](consensus.html)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは[最終](finality-of-results.html)的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types.html)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションも、スパム対策の[トランザクションコスト][]を支払うためにXRPの残高が変更されることから、レジャーに含まれます。 + _トランザクション_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](../../../concepts/consensus-protocol/index.md)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは[最終](../../../concepts/transactions/finality-of-results/index.md)的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types/pseudo-transaction-types.md)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションも、スパム対策の[トランザクションコスト][]を支払うためにXRPの残高が変更されることから、レジャーに含まれます。 + +{% raw-partial file="/_snippets/common-links.md" /%} - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% child-pages /%} diff --git a/content/@i18n/ja/references/protocol/transactions/metadata.md b/content/@i18n/ja/references/protocol/transactions/metadata.md index 82726a1500..35868fd6e7 100644 --- a/content/@i18n/ja/references/protocol/transactions/metadata.md +++ b/content/@i18n/ja/references/protocol/transactions/metadata.md @@ -13,19 +13,17 @@ labels: 以下に、トランザクションのメタデータに含まれる可能性があるフィールドをいくつか示します。 -{% include '_snippets/tx-metadata-field-table.ja.md' %} +{% partial file="/_snippets/tx-metadata-field-table.md" /%} ## メタデータの例 次のJSONオブジェクトは、[複雑なクロスカレンシー支払い](https://livenet.xrpl.org/transactions/8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B)のメタデータを示しています。 -```json -{% include '_api-examples/metadata/cross-currency-payment.json' %} -``` +{% code-snippet file="/_api-examples/metadata/cross-currency-payment.json" language="json" /%} ## AffectedNodes -`AffectedNodes`配列には、このトランザクションが何らかの変更を加えた[レジャーエントリ](ledger-object-types.html)の完全なリストが格納されます。この配列の各項目は、何が起こったかを示すトップレベルのフィールドを1つ持つオブジェクトです。 +`AffectedNodes`配列には、このトランザクションが何らかの変更を加えた[レジャーエントリ](../ledger-data/ledger-entry-types/index.md)の完全なリストが格納されます。この配列の各項目は、何が起こったかを示すトップレベルのフィールドを1つ持つオブジェクトです。 - `CreatedNode`: トランザクションが新しいレジャーエントリを作成したことを示します。 - `DeletedNode`: トランザクションが新しいレジャーエントリを削除したことを示します。 @@ -39,8 +37,8 @@ labels: | フィールド | 値 | 説明 | |:------------------|:--------------------|:-------------------------------------| -| `LedgerEntryType` | 文字列 | 作成された[レジャーエントリの種類](ledger-object-types.html)。 | -| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](ledgers.html)内のこの[レジャーエントリのID](ledger-object-ids.html)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](basic-data-types.html#レジャーインデックス)とは**異なります**。 | +| `LedgerEntryType` | 文字列 | 作成された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | +| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](../../../concepts/ledgers/index.md)内のこの[レジャーエントリのID](../ledger-data/common-fields.md)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](../data-types/basic-data-types.md#レジャーインデックス)とは**異なります**。 | | `NewFields` | オブジェクト | 新しく作成されたレジャー エントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。 | ### DeletedNodeのフィールド @@ -49,8 +47,8 @@ labels: | フィールド | 値 | 説明 | |:------------------|:--------------------|:-------------------------------------| -| `LedgerEntryType` | 文字列 | 削除された[レジャーエントリの種類](ledger-object-types.html)。 | -| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](ledgers.html)内のこの[レジャーエントリのID](ledger-object-ids.html)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](basic-data-types.html#レジャーインデックス)とは**異なります** | +| `LedgerEntryType` | 文字列 | 削除された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | +| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](../../../concepts/ledgers/index.md)内のこの[レジャーエントリのID](../ledger-data/common-fields.md)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](../data-types/basic-data-types.md#レジャーインデックス)とは**異なります** | | `FinalFields` | オブジェクト | 削除されたレジャーエントリの最後の内容を示すフィールド。どのフィールドが存在するかは、削除されたレジャーエントリの種類によって異なります。 | ### ModifiedNodeのフィールド @@ -59,8 +57,8 @@ labels: | フィールド | 値 | 説明 | |:--------------------|:---------------------------|:---------------------------| -| `LedgerEntryType` | 文字列 | 更新された[レジャーエントリの種類](ledger-object-types.html)。 | -| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](ledgers.html)内のこの[レジャーエントリのID](ledger-object-ids.html)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](basic-data-types.html#レジャーインデックス)とは**異なります**。 | +| `LedgerEntryType` | 文字列 | 更新された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | +| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](../../../concepts/ledgers/index.md)内のこの[レジャーエントリのID](../ledger-data/common-fields.md)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](../data-types/basic-data-types.md#レジャーインデックス)とは**異なります**。 | | `FinalFields` | オブジェクト | このトランザクションからの変更を適用した後のレジャーエントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。ほとんどのタイプのレジャーエントリには`PreviousTxnID`フィールドと`PreviousTxnLgrSeq`フィールドがありますが、これは省略されます。 | | `PreviousFields` | オブジェクト | このトランザクションの結果として変更されたオブジェクトのすべてのフィールドの以前の値。トランザクションがオブジェクトにフィールドを追加しただけの場合、このフィールドは空のオブジェクトです。 | | `PreviousTxnID` | 文字列 - [ハッシュ][] | _(省略可能)_ このレジャーエントリを変更する前のトランザクションの[識別用ハッシュ][]。`PreviousTxnID`フィールドを持たないレジャーエントリの種類では省略されます。 | @@ -74,13 +72,13 @@ NFTを含むトランザクション(`tx` と `account_tx`)はメタデー | フィールド | 値 | 説明 | |:--------------------|:--------------------------|:---------------------------| -| `nftoken_id` | 文字列 | トランザクションの結果、レジャー上で変更された`NFToken`の`NFTokenID`を示します。トランザクションが`NFTokenMint`または`NFTokenAcceptOffer`の場合のみ表示されます。[NFTokenID](nftoken.html#nftokenid)をご覧ください。 | +| `nftoken_id` | 文字列 | トランザクションの結果、レジャー上で変更された`NFToken`の`NFTokenID`を示します。トランザクションが`NFTokenMint`または`NFTokenAcceptOffer`の場合のみ表示されます。[NFTokenID](../data-types/nftoken.md#nftokenid)をご覧ください。 | | `nftoken_ids` | 配列 | トランザクションの結果、レジャー上で変更された`NFToken`のすべての`NFTokenID`を表示します。トランザクションが `NFTokenCancelOffer`の場合のみ表示されます。 | | `offer_id` | 文字列 | `NFTokenCreateOffer`トランザクションからのレスポンスに、新しい`NFTokenOffer`の`OfferID`を表示します。 | ## delivered_amount -[Paymentトランザクション][]によって`Destination`に実際送金された金額を表します。トランザクションが成功すると、**[Partial Payments](partial-payments.html)であった場合を除いて、** 宛先は当該の金額を受取ります(Partial Paymentsの場合、`Amount`を上限とする正の金額が受取られます)。`Amount`フィールドを信頼するかどうかを選択するのではなく、メタデータの`delivered_amount`フィールドを使用して、宛先に実際に到達する金額を確認してください。 +[Paymentトランザクション][]によって`Destination`に実際送金された金額を表します。トランザクションが成功すると、**[Partial Payments](../../../concepts/payment-types/partial-payments.md)であった場合を除いて、** 宛先は当該の金額を受取ります(Partial Paymentsの場合、`Amount`を上限とする正の金額が受取られます)。`Amount`フィールドを信頼するかどうかを選択するのではなく、メタデータの`delivered_amount`フィールドを使用して、宛先に実際に到達する金額を確認してください。 トランザクションのメタデータの`delivered_amount`フィールドは、成功したすべてのPaymentトランザクションが保持しており、フォーマットは通常の通貨額と同様です。ただし、送金額は、以下の両方の条件に該当するトランザクションについては使用できません。 @@ -89,11 +87,8 @@ NFTを含むトランザクション(`tx` と `account_tx`)はメタデー 両方の条件に該当する場合、`delivered_amount`には、実際の金額ではなく文字列値`unavailable`が記述されます。この場合、トランザクションのメタデータにあるAffectedNodesを読み取ることが、実際に送金された金額を割り出せる唯一の手段になります。 -**注記:** `delivered_amount`フィールドはリクエストに対してオンデマンドで生成され、トランザクションメタデータのバイナリフォーマットには含まれず、トランザクションメタデータの[ハッシュ](basic-data-types.html#ハッシュ)を計算する際にも使用されません。一方、`DeliveredAmount`フィールドは2014-01-20以降のpartial paymentトランザクションのバイナリフォーマットに _含まれます_ 。 +**注記:** `delivered_amount`フィールドはリクエストに対してオンデマンドで生成され、トランザクションメタデータのバイナリフォーマットには含まれず、トランザクションメタデータの[ハッシュ](../data-types/basic-data-types.md#ハッシュ)を計算する際にも使用されません。一方、`DeliveredAmount`フィールドは2014-01-20以降のpartial paymentトランザクションのバイナリフォーマットに _含まれます_ 。 -関連項目: [Partial Payments](partial-payments.html) +関連項目: [Partial Payments](../../../concepts/payment-types/partial-payments.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/enableamendment.md b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/enableamendment.md index c3d4b67655..64bc1e1581 100644 --- a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/enableamendment.md +++ b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/enableamendment.md @@ -7,13 +7,13 @@ labels: --- # EnableAmendment -トランザクション処理を変更する[Amendmentプロセス](amendments.html#amendmentプロセス)の進行状況を追跡します。この疑似トランザクションは、提案されたAmendmentが多数の承認を獲得したか否かや、Amendmentの有効化の状況を示します。 +トランザクション処理を変更する[Amendmentプロセス](../../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)の進行状況を追跡します。この疑似トランザクションは、提案されたAmendmentが多数の承認を獲得したか否かや、Amendmentの有効化の状況を示します。 **注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。 | フィールド | JSONの型 | [内部の型][] | 説明 | |:---------------|:----------|:------------------|:----------------------------| -| Amendment | 文字列 | Hash256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](amendments.html)を参照してください。 | +| Amendment | 文字列 | Hash256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](../../../../concepts/networks-and-servers/amendments.md)を参照してください。 | | LedgerSequence | 数値 | UInt32 | Amendmentが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | ## EnableAmendment Flags @@ -27,7 +27,4 @@ EnableAmendment疑似トランザクションの`Flags`の値は、この疑似 | tfGotMajority | 0x00010000 | 65536 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率は80%以上に増加しました。 | | tfLostMajority | 0x00020000 | 131072 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率が80%未満に減少しました。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md index bd76f6f2dc..372efb3771 100644 --- a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md +++ b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md @@ -2,7 +2,8 @@ html: pseudo-transaction-types.html parent: transaction-formats.html blurb: バリデータがXRP Ledgerに適用する場合がある疑似トランザクションのフォーマットです。 -template: pagetype-category.html.jinja +metadata: + indexPage: true labels: - ブロックチェーン --- @@ -14,8 +15,11 @@ labels: | フィールド | デフォルト値 | |:--------------|:---------------------------------------------------------| -| Account | [ACCOUNT_ZERO](addresses.html#特別なアドレス) | +| Account | [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#特別なアドレス) | | Sequence | 0 | | Fee | 0 | | SigningPubKey | "" | | Signature | "" | + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/setfee.md b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/setfee.md index d500cf9422..bb906ae23e 100644 --- a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/setfee.md +++ b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/setfee.md @@ -7,7 +7,7 @@ labels: --- # SetFee -[手数料投票](fee-voting.html)の結果として[トランザクションコスト](transaction-cost.html)または[アカウント準備金](reserves.html)の要件が変更されます。 +[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)の結果として[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)または[アカウント準備金](../../../../concepts/accounts/reserves.md)の要件が変更されます。 **注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。 @@ -30,15 +30,12 @@ labels: | フィールド | JSONの型 | [内部の型][] | 説明 | |:------------------|:-----------------|:------------------|:------------------| -| BaseFee | 文字列 | UInt64 | リファレンストランザクションの手数料(XRPのdrop数、16進数)。(これは、負荷スケーリング前の[トランザクションコスト](transaction-cost.html)です。) | +| BaseFee | 文字列 | UInt64 | リファレンストランザクションの手数料(XRPのdrop数、16進数)。(これは、負荷スケーリング前の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)です。) | | ReferenceFeeUnits | 符号なし整数 | UInt32 | リファレンストランザクションのコスト(手数料単位) | | ReserveBase | 符号なし整数 | UInt32 | 基本準備金(drop数) | | ReserveIncrement | 符号なし整数 | UInt32 | 増分準備金(drop数) | | LedgerSequence | 数値 | UInt32 | _(過去に発生した`SetFee`疑似トランザクションの場合は省略)_ この擬似トランザクションが表示されるレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | -{% include '_snippets/setfee_uniqueness_note.ja.md' %} +{% partial file="/_snippets/setfee_uniqueness_note.md" /%} - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/unlmodify.md b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/unlmodify.md index 24d5a38dbd..921fe8b650 100644 --- a/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/unlmodify.md +++ b/content/@i18n/ja/references/protocol/transactions/pseudo-transaction-types/unlmodify.md @@ -9,11 +9,11 @@ labels: _([NegativeUNL amendment][]により追加されました)_ -`UNLModify`[疑似トランザクション](pseudo-transaction-types.html)は[Negative UNL](negative-unl.html)の変更を示し、信頼できるバリデータがオフラインになったかオンラインに戻ってきたことを示します。 +`UNLModify`[疑似トランザクション](pseudo-transaction-types.md)は[Negative UNL](../../../../concepts/consensus-protocol/negative-unl.md)の変更を示し、信頼できるバリデータがオフラインになったかオンラインに戻ってきたことを示します。 **注記:** 擬似トランザクションを送信することはできませんが、台帳を処理する際に擬似トランザクションを発見することがあります。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -28,7 +28,7 @@ _([NegativeUNL amendment][]により追加されました)_ } ``` -{% include '_snippets/pseudo-tx-fields-intro.md' %} +{% partial file="/_snippets/pseudo-tx-fields-intro.md" /%} | 名前 | JSONの型 | [内部の型][] | 説明 | @@ -38,8 +38,4 @@ _([NegativeUNL amendment][]により追加されました)_ | `UNLModifyDisabling` | 数値 | UInt8 | `1`の場合、この変更はネガティブUNLにバリデーターを追加することを意味します。0` の場合、この変更はネガティブ UNL からバリデータを削除することを意味します。(これらの値以外は使用できません) | | `UNLModifyValidator` | 文字列 | Blob | 追加または削除するバリデータであり、そのマスター公開鍵で識別されます。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/transaction-results/tec-codes.md b/content/@i18n/ja/references/protocol/transactions/transaction-results/tec-codes.md index 80d6b622fb..958d5d7074 100644 --- a/content/@i18n/ja/references/protocol/transactions/transaction-results/tec-codes.md +++ b/content/@i18n/ja/references/protocol/transactions/transaction-results/tec-codes.md @@ -7,11 +7,11 @@ labels: --- # tecコード -これらのコードは、トランザクションは失敗したものの、[トランザクションコスト](transaction-cost.html)を適用するために、このトランザクションがレジャーに適用されたことを示します。100から199までの数値が含まれています。数値ではなくテキストコードの使用が推奨されます。 +これらのコードは、トランザクションは失敗したものの、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を適用するために、このトランザクションがレジャーに適用されたことを示します。100から199までの数値が含まれています。数値ではなくテキストコードの使用が推奨されます。 -ほとんどの場合、`tec`コード付きのトランザクションは、[トランザクションコスト](transaction-cost.html)として支払われた分のXRPを消却する以外の操作は実行しませんが、いくつかの例外があります。例外として、`tecOVERSIZE`となったトランザクションは、一部の[資金供給のないオファー](offers.html#オファーのライフサイクル)を引き続きクリーンアップします。[トランザクションメタデータ](transaction-metadata.html)を常に確認し、トランザクションの実行内容を正確に把握してください。 +ほとんどの場合、`tec`コード付きのトランザクションは、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)として支払われた分のXRPを消却する以外の操作は実行しませんが、いくつかの例外があります。例外として、`tecOVERSIZE`となったトランザクションは、一部の[資金供給のないオファー](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)を引き続きクリーンアップします。[トランザクションメタデータ](../metadata.md)を常に確認し、トランザクションの実行内容を正確に把握してください。 -**注意:** 暫定的に`tec`コードで失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。検証済みレジャーバージョンに記録される結果が最終結果となります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 +**注意:** 暫定的に`tec`コードで失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。検証済みレジャーバージョンに記録される結果が最終結果となります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼できるトランザクションの送信](../../../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 | コード | 値 | 説明 | |:---------------------------|:------|:----------------------------------------| @@ -19,42 +19,39 @@ labels: | `tecCRYPTOCONDITION_ERROR` | 146 | この[EscrowCreate][]トランザクションまたは[EscrowFinish][]トランザクションに指定されるCrypto-conditionの形式が誤っているか、または一致しませんでした。 | | `tecDIR_FULL` | 121 | トランザクションがアカウントの所有者ディレクトリにオブジェクト(トラストライン、Check、Escrow、Payment Channelなど)を追加しようと試みましたが、このアカウントはレジャーにこれ以上のオブジェクトを所有できません。 | | `tecDUPLICATE` | 149 | トランザクションが、すでに存在するオブジェクト([DepositPreauth][]の承認など)を作成しようとしました。 | -| `tecDST_TAG_NEEDED` | 143 | [Paymentトランザクション][]の宛先タグが省略されましたが、支払先アカウントでは`lsfRequireDestTag`フラグが有効になっています。[新規: rippled 0.28.0][] | +| `tecDST_TAG_NEEDED` | 143 | [Paymentトランザクション][]の宛先タグが省略されましたが、支払先アカウントでは`lsfRequireDestTag`フラグが有効になっています。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}新規: rippled 0.28.0{% /badge %} | | `tecEXPIRED` | 148 | トランザクションがオブジェクト(OfferやCheckなど)を作成しようとしましたが、そのオブジェクトで指定された有効期限がすでに経過しています。 | | `tecFAILED_PROCESSING` | 105 | トランザクションの処理中に不明なエラーが発生しました。 | -| `tecFROZEN` | 137 | [OfferCreateトランザクション][]が失敗しました。関係する1つまたは両方の資産が[Global Freeze](freezes.html)の対象となっています。 | -| `tecHAS_OBLIGATIONS ` | 151 | 削除するアカウントが削除できないオブジェクトを所有しているため、[AccountDeleteトランザクション][]が失敗しました。詳細は、[アカウントの削除](deleting-accounts.html)を参照してください。 | -| `tecINSUF_RESERVE_LINE` | 122 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください)このエラーは、取引相手から同一通貨の送信側アカウントへのトラストラインがデフォルト以外の状態である場合に発生します。(その他のケースについては`tecNO_LINE_INSUF_RESERVE`を参照してください。) | -| `tecINSUF_RESERVE_OFFER` | 123 | 送信側アカウントに、新しいオファーを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) | -| `tecINSUFF_FEE` | 136 | 指定された[トランザクションコスト](transaction-cost.html)を支払うのに十分なXRPが送金元アカウントにないため、トランザクションが失敗しました。(この場合、送金元のXRPが指定されたトランザクションコストよりも低い場合でも、トランザクション処理によってすべて消却されます。)この結果は、このトランザクションがコンセンサスセットに含まれるのに十分なネットワークに配布された*後に*アカウントの残高が減少した場合にのみ発生します。そうでない場合、トランザクションは配布される前に[`terINSUF_FEE_B`](ter-codes.html)で失敗します。 | -| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](reserves.html)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](signerlist.html#signerlistと準備金)を参照してください。 | +| `tecFROZEN` | 137 | [OfferCreateトランザクション][]が失敗しました。関係する1つまたは両方の資産が[Global Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md)の対象となっています。 | +| `tecHAS_OBLIGATIONS ` | 151 | 削除するアカウントが削除できないオブジェクトを所有しているため、[AccountDeleteトランザクション][]が失敗しました。詳細は、[アカウントの削除](../../../../concepts/accounts/deleting-accounts.md)を参照してください。 | +| `tecINSUF_RESERVE_LINE` | 122 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)を参照してください)このエラーは、取引相手から同一通貨の送信側アカウントへのトラストラインがデフォルト以外の状態である場合に発生します。(その他のケースについては`tecNO_LINE_INSUF_RESERVE`を参照してください。) | +| `tecINSUF_RESERVE_OFFER` | 123 | 送信側アカウントに、新しいオファーを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)を参照してください。) | +| `tecINSUFF_FEE` | 136 | 指定された[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を支払うのに十分なXRPが送金元アカウントにないため、トランザクションが失敗しました。(この場合、送金元のXRPが指定されたトランザクションコストよりも低い場合でも、トランザクション処理によってすべて消却されます。)この結果は、このトランザクションがコンセンサスセットに含まれるのに十分なネットワークに配布された*後に*アカウントの残高が減少した場合にのみ発生します。そうでない場合、トランザクションは配布される前に[`terINSUF_FEE_B`](ter-codes.md)で失敗します。 | +| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](../../../../concepts/accounts/reserves.md)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](../../ledger-data/ledger-entry-types/signerlist.md#signerlistと準備金)を参照してください。 | | `tecINTERNAL` | 144 | 不明な内部エラーが発生し、トランザクションコストは適用されました。通常はこのエラーは返されません。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | | `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]により追加されました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | | `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。_([fix1578 Amendment][]により追加されました。)_ | -| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高凍結能力の放棄](accountset.html#accountsetのフラグ)など)を試みました。[新規: rippled 0.28.0][] | -| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](transactions.html#トランザクションの承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) | +| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高凍結能力の放棄](../types/accountset.md#accountsetのフラグ)など)を試みました。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}新規: rippled 0.28.0{% /badge %} | +| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](../../../../concepts/transactions/index.md#トランザクションの承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) | | `tecNO_AUTH` | 134 | トランザクションはトラストラインの残高を、`lsfRequireAuth`フラグが有効になっているアカウントに追加する必要がありましたが、そのトラストラインが承認されていなかったため、失敗しました。トラストラインが存在しない場合は、代わりに`tecNO_LINE`が発生します。 | | `tecNO_DST` | 124 | トランザクションの受信側のアカウントが存在しません。これには、PaymentトランザクションタイプやTrustSetトランザクションタイプがあります。(XRPを十分に受信した場合に作成される可能性があります。) | | `tecNO_DST_INSUF_XRP` | 125 | トランザクションの受信側のアカウントが存在しません。トランザクションは、アカウントの作成に十分なXRPを送金していません。 | -| `tecNO_ENTRY` | 140 | トランザクションは[Check](checks.html)か[Payment Channel](payment-channels.html)か[Deposit Preauth事前承認](depositpreauth-object.html)などの[レジャーオブジェクト](ledger-object-types.html)の変更を試みましたが、そのオブジェクトは存在しません。以前のトランザクションで削除されましたか、あるいはこのトランザクションに正しくないIDフィールド(`CheckID`か`Channel`か`Unauthorize`など)があります。 | +| `tecNO_ENTRY` | 140 | トランザクションは[Check](../../../../concepts/payment-types/checks.md)か[Payment Channel](../../../../concepts/payment-types/payment-channels.md)か[Deposit Preauth事前承認](../../ledger-data/ledger-entry-types/depositpreauth.md)などの[レジャーオブジェクト](../../ledger-data/ledger-entry-types/index.md)の変更を試みましたが、そのオブジェクトは存在しません。以前のトランザクションで削除されましたか、あるいはこのトランザクションに正しくないIDフィールド(`CheckID`か`Channel`か`Unauthorize`など)があります。 | | `tecNO_ISSUER` | 133 | 通貨額の`issuer`フィールドに指定されたアカウントが存在しません。 | | `tecNO_LINE` | 135 | [OfferCreateトランザクション][]の`TakerPays`フィールドに、`lsfRequireAuth`を有効にしているイシュアーの資産が指定されており、このオファーを行っているアカウントはその資産に関してトラストラインを確立していません。(通常、オファーを暗黙に行うと必要に応じてトラストラインが作成されますが、この場合は承認なしでは資産を保有できないので問題にはなりません。)トラストラインは存在しているが承認されていない場合は、代わりに`tecNO_AUTH`が発生します。 | -| `tecNO_LINE_INSUF_RESERVE` | 126 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照)このエラーは、取引相手がこのアカウントに対する同一通貨のトラストラインを持っていない場合に発生します。(その他のケースについては`tecINSUF_RESERVE_LINE`を参照してください。) | +| `tecNO_LINE_INSUF_RESERVE` | 126 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)を参照)このエラーは、取引相手がこのアカウントに対する同一通貨のトラストラインを持っていない場合に発生します。(その他のケースについては`tecINSUF_RESERVE_LINE`を参照してください。) | | `tecNO_LINE_REDUNDANT` | 127 | トランザクションはトラストラインをデフォルト状態に設定しようと試みましたが、トラストラインが存在していなかったため、失敗しました。 | | `tecNO_PERMISSION` | 139 | 送信者にはこの操作を実行する権限がありません。たとえば[EscrowFinishトランザクション][]が`FinishAfter`時刻に達する前に保留中の支払をリリースしようとしたか、送信者が所有していないChannelで誰かが[PaymentChannelFund][]を使用しようとしたか、または[Payment][]が「DepositAuth」フラグが有効になっているアカウントに資金の送金を試みました。 | -| `tecNO_REGULAR_KEY` | 131 | [AccountSetトランザクション][]がマスターキーを無効にしようとしましたが、アカウントにはマスターキー以外で[トランザクションを承認する](transactions.html#トランザクションの承認)方法がありません。[マルチシグ](multi-signing.html)が有効な場合、このコードは廃止予定であり、代わりに`tecNO_ALTERNATIVE_KEY`が使用されます。 | +| `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 | サーバーがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。[新規: rippled 0.29.0-hf1][] | -| `tecOWNERS` | 132 | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 | +| `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 | トランザクションが失敗しました。指定されたパスに、全額を送金するのに十分な流動性がありませんでした。 | | `tecTOO_SOON` | 152 | 削除するアカウントの`Sequence`番号が大きすぎるため、[AccountDeleteトランザクション][]が失敗しました。現行のレジャーインデックスは、アカウントのシーケンス番号より256以上大きくなければなりません。 | -| `tecUNFUNDED` | 129 | トランザクションが失敗しました。アカウントがトランザクションの支払額に十分なXRPを保有しておらず、 _かつ_ このトランザクションを実行するのに追加で必要となる準備金が不足しています。([準備金](reserves.html)を参照してください。) | +| `tecUNFUNDED` | 129 | トランザクションが失敗しました。アカウントがトランザクションの支払額に十分なXRPを保有しておらず、 _かつ_ このトランザクションを実行するのに追加で必要となる準備金が不足しています。([準備金](../../../../concepts/accounts/reserves.md)を参照してください。) | | `tecUNFUNDED_ADD` | 102 | **廃止予定。** | -| `tecUNFUNDED_PAYMENT` | 104 | 送信側アカウントが準備金を考慮せずに、保有するXRPを超える額の送信を試みたため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) | +| `tecUNFUNDED_PAYMENT` | 104 | 送信側アカウントが準備金を考慮せずに、保有するXRPを超える額の送信を試みたため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)を参照してください。) | | `tecUNFUNDED_OFFER` | 103 | [OfferCreateトランザクション][]が失敗しました。オファーの作成元アカウントに`TakerGets`通貨がありません。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/transaction-results/tef-codes.md b/content/@i18n/ja/references/protocol/transactions/transaction-results/tef-codes.md index 8f594e9d1d..3a27bae2d9 100644 --- a/content/@i18n/ja/references/protocol/transactions/transaction-results/tef-codes.md +++ b/content/@i18n/ja/references/protocol/transactions/transaction-results/tef-codes.md @@ -9,31 +9,28 @@ labels: これらのコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。通常これは、このトランザクションが今後すべてのレジャーで正常に完了できないことを意味します。-199から-100までの数値が含まれています。特定のエラーを示すコードは変更される可能性があるので、コードを使用しないでください。 -**注意:** `tef`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 +**注意:** `tef`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼できるトランザクションの送信](../../../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 | コード | 説明 | |:-----------------------|:----------------------------------------------------| | `tefALREADY` | まったく同一のトランザクションがすでに適用されています。 | | `tefBAD_ADD_AUTH` | **廃止予定。** | -| `tefBAD_AUTH` | このアカウントの署名に使用したキーには、このアカウントを変更する権限がありません。(このアカウントが[レギュラーキー](cryptographic-keys.html)として同じキーセットを持っている場合は変更が承認される可能性があります。) | +| `tefBAD_AUTH` | このアカウントの署名に使用したキーには、このアカウントを変更する権限がありません。(このアカウントが[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)として同じキーセットを持っている場合は変更が承認される可能性があります。) | | `tefBAD_AUTH_MASTER` | このトランザクションを承認するために指定された1つの署名がマスターキーと一致していませんが、このアドレスに関連付けられているレギュラーキーもありません。 | | `tefBAD_LEDGER` | トランザクションの処理中に、レジャーが予期しない状態にあることが検出されました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | -| `tefBAD_QUORUM` | トランザクションは[マルチシグ](multi-signing.html)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 | -| `tefBAD_SIGNATURE` | トランザクションは[マルチシグ](multi-signing.html)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 | +| `tefBAD_QUORUM` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 | +| `tefBAD_SIGNATURE` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 | | `tefCREATED` | **廃止予定。** | | `tefEXCEPTION` | トランザクションの処理中に、サーバーが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | | `tefFAILURE` | トランザクション適用中の不明な障害。 | | `tefINTERNAL` | トランザクションの適用を試みた際に、サーバーが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | -| `tefINVARIANT_FAILED` | [トランザクションコスト](transaction-cost.html)を請求しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]により追加されました。このエラーを再現できる場合は、[問題を報告](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`](reliable-transaction-submission.html#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 | +| `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](../../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 | | `tefNO_AUTH_REQUIRED` | [TrustSetトランザクション][]がトラストラインを承認済みとしてマークしようとしましたが、対応するアカウントに対して`lsfRequireAuth`フラグが有効になっていないため、承認は不要です。 | -| `tefNOT_MULTI_SIGNING` | トランザクションは[マルチシグ](multi-signing.html)トランザクションでしたが、送信側アカウントでSignerListが定義されていません。 | +| `tefNOT_MULTI_SIGNING` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、送信側アカウントでSignerListが定義されていません。 | | `tefPAST_SEQ` | トランザクションのシーケンス番号は、トランザクションの送信元アカウントの現在のシーケンス番号よりも小さい番号です。 | | `tefTOO_BIG` | レジャー内にある、トランザクションの影響を受けるオブジェクトが多過ぎます。例えば、これは[AccountDeleteトランザクション][]でしたが、削除されるアカウントのレジャーには1,000個を超えるオブジェクトがあります。 | | `tefWRONG_PRIOR` | トランザクションに`AccountTxnID`フィールド(または廃止予定の`PreviousTxnID`フィールド)が含まれていますが、このフィールドに指定されているトランザクションはアカウントの前のトランザクションに一致しません。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/transaction-results/tel-codes.md b/content/@i18n/ja/references/protocol/transactions/transaction-results/tel-codes.md index bb0061ca9b..13427dec37 100644 --- a/content/@i18n/ja/references/protocol/transactions/transaction-results/tel-codes.md +++ b/content/@i18n/ja/references/protocol/transactions/transaction-results/tel-codes.md @@ -9,29 +9,25 @@ labels: これらのコードは、トランザクションを処理するローカルサーバーでのエラーを示します。構成や負荷レベルが異なる別のサーバーでは同じトランザクションが正常に処理される場合があります。-399から-300までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 -**注意:** `tel`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 +**注意:** `tel`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼性の高いトランザクション送信](../../../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 | コード | 説明 | |:----------------------|:-----------------------------------------------------| | `telBAD_DOMAIN` | トランザクションで指定されたドメイン値([AccountSetトランザクション][]の`Domain`フィールドなど)は、レジャーに保管するには長すぎます。 | | `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバーが処理できません。 | | `telBAD_PUBLIC_KEY` | トランザクションで指定された公開鍵値([AccountSetトランザクション][]の`MessageKey`フィールドなど)の長すぎます。 | -| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしていませんが、[キュー制限](transaction-queue.html#キューの制約事項)を満たしていなかったため、サーバーはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 | -| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバーへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](transaction-cost.html#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバーへ送信を試みることができます。 | -| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またこのサーバーのトランザクションキューが一杯であるため、サーバーはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバーへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](transaction-cost.html#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。 | +| `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`が、サーバーの負荷レベルに基づいて定められるサーバーの現在の[トランザクションコスト](transaction-cost.html)要件を満たすのに十分な値ではありあません。 | +| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバーの負荷レベルに基づいて定められるサーバーの現在の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)要件を満たすのに十分な値ではありあません。 | | `telLOCAL_ERROR` | 不明なローカルエラー。 | -| `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | トランザクションは[`NetworkID`フィールド](transaction-common-fields.html#networkidフィールド)を指定していますが、現在のネットワークルールでは`NetworkID`フィールドは指定しないことになっています。(メインネットやその他のチェーンIDが1024以下のネットワークではこのフィールドは使用されません)。もしトランザクションが`NetworkID`を使用しないネットワーク向けであった場合、そのフィールドを削除して再試行してください。トランザクションが別のネットワーク向けだった場合は、正しいネットワークに接続されているサーバに送信してください。 [新規: rippled 1.11.0][] | -| `telNO_DST`_`PARTIAL` | トランザクションは、新しいアカウントに資金を供給するためのXRPによる支払いですが、[tfPartialPaymentフラグ](partial-payments.html)が有効になっていました。これは許可されていません。 | -| `telREQUIRES_NETWORK_ID` | トランザクションは[`NetworkID`フィールド](transaction-common-fields.html#networkidフィールド)を指定していません。トランザクションが`NetworkID`を必要とするネットワーク向けであった場合、フィールドを追加して再試行してください。トランザクションが別のネットワーク向けであった場合、正しいネットワークに接続されているサーバに送信してください。[新規: rippled 1.11.0][] | -| `telWRONG_NETWORK` | トランザクションが現在のネットワークに対して間違った [`NetworkID` 値](transaction-common-fields.html#networkidフィールド) を指定しています。目的のネットワークに対して正しい `NetworkID`値を指定するか、正しいネットワークに接続されているサーバーにトランザクションを送信してください。[新規: rippled 1.11.0][] | +| `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 %} | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/transaction-results/tem-codes.md b/content/@i18n/ja/references/protocol/transactions/transaction-results/tem-codes.md index b9babe802e..7f1b34df80 100644 --- a/content/@i18n/ja/references/protocol/transactions/transaction-results/tem-codes.md +++ b/content/@i18n/ja/references/protocol/transactions/transaction-results/tem-codes.md @@ -9,46 +9,43 @@ labels: これらのコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。これらには-299から-200までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 -**ヒント:** `tem`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。有効なトランザクションに関するルールが変更されない限り、`tem`コードが最終的な結果となります。(例えば、[Amendment](amendments.html)の有効化前に当該のAmendmentの機能を使用すると`temDISABLED`になります。後日Amendmentが有効化されると、エラーになったトランザクションは有効となり、正常に処理される可能性があります。) +**ヒント:** `tem`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。有効なトランザクションに関するルールが変更されない限り、`tem`コードが最終的な結果となります。(例えば、[Amendment](../../../../concepts/networks-and-servers/amendments.md)の有効化前に当該のAmendmentの機能を使用すると`temDISABLED`になります。後日Amendmentが有効化されると、エラーになったトランザクションは有効となり、正常に処理される可能性があります。) | コード | 説明 | |:-----------------------------|:----------------------------------------------| | `temBAD_AMOUNT` | トランザクションにより指定された額(宛先への[Payment][]の`Amount`または`SendMax`の金額など)が無効でした。マイナスの金額が指定された可能性があります。 | -| `temBAD_AUTH_MASTER` | このトランザクションの署名に使用されたキーが、トランザクションの送信元アカウントのマスターキーと一致していません。また、アカウントに[レギュラーキー](cryptographic-keys.html)セットがありません。 | +| `temBAD_AUTH_MASTER` | このトランザクションの署名に使用されたキーが、トランザクションの送信元アカウントのマスターキーと一致していません。また、アカウントに[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)セットがありません。 | | `temBAD_CURRENCY` | トランザクションの通貨フィールドが誤って指定されています。正しいフォーマットについては、[通貨額の指定][通貨額]を参照してください。 | | `temBAD_EXPIRATION` | トランザクションの有効期限の値が誤って指定されています([OfferCreateトランザクション][]など)。あるいは、トランザクションに必須の有効期限値が指定されていません(例えば、[EscrowCreateトランザクション][]の作成過程などで)。 | | `temBAD_FEE` | トランザクションで`Fee`の値が誤って指定されています(例えば、XRP以外の通貨やマイナスの額のXRPを指定するなど)。 | | `temBAD_ISSUER` | リクエストに指定されている通貨の`issuer`フィールドが、トランザクションにて誤って指定されています。 | | `temBAD_LIMIT` | [TrustSetトランザクション][]でトラストラインの`LimitAmount`値が誤って指定されています。 | | `temBAD_OFFER` | [OfferCreateトランザクション][]で無効なオファーが指定されています(XRPをXRP自身と取引するオファー、マイナスの額のオファーなど)。 | -| `temBAD_PATH` | [Paymentトランザクション][]の1つ以上の[パス](paths.html)が誤って指定されています。例えば、XRPのイシュアーが含まれていたり、アカウントが異なる方法で指定されたりするなど。 | -| `temBAD_PATH_LOOP` | [Paymentトランザクション][]で[パス](paths.html)の1つがループとしてマークされているため、限られた時間内に処理できません。 | -| `temBAD_SEND_XRP_LIMIT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfLimitQuality](payment.html#クオリティの制限)フラグが使用されましたが、XRP間の支払いでは通貨の取引は行われません。 | +| `temBAD_PATH` | [Paymentトランザクション][]の1つ以上の[パス](../../../../concepts/tokens/fungible-tokens/paths.md)が誤って指定されています。例えば、XRPのイシュアーが含まれていたり、アカウントが異なる方法で指定されたりするなど。 | +| `temBAD_PATH_LOOP` | [Paymentトランザクション][]で[パス](../../../../concepts/tokens/fungible-tokens/paths.md)の1つがループとしてマークされているため、限られた時間内に処理できません。 | +| `temBAD_SEND_XRP_LIMIT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfLimitQuality](../types/payment.md#クオリティの制限)フラグが使用されましたが、XRP間の支払いでは通貨の取引は行われません。 | | `temBAD_SEND_XRP_MAX` | [Paymentトランザクション][]で、XRP間の直接支払いに`SendMax`フィールドが指定されていますが、XRPの送金ではSendMaxは不要です。(SendMaxでXRPが有効となるのは、宛先への`Amount`がXRPではない場合のみです。) | -| `temBAD_SEND_XRP_NO_DIRECT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfNoDirectRipple](payment.html#paymentのフラグ)フラグが使用されていますが、XRP間の支払いは常に直接行われます。 | -| `temBAD_SEND_XRP_PARTIAL` | [Paymentトランザクション][]で、XRP間の直接支払いに [tfPartialPayment](partial-payments.html)フラグが使用されていますが、XRP間の直接支払いでは常に全額が送金されます。 | +| `temBAD_SEND_XRP_NO_DIRECT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfNoDirectRipple](../types/payment.md#paymentのフラグ)フラグが使用されていますが、XRP間の支払いは常に直接行われます。 | +| `temBAD_SEND_XRP_PARTIAL` | [Paymentトランザクション][]で、XRP間の直接支払いに [tfPartialPayment](../../../../concepts/payment-types/partial-payments.md)フラグが使用されていますが、XRP間の直接支払いでは常に全額が送金されます。 | | `temBAD_SEND_XRP_PATHS` | [Paymentトランザクション][]で、XRP送金時の`Paths`が指定されていますが、XRP間の支払いは常に直接行われます。 | | `temBAD_SEQUENCE` | トランザクションは、トランザクション自体の`Sequence`番号よりも大きいシーケンス番号を参照します。例えば、取り消したいオファーは、そのオファーを取り消すトランザクションよりも後に置く必要があります。 | -| `temBAD_SIGNATURE` | このトランザクションを承認するための署名がないか、または署名の形式が適切ではありません。(適切な形式の署名がアカウントで承認されない場合は、[tecNO_PERMISSION](tec-codes.html)を参照してください。) | -| `temBAD_SRC_ACCOUNT` | このトランザクションの送信元の`Account`(「支払元アカウント」)の[アカウント](accounts.html)アドレスは適切な形式ではありません。 | -| `temBAD_TRANSFER_RATE` | [AccountSetトランザクションの`TransferRate`フィールド](accountset.html#transferrate)のフォーマットが適切ではないか、または許容範囲外です。 | +| `temBAD_SIGNATURE` | このトランザクションを承認するための署名がないか、または署名の形式が適切ではありません。(適切な形式の署名がアカウントで承認されない場合は、[tecNO_PERMISSION](tec-codes.md)を参照してください。) | +| `temBAD_SRC_ACCOUNT` | このトランザクションの送信元の`Account`(「支払元アカウント」)の[アカウント](../../../../concepts/accounts/accounts.md)アドレスは適切な形式ではありません。 | +| `temBAD_TRANSFER_RATE` | [AccountSetトランザクションの`TransferRate`フィールド](../types/accountset.md#transferrate)のフォーマットが適切ではないか、または許容範囲外です。 | | `temCANNOT_PREAUTH_SELF` | [DepositPreauthトランザクション][]の送信者は、事前承認対象のアカウントとしても指定されていました。自分自身を事前承認することはできません。 | | `temDST_IS_SRC` | トランザクションで宛先アドレスがトランザクションの送信元`Account`として誤って指定されていました。これにはトラストライン(支払先アドレスは`LimitAmount`の`issuer`フィールド)とPayment Channel(支払先アドレスは`Destination`フィールド)などがあります。 | | `temDST_NEEDED` | トランザクションで宛先が誤って省略されていました。これは、[Paymentトランザクション][]の`Destination`フィールド、または`TrustSet`トランザクションの`LimitAmount`フィールドの`issuer`サブフィールドで起こり得ます。 | | `temINVALID` | その他の理由により、トランザクションは無効です。例えば、トランザクションIDのフォーマットや署名の形式が正しくないなど、トランザクションを解釈する過程で何らかの誤った処理が発生した可能性があります。 | -| `temINVALID_FLAG` | トランザクションに指定されている[フラグ](transaction-common-fields.html#flagsフィールド)が存在していないか、または矛盾するフラグの組み合わせが指定されています。 | +| `temINVALID_FLAG` | トランザクションに指定されている[フラグ](../common-fields.md#flagsフィールド)が存在していないか、または矛盾するフラグの組み合わせが指定されています。 | | `temMALFORMED` | トランザクションのフォーマットで不明な問題が発生しました。 | | `temREDUNDANT` | トランザクションは処理を行いません。例えば、送信側アカウントに支払いを直接送金する場合や、同一イシュアーの同一通貨を売買するオファーを作成する場合などです。 | -| `temREDUNDANT_SEND_MAX` | [削除: rippled 0.28.0][] | +| `temREDUNDANT_SEND_MAX` | {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}削除: rippled 0.28.0{% /badge %} | | `temRIPPLE_EMPTY` | [Paymentトランザクション][]に指定されている`Paths`フィールドが空ですが、この支払いを完了するにはパスが必要です。 | | `temBAD_WEIGHT` | [SignerListSetトランザクション][]に無効な`SignerWeight`が指定されています。例えば、0やマイナス値など。 | | `temBAD_SIGNER` | [SignerListSetトランザクション][]に指定されている署名者が無効です。例えば、重複するエントリが指定されている場合や、SignerListの所有者がメンバーでもある場合などです。 | | `temBAD_QUORUM` | [SignerListSetトランザクション][]に無効な`SignerQuorum`値が指定されています。この値が0以下であるか、またはリストのすべての署名者の合計数を超えています。 | | `temUNCERTAIN` | 内部使用のみ。通常はこのコードは返されません。 | | `temUNKNOWN` | 内部使用のみ。通常はこのコードは返されません。 | -| `temDISABLED` | このトランザクションには、無効化されているロジックが必要です。通常これは、現行レジャー向けに有効化されていない[Amendment](amendments.html)を使用しようとしていることを意味します。 | +| `temDISABLED` | このトランザクションには、無効化されているロジックが必要です。通常これは、現行レジャー向けに有効化されていない[Amendment](../../../../concepts/networks-and-servers/amendments.md)を使用しようとしていることを意味します。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/transaction-results/ter-codes.md b/content/@i18n/ja/references/protocol/transactions/transaction-results/ter-codes.md index a45abf59da..c19b44d618 100644 --- a/content/@i18n/ja/references/protocol/transactions/transaction-results/ter-codes.md +++ b/content/@i18n/ja/references/protocol/transactions/transaction-results/ter-codes.md @@ -9,7 +9,7 @@ labels: これらのコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。通常は、他の仮定トランザクションが先に適用される場合など。これらには-99から-1までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 -**注意:** `ter`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 +**注意:** `ter`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼性の高いトランザクション送信](../../../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 | コード | 説明 | |:-----------------|:----------------------------------------------------------| @@ -20,12 +20,9 @@ labels: | `terNO_AUTH` | トランザクションでは、`lsfRequireAuth`が有効であるアカウントが発行した通貨を未承認のトラストラインに追加する操作が行われます。たとえば、保有が許可されていない通貨を購入するオファーを出した場合などです。 | | `terNO_LINE` | 内部使用のみ。通常はこのコードは返されません。 | | `terNO_RIPPLE` | 内部使用のみ。通常はこのコードは返されません。 | -| `terOWNERS` | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 | +| `terOWNERS` | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](../types/accountset.md#accountsetのフラグ)フラグを有効にできません。 | | `terPRE_SEQ` | 現在のトランザクションの`Sequence`番号が、トランザクションを送信するアカウントの現在のシーケンス番号よりも大きな番号です。 | | `terRETRY` | 再試行可能な不明なエラー。 | -| `terQUEUED` | トランザクションは負荷スケーリングされた[トランザクションコスト](transaction-cost.html)の要件を満たしているが、オープンレジャーの要件を満たしていなかったため、トランザクションは将来のレジャーのキューに入れられました。 | +| `terQUEUED` | トランザクションは負荷スケーリングされた[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)の要件を満たしているが、オープンレジャーの要件を満たしていなかったため、トランザクションは将来のレジャーのキューに入れられました。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/transaction-results/tes-success.md b/content/@i18n/ja/references/protocol/transactions/transaction-results/tes-success.md index 9a6343b6e5..bcc264063c 100644 --- a/content/@i18n/ja/references/protocol/transactions/transaction-results/tes-success.md +++ b/content/@i18n/ja/references/protocol/transactions/transaction-results/tes-success.md @@ -13,7 +13,4 @@ labels: |:-----------|:----------------------------------------------------------------| | `tesSUCCESS` | トランザクションが適用され、他のサーバーに転送されました。検証済みレジャーにこのコードが記録されている場合は、トランザクションの成功が最終的な結果となります。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/transaction-results/transaction-results.md b/content/@i18n/ja/references/protocol/transactions/transaction-results/transaction-results.md index 5dcd60e437..d0977d747d 100644 --- a/content/@i18n/ja/references/protocol/transactions/transaction-results/transaction-results.md +++ b/content/@i18n/ja/references/protocol/transactions/transaction-results/transaction-results.md @@ -13,14 +13,14 @@ labels: | カテゴリー | プレフィクス | 説明 | |:----------------------|:------------------------|:---------------------------| -| コストの請求のみ | [tec](tec-codes.html) | トランザクションは意図された目的を果さず、[トランザクションコスト](transaction-cost.html)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | -| 失敗 | [tef](tef-codes.html) | サーバーの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | -| ローカルエラー | [tel](tel-codes.html) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバーでエラーが発生しました。サーバーまたは時間を変えて再送信すると、別のレスポンスを得られる可能性があります。 | -| 形式が正しくないトランザクション | [tem](tem-codes.html) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 | -| 再試行 | [ter](ter-codes.html) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 | -| 成功 | [tes](tes-success.html) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | +| コストの請求のみ | [tec](tec-codes.md) | トランザクションは意図された目的を果さず、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | +| 失敗 | [tef](tef-codes.md) | サーバーの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | +| ローカルエラー | [tel](tel-codes.md) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバーでエラーが発生しました。サーバーまたは時間を変えて再送信すると、別のレスポンスを得られる可能性があります。 | +| 形式が正しくないトランザクション | [tem](tem-codes.md) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 | +| 再試行 | [ter](ter-codes.md) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 | +| 成功 | [tes](tes-success.md) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | -**警告:** トランザクションの暫定的な結果コードは、最終的な結果とは異なるものになる場合があります。暫定的に成功とされたトランザクションが最終的に失敗する場合や、暫定的に失敗とされたトランザクションが最終的に成功する場合もあります。暫定的に失敗とされたトランザクションが、最終的に別のコードで失敗とされる場合もあります。トランザクションの結果が最終的なものとなるタイミングを判断する方法については、[結果のファイナリティー](finality-of-results.html)を参照してください。 +**警告:** トランザクションの暫定的な結果コードは、最終的な結果とは異なるものになる場合があります。暫定的に成功とされたトランザクションが最終的に失敗する場合や、暫定的に失敗とされたトランザクションが最終的に成功する場合もあります。暫定的に失敗とされたトランザクションが、最終的に別のコードで失敗とされる場合もあります。トランザクションの結果が最終的なものとなるタイミングを判断する方法については、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)を参照してください。 ローカルエラー(`tel`)と形式が正しくないトランザクション(`tem`)の違いは、プロトコルレベルでのルールの問題です。例えば、トランザクションに含めることができるパスの最大数について、プロトコルでは上限が設定されていないとします。一方、サーバーでは、処理できるパスの数について上限を定義している場合があります。2つのサーバーがあり、設定がそれぞれ異なっている場合、一方はパスが多いという理由でトランザクションの`tel`エラーを返すのに対して、他方のサーバーではトランザクションが正常に処理されることもあります。コンセンサスを獲得したトランザクションを処理できるサーバーが十分にある場合、検証済みレジャーに含まれる可能性はあります。 @@ -47,9 +47,6 @@ labels: "engine_result_message": "The transaction was applied.Only final in a validated ledger." ``` -**注記:** この段階で成功の結果が表示されたとしても、トランザクションが完全に成功したことを示すわけではありません。ローカルのサーバーに保持されている暫定バージョンのレジャーに対して、正常に適用されたにすぎません。この段階での失敗の結果も、暫定的なものであり変化する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)を参照してください。 +**注記:** この段階で成功の結果が表示されたとしても、トランザクションが完全に成功したことを示すわけではありません。ローカルのサーバーに保持されている暫定バージョンのレジャーに対して、正常に適用されたにすぎません。この段階での失敗の結果も、暫定的なものであり変化する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)を参照してください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/accountdelete.md b/content/@i18n/ja/references/protocol/transactions/types/accountdelete.md index fc98c642f9..95c55adc96 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/accountdelete.md +++ b/content/@i18n/ja/references/protocol/transactions/types/accountdelete.md @@ -9,11 +9,11 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/DeleteAccount.cpp "Source") -_[DeletableAccounts Amendment](known-amendments.html#deletableaccounts)が必要です_ +_[DeletableAccounts Amendment](../../../../resources/known-amendments.md#deletableaccounts)が必要です_ -AccountDeleteトランザクションは、XRP Ledgerで[アカウント](accountroot.html)と、アカウントが所有するオブジェクトを削除し、可能であれば、アカウントの残りのXRPを指定された送金先アカウントに送信します。アカウントを削除する要件については、[アカウントの削除](deleting-accounts.html)を参照してください。 +AccountDeleteトランザクションは、XRP Ledgerで[アカウント](../../ledger-data/ledger-entry-types/accountroot.md)と、アカウントが所有するオブジェクトを削除し、可能であれば、アカウントの残りのXRPを指定された送金先アカウントに送信します。アカウントを削除する要件については、[アカウントの削除](../../../../concepts/accounts/deleting-accounts.md)を参照してください。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -27,32 +27,28 @@ AccountDeleteトランザクションは、XRP Ledgerで[アカウント](accoun } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-----------------|:-----------------|:------------------|:-------------------| | `Destination` | 文字列 - [アドレス][] | AccountID | 送金元アカウントを削除した後に残ったXRPを受信するアカウントのアドレス。レジャーの資金供給されたアカウントである必要があります。送金元アカウントにすることはできません。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ ホストされた受取人、または削除されたアカウントの残りのXRPの受取人に関するその他の情報を識別する任意の[宛先タグ](source-and-destination-tags.html)。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ ホストされた受取人、または削除されたアカウントの残りのXRPの受取人に関するその他の情報を識別する任意の[宛先タグ](../../../../concepts/transactions/source-and-destination-tags.md)。 | ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:-----------|:------------| -| `temDISABLED` | [DeletableAccounts Amendment](known-amendments.html#deletableaccounts)が有効でない場合に発生します。 | +| `temDISABLED` | [DeletableAccounts Amendment](../../../../resources/known-amendments.md#deletableaccounts)が有効でない場合に発生します。 | | `temDST_IS_SRC` | `Destination`がトランザクションの送金元(`Account`フィールド)と一致している場合に発生します。 | -| `tecDST_TAG_NEEDED` | `Destination`アカウントに[宛先タグ](source-and-destination-tags.html)が必要であるのに、`DestinationTag`フィールドが指定されていない場合に発生します。 | +| `tecDST_TAG_NEEDED` | `Destination`アカウントに[宛先タグ](../../../../concepts/transactions/source-and-destination-tags.md)が必要であるのに、`DestinationTag`フィールドが指定されていない場合に発生します。 | | `tecNO_DST` | `Destination`アカウントが、レジャーの資金供給のあるアカウントではない場合に発生します。 | -| `tecNO_PERMISSION` | `Destination`アカウントに[Deposit Authorization](depositauth.html)が必要で、送金元が事前に承認されていない場合に発生します。 | +| `tecNO_PERMISSION` | `Destination`アカウントに[Deposit Authorization](../../../../concepts/accounts/depositauth.md)が必要で、送金元が事前に承認されていない場合に発生します。 | | `tecTOO_SOON` | 送金元の`Sequence`番号が大きすぎる場合に発生します。トランザクションの`Sequence`番号に256を加えた値が、現行の[レジャーインデックス][]より小さい値でなければなりません。 | -| `tecHAS_OBLIGATIONS` | 削除するアカウントが、レジャーの削除できないオブジェクトに接続されている場合に発生します。([escrow](escrow.html)など、他のアカウントによって作成されたオブジェクトが含まれます。) | +| `tecHAS_OBLIGATIONS` | 削除するアカウントが、レジャーの削除できないオブジェクトに接続されている場合に発生します。([escrow](../../../../concepts/payment-types/escrow.md)など、他のアカウントによって作成されたオブジェクトが含まれます。) | | `tefTOO_BIG` | 送金元アカウントが、レジャーの1,000個を超えるオブジェクトにリンクされている場合に発生します。これらのオブジェクトの一部が先行して個別に削除された場合、トランザクションは再試行で成功する可能性があります。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/accountset.md b/content/@i18n/ja/references/protocol/transactions/types/accountset.md index b8f70b4690..f6cae6fda1 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/accountset.md +++ b/content/@i18n/ja/references/protocol/transactions/types/accountset.md @@ -9,9 +9,9 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/f65cea66ef99b1de149c02c15f06de6c61abf360/src/ripple/app/transactors/SetAccount.cpp "ソース") -AccountSetトランザクションは、[XRP Ledgerのアカウント](accountroot.html)のプロパティーを修正します。 +AccountSetトランザクションは、[XRP Ledgerのアカウント](../../ledger-data/ledger-entry-types/accountroot.md)のプロパティーを修正します。 -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 ```json { @@ -25,7 +25,7 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](accountro } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -35,14 +35,14 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](accountro | [`Domain`](#domain) | 文字列 | Blob | _(省略可)_ このアカウントを保有するドメインのASCII小文字を表現する16進文字列。[256バイトを超える長さは使用できません。](https://github.com/XRPLF/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | | `EmailHash` | 文字列 | Hash128 | _(省略可)_ アバターイメージの生成に使用されるメールアドレスのハッシュ。一般的に、クライアントは[Gravatar](http://en.gravatar.com/site/implement/hash/)を使用してこのイメージを表示しています。 | | `MessageKey` | 文字列 | Blob | _(省略可)_ 暗号化されたメッセージをこのアカウントに送信するための公開鍵です。キーを設定するには、正確に33バイトである必要があり、最初のバイトはキーの種類を示します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`です。キーを削除するには、空の値を使用します。 | -| `NFTokenMinter` | 文字列 | Blob | _(省略可)_ あなたのために[NFTokensをミントする](assign-an-authorized-minter-using-javascript.html)ことができる別のアカウント。 _([NonFungibleTokensV1_1 amendment][]により追加されました.)_ | +| `NFTokenMinter` | 文字列 | Blob | _(省略可)_ あなたのために[NFTokensをミントする](../../../../tutorials/quickstart/assign-an-authorized-minter-using-javascript.md)ことができる別のアカウント。 _([NonFungibleTokensV1_1 amendment][]により追加されました.)_ | | [`SetFlag`](#accountsetのフラグ) | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを有効にするための整数フラグ。 | | [`TransferRate`](#transferrate) | 符号なし整数 | UInt32 | _(省略可)_ ユーザーがこのアカウントのトークンを送金するときに請求される手数料。通貨単位の10億分の1で表現されます。手数料なしを意味する特殊なケースの`0`を除いて、`2000000000`より大きくしたり、`1000000000`より小さくしたりすることはできません。 | -| [`TickSize`](ticksize.html) | 符号なし整数 | UInt8 | _(省略可)_このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です_([TickSize Amendment][]により追加されました)。_ | +| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | 符号なし整数 | UInt8 | _(省略可)_このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です_([TickSize Amendment][]により追加されました)。_ | | `WalletLocator` | 文字列 | Hash256 | _(省略可)_ 任意の256ビット値です。指定された場合、この値はアカウントの設定の一部として保存さ れますが、固有の定義や要件を持ちません。 | | `WalletSize` | 数値 | UInt32 | _(省略可)_ 使用されません。このフィールドはAccountSetトランザクションで有効ですが、何の機能もありません | -これらのオプションがいずれも指定されていない場合、AccountSetトランザクションは(取引コストの消却以外に)意味がありません。詳細は、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。 +これらのオプションがいずれも指定されていない場合、AccountSetトランザクションは(取引コストの消却以外に)意味がありません。詳細は、[トランザクションのキャンセルまたはスキップ](../../../../concepts/transactions/finality-of-results/canceling-a-transaction.md)を参照してください。 ## Domain @@ -53,7 +53,7 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](accountro アカウントの`Domain`フィールドには任意のドメインを挿入できます。アカウントとドメインが同一の人物または企業に属していることを証明するには、「双方向リンク」を確立することをお勧めします。 - 所有するアカウントに対して、所有するドメインを`Domain`フィールドで設定します。 -- そのドメインのWebサイトで、所有アカウントをリストするテキストファイルをホスティングし、必要に応じて、XRP Ledgerの用途に関するその他の情報も記述します。慣例上、このファイルの名前は[xrp-ledger.toml file](xrp-ledger-toml.html)とします。 +- そのドメインのWebサイトで、所有アカウントをリストするテキストファイルをホスティングし、必要に応じて、XRP Ledgerの用途に関するその他の情報も記述します。慣例上、このファイルの名前は[xrp-ledger.toml file](../../../xrp-ledger-toml.md)とします。 ## AccountSetのフラグ @@ -71,24 +71,24 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](accountro | フラグの名前 | 10進値 | 対応するレジャーフラグ | 説明 | |:----------------------------------|:------|:----------------------------------|:--------------| -| `asfAccountTxnID` | 5 | (なし) | このアカウントの直近のトランザクションのIDを追跡します。[AccountTxnID](transaction-common-fields.html#accounttxnid)については必須です。 | -| `asfAuthorizedNFTokenMinter` | 10 | (なし) | このアカウントの代わりに、別のアカウントが非代替性トークン(NFToken)をミントすることを許可するために使用します。認可されたアカウントを[AccountRoot](accountroot.html)オブジェクトの`NFTokenMinter`フィールドで指定します。認可されたアカウントを削除するには、このフラグを有効にして`NFTokenMinter`フィールドを省略します。 _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ | -| `asfDefaultRipple` | 8 | `lsfDefaultRipple` | このアカウントのトラストラインでの[リップリング](rippling.html)をデフォルトで有効にします。 | -| `asfDepositAuth` | 9 | `lsfDepositAuth` | このアカウントに対して[Deposit Authorization](depositauth.html)を有効にします _([DepositAuth Amendment][]により追加されました)。_ | -| `asfDisableMaster` | 4 | `lsfDisableMaster` | マスターキーペアの使用を禁止します。[レギュラーキー](cryptographic-keys.html)や[署名者リスト](multi-signing.html)など、トランザクションに署名するための別の手段がアカウントで設定されている場合のみ有効にできます。 | -| `asfDisallowIncomingCheck` | 13 | `lsfDisallowIncomingCheck` | チェックの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です。)_ | -| `asfDisallowIncomingNFTokenOffer` | 12 | `lsfDisallowIncomingNFTokenOffer` | NFTokenOffersの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。 | -| `asfDisallowIncomingPayChan` | 14 | `lsfDisallowIncomingPayChan` | ペイメントチャネルの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。 | -| `asfDisallowIncomingTrustline` | 15 | `lsfDisallowIncomingTrustline` | トラストラインの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。 | +| `asfAccountTxnID` | 5 | (なし) | このアカウントの直近のトランザクションのIDを追跡します。[AccountTxnID](../common-fields.md#accounttxnid)については必須です。 | +| `asfAuthorizedNFTokenMinter` | 10 | (なし) | このアカウントの代わりに、別のアカウントが非代替性トークン(NFToken)をミントすることを許可するために使用します。認可されたアカウントを[AccountRoot](../../ledger-data/ledger-entry-types/accountroot.md)オブジェクトの`NFTokenMinter`フィールドで指定します。認可されたアカウントを削除するには、このフラグを有効にして`NFTokenMinter`フィールドを省略します。 _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ | +| `asfDefaultRipple` | 8 | `lsfDefaultRipple` | このアカウントのトラストラインでの[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)をデフォルトで有効にします。 | +| `asfDepositAuth` | 9 | `lsfDepositAuth` | このアカウントに対して[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を有効にします _([DepositAuth Amendment][]により追加されました)。_ | +| `asfDisableMaster` | 4 | `lsfDisableMaster` | マスターキーペアの使用を禁止します。[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)や[署名者リスト](../../../../concepts/accounts/multi-signing.md)など、トランザクションに署名するための別の手段がアカウントで設定されている場合のみ有効にできます。 | +| `asfDisallowIncomingCheck` | 13 | `lsfDisallowIncomingCheck` | チェックの着信をブロックします。_([DisallowIncoming amendment][] {% not-enabled /%} が必要です。)_ | +| `asfDisallowIncomingNFTokenOffer` | 12 | `lsfDisallowIncomingNFTokenOffer` | NFTokenOffersの着信をブロックします。_([DisallowIncoming amendment][] {% not-enabled /%} が必要です)_。 | +| `asfDisallowIncomingPayChan` | 14 | `lsfDisallowIncomingPayChan` | ペイメントチャネルの着信をブロックします。_([DisallowIncoming amendment][] {% not-enabled /%} が必要です)_。 | +| `asfDisallowIncomingTrustline` | 15 | `lsfDisallowIncomingTrustline` | トラストラインの着信をブロックします。_([DisallowIncoming amendment][] {% not-enabled /%} が必要です)_。 | | `asfDisallowXRP` | 3 | `lsfDisallowXRP` | XRPがこのアカウントに送信されないようにします(勧告的なもので、XRP Ledgerのプロトコルでは強制されません)。 | -| `asfGlobalFreeze` | 7 | `lsfGlobalFreeze` | このアカウントによって発行されたすべての資産を[凍結](freezes.html)します。 | -| `asfNoFreeze` | 6 | `lsfNoFreeze` | [個々のトラストラインの凍結またはGlobal Freezeの無効化](freezes.html)の機能を永続的に放棄します。このフラグは、有効にした後は無効にできません。 | +| `asfGlobalFreeze` | 7 | `lsfGlobalFreeze` | このアカウントによって発行されたすべての資産を[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | +| `asfNoFreeze` | 6 | `lsfNoFreeze` | [個々のトラストラインの凍結またはGlobal Freezeの無効化](../../../../concepts/tokens/fungible-tokens/freezes.md)の機能を永続的に放棄します。このフラグは、有効にした後は無効にできません。 | | `asfRequireAuth` | 2 | `lsfRequireAuth` | このアドレスによって発行された残高をユーザーが保持することについて、承認を要求します。アドレスにトラストラインが接続されていない場合のみ有効にできます。 | | `asfRequireDest` | 1 | `lsfRequireDestTag` | トランザクションをこのアカウントに送信するための宛先タグを要求します。 | -`asfDisableMaster`フラグまたは`asfNoFreeze`フラグを有効にするには、マスターキーペアで署名することによって[トランザクションを承認](transactions.html#トランザクションの承認)する必要があります。レギュラーキーペアやマルチ署名を使用することはできません。レギュラーキーペアまたはマルチ署名を使用すると、`asfDisableMaster`を無効にする(つまり、マスターキーペアを再び有効にする)ことができます。[新規: rippled 0.28.0][] +`asfDisableMaster`フラグまたは`asfNoFreeze`フラグを有効にするには、マスターキーペアで署名することによって[トランザクションを承認](../../../../concepts/transactions/index.md#トランザクションの承認)する必要があります。レギュラーキーペアやマルチ署名を使用することはできません。レギュラーキーペアまたはマルチ署名を使用すると、`asfDisableMaster`を無効にする(つまり、マスターキーペアを再び有効にする)ことができます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}新規: rippled 0.28.0{% /badge %} -以下の[トランザクションフラグ](transaction-common-fields.html#flagsフィールド)はAccountSetタイプのトランザクションに固有のもので、同様の目的を果たしますが、使用することはお勧めしません。限られたスペースのため、いくつかの設定には関連する `tf` フラグがありません。また、新しい `tf` フラグは `AccountSet` トランザクションタイプには追加されていません。一つのトランザクションで複数の設定を有効にするには、`tf`フラグと`asf`フラグを組み合わせて使用することができます。 +以下の[トランザクションフラグ](../common-fields.md#flagsフィールド)はAccountSetタイプのトランザクションに固有のもので、同様の目的を果たしますが、使用することはお勧めしません。限られたスペースのため、いくつかの設定には関連する `tf` フラグがありません。また、新しい `tf` フラグは `AccountSet` トランザクションタイプには追加されていません。一つのトランザクションで複数の設定を有効にするには、`tf`フラグと`asf`フラグを組み合わせて使用することができます。 | フラグの名前 | 16進値 | 10進値 | 後継のAccountSetのフラグ | |:--------------------|:-------------|:--------------|:----------------------------| @@ -99,7 +99,7 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](accountro | `tfDisallowXRP` | `0x00100000` | 1048576 | asfDisallowXRP(SetFlag) | | `tfAllowXRP` | `0x00200000` | 2097152 | asfDisallowXRP(ClearFlag) | -**注意:** トランザクションに含まれている`tf`フラグと`asf`フラグの数値は、レジャーに含まれている静的なアカウントに設定された値と合致しません。レジャーに含まれているアカウントのフラグを読み取るには、[`AccountRoot`フラグ](accountroot.html#accountrootのフラグ)を参照してください。 +**注意:** トランザクションに含まれている`tf`フラグと`asf`フラグの数値は、レジャーに含まれている静的なアカウントに設定された値と合致しません。レジャーに含まれているアカウントのフラグを読み取るには、[`AccountRoot`フラグ](../../ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ)を参照してください。 ### 着信トランザクションのブロック @@ -110,9 +110,9 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](accountro XRP以外の通貨に関しては、それらの通貨のトラストラインを作成しないことで、無用な支払いの受入れを防止できます。XRPでは信頼が必須ではないことから、ユーザーによるアカウントへのXRPの送金を抑止するには、`asfDisallowXRP`フラグを使用します。ただし、このフラグによってアカウントが使用不可になる場合があるため、`rippled`では適用されません(このフラグを無効にしたトランザクションを送信するための十分なXRPがアカウントになかった場合、アカウントは完全に使用不可になります)。代わりに、クライアントアプリケーションでは、`asfDisallowXRP`フラグが有効なアカウントへのXRPの支払いを禁止または抑止します。 -_すべての_ 支払いの着信をブロックしたい場合、[Deposit Authorization](depositauth.html)を有効にすることができます。これは、あなたのアカウントが[準備金要件](reserves.html)を下回らない限り、たとえXRPであっても、あらゆるトランザクションからの送金をブロックします。 +_すべての_ 支払いの着信をブロックしたい場合、[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を有効にすることができます。これは、あなたのアカウントが[準備金要件](../../../../concepts/accounts/reserves.md)を下回らない限り、たとえXRPであっても、あらゆるトランザクションからの送金をブロックします。 -[DisallowIncoming amendment][] :not_enabled: が有効化されている場合、着信するすべてのチェック、NFTokenOffer、ペイメントチャネル、およびトラストラインをブロックするオプションもあります。これらのオブジェクトを着信することは一般的に無害ですが、アカウントを削除することができなくなる場合があり、自分が作成したオブジェクトのリストに予期しないオブジェクトが混ざり混乱することがあります。オブジェクトの着信をブロックするには、次のアカウントフラグのいずれかを使用します。 +[DisallowIncoming amendment][] {% not-enabled /%} が有効化されている場合、着信するすべてのチェック、NFTokenOffer、ペイメントチャネル、およびトラストラインをブロックするオプションもあります。これらのオブジェクトを着信することは一般的に無害ですが、アカウントを削除することができなくなる場合があり、自分が作成したオブジェクトのリストに予期しないオブジェクトが混ざり混乱することがあります。オブジェクトの着信をブロックするには、次のアカウントフラグのいずれかを使用します。 - `asfDisallowIncomingCheck` - チェックオブジェクト用 - `asfDisallowIncomingNFTOffer` - NFTokenOfferオブジェクト用 @@ -127,9 +127,6 @@ TransferRateフィールドは、ユーザーの発行する通貨を相手方 HTTPおよびWebSocketのAPIでは、TransferRate(相手方に10億単位の通貨を送金するのに必要な金額)は整数で表現します。例えば、送金手数料が20%である場合、値を`1200000000`と表現します。 値を1000000000未満にすることはできません(この値未満にした場合、トランザクションの送信について金銭の引き渡しが発生することになり、攻撃に利用されるおそれがあります)。`1000000000`の短縮形として、手数料なしを意味する`0`を指定できます。 -詳細は、[送金手数料](transfer-fees.html)を参照してください。 +詳細は、[送金手数料](../../../../concepts/tokens/transfer-fees.md)を参照してください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/ammbid.md b/content/@i18n/ja/references/protocol/transactions/types/ammbid.md index 1d55060357..60df270262 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/ammbid.md +++ b/content/@i18n/ja/references/protocol/transactions/types/ammbid.md @@ -9,14 +9,14 @@ status: not_enabled # AMMBid [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMBid.cpp "Source") -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ -[自動マーケットメーカー](automated-market-makers.html)のオークションスロットに入札することができます。落札されると、競り落とされるか24時間が経過するまで、割引料金でAMMと取引することができます。24時間が経過する前に競り落とされた場合、残り時間に応じて落札価格の一部が払い戻されます。 +[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)のオークションスロットに入札することができます。落札されると、競り落とされるか24時間が経過するまで、割引料金でAMMと取引することができます。24時間が経過する前に競り落とされた場合、残り時間に応じて落札価格の一部が払い戻されます。 AMMのLPトークンを使って落札すると、落札に利用したLPトークンはAMMに返され、LPトークンの残高が減ります。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -52,7 +52,7 @@ AMMのLPトークンを使って落札すると、落札に利用したLPトー } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:---------------|:-----------|:- ----------|:----- |:------------| @@ -84,7 +84,9 @@ AMMのLPトークンを使って落札すると、落札に利用したLPトー - それ以外の場合、現在の保有者に落札価格は、以下の式で計算されます。 - P = B × 1.05 × (1 - t⁶⁰) + M + ``` + P = B × 1.05 × (1 - t⁶⁰) + M + ``` - `P`: 落札価格。単位はLPトークン。 - `B`: 現在の入札価格。単位はLPトークン。 @@ -93,13 +95,17 @@ AMMのLPトークンを使って落札すると、落札に利用したLPトー 落札コストには、2つの特殊なケースがあります。誰かが落札してから**最初の時間枠**では、その落札価格は、最低入札価格+既存の入札価格の5%アップとなります。 - P = B × 1.05 + M + ``` + P = B × 1.05 + M + ``` スロットの**最後の時間枠**では、落札コストは最低入札額のみです。 - P = M + ``` + P = M + ``` -**注記:** レジャーを作成する際に、ネットワーク上のすべてのサーバーが同じ結果になるように、時間の計測は前回のレジャーの[正規の閉鎖時刻](ledger-close-times.html)に基づいており、これはおおよその目安の時間です。 +**注記:** レジャーを作成する際に、ネットワーク上のすべてのサーバーが同じ結果になるように、時間の計測は前回のレジャーの[正規の閉鎖時刻](../../../../concepts/ledgers/ledger-close-times.md)に基づいており、これはおおよその目安の時間です。 ## 払い戻し @@ -115,11 +121,11 @@ R = B × (1 - t) 特殊なケースとして、オークションスロットの最終(20番目)区間では、払い戻し額は0となる。 -**注記:** XRP Ledgerの時刻と同様に、トランザクション処理では _前回の_ レジャーの[正規の閉鎖時刻](ledger-close-times.html)を使用するため、実時間と最大で約10秒の差が生じる場合があります。 +**注記:** XRP Ledgerの時刻と同様に、トランザクション処理では _前回の_ レジャーの[正規の閉鎖時刻](../../../../concepts/ledgers/ledger-close-times.md)を使用するため、実時間と最大で約10秒の差が生じる場合があります。 ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:------------------------|:---------------------------------------------| @@ -132,8 +138,4 @@ R = B × (1 - t) | `terNO_ACCOUNT` | このリクエストで指定されたアカウントのいずれかが存在しません。 | | `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーのインスタンスが存在しません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/ammcreate.md b/content/@i18n/ja/references/protocol/transactions/types/ammcreate.md index 58c7be8f5f..fe401e06a0 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/ammcreate.md +++ b/content/@i18n/ja/references/protocol/transactions/types/ammcreate.md @@ -9,15 +9,15 @@ status: not_enabled # AMMCreate [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMCreate.cpp "Source") -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ -資産([代替可能トークン](tokens.html)または[XRP](xrp.html))のペアを取引するための新しい[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスを作成します。 +資産([代替可能トークン](../../../../concepts/tokens/index.md)または[XRP](../../../../introduction/what-is-xrp.md))のペアを取引するための新しい[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスを作成します。 -AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](accountroot.html#ammの特殊なaccountrootエントリ)を作成します。また、両資産の開始残高の所有権を送信者から、作成された`AccountRoot`に移し、初期残高の流動性プロバイダトークン(LPトークン)をAMMアカウントから送信者に発行します。 +AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](../../ledger-data/ledger-entry-types/accountroot.md#ammの特殊なaccountrootエントリ)を作成します。また、両資産の開始残高の所有権を送信者から、作成された`AccountRoot`に移し、初期残高の流動性プロバイダトークン(LPトークン)をAMMアカウントから送信者に発行します。 **注意:** AMMを作成する際には、各資産を(ほぼ)同額ずつ投入する必要があります。そうしないと、他のユーザがこのAMMを使った取引で利益を得ることができ、あなたがその損失を被ることとなります([アービトラージの実行](https://www.machow.ski/posts/an_introduction_to_automated_market_makers/#price-arbitrage)。流動性プロバイダが負う通貨リスクは、資産ペアのボラティリティ(不均衡の可能性)が高ければ高いほど、大きくなります。取引手数料が高いほど、このリスクを相殺することになりますので、資産ペアのボラティリティに応じて取引手数料を設定するとよいでしょう。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -36,7 +36,7 @@ AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](accountroot } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:-------------|:---- -----|:-----------|:------|:------------| @@ -44,7 +44,7 @@ AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](accountroot | `Amount2` | [通貨額][] | Amount | はい | このAMMの最初の資金となる2つの資産のうち、2つ目の資産です。これは正数である必要があります。 | | `TradingFee` | 数値 | UInt16 | はい | このAMMインスタンスに対する取引に課される手数料を1/100,000単位で指定します(値1は0.001%に相当)。最大値は`1000`で、1%の手数料を意味します。最小値は `0`です。 | -`Amount`と`Amount2`の一方または両方は[トークン](tokens.html)であり、最大でどちらか一方を[XRP](xrp.html)にすることが可能です。通貨コードと発行者が同じものは使用できません。AMMのLPトークンは、別のAMMの資産の1つとして使用することができます。トークンの発行者は[Default Ripple](rippling.html#defaultrippleフラグ)を有効にしていなければなりません。[Clawback Amendment][] :not_enabled: が有効になっている場合、それらの発行者はAllow Clawbackフラグを有効にしていてはいけません。AMMのLPトークンは、別のAMMの資産の一つとして使用することはできません。 +`Amount`と`Amount2`の一方または両方は[トークン](../../../../concepts/tokens/index.md)であり、最大でどちらか一方を[XRP](../../../../introduction/what-is-xrp.md)にすることが可能です。通貨コードと発行者が同じものは使用できません。AMMのLPトークンは、別のAMMの資産の1つとして使用することができます。トークンの発行者は[Default Ripple](../../../../concepts/tokens/fungible-tokens/rippling.md#defaultrippleフラグ)を有効にしていなければなりません。[Clawback Amendment][] {% not-enabled /%} が有効になっている場合、それらの発行者はAllow Clawbackフラグを有効にしていてはいけません。AMMのLPトークンは、別のAMMの資産の一つとして使用することはできません。 ## 特殊なトランザクションコスト @@ -52,22 +52,19 @@ AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](accountroot ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:--------------------|:---------------------------------------------| -| `temDISABLED` | このネットワークでは、AMM機能 :not_enabled: は有効ではありません。 | -| `temINVALID_FLAG` | トランザクションに無効な`Flags`値が指定されています。現在、このトランザクションタイプに定義されたフラグはないので、[グローバルフラグ](transaction-common-fields.html#グローバルフラグ)のみが許可されます。 | +| `temDISABLED` | このネットワークでは、AMM機能 {% not-enabled /%} は有効ではありません。 | +| `temINVALID_FLAG` | トランザクションに無効な`Flags`値が指定されています。現在、このトランザクションタイプに定義されたフラグはないので、[グローバルフラグ](../common-fields.md#グローバルフラグ)のみが許可されます。 | | `temBAD_AMM_TOKENS` | `Amount`と`Amount2`値が正しくありません。例えば、両方とも同じトークンを参照している場合です。 | | `temBAD_FEE` | `TradingFee`の値が不正です。ゼロまたは正の整数でなければならず、1000を超えることはできません。 | | `terNO_ACCOUNT` | リクエストで参照されたいずれかのアカウントが存在しません。| | `tecNO_AUTH` | 送信者は資産(`Amount`または`Amount2`)のいずれかを保有する権限がありません。 | | `tecNO_LINE` | 送信者は資産(`Amount`または`Amount2`)のうちいずれか1つに対するトラストラインを保有していません。 | -| `tecFROZEN` | 資産(`Amount`または`Amount2`)の少なくとも1つが現在[凍結](freezes.html)されています。 | +| `tecFROZEN` | 資産(`Amount`または`Amount2`)の少なくとも1つが現在[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | | `tecUNFUNDED_AMM` | 送信者は`Amount`と`Amount2`で指定された金額をAMMに入金するための十分な資金を保有していません。 | | `tecAMM_EXISTS` | この通貨ペアを扱っているAMMが既に存在しています。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/ammdelete.md b/content/@i18n/ja/references/protocol/transactions/types/ammdelete.md index 0801d66a00..103873f8dc 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/ammdelete.md +++ b/content/@i18n/ja/references/protocol/transactions/types/ammdelete.md @@ -9,14 +9,14 @@ status: not_enabled # AMMDelete [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/AMMDelete.cpp "Source") -_([AMM amendment][] :not_enabled: が必要です)_ +_([AMM amendment][] {% not-enabled /%} が必要です)_ -自動で削除しきれなかった空の[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスを削除します。 +自動で削除しきれなかった空の[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスを削除します。 通常、[AMMWithdraw トランザクション][]は、AMMのプールからすべての資産を引き出すと、AMMと関連するすべてのレジャーエントリを自動的に削除します。ただし、AMMアカウントへのトラストラインが多すぎて1回のトランザクションで削除できない場合は、AMMの削除を行わない場合があります。しかしこの場合でも、AMMDeleteトランザクションは最大512のトラストラインを削除します。すべてのトラストラインとそのAMMを削除するには、数回のAMMDeleteトランザクションが必要な場合があります。いずれの場合も、AMMとAccountRootのレジャーエントリが削除されるのは、最後のトランザクションのみです。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -35,7 +35,7 @@ _([AMM amendment][] :not_enabled: が必要です)_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:---------|:-----------|:-----------|:------|:----| @@ -45,7 +45,7 @@ _([AMM amendment][] :not_enabled: が必要です)_ ## エラーケース -AMMCreateトランザクションでは、すべてのトランザクションで発生する可能性のあるエラーの他に、以下の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +AMMCreateトランザクションでは、すべてのトランザクションで発生する可能性のあるエラーの他に、以下の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:--------------------|:---------------------------------------------| @@ -53,7 +53,4 @@ AMMCreateトランザクションでは、すべてのトランザクション | `tecINCOMPLETE` | 関連するレジャーエントリを可能な限り削除しましたが、AMM は完全には削除されませんでした。別の AMMDelete トランザクションを送信して、作業を続行し、完了させることができます。 | | `terNO_AMM` | 指定したAMMが存在しません。(すでに削除されているか、指定したAMMの資産が間違っている可能性があります)。| - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/ammdeposit.md b/content/@i18n/ja/references/protocol/transactions/types/ammdeposit.md index 868894853f..a0e1f4293a 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/ammdeposit.md +++ b/content/@i18n/ja/references/protocol/transactions/types/ammdeposit.md @@ -9,13 +9,13 @@ status: not_enabled # AMMDeposit [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMDeposit.cpp "Source") -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ -[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスに資金を預け、AMMの流動性プロバイダートークン( _LPトークン_ )を受け取ります。AMMのプールにある資産の一方または両方を預けることができます。 +[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスに資金を預け、AMMの流動性プロバイダートークン( _LPトークン_ )を受け取ります。AMMのプールにある資産の一方または両方を預けることができます。 -トランザクションが成功すると、LPトークンを保持するためにAMMアカウント(リミット0)に[トラストライン](trust-lines-and-issuing.html)が作成されます。 +トランザクションが成功すると、LPトークンを保持するためにAMMアカウント(リミット0)に[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)が作成されます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -40,7 +40,7 @@ _([AMM amendment][] :not_enabled:が必要です。)_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:--------------|:-----------|:-----------|:------|:------------| @@ -84,7 +84,7 @@ _([AMM amendment][] :not_enabled:が必要です。)_ ダブルアセット入金の場合、LPトークンを受け取る数は、以下の計算式で算出できます。 -{{ include_svg("img/amm-single-asset-deposit-formula.svg", "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") }} +[{% inline-svg file="/img/amm-single-asset-deposit-formula.svg" /%}](/img/amm-single-asset-deposit-formula.svg "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") @@ -105,7 +105,7 @@ AMMが空の場合のみ、「空のAMM」への特別な入金を行うこと ### AMMDepositのフラグ -AMMDepositトランザクションは、以下のような[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)の値をサポートしています。 +AMMDepositトランザクションは、以下のような[`Flags`フィールド](../common-fields.md#flagsフィールド)の値をサポートしています。 | フラグ名 | 16進数値 | 10進数値 | 説明 | |:--------------------|:-------------|:--------------|:----------------------| @@ -116,12 +116,12 @@ AMMDepositトランザクションは、以下のような[`Flags`フィール | `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット入金を行います。 | | `tfTwoAssetIfEmpty` | `0x00800000` | 8388608 | 空のプールを持つAMMに特別なダブルアセット入金を行います。 | -これらのフラグのうちの**1つのみ**と、任意の[グローバルフラグ](transaction-common-fields.html#グローバルフラグ)を指定する必要があります。 +これらのフラグのうちの**1つのみ**と、任意の[グローバルフラグ](../common-fields.md#グローバルフラグ)を指定する必要があります。 ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:------------------------|:---------------------------------------------| @@ -129,7 +129,7 @@ AMMDepositトランザクションは、以下のような[`Flags`フィール | `tecAMM_NOT_EMPTY` | The transaction specified `tfTwoAssetIfEmpty`, but the AMM was not empty. | | `tecAMM_FAILED` | 預け入れの条件が成立しませんでした。例えば、`EPrice`フィールドに指定された実効価格が低すぎる場合など。 | || `tecFROZEN` | トランザクションは[凍結](freezes.html)されているトークンを預けようとしました。 | -| `tecINSUF_RESERVE_LINE` | このトランザクションの送信者は、この処理による[準備金要件](reserves.html)の増加の対象であり、LPトークンを保持するための新しいトラストラインが必要で、そのための追加の所有者準備金分のXRPを保有していないためと思われます。 | +| `tecINSUF_RESERVE_LINE` | このトランザクションの送信者は、この処理による[準備金要件](../../../../concepts/accounts/reserves.md)の増加の対象であり、LPトークンを保持するための新しいトラストラインが必要で、そのための追加の所有者準備金分のXRPを保有していないためと思われます。 | | `tecUNFUNDED_AMM` | 送信者の残高が、指定された預け入れを行うのに十分な量ではありません。 | | `temBAD_AMOUNT` | トランザクションで指定された金額が無効です。例えば、金額がマイナスなど。 | | `temBAD_FEE` | トランザクションで指定された手数料の値が無効です。例えば、取引手数料が許容範囲外など。 | @@ -137,8 +137,4 @@ AMMDepositトランザクションは、以下のような[`Flags`フィール | `terNO_ACCOUNT` | リクエストで参照されたいずれかのアカウントが存在しません。 | | `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーインスタンスが存在しません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/ammvote.md b/content/@i18n/ja/references/protocol/transactions/types/ammvote.md index bc08d812bd..3dbcd33373 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/ammvote.md +++ b/content/@i18n/ja/references/protocol/transactions/types/ammvote.md @@ -9,11 +9,11 @@ status: not_enabled # AMMVote [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMVote.cpp "Source") -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ -[自動マーケットメーカー](automated-market-makers.html)インスタンスの取引手数料を投票します。最大8つのアカウントが、保有するAMMのLPトークンの量に比例して投票することができます。投票を行うごとには、投票の加重平均に基づいてAMMの取引手数料が再計算されます。 +[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)インスタンスの取引手数料を投票します。最大8つのアカウントが、保有するAMMのLPトークンの量に比例して投票することができます。投票を行うごとには、投票の加重平均に基づいてAMMの取引手数料が再計算されます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -33,7 +33,7 @@ _([AMM amendment][] :not_enabled:が必要です。)_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:-------------|:-----------|:-----------|:-----|:------------| @@ -43,7 +43,7 @@ _([AMM amendment][] :not_enabled:が必要です。)_ ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:------------------------|:---------------------------------------------| @@ -53,8 +53,4 @@ _([AMM amendment][] :not_enabled:が必要です。)_ | `temBAD_FEE` | このトランザクションの`TradingFee`は正しくありません。 | | `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカー インスタンスが存在しません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/ammwithdraw.md b/content/@i18n/ja/references/protocol/transactions/types/ammwithdraw.md index 857d9a3904..2221f501bb 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/ammwithdraw.md +++ b/content/@i18n/ja/references/protocol/transactions/types/ammwithdraw.md @@ -9,11 +9,11 @@ status: not_enabled # AMMWithdraw [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMWithdraw.cpp "Source") -_([AMM amendment][] :not_enabled:が必要です。)_ +_([AMM amendment][] {% not-enabled /%}が必要です。)_ -AMMの流動性プロバイダトークン(LPトークン)を返却することで、[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスから資産を引き出します。 +AMMの流動性プロバイダトークン(LPトークン)を返却することで、[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスから資産を引き出します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -38,7 +38,7 @@ AMMの流動性プロバイダトークン(LPトークン)を返却するこ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:-------------|:-----------|:-----------|:------|:------------| @@ -89,7 +89,7 @@ AMMの流動性プロバイダトークン(LPトークン)を返却するこ ### AMMWithdrawのフラグ -AMMWithdrawトランザクションは、以下のように[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)の値をサポートしています。 +AMMWithdrawトランザクションは、以下のように[`Flags`フィールド](../common-fields.md#flagsフィールド)の値をサポートしています。 | フラグ名 | 16進数値 | 10進数値 | 説明 | |:------------------------|:-------------|:--------------|:----------------------| @@ -101,12 +101,12 @@ AMMWithdrawトランザクションは、以下のように[`Flags`フィール | `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット出金を行い、指定された額のLPトークンを受け取ります。 | | `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット出金を行います。 | -これらのフラグのうちの **1つのみ** と、任意の[グローバルフラグ](transaction-common-fields.html#グローバルフラグ)を指定する必要があります。 +これらのフラグのうちの **1つのみ** と、任意の[グローバルフラグ](../common-fields.md#グローバルフラグ)を指定する必要があります。 ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:-------------------------|:---------------------------------------------| @@ -114,15 +114,11 @@ AMMWithdrawトランザクションは、以下のように[`Flags`フィール | `tecAMM_BALANCE` | トランザクションによって、プールから1つの資産をすべて引き出そうとしている、もしくは`tfWithdrawAll`の場合に端数処理によって0以外の金額が残ってしまっています。 | | `tecAMM_FAILED` | 例えば、`EPrice`フィールドに指定された有効価格が低過ぎる場合など、出金に関する条件が成立しませんでした。 | | `tecAMM_INVALID_TOKENS` | トークンペアのAMMが存在しないか、計算の結果、引き出し額がゼロに丸められました。 | -| `tecFROZEN` | トランザクションは[凍結](freezes.html)されたトークンを引き出そうとしました。 | -| `tecINSUF_RESERVE_LINE` | トランザクションの送信者は、このトランザクションを処理するための[準備金要件](reserves.html)の増加に対応できません。おそらく、引き出される資産の1つを保持するために少なくとも1つの新しいトラストラインが必要ですが、新しいトラストラインのための追加の所有者準備金分のXRPを持っていないためでしょう。 | +| `tecFROZEN` | トランザクションは[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されたトークンを引き出そうとしました。 | +| `tecINSUF_RESERVE_LINE` | トランザクションの送信者は、このトランザクションを処理するための[準備金要件](../../../../concepts/accounts/reserves.md)の増加に対応できません。おそらく、引き出される資産の1つを保持するために少なくとも1つの新しいトラストラインが必要ですが、新しいトラストラインのための追加の所有者準備金分のXRPを持っていないためでしょう。 | | `tecNO_AUTH` | 送信者は、引き出し資産のいずれかを保有する権限を有していません。 | | `temMALFORMED` | トランザクションで無効なフィールドの組み合わせが指定されました。[AMMWithdrawモード](#ammwithdrawモード)を参照してください。 | | `temBAD_AMM_TOKENS` | 例えば、`issuer`がAMMの関連するAccountRootアドレスでない、`currency`がこのAMMのLPトークンの通貨コードでない、またはトランザクションがこのAMMのLPトークンをAssetフィールドの1つに指定した、などです。 | | `terNO_AMM` | トランザクションで指定した資産ペアの自動マーケットメーカーインスタンスが存在しません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/checkcancel.md b/content/@i18n/ja/references/protocol/transactions/types/checkcancel.md index 903a16ef0a..cee6df6161 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/checkcancel.md +++ b/content/@i18n/ja/references/protocol/transactions/types/checkcancel.md @@ -12,7 +12,7 @@ _([Checks Amendment][]が必要です)_ 未清算のCheckを取り消し、送金を行わずにレジャーから削除します。Checkの送金元または送金先は、いつでもこのトランザクションタイプを使用してCheckを取り消すことができます。有効期限切れのCheckはすべてのアドレスが取り消すことができます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -23,19 +23,16 @@ _([Checks Amendment][]が必要です)_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:------------|:----------|:------------------|:-------------------------------| -| `CheckID` | 文字列 | Hash256 | 取り消す[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 | +| `CheckID` | 文字列 | Hash256 | 取り消す[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID(64文字の16進文字列)。 | ## エラーケース - `CheckID`により識別されるオブジェクトが存在していないか、またはCheckではない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。 - Checkが有効期限切れではなく、CheckCancelトランザクションの送信者がCheckの送金元または送金先ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/checkcash.md b/content/@i18n/ja/references/protocol/transactions/types/checkcash.md index 938390d624..424056ce3f 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/checkcash.md +++ b/content/@i18n/ja/references/protocol/transactions/types/checkcash.md @@ -14,7 +14,7 @@ _([Checks Amendment][]が必要です)_ Checkに相当する資金があるとは保証されないため、送金元に十分な残高がないか、または資金を送金できるだけの十分な流動性がないことが原因で、Checkの清算が失敗することがあります。このような状況が発生した場合、Checkはレジャーに残り、送金先は後でこのCheckの換金を再試行するか、または異なる額で換金を試みることができます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -26,12 +26,12 @@ Checkに相当する資金があるとは保証されないため、送金元に } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-------------|:--------------------|:------------------|:--------------------| -| `CheckID` | 文字列 | Hash256 | 換金する[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 | +| `CheckID` | 文字列 | Hash256 | 換金する[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID(64文字の16進文字列)。 | | `Amount` | [通貨額][] | Amount | _(省略可)_ 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 | | `DeliverMin` | [通貨額][] | Amount | _(省略可)_ Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 | @@ -46,7 +46,4 @@ Checkに相当する資金があるとは保証されないため、送金元に - トランザクションで`Amount`と`DeliverMin`の両方が指定または省略される場合、トランザクションは結果コード`temMALFORMED`で失敗します。 - `Amount`または`DeliverMin` がCheckの通貨(およびXRP以外の通貨の場合はイシュアー)に一致しない場合、トランザクションは結果コード`temBAD_CURRENCY`で失敗します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/checkcreate.md b/content/@i18n/ja/references/protocol/transactions/types/checkcreate.md index 0c1cd69fdd..0b1ef7ec93 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/checkcreate.md +++ b/content/@i18n/ja/references/protocol/transactions/types/checkcreate.md @@ -12,7 +12,7 @@ _([Checks Amendment][]が必要です)_ レジャーにCheckオブジェクトを作成します。これにより指定の送金先は後日換金することができます。このトランザクションの送信者はCheckの送金元です。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -27,29 +27,26 @@ _([Checks Amendment][]が必要です)_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-----------------|:--------------------|:------------------|:----------------| -| `Destination` | 文字列 | AccountID | Checkを換金できる[アカウント](accounts.html)の一意アドレス。 | -| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額(XRP以外の通貨の[送金手数料](transfer-fees.html)を含む)。Checkは同一通貨の送金先にのみ入金可能です(XRP以外の通貨の場合は同一イシュアーから)。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 | +| `Destination` | 文字列 | AccountID | Checkを換金できる[アカウント](../../../../concepts/accounts/accounts.md)の一意アドレス。 | +| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額(XRP以外の通貨の[送金手数料](../../../../concepts/tokens/transfer-fees.md)を含む)。Checkは同一通貨の送金先にのみ入金可能です(XRP以外の通貨の場合は同一イシュアーから)。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 | | `DestinationTag` | 数値 | UInt32 | _(省略可)_ Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 | | `Expiration` | 数値 | UInt32 | _(省略可)_ Checkが無効になる時刻([Rippleエポック以降の経過秒数][])。 | | `InvoiceID` | 文字列 | Hash256 | _(省略可)_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | ## エラーケース -- `Destination`アカウントがCheckの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 _([DisallowIncoming amendment][] :not_enabled: が必要です。)_ +- `Destination`アカウントがCheckの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 _([DisallowIncoming amendment][] {% not-enabled /%} が必要です。)_ - `Destination`がトランザクションの送信者である場合、トランザクションは結果コード`temREDUNDANT`で失敗します。 -- `Destination`[アカウント](accounts.html)がレジャーに存在していない場合、トランザクションは結果コード`tecNO_DST`で失敗します。 +- `Destination`[アカウント](../../../../concepts/accounts/accounts.md)がレジャーに存在していない場合、トランザクションは結果コード`tecNO_DST`で失敗します。 - `Destination`アカウントでRequireDestフラグが有効であるが、トランザクションに`DestinationTag`フィールドが含まれていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。 -- `SendMax`に[凍結](freezes.html)されているトークンが指定されている場合、トランザクションは結果コード`tecFROZEN`で失敗します。 +- `SendMax`に[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されているトークンが指定されている場合、トランザクションは結果コード`tecFROZEN`で失敗します。 - トランザクションの`Expiration`が過去の日時である場合、トランザクションは結果コード`tecEXPIRED`で失敗します。 -- Checkの追加後に送金元が[所有者準備金](reserves.html#所有者準備金)条件を満たすのに十分なXRPを保有していない場合、トランザクションは結果コード`tecINSUFFICIENT_RESERVE`で失敗します。 +- Checkの追加後に送金元が[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)条件を満たすのに十分なXRPを保有していない場合、トランザクションは結果コード`tecINSUFFICIENT_RESERVE`で失敗します。 - Checkの送金元または送金先のいずれかがレジャーでこれ以上のオブジェクトを所有できない場合、トランザクションは結果コード`tecDIR_FULL`で失敗します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/clawback.md b/content/@i18n/ja/references/protocol/transactions/types/clawback.md index 6237db19ad..72bbb30777 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/clawback.md +++ b/content/@i18n/ja/references/protocol/transactions/types/clawback.md @@ -9,13 +9,13 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Clawback.cpp "ソース") -{% include '_snippets/clawback-disclaimer.ja.md' %} +{% partial file="/_snippets/clawback-disclaimer.md" /%} あなたのアカウントが発行したトークンを回収します。 Clawback機能はデフォルトで無効になっています。使用するには、[AccountSetトランザクション][]を送信して**Allow Trust Line Clawback**設定を有効にする必要があります。既存のトークンを持つ発行者はClawback機能を有効にできません。つまり、トラストライン、オファー、エスクロー、ペイメントチャネル、チェック、または署名者リストを設定する前に行う必要があります。Clawback機能を有効にした後、元に戻すことはできません:アカウントは永久にトラストラインで発行された資産を回収する権限を得ます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -29,7 +29,7 @@ Clawback機能はデフォルトで無効になっています。使用するに } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド  | JSONの型 | [内部の型][] | 説明 | |:-------------------|:----------|:------------|:----------| @@ -40,16 +40,13 @@ Clawback機能はデフォルトで無効になっています。使用するに ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:-----------|:------------| -| `temDISABLED` | [Clawback amendment](known-amendments.html#clawback)が有効ではありません。 | +| `temDISABLED` | [Clawback amendment](../../../../resources/known-amendments.md#clawback)が有効ではありません。 | | `temBAD_AMOUNT` | 保有者の残高が0です。回収しようとする金額が保有者の残高を超えていてもエラーにはなりません。また、`Amount`に記載されている相手がこのトランザクションを発行している`Account`と同じ場合にもエラーが発生します。 | | `tecNO_LINE` | 取引相手とのトラストラインがない、またはトラストラインの残高が0です。 | | `tecNO_PERMISSION` | `lsfNoFreeze`が設定されているときに`lsfAllowTrustlineClawback`を設定、または`lsfAllowTrustLineClawback`が設定されているときに`lsfNoFreeze`を設定しようとしています。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/depositpreauth.md b/content/@i18n/ja/references/protocol/transactions/types/depositpreauth.md index 4593832b94..d233428d28 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/depositpreauth.md +++ b/content/@i18n/ja/references/protocol/transactions/types/depositpreauth.md @@ -10,11 +10,11 @@ labels: _[DepositPreauth Amendment][]により追加されました。_ -DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。これは、このトランザクションの送信者が[Deposit Authorization](depositauth.html)を使用している(または使用する予定がある)場合にのみ有用です。 +DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。これは、このトランザクションの送信者が[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を使用している(または使用する予定がある)場合にのみ有用です。 **ヒント:** このトランザクションを使用して、Deposit Authorizationを有効にする前に特定の取引相手を事前承認できます。これは、Deposit Authorizationの義務化への円滑な移行に役立ちます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -27,7 +27,7 @@ DepositPreauthトランザクションは別のアカウントに対し、この } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -40,14 +40,10 @@ DepositPreauthトランザクションは別のアカウントに対し、この このトランザクションには以下の制限があります。 -- アカウントはそのアカウント自体のアドレスを事前承認(または承認解除)できません。このような操作をすると、[`temCANNOT_PREAUTH_SELF`](tem-codes.html)で失敗します。 -- すでに事前承認済みのアカウントを事前承認しようとすると、[`tecDUPLICATE`](tec-codes.html)で失敗します。 -- 事前承認されていないアカウントを承認解除しようとすると、[`tecNO_ENTRY`](tec-codes.html)で失敗します。 -- レジャーで資金が供給されていないアドレスを事前承認しようとすると、[`tecNO_TARGET`](tec-codes.html)で失敗します。 -- 承認を追加すると[DepositPreauthオブジェクト](depositpreauth-object.html)がレジャーに追加されて、[所有者の必要準備金](reserves.html#所有者準備金)に反映されます。トランザクションの送信者に、増額された準備金の支払いに十分なXRPがない場合、トランザクションは[`tecINSUFFICIENT_RESERVE`](tec-codes.html)で失敗します。アカウントの送信者の所有オブジェクトが最大数に達している場合、トランザクションは[`tecDIR_FULL`](tec-codes.html)で失敗します。 +- アカウントはそのアカウント自体のアドレスを事前承認(または承認解除)できません。このような操作をすると、[`temCANNOT_PREAUTH_SELF`](../transaction-results/tem-codes.md)で失敗します。 +- すでに事前承認済みのアカウントを事前承認しようとすると、[`tecDUPLICATE`](../transaction-results/tec-codes.md)で失敗します。 +- 事前承認されていないアカウントを承認解除しようとすると、[`tecNO_ENTRY`](../transaction-results/tec-codes.md)で失敗します。 +- レジャーで資金が供給されていないアドレスを事前承認しようとすると、[`tecNO_TARGET`](../transaction-results/tec-codes.md)で失敗します。 +- 承認を追加すると[DepositPreauthオブジェクト](../../ledger-data/ledger-entry-types/depositpreauth.md)がレジャーに追加されて、[所有者の必要準備金](../../../../concepts/accounts/reserves.md#所有者準備金)に反映されます。トランザクションの送信者に、増額された準備金の支払いに十分なXRPがない場合、トランザクションは[`tecINSUFFICIENT_RESERVE`](../transaction-results/tec-codes.md)で失敗します。アカウントの送信者の所有オブジェクトが最大数に達している場合、トランザクションは[`tecDIR_FULL`](../transaction-results/tec-codes.md)で失敗します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/diddelete.md b/content/@i18n/ja/references/protocol/transactions/types/diddelete.md index bbd5d2977a..49d752c71b 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/diddelete.md +++ b/content/@i18n/ja/references/protocol/transactions/types/diddelete.md @@ -10,14 +10,14 @@ status: not_enabled [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DID.cpp "ソース") -_([DID Amendment][] :not_enabled: が必要です。)_ +_([DID Amendment][] {% not-enabled /%} が必要です。)_ -指定した`Account`フィールドに関連付けられている[DIDレジャーエントリ](did.html)を削除します。 +指定した`Account`フィールドに関連付けられている[DIDレジャーエントリ](../../ledger-data/ledger-entry-types/did.md)を削除します。 **注記:** このトランザクションは[共通フィールド][]のみ利用します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -33,14 +33,10 @@ _([DID Amendment][] :not_enabled: が必要です。)_ ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーの他に、{{currentpage.name}}トランザクションでは以下の[トランザクション結果コード](transaction-results.html)が発生する可能性があります: +すべてのトランザクションで発生する可能性のあるエラーの他に、{% $frontmatter.seo.title %}トランザクションでは以下の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります: | エラーコード | 説明 | |:--------------------|:---------------------------------------------| | `tecNO_ENTRY` | アカウントはDIDを保有していません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/didset.md b/content/@i18n/ja/references/protocol/transactions/types/didset.md index 0e58e4fb66..769116c641 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/didset.md +++ b/content/@i18n/ja/references/protocol/transactions/types/didset.md @@ -10,12 +10,12 @@ status: not_enabled [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DID.cpp "ソース") -_([DID Amendment][] :not_enabled: が必要です。)_ +_([DID Amendment][] {% not-enabled /%} が必要です。)_ -新しい[DIDレジャーエントリ](did.html)を作成したり、既存の項目を更新したりします。 +新しい[DIDレジャーエントリ](../../ledger-data/ledger-entry-types/did.md)を作成したり、既存の項目を更新したりします。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -29,7 +29,7 @@ _([DID Amendment][] :not_enabled: が必要です。)_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | |:--------------|:---------|:-----------|:------|:----| @@ -44,15 +44,11 @@ _([DID Amendment][] :not_enabled: が必要です。)_ ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:--------------------|:---------------------------------------------| | `tecEMPTY_DID` | トランザクションによって空のDIDレジャーエントリを作成しています。更新によって`Data`、`DIDDocument`、`URI`フィールドが削除されていないか確認してください。 | | `temEMPTY_DID` | トランザクションが不正で、DID情報がありません。`Data`、`DIDDocument`、`URI`フィールドのいずれかを含めてください。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/escrowcancel.md b/content/@i18n/ja/references/protocol/transactions/types/escrowcancel.md index d9a74706b7..93ec497730 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/escrowcancel.md +++ b/content/@i18n/ja/references/protocol/transactions/types/escrowcancel.md @@ -13,7 +13,7 @@ _[Escrow Amendment][]により追加されました。_ Escrowに留保されているXRPを送金元に返金します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -24,7 +24,7 @@ Escrowに留保されているXRPを送金元に返金します。 } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -38,7 +38,4 @@ EscrowCancelトランザクションはどのアカウントからでも送信 * 対応する[EscrowCreateトランザクション][]で`CancelAfter`時刻が指定されていない場合、EscrowCancelトランザクションは失敗します。 * 指定されていても、`CancelAfter`時刻が最後に閉鎖されたレジャーの閉鎖時刻よりも後である場合は、EscrowCancelトランザクションが失敗します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/escrowcreate.md b/content/@i18n/ja/references/protocol/transactions/types/escrowcreate.md index e2745f2a08..dc4bc8c2b4 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/escrowcreate.md +++ b/content/@i18n/ja/references/protocol/transactions/types/escrowcreate.md @@ -13,7 +13,7 @@ _[Escrow Amendment][]により追加されました。_ Escrowプロセスが終了または取り消されるまでXRPを隔離します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -29,7 +29,7 @@ Escrowプロセスが終了または取り消されるまでXRPを隔離しま } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -44,9 +44,6 @@ Escrowプロセスが終了または取り消されるまでXRPを隔離しま `CancelAfter`と`FinishAfter`のいずれかを指定する必要があります。両方を指定する場合は、`FinishAfter`の時刻が`CancelAfter`の時刻よりも前でなければなりません。 -[fix1571 Amendment][]が有効な場合は、`FinishAfter`、`Condition`のいずれかまたは両方を指定する必要があります。[新規: rippled 1.0.0][] +[fix1571 Amendment][]が有効な場合は、`FinishAfter`、`Condition`のいずれかまたは両方を指定する必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}新規: rippled 1.0.0{% /badge %} - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/escrowfinish.md b/content/@i18n/ja/references/protocol/transactions/types/escrowfinish.md index 7cd7aed0b7..8cc1d62a64 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/escrowfinish.md +++ b/content/@i18n/ja/references/protocol/transactions/types/escrowfinish.md @@ -13,7 +13,7 @@ _[Escrow Amendment][]により追加されました。_ 保留中の支払いから受取人へXRPを送金します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -26,7 +26,7 @@ _[Escrow Amendment][]により追加されました。_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -43,11 +43,8 @@ _[Escrow Amendment][]により追加されました。_ - 保留中の支払いに`Condition`が指定されている場合に、その条件に対応する`Fulfillment`を指定しないと、この支払いを実行できません。 - 有効期限切れの保留中の支払いは実行できません。具体的には、対応する[EscrowCreateトランザクション][]で指定されている`CancelAfter`時刻が、最後に閉鎖されたレジャーの閉鎖時刻よりも前の場合、EscrowFinishトランザクションは失敗します。 -**注記:** EscrowFinishトランザクションにフルフィルメントが含まれている場合、このトランザクションを送信するための最小[トランザクションコスト](transaction-cost.html)が増加します。トランザクションにフルフィルメントが含まれていない場合、トランザクションコストは標準の10 dropです。トランザクションにフルフィルメントが含まれている場合、トランザクションコストは330 [XRP drop][XRPのdrop数]に加えて、プリイメージサイズの16バイトごとに更に10 dropです。 +**注記:** EscrowFinishトランザクションにフルフィルメントが含まれている場合、このトランザクションを送信するための最小[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)が増加します。トランザクションにフルフィルメントが含まれていない場合、トランザクションコストは標準の10 dropです。トランザクションにフルフィルメントが含まれている場合、トランザクションコストは330 [XRP drop][XRPのdrop数]に加えて、プリイメージサイズの16バイトごとに更に10 dropです。 -[本番環境以外のネットワーク](parallel-networks.html)では、保留中のescrowの送金先アカウントを[削除](deleting-accounts.html)できる場合があります。この場合、 escrowを終了しようとしても結果`tecNO_TARGET`で失敗しますが、 escrowオブジェクトは通常期限切れになる場合を除き、維持されます。別の支払いで送金先アカウントが再作成された場合、 escrowは正常に終了できます。escrowの送金先アカウントは、[fix1523 Amendment](known-amendments.html#fix1523)が有効になる前にescrowが作成された場合にのみ削除できます。本番環境の XRP Ledgerにはそのようなescrowは存在しないため、本番環境のXRP Ledgerではこのようなエッジケースには対応できません。また、このエッジケースは、fix1523とescrowのAmendmentを同時に有効にするテストネットワークでも不可能です。これは、[新しいジェネシスレジャーを開始](start-a-new-genesis-ledger-in-stand-alone-mode.html)するときのデフォルトです。 +[本番環境以外のネットワーク](../../../../concepts/networks-and-servers/parallel-networks.md)では、保留中のescrowの送金先アカウントを[削除](../../../../concepts/accounts/deleting-accounts.md)できる場合があります。この場合、 escrowを終了しようとしても結果`tecNO_TARGET`で失敗しますが、 escrowオブジェクトは通常期限切れになる場合を除き、維持されます。別の支払いで送金先アカウントが再作成された場合、 escrowは正常に終了できます。escrowの送金先アカウントは、[fix1523 Amendment](../../../../resources/known-amendments.md#fix1523)が有効になる前にescrowが作成された場合にのみ削除できます。本番環境の XRP Ledgerにはそのようなescrowは存在しないため、本番環境のXRP Ledgerではこのようなエッジケースには対応できません。また、このエッジケースは、fix1523とescrowのAmendmentを同時に有効にするテストネットワークでも不可能です。これは、[新しいジェネシスレジャーを開始](../../../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md)するときのデフォルトです。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/index.md b/content/@i18n/ja/references/protocol/transactions/types/index.md index c1d3715396..7f754c0a05 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/index.md +++ b/content/@i18n/ja/references/protocol/transactions/types/index.md @@ -2,7 +2,8 @@ html: transaction-types.html parent: transaction-formats.html blurb: トランザクションのタイプは、どういったタイプの操作を実行することが想定されているのかを示します。 -template: pagetype-category.html.jinja +metadata: + indexPage: true labels: - ブロックチェーン --- @@ -12,6 +13,9 @@ labels: すべてのトランザクションに、特定の共通フィールドが含まれています。 -* [共通フィールド](transaction-common-fields.html) +* [共通フィールド](../common-fields.md) トランザクションのタイプごとに、実行される操作のタイプに関連した追加のフィールドが含まれています。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/nftokenacceptoffer.md b/content/@i18n/ja/references/protocol/transactions/types/nftokenacceptoffer.md index d78ad05b67..649c7989af 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/nftokenacceptoffer.md +++ b/content/@i18n/ja/references/protocol/transactions/types/nftokenacceptoffer.md @@ -64,7 +64,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ## フィールド -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-------------------|:--------------------|:------------------|:--------------| @@ -82,7 +82,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:-----------------------------------|:----------------------------------------| @@ -90,15 +90,11 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ | `temMALFORMED` | トランザクションのフォーマットが正しくありません。たとえば、`NFTokenSellOffer`と`NFTokenBuyOffer`のどちらも指定されていないか、`NFTokenBrokerFee`に負の値が指定されています。| | `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 購入者と販売者が同じアカウントになっています。 | | `tecEXPIRED` | トランザクションで指定されたオファーの有効期限が既に切れています。 | -| `tecINSUFFICIENT_FUNDS` | 購入者が申し出た金額を全額持っていない。購入額がXRPで指定されている場合、[所有者準備金](reserves.html)が原因である可能性があります。購入額がトークンである場合、トークンが[凍結](freezes.html) されていることが原因と考えられます。 | +| `tecINSUFFICIENT_FUNDS` | 購入者が申し出た金額を全額持っていない。購入額がXRPで指定されている場合、[所有者準備金](../../../../concepts/accounts/reserves.md)が原因である可能性があります。購入額がトークンである場合、トークンが[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md) されていることが原因と考えられます。 | | `tecINSUFFICIENT_PAYMENT` | ブローカーモードにおいて、提示された購入額は、`BrokerFee` _および_ `NFToken`の売却コストを支払うには十分な額ではありません。 | | `tecOBJECT_NOT_FOUND` | トランザクションで指定されたオファーがレジャーに存在しません。 | | `tecNFTOKEN_BUY_SELL_MISMATCH` | ブローカーモードにおいて、2つのオファーが有効なマッチングではありません。例えば、販売者が購入者の提示額よりも高い金額を提示している、購入と売却のオファーが異なる通貨で提示されている、販売者が購入者や ブローカーとは異なる販売先を指定している、などです。 | | `tecNFTOKEN_OFFER_TYPE_MISMATCH` | `NFTokenBuyOffer`で識別されるオブジェクトが実際には購入オファーでない、または`NFTokenSellOffer`で識別されるオブジェクトが実際には売却オファーでない場合です。| | `tecNO_PERMISSION` | 販売者が売却する`NFToken`を所有していません。または、マッチングオファーが、オファーを受け入れるアカウントとは異なる`Destination`アカウントを指定しています。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/nftokenburn.md b/content/@i18n/ja/references/protocol/transactions/types/nftokenburn.md index 986d8db959..8f2037a9be 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/nftokenburn.md +++ b/content/@i18n/ja/references/protocol/transactions/types/nftokenburn.md @@ -16,7 +16,7 @@ NFTokenBurnトランザクションは、`NFToken`オブジェクトを保持し _([NonFungibleTokensV1_1 amendment][]により追加されました)_ -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -28,7 +28,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:------------------|:----------|:------------------|:-------------------------| @@ -38,7 +38,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:-------------------|:--------------------------------------------------------| @@ -46,7 +46,4 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ | `tecNO_ENTRY` | 指定された `TokenID` が見つかりませんでした。 | | `tecNO_PERMISSION` | このアカウントにはトークンをBurnする権限がありません。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/nftokencanceloffer.md b/content/@i18n/ja/references/protocol/transactions/types/nftokencanceloffer.md index 47e39e5bc2..c58a333a60 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/nftokencanceloffer.md +++ b/content/@i18n/ja/references/protocol/transactions/types/nftokencanceloffer.md @@ -9,13 +9,13 @@ labels: `NFTokenCancelOffer`トランザクションは、`NFTokenCreateOffer`を使用して作成した既存のトークンへのオファーをキャンセルするために使用できます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { - "TransactionType": "NFTokenCancelOffer", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "NFTokenOffers": [ + "TransactionType": "NFTokenCancelOffer", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "NFTokenOffers": [ "9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D" ] } @@ -34,21 +34,21 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ このトランザクションは、リストアップされた`NFTokenOffer`オブジェクトがあればレジャーから削除し、それに応じて必要な準備金を調整します。`NFTokenOffer`が見つからなくてもエラーにはなりません。その場合、トランザクションは正常に完了するでしょう。 -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:------------------|:----------|:------------------|:-------------------------| -| `NFTokenOffers` | 配列 | VECTOR256 | キャンセルする`NFTokenOffer`オブジェクトのIDの配列(`NFToken`オブジェクトのIDではなく、`NFTokenOffer`オブジェクトのID)です。各エントリーは[NFTokenOffer](nftokenoffer.html)オブジェクトの異なる[オブジェクトID](ledger-object-ids.html)である必要があり、配列に重複した項目がある場合、トランザクションはエラーとなります。 | +| `NFTokenOffers` | 配列 | VECTOR256 | キャンセルする`NFTokenOffer`オブジェクトのIDの配列(`NFToken`オブジェクトのIDではなく、`NFTokenOffer`オブジェクトのID)です。各エントリーは[NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md)オブジェクトの異なる[オブジェクトID](../../ledger-data/common-fields.md)である必要があり、配列に重複した項目がある場合、トランザクションはエラーとなります。 | -`NFTokenOffers`フィールドのIDの1つ以上が、レジャーに現在存在するオブジェクトを参照していない場合でも、トランザクションは成功します(たとえば、それらのオファーはすでに削除されている可能性があります)。IDの1つが存在するオブジェクトを指していても、[NFTokenOffer](nftokenoffer.html)オブジェクトでない場合は、エラーでトランザクションが失敗します。 +`NFTokenOffers`フィールドのIDの1つ以上が、レジャーに現在存在するオブジェクトを参照していない場合でも、トランザクションは成功します(たとえば、それらのオファーはすでに削除されている可能性があります)。IDの1つが存在するオブジェクトを指していても、[NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md)オブジェクトでない場合は、エラーでトランザクションが失敗します。 注意すべき点は、誤って`nft_offer_index`ではなく`nft_id`を指定してしまった場合、`tesSUCCESS`レスポンスを受け取る可能性があることです。適切にフォーマットされたID値が見つからない場合、システムは`NFTokenOffer`が既に削除されたと判断するからです。 -IDが[NFTokenOffer](nftokenoffer.html)オブジェクトでないオブジェクトを指している場合、トランザクションはエラーで失敗します。 +IDが[NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md)オブジェクトでないオブジェクトを指している場合、トランザクションはエラーで失敗します。 ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:-------------------|:--------------------------------------------------------| @@ -56,7 +56,4 @@ IDが[NFTokenOffer](nftokenoffer.html)オブジェクトでないオブジェク | `temMALFORMED` | トランザクションが有効なフォーマットではありませんでした。たとえば、`NFTokenOffers`配列が空であるか、一度にキャンセルできるオファーの最大数を超える数を含んでいた場合です。 | | `tecNO_PERMISSION` | `NFTokenOffers`フィールドのIDのうち少なくとも1つが、キャンセルできないオブジェクトを参照しています。例えば、このトランザクションの送信者がオファーの所有者や`Destination`ではない場合や、オブジェクトが`NFTokenOffer`タイプのオブジェクトではなかった場合などです。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/nftokencreateoffer.md b/content/@i18n/ja/references/protocol/transactions/types/nftokencreateoffer.md index c35cb8025f..23e543dc78 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/nftokencreateoffer.md +++ b/content/@i18n/ja/references/protocol/transactions/types/nftokencreateoffer.md @@ -10,24 +10,24 @@ labels: トランザクションを送信するアカウントが所有する`NFToken`に対する新しい _売却_ オファー、または別のアカウントが所有する`NFToken`に対する新しい _購入_ オファーを作成します。 -成功した場合、トランザクションは[NFTokenOfferオブジェクト][]を作成します。各オファーは、オファーを提示したアカウントの[所有者準備金](reserves.html)に関連づけて1つのオブジェクトとしてカウントされます。 +成功した場合、トランザクションは[NFTokenOfferオブジェクト][]を作成します。各オファーは、オファーを提示したアカウントの[所有者準備金](../../../../concepts/accounts/reserves.md)に関連づけて1つのオブジェクトとしてカウントされます。 _([NonFungibleTokensV1_1 amendment][]により追加されました)_ -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { - "TransactionType": "NFTokenCreateOffer", - "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", - "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", - "Amount": "1000000", - "Flags": 1 + "TransactionType": "NFTokenCreateOffer", + "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", + "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", + "Amount": "1000000", + "Flags": 1 } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:--------------|:--------------------|:------------------|:-------------------| @@ -40,7 +40,7 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ## NFTokenCreateOfferフラグ -NFTokenCreateOfferタイプのトランザクションは、以下のように[`Flags`フィールド](transaction-common-fields.html#flags-field)に追加の値を設定することが可能です。 +NFTokenCreateOfferタイプのトランザクションは、以下のように[`Flags`フィールド](../common-fields.md#flags-field)に追加の値を設定することが可能です。 | フラグ名 | 16進数値 | 整数値 | 説明 | |:----------------|:-------------|:--------------|:------------------------------| @@ -49,28 +49,23 @@ NFTokenCreateOfferタイプのトランザクションは、以下のように[` ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:---------------------------------|:------------------------------------------| | `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | -| `temBAD_AMOUNT` | `Amount`フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額はトークンであるが`NFToken`で[`lsfOnlyXRP`フラグ](nftoken.html#nftoken-フラグ)が有効になっている場合などです。 | +| `temBAD_AMOUNT` | `Amount`フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額はトークンであるが`NFToken`で[`lsfOnlyXRP`フラグ](../../data-types/nftoken.md#nftoken-フラグ)が有効になっている場合などです。 | | `temBAD_EXPIRATION` | 指定された`Expiration`は無効です(例:`0`)。 | | `tecDIR_FULL` | 送信者がレジャーにすでにあまりにも多くのオブジェクトを所有しているか、またはこのトークンの売買のオファーがあまりにも多く存在しています。 | | `tecEXPIRED` | 指定された`Expiration`の時間は既に経過しています。 | -| `tecFROZEN` | `Amount`はトークンで、このオファーからトークンを受け取るトラストラインは[凍結](freezes.html)されています。これは売却者のトラストラインか、`NFToken`の発行者のトラストライン(`NFToken`に送金手数料がある場合)である可能性があります。 | -| `tecINSUFFICIENT_RESERVE` | 送信者はこのオファーを提示した後、[所有者準備金](reserves.html)を満たすのに十分なXRPを持っていません。 | +| `tecFROZEN` | `Amount`はトークンで、このオファーからトークンを受け取るトラストラインは[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。これは売却者のトラストラインか、`NFToken`の発行者のトラストライン(`NFToken`に送金手数料がある場合)である可能性があります。 | +| `tecINSUFFICIENT_RESERVE` | 送信者はこのオファーを提示した後、[所有者準備金](../../../../concepts/accounts/reserves.md)を満たすのに十分なXRPを持っていません。 | | `tecNO_DST` | `Destination`に指定されたアカウントがレジャーに存在しません。 | | `tecNO_ENTRY` | `NFToken`フィールドで指定したアカウントは所有していません。 | | `tecNO_ISSUER` | `Amount`フィールドで指定した発行者が存在しません。 | -| `tecNO_LINE` | `Amount`フィールドはトークンですが、`NFToken`の発行者はそのトークンのトラストラインを持っておらず、`NFToken`は[`lsfTrustLine`フラグ](nftoken.html#nftoken-フラグ)が有効ではありません。 | -| `tecNO_PERMISSION` | `Destination`アカウントが着信する NFTokenOffer をブロックします。 _([DisallowIncoming amendment][] :not_enabled: が必要です。)_ -| `tecUNFUNDED_OFFER` | 購入オファーの場合、送信者は`Amount`フィールドで指定された通貨を利用可能です。もし`Amount`がXRPである場合、これは準備不足によるものかもしれません。もし`Amount`がトークンである場合、これは[凍結](freezes.html)されている可能性があります。 | -| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | `NFToken`は[`lsfTransferable`フラグ](nftoken.html#nftoken-flags)が無効になっており、このトランザクションでは`NFToken`を発行者に転送したり発行者から転送したりすることはできません。 | +| `tecNO_LINE` | `Amount`フィールドはトークンですが、`NFToken`の発行者はそのトークンのトラストラインを持っておらず、`NFToken`は[`lsfTrustLine`フラグ](../../data-types/nftoken.md#nftoken-フラグ)が有効ではありません。 | +| `tecNO_PERMISSION` | `Destination`アカウントが着信する NFTokenOffer をブロックします。 _([DisallowIncoming amendment][] {% not-enabled /%} が必要です。)_ +| `tecUNFUNDED_OFFER` | 購入オファーの場合、送信者は`Amount`フィールドで指定された通貨を利用可能です。もし`Amount`がXRPである場合、これは準備不足によるものかもしれません。もし`Amount`がトークンである場合、これは[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されている可能性があります。 | +| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | `NFToken`は[`lsfTransferable`フラグ](../../data-types/nftoken.md#nftoken-flags)が無効になっており、このトランザクションでは`NFToken`を発行者に転送したり発行者から転送したりすることはできません。 | - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/nftokenmint.md b/content/@i18n/ja/references/protocol/transactions/types/nftokenmint.md index 7e12e7711a..fe0e76a0d9 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/nftokenmint.md +++ b/content/@i18n/ja/references/protocol/transactions/types/nftokenmint.md @@ -13,7 +13,7 @@ labels: _([NonFungibleTokensV1_1 amendment][]により追加されました)_ -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json @@ -37,9 +37,9 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ } ``` -[トランザクションを取得してみる >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenMint%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22B42C7A0C9C3061463C619999942D0F25E4AE5FB051EA0D7A4EE1A924DB6DFEE8%22%2C%22binary%22%3Afalse%7D) +[トランザクションを取得してみる >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenMint%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22B42C7A0C9C3061463C619999942D0F25E4AE5FB051EA0D7A4EE1A924DB6DFEE8%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:--------------|:--------------------|:------------------|:-------------------| @@ -52,19 +52,19 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ ## NFTokenMintのフラグ -NFTokenMint型のトランザクションでは、以下のように[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)に追加の値を設定することが可能です。 +NFTokenMint型のトランザクションでは、以下のように[`Flags`フィールド](../common-fields.md#flagsフィールド)に追加の値を設定することが可能です。 | フラグ名 | 16進数値 | 整数値 | 説明 | |:--------------|:-------------|:--------------|:------------------------------| | `tfBurnable` | `0x00000001` | 1 | 発行者(または発行者が許可した者)が`NFToken`を破棄できるようにします。(`NFToken`の所有者は常に破棄することができます)。 | | `tfOnlyXRP` | `0x00000002` | 2 | 発行された`NFToken`はXRPでのみ売買が可能です。これは、トークンに送金手数料がかかり、発行者がXRP以外のトークンで手数料を受け取りたくない場合に望ましいでしょう。 | -| `tfTrustLine` | `0x00000004` | 4 | **非推奨** 発行者が、発行した`NFToken`を転送する際に受け取る手数料を保有するために、自動的に[トラストライン](trust-lines-and-issuing.html) を作成します。[fixRemoveNFTokenAutoTrustLine Amendment][]により、このフラグの設定は無効となります。 | +| `tfTrustLine` | `0x00000004` | 4 | **非推奨** 発行者が、発行した`NFToken`を転送する際に受け取る手数料を保有するために、自動的に[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md) を作成します。[fixRemoveNFTokenAutoTrustLine Amendment][]により、このフラグの設定は無効となります。 | | `tfTransferable` | `0x00000008` | 8 | 発行された`NFToken`は他の人に譲渡することができます。このフラグが _有効でない_ 場合、トークンは _発行者から_ 、または _発行者へ_ のみ転送することができます。 | ## 追加情報の埋め込み -発行時に追加情報を指定する必要がある場合(たとえば、特定の[区画](https://en.wikipedia.org/wiki/Plat)を参照して不動産を特定できる詳細情報、[車両識別番号](https://ja.wikipedia.org/wiki/%E8%BB%8A%E4%B8%A1%E8%AD%98%E5%88%A5%E7%95%AA%E5%8F%B7)を指定して車両を特定できる詳細情報、その他オブジェクト固有の説明)、[取引メモ](transaction-common-fields.html#memosフィールド)を使用することができます。メモは署名された取引の一部であり、履歴アーカイブから入手できますが、レジャーの状態データには保存されません。 +発行時に追加情報を指定する必要がある場合(たとえば、特定の[区画](https://en.wikipedia.org/wiki/Plat)を参照して不動産を特定できる詳細情報、[車両識別番号](https://ja.wikipedia.org/wiki/%E8%BB%8A%E4%B8%A1%E8%AD%98%E5%88%A5%E7%95%AA%E5%8F%B7)を指定して車両を特定できる詳細情報、その他オブジェクト固有の説明)、[取引メモ](../common-fields.md#memosフィールド)を使用することができます。メモは署名された取引の一部であり、履歴アーカイブから入手できますが、レジャーの状態データには保存されません。 ## 他のアカウントの代わりとして発行する @@ -102,7 +102,7 @@ NFTokenMint型のトランザクションでは、以下のように[`Flags`フ ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:------------------------------|:---------------------------------------------| @@ -112,11 +112,7 @@ NFTokenMint型のトランザクションでは、以下のように[`Flags`フ | `temMALFORMED` | トランザクションが正しく指定されていません。例えば、`URI`フィールドが256バイトより長い場合です。 | | `tecNO_ISSUER` | `Issuer`は、レジャーに存在しないアカウントを指定しています。 | | `tecNO_PERMISSION` | `Issuer`フィールドで参照されるアカウントは、このトランザクションの送信者(`NFTokenMinter`設定を使用)が自身の代わりに発行することを承認していません。 | -| `tecINSUFFICIENT_RESERVE` | トークンを発行した後、オーナーは更新された[準備金要件](reserves.html)を満たせなくなります。新しい`NFToken`は、新しい[NFTokenPageオブジェクト][]を必要とする場合にのみ、オーナーの準備金を増加させることに注意する必要があり、それぞれ最大32NFTを格納することができます。| +| `tecINSUFFICIENT_RESERVE` | トークンを発行した後、オーナーは更新された[準備金要件](../../../../concepts/accounts/reserves.md)を満たせなくなります。新しい`NFToken`は、新しい[NFTokenPageオブジェクト][]を必要とする場合にのみ、オーナーの準備金を増加させることに注意する必要があり、それぞれ最大32NFTを格納することができます。| | `tecMAX_SEQUENCE_REACHED` | `Issuer`の`MintedNFTokens`フィールドはすでに最大値になっています。これは、発行者またはその代理人が合計で232-1つの`NFToken`を発行した場合にのみ発生します。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/offercancel.md b/content/@i18n/ja/references/protocol/transactions/types/offercancel.md index 7373d3a8bb..51be599f73 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/offercancel.md +++ b/content/@i18n/ja/references/protocol/transactions/types/offercancel.md @@ -11,7 +11,7 @@ labels: OfferCancelトランザクションは、XRP LedgerからOfferオブジェクトを削除します。 -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 ```json { @@ -25,7 +25,7 @@ OfferCancelトランザクションは、XRP LedgerからOfferオブジェクト } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -35,9 +35,6 @@ OfferCancelトランザクションは、XRP LedgerからOfferオブジェクト *ヒント:* 古いオファーを削除して新しいオファーに置き換えるには、OfferCancelとOfferCreateを使用する代わりに、`OfferSequence`パラメーターを指定した[OfferCreateトランザクション][]を使用できます。 -OfferCancelメソッドは、一致するシーケンス番号が見つからない場合でも[tesSUCCESS](tes-success.html)を返します。 +OfferCancelメソッドは、一致するシーケンス番号が見つからない場合でも[tesSUCCESS](../transaction-results/tes-success.md)を返します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/offercreate.md b/content/@i18n/ja/references/protocol/transactions/types/offercreate.md index b55632f2d1..d5ce092577 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/offercreate.md +++ b/content/@i18n/ja/references/protocol/transactions/types/offercreate.md @@ -9,9 +9,9 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/CreateOffer.cpp "ソース") -OfferCreateトランザクションは[分散型取引所](decentralized-exchange.html)で[注文](offers.html)を作成します。 +OfferCreateトランザクションは[分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)で[注文](../../../../concepts/tokens/decentralized-exchange/offers.md)を作成します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -30,26 +30,26 @@ OfferCreateトランザクションは[分散型取引所](decentralized-exchang } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-----------------|:----------|:------------|:-----------| -| [Expiration](offers.html#オファーの有効期限) | 数字 | UInt32 | _(省略可)_ オファーがアクティブでなくなるまでの時間([Rippleエポック以降の経過秒数][])。 | +| [Expiration](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーの有効期限) | 数字 | UInt32 | _(省略可)_ オファーがアクティブでなくなるまでの時間([Rippleエポック以降の経過秒数][])。 | | `OfferSequence` | 数字 | UInt32 | _(省略可)_ 最初に削除されるオファー([OfferCancel][]と同様に指定されます)。 | | `TakerGets` | [通貨額][] | Amount | オファーの作成者によって作成される金額および通貨の種類。 | | `TakerPays` | [通貨額][] | Amount | オファーの作成者によってリクエストされる金額および通貨の種類。 | ## OfferCreateフラグ -OfferCreate型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 +OfferCreate型のトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 | フラグ名 | 16進数 | 10進数 | 説明 | |:----------------------|:-------------|:--------------|:-------------------| | `tfPassive` | `0x00010000` | 65536 | 有効な場合、オファーはオファーが完全に約定するオファーを消費せず、代わりにレジャーのOfferオブジェクトになります。それはまだクロスしたオファーを消費します。 | -| `tfImmediateOrCancel` | `0x00020000` | 131072 | オファーを[IOC注文](http://en.wikipedia.org/wiki/Immediate_or_cancel)として扱います。有効な場合、オファーはレジャーオブジェクトにはなりません。レジャー内の既存のオファーと約定させようとするだけです。即時にオファーがどのオファーとも約定しない場合、どの通貨とも取引せずに「正常に」実行します。この場合、トランザクションは`tesSUCCESS`の[結果コード](transaction-results.html)を返しますが、レジャー内には、[Offerオブジェクト](offer.html)を作成しません。 | -| `tfFillOrKill` | `0x00040000` | 262144 | オファーを[FOK注文](http://en.wikipedia.org/wiki/Fill_or_kill)として扱います。レジャー内の既存のオファーのみを約定しようとします。またこれは、全`TakerPays`の数量が取得できる場合に限られます。[fix1578 amendment][]が有効な場合でオファーを配置した時に実行できない場合、トランザクションは`tecKILLED`の[結果コード](transaction-results.html)を返します。そうでない場合は、トランザクションは、どの通貨とも取り引きせずにキャンセルされた場合でも`tesSUCCESS`の結果コードを返します。 | +| `tfImmediateOrCancel` | `0x00020000` | 131072 | オファーを[IOC注文](http://en.wikipedia.org/wiki/Immediate_or_cancel)として扱います。有効な場合、オファーはレジャーオブジェクトにはなりません。レジャー内の既存のオファーと約定させようとするだけです。即時にオファーがどのオファーとも約定しない場合、どの通貨とも取引せずに「正常に」実行します。この場合、トランザクションは`tesSUCCESS`の[結果コード](../transaction-results/transaction-results.md)を返しますが、レジャー内には、[Offerオブジェクト](../../ledger-data/ledger-entry-types/offer.md)を作成しません。 | +| `tfFillOrKill` | `0x00040000` | 262144 | オファーを[FOK注文](http://en.wikipedia.org/wiki/Fill_or_kill)として扱います。レジャー内の既存のオファーのみを約定しようとします。またこれは、全`TakerPays`の数量が取得できる場合に限られます。[fix1578 amendment][]が有効な場合でオファーを配置した時に実行できない場合、トランザクションは`tecKILLED`の[結果コード](../transaction-results/transaction-results.md)を返します。そうでない場合は、トランザクションは、どの通貨とも取り引きせずにキャンセルされた場合でも`tesSUCCESS`の結果コードを返します。 | | `tfSell` | `0x00080000` | 524288 | 取引所で`TakerPays`Amountよりも多く取得することになっても、`TakerGets` Amountを交換します。 | ## エラーケース @@ -66,14 +66,11 @@ OfferCreate型のトランザクションについては、[`Flags`フィール | `temBAD_CURRENCY` | トランザクションで通貨コードが"XRP"のトークンが指定された場合に発生します。 | | `temBAD_ISSUER` | トランザクションが無効な`issuer`値を持つトークンを指定した場合に発生します。 | | `tecNO_ISSUER` | トランザクションで、`issuer`の値が台帳の有効化されたアカウントでないトークンを指定した場合に発生します。| -| `tecFROZEN` | [凍結](freezes.html)されたトラストライン(ローカルおよびグローバルの凍結を含む)上のトークンを含むトランザクションの場合に発生します。 | +| `tecFROZEN` | [凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)されたトラストライン(ローカルおよびグローバルの凍結を含む)上のトークンを含むトランザクションの場合に発生します。 | | `tecUNFUNDED_OFFER` | トランザクションの送信者が`TakerGets`の通貨を正の値で保有していない場合に発生する。(例外: `TakerGets`にトランザクションの送信者が発行するトークンを指定した場合、トランザクションは成功します)。 | -| `tecNO_LINE` | 発行者が[Authorized Trust Lines](authorized-trust-lines.html)を使用しているトークンを含むトランザクションで、必要なトラストラインが存在しない場合に発生します。 | -| `tecNO_AUTH` | 発行者が[Authorized Trust Lines](authorized-trust-lines.html)を使用しているトークンを含むトランザクションで、トークンを受け取るトラストラインが存在するが認証されていない場合に発生します。 | +| `tecNO_LINE` | 発行者が[Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用しているトークンを含むトランザクションで、必要なトラストラインが存在しない場合に発生します。 | +| `tecNO_AUTH` | 発行者が[Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用しているトークンを含むトランザクションで、トークンを受け取るトラストラインが存在するが認証されていない場合に発生します。 | | `tecINSUF_RESERVE_OFFER` | 所有者が台帳に新しいOfferオブジェクトを追加するための準備要件を満たすのに十分なXRPを持っておらず、トランザクションがどの通貨も変換しなかった場合に発生します。(トランザクションが何らかの金額のトレードに成功した場合、トランザクションは結果コード`tesSUCCESS`で成功しますが、残りは台帳にOfferオブジェクトを作成しません)。 | | `tecDIR_FULL` | トランザクションの送信者が台帳で多くのアイテムを所有している場合、またはオーダーブックに同じ取引レートのオファーがすでに多く含まれている場合に発生します。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/payment.md b/content/@i18n/ja/references/protocol/transactions/types/payment.md index a29d7dd218..c3392441d9 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/payment.md +++ b/content/@i18n/ja/references/protocol/transactions/types/payment.md @@ -15,7 +15,7 @@ Paymentトランザクションは、アカウント間での価値の移動を Paymentは、[アカウントを作成](#アカウントの作成)する唯一の手段でもあります。 -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 ```json { @@ -33,9 +33,9 @@ Paymentは、[アカウントを作成](#アカウントの作成)する唯一 } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_Payment%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%227BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_Payment%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%227BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -45,9 +45,9 @@ Paymentは、[アカウントを作成](#アカウントの作成)する唯一 | Destination | 文字列 | AccountID | 支払いを受取るアカウントの一意アドレス。 | | DestinationTag | 数値 | UInt32 | _(省略可)_ 宛先(支払先となる、ホスティングされている受取人)への支払い理由を明確にするための任意のタグ。 | | InvoiceID | 文字列 | Hash256 | _(省略可)_ この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | -| Paths | パス配列の配列 | PathSet | (省略可。自動入力可能)このトランザクションに使用される[支払いパス](paths.html)の配列。XRP間のトランザクションでは省略する必要があります。 | -| SendMax | [通貨額][] | Amount | _(省略可)_ [送金手数料](transfer-fees.html)、為替レート、[スリッページ](http://en.wikipedia.org/wiki/Slippage_%28finance%29)を含め、このトランザクションに関して支払い元通貨での負担を許容する上限額。[トランザクションの送信コストとして消却されるXRP](transaction-cost.html)は含めないでください。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。クロスカレンシー支払いまたは複数のトークンを伴う支払いについては、このフィールドを入力する必要があります。XRP間の支払いでは省略する必要があります。 | -| DeliverMin | [通貨額][] | Amount | _(省略可)_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](partial-payments.html)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 | +| Paths | パス配列の配列 | PathSet | (省略可。自動入力可能)このトランザクションに使用される[支払いパス](../../../../concepts/tokens/fungible-tokens/paths.md)の配列。XRP間のトランザクションでは省略する必要があります。 | +| SendMax | [通貨額][] | Amount | _(省略可)_ [送金手数料](../../../../concepts/tokens/transfer-fees.md)、為替レート、[スリッページ](http://en.wikipedia.org/wiki/Slippage_%28finance%29)を含め、このトランザクションに関して支払い元通貨での負担を許容する上限額。[トランザクションの送信コストとして消却されるXRP](../../../../concepts/transactions/transaction-cost.md)は含めないでください。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。クロスカレンシー支払いまたは複数のトークンを伴う支払いについては、このフィールドを入力する必要があります。XRP間の支払いでは省略する必要があります。 | +| DeliverMin | [通貨額][] | Amount | _(省略可)_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](../../../../concepts/payment-types/partial-payments.md)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 | ## Paymentの種類 @@ -55,23 +55,23 @@ Paymentトランザクションタイプは、いくつかの異なるタイプ | Paymentの種類 | `Amount` | `SendMax` | `Paths` | `Address` = `Destination`? | 説明 | |:-------------|:----------|:-----------|:----------|:---------------------------|:--| -| [XRP同士の直接支払い][] | String (XRP) | 省略 | 省略 | いいえ | アカウント間でへ直接XRPを送金します。常に正確な金額を送信します。基本的な[取引コスト](transaction-cost.html)以外の手数料は適用されません。 | -| [発行通貨の作成・償還][] | Object | Object (任意) | 任意 | いいえ | XRP Ledgerに追跡されているXRP以外の通貨や資産の量を増減させます。[送金手数料](transfer-fees.html)と[凍結](freezes.html)は、直接送金・換金する際には適用されません。 | -| [クロスカレンシー(通貨間)決済][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 通常は必須 | いいえ | 発行された通貨を保有者から別の保有者に送信します。`Amount`と`SendMax`の両方をXRPにすることはできません。これらの支払いは、発行者を介して[リップリング](rippling.html)し、トランザクションがパスセットを指定した場合、複数の仲介者を介してより長い[パス](paths.html)を取ることができます。トランザクション形式には、発行者が設定した[送金手数料](transfer-fees.html) が適用されます。これらのトランザクションは、異なる通貨間や、場合によっては同じ通貨コードで異なる発行者の通貨間を接続するために、[分散型取引所](decentralized-exchange.html)のオファーを利用します。 | +| [XRP同士の直接支払い][] | String (XRP) | 省略 | 省略 | いいえ | アカウント間でへ直接XRPを送金します。常に正確な金額を送信します。基本的な[取引コスト](../../../../concepts/transactions/transaction-cost.md)以外の手数料は適用されません。 | +| [発行通貨の作成・償還][] | Object | Object (任意) | 任意 | いいえ | XRP Ledgerに追跡されているXRP以外の通貨や資産の量を増減させます。[送金手数料](../../../../concepts/tokens/transfer-fees.md)と[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)は、直接送金・換金する際には適用されません。 | +| [クロスカレンシー(通貨間)決済][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 通常は必須 | いいえ | 発行された通貨を保有者から別の保有者に送信します。`Amount`と`SendMax`の両方をXRPにすることはできません。これらの支払いは、発行者を介して[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)し、トランザクションがパスセットを指定した場合、複数の仲介者を介してより長い[パス](../../../../concepts/tokens/fungible-tokens/paths.md)を取ることができます。トランザクション形式には、発行者が設定した[送金手数料](../../../../concepts/tokens/transfer-fees.md) が適用されます。これらのトランザクションは、異なる通貨間や、場合によっては同じ通貨コードで異なる発行者の通貨間を接続するために、[分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)のオファーを利用します。 | | [Partial payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 通常は必須 | いいえ | 任意の通貨を特定の金額まで送ります。[`tfPartialPayment` フラグ](#paymentのフラグ)を使用します。トランザクションが成功するための最小値を指定する `DeliverMin` 値を含めることができます。トランザクションが `DeliverMin` を指定しない場合、_任意の正の値_ を指定して成功させることができる。 | -| 通貨変換 | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 必須 | はい | [分散型取引所](decentralized-exchange.html)のオファーを消費して、ある通貨を別の通貨に交換し、[裁定取引](https://ja.wikipedia.org/wiki/%E8%A3%81%E5%AE%9A%E5%8F%96%E5%BC%95)の機会を得ることが出来ます。`Amount`と `SendMax` の両方を XRP にすることはできません。[Data API](data-api.html) は、このタイプの取引を "payment" ではなく、"exchange" として追跡しています。 | +| 通貨変換 | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 必須 | はい | [分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)のオファーを消費して、ある通貨を別の通貨に交換し、[裁定取引](https://ja.wikipedia.org/wiki/%E8%A3%81%E5%AE%9A%E5%8F%96%E5%BC%95)の機会を得ることが出来ます。`Amount`と `SendMax` の両方を XRP にすることはできません。[Data API](../../../data-api.md) は、このタイプの取引を "payment" ではなく、"exchange" として追跡しています。 | -[XRP同士の直接支払い]: direct-xrp-payments.html -[発行通貨の作成・償還]: tokens.html -[クロスカレンシー(通貨間)決済]: cross-currency-payments.html -[Partial payment]: partial-payments.html +[XRP同士の直接支払い]: ../../../../concepts/payment-types/direct-xrp-payments.md +[発行通貨の作成・償還]: ../../../../concepts/tokens/index.md +[クロスカレンシー(通貨間)決済]: ../../../../concepts/payment-types/cross-currency-payments.md +[Partial payment]: ../../../../concepts/payment-types/partial-payments.md ## SendMaxおよびAmountで使用する特殊なissuerの値 -ほとんどの場合、XRP以外の[通貨額][]の`issuer`フィールドは、金融機関の[発行アドレス](account-types.html)を示しています。ただし、支払いを記述するにあたって、支払いの`Amount`フィールドと`SendMax`フィールドにある`issuer`フィールドについては、特殊なルールが存在します。 +ほとんどの場合、XRP以外の[通貨額][]の`issuer`フィールドは、金融機関の[発行アドレス](../../../../concepts/accounts/account-types.md)を示しています。ただし、支払いを記述するにあたって、支払いの`Amount`フィールドと`SendMax`フィールドにある`issuer`フィールドについては、特殊なルールが存在します。 * 2つのアドレス間で、同一の通貨に関して存在する残高は常に1つです。つまり、金額の`issuer`フィールドが実際に表しているのは、イシュアンスを作成したアドレスではなく、イシュアンスを換金する相手方であることがあります。 * 宛先`Amount`フィールドの`issuer`フィールドが`Destination`アドレスと一致している場合、「宛先が受け入れるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のトラストラインで保持されている宛先によって作成されたイシュアンスに加え、宛先が当該アドレスまでトラストラインを延長しているすべてのアドレスが含まれます。 @@ -81,7 +81,7 @@ Paymentトランザクションタイプは、いくつかの異なるタイプ Payment型のトランザクションでは、資金供給のないアドレスに対して十分なXRPを送金することで、XRP Ledgerに新規のアカウントを作成できます。資金供給のないアドレスに対するその他のトランザクションは、常に失敗します。 -詳細は、[アカウント](accounts.html#アカウントの作成)を参照してください。 +詳細は、[アカウント](../../../../concepts/accounts/accounts.md#アカウントの作成)を参照してください。 ## パス @@ -96,27 +96,27 @@ Payment型のトランザクションでは、資金供給のないアドレス `Paths`フィールドを、空の配列としたり、メンバーがすべて空の配列あるような配列としたりすることはできません。 -詳細は、[Paths](paths.html)を参照してください。 +詳細は、[Paths](../../../../concepts/tokens/fungible-tokens/paths.md)を参照してください。 ## Paymentのフラグ -Payment型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 +Payment型のトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 | フラグの名前 | 16進値 | 10進値 | 説明 | |:-------------------|:-------------|:--------------|:-----------------------------| | `tfNoDirectRipple` | `0x00010000` | 65536 | デフォルトパスを使用せず、`Paths`フィールドに含まれているパスのみ使用します。これによりトランザクションは強制的に裁定機会を活用することになります。ほとんどのクライアントでは、これは必要ありません。 | -| `tfPartialPayment` | `0x00020000` | 131072 | `SendMax`を超えていないのに指定された`Amount`を送金できない場合、即座に失敗とするのではなく、受取られる額を減額します。詳細は、[Partial Payments](partial-payments.html)を参照してください。 | +| `tfPartialPayment` | `0x00020000` | 131072 | `SendMax`を超えていないのに指定された`Amount`を送金できない場合、即座に失敗とするのではなく、受取られる額を減額します。詳細は、[Partial Payments](../../../../concepts/payment-types/partial-payments.md)を参照してください。 | | `tfLimitQuality` | `0x00040000` | 262144 | すべての変換で、入力と出力との比率が`Amount`と`SendMax`との比率と同一であるか、さらに有利となるパスのみを採用します。詳細は、[クオリティの制限](#クオリティの制限)を参照してください。 | ## Partial Payments -Partial Paymentsを利用すると、受取られる金額を減額することによって、支払いを成功させることができます。Partial Paymentsが有用なのは、追加的なコストを発生させずに[支払いを返金](bouncing-payments.html)する場合です。その一方で、成功したトランザクションの`Amount`フィールドに、送金された金額が常に正しく記述されていることを前提としている環境において、悪用されるおそれもあります。 +Partial Paymentsを利用すると、受取られる金額を減額することによって、支払いを成功させることができます。Partial Paymentsが有用なのは、追加的なコストを発生させずに[支払いを返金](../../../../concepts/payment-types/bouncing-payments.md)する場合です。その一方で、成功したトランザクションの`Amount`フィールドに、送金された金額が常に正しく記述されていることを前提としている環境において、悪用されるおそれもあります。 Partial Paymentsとは、**tfPartialPayment**フラグが有効になっている[Paymentトランザクション][]です。Partial Paymentsは、`SendMax`値を超える金額を送金することなく、`DeliverMin`フィールド以上の正の金額(`DeliverMin`が指定されていない場合、任意の正の金額)を送金する場合に成功します。 -支払いのメタデータにある[`delivered_amount`](transaction-metadata.html#delivered_amount)フィールドは、宛先アカウントが実際に受け取る通貨の金額を示しています。 +支払いのメタデータにある[`delivered_amount`](../metadata.md#delivered_amount)フィールドは、宛先アカウントが実際に受け取る通貨の金額を示しています。 -詳細は、[Partial Payments](partial-payments.html)の全文を参照してください。 +詳細は、[Partial Payments](../../../../concepts/payment-types/partial-payments.md)の全文を参照してください。 ## クオリティの制限 @@ -125,17 +125,14 @@ XRP Ledgerでは、ある通貨での入金額と別の通貨での出金額の [*tfLimitQuality*フラグ](#paymentのフラグ)を使用すると、実行する変換のクオリティについて下限を設定できます。このクオリティの制限は、宛先の`Amount`を`SendMax`の金額(通貨にかかわらず金額のみ)で除算することによって定義します。設定した場合、支払い処理エンジンは、クオリティの制限よりもクオリティ(為替レート)が低い(数値が小さい)パスの使用を回避します。 -tfLimitQualityフラグは、それ自体、トランザクションが成功する状況を減少させるものになります。具体的には、好ましくない変換が支払いの一部で使用されている場合、支払いにおける変換の*平均*的なクオリティが全体としてクオリティの制限と同一か、それ以上であっても、支払いが拒否されます。支払いがこの形で拒否される場合、[トランザクションの結果](transaction-results.html)は`tecPATH_DRY`です。 +tfLimitQualityフラグは、それ自体、トランザクションが成功する状況を減少させるものになります。具体的には、好ましくない変換が支払いの一部で使用されている場合、支払いにおける変換の*平均*的なクオリティが全体としてクオリティの制限と同一か、それ以上であっても、支払いが拒否されます。支払いがこの形で拒否される場合、[トランザクションの結果](../transaction-results/transaction-results.md)は`tecPATH_DRY`です。 次の例を考えてみます。100人民元(`Amount` = 100人民元)を最大20米ドル(`SendMax` = 20米ドル)と引き換えに相手方に送金しようとする場合、クオリティの制限は`5`です。あるトレーダーが15米ドルと引き換えに95人民元をオファーしているものの(米ドルあたり約`6.3`人民元の比率)、市場の次善のオファーが2ドルに対して5人民元であるとします(米ドルあたり`2.5`人民元の比率)。両方のオファーを受諾して相手方に100人民元を送金する場合、送信元が負担するコストは17米ドルであり、平均のクオリティは約`5.9`です。 tfLimitQualityフラグが設定されていない場合、17米ドルというコストは指定された`SendMax`に収まっているため、このトランザクションは成功します。一方、tfLimitQualityフラグが有効になっている場合は失敗します。2番目のオファーを受諾するためのパスのクオリティは`2.5`であり、`5`というクオリティの制限よりも低いためです。 -tfLimitQualityフラグが最も有用となるのは、[Partial Payments](partial-payments.html)と組み合わせる場合です。*tfPartialPayment*と*tfLimitQuality*の両方がトランザクションに対して設定されている場合、トランザクションでは、クオリティの制限よりも低い変換を使用することなく、送金可能な最大限の宛先`Amount`が送金されます。 +tfLimitQualityフラグが最も有用となるのは、[Partial Payments](../../../../concepts/payment-types/partial-payments.md)と組み合わせる場合です。*tfPartialPayment*と*tfLimitQuality*の両方がトランザクションに対して設定されている場合、トランザクションでは、クオリティの制限よりも低い変換を使用することなく、送金可能な最大限の宛先`Amount`が送金されます。 95人民元/15米ドルのオファーと5人民元/2米ドルのオファーがある上の例で、トランザクションに関してtfPartialPaymentとtfLimitQualityの両方が有効になっている場合、状況は異なります。20米ドルの`SendMax`および100人民元の宛先`Amount`を維持する場合も、クオリティの制限は`5`です。ただし、実行しようとするのはPartial Paymentsであるため、宛先に対する送金の全額を一度で送金できない場合、トランザクションを失敗とするのではなく、送金可能な最大限の金額が送金されます。つまり、トランザクションでは、クオリティが約`6.3`である95人民元/15米ドルのオファーは受け入れますが、5人民元/2米ドルのオファーはクオリティが`2.5`であり、クオリティの制限の`5`より低いため、拒否します。最終的に、トランザクションで送金されるのは満額の100人民元ではなく95人民元になりますが、不利な為替レートで資金を浪費することを避けられます。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/paymentchannelclaim.md b/content/@i18n/ja/references/protocol/transactions/types/paymentchannelclaim.md index 0c4ff8f164..086d3c4412 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/paymentchannelclaim.md +++ b/content/@i18n/ja/references/protocol/transactions/types/paymentchannelclaim.md @@ -28,7 +28,7 @@ Channelの**宛先アドレス**は以下の操作を実行できます。 - Channelの`Expiration`または`CancelAfter`の時刻が前のレジャーの閉鎖時刻よりも古い場合にはChannelが閉鎖します。有効な形式のPaymentChannelClaimトランザクションでは、トランザクションの内容に関わらず常にこの効果があります。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -42,7 +42,7 @@ Channelの**宛先アドレス**は以下の操作を実行できます。 -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -54,19 +54,16 @@ Channelの**宛先アドレス**は以下の操作を実行できます。 | `Signature` | 文字列 | Blob | _(省略可)_ クレームの署名です(16進数)。署名付きメッセージには、Channel IDとクレームの額が含まれています。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。 | | `PublicKey` | 文字列 | Blob | _(省略可)_ 署名に使用する公開鍵(16進数)。公開鍵はレジャーに保管されているこのChannelの`PublicKey`と一致している必要があります。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。また`Signature`フィールドは省略されます。(`rippled`がトランザクションをレジャーに適用する前に署名の有効性をチェックできるように、トランザクションにPubKeyが指定されています。) | -[DeletableAccounts Amendment](known-amendments.html#deletableaccounts)が有効であり、 _かつ_ Payment Channelの作成時に[fixPayChanRecipientOwnerDir Amendment](known-amendments.html#fixpaychanrecipientownerdir)が有効でなかった場合は、Payment Channelの送金先が[削除](deleting-accounts.html)され、現在レジャーに存在しない可能性があります。宛先が削除されている場合、支払元アカウントはチャネルから宛先にXRPを送金できません。トランザクションは`tecNO_DST`で失敗します。(もちろん、削除されたアカウントがトランザクションを送信することはできません。)宛先アカウントが削除されている場合に、このトランザクションタイプを他の用途(チャネルの有効期限の調整、XRPのないチャネルのクローズ、有効期限を過ぎたチャネルの削除など)で使用しても影響はありません。 +[DeletableAccounts Amendment](../../../../resources/known-amendments.md#deletableaccounts)が有効であり、 _かつ_ Payment Channelの作成時に[fixPayChanRecipientOwnerDir Amendment](../../../../resources/known-amendments.md#fixpaychanrecipientownerdir)が有効でなかった場合は、Payment Channelの送金先が[削除](../../../../concepts/accounts/deleting-accounts.md)され、現在レジャーに存在しない可能性があります。宛先が削除されている場合、支払元アカウントはチャネルから宛先にXRPを送金できません。トランザクションは`tecNO_DST`で失敗します。(もちろん、削除されたアカウントがトランザクションを送信することはできません。)宛先アカウントが削除されている場合に、このトランザクションタイプを他の用途(チャネルの有効期限の調整、XRPのないチャネルのクローズ、有効期限を過ぎたチャネルの削除など)で使用しても影響はありません。 ## PaymentChannelClaimフラグ -PaymentChannelClaimタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 +PaymentChannelClaimタイプのトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 | フラグ名 | 16進数値 | 10進数値 | 説明 | |:----------|:-----------|:--------------|:------------------------------------| | `tfRenew` | 0x00010000 | 65536 | Channelの`Expiration`時刻をクリアします。(`Expiration`は、Channelの変更できない`CancelAfter`時刻とは異なります。)このフラグは、Payment Channelの支払元アドレスだけが使用できます。 | | `tfClose` | 0x00020000 | 131072 | Channelの閉鎖を要求します。このフラグは、Channelの支払元アドレスと宛先アドレスだけが使用できます。このフラグにより、現在のクレームの処理後にChannelにこれ以上のXRPが割り当てられない場合、または宛先アドレスが使用している場合に、Channelが即時に閉鎖されます。XRPがまだChannelに保有されているときに、支払元アドレスがこのフラグを使用した場合、`SettleDelay`秒の経過後にChannelが閉鎖するようにスケジュールされます。(具体的には、Channelの`Expiration`は、前のレジャーの閉鎖時刻にChannelの`SettleDelay`の時間を加算した時刻に設定されます。ただし、Channelにこの時刻よりも早い`Expiration`時刻がすでに設定されている場合を除きます。)XRPがまだChannelに保有されているときに、宛先アドレスがこのフラグを使用した場合、クレーム処理後に残っているXRPはすべて支払元アドレスに返金されます。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/paymentchannelcreate.md b/content/@i18n/ja/references/protocol/transactions/types/paymentchannelcreate.md index 1e9834a60e..689d1579dc 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/paymentchannelcreate.md +++ b/content/@i18n/ja/references/protocol/transactions/types/paymentchannelcreate.md @@ -10,9 +10,9 @@ labels: _[PayChan Amendment][]により追加されました。_ -[ペイメントチャンネル](payment-channels.html)を作成し、XRPで資金を供給します。このトランザクションを送信するアドレスが、ペイメントチャネルの「送信元アドレス」となります。 +[ペイメントチャンネル](../../../../concepts/payment-types/payment-channels.md)を作成し、XRPで資金を供給します。このトランザクションを送信するアドレスが、ペイメントチャネルの「送信元アドレス」となります。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -28,7 +28,7 @@ _[PayChan Amendment][]により追加されました。_ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -37,13 +37,10 @@ _[PayChan Amendment][]により追加されました。_ | `Amount` | 文字列 | Amount | 送金元の残高から差し引いてこのChannelに留保する[XRP、drop単位][]の額。このChannelのオープン時には、XRPを`Destination`アドレスにのみ移動できます。Channelが閉鎖すると、未請求のXRPは支払元アドレスの残高に戻されます。 | | `Destination` | 文字列 | AccountID | このChannelに対するXRPクレームを受け取るアドレス。Channelの「宛先アドレス」とも呼ばれます。送金元(`Account`)と同一にはできません。 | | `SettleDelay` | 数値 | UInt32 | Channelに未請求のXRPがある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する時間。 | -| `PublicKey` | 文字列 | Blob | 送信元がこのチャネルに対する請求に使用する鍵ペアの33バイトの公開鍵を16進数で指定します。これはsecp256k1またはEd25519の公開鍵であることができます。キーペアの詳細については、[鍵の導出](cryptographic-keys.html#鍵導出) を参照してください。 | +| `PublicKey` | 文字列 | Blob | 送信元がこのチャネルに対する請求に使用する鍵ペアの33バイトの公開鍵を16進数で指定します。これはsecp256k1またはEd25519の公開鍵であることができます。キーペアの詳細については、[鍵の導出](../../../../concepts/accounts/cryptographic-keys.md#鍵導出) を参照してください。 | | `CancelAfter` | 数値 | UInt32 | _(省略可)_ このChannelの有効期限([Rippleエポック以降の経過秒数][])。この時刻の経過後にトランザクションがこのChannelを変更しようとすると、このChannelは閉鎖し、Channelは変更されません。この値は変更できません。Channelはこの時刻よりも早い時点で閉鎖できますが、この時刻の経過後にもオープンしたままにすることはできません。 | | `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | -`Destination` アカウントがペイメントチャネルの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION` 失敗します。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。 +`Destination` アカウントがペイメントチャネルの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION` 失敗します。_([DisallowIncoming amendment][] {% not-enabled /%} が必要です)_。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/paymentchannelfund.md b/content/@i18n/ja/references/protocol/transactions/types/paymentchannelfund.md index acc071e4d9..217b314963 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/paymentchannelfund.md +++ b/content/@i18n/ja/references/protocol/transactions/types/paymentchannelfund.md @@ -24,32 +24,28 @@ PaymentChannelFundの例: } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-------------|:----------|:------------------|:------------------------------| | `Channel` | 文字列 | Hash256 | 資金供給するChannelの一意のID(64文字の16進文字列)。 | | `Amount` | 文字列 | Amount | Channelに追加する[XRP、drop単位][通貨額]の正の額。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ Channelに新たに設定する`Expiration`の時刻(Rippleエポック以降の経過秒数)。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。(`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](paychannel.html)を参照してください。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ Channelに新たに設定する`Expiration`の時刻(Rippleエポック以降の経過秒数)。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。(`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](../../ledger-data/ledger-entry-types/paychannel.md)を参照してください。 | ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:-----------|:------------| -| `tecINSUFFICIENT_RESERVE` | 支払元アカウントが[必要準備金](reserves.html)のXRPを持っていません。| -| `tecNO_DST` | 送金先アカウントが削除されていました。 この可能性は、Payment Channelの作成時は[fixPayChanRecipientOwnerDir amendment](known-amendments.html#fixpaychanrecipientownerdir)が有効になった(2020-05-01)前の場合だけです。| +| `tecINSUFFICIENT_RESERVE` | 支払元アカウントが[必要準備金](../../../../concepts/accounts/reserves.md)のXRPを持っていません。| +| `tecNO_DST` | 送金先アカウントが削除されていました。 この可能性は、Payment Channelの作成時は[fixPayChanRecipientOwnerDir amendment](../../../../resources/known-amendments.md#fixpaychanrecipientownerdir)が有効になった(2020-05-01)前の場合だけです。| | `tecNO_ENTRY` | `Channel`フィールドに指定されたPayment Channelがありません。 | | `tecNO_PERMISSION` | トランザクションの送金元アカウントはPayment Channelの支払元アカウントではありまっせん。| -| `tecUNFUNDED` | 送金元アカウントは[必要準備金](reserves.html)以上に指定されたXRPを持っていません。| +| `tecUNFUNDED` | 送金元アカウントは[必要準備金](../../../../concepts/accounts/reserves.md)以上に指定されたXRPを持っていません。| | `temBAD_AMOUNT` | トランザクションの`Amount`フィールドの指定が正しくない。負もゼロも無効です。| | `temBAD_EXPIRATION` | `Expiration`フィールドの指定が正しくない。| - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/setregularkey.md b/content/@i18n/ja/references/protocol/transactions/types/setregularkey.md index 6676c550ad..2a685b7aa4 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/setregularkey.md +++ b/content/@i18n/ja/references/protocol/transactions/types/setregularkey.md @@ -13,7 +13,7 @@ labels: アカウントを保護するには、レギュラーキーペアをアカウントに割り当て、トランザクションに署名するときに、可能な場合には常にマスターキーペアの代わりにレギュラーキーペアを使用します。レギュラーキーペアが漏えいしても、マスターキーペアが漏えいしていない場合は、`SetRegularKey`トランザクションを使用してアカウントの制御を取り戻すことができます。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -25,7 +25,7 @@ labels: } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | @@ -34,13 +34,10 @@ labels: ## 関連項目 -レギュラーキーペアとマスターキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。 +レギュラーキーペアとマスターキーペアの詳細は、[暗号鍵](../../../../concepts/accounts/cryptographic-keys.md)を参照してください。 -アカウントへのレギュラーキーペアの割り当てについてのチュートリアルは、[レギュラーキーペアの操作](assign-a-regular-key-pair.html)を参照してください。 +アカウントへのレギュラーキーペアの割り当てについてのチュートリアルは、[レギュラーキーペアの操作](../../../../tutorials/manage-account-settings/assign-a-regular-key-pair.md)を参照してください。 -セキュリティを強化するために[マルチシグ](multi-signing.html)を使用できますが、マルチシグを使用する場合には[トランザクションコスト][]および[準備金](reserves.html)に追加のXRPが必要となります。 +セキュリティを強化するために[マルチシグ](../../../../concepts/accounts/multi-signing.md)を使用できますが、マルチシグを使用する場合には[トランザクションコスト][]および[準備金](../../../../concepts/accounts/reserves.md)に追加のXRPが必要となります。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/signerlistset.md b/content/@i18n/ja/references/protocol/transactions/types/signerlistset.md index ce7c4aac9b..487e37e423 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/signerlistset.md +++ b/content/@i18n/ja/references/protocol/transactions/types/signerlistset.md @@ -8,9 +8,9 @@ labels: # SignerListSet [[ソース]](https://github.com/XRPLF/rippled/blob/ef511282709a6a0721b504c6b7703f9de3eecf38/src/ripple/app/tx/impl/SetSignerList.cpp "Source") -SignerListSetトランザクションは、トランザクションの[マルチシグ](multi-signing.html)に使用できる署名者のリストを作成、置換、削除します。このトランザクションタイプは[MultiSign Amendment][]により導入されました。[新規: rippled 0.31.0][] +SignerListSetトランザクションは、トランザクションの[マルチシグ](../../../../concepts/accounts/multi-signing.md)に使用できる署名者のリストを作成、置換、削除します。このトランザクションタイプは[MultiSign Amendment][]により導入されました。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} -## {{currentpage.name}}のJSONの例 +## {% $frontmatter.seo.title %}のJSONの例 ```json { @@ -42,25 +42,22 @@ SignerListSetトランザクションは、トランザクションの[マルチ } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:--------------|:----------|:------------------|:-----------------------------| | SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチシグは、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、`0`の値を使用します。 | -| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](signerlist.html#signerentryオブジェクト)の配列。SignerListには1~32人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 | +| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](../../ledger-data/ledger-entry-types/signerlist.md#signerentryオブジェクト)の配列。SignerListには1~32人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 | -アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、`SignerQuorum`を`0`に設定し、_かつ_`SignerEntries`フィールドを省略します。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。 +アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、`SignerQuorum`を`0`に設定し、_かつ_`SignerEntries`フィールドを省略します。このようにしないと、トランザクションは[temMALFORMED](../transaction-results/tem-codes.md)エラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。 -SignerQuorumを満たせない方法でSignerListを作成することはできません。SignerQuorumは0よりも大きく、リストの`SignerWeight`値の合計以下でなければなりません。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。 +SignerQuorumを満たせない方法でSignerListを作成することはできません。SignerQuorumは0よりも大きく、リストの`SignerWeight`値の合計以下でなければなりません。このようにしないと、トランザクションは[temMALFORMED](../transaction-results/tem-codes.md)エラーで失敗します。 トランザクションの署名にマスターキー、レギュラーキー、または現行のSignerListを使用できる場合は、これらを使用してSignerListを作成、更新、削除できます。 -トランザクションに署名する最後の方法をアカウントから削除することはできません。アカウントのマスターキーが無効で([`lsfDisableMaster`フラグ](accountroot.html#accountrootのフラグ)が有効な場合)、アカウントで[レギュラーキー](cryptographic-keys.html)が設定されていない場合、アカウントからSignerListを削除できません。その代わりにトランザクションは[`tecNO_ALTERNATIVE_KEY`](tec-codes.html)エラーで失敗します。 +トランザクションに署名する最後の方法をアカウントから削除することはできません。アカウントのマスターキーが無効で([`lsfDisableMaster`フラグ](../../ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ)が有効な場合)、アカウントで[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)が設定されていない場合、アカウントからSignerListを削除できません。その代わりにトランザクションは[`tecNO_ALTERNATIVE_KEY`](../transaction-results/tec-codes.md)エラーで失敗します。 -[MultiSignReserve Amendment][]が有効な場合、SignerListを作成または置換すると、SignerListオブジェクトでlsfOneOwnerCountフラグが有効になります。このフラグが有効な場合、MultiSignReserve Amendmentに定められているとおり、XRP LedgerはSignerListの[`OwnerCount`](accountroot.html#accountrootフィールド)と[所有者準備金](reserves.html#所有者準備金)を減らせます。詳細は、[SignerListのフラグ](signerlist.html#signerlistのフラグ)を参照してください。 +[MultiSignReserve Amendment][]が有効な場合、SignerListを作成または置換すると、SignerListオブジェクトでlsfOneOwnerCountフラグが有効になります。このフラグが有効な場合、MultiSignReserve Amendmentに定められているとおり、XRP LedgerはSignerListの[`OwnerCount`](../../ledger-data/ledger-entry-types/accountroot.md#accountrootフィールド)と[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)を減らせます。詳細は、[SignerListのフラグ](../../ledger-data/ledger-entry-types/signerlist.md#signerlistのフラグ)を参照してください。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/ticketcreate.md b/content/@i18n/ja/references/protocol/transactions/types/ticketcreate.md index cbd7376d92..b8905e6093 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/ticketcreate.md +++ b/content/@i18n/ja/references/protocol/transactions/types/ticketcreate.md @@ -11,9 +11,9 @@ labels: _([TicketBatch amendment][]が必要です)_ -TicketCreateトランザクションは、1つまたは複数の[シーケンス番号](basic-data-types.html#アカウントシーケンス)を[Tickets](ticket.html)として確保します。 +TicketCreateトランザクションは、1つまたは複数の[シーケンス番号](../../data-types/basic-data-types.md#アカウントシーケンス)を[Tickets](../../ledger-data/ledger-entry-types/ticket.md)として確保します。 -## {{currentpage.name}}JSONの例 +## {% $frontmatter.seo.title %}JSONの例 ```json { @@ -25,28 +25,25 @@ TicketCreateトランザクションは、1つまたは複数の[シーケンス } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-----------------|:-----------------|:------------------|:-------------------| | `TicketCount` | 数値 | UInt32 | 作成するチケットの枚数。これは正の数でなければならず、このトランザクションの実行の結果、アカウントが250枚以上のチケットを所有することはできません。 | -トランザクションが要求されたチケット _全て_ を作成できない場合(250チケットの制限または[所有者準備金](reserves.html)のいずれかが原因)、失敗してチケットは作成されません。アカウントが現在所有しているチケットの数を調べるには、[account_info メソッド][]を使用して、`account_data.TicketCount`フィールドを確認してください。 +トランザクションが要求されたチケット _全て_ を作成できない場合(250チケットの制限または[所有者準備金](../../../../concepts/accounts/reserves.md)のいずれかが原因)、失敗してチケットは作成されません。アカウントが現在所有しているチケットの数を調べるには、[account_info メソッド][]を使用して、`account_data.TicketCount`フィールドを確認してください。 **ヒント:** このトランザクションは、送信アカウントの[シーケンス番号][Sequence Number]を1 _+_ 作成するチケットの数(`TicketCount`)だけ増加させます。この取引は、アカウントのシーケンス番号を1より多く増加させる唯一の取引です。 ## エラーケース -すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。 +すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/transaction-results.md)が発生する可能性があります。 | エラーコード | 説明 | |:--------------------------|:-------------------------------------------------| | `temINVALID_COUNT` | TicketCount`フィールドが無効です。1から250までの整数でなければなりません。| | `tecDIR_FULL` | この取引により、アカウントが一度に所有するチケットの上限である250枚を超えたり、一般的なレジャーオブジェクトの上限数を超えたりすることになります。 | -| `tecINSUFFICIENT_RESERVE` | 送信側のアカウントには、リクエストされたすべてのチケットの[所有者準備金](reserves.html)を満たすだけのXRPがありません。 | +| `tecINSUFFICIENT_RESERVE` | 送信側のアカウントには、リクエストされたすべてのチケットの[所有者準備金](../../../../concepts/accounts/reserves.md)を満たすだけのXRPがありません。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/trustset.md b/content/@i18n/ja/references/protocol/transactions/types/trustset.md index aa43199b5a..6600a68e9c 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/trustset.md +++ b/content/@i18n/ja/references/protocol/transactions/types/trustset.md @@ -9,9 +9,9 @@ labels: [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/SetTrust.cpp "Source") -2つのアカウントをリンクする[トラストライン](trust-lines-and-issuing.html)を作成または変更します。 +2つのアカウントをリンクする[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)を作成または変更します。 -## {{currentpage.name}} JSONの例 +## {% $frontmatter.seo.title %} JSONの例 ```json { @@ -29,37 +29,34 @@ labels: } ``` -{% include '_snippets/tx-fields-intro.ja.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | フィールド | JSONの型 | [内部の型][] | 説明 | |:-------------------------|:----------|:------------------|:------------------| | `LimitAmount` | オブジェクト | Amount | 作成または変更するトラストラインを定義する[通貨額][]フォーマットのオブジェクト。 | -| `LimitAmount`.`currency` | 文字列 | (Amount.currency) | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](https://www.xe.com/iso4217.php)または[通貨フォーマット](currency-formats.html)に基づく160ビットの16進数値です。「XRP」は無効です。 | +| `LimitAmount`.`currency` | 文字列 | (Amount.currency) | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](https://www.xe.com/iso4217.php)または[通貨フォーマット](../../data-types/currency-formats.md)に基づく160ビットの16進数値です。「XRP」は無効です。 | | `LimitAmount`.`value` | 文字列 | (Amount.value) | このトラストラインに設定される限度を表す引用符で囲んだ10進数値。 | | `LimitAmount`.`issuer` | 文字列 | (Amount.issuer) | 信頼したいアカウントのアドレス。 | | `QualityIn` | 数値 | UInt32 | _(省略可)_ このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | | `QualityOut` | 数値 | UInt32 | _(省略可)_ このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | -`LimitAmount.issuer`で指定されたアカウントがトラストラインの着信をブロックしている場合、結果コード`tecNO_PERMISSION`でトランザクションが失敗します。 _([DisallowIncoming amendment][] :not_enabled: が必要です)_ +`LimitAmount.issuer`で指定されたアカウントがトラストラインの着信をブロックしている場合、結果コード`tecNO_PERMISSION`でトランザクションが失敗します。 _([DisallowIncoming amendment][] {% not-enabled /%} が必要です)_ ## TrustSetのフラグ -TrustSetタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 +TrustSetタイプのトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 | フラグ名 | 16進数値 | 10進数値 | 説明 | |:------------------|:-------------|:--------------|:----------------------| -| `tfSetfAuth` | `0x00010000` | 65536 | [このアカウントから発行された通貨](tokens.html)を相手方に保有させることを許可します。([*asfRequireAuth* AccountSet フラグ](accountset.html#accountsetのフラグ)を使用しない場合は効果がありません。)設定を解除できません。 | -| `tfSetNoRipple` | `0x00020000` | 131072 | 2つのトラストラインの両方でこのフラグが有効になっている場合、同じ通貨のトラストライン間の[リップリング](rippling.html)をブロックする No Ripple フラグを有効にします。 | -| `tfClearNoRipple` | `0x00040000` | 262144 | No Rippleフラグを無効にし、このトラストラインで[リップリング](rippling.html)を許可します。 | -| `tfSetFreeze` | `0x00100000` | 1048576 | トラストラインを[凍結](freezes.html)します。 | -| `tfClearFreeze` | `0x00200000` | 2097152 | トラストラインを[凍結解除](freezes.html)します。 | +| `tfSetfAuth` | `0x00010000` | 65536 | [このアカウントから発行された通貨](../../../../concepts/tokens/index.md)を相手方に保有させることを許可します。([*asfRequireAuth* AccountSet フラグ](accountset.md#accountsetのフラグ)を使用しない場合は効果がありません。)設定を解除できません。 | +| `tfSetNoRipple` | `0x00020000` | 131072 | 2つのトラストラインの両方でこのフラグが有効になっている場合、同じ通貨のトラストライン間の[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)をブロックする No Ripple フラグを有効にします。 | +| `tfClearNoRipple` | `0x00040000` | 262144 | No Rippleフラグを無効にし、このトラストラインで[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)を許可します。 | +| `tfSetFreeze` | `0x00100000` | 1048576 | トラストラインを[凍結](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | +| `tfClearFreeze` | `0x00200000` | 2097152 | トラストラインを[凍結解除](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | トランザクションがNo Rippleを有効にしようとしたができない場合、結果コード `tecNO_PERMISSION` で失敗します。[fix1578 amendment][]が有効になる前は、このようなトランザクションは代わりに`tesSUCCESS`(可能な限りの他の変更を行う)という結果になりました。 トラストラインのAuthフラグは、トラストラインがその所有者のXRP必要準備金に反映されるかどうかを左右しません。ただしAuthフラグを有効にすると、トラストラインがデフォルト状態になることがありません。承認されたトラストラインは削除できません。イシュアーは、トラストラインの限度と残高が0であっても、`tfSetfAuth`フラグだけを使用してトラストラインを事前承認できます。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchainaccountcreatecommit.md b/content/@i18n/ja/references/protocol/transactions/types/xchainaccountcreatecommit.md index 17c056d4c4..2ba70e124c 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchainaccountcreatecommit.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchainaccountcreatecommit.md @@ -9,7 +9,7 @@ status: not_enabled # XChainAccountCreateCommit [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L466-L474 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ このトランザクションはXRP-XRPブリッジにのみ使用できます。 @@ -60,7 +60,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchainaddaccountcreateattestation.md b/content/@i18n/ja/references/protocol/transactions/types/xchainaddaccountcreateattestation.md index ce23a69f1a..9b7863ab3b 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchainaddaccountcreateattestation.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchainaddaccountcreateattestation.md @@ -9,7 +9,7 @@ status: not_enabled # XChainAddAccountCreateAttestation [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L447-L464 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainAddAccountCreateAttestation`トランザクションは、`XChainAccountCreateCommit`トランザクションがもう一方のチェーンで発生したというWitnessサーバからの証明を提示します。 @@ -77,7 +77,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchainaddclaimattestation.md b/content/@i18n/ja/references/protocol/transactions/types/xchainaddclaimattestation.md index 9a28333fc3..6c4a802994 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchainaddclaimattestation.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchainaddclaimattestation.md @@ -9,7 +9,7 @@ status: not_enabled # XChainAddClaimAttestation [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L429-L445 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainAddClaimAttestation`トランザクションは`XChainCommit`トランザクションを証明するWitnessサーバの署名を提供します。 @@ -96,8 +96,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchainclaim.md b/content/@i18n/ja/references/protocol/transactions/types/xchainclaim.md index 00db1e1c42..7b21a210a3 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchainclaim.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchainclaim.md @@ -9,7 +9,7 @@ status: not_enabled # XChainClaim [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L418-L427 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainClaim`トランザクションはクロスチェーンでの価値の移転を完了させます。`XChainClaim`トランザクションにより、ユーザは送信元チェーンでロックされた価値と同等の価値を送信先チェーンで請求することができます。ユーザは、送金元チェーンでロックされた価値に関連付けられたクロスチェーン請求ID(`Account`フィールド)を所有している場合にのみ、その価値を請求することができます。ユーザは誰にでも資金を送ることができます(`Destination`フィールド)。このトランザクションが必要になるのは`XChainCommit`トランザクションで`OtherChainDestination`が指定されていない場合、または自動送金で何か問題が発生した場合のみです。 @@ -59,7 +59,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchaincommit.md b/content/@i18n/ja/references/protocol/transactions/types/xchaincommit.md index 98dd011522..d956e545be 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchaincommit.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchaincommit.md @@ -9,7 +9,7 @@ status: not_enabled # XChainCommit [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L408-L416 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainCommit`はクロスチェーン送金の2番目のステップです。`XChainCommit`は発行チェーンでラップできるようにロックチェーンで資産を保管したり、ロックチェーンで返却できるように発行チェーンでラップされた資産をバーンしたりします。 @@ -55,8 +55,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchaincreatebridge.md b/content/@i18n/ja/references/protocol/transactions/types/xchaincreatebridge.md index 98e5f03233..d80f221963 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchaincreatebridge.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchaincreatebridge.md @@ -9,7 +9,7 @@ status: not_enabled # XChainCreateBridge [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L381-L388 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainCreateBridge`トランザクションは新しい`Bridge`レジャーオブジェクトを作成し、トランザクショ ンが送信されたチェーン上に新しいクロスチェーンブリッジの入り口を定義します。これにはブリッジのドアアカウントと資産に関する情報が含まれます。 @@ -60,8 +60,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchaincreateclaimid.md b/content/@i18n/ja/references/protocol/transactions/types/xchaincreateclaimid.md index e19acb3706..1f448977ab 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchaincreateclaimid.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchaincreateclaimid.md @@ -9,7 +9,7 @@ status: not_enabled # XChainCreateClaimID [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L399-L406 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainCreateClaimID`トランザクションはクロスチェーン送金に使われる新しいクロスチェーン請求IDを作成します。クロスチェーン請求IDは*1つの*クロスチェーン送金を表します。 @@ -58,8 +58,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ | `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | | `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/protocol/transactions/types/xchainmodifybridge.md b/content/@i18n/ja/references/protocol/transactions/types/xchainmodifybridge.md index 0ffb4af70f..349c95f103 100644 --- a/content/@i18n/ja/references/protocol/transactions/types/xchainmodifybridge.md +++ b/content/@i18n/ja/references/protocol/transactions/types/xchainmodifybridge.md @@ -9,7 +9,7 @@ status: not_enabled # XChainModifyBridge [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/TxFormats.cpp#L390-L397 "ソース") -_([XChainBridge Amendment][] :not_enabled: が必要です)_ +_([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainModifyBridge`トランザクションでは、ブリッジ管理者がブリッジの設定を変更することができます。変更できるのは`SignatureReward`と`MinAccountCreateAmount`だけです。 @@ -68,8 +68,4 @@ _([XChainBridge Amendment][] :not_enabled: が必要です)_ |------------------------------|--------------|------| | `tfClearAccountCreateAmount` | `0x00010000` | ブリッジの`MinAccountCreateAmount` 削除します。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/references/xrp-ledger-toml.md b/content/@i18n/ja/references/xrp-ledger-toml.md index 91351be9ba..9273beeebd 100644 --- a/content/@i18n/ja/references/xrp-ledger-toml.md +++ b/content/@i18n/ja/references/xrp-ledger-toml.md @@ -47,7 +47,7 @@ https://xrp.services.example.com/.well-known/xrp-ledger.toml ### ドメイン -`xrp-ledger.toml`ファイルを提供するドメインは、所有権の表明とも言えます。このようなファイルの内容は、単独で提供されている場合、有用または信頼できるものではありません。実用的な観点からすれば、メインドメインからファイルを提供することは望ましくない場合もあります。そのため、任意の数のサブドメインを使用することができます。[XRP Ledgerアカウントの`Domain`フィールド](accountset.html#domain)を設定するときは、使用したすべてのサブドメインを含むフルドメインを指定する必要があります。詳細は、[アカウントの検証](#アカウント検証)を確認してください。 +`xrp-ledger.toml`ファイルを提供するドメインは、所有権の表明とも言えます。このようなファイルの内容は、単独で提供されている場合、有用または信頼できるものではありません。実用的な観点からすれば、メインドメインからファイルを提供することは望ましくない場合もあります。そのため、任意の数のサブドメインを使用することができます。[XRP Ledgerアカウントの`Domain`フィールド](protocol/transactions/types/accountset.md#domain)を設定するときは、使用したすべてのサブドメインを含むフルドメインを指定する必要があります。詳細は、[アカウントの検証](#アカウント検証)を確認してください。 必要に応じて、複数のサブドメインから同じファイルを提供することもできます。例えば、サブドメイン`www.example.com`から`example.com`と同じWebサイトに遷移する場合は、どちらからもファイルを提供できます。Webサイトでプレフィクス`www`が必要な場合は、ドメインを指定する際(例えば、XRP Ledgerアカウントの`Domain`フィールドを設定する際)に必ずプレフィクスを含めてください。 @@ -191,7 +191,7 @@ _各_`[[VALIDATORS]]`エントリごとに、以下から任意のフィール | `network` | 文字列 | このアカウントが主に使用されるネットワークチェーン。省略された場合、クライアントはアカウントが本番環境のXRP Ledger _と_ 、場合によっては他のネットワークチェーンでもリクエストされていると想定する必要があります。本番環境のXRP Ledgerでは`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | | `desc` | 文字列 | 人間が読める形式での、このアカウントの目的または使用方法に関する説明。 | -**注意:** `xrp-ledger.toml`ファイルをホストすることで、誰でもアカウントの所有権を主張できるため、ここでのアカウントの存在が正式であると見なすべきではありません。ただし、[XRP Ledgerの当該アカウントの`Domain`フィールド](accountset.html#domain)が、この`xrp-ledger.toml`ファイルの提供元のドメインとも一致している場合は除きます。詳細は、[アカウントの検証](#アカウント検証)を確認してください。 +**注意:** `xrp-ledger.toml`ファイルをホストすることで、誰でもアカウントの所有権を主張できるため、ここでのアカウントの存在が正式であると見なすべきではありません。ただし、[XRP Ledgerの当該アカウントの`Domain`フィールド](protocol/transactions/types/accountset.md#domain)が、この`xrp-ledger.toml`ファイルの提供元のドメインとも一致している場合は除きます。詳細は、[アカウントの検証](#アカウント検証)を確認してください。 ### 責任者 @@ -223,7 +223,7 @@ XRP Ledgerで資産、トークン、または通貨を発行する場合は、` | フィールド | 型 | 説明 | |:--------|:-------|:------------------------------------------------------| -| `code` | 文字列 | XRP Ledgerでのこの通貨の(大文字と小文字を区別する)ティッカーシンボル。例えば、3桁のコード、40文字の16進コード、またはカスタム形式(XRP Ledgerで非標準コードの表記を把握しているクライアント用)があります。XRP Ledgerの通貨コードフォーマットの詳細は、[通貨コードリファレンス](currency-formats.html#通貨コード)を参照してください。 | +| `code` | 文字列 | XRP Ledgerでのこの通貨の(大文字と小文字を区別する)ティッカーシンボル。例えば、3桁のコード、40文字の16進コード、またはカスタム形式(XRP Ledgerで非標準コードの表記を把握しているクライアント用)があります。XRP Ledgerの通貨コードフォーマットの詳細は、[通貨コードリファレンス](protocol/data-types/currency-formats.md#通貨コード)を参照してください。 | | `display_decimals` | 数値 | クライアントアプリケーションがこの通貨の金額を表示するために使用する十進数。 | | `issuer` | 文字列 | この通貨を発行するXRP Ledgerアカウントのアドレス。XRP Ledgerのbase58形式でエンコードされます(通常、先頭は`r`)。また、このアドレスは`[[ACCOUNTS]]`リストに表示する必要があります。(留意事項: ここにアドレスが存在することは、それ自体では権限を持ちません。詳細は、[アカウントの検証](#アカウント検証)を参照してください。) | | `network` | 文字列 | この通貨を発行するネットワークチェーン。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。省略された場合、クライアントは通貨が本番環境のXRP Ledgerで発行されていると想定する必要があります。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | @@ -273,7 +273,7 @@ location /.well-known/xrp-ledger.toml { ## ドメイン検証 -`xrp-ledger.toml`ファイルの用途のひとつは、同じエンティティが特定のドメインを運用し、かつバリデータの公開鍵によって識別される特定のバリデータも運用することを検証することです。ドメインとバリデータが同じエンティティによって所有されていることを検証することで、バリデータオペレーターとしてのIDを確実に保証できます。また、これは信頼できるバリデータになるための推奨手順でもあります。(他の推奨事項については、[優れたバリデータの特徴の理解](run-rippled-as-a-validator.html#1-優れたバリデータの特徴の理解)を参照してください。) +`xrp-ledger.toml`ファイルの用途のひとつは、同じエンティティが特定のドメインを運用し、かつバリデータの公開鍵によって識別される特定のバリデータも運用することを検証することです。ドメインとバリデータが同じエンティティによって所有されていることを検証することで、バリデータオペレーターとしてのIDを確実に保証できます。また、これは信頼できるバリデータになるための推奨手順でもあります。(他の推奨事項については、[優れたバリデータの特徴の理解](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#1-優れたバリデータの特徴の理解)を参照してください。) ドメイン検証では、ドメインオペレーターとバリデータの間に双方向リンクを確立する必要があります。 @@ -307,7 +307,7 @@ location /.well-known/xrp-ledger.toml { 2. アドレスは、ドメイン別に所有権を主張します。 - この`xrp-ledger.toml`ファイルの提供元のドメインに一致するように、[アカウントの`Domain`フィールドを設定](accountset.html#domain)します。ドメイン値(ASCIIからデコードされた場合)は、`www.`などのすべてのサブドメインを含め、 _正確に_ 一致する必要があります。国際化ドメイン名の場合は、[RFC3492](https://tools.ietf.org/html/rfc3492)の説明に従って、`Domain`値をドメインのPunycodeに設定します。 + この`xrp-ledger.toml`ファイルの提供元のドメインに一致するように、[アカウントの`Domain`フィールドを設定](protocol/transactions/types/accountset.md#domain)します。ドメイン値(ASCIIからデコードされた場合)は、`www.`などのすべてのサブドメインを含め、 _正確に_ 一致する必要があります。国際化ドメイン名の場合は、[RFC3492](https://tools.ietf.org/html/rfc3492)の説明に従って、`Domain`値をドメインのPunycodeに設定します。 `Domain`を設定するにはトランザクションを送信する必要があるため、`Domain`値を設定する場合は必ずトランザクションを送信した時のアカウントの秘密鍵を所有している必要があります。 diff --git a/content/@i18n/ja/references/xrpljs2-migration-guide.md b/content/@i18n/ja/references/xrpljs2-migration-guide.md index e6e6d8203b..3c782f5a1d 100644 --- a/content/@i18n/ja/references/xrpljs2-migration-guide.md +++ b/content/@i18n/ja/references/xrpljs2-migration-guide.md @@ -11,7 +11,7 @@ parent: https://js.xrpl.org/ ## 差異の概略 -xrpl.js v2.0では、多くのフィールドと機能に"新しい"名前があります。より正確には、xrpl.jsは現在、[HTTP / WebSocket APIs](http-websocket-apis.html)と同じ名前を使用しています。XRP Ledgerで実行可能な"OfferCancel"のような[トランザクションタイプ](transaction-types.html)をライブラリが使用する場所では、"orderCancellation"オブジェクトのようなripple-libに特有の構造はなくなりました。ripple-lib 1.xでこれらの構造をリターンする多くのAPIメソッドはなくなりました。2.0では、WebSocket APIと同じフォーマットでリクエスト、レスポンスを行います。 +xrpl.js v2.0では、多くのフィールドと機能に"新しい"名前があります。より正確には、xrpl.jsは現在、[HTTP / WebSocket APIs](http-websocket-apis/index.md)と同じ名前を使用しています。XRP Ledgerで実行可能な"OfferCancel"のような[トランザクションタイプ](protocol/transactions/types/index.md)をライブラリが使用する場所では、"orderCancellation"オブジェクトのようなripple-libに特有の構造はなくなりました。ripple-lib 1.xでこれらの構造をリターンする多くのAPIメソッドはなくなりました。2.0では、WebSocket APIと同じフォーマットでリクエスト、レスポンスを行います。 ripple-lib 1.xからの包括的な`RippleAPI`クラスもなくなりました。xrpl.js 2.xでは、ネットワーク運用のための`Client`クラスがあり、その他全ての運用は厳格にオフラインです。アドレスとキーのための新しい`Wallet`クラス、また、トップレベルの`xrpl`オブジェクトの下にその他のクラスとプロパティがあります。 ## 定型文での比較 @@ -53,11 +53,11 @@ const xrpl = require("xrpl"); ## バリデーション結果 -デフォルトでは、ripple-lib 1.xにおけるほとんどのメソッドは、[コンセンサスプロセス](consensus.html)によって検証された最終結果をリターンするのみでした。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サーバーのデフォルト設定では、検証済みデータだけはなく未検証のデータを含むことがあります。 -[分散型取引所](decentralized-exchange.html)の状態を調べる時のように、完了見込みの多数のトランザクション結果が保留中であるため、現時点のオープンレジャーを使用したい場合があります。また、完了したトランザクション結果を取り込んだ検証済みのレジャーを使用したい場合もあります。 +[分散型取引所](../concepts/tokens/decentralized-exchange/index.md)の状態を調べる時のように、完了見込みの多数のトランザクション結果が保留中であるため、現時点のオープンレジャーを使用したい場合があります。また、完了したトランザクション結果を取り込んだ検証済みのレジャーを使用したい場合もあります。 -xrpl.js 2.0が`Client.request()`を使用してAPIリクエストをする際、明確に[使用するレジャー番号を指定する](basic-data-types.html#specifying-ledgers)必要があります。例えば、最新の_検証済みレジャー_を使用してトラストラインを調べるためには: +xrpl.js 2.0が`Client.request()`を使用してAPIリクエストをする際、明確に[使用するレジャー番号を指定する](protocol/data-types/basic-data-types.md#specifying-ledgers)必要があります。例えば、最新の_検証済みレジャー_を使用してトラストラインを調べるためには: **ripple-lib 1.x:** @@ -82,7 +82,7 @@ console.log(trustlines.result) xrpl.jsには、トランザクションの署名および送信のための、また、XRP Ledgerブロックチェーンのトランザクション最終結果の確認を待機するための特有の補助機能があります: -- トランザクション送信および[最終結果](finality-of-results.html)の待機のために`submitAndWait()`を使用します。トランザクションが検証された場合、これは[txメソッド][]レスポンスにリゾルブし、そうでない場合、例外処理(exception)となります。例外処理(exception)は、トランザクションが検証されなかったことを保証しません。例えば、サーバーに[より大きなギャップ](reliable-transaction-submission.html#ledger-gaps)がある場合、トランザクションは、そのギャップの中で検証される可能性があります。 +- トランザクション送信および[最終結果](../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`インスタンス](#キーおよびウォレット)をパスすることによって、署名済みトランザクションをメソッドに直接パス、もしくは、送信直前にトランザクションに署名することができます。 @@ -105,7 +105,7 @@ try { ``` もしくは、トランザクション署名のためにwalletの`sign`メソッドを、送信のために`submitAndWait(tx_blob)`を使用することができます。 -停電やその他災害から復旧させる[信頼できるトランザクションの送信](reliable-transaction-submission.html)のビルドに便利です。(ライブラリは単独でディザスタリカバリに対処しません。) +停電やその他災害から復旧させる[信頼できるトランザクションの送信](../concepts/transactions/reliable-transaction-submission.md)のビルドに便利です。(ライブラリは単独でディザスタリカバリに対処しません。) ### LastLedgerSequenceのコントロール @@ -140,7 +140,7 @@ const prepared = await client.autofill({ ## キーおよびウォレット -xrpl.js 2.0は、[暗号鍵](cryptographic-keys.html)の管理およびトランザクションの署名のために、新しい[`Wallet`クラス](https://js.xrpl.org/classes/Wallet.html)を採用します。 +xrpl.js 2.0は、[暗号鍵](../concepts/accounts/cryptographic-keys.md)の管理およびトランザクションの署名のために、新しい[`Wallet`クラス](https://js.xrpl.org/classes/Wallet.html)を採用します。 これは、ripple-lib 1.xにおいてシードや秘密鍵を取得していた機能に代わるもので、多様なアドレス符号化やタスク生成も処理します。 ### キーの生成 @@ -213,7 +213,7 @@ const signed = wallet.sign(tx_json) レジャークローズイベントにサブスクリプションするには、`Client.(method)`を使用し、`"streams": ["ledger"]`で[subscribeメソッド][]をコールします。イベントハンドラを追加するには、`Client.on(event_type, callback)`を使用します。これらのコールは任意の順で実行可能です。 -1.xからのRippleAPI特有の`ledger`イベントタイプは削除され、代わりに、`ledgerClosed`イベントを使用します。これらのイベントメッセージは同じデータを含んでいますが、フォーマットはWebSocket APIの[レジャーストリーム](subscribe.html#レジャーストリーム)メッセージに対応しています。 +1.xからのRippleAPI特有の`ledger`イベントタイプは削除され、代わりに、`ledgerClosed`イベントを使用します。これらのイベントメッセージは同じデータを含んでいますが、フォーマットはWebSocket APIの[レジャーストリーム](http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#レジャーストリーム)メッセージに対応しています。 例: @@ -255,7 +255,7 @@ ripple-lib 1.xでは、全てのメソッドとプロパティは、`RippleAPI` | RippleAPIインスタンスメソッド/プロパティ | xrpl.jsメソッド/プロパティ | 注記 | |-------------------|----------------|---| | `new ripple.RippleAPI({server: url})` | [`new xrpl.Client(url)`](https://js.xrpl.org/classes/Client.html#constructor) | 複数のサーバに接続するには`xrpl.BroadcastClient([url1, url2, ..])` を使用してください。 | -| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) |
  • WebSocket API との一貫性を保つために `command` フィールドを `options` オブジェクトに移動しました。
  • 1.x では、このメソッドの戻り値 (Promise がリゾルブしたとき) は `result` オブジェクトのみでした。現在は、[WebSocket レスポンスのフォーマット](response-formatting.html) 全体が返されます。同様の値を得るには、戻り値の `result` フィールドを読み取ってください。 | +| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) |
    • WebSocket API との一貫性を保つために `command` フィールドを `options` オブジェクトに移動しました。
    • 1.x では、このメソッドの戻り値 (Promise がリゾルブしたとき) は `result` オブジェクトのみでした。現在は、[WebSocket レスポンスのフォーマット](http-websocket-apis/api-conventions/response-formatting.md) 全体が返されます。同様の値を得るには、戻り値の `result` フィールドを読み取ってください。 | | `hasNextPage()` | [`xrpl.hasNextPage(response)`](https://js.xrpl.org/modules.html#hasNextPage) | こちらもご覧ください。 [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) および [`Client.requestAll()`](https://js.xrpl.org/classes/Client.html#requestAll) | | `requestNextPage()` | [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) | | | `computeBinaryTransactionHash()` | [`xrpl.hashes.hashTx()`](https://js.xrpl.org/modules.html#hashes) | | @@ -280,7 +280,7 @@ ripple-lib 1.xでは、全てのメソッドとプロパティは、`RippleAPI` | `getSettings()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_info メソッド][] を呼び出してください。個々のフラグ設定のブール値を取得するには、 `Flags` フィールドで `xrpl.parseAccountRootFlags()` を使用します。**警告:** `getSettings()`とは異なり、`account_info` は [検証されていない最終結果](#バリデーション結果)を返すことがあります。 | | `getAccountInfo(address, options)` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_info メソッド][] を呼び出してください。**警告:** `getAccountInfo()` とは異なり、`account_info` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | | `getAccountObjects(address, options)` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_objects メソッド][] を呼び出してください。**警告:** `getAccountObjects()` とは異なり、`account_objects` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | -| `getPaymentChannel()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [ledger_entry method](ledger_entry.html#get-paychannel-object) を呼び出してください。**警告:** `getPaymentChannel()`とは異なり、`ledger_entry` は [検証されていない最終結果](#バリデーション結果)を返す可能性があります。| +| `getPaymentChannel()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [ledger_entry method](http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md#get-paychannel-object) を呼び出してください。**警告:** `getPaymentChannel()`とは異なり、`ledger_entry` は [検証されていない最終結果](#バリデーション結果)を返す可能性があります。| | `getLedger()` | (削除済み - 注記カラムを参照) | `Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って、正確に [ledger メソッド][] を呼び出してください。**渓谷:** `getLedger()`とは異なり、`ledger` は [検証されていない最終的なレジャー](#バリデーション結果)を返すことがあります。 | | `parseAccountFlags()` | [`xrpl.parseAccountRootFlags()`](https://js.xrpl.org/modules.html#parseAccountRootFlags) | 現在は、モジュールの静的メソッドです。 | | `prepareTransaction()` | [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) | 詳しくは、[トランザクション送信](#トランザクションの送信)を参照してください。 | @@ -332,8 +332,4 @@ ripple-lib 1.xでは、全てのメソッドとプロパティは、`RippleAPI` | `.on("connected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | | `.on("disconnected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/resources/contribute-code/contribute-code.md b/content/@i18n/ja/resources/contribute-code/contribute-code.md index 6ed2e97919..ce40dcc00e 100644 --- a/content/@i18n/ja/resources/contribute-code/contribute-code.md +++ b/content/@i18n/ja/resources/contribute-code/contribute-code.md @@ -11,7 +11,7 @@ XRP Ledgerを動かすソフトウェアはオープンソースです。誰で # コアサーバのソースコード -XRP Ledgerを動かすソフトウェアはオープンソースです。コミュニティが参加することで、より良いものが生まれます。[ドキュメント](docs.html)内の"[Source]"リンクから関連するソースコードに直接ジャンプしたり、GitHubでソースコードを閲覧することができます: +XRP Ledgerを動かすソフトウェアはオープンソースです。コミュニティが参加することで、より良いものが生まれます。[ドキュメント](/docs/)内の"[Source]"リンクから関連するソースコードに直接ジャンプしたり、GitHubでソースコードを閲覧することができます: | XRP Ledger ソースコード | | |:-----------------------|:----------------------------------------------------| @@ -85,10 +85,10 @@ XLSドラフトを作成した後、その変更にAmendmentが必要かどう ## コードのフローチャート -![コードのフローチャート](img/Contribute Code Flowchart.png) +![コードのフローチャート](/img/Contribute Code Flowchart.png) ## 関連項目 - **コンセプト:** - - [Amendment](amendments.html) + - [Amendment](../../concepts/networks-and-servers/amendments.md) diff --git a/content/@i18n/ja/resources/contribute-code/create-custom-transactors.md b/content/@i18n/ja/resources/contribute-code/create-custom-transactors.md index 9070d005a4..2583f246fc 100644 --- a/content/@i18n/ja/resources/contribute-code/create-custom-transactors.md +++ b/content/@i18n/ja/resources/contribute-code/create-custom-transactors.md @@ -8,7 +8,7 @@ labels: --- # カスタムトランザクタの作成 -_トランザクタ_ はトランザクションを処理し、XRP Ledgerを変更するコードです。カスタムトランザクタを作成することで、`rippled`に新しい機能を追加することができます。このチュートリアルではトランザクタのコーディングについて説明しますが、それをXRPLに追加するにはAmendmentプロセスを経る必要があります。 [XRP Ledgerのコードへの貢献](contribute-code-flow.html)をご覧ください。 +_トランザクタ_ はトランザクションを処理し、XRP Ledgerを変更するコードです。カスタムトランザクタを作成することで、`rippled`に新しい機能を追加することができます。このチュートリアルではトランザクタのコーディングについて説明しますが、それをXRPLに追加するにはAmendmentプロセスを経る必要があります。 [XRP Ledgerのコードへの貢献](contribute-code.md)をご覧ください。 トランザクタは 基本的な処理順序に則って処理されます。 @@ -69,8 +69,10 @@ public: - `PreflightContext`はレジャーのビューを持っていません。 - レジャーやトランザクションからフィールドを取得するには、次のようにブラケット記法を使用します。 - auto const curExpiration = (*sle*)[~sfExpiration]; - (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; + ``` + auto const curExpiration = (*sle*)[~sfExpiration]; + (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; + ``` **注記:** `~`記号は optional型を返します。 @@ -78,7 +80,7 @@ public: - [`LedgerFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp) - [`TxFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp) --` rippled` はトランザクションの結果を結果コードで表します。[トランザクションの結果](transaction-results.html)をご覧ください。 +-` rippled` はトランザクションの結果を結果コードで表します。[トランザクションの結果](../../references/protocol/transactions/transaction-results/transaction-results.md)をご覧ください。 ```c++ CreateCheck::preflight(PreflightContext const& ctx) @@ -319,7 +321,7 @@ CreateCheck::doApply() ### `calculateBaseFee` -ほとんどのトランザクションはデフォルトの[Referenceトランザクションコスト](transaction-cost.html)をそのまま引き継ぎます。しかし、トランザクションで通常以外のトランザクションコストを定義する必要がある場合、トランザクションの`calculateBaseFee`メソッドをカスタムメソッドに置き換えることができます。 +ほとんどのトランザクションはデフォルトの[Referenceトランザクションコスト](../../concepts/transactions/transaction-cost.md)をそのまま引き継ぎます。しかし、トランザクションで通常以外のトランザクションコストを定義する必要がある場合、トランザクションの`calculateBaseFee`メソッドをカスタムメソッドに置き換えることができます。 次の例では、`EscrowFinish`ランザクションが条件付きエスクローに対して、フルフィルメントの大きさに応じて追加コストを請求する方法を示しています。 @@ -353,7 +355,7 @@ EscrowFinish::calculateBaseFee(ReadView const& view, STTx const& tx) - 複数のシーケンス番号を消費するチケット。 - 設定されたフラグやフィールドによって、正常またはブロッカーとなるトランザクション。 -**注記:** `TxConsequences`は[トランザクションキュー](transaction-queue.html)にのみ影響します。トランザクションがレジャーに適用されたときに手数料を請求する可能性が高い場合、それはピアに送信されます。手数料を請求する可能性がない場合、またはそれが判断できない場合は、送信されません。 +**注記:** `TxConsequences`は[トランザクションキュー](../../concepts/transactions/transaction-queue.md)にのみ影響します。トランザクションがレジャーに適用されたときに手数料を請求する可能性が高い場合、それはピアに送信されます。手数料を請求する可能性がない場合、またはそれが判断できない場合は、送信されません。 ```c++ @@ -386,4 +388,4 @@ SetAccount::makeTxConsequences(PreflightContext const& ctx) ## 次のステップ -新しいトランザクタでサーバを再コンパイルし、[スタンドアロンモード](use-stand-alone-mode.html)でテストしてください。もしAmendmentの後ろにトランザクタをコーディングした場合、設定ファイルを使ってその機能を[強制的に有効にする](test-amendments.html)ことができます。 +新しいトランザクタでサーバを再コンパイルし、[スタンドアロンモード](../../infrastructure/testing-and-auditing/index.md)でテストしてください。もしAmendmentの後ろにトランザクタをコーディングした場合、設定ファイルを使ってその機能を[強制的に有効にする](../../infrastructure/testing-and-auditing/test-amendments.md)ことができます。 diff --git a/content/@i18n/ja/resources/contribute-documentation/creating-diagrams.md b/content/@i18n/ja/resources/contribute-documentation/creating-diagrams.md index 627296b916..841a6ca52e 100644 --- a/content/@i18n/ja/resources/contribute-documentation/creating-diagrams.md +++ b/content/@i18n/ja/resources/contribute-documentation/creating-diagrams.md @@ -7,21 +7,23 @@ blurb: ライトモードとダークモードの設定で適切に動作する このサイトには、SVGの図をライト・ダークモード用に自動的に再カラーリングするコードが含まれています。これは単に画像を反転させるだけではありません。再カラーリングは(ボトムライトに見えないように)グラデーションを同じ方向に保ち、色をその逆ではなくテーマに合った同等なものに置き換えます。例えば、"Ripple blue"は、その逆のオレンジではなく、XRPLグリーンに再カラーリングされます。 -![色の反転とテーマ対応再カラーリングの比較](img/theme-aware-recolor.png) +![色の反転とテーマ対応再カラーリングの比較](/img/theme-aware-recolor.png) テーマを意識した再カラーリングでは、図のSVG形式の単一のソースファイルを使用し、CSSを使用して現在のテーマ(明暗)に合わせて再カラーリングされた図を生成します。ユーザがテーマを変更すると、図は即座にそれに合わせて変更されます。 テーマに対応した図をドキュメントに含めるには、以下のような構文で`include_svg`フィルタを使用します。 ```jinja -{{ include_svg("img/anatomy-of-a-ledger-complete.svg", "図1:XRP Ledgerの要素") }} +[{% inline-svg file="/img/anatomy-of-a-ledger-complete.svg" /%}](/img/anatomy-of-a-ledger-complete.svg "図1:XRP Ledgerの要素") ``` この構文の前後は空行にしてください。該当のSVGファイルは、リポジトリのトップレベルにある[`img/`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/img)フォルダか、そのサブフォルダにあるはずです。2番目の引数は _表題_ で、ユーザが図の上にマウスを置いたときに表示されます。 作成されたSVGファイルはMarkdownファイルに直接挿入されます。1点制限事項として、箇条書きリストやテーブルのような他のMarkdown構造の中では使用することはできません。 -> **注記:** フィルタのソースコードは[`tool/filter_include_svg.py`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/filter_include_svg.py)です。これは`lxml`がサイトを構築するための依存関係の一つである理由でもあります。 +{% admonition type="info" name="注記" %} +フィルタのソースコードは[`tool/filter_include_svg.py`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/filter_include_svg.py)です。これは`lxml`がサイトを構築するための依存関係の一つである理由でもあります。 +{% /admonition %} ## Making Diagrams diff --git a/content/@i18n/ja/resources/contribute-documentation/documentation-translations.md b/content/@i18n/ja/resources/contribute-documentation/documentation-translations.md index 7d5b610f2f..3ba9d12b57 100644 --- a/content/@i18n/ja/resources/contribute-documentation/documentation-translations.md +++ b/content/@i18n/ja/resources/contribute-documentation/documentation-translations.md @@ -69,7 +69,7 @@ languages: ## 始めるにあたって -XRP Ledger Dev Portalをあなたの母国語に翻訳したい場合は、まず["What is the XRP Ledger?" file]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/concepts/introduction/what-is-the-xrp-ledger.md)から始めてください。 +XRP Ledger Dev Portalをあなたの母国語に翻訳したい場合は、まず{% repo-link path="content/concepts/introduction/what-is-the-xrp-ledger.md" %}"What is the XRP Ledger?" file{% /repo-link %}から始めてください。 このファイルを`xrp-ledger-overview.{言語コード}.md`として保存します。ここで`{言語コード}`は[IETF BCP47](https://tools.ietf.org/html/bcp47)の言語コードです。(例えば、スペイン語は"es"、日本語は"ja"、簡体字中国語は"zh-CN"、台湾で使われている繁体字中国語は"zh-TW"などです)。そして、あなたのファイルをこのリポジトリに追加する[プルリクエスト](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)を作成してください。リポジトリメンテナの誰かが、サイトに言語を追加するために必要なその他の設定を手伝ってくれるでしょう。 diff --git a/content/@i18n/ja/resources/contribute-documentation/index.md b/content/@i18n/ja/resources/contribute-documentation/index.md index 5993d4b0c5..3a50a45eab 100644 --- a/content/@i18n/ja/resources/contribute-documentation/index.md +++ b/content/@i18n/ja/resources/contribute-documentation/index.md @@ -93,7 +93,8 @@ Markdownファイル自体は、以下のようなfrontmatterで始まる必要 --- html: the-rippled-server.html parent: concepts.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: rippled is the core peer-to-peer server that manages the XRP Ledger. This section covers concepts that help you learn the "what" and "why" behind fundamental aspects of the rippled server. --- ``` @@ -164,3 +165,6 @@ blurb: rippled is the core peer-to-peer server that manages the XRP Ledger. This | `filters` | Array of Strings | このページで使用する追加フィルタのリストです。[フィルタ](https://github.com/ripple/dactyl/blob/master/README.md#filters)はPythonスクリプトで、ページ内容の事前または事後の追加処理を行います。 | | `canonical_url` | String | クエリパラメータを受け取るページの正規URLを提供します。検索エンジンやその他のツールは、ページにリンクする際にこれを使用する可能性があります。 | | `embed_xrpl_js` | Boolean | 最新版の[xrpl.js](https://js.xrpl.org)をこのページで読み込むには`true`を使用してください。 | + + +{% child-pages /%} diff --git a/content/@i18n/ja/resources/contribute-documentation/tutorial-structure.md b/content/@i18n/ja/resources/contribute-documentation/tutorial-structure.md index a63e3dbde8..34901fee59 100644 --- a/content/@i18n/ja/resources/contribute-documentation/tutorial-structure.md +++ b/content/@i18n/ja/resources/contribute-documentation/tutorial-structure.md @@ -17,19 +17,19 @@ blurb: 一般的なチュートリアルの構成要素の要約です。 ## 説明 -![説明](img/tut-struct1.png) +![説明](/img/tut-struct1.png) そのサンプルが何を示しているかを記載してください。可能であれば、各サンプルには関連する特定のタスクを達成するための手順を記述してください。(NFTの売却オファーの作成、売却オファーの受け入れ、売却オファーの削除など)。チュートリアルで説明されている内容を理解するのに十分なコンセプトに関する情報を記載し、必要であれば、追加情報へのリンクも記載します。 ## 前提条件 -![前提条件](img/tut-struct2.png) +![前提条件](/img/tut-struct2.png) 必要なソフトウェアと、チュートリアルを実行するために必要なすべてのサンプルコードへのリンクを提供します。必要であれば、サードパーティのツールの使い方を簡単に説明しますが、ユーザが自由に深く掘り下げることができるように、ソースとなるウェブサイトへのリンクを提供します。 ## 使用例 -![使用例](img/tut-struct3.png) +![使用例](/img/tut-struct3.png) チュートリアルのアプリケーションの完成した動作例を提供することから始めましょう。これは、ソフトウェアを使って問題を解決するチャンスです。   @@ -39,16 +39,16 @@ blurb: 一般的なチュートリアルの構成要素の要約です。 ## コード解説 -![コード解説](img/tut-struct4.png) +![コード解説](/img/tut-struct4.png) コードを1ブロックずつ見ていきましょう。既に説明したトピックを繰り返さないでください。サンプルコードには、HTML構文のような基本的な部分のプログラミング方法については、その実装に独自なものがない限り、詳細な説明はしないでください。 強調すべき重要なことは、XRPLとのやりとりはすべてトランザクションかリクエストであり、すべてのトランザクションとリクエストは本質的に同じであるということです。私たちが提供するサンプルコードは、トランザクションやリクエストを準備する方法と、返された結果を処理する方法を示しています。1つのトランザクションやリクエストをどのように送信しどのようなレスポンスを返すかを知ることは、他のトランザクションやリクエストの処理について非常に良いヒントとなります。 -(技術的には、リクエストに似た第3のカテゴリーがあります。[Subscriptionメソッド](subscription-methods.html)をご覧ください)。 +(技術的には、リクエストに似た第3のカテゴリーがあります。[Subscriptionメソッド](../../references/http-websocket-apis/public-api-methods/subscription-methods/index.md)をご覧ください)。 ## 関連項目 -![関連項目](img/tut-struct5.png) +![関連項目](/img/tut-struct5.png) チュートリアルの最後には、追加の資料、概念的な情報、学習のにおいて有益な次のステップとなるチュートリアルへのリンクを提供します。 diff --git a/content/@i18n/ja/resources/index.md b/content/@i18n/ja/resources/index.md index d7119c09b1..7264009c88 100644 --- a/content/@i18n/ja/resources/index.md +++ b/content/@i18n/ja/resources/index.md @@ -1,8 +1,12 @@ --- html: resources.html parent: index.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # リソース -XRP Ledgerの理解や開発ためのリソース。Other resources to help understand the XRPL and develop on it. \ No newline at end of file +XRP Ledgerの理解や開発ためのリソース。Other resources to help understand the XRPL and develop on it. + + +{% child-pages /%} diff --git a/content/@i18n/ja/resources/known-amendments.md b/content/@i18n/ja/resources/known-amendments.md index c8e9476f0d..ee570ca52f 100644 --- a/content/@i18n/ja/resources/known-amendments.md +++ b/content/@i18n/ja/resources/known-amendments.md @@ -16,92 +16,92 @@ labels: | 名前 | 登場 | ステータス | |:----------------------------------|:-----------|:------------------------------------| -| [DID][] | v2.0.0 | [投票中: 2024-01-09](https://xrpl.org/blog/2024/rippled-2.0.0.html "BADGE_80d0e0") | -| [XChainBridge][] | v2.0.0 | [投票中: 2024-01-09](https://xrpl.org/blog/2024/rippled-2.0.0.html "BADGE_80d0e0") | -| [AMM][] | v1.12.0 | [投票中: 2023-09-06](https://xrpl.org/blog/2023/rippled-1.12.0.html "BADGE_80d0e0") | -| [Clawback][] | v1.12.0 | [投票中: 2023-09-06](https://xrpl.org/blog/2023/rippled-1.12.0.html "BADGE_80d0e0") | -| [XRPFees][] | v1.10.0 | [投票中: 2023-03-14](https://xrpl.org/blog/2023/rippled-1.10.0.html "BADGE_80d0e0") | -| [fixReducedOffersV1][] | v1.12.0 | [有効: 2023-11-24](https://livenet.xrpl.org/transactions/87723D9D01AFAD8E55C944D7D1598969A8FBD852FCACAE361A40CBF5D4CB3BB1 "BADGE_GREEN") | -| [fixNFTokenRemint][] | v1.11.0 | [有効: 2023-11-27](https://livenet.xrpl.org/transactions/CA4562711E4679FE9317DD767871E90A404C7A8B84FAFD35EC2CF0231F1F6DAF "BADGE_GREEN") | -| [DisallowIncoming][] | v1.10.0 | [有効: 2023-08-21](https://livenet.xrpl.org/transactions/8747EF67D8CC1CA72A88817FBDF454507C3D9E8F0702D8E2B614958AE27A1D4E "BADGE_GREEN") | -| [fixNonFungibleTokensV1_2][] | v1.10.0 | [有効: 2023-08-21](https://livenet.xrpl.org/transactions/3AB0892CAB29F049B9D9E5D522701FD01469D0B97080626F8DD4B489D0B8784E "BADGE_GREEN") | -| [fixTrustLinesToSelf][] | v1.10.0 | [有効: 2023-08-21](https://livenet.xrpl.org/transactions/4F4C05142CA1DE257CD86513086F0C99FAF06D80932377C6B6C02B3D09623A43 "BADGE_GREEN") | -| [fixUniversalNumber][] | v1.10.0 | [有効: 2023-08-21](https://livenet.xrpl.org/transactions/EFE82B7155CE5B766AF343D98DAE6662C2713C99E760D610370D02338881B2F3 "BADGE_GREEN") | -| [ImmediateOfferKilled][] | v1.10.0 | [有効: 2023-08-21](https://livenet.xrpl.org/transactions/65B8A4068B20696A866A07E5668B2AEB0451564E13B79421356FB962EC9A536B "BADGE_GREEN") | -| [CheckCashMakesTrustLine][] | v1.8.0 | [有効: 2022/01/23](https://livenet.xrpl.org/transactions/4C8546305583F72E056120B136EB251E7F45E8DFAAE65FDA33B22181A9CA4557 "BADGE_GREEN") | -| [NonFungibleTokensV1_1][] | v1.9.2 | [有効: 2022/10/31](https://livenet.xrpl.org/transactions/251242639A640CD9287A14A476E7F7C20BA009FDE410570926BAAF29AA05CEDE "BADGE_GREEN") | -| [fixRemoveNFTokenAutoTrustLine][] | v1.9.4 | [有効: 2022/10/27](https://livenet.xrpl.org/transactions/2A67DB4AC65D688281B76334C4B52038FD56931694A6DD873B5CCD9B970AD57C "BADGE_GREEN") | -| [ExpandedSignerList][] | v1.9.1 | [有効: 2022/10/13](https://livenet.xrpl.org/transactions/802E2446547BB86397217E32A78CB9857F21B048B91C81BCC6EF837BE9C72C87 "BADGE_GREEN") | -| [NegativeUNL][] | v1.7.3 | [有効: 2021/11/21](https://livenet.xrpl.org/transactions/1500FADB73E7148191216C53040990E829C7110788B26E7F3246CB3660769EBA "BADGE_GREEN") | -| [fixRmSmallIncreasedQOffers][] | v1.7.2 | [有効: 2021/11/18](https://livenet.xrpl.org/transactions/1F37BA0502576DD7B5464F47641FA95DEB55735EC2663269DFD47810505478E7 "BADGE_GREEN") | -| [TicketBatch][] | v1.7.0 | [有効: 2021/11/18](https://livenet.xrpl.org/transactions/111B32EDADDE916206E7315FBEE2DA1521B229F207F65DD314829F13C8D9CA36 "BADGE_GREEN") | -| [fixSTAmountCanonicalize][] | v1.7.0 | [有効: 2021/11/11](https://livenet.xrpl.org/transactions/AFF17321A012C756B64FCC3BA0FDF79109F28E244D838A28D5AE8A0384C7C532 "BADGE_GREEN") | -| [FlowSortStrands][] | v1.7.0 | [有効: 2021/11/11](https://livenet.xrpl.org/transactions/1C3D3BD2AFDAF326EBFEA54579A89B024856609DB4310F7140086AAB262D09A1 "BADGE_GREEN") | -| [fix1781][] | v1.6.0 | [有効: 2021/04/08](https://livenet.xrpl.org/transactions/DA59F10201D651B544F65896330AFACA8CA4198904265AD279D56781F655FAFB "BADGE_GREEN") | -| [fixAmendmentMajorityCalc][] | v1.6.0 | [有効: 2021/04/08](https://livenet.xrpl.org/transactions/5B3ACE6CAC9C56D2008410F1B0881A0A4A8866FB99D2C2B2261C86C760DC95EF "BADGE_GREEN") | -| [HardenedValidations][] | v1.6.0 | [有効: 2021/04/08](https://livenet.xrpl.org/transactions/3A45DCF055B68DCBBFE034240F9359FB22E8A64B1BF7113304535BF5BB8144BF "BADGE_GREEN") | -| [FlowCross][] | v0.70.0 | [有効: 2020/08/04](https://livenet.xrpl.org/transactions/44C4B040448D89B6C5A5DEC97C17FEDC2E590BA094BC7DB63B7FDC888B9ED78F "BADGE_GREEN") | -| [fixQualityUpperBound][] | v1.5.0 | [有効: 2020/07/09](https://livenet.xrpl.org/transactions/5F8E9E9B175BB7B95F529BEFE3C84253E78DAF6076078EC450A480C861F6889E "BADGE_GREEN") | -| [RequireFullyCanonicalSig][] | v1.5.0 | [有効: 2020/07/03](https://livenet.xrpl.org/transactions/94D8B158E948148B949CC3C35DD5DC4791D799E1FD5D3CE0E570160EDEF947D3 "BADGE_GREEN") | -| [Checks][] | v0.90.0 | [有効: 2020/06/18](https://livenet.xrpl.org/transactions/D88F2DCDFB10023F9F6CBA8DF34C18E321D655CAC8FDB962387A5DB1540242A6 "BADGE_GREEN") | -| [DeletableAccounts][] | v1.4.0 | [有効: 2020/05/08](https://livenet.xrpl.org/transactions/47B90519D31E0CB376B5FEE5D9359FA65EEEB2289F1952F2A3EB71D623B945DE "BADGE_GREEN") | -| [fixCheckThreading][] | v1.4.0 | [有効: 2020/05/01](https://livenet.xrpl.org/transactions/74AFEA8C17D25CA883D40F998757CA3B0DB1AC86794335BAA25FF20E00C2C30A "BADGE_GREEN") | -| [fixPayChanRecipientOwnerDir][] | v1.4.0 | [有効: 2020/05/01](https://livenet.xrpl.org/transactions/D2F8E457D08ACB185CDE3BB9BB1989A9052344678566785BACFB9DFDBDEDCF09 "BADGE_GREEN") | -| [fixMasterKeyAsRegularKey][] | v1.3.1 | [有効: 2019/10/02](https://livenet.xrpl.org/transactions/61096F8B5AFDD8F5BAF7FC7221BA4D1849C4E21B1BA79733E44B12FC8DA6EA20 "BADGE_GREEN") | -| [MultiSignReserve][] | v1.2.0 | [有効: 2019/04/17](https://livenet.xrpl.org/transactions/C421E1D08EFD78E6B8D06B085F52A34A681D0B51AE62A018527E1B8F54C108FB "BADGE_GREEN") | -| [fixTakerDryOfferRemoval][] | v1.2.0 | [有効: 2019/04/02](https://livenet.xrpl.org/transactions/C42335E95F1BD2009A2C090EA57BD7FB026AD285B4B85BE15F669BA4F70D11AF "BADGE_GREEN") | -| [fix1578][] | v1.2.0 | [有効: 2019/03/23](https://livenet.xrpl.org/transactions/7A80C87F59BCE6973CBDCA91E4DBDB0FC5461D3599A8BC8EAD02FA590A50005D "BADGE_GREEN") | -| [DepositPreauth][] | v1.1.0 | [有効: 2018/10/09](https://livenet.xrpl.org/transactions/AD27403CB840AE67CADDB084BC54249D7BD1B403885819B39CCF723DC671F927 "BADGE_GREEN") | -| [fix1515][] | v1.1.0 | [有効: 2018/10/09](https://livenet.xrpl.org/transactions/6DF60D9EC8AF3C39B173840F4D1C57F8A8AB51E7C6571483B4A5F1AA0A9AAEBF "BADGE_GREEN") | -| [fix1543][] | v1.0.0 | [有効: 2018/06/21](https://livenet.xrpl.org/transactions/EA6054C9D256657014052F1447216CEA75FFDB1C9342D45EB0F9E372C0F879E6 "BADGE_GREEN") | -| [fix1623][] | v1.0.0 | [有効: 2018/06/20](https://livenet.xrpl.org/transactions/4D218D86A2B33E29F17AA9C25D8DFFEE5D2559F75F7C0B1D016D3F2C2220D3EB "BADGE_GREEN") | -| [fix1571][] | v1.0.0 | [有効: 2018/06/19](https://livenet.xrpl.org/transactions/920AA493E57D991414B614FB3C1D1E2F863211B48129D09BC8CB74C9813C38FC "BADGE_GREEN") | -| [DepositAuth][] | v0.90.0 | [有効: 2018/04/06](https://livenet.xrpl.org/transactions/902C51270B918B40CD23A622E18D48B4ABB86F0FF4E84D72D9E1907BF3BD4B25 "BADGE_GREEN") | -| [fix1513][] | v0.90.0 | [有効: 2018/04/06](https://livenet.xrpl.org/transactions/57FE540B8B8E2F26CE8B53D1282FEC55E605257E29F5B9EB49E15EA3989FCF6B "BADGE_GREEN") | -| [fix1201][] | v0.80.0 | [有効: 2017/11/14](https://livenet.xrpl.org/transactions/B1157116DDDDA9D9B1C4A95C029AC335E05DB052CECCC5CA90118A4D46C77C5E "BADGE_GREEN") | -| [fix1512][] | v0.80.0 | [有効: 2017/11/14](https://livenet.xrpl.org/transactions/63F69F59BEFDC1D79DBF1E4060601E05960683AA784926FB74BC55074C4F6647 "BADGE_GREEN") | -| [fix1523][] | v0.80.0 | [有効: 2017/11/14](https://livenet.xrpl.org/transactions/97FD0E35654F4B6714010D3CBBAC4038F60D64AD0292693C28A1DF4B796D8469 "BADGE_GREEN") | -| [fix1528][] | v0.80.0 | [有効: 2017/11/14](https://livenet.xrpl.org/transactions/27AEE02DA4FE22B6BB479F850FBBC873FDC7A09A8594753A91B53098D726397E "BADGE_GREEN") | -| [SortedDirectories][] | v0.80.0 | [有効: 2017/11/14](https://livenet.xrpl.org/transactions/6E2309C156EBF94D03B83D282A3914671BF9168FB26463CFECD068C63FFFAB29 "BADGE_GREEN") | -| [EnforceInvariants][] | v0.70.0 | [有効: 2017/07/07](https://livenet.xrpl.org/transactions/17593B03F7D3283966F3C0ACAF4984F26E9D884C9A202097DAED0523908E76C6 "BADGE_GREEN") | -| [fix1373][] | v0.70.0 | [有効: 2017/07/07](https://livenet.xrpl.org/transactions/7EBA3852D111EA19D03469F6870FAAEBF84C64F1B9BAC13B041DDD26E28CA399 "BADGE_GREEN") | -| [Escrow][] | v0.60.0 | [有効: 2017/03/31](https://livenet.xrpl.org/transactions/C581E0A3F3832FFFEEB13C497658F475566BD7695B0BBA531A774E6739801515 "BADGE_GREEN") | -| [fix1368][] | v0.60.0 | [有効: 2017/03/31](https://livenet.xrpl.org/transactions/3D20DE5CD19D5966865A7D0405FAC7902A6F623659667D6CB872DF7A94B6EF3F "BADGE_GREEN") | -| [PayChan][] | v0.33.0 | [有効: 2017/03/31](https://livenet.xrpl.org/transactions/16135C0B4AB2419B89D4FB4569B8C37FF76B9EF9CE0DD99CCACB5734445AFD7E "BADGE_GREEN") | -| [TickSize][] | v0.50.0 | [有効: 2017/02/21](https://livenet.xrpl.org/transactions/A12430E470BE5C846759EAE3C442FF03374D5D73ECE5815CF4906894B769565E "BADGE_GREEN") | -| [CryptoConditions][] | v0.50.0 | [有効: 2017/01/03](https://livenet.xrpl.org/transactions/8EB00131E1C3DB35EDFF45C155D941E18C3E86BC1934FF987D2DA204F4065F15 "BADGE_GREEN") | -| [Flow][] | v0.33.0 | [有効: 2016/10/21](https://livenet.xrpl.org/transactions/C06CE3CABA3907389E4DD296C5F31C73B1548CC20BD7B83416C78CD7D4CD38FC "BADGE_GREEN") | -| [TrustSetAuth][] | v0.30.0 | [有効: 2016/07/19](https://livenet.xrpl.org/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") | -| [MultiSign][] | v0.31.0 | [有効: 2016/06/27](https://livenet.xrpl.org/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") | -| [FeeEscalation][] | v0.31.0 | [有効: 2016/05/19](https://livenet.xrpl.org/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") | +| [DID][] | v2.0.0 | {% badge href="https://xrpl.org/blog/2024/rippled-2.0.0.html" %}投票中: 2024-01-09{% /badge %} | +| [XChainBridge][] | v2.0.0 | {% badge href="https://xrpl.org/blog/2024/rippled-2.0.0.html" %}投票中: 2024-01-09{% /badge %} | +| [AMM][] | v1.12.0 | {% badge href="https://xrpl.org/blog/2023/rippled-1.12.0.html" %}投票中: 2023-09-06{% /badge %} | +| [Clawback][] | v1.12.0 | {% badge href="https://xrpl.org/blog/2023/rippled-1.12.0.html" %}投票中: 2023-09-06{% /badge %} | +| [XRPFees][] | v1.10.0 | {% badge href="https://xrpl.org/blog/2023/rippled-1.10.0.html" %}投票中: 2023-03-14{% /badge %} | +| [fixReducedOffersV1][] | v1.12.0 | {% badge href="https://livenet.xrpl.org/transactions/87723D9D01AFAD8E55C944D7D1598969A8FBD852FCACAE361A40CBF5D4CB3BB1" %}有効: 2023-11-24{% /badge %} | +| [fixNFTokenRemint][] | v1.11.0 | {% badge href="https://livenet.xrpl.org/transactions/CA4562711E4679FE9317DD767871E90A404C7A8B84FAFD35EC2CF0231F1F6DAF" %}有効: 2023-11-27{% /badge %} | +| [DisallowIncoming][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/8747EF67D8CC1CA72A88817FBDF454507C3D9E8F0702D8E2B614958AE27A1D4E" %}有効: 2023-08-21{% /badge %} | +| [fixNonFungibleTokensV1_2][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/3AB0892CAB29F049B9D9E5D522701FD01469D0B97080626F8DD4B489D0B8784E" %}有効: 2023-08-21{% /badge %} | +| [fixTrustLinesToSelf][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/4F4C05142CA1DE257CD86513086F0C99FAF06D80932377C6B6C02B3D09623A43" %}有効: 2023-08-21{% /badge %} | +| [fixUniversalNumber][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/EFE82B7155CE5B766AF343D98DAE6662C2713C99E760D610370D02338881B2F3" %}有効: 2023-08-21{% /badge %} | +| [ImmediateOfferKilled][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/65B8A4068B20696A866A07E5668B2AEB0451564E13B79421356FB962EC9A536B" %}有効: 2023-08-21{% /badge %} | +| [CheckCashMakesTrustLine][] | v1.8.0 | {% badge href="https://livenet.xrpl.org/transactions/4C8546305583F72E056120B136EB251E7F45E8DFAAE65FDA33B22181A9CA4557" %}有効: 2022/01/23{% /badge %} | +| [NonFungibleTokensV1_1][] | v1.9.2 | {% badge href="https://livenet.xrpl.org/transactions/251242639A640CD9287A14A476E7F7C20BA009FDE410570926BAAF29AA05CEDE" %}有効: 2022/10/31{% /badge %} | +| [fixRemoveNFTokenAutoTrustLine][] | v1.9.4 | {% badge href="https://livenet.xrpl.org/transactions/2A67DB4AC65D688281B76334C4B52038FD56931694A6DD873B5CCD9B970AD57C" %}有効: 2022/10/27{% /badge %} | +| [ExpandedSignerList][] | v1.9.1 | {% badge href="https://livenet.xrpl.org/transactions/802E2446547BB86397217E32A78CB9857F21B048B91C81BCC6EF837BE9C72C87" %}有効: 2022/10/13{% /badge %} | +| [NegativeUNL][] | v1.7.3 | {% badge href="https://livenet.xrpl.org/transactions/1500FADB73E7148191216C53040990E829C7110788B26E7F3246CB3660769EBA" %}有効: 2021/11/21{% /badge %} | +| [fixRmSmallIncreasedQOffers][] | v1.7.2 | {% badge href="https://livenet.xrpl.org/transactions/1F37BA0502576DD7B5464F47641FA95DEB55735EC2663269DFD47810505478E7" %}有効: 2021/11/18{% /badge %} | +| [TicketBatch][] | v1.7.0 | {% badge href="https://livenet.xrpl.org/transactions/111B32EDADDE916206E7315FBEE2DA1521B229F207F65DD314829F13C8D9CA36" %}有効: 2021/11/18{% /badge %} | +| [fixSTAmountCanonicalize][] | v1.7.0 | {% badge href="https://livenet.xrpl.org/transactions/AFF17321A012C756B64FCC3BA0FDF79109F28E244D838A28D5AE8A0384C7C532" %}有効: 2021/11/11{% /badge %} | +| [FlowSortStrands][] | v1.7.0 | {% badge href="https://livenet.xrpl.org/transactions/1C3D3BD2AFDAF326EBFEA54579A89B024856609DB4310F7140086AAB262D09A1" %}有効: 2021/11/11{% /badge %} | +| [fix1781][] | v1.6.0 | {% badge href="https://livenet.xrpl.org/transactions/DA59F10201D651B544F65896330AFACA8CA4198904265AD279D56781F655FAFB" %}有効: 2021/04/08{% /badge %} | +| [fixAmendmentMajorityCalc][] | v1.6.0 | {% badge href="https://livenet.xrpl.org/transactions/5B3ACE6CAC9C56D2008410F1B0881A0A4A8866FB99D2C2B2261C86C760DC95EF" %}有効: 2021/04/08{% /badge %} | +| [HardenedValidations][] | v1.6.0 | {% badge href="https://livenet.xrpl.org/transactions/3A45DCF055B68DCBBFE034240F9359FB22E8A64B1BF7113304535BF5BB8144BF" %}有効: 2021/04/08{% /badge %} | +| [FlowCross][] | v0.70.0 | {% badge href="https://livenet.xrpl.org/transactions/44C4B040448D89B6C5A5DEC97C17FEDC2E590BA094BC7DB63B7FDC888B9ED78F" %}有効: 2020/08/04{% /badge %} | +| [fixQualityUpperBound][] | v1.5.0 | {% badge href="https://livenet.xrpl.org/transactions/5F8E9E9B175BB7B95F529BEFE3C84253E78DAF6076078EC450A480C861F6889E" %}有効: 2020/07/09{% /badge %} | +| [RequireFullyCanonicalSig][] | v1.5.0 | {% badge href="https://livenet.xrpl.org/transactions/94D8B158E948148B949CC3C35DD5DC4791D799E1FD5D3CE0E570160EDEF947D3" %}有効: 2020/07/03{% /badge %} | +| [Checks][] | v0.90.0 | {% badge href="https://livenet.xrpl.org/transactions/D88F2DCDFB10023F9F6CBA8DF34C18E321D655CAC8FDB962387A5DB1540242A6" %}有効: 2020/06/18{% /badge %} | +| [DeletableAccounts][] | v1.4.0 | {% badge href="https://livenet.xrpl.org/transactions/47B90519D31E0CB376B5FEE5D9359FA65EEEB2289F1952F2A3EB71D623B945DE" %}有効: 2020/05/08{% /badge %} | +| [fixCheckThreading][] | v1.4.0 | {% badge href="https://livenet.xrpl.org/transactions/74AFEA8C17D25CA883D40F998757CA3B0DB1AC86794335BAA25FF20E00C2C30A" %}有効: 2020/05/01{% /badge %} | +| [fixPayChanRecipientOwnerDir][] | v1.4.0 | {% badge href="https://livenet.xrpl.org/transactions/D2F8E457D08ACB185CDE3BB9BB1989A9052344678566785BACFB9DFDBDEDCF09" %}有効: 2020/05/01{% /badge %} | +| [fixMasterKeyAsRegularKey][] | v1.3.1 | {% badge href="https://livenet.xrpl.org/transactions/61096F8B5AFDD8F5BAF7FC7221BA4D1849C4E21B1BA79733E44B12FC8DA6EA20" %}有効: 2019/10/02{% /badge %} | +| [MultiSignReserve][] | v1.2.0 | {% badge href="https://livenet.xrpl.org/transactions/C421E1D08EFD78E6B8D06B085F52A34A681D0B51AE62A018527E1B8F54C108FB" %}有効: 2019/04/17{% /badge %} | +| [fixTakerDryOfferRemoval][] | v1.2.0 | {% badge href="https://livenet.xrpl.org/transactions/C42335E95F1BD2009A2C090EA57BD7FB026AD285B4B85BE15F669BA4F70D11AF" %}有効: 2019/04/02{% /badge %} | +| [fix1578][] | v1.2.0 | {% badge href="https://livenet.xrpl.org/transactions/7A80C87F59BCE6973CBDCA91E4DBDB0FC5461D3599A8BC8EAD02FA590A50005D" %}有効: 2019/03/23{% /badge %} | +| [DepositPreauth][] | v1.1.0 | {% badge href="https://livenet.xrpl.org/transactions/AD27403CB840AE67CADDB084BC54249D7BD1B403885819B39CCF723DC671F927" %}有効: 2018/10/09{% /badge %} | +| [fix1515][] | v1.1.0 | {% badge href="https://livenet.xrpl.org/transactions/6DF60D9EC8AF3C39B173840F4D1C57F8A8AB51E7C6571483B4A5F1AA0A9AAEBF" %}有効: 2018/10/09{% /badge %} | +| [fix1543][] | v1.0.0 | {% badge href="https://livenet.xrpl.org/transactions/EA6054C9D256657014052F1447216CEA75FFDB1C9342D45EB0F9E372C0F879E6" %}有効: 2018/06/21{% /badge %} | +| [fix1623][] | v1.0.0 | {% badge href="https://livenet.xrpl.org/transactions/4D218D86A2B33E29F17AA9C25D8DFFEE5D2559F75F7C0B1D016D3F2C2220D3EB" %}有効: 2018/06/20{% /badge %} | +| [fix1571][] | v1.0.0 | {% badge href="https://livenet.xrpl.org/transactions/920AA493E57D991414B614FB3C1D1E2F863211B48129D09BC8CB74C9813C38FC" %}有効: 2018/06/19{% /badge %} | +| [DepositAuth][] | v0.90.0 | {% badge href="https://livenet.xrpl.org/transactions/902C51270B918B40CD23A622E18D48B4ABB86F0FF4E84D72D9E1907BF3BD4B25" %}有効: 2018/04/06{% /badge %} | +| [fix1513][] | v0.90.0 | {% badge href="https://livenet.xrpl.org/transactions/57FE540B8B8E2F26CE8B53D1282FEC55E605257E29F5B9EB49E15EA3989FCF6B" %}有効: 2018/04/06{% /badge %} | +| [fix1201][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/B1157116DDDDA9D9B1C4A95C029AC335E05DB052CECCC5CA90118A4D46C77C5E" %}有効: 2017/11/14{% /badge %} | +| [fix1512][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/63F69F59BEFDC1D79DBF1E4060601E05960683AA784926FB74BC55074C4F6647" %}有効: 2017/11/14{% /badge %} | +| [fix1523][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/97FD0E35654F4B6714010D3CBBAC4038F60D64AD0292693C28A1DF4B796D8469" %}有効: 2017/11/14{% /badge %} | +| [fix1528][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/27AEE02DA4FE22B6BB479F850FBBC873FDC7A09A8594753A91B53098D726397E" %}有効: 2017/11/14{% /badge %} | +| [SortedDirectories][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/6E2309C156EBF94D03B83D282A3914671BF9168FB26463CFECD068C63FFFAB29" %}有効: 2017/11/14{% /badge %} | +| [EnforceInvariants][] | v0.70.0 | {% badge href="https://livenet.xrpl.org/transactions/17593B03F7D3283966F3C0ACAF4984F26E9D884C9A202097DAED0523908E76C6" %}有効: 2017/07/07{% /badge %} | +| [fix1373][] | v0.70.0 | {% badge href="https://livenet.xrpl.org/transactions/7EBA3852D111EA19D03469F6870FAAEBF84C64F1B9BAC13B041DDD26E28CA399" %}有効: 2017/07/07{% /badge %} | +| [Escrow][] | v0.60.0 | {% badge href="https://livenet.xrpl.org/transactions/C581E0A3F3832FFFEEB13C497658F475566BD7695B0BBA531A774E6739801515" %}有効: 2017/03/31{% /badge %} | +| [fix1368][] | v0.60.0 | {% badge href="https://livenet.xrpl.org/transactions/3D20DE5CD19D5966865A7D0405FAC7902A6F623659667D6CB872DF7A94B6EF3F" %}有効: 2017/03/31{% /badge %} | +| [PayChan][] | v0.33.0 | {% badge href="https://livenet.xrpl.org/transactions/16135C0B4AB2419B89D4FB4569B8C37FF76B9EF9CE0DD99CCACB5734445AFD7E" %}有効: 2017/03/31{% /badge %} | +| [TickSize][] | v0.50.0 | {% badge href="https://livenet.xrpl.org/transactions/A12430E470BE5C846759EAE3C442FF03374D5D73ECE5815CF4906894B769565E" %}有効: 2017/02/21{% /badge %} | +| [CryptoConditions][] | v0.50.0 | {% badge href="https://livenet.xrpl.org/transactions/8EB00131E1C3DB35EDFF45C155D941E18C3E86BC1934FF987D2DA204F4065F15" %}有効: 2017/01/03{% /badge %} | +| [Flow][] | v0.33.0 | {% badge href="https://livenet.xrpl.org/transactions/C06CE3CABA3907389E4DD296C5F31C73B1548CC20BD7B83416C78CD7D4CD38FC" %}有効: 2016/10/21{% /badge %} | +| [TrustSetAuth][] | v0.30.0 | {% badge href="https://livenet.xrpl.org/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF" %}有効: 2016/07/19{% /badge %} | +| [MultiSign][] | v0.31.0 | {% badge href="https://livenet.xrpl.org/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7" %}有効: 2016/06/27{% /badge %} | +| [FeeEscalation][] | v0.31.0 | {% badge href="https://livenet.xrpl.org/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3" %}有効: 2016/05/19{% /badge %} | **注記:** 多くの場合、旧バージョンのソフトウェアには不完全バージョンの修正用コードが存在します。上の表内の「導入済み」バージョンは最初の安定バージョンです。「未定」は、修正がまだ安定していないと見なされていることを示します。 ## 開発中のAmendment -以下は、現在開発中の[Amendment](amendments.html)のリストで、変更をテストするためのテストネットが利用可能です。 +以下は、現在開発中の[Amendment](../concepts/networks-and-servers/amendments.md)のリストで、変更をテストするためのテストネットが利用可能です。 | 名前 | ステータス | 追加情報 | |:----------------------------------|:------------------------------------------|:-------------------------------| -| [Hooks][] | [開発中: 未定]( "BADGE_LIGHTGREY") | [XRPL Hooks](https://hooks.xrpl.org/) | -| [OwnerPaysFee][] | [開発中: 未定]( "BADGE_LIGHTGREY") | | +| [Hooks][] | {% badge %}開発中: 未定{% /badge %} | [XRPL Hooks](https://hooks.xrpl.org/) | +| [OwnerPaysFee][] | {% badge %}開発中: 未定{% /badge %} | | -**注記:** このリストは手動で更新されています。もしあなたがAmendmentに取り組んでいて、その変更をテストするためのテストネットワークを持っているなら、このページを編集して開発中のamendmentをこのリストに追加することができます。XRP Ledgerへの貢献についての詳細は、[XRP Ledgerのコードへの貢献](contribute-code-flow.html)をご覧ください。 +**注記:** このリストは手動で更新されています。もしあなたがAmendmentに取り組んでいて、その変更をテストするためのテストネットワークを持っているなら、このページを編集して開発中のamendmentをこのリストに追加することができます。XRP Ledgerへの貢献についての詳細は、[XRP Ledgerのコードへの貢献](contribute-code/contribute-code.md)をご覧ください。 ## 撤回または廃止されたAmendment -以下は、以前のバージョンで廃止され削除された、あるいは撤回され削除のマークが付けられた、既知の[Amendment](amendments.html)の一覧です。 +以下は、以前のバージョンで廃止され削除された、あるいは撤回され削除のマークが付けられた、既知の[Amendment](../concepts/networks-and-servers/amendments.md)の一覧です。 | 名前 | 登場 | ステータス | |:----------------------------------|:-----------|:------------------------------| -| [fixNFTokenNegOffer][] | v1.9.2 | [撤回: 削除予定]( "BADGE_RED") | -| [fixNFTokenDirV1][] | v1.9.1 | [撤回: 削除予定]( "BADGE_RED") | -| [NonFungibleTokensV1][] | v1.9.0 | [撤回: 削除予定]( "BADGE_RED") | -| [CryptoConditionsSuite][] | v0.60.0 | [撤回: 削除予定]( "BADGE_RED") | -| [SHAMapV2][] | v0.32.1 | [廃止: v1.4.0で削除済み](https://xrpl.org/blog/2019/rippled-1.4.0.html "BADGE_RED") | -| [FlowV2][] | v0.32.1 | [廃止: v0.33.0で削除済み](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") | -| [SusPay][] | v0.31.0 | [廃止: v0.60.0で削除済み](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") | -| [Tickets][] | v0.30.1 | [廃止: v0.90.0で削除済み](https://xrpl.org/blog/2018/rippled-0.90.0.html "BADGE_RED") | +| [fixNFTokenNegOffer][] | v1.9.2 | {% badge %}撤回: 削除予定{% /badge %} | +| [fixNFTokenDirV1][] | v1.9.1 | {% badge %}撤回: 削除予定{% /badge %} | +| [NonFungibleTokensV1][] | v1.9.0 | {% badge %}撤回: 削除予定{% /badge %} | +| [CryptoConditionsSuite][] | v0.60.0 | {% badge %}撤回: 削除予定{% /badge %} | +| [SHAMapV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2019/rippled-1.4.0.html" %}廃止: v1.4.0で削除済み{% /badge %} | +| [FlowV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2016/flowv2-vetoed.html" %}廃止: v0.33.0で削除済み{% /badge %} | +| [SusPay][] | v0.31.0 | {% badge href="https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features" %}廃止: v0.60.0で削除済み{% /badge %} | +| [Tickets][] | v0.30.1 | {% badge href="https://xrpl.org/blog/2018/rippled-0.90.0.html" %}廃止: v0.90.0で削除済み{% /badge %} | ## 既知のAmendmentsの詳細 @@ -169,7 +169,7 @@ labels: | デフォルトの投票(最新の安定版) | いいえ | | Amendment前の機能は廃止? | いいえ | -[CheckCashトランザクション][]を修正し、[Check](checks.html)を現金化して発行されたトークンを入手すると、トークンを保持する[トラストライン](trust-lines-and-issuing.html)を自動的に作成するようにしました。この新しい動作は、ユーザーが分散型取引所でトークンを購入する際の[OfferCreateトランザクション][]の動作に似ています。自動的に作成されたトラストラインには限度額0が設定されています。これにより、Checkでトークンを受け取る前にトラストラインを設定するという設定ステップがなくなります。(XRPを送信するCheckは影響を受けません)。 +[CheckCashトランザクション][]を修正し、[Check](../concepts/payment-types/checks.md)を現金化して発行されたトークンを入手すると、トークンを保持する[トラストライン](../concepts/tokens/fungible-tokens/index.md)を自動的に作成するようにしました。この新しい動作は、ユーザーが分散型取引所でトークンを購入する際の[OfferCreateトランザクション][]の動作に似ています。自動的に作成されたトラストラインには限度額0が設定されています。これにより、Checkでトークンを受け取る前にトラストラインを設定するという設定ステップがなくなります。(XRPを送信するCheckは影響を受けません)。 この修正を適用しない場合、ユーザーは、Checkを発行トークンと交換する前に、別途[TrustSetトランザクション][]を送信する必要があります。 @@ -280,7 +280,7 @@ Clawbackはデフォルトでは無効になっています。Clawbackを使用 | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -[アカウント](accounts.html)を削除できるようになります。 +[アカウント](../concepts/accounts/accounts.md)を削除できるようになります。 この修正を適用しない場合、新しいアカウントは`Sequence`番号が必ず1で始まります。また、レジャーの状態データからアカウントを削除できません。 @@ -301,9 +301,9 @@ Clawbackはデフォルトでは無効になっています。Clawbackを使用 支払先のアカウントのこのフラグが有効になっている場合、支払いがXRPでなされるか、トークンでなされるかにかかわらず、Paymentトランザクションは失敗となります。アカウントが支払先である場合、支払先アカウント自体から上記のトランザクションが送信されなければ、EscrowFinishトランザクションとPaymentChannelClaimトランザクションは失敗します。[Checks][] amendmentが有効である場合、CheckCashトランザクションを送信することによってXRPまたはトークンをアカウントで受け取ることができます。 -例外として、`DepositAuth`が有効になっているアカウントでは、現在のXRP残高がアカウントの準備金を下回る場合、少額のXRP([アカウント準備金](reserves.html)の最低額以下)のPaymentトランザクションを受け取ることができます。 +例外として、`DepositAuth`が有効になっているアカウントでは、現在のXRP残高がアカウントの準備金を下回る場合、少額のXRP([アカウント準備金](../concepts/accounts/reserves.md)の最低額以下)のPaymentトランザクションを受け取ることができます。 -また、EscrowCreateトランザクションとPaymentChannelCreateトランザクションで誤ってDisallowXRPフラグを適用してしまうバグも修正します。これは強制力のない勧告フラグとするものです。(レジャー自体にDisallowXRPフラグを適用しないことで、[アカウント準備金](reserves.html)を満たし[トランザクションコスト](transaction-cost.html)を支払うのに必要なXRPを、アカウントが引き続き受け取ることができます。) +また、EscrowCreateトランザクションとPaymentChannelCreateトランザクションで誤ってDisallowXRPフラグを適用してしまうバグも修正します。これは強制力のない勧告フラグとするものです。(レジャー自体にDisallowXRPフラグを適用しないことで、[アカウント準備金](../concepts/accounts/reserves.md)を満たし[トランザクションコスト](../concepts/transactions/transaction-cost.md)を支払うのに必要なXRPを、アカウントが引き続き受け取ることができます。) ### DepositPreauth @@ -316,7 +316,7 @@ Clawbackはデフォルトでは無効になっています。Clawbackを使用 | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -[Deposit Authorization](depositauth.html)のユーザーに特定の送信者を事前承認する手段を提供して、承認された送信者が支払いを直接送信できるようにします。 +[Deposit Authorization](../concepts/accounts/depositauth.md)のユーザーに特定の送信者を事前承認する手段を提供して、承認された送信者が支払いを直接送信できるようにします。 事前承認の追加または削除のために新しいトランザクションタイプDepositPreauthを、あるアカウントから別のアカウントへの事前承認の追跡のためにDepositPreauthレジャーオブジェクトタイプを追加します。JSON-RPCコマンド`deposit_authorized`を追加します。これは、アカウントが別のアカウントへ支払いを直接送金することが承認されているかどうかを問い合わせるためのものです。 @@ -365,10 +365,10 @@ Checks、Payment Channels、NFTokenOffer、およびトラストラインを自 不変性チェックの例: -- トランザクションによって消却されたXRPの合計額は、[トランザクションコスト](transaction-cost.html)と正確に一致していなければなりません。 +- トランザクションによって消却されたXRPの合計額は、[トランザクションコスト](../concepts/transactions/transaction-cost.md)と正確に一致していなければなりません。 - XRPは作成できません。 -- [レジャー内の`AccountRoot`オブジェクト](accountroot.html)は、[DeletableAccounts](#deletableaccounts)が有効でない限り削除できません。(関連項目: [アカウントの削除](deleting-accounts.html)) -- [レジャー内のオブジェクト](ledger-object-types.html)のタイプは変更できません。(`LedgerEntryType`フィールドは変更できません。) +- [レジャー内の`AccountRoot`オブジェクト](../references/protocol/ledger-data/ledger-entry-types/accountroot.md)は、[DeletableAccounts](#deletableaccounts)が有効でない限り削除できません。(関連項目: [アカウントの削除](../concepts/accounts/deleting-accounts.md)) +- [レジャー内のオブジェクト](../references/protocol/ledger-data/ledger-entry-types/index.md)のタイプは変更できません。(`LedgerEntryType`フィールドは変更できません。) - XRPにトラストラインはありません。 @@ -414,7 +414,7 @@ XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これ | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -提案されたトランザクションに[トランザクションコスト](transaction-cost.html)を適用する方法を変更します。トランザクションコストの高いトランザクションの優先順位が高くなるよう、コンセンサスプロセスを変更します。 +提案されたトランザクションに[トランザクションコスト](../concepts/transactions/transaction-cost.md)を適用する方法を変更します。トランザクションコストの高いトランザクションの優先順位が高くなるよう、コンセンサスプロセスを変更します。 この修正により、前のコンセンサスラウンドに含められなかったトランザクションに固定サイズのトランザクションキューが導入されます。コンセンサスネットワーク内の`rippled`サーバーに重い負荷が課されている場合、トランザクションコストの低いトランザクションは後のレジャーのキューに入れられます。各コンセンサスラウンドでは、トランザクションコスト(`Fee`値)が高いキューのトランザクションが優先され、コンセンサスネットワークで処理できる限りのトランザクションが含められます。トランザクションキューが一杯になると、トランザクションコストが最も低いトランザクションから順にキューから完全に除外されます。 @@ -423,7 +423,7 @@ XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これ 1つのトランザクションは、以下のいずれかが発生するまでキュー内に残ります。 * 検証済みレジャーに適用される(成功か失敗かには関係ありません) -* 無効になる(例えば、[`LastLedgerSequence`](transaction-common-fields.html)によって有効期限切れとなる) +* 無効になる(例えば、[`LastLedgerSequence`](../references/protocol/transactions/common-fields.md)によって有効期限切れとなる) * キュー内にトランザクションコストの高いトランザクションがたくさんあるため除外される @@ -437,7 +437,7 @@ XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これ | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -[送金手数料](transfer-fees.html)に限度を正しく導入し、100%の料金にします。これは、`TransferRate`値の最大値である`2000000000`を表します。(この場合の100%の料金とは、送信する1ユニットごとに2ユニットのトークンを送信する必要があることを意味します。)この修正を行わない場合、有効な限度は`TransferRate`値の232-1、つまり約329%の料金となります。 +[送金手数料](../concepts/tokens/transfer-fees.md)に限度を正しく導入し、100%の料金にします。これは、`TransferRate`値の最大値である`2000000000`を表します。(この場合の100%の料金とは、送信する1ユニットごとに2ユニットのトークンを送信する必要があることを意味します。)この修正を行わない場合、有効な限度は`TransferRate`値の232-1、つまり約329%の料金となります。 この修正を行う場合、[AccountSet][]トランザクションの`TransferRate`を`2000000000`より高く設定すると、トランザクションは結果コード`temBAD_TRANSFER_RATE`にて失敗します。以前のルールに従って高い値が設定されている既存のすべての`TransferRate`には、そのまま高い率が適用されます。 @@ -465,9 +465,9 @@ XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これ | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -特定の[支払いパス](paths.html)を作成する際にエラーを引き起こすトランザクション処理の小さなバグを修正します。この結果、有効であっても正しく作成されていないパスを、支払いで使用できなくなりました。この修正を行わない場合、支払い時に好ましくないパスの使用を強制されたり、失敗したりする恐れがあります。 +特定の[支払いパス](../concepts/tokens/fungible-tokens/paths.md)を作成する際にエラーを引き起こすトランザクション処理の小さなバグを修正します。この結果、有効であっても正しく作成されていないパスを、支払いで使用できなくなりました。この修正を行わない場合、支払い時に好ましくないパスの使用を強制されたり、失敗したりする恐れがあります。 -fix1373 Amendmenによりこの問題は修正されるため、正しく作成されたパスを使用して支払いを行えます。また、現在は許可されているものの適切ではない一部のパスが無効になります。これには、同じオブジェクトを2回以上ループしてコンフリクトを起こすフィールドやパスを含む[ステップ](paths.html#パスの仕様)を持つパスが含まれます。 +fix1373 Amendmenによりこの問題は修正されるため、正しく作成されたパスを使用して支払いを行えます。また、現在は許可されているものの適切ではない一部のパスが無効になります。これには、同じオブジェクトを2回以上ループしてコンフリクトを起こすフィールドやパスを含む[ステップ](../concepts/tokens/fungible-tokens/paths.md#パスの仕様)を持つパスが含まれます。 ### fix1512 @@ -480,7 +480,7 @@ fix1373 Amendmenによりこの問題は修正されるため、正しく作成 | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -一部の無効な[PaymentChannelClaim][]トランザクションが、不正確なエラーコードで失敗するトランザクション処理のバグを修正します。この修正を行わない場合、トランザクションの結果コードは`tec`クラスとなりますが、レジャーに入力されず、[トランザクションコスト](transaction-cost.html)は支払われません。 +一部の無効な[PaymentChannelClaim][]トランザクションが、不正確なエラーコードで失敗するトランザクション処理のバグを修正します。この修正を行わない場合、トランザクションの結果コードは`tec`クラスとなりますが、レジャーに入力されず、[トランザクションコスト](../concepts/transactions/transaction-cost.md)は支払われません。 この修正により、トランザクションは適切な結果コード`temBAD_AMOUNT`にて失敗します。 @@ -529,9 +529,9 @@ Paymentトランザクションがオファーを処理していく方法を変 | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -支払先アカウント別の追跡機能を[Escrow](escrow.html)に追加します。この修正を行わない場合、保留中のEscrowは送信者別にしか追跡できません。この修正により、[account_objectsメソッド][]を使用して支払先アドレスごとに保留中のEscrowを調べることができます。ただし、この修正が有効になる前に作成された保留中のEscrowを除きます。また、この修正では、[EscrowCreateトランザクション][]を支払先のトランザクション履歴に表示することができます。これは[account_txメソッド][]による表示と同様です。 +支払先アカウント別の追跡機能を[Escrow](../concepts/payment-types/escrow.md)に追加します。この修正を行わない場合、保留中のEscrowは送信者別にしか追跡できません。この修正により、[account_objectsメソッド][]を使用して支払先アドレスごとに保留中のEscrowを調べることができます。ただし、この修正が有効になる前に作成された保留中のEscrowを除きます。また、この修正では、[EscrowCreateトランザクション][]を支払先のトランザクション履歴に表示することができます。これは[account_txメソッド][]による表示と同様です。 -この修正により、新しいEscrowが送信者と受信者両方の[所有者ディレクトリー](directorynode.html)に追加されます。また、[Escrowレジャーオブジェクト](escrow-object.html)に新しい`DestinationNode`フィールドも追加され、支払先の所有者ディレクトリのどのページにEscrowがあるかを表示します。 +この修正により、新しいEscrowが送信者と受信者両方の[所有者ディレクトリー](../references/protocol/ledger-data/ledger-entry-types/directorynode.md)に追加されます。また、[Escrowレジャーオブジェクト](../references/protocol/ledger-data/ledger-entry-types/escrow.md)に新しい`DestinationNode`フィールドも追加され、支払先の所有者ディレクトリのどのページにEscrowがあるかを表示します。 ### fix1528 @@ -598,7 +598,7 @@ Paymentトランザクションがオファーを処理していく方法を変 以下の2つのトランザクションタイプから返される結果コードを変更します。 - [OfferCreateトランザクション][]を変更して、オファーが`tfFillOrKill`フラグを使用していて中止された場合に、新しい結果コード`tecKILLED`が返されるようにします。この修正を行わない場合、オファーは中止されますが、トランザクション結果は`tesSUCCESS`になります。 -- [TrustSetトランザクション][]を変更して、トラストラインがマイナス残高であるため、[NoRippleフラグ](rippling.html#norippleフラグ)を有効にしようとしてもできない場合に、`tecNO_PERMISSION`で失敗するようにします。この修正を行わない場合、トランザクションでNoRippleフラグを有効にできなくても、トランザクション結果は`tesSUCCESS`になります。 +- [TrustSetトランザクション][]を変更して、トラストラインがマイナス残高であるため、[NoRippleフラグ](../concepts/tokens/fungible-tokens/rippling.md#norippleフラグ)を有効にしようとしてもできない場合に、`tecNO_PERMISSION`で失敗するようにします。この修正を行わない場合、トランザクションでNoRippleフラグを有効にできなくても、トランザクション結果は`tesSUCCESS`になります。 ### fix1623 @@ -613,7 +613,7 @@ Paymentトランザクションがオファーを処理していく方法を変 変動金額で換金されたCheckCashトランザクションのメタデータに送金額を追加します。([Checks](#checks) Amendmentが有効でないかぎり効果がありません。) -この修正を行うと、トランザクション処理にて変動金額の[CheckCashトランザクション][]のメタデータに`DeliveredAmount`フィールドが追加されます(`DeliverMin`フィールドを使用します)。この変更はレジャーデータに書き込まれるため、この修正を行わずにトランザクションを処理した場合とは異なるレジャーハッシュとなります。これは実際に送信される金額には影響しません。また、この修正を有効にすると、[txメソッド][]と[account_txメソッド][]によってCheckCashトランザクションの[`delivered_amount`フィールド](transaction-metadata.html#delivered_amount)が返されます。(`delivered_amount`フィールドはトランザクションの検索時に計算されるものであり、レジャーに書き込まれるデータの一部ではありません。) +この修正を行うと、トランザクション処理にて変動金額の[CheckCashトランザクション][]のメタデータに`DeliveredAmount`フィールドが追加されます(`DeliverMin`フィールドを使用します)。この変更はレジャーデータに書き込まれるため、この修正を行わずにトランザクションを処理した場合とは異なるレジャーハッシュとなります。これは実際に送信される金額には影響しません。また、この修正を有効にすると、[txメソッド][]と[account_txメソッド][]によってCheckCashトランザクションの[`delivered_amount`フィールド](../references/protocol/transactions/metadata.md#delivered_amount)が返されます。(`delivered_amount`フィールドはトランザクションの検索時に計算されるものであり、レジャーに書き込まれるデータの一部ではありません。) fix1623 Amendmentは、固定金額の[CheckCashトランザクション][](`Amount`フィールドを使用)またはその他のトランザクションタイプには影響しません。 @@ -630,9 +630,9 @@ fix1623 Amendmentは、固定金額の[CheckCashトランザクション][](`A 循環パスの検出時に、特定のXRPエンドポイントがチェックされない不具合を修正します。 -この修正が適用されない場合、[支払いパス](paths.html)の入力がXRPで、パスの中間ステップでもXRPが出力されるようなパスが存在し得ます。これは「ループ」決済であり、前方と後方で実行すると異なる結果になる可能性があるため、決済エンジンはこのようなパスを禁止しています。 +この修正が適用されない場合、[支払いパス](../concepts/tokens/fungible-tokens/paths.md)の入力がXRPで、パスの中間ステップでもXRPが出力されるようなパスが存在し得ます。これは「ループ」決済であり、前方と後方で実行すると異なる結果になる可能性があるため、決済エンジンはこのようなパスを禁止しています。 -この修正が適用された場合、これらの支払いは、代わりに[結果コード`temBAD_PATH_LOOP`](tem-codes.html)で失敗します。 +この修正が適用された場合、これらの支払いは、代わりに[結果コード`temBAD_PATH_LOOP`](../references/protocol/transactions/transaction-results/tem-codes.md)で失敗します。 ### fixAmendmentMajorityCalc @@ -660,7 +660,7 @@ fix1623 Amendmentは、固定金額の[CheckCashトランザクション][](`A | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -Checksトランザクションがアカウントのメタデータに影響を及ぼす方法を変更し、Checksが受信アカウントの[アカウント](accounts.html)履歴に適切に追加されるようにします。(具体的には、受信アカウントの[AccountRootオブジェクト](accountroot.html)の`PreviousTxnID`フィールドと`PreviousTxnLedgerSeq`フィールドを更新します。これは、アカウントと、アカウントが所有するオブジェクトに影響を及ぼしたトランザクションの「スレッド」を追跡するために使用できます。) +Checksトランザクションがアカウントのメタデータに影響を及ぼす方法を変更し、Checksが受信アカウントの[アカウント](../concepts/accounts/accounts.md)履歴に適切に追加されるようにします。(具体的には、受信アカウントの[AccountRootオブジェクト](../references/protocol/ledger-data/ledger-entry-types/accountroot.md)の`PreviousTxnID`フィールドと`PreviousTxnLedgerSeq`フィールドを更新します。これは、アカウントと、アカウントが所有するオブジェクトに影響を及ぼしたトランザクションの「スレッド」を追跡するために使用できます。) この修正を適用しない場合、Checksトランザクション([CheckCreate][]、[CheckCash][]、および[CheckCancel][])は送信者のアカウント履歴のみを更新します。この修正を適用した場合、これらのトランザクションは、送信アカウントにも受信アカウントにも影響します。この修正は、[Checks Amendment](#checks)も有効でないかぎり効果がありません。 @@ -782,7 +782,7 @@ NFTオファーに宛先を設定した場合、その宛先のみが仲介で | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -[PaymentChannelCreateトランザクション][]タイプを変更し、受取人の[所有者ディレクトリ](directorynode.html)に新しい[Payment Channel](payment-channels.html)が追加されるようにします。この修正を適用しない場合、新しいPayment Channelは送金者の所有者ディレクトリーにのみ追加されます。この修正を有効にする場合、新しく作成したPayment Channelは両者の所有者ディレクトリーに追加されます。既存のPayment Channelは変更されません。 +[PaymentChannelCreateトランザクション][]タイプを変更し、受取人の[所有者ディレクトリ](../references/protocol/ledger-data/ledger-entry-types/directorynode.md)に新しい[Payment Channel](../concepts/payment-types/payment-channels.md)が追加されるようにします。この修正を適用しない場合、新しいPayment Channelは送金者の所有者ディレクトリーにのみ追加されます。この修正を有効にする場合、新しく作成したPayment Channelは両者の所有者ディレクトリーに追加されます。既存のPayment Channelは変更されません。 この修正により、受取人によるPayment Channelの検索が容易になります。また、アカウントがオープンPayment Channelの受取人だった場合に、そのアカウントが削除されないようにします(ただし、この修正の前に作成されたチャンネルを除きます)。 @@ -834,7 +834,7 @@ NFTオファーに宛先を設定した場合、その宛先のみが仲介で | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -このフラグを使用した発行者に対するDoS攻撃から保護するために、[非代替性トークン](non-fungible-tokens.html)の`tfTrustLine`設定を削除します。このフラグを有効にすると、`tfTrustLine`フラグを有効にした[NFTokenMintトランザクション](nftokenmint.html)は無効とみなされ、コンセンサスによって検証されません。したがって、`NFToken`オブジェクトはこのフラグを使用してミントをすることができません。 +このフラグを使用した発行者に対するDoS攻撃から保護するために、[非代替性トークン](../concepts/tokens/nfts/index.md)の`tfTrustLine`設定を削除します。このフラグを有効にすると、`tfTrustLine`フラグを有効にした[NFTokenMintトランザクション](../references/protocol/transactions/types/nftokenmint.md)は無効とみなされ、コンセンサスによって検証されません。したがって、`NFToken`オブジェクトはこのフラグを使用してミントをすることができません。 この修正が適用されない場合、攻撃者は意味のない新しい代替可能トークンを作り、そのトークンとNFTを売買することで、発行者に紐づく多数の無駄なトラストラインを作り、発行者の準備金を増加させることができます。 @@ -870,7 +870,7 @@ NFTオファーに宛先を設定した場合、その宛先のみが仲介で | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -Amount型フィールドの[デシリアライズ](serialization.html)におけるエッジケースの問題を修正しました。この修正が適用されない場合、一部の稀なケースで、この操作により、デシリアライズ中に有効なシリアライズされた金額がオーバーフローしてしまう可能性がありました。この修正により、XRP Ledgerはより迅速にエラー状態を検出し、問題となるようなケースを排除します。 +Amount型フィールドの[デシリアライズ](../references/protocol/binary-format.md)におけるエッジケースの問題を修正しました。この修正が適用されない場合、一部の稀なケースで、この操作により、デシリアライズ中に有効なシリアライズされた金額がオーバーフローしてしまう可能性がありました。この修正により、XRP Ledgerはより迅速にエラー状態を検出し、問題となるようなケースを排除します。 ### fixTakerDryOfferRemoval @@ -883,9 +883,9 @@ Amount型フィールドの[デシリアライズ](serialization.html)におけ | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -XRP Ledger内にドライオファーを残す可能性がある[オートブリッジ](autobridging.html)のバグを修正します。ドライオファーとは、オファーを掛け合わせても資金を調達できないオファーのことです。 +XRP Ledger内にドライオファーを残す可能性がある[オートブリッジ](../concepts/tokens/decentralized-exchange/autobridging.md)のバグを修正します。ドライオファーとは、オファーを掛け合わせても資金を調達できないオファーのことです。 -この修正を行わなければ、ドライオファーがレジャー上に残り、所有者の[必要準備金](reserves.html#所有者準備金)に加算されることになり、所有者に何も利益をもたらしません。正しいタイプとクオリティで掛け合わせた別のオファーによって、ドライオファーを除去することができます。ただし、タイプとクオリティがうまく掛け合わされたオファーがめったにない場合、ドライオファーの除去には時間がかかることがあります。 +この修正を行わなければ、ドライオファーがレジャー上に残り、所有者の[必要準備金](../concepts/accounts/reserves.md#所有者準備金)に加算されることになり、所有者に何も利益をもたらしません。正しいタイプとクオリティで掛け合わせた別のオファーによって、ドライオファーを除去することができます。ただし、タイプとクオリティがうまく掛け合わされたオファーがめったにない場合、ドライオファーの除去には時間がかかることがあります。 この修正により、これらのドライオファーがオートブリッジで一致した場合に、XRP Ledgerによって除去されます。 @@ -1030,13 +1030,13 @@ XRP Ledgerの分散型取引所において、オファーの掛け合わせの | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -トランザクションの承認方法として[マルチシグ](multi-signing.html)を導入します。[`SignerList`レジャーオブジェクトタイプ](signerlist.html)と[`SignerListSet`トランザクションタイプ](signerlistset.html)を作成します。省略可能な`Signers`フィールドをすべてのトランザクションタイプに追加します。一部のトランザクション結果コードを変更します。 +トランザクションの承認方法として[マルチシグ](../concepts/accounts/multi-signing.md)を導入します。[`SignerList`レジャーオブジェクトタイプ](../references/protocol/ledger-data/ledger-entry-types/signerlist.md)と[`SignerListSet`トランザクションタイプ](../references/protocol/transactions/types/signerlistset.md)を作成します。省略可能な`Signers`フィールドをすべてのトランザクションタイプに追加します。一部のトランザクション結果コードを変更します。 この修正により、マルチシグのアドレスからトランザクションを承認できる署名者のリストをそのアドレスに保持できるようになります。このリストには定数があり、1から8で重み付けされた署名者が記載されています。これにより、「5人のうち任意の3人」や「Aの署名とその他任意の2人の署名」などの多様な設定が可能になります。 署名者は資金供給のあるアドレスでも資金供給のないアドレスでも可能です。署名者リストのうち資金供給のあるアドレスは、レギュラーキー(定義済みの場合)またはマスターキー(無効でない場合)を使用して署名できます。資金供給のないアドレスは、マスターキーを使用して署名できます。マルチシグトランザクションは、レギュラーキーで署名されたトランザクションと同じ権限を持ちます。 -SignerListを持つアドレスは、レギュラーキーが定義されていなくてもマスターキーを無効にすることができます。また、SignerListを持つアドレスは、マスターキーが無効な場合でもレギュラーキーを削除することができます。`tecMASTER_DISABLED`トランザクション結果コードは`tecNO_ALTERNATIVE_KEY`に名前が変更されます。`tecNO_REGULAR_KEY`トランザクション結果コードは廃止となり、`tecNO_ALTERNATIVE_KEY`に代わります。さらに、この修正は以下の新しい[トランザクション結果コード](transaction-results.html)を追加します。 +SignerListを持つアドレスは、レギュラーキーが定義されていなくてもマスターキーを無効にすることができます。また、SignerListを持つアドレスは、マスターキーが無効な場合でもレギュラーキーを削除することができます。`tecMASTER_DISABLED`トランザクション結果コードは`tecNO_ALTERNATIVE_KEY`に名前が変更されます。`tecNO_REGULAR_KEY`トランザクション結果コードは廃止となり、`tecNO_ALTERNATIVE_KEY`に代わります。さらに、この修正は以下の新しい[トランザクション結果コード](../references/protocol/transactions/transaction-results/transaction-results.md)を追加します。 * `temBAD_SIGNER` * `temBAD_QUORUM` @@ -1057,11 +1057,11 @@ SignerListを持つアドレスは、レギュラーキーが定義されてい | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -XRP Ledgerアカウントが[マルチシグ](multi-signing.html)SignerListを所有する場合、アカウントに加算される[所有者準備金](reserves.html#所有者準備金)を削減します。 +XRP Ledgerアカウントが[マルチシグ](../concepts/accounts/multi-signing.md)SignerListを所有する場合、アカウントに加算される[所有者準備金](../concepts/accounts/reserves.md#所有者準備金)を削減します。 この修正を行わない場合、SignerListの所有者準備金は、リスト内の署名者数に応じて15~50XRPの範囲となります。 -この修正により、新しいSignerListの所有者準備金は、署名者数に関係なく5XRPとなります。以前に作成されたSignerListオブジェクトの準備金は、そのまま変更されません。この修正の後に作成されたSignerListオブジェクトの準備金を削減するには、この修正実施後に、[SignerListSetトランザクション](signerlistset.html)を使用してSignerListを置き換えます。(この置き換えは、前のバージョンの場合とまったく同じです。) +この修正により、新しいSignerListの所有者準備金は、署名者数に関係なく5XRPとなります。以前に作成されたSignerListオブジェクトの準備金は、そのまま変更されません。この修正の後に作成されたSignerListオブジェクトの準備金を削減するには、この修正実施後に、[SignerListSetトランザクション](../references/protocol/transactions/types/signerlistset.md)を使用してSignerListを置き換えます。(この置き換えは、前のバージョンの場合とまったく同じです。) ### NegativeUNL @@ -1119,7 +1119,7 @@ XRP Ledgerアカウントが[マルチシグ](multi-signing.html)SignerListを | デフォルトの投票(最新の安定版) | いいえ | | Amendment前の機能は廃止? | いいえ | -[NonFungibleTokensV1][]の後に発見されたいくつかの問題の修正を含む[非代替性トークン](non-fungible-tokens.html)のネイティブサポートを追加します。 +[NonFungibleTokensV1][]の後に発見されたいくつかの問題の修正を含む[非代替性トークン](../concepts/tokens/nfts/index.md)のネイティブサポートを追加します。 この修正は、以下の修正内容を統合し、個々のAmendmentsを廃止するものです。 @@ -1142,7 +1142,7 @@ XRP Ledgerアカウントが[マルチシグ](multi-signing.html)SignerListを | デフォルトの投票(最新の安定版) | 非該当 | | Amendment前の機能は廃止? | いいえ | -[OfferCreate](offercreate.html)トランザクションタイプと[Payment](payment.html)トランザクションタイプで、[送金手数料](transfer-fees.html)の計算方法に相違があるのを修正します。この修正を行わない場合、オファーがオファープレースメントで実行される際にイシュアンスの保有者が送金手数料を支払いますが、トランザクションの最初の送信者は支払い処理の過程で実行されるオファーの送金手数料を支払います。この修正により、オファーがPaymentトランザクションまたはOfferCreateトランザクションの一部として実行されるかどうかにかかわらず、イシュアンスの保有者が常に送金手数料を支払います。支払い以外のオファー処理は影響を受けません。 +[OfferCreate](../references/protocol/transactions/types/offercreate.md)トランザクションタイプと[Payment](../references/protocol/transactions/types/payment.md)トランザクションタイプで、[送金手数料](../concepts/tokens/transfer-fees.md)の計算方法に相違があるのを修正します。この修正を行わない場合、オファーがオファープレースメントで実行される際にイシュアンスの保有者が送金手数料を支払いますが、トランザクションの最初の送信者は支払い処理の過程で実行されるオファーの送金手数料を支払います。この修正により、オファーがPaymentトランザクションまたはOfferCreateトランザクションの一部として実行されるかどうかにかかわらず、イシュアンスの保有者が常に送金手数料を支払います。支払い以外のオファー処理は影響を受けません。 この修正については、[Flow Amendment](#flow)を有効にする必要があります。 @@ -1161,9 +1161,9 @@ XRP Ledgerアカウントが[マルチシグ](multi-signing.html)SignerListを XRPの「Payment Channel」を作成します。Payment Channelは、2名の当事者間で一方向の繰り返しの支払い、またはそれに伴う一時的な貸付を容易に行えるようにするツールです。Rippleは、この機能が[Interledger Protocol](https://interledger.org/)に役立つと期待しています。ある当事者がPayment Channelを作成し、そのチャンネル内に有効期限を事前に設定してXRPをいくらか確保します。次に、レジャー外部の安全な通信を介して、送信者は「クレーム」メッセージを受信者に送信できます。受信者は有効期限の終了前にクレームメッセージを清算することも、支払いが必要ない場合は清算しないことも選択できます。受信者は、クレームを実際にネットワークに分散させてコンセンサスプロセスで清算されるのを待たなくとも、請求を個々に確認してから、有効期限内であれば多数の少額クレームをまとめて後で清算することができます。 -新たに作成するトランザクションタイプは次の3つです。[PaymentChannelCreate][]、[PaymentChannelClaim][]、[PaymentChannelFund][]。新たに作成するレジャーオブジェクトタイプは[PayChannel](paychannel.html)です。レジャー外のデータ構造`Claim`を定義し、ChannelClaimトランザクションに使用します。新たに作成する`rippled`APIメソッドは次のとおりです。[`channel_authorize`](channel_authorize.html)(署名されたクレームを作成します)、[`channel_verify`](channel_verify.html)(署名されたクレームを検証します)、[`account_channels`](account_channels.html)(アカウントに関連するチャンネルをリストを作成します)。 +新たに作成するトランザクションタイプは次の3つです。[PaymentChannelCreate][]、[PaymentChannelClaim][]、[PaymentChannelFund][]。新たに作成するレジャーオブジェクトタイプは[PayChannel](../references/protocol/ledger-data/ledger-entry-types/paychannel.md)です。レジャー外のデータ構造`Claim`を定義し、ChannelClaimトランザクションに使用します。新たに作成する`rippled`APIメソッドは次のとおりです。[`channel_authorize`](../references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md)(署名されたクレームを作成します)、[`channel_verify`](../references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md)(署名されたクレームを検証します)、[`account_channels`](../references/http-websocket-apis/public-api-methods/account-methods/account_channels.md)(アカウントに関連するチャンネルをリストを作成します)。 -詳細は、[Payment Channelsのチュートリアル](use-payment-channels.html)を参照してください。 +詳細は、[Payment Channelsのチュートリアル](../tutorials/use-specialized-payment-types/use-payment-channels.md)を参照してください。 ### RequireFullyCanonicalSig @@ -1176,11 +1176,11 @@ XRPの「Payment Channel」を作成します。Payment Channelは、2名の当 | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも完全に正規でない署名は無効とします。これにより、[tfFullyCanonicalSigフラグ](transaction-common-fields.html#グローバルフラグ)を有効にしたトランザクションのみを保護することに代わって、_すべての_ トランザクションにおいて[トランザクションの展性](transaction-malleability.html)から守られます。 +XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも完全に正規でない署名は無効とします。これにより、[tfFullyCanonicalSigフラグ](../references/protocol/transactions/common-fields.md#グローバルフラグ)を有効にしたトランザクションのみを保護することに代わって、_すべての_ トランザクションにおいて[トランザクションの展性](../concepts/transactions/finality-of-results/transaction-malleability.md)から守られます。 この修正が適用されない場合、トランザクションがsecp256k1署名を使用し、tfFullyCanonicalSigが有効でない場合は、変更可能となります。ほとんどの署名ユーティリティは、デフォルトでtfFullyCanonicalSigを有効にしていますが、例外もあります。 -この修正により、単独署名のトランザクションは展性になりません。(署名者が必要以上の署名を提供した場合、[マルチシグのトランザクションはまだ展性であるかもしれません](transaction-malleability.html#マルチシグの展性))。すべてのトランザクションは、tfFullyCanonicalSigフラグに関係なく、署名の完全な正規の形式を使用する必要があります。完全に正規化された署名を作成しない署名ユーティリティはサポートされていません。Ripple社が提供するすべての署名ユーティリティは、少なくとも2014年以降、完全に正規化された署名のみを提供するようになっています。 +この修正により、単独署名のトランザクションは展性になりません。(署名者が必要以上の署名を提供した場合、[マルチシグのトランザクションはまだ展性であるかもしれません](../concepts/transactions/finality-of-results/transaction-malleability.md#マルチシグの展性))。すべてのトランザクションは、tfFullyCanonicalSigフラグに関係なく、署名の完全な正規の形式を使用する必要があります。完全に正規化された署名を作成しない署名ユーティリティはサポートされていません。Ripple社が提供するすべての署名ユーティリティは、少なくとも2014年以降、完全に正規化された署名のみを提供するようになっています。 詳しくは、[`rippled` issue #3042](https://github.com/XRPLF/rippled/issues/3042)を参照してください。 @@ -1209,9 +1209,9 @@ XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -[DirectoryNodeレジャーオブジェクト](directorynode.html)内の項目をソートして、削除されるべき所有者ディレクトリのページが場合によっては削除されないというバグを修正します。 +[DirectoryNodeレジャーオブジェクト](../references/protocol/ledger-data/ledger-entry-types/directorynode.md)内の項目をソートして、削除されるべき所有者ディレクトリのページが場合によっては削除されないというバグを修正します。 -**警告:** このが適用されていない旧バージョンの`rippled`は、新しいルールでソートされたDirectoryNodeによって機能が停止するおそれがあります。この問題を回避するには、`rippled`バージョン0.80.0以降に[アップグレード](install-rippled.html)してください。 +**警告:** このが適用されていない旧バージョンの`rippled`は、新しいルールでソートされたDirectoryNodeによって機能が停止するおそれがあります。この問題を回避するには、`rippled`バージョン0.80.0以降に[アップグレード](../infrastructure/installation/index.md)してください。 ### SusPay @@ -1223,7 +1223,7 @@ XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも | ステータス | 廃止 | | Amendment前の機能は廃止? | はい | -この修正は、[Escrow](escrow-object.html) Amendmentに置き換えられました。 +この修正は、[Escrow](../references/protocol/ledger-data/ledger-entry-types/escrow.md) Amendmentに置き換えられました。 ### TicketBatch @@ -1236,7 +1236,7 @@ XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | いいえ | -この修正により、通常のシーケンス番号順ではないトランザクションを送信する方法として、[Tickets](ticket.html)が追加されます。 +この修正により、通常のシーケンス番号順ではないトランザクションを送信する方法として、[Tickets](../references/protocol/ledger-data/ledger-entry-types/ticket.md)が追加されます。 標準規格案: [XLS-13d](https://github.com/XRPLF/XRPL-Standards/issues/16). @@ -1263,9 +1263,9 @@ XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -オーダーブック内で[オファー](offers.html#オファーのライフサイクル)をランク付けする方法を変更して、通貨発行者がオファーを為替レートでランク付けする際に考慮する有効桁数を設定できるようにします。この修正により、オファーの交換レートが設定された有効桁数に丸められるため、同じ交換レートを持つオファーが増加します。この修正の目的は、以前のオファーよりもランク付けを高くするには、価格面で意味のある改善をしなければならないようにすることです。主要な発行者がこれを採用すれば、既存のオファーよりわずかなパーセンテージだけ上回るオファーでレジャーを攻撃しようとするスパムが低減します。また、よりバラツキの少ない為替レートでオファーをグループ化できるため、レジャー内のオーダーブックを効率的に保管できます。 +オーダーブック内で[オファー](../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)をランク付けする方法を変更して、通貨発行者がオファーを為替レートでランク付けする際に考慮する有効桁数を設定できるようにします。この修正により、オファーの交換レートが設定された有効桁数に丸められるため、同じ交換レートを持つオファーが増加します。この修正の目的は、以前のオファーよりもランク付けを高くするには、価格面で意味のある改善をしなければならないようにすることです。主要な発行者がこれを採用すれば、既存のオファーよりわずかなパーセンテージだけ上回るオファーでレジャーを攻撃しようとするスパムが低減します。また、よりバラツキの少ない為替レートでオファーをグループ化できるため、レジャー内のオーダーブックを効率的に保管できます。 -アカウントに`TickSize`フィールドを追加します。このフィールドは[AccountSetトランザクションタイプ](accountset.html)を使用して設定できます。通貨発行者が`TickSize`フィールドを設定すれば、発行者の通貨を取引するオファーの為替レート(資金の入出金率)がXRP Ledgerによって丸められ、丸められた為替レートに合わせてオファーの金額が調整されます。トランザクションにて1つの通貨にのみ`TickSize`が設定されていれば、その有効桁数が適用されます。異なる`TickSize`値が設定された2つの通貨を取引する場合は、有効桁数が最も小さい`TickSize`が適用されます。XRPに`TickSize`は設定されません。 +アカウントに`TickSize`フィールドを追加します。このフィールドは[AccountSetトランザクションタイプ](../references/protocol/transactions/types/accountset.md)を使用して設定できます。通貨発行者が`TickSize`フィールドを設定すれば、発行者の通貨を取引するオファーの為替レート(資金の入出金率)がXRP Ledgerによって丸められ、丸められた為替レートに合わせてオファーの金額が調整されます。トランザクションにて1つの通貨にのみ`TickSize`が設定されていれば、その有効桁数が適用されます。異なる`TickSize`値が設定された2つの通貨を取引する場合は、有効桁数が最も小さい`TickSize`が適用されます。XRPに`TickSize`は設定されません。 ### TrustSetAuth @@ -1278,9 +1278,9 @@ XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも | デフォルトの投票(最新の安定版) | はい | | Amendment前の機能は廃止? | はい | -[承認されたトラストライン](authorized-trust-lines.html)を使用する場合に、会計関係の事前承認(ゼロバランストラストライン)を許可します。 +[承認されたトラストライン](../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用する場合に、会計関係の事前承認(ゼロバランストラストライン)を許可します。 -この修正が適用されれば、[`tfSetfAuth`を有効にした](trustset.html#trustsetのフラグ)`TrustSet`トランザクションにおいて、`RippleState`ノードの他のすべての値をデフォルト状態にしたままでも、新しい[`RippleState`レジャーオブジェクト](ripplestate.html)を作成できます。新しい`RippleState`ノードでは、トランザクションの送信者が低いノードと見なされるか高いノードと見なされるかに応じて、[`lsfLowAuth`フラグまたは`lsfHighAuth`フラグ](ripplestate.html#ripplestateのフラグ)が有効になります。トランザクションの送信者は、[asfRequireAuthフラグを有効](accountset.html#accountsetのフラグ)にして[AccountSetトランザクション](accountset.html)を送信することで、事前に[`lsfRequireAuth`](accountroot.html#accountrootのフラグ)を有効にしておく必要があります。 +この修正が適用されれば、[`tfSetfAuth`を有効にした](../references/protocol/transactions/types/trustset.md#trustsetのフラグ)`TrustSet`トランザクションにおいて、`RippleState`ノードの他のすべての値をデフォルト状態にしたままでも、新しい[`RippleState`レジャーオブジェクト](../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)を作成できます。新しい`RippleState`ノードでは、トランザクションの送信者が低いノードと見なされるか高いノードと見なされるかに応じて、[`lsfLowAuth`フラグまたは`lsfHighAuth`フラグ](../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ)が有効になります。トランザクションの送信者は、[asfRequireAuthフラグを有効](../references/protocol/transactions/types/accountset.md#accountsetのフラグ)にして[AccountSetトランザクション](../references/protocol/transactions/types/accountset.md)を送信することで、事前に[`lsfRequireAuth`](../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ)を有効にしておく必要があります。 ### XChainBridge @@ -1314,8 +1314,4 @@ XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも このAmendmentがなければ、トランザクションの形式と台帳の項目は同一です。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/get-started/get-started-using-http-websocket-apis.md b/content/@i18n/ja/tutorials/get-started/get-started-using-http-websocket-apis.md index dd54d3194c..d6e44136da 100644 --- a/content/@i18n/ja/tutorials/get-started/get-started-using-http-websocket-apis.md +++ b/content/@i18n/ja/tutorials/get-started/get-started-using-http-websocket-apis.md @@ -11,30 +11,30 @@ showcase_icon: assets/img/logos/globe.svg --- # HTTP / WebSocket APIの使用開始 -自分の好みのプログラミング言語の[クライアント・ライブラリ](client-libraries.html)を持っていなかったり、使いたくなかったりする場合は、XRP Ledgerのコアサーバソフトウェアである[`rippled`](xrpl-servers.html)のAPIを通して直接XRP Ledgerにアクセスすることができます。このサーバはJSON-RPCとWebSocketプロトコルでAPIを提供します。もし`rippled`(install-rippled.html)のインスタンスを実行しない場合でも、[公開サーバ][public servers]を利用することができます。 +自分の好みのプログラミング言語の[クライアント・ライブラリ](../../references/client-libraries.md)を持っていなかったり、使いたくなかったりする場合は、XRP Ledgerのコアサーバソフトウェアである[`rippled`](../../concepts/networks-and-servers/index.md)のAPIを通して直接XRP Ledgerにアクセスすることができます。このサーバはJSON-RPCとWebSocketプロトコルでAPIを提供します。もし`rippled`(install-rippled.html)のインスタンスを実行しない場合でも、[公開サーバ][public servers]を利用することができます。 -**ヒント:** [**WebSocket API ツール**](websocket-api-tool.html)を使ってAPIを利用することもできますし、[XRP Ledger Explorer](https://livenet.xrpl.org/)を使ってレジャーの進捗をライブで見ることもできます。 +**ヒント:** [**WebSocket API ツール**](/resources/dev-tools/websocket-api-tool)を使ってAPIを利用することもできますし、[XRP Ledger Explorer](https://livenet.xrpl.org/)を使ってレジャーの進捗をライブで見ることもできます。 ## JSON-RPCとWebSocketの違い JSON-RPCとWebSocketはどちらもHTTPベースのプロトコルであり、ほとんどの場合、両方のプロトコルで提供されるデータは同じです。主な違いは次の通りです。 - JSON-RPCは、RESTful APIと同様に、呼び出しごとに個別のHTTPリクエストとレスポンスを使用します。このAPIにアクセスするには、[curl](https://curl.se/)、[Postman](https://www.postman.com/downloads/)、[Requests](https://requests.readthedocs.io/)などの一般的なHTTPクライアントを使用できます。 -- WebSocketは、サーバがクライアントにデータをプッシュできる持続的な接続を使用します。[イベント購読](subscribe.html)のようなプッシュメッセージを必要とする機能は、WebSocketを使用してのみ利用可能です。 +- WebSocketは、サーバがクライアントにデータをプッシュできる持続的な接続を使用します。[イベント購読](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md)のようなプッシュメッセージを必要とする機能は、WebSocketを使用してのみ利用可能です。 どちらのAPIも暗号化されていない接続(`http://`と`ws://`)とTLSを使って暗号化された接続(`https://`と`wss://`)があります。暗号化されていない接続はオープンネットワーク上で提供すべきではありませんが、クライアントがサーバと同じマシン上にある場合は使用できます。 ## 管理者アクセス権限 -`rippled`サーバの[管理メソッド](admin-api-methods.html)を使用するには、次のように行います。この場合、サーバのバインド用として設定したIPアドレスとポートを使用する必要があります(例えば`127.0.0.1:54321`)。また、管理機能にアクセスするには、構成ファイルで**管理用としてマークされているポートおよびIPアドレス**から接続しなければなりません。 +`rippled`サーバの[管理メソッド](../../references/http-websocket-apis/admin-api-methods/index.md)を使用するには、次のように行います。この場合、サーバのバインド用として設定したIPアドレスとポートを使用する必要があります(例えば`127.0.0.1:54321`)。また、管理機能にアクセスするには、構成ファイルで**管理用としてマークされているポートおよびIPアドレス**から接続しなければなりません。 [構成ファイルの例](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073)では、ローカルループバックネットワーク上(127.0.0.1)のポート5005でJSON-RPC(HTTP)、ポート6006でWebSocket(WS)の接続をリッスンし、接続されるすべてのクライアントを管理者として扱っています。 ## WebSocket API -いくつかのメソッドをXRP Ledgerで試すことを予定している場合は、独自のWebSocketコードを記述することなく、[WebSocket APIツール](websocket-api-tool.html)でAPIをすぐに使用できます。後ほど、独自の`rippled`サーバへの接続が必要となった時点で、Web Socket接続をサポートした[独自のクライアントを構築](monitor-incoming-payments-with-websocket.html)したり[クライアントライブラリ](client-libraries.html)を利用することが可能です。 +いくつかのメソッドをXRP Ledgerで試すことを予定している場合は、独自のWebSocketコードを記述することなく、[WebSocket APIツール](/resources/dev-tools/websocket-api-tool)でAPIをすぐに使用できます。後ほど、独自の`rippled`サーバへの接続が必要となった時点で、Web Socket接続をサポートした[独自のクライアントを構築](monitor-incoming-payments-with-websocket.md)したり[クライアントライブラリ](../../references/client-libraries.md)を利用することが可能です。 WebSocket APIによるリクエストの例: @@ -48,7 +48,7 @@ WebSocket APIによるリクエストの例: レスポンスには、サーバの現在のステータスが表示されます。 -さらに見る: [リクエストのフォーマット >](request-formatting.html) [レスポンスのフォーマット >](response-formatting.html) [server_infoメソッドについて >][server_info method] +さらに見る: [リクエストのフォーマット >](../../references/http-websocket-apis/api-conventions/request-formatting.md) [レスポンスのフォーマット >](../../references/http-websocket-apis/api-conventions/response-formatting.md) [server_infoメソッドについて >][server_info method] ## JSON-RPC @@ -72,7 +72,7 @@ Content-Type: application/json レスポンスには、サーバの現在のステータスが表示されます。 -さらに見る: [リクエストのフォーマット >](request-formatting.html#json-rpcフォーマット) [レスポンスのフォーマット >](response-formatting.html) [server_infoメソッドについて >][server_info method] +さらに見る: [リクエストのフォーマット >](../../references/http-websocket-apis/api-conventions/request-formatting.md#json-rpcフォーマット) [レスポンスのフォーマット >](../../references/http-websocket-apis/api-conventions/response-formatting.md) [server_infoメソッドについて >][server_info method] ## コマンドライン @@ -84,7 +84,7 @@ Content-Type: application/json rippled --conf=/etc/rippled.cfg server_info ``` -さらに見る: [dコマンドライン使用リファレンス >](commandline-usage.html) +さらに見る: [dコマンドライン使用リファレンス >](../../infrastructure/commandline-usage.md) **注記:** コマンドラインインターフェイスは、管理の目的でのみ使用されることを想定しており _サポートされるAPIではありません_。`rippled`の将来のバージョンでは、警告なしにコマンドラインAPIに破壊的変更を加える可能性があります! @@ -92,24 +92,21 @@ rippled --conf=/etc/rippled.cfg server_info APIメソッドの完全なリストについては、こちらをご覧ください。 -- [パブリックな`rippled`メソッド](public-api-methods.html): レジャーからのデータの検索やトランザクションの送信など、パブリックサーバで利用可能なメソッドです。 -- [管理用`rippled`メソッド](admin-api-methods.html): [管理者向け](manage-the-rippled-server.html)の`rippled`サーバを管理するためのメソッドです。 +- [パブリックな`rippled`メソッド](../../references/http-websocket-apis/public-api-methods/index.md): レジャーからのデータの検索やトランザクションの送信など、パブリックサーバで利用可能なメソッドです。 +- [管理用`rippled`メソッド](../../references/http-websocket-apis/admin-api-methods/index.md): [管理者向け](../../infrastructure/installation/install-rippled-on-ubuntu.md)の`rippled`サーバを管理するためのメソッドです。 ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](xrp-ledger-overview.html) - - [ソフトウェアエコシステム](software-ecosystem.html) - - [並列ネットワーク](parallel-networks.html) + - [XRP Ledgerの概要](/about/) + - [ソフトウェアエコシステム](../../introduction/software-ecosystem.md) + - [並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md) - **チュートリアル:** - - [JavaScriptの使用開始](get-started-using-javascript.html) - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [rippledサーバの管理](manage-the-rippled-server.html) + - [JavaScriptの使用開始](get-started-using-javascript.md) + - [信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md) + - [rippledサーバの管理](../../infrastructure/installation/install-rippled-on-ubuntu.md) - **リファレンス:** - - [rippled APIリファレンス](http-websocket-apis.html) + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/get-started/get-started-using-javascript.md b/content/@i18n/ja/tutorials/get-started/get-started-using-javascript.md index 337e17273f..35e06056ad 100644 --- a/content/@i18n/ja/tutorials/get-started/get-started-using-javascript.md +++ b/content/@i18n/ja/tutorials/get-started/get-started-using-javascript.md @@ -12,7 +12,7 @@ showcase_icon: assets/img/logos/javascript.svg このチュートリアルでは、JavaScriptまたはTypeScript向けのクライアントライブラリである [`xrpl.js`](https://github.com/XRPLF/xrpl.js/) を使用して、Node.jsまたはウェブブラウザでXRP Ledgerに接続されたアプリケーションを構築するための基本的な手順を説明します。 -本ガイドで使用しているスクリプトや設定ファイルは、[本サイトのGitHubリポジトリ]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/get-started/js/)で公開されています。 +本ガイドで使用しているスクリプトや設定ファイルは、{% repo-link path="content/_code-samples/get-started/js/" %}本サイトのGitHubリポジトリ{% /repo-link %}で公開されています。 ## 学習目標 @@ -21,7 +21,7 @@ showcase_icon: assets/img/logos/javascript.svg * XRP Ledgerベースのアプリケーションの基本構成要素。 * xrpl.jsを使ったXRP Ledgerへの接続方法。 -* xrpl.jsを使った[テストネット](xrp-testnet-faucet.html)でのウォレット生成方法。 +* xrpl.jsを使った[テストネット](/resources/dev-tools/xrp-faucets)でのウォレット生成方法。 * `xrpl.js`ライブラリを使った、XRP Ledgerアカウント情報の検索方法。 * How to put these steps together to create a simple JavaScript app or web-app. @@ -42,7 +42,7 @@ npm install xrpl ## 作り始めましょう -XRP Ledgerを使用する際には、XRPを[ウォレット](wallets.html)に追加したり、[分散型取引所](decentralized-exchange.html)と統合したり、[トークンを発行](tokens.html)したりと、管理しなければならないことがいくつかあります。このチュートリアルでは、これらすべてのユースケースを始めるための共通の基本パターンを説明し、それらを実装するためのサンプルコードを提供します。 +XRP Ledgerを使用する際には、XRPを[ウォレット](../../introduction/crypto-wallets.md)に追加したり、[分散型取引所](../../concepts/tokens/decentralized-exchange/index.md)と統合したり、[トークンを発行](../../concepts/tokens/index.md)したりと、管理しなければならないことがいくつかあります。このチュートリアルでは、これらすべてのユースケースを始めるための共通の基本パターンを説明し、それらを実装するためのサンプルコードを提供します。 多くのXRP Ledgerプロジェクトで使用している手順をご紹介します。 @@ -89,32 +89,36 @@ const xrpl = require("xrpl") **Tip:** `xrpl.js` の多くのネットワーク関数は、[Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)を使って非同期に値を返します。ここで紹介するコードサンプルでは、[`async/await` パターン](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await)を使用して、Promises の実際の結果を待ちます。 -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} #### XRP Ledger メインネットへの接続 -前節のサンプルコードでは、利用可能な[並列ネットワーク](parallel-networks.html)の1つであるTestnetに接続する方法を紹介しました。本番環境に移行するには、XRP Ledger Mainnetに接続する必要があります。それには2つの方法があります。 +前節のサンプルコードでは、利用可能な[並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)の1つであるTestnetに接続する方法を紹介しました。本番環境に移行するには、XRP Ledger Mainnetに接続する必要があります。それには2つの方法があります。 -* [コアサーバをインストール](install-rippled.html) (`rippled`)して、自分でノードを動かしてみましょう。コアサーバーはデフォルトではMainnetに接続しますが、設定を変更してTestnetやDevnetを使うこともできます](connect-your-rippled-to-thexrp-test-net.html)。[独自のコアサーバーを運用するのには良い理由があります](networks-and-servers.html#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/" - const client = new xrpl.Client(MY_SERVER) - await client.connect() + ``` + const MY_SERVER = "ws://localhost:6006/" + const client = new xrpl.Client(MY_SERVER) + await client.connect() + ``` デフォルト値の詳細については、[コアサーバー設定ファイル](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562)の例を参照してください。 * 利用可能な[公開サーバー][]を利用する: - const PUBLIC_SERVER = "wss://xrplcluster.com/" - const client = new xrpl.Client(PUBLIC_SERVER) - await client.connect() + ``` + const PUBLIC_SERVER = "wss://xrplcluster.com/" + const client = new xrpl.Client(PUBLIC_SERVER) + await client.connect() + ``` ### 3. ウォレットの作成 `xrpl.js` ライブラリには、XRP Ledgerアカウントのキーとアドレスを扱うための "Wallet "クラスが用意されています。Testnetでは、次のようにして新しいウォレットに資金を供給することができます。 -{{ include_code("_code-samples/get-started/js/get-acct-info.js", start_with="// Create a wallet", end_before="// Get info", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Create a wallet" before="// Get info" language="js" /%} キーを生成するだけであれば、次のように新しいWalletインスタンスを作成することができます。 @@ -130,16 +134,16 @@ const test_wallet = xrpl.Wallet.fromSeed("sn3nxiW7v8KXzPzAqzyHXbSSKNuN9") // テ ### 4. XRP Ledgerの参照 -クライアントの`request()`メソッドを使って、XRP Ledgerの[WebSocket API](request-formatting.html)にアクセスします。例えば、以下のようになります。 +クライアントの`request()`メソッドを使って、XRP Ledgerの[WebSocket API](../../references/http-websocket-apis/api-conventions/request-formatting.md)にアクセスします。例えば、以下のようになります。 -{{ include_code("_code-samples/get-started/js/get-acct-info.js", start_with="// Get info", end_before="// Listen to ledger close events", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Get info" before="// Listen to ledger close events" language="js" /%} ### 5. イベントのListen -XRP Ledgerの[コンセンサス プロセス](consensus.html)が新しい[レジャーバージョン](ledgers.html)を生成したときなど、`xrpl.js`ではさまざまなタイプのイベントのハンドラを設定することができます。そのためには、まず[subscribeメソッド][]を呼び出して欲しいイベントの種類を取得し、クライアントの`on(eventType, callback)`メソッドを使ってイベントハンドラをアタッチします。 +XRP Ledgerの[コンセンサス プロセス](../../concepts/consensus-protocol/index.md)が新しい[レジャーバージョン](../../concepts/ledgers/index.md)を生成したときなど、`xrpl.js`ではさまざまなタイプのイベントのハンドラを設定することができます。そのためには、まず[subscribeメソッド][]を呼び出して欲しいイベントの種類を取得し、クライアントの`on(eventType, callback)`メソッドを使ってイベントハンドラをアタッチします。 -{{ include_code("_code-samples/get-started/js/get-acct-info.js", start_with="// Listen to ledger close events", end_before="// Disconnect when done", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Listen to ledger close events" before="// Disconnect when done" language="js" /%} ## 作り続けましょう @@ -147,26 +151,23 @@ XRP Ledgerの[コンセンサス プロセス](consensus.html)が新しい[レ これで、`xrpl.js`を使って、XRP Ledgerに接続したり、ウォレットを生成したり、アカウントの情報を調べたりする方法がわかりました。 次のようなことも可能です。 -* [XRPの送信](send-xrp.html). -* [代替可能トークンの発行](issue-a-fungible-token.html) -* アカウントに[安全な署名](secure-signing.html) を設定する。 +* [XRPの送信](send-xrp.md). +* [代替可能トークンの発行](../use-tokens/issue-a-fungible-token.md) +* アカウントに[安全な署名](../../concepts/transactions/secure-signing.md) を設定する。 ## 関連記事 - **概念:** - - [XRP Ledger Overview](xrp-ledger-overview.html) - - [クライアントライブラリ](client-libraries.html) + - [XRP Ledger Overview](/about/) + - [クライアントライブラリ](../../references/client-libraries.md) - **Tutorials:** - - [XRPの送信](send-xrp.html) + - [XRPの送信](send-xrp.md) - **References:** - [`xrpl.js` リファレンス](https://js.xrpl.org/) - - [Public API Methods](public-api-methods.html) - - [API規約](api-conventions.html) - - [base58 エンコード](base58-encodings.html) - - [トランザクションフォーマット](transaction-formats.html) + - [Public API Methods](../../references/http-websocket-apis/public-api-methods/index.md) + - [API規約](../../references/http-websocket-apis/api-conventions/index.md) + - [base58 エンコード](../../references/protocol/data-types/base58-encodings.md) + - [トランザクションフォーマット](../../references/protocol/transactions/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/get-started/monitor-incoming-payments-with-websocket.md b/content/@i18n/ja/tutorials/get-started/monitor-incoming-payments-with-websocket.md index b7b6b2c6f0..2ef52a5b30 100644 --- a/content/@i18n/ja/tutorials/get-started/monitor-incoming-payments-with-websocket.md +++ b/content/@i18n/ja/tutorials/get-started/monitor-incoming-payments-with-websocket.md @@ -9,7 +9,7 @@ labels: --- # WebSocketを使用した着信ペイメントの監視 -このチュートリアルでは、[WebSocket `rippled` API](http-websocket-apis.html)を使用して、着信[ペイメント](payment-types.html)を監視する方法を説明します。すべてのXRP Ledgerトランザクションは公開されているため、誰もが任意のアドレスへの着信ペイメントを監視できます。 +このチュートリアルでは、[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)。 @@ -18,8 +18,8 @@ WebSocketは、クライアントとサーバーが1つの接続を確立し、 ## 前提条件 - このページの例では、すべての主要な最新ブラウザーで使用できるJavaScriptおよびWebSocketプロトコルを使用しています。JavaScriptにある程度習熟し、WebSocketクライアントを使用する他のプログラミング言語の専門知識があれば、選択する言語に手順を適合させながら進めていくことができます。 -- 安定したインターネット接続と`rippled`サーバーへアクセスが必要です。埋め込まれている例では、Rippleの公開サーバーのプールに接続します。[独自の`rippled`サーバーを運用](install-rippled.html)する場合は、ローカルでそのサーバーに接続することもできます。 -- 丸め方によるエラーを発生させることなくXRPの価値を適切に処理するには、64ビット符号なし整数で計算できる数値タイプを使用できる必要があります。このチュートリアルの例では、[big.js](https://github.com/MikeMcl/big.js/)を使用しています。[トークン](tokens.html)を使用する場合は、さらに高い精度が求められます。詳細は、[通貨の精度](currency-formats.html#xrpの精度)を参照してください。 +- 安定したインターネット接続と`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の精度)を参照してください。 @@ -65,13 +65,13 @@ socket.addEventListener('close', (event) => { }) ``` -上記の例では、[Test Net](xrp-test-net-faucet.html)上にある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`サーバーに接続することで、インターネット上の公開サーバーに接続する際に使用できる[パブリックメソッド](public-api-methods.html)以外に、すべての[管理メソッド](admin-api-methods.html)と、[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メソッド]などの一部のレスポンスに含まれる管理者専用データを利用できます。 例: @@ -121,11 +121,11 @@ WebSocket接続では、複数のメッセージをどちらの方向にも送 - このレスポンスに対するリクエストで指定された`id`に一致する`id`フィールド(レスポンスが順序どおりに到着しない可能性があるため、これは重要です)。 - - APIがリクエストの処理に成功したかどうかを示す`status`フィールド。文字列値`success`は、[成功したレスポンス](response-formatting.html)を示します。文字列値`error`は、[エラー](error-formatting.html)を示します。 + - 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`は、必ずしもトランザクション自体が成功したことを意味しません。これは、サーバーによってリクエストが理解されたということのみを示します。トランザクションの実際の結果を確認するには、[トランザクションの結果の確認](look-up-transaction-results.html)を参照してください。 + **警告:** トランザクションを送信する際、WebSocketメッセージの先頭にある`success`の`status`は、必ずしもトランザクション自体が成功したことを意味しません。これは、サーバーによってリクエストが理解されたということのみを示します。トランザクションの実際の結果を確認するには、[トランザクションの結果の確認](../../concepts/transactions/finality-of-results/look-up-transaction-results.md)を参照してください。 -- [サブスクリプション](subscribe.html)からのフォローアップメッセージの場合、`type`は、新しいトランザクション、レジャーまたは検証の通知など、フォローアップメッセージのタイプを示します。または継続している[pathfindingリクエスト](path_find.html)のフォローアップを示します。クライアントがこれらのメッセージを受信するのは、それらをサブスクライブしている場合のみです。 +- [サブスクリプション](../../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)のフォローアップを示します。クライアントがこれらのメッセージを受信するのは、それらをサブスクライブしている場合のみです。 **ヒント:** [JavaScript向けxrpl.js](https://js.xrpl.org/)は、デフォルトでこのステップに対応しています。すべての非同期APIリクエストはPromiseを使用してレスポンスを提供します。また[`.on(event, callback)`メソッド](https://js.xrpl.org/classes/Client.html#on)を使用して、ストリームをリッスンできます。 @@ -291,7 +291,7 @@ const log_tx = function(tx) { WS_HANDLERS["transaction"] = log_tx ``` -以下の例では、別のウィンドウまたは別のデバイスで[Transaction Sender](tx-sender.html)を開くことと、サブスクライブしているアドレスへのトランザクションの送信を試みます。 +以下の例では、別のウィンドウまたは別のデバイスで[Transaction Sender](/resources/dev-tools/tx-sender)を開くことと、サブスクライブしているアドレスへのトランザクションの送信を試みます。 {{ start_step("Subscribe") }} @@ -334,37 +334,35 @@ WS_HANDLERS["transaction"] = log_tx ## {{n.next()}}. 着信ペイメントの読み取り -アカウントをサブスクライブすると、 _アカウントへのすべてのトランザクションとアカウントからのすべてのトランザクション_ 、および _アカウントに間接的に影響を及ぼすトランザクション_ に関するメッセージが表示されます。この例として、[トークン](tokens.html)の取引があります。アカウントが着信ペイメントを受け取った日時を認識することを目的とする場合、トランザクションストリームを絞り込んで、実際に支払われた額に基づいて支払いを処理する必要があります。以下の情報を探します。 +アカウントをサブスクライブすると、 _アカウントへのすべてのトランザクションとアカウントからのすべてのトランザクション_ 、および _アカウントに間接的に影響を及ぼすトランザクション_ に関するメッセージが表示されます。この例として、[トークン](../../concepts/tokens/index.md)の取引があります。アカウントが着信ペイメントを受け取った日時を認識することを目的とする場合、トランザクションストリームを絞り込んで、実際に支払われた額に基づいて支払いを処理する必要があります。以下の情報を探します。 -- **`validated`フィールド**は、トランザクションの結果が[最終的である](finality-of-results.html)ことを示します。これは、`accounts`をサブスクライブする場合に常に当てはまりますが、`accounts_proposed`または`transactions_proposed`ストリーム _も_ サブスクライブしている場合は、サーバーは未確認のトランザクションに関して同様のメッセージを同じ接続で送信します。予防策として、`validated`フィールドを常に確認することをお勧めします。 +- **`validated`フィールド**は、トランザクションの結果が[最終的である](../../concepts/transactions/finality-of-results/index.md)ことを示します。これは、`accounts`をサブスクライブする場合に常に当てはまりますが、`accounts_proposed`または`transactions_proposed`ストリーム _も_ サブスクライブしている場合は、サーバーは未確認のトランザクションに関して同様のメッセージを同じ接続で送信します。予防策として、`validated`フィールドを常に確認することをお勧めします。 -- **`meta.TransactionResult`フィールド**は、[トランザクションの結果](transaction-results.html)です。結果が`tesSUCCESS`でない場合は、トランザクションは失敗したため、値を送信できません。 +- **`meta.TransactionResult`フィールド**は、[トランザクションの結果](../../references/protocol/transactions/transaction-results/transaction-results.md)です。結果が`tesSUCCESS`でない場合は、トランザクションは失敗したため、値を送信できません。 - **`transaction.Account`** フィールドはトランザクションの送信元です。他の人が送信したトランザクションのみを探している場合は、このフィールドがあなたのアドレスと一致するトランザクションを無視できます(自身に対するクロスカレンシー支払いが _可能である_ 点に注意してください)。 - **`transaction.TransactionType`フィールド**はトランザクションのタイプです。アカウントに通貨を送金できる可能性があるトランザクションのタイプは以下のとおりです。 - - **[Paymentトランザクション][]** はXRPまたは[トークン](tokens.html)を送金できます。受取人のアドレスを含んでいる`transaction.Destination`フィールドによってこれらを絞り込み、必ず`meta.delivered_amount`を使用して実際に支払われた額を確認します。XRPの額は、[文字列のフォーマットで記述されます](basic-data-types.html#通貨額の指定)。 + - **[Paymentトランザクション][]** はXRPまたは[トークン](../../concepts/tokens/index.md)を送金できます。受取人のアドレスを含んでいる`transaction.Destination`フィールドによってこれらを絞り込み、必ず`meta.delivered_amount`を使用して実際に支払われた額を確認します。XRPの額は、[文字列のフォーマットで記述されます](../../references/protocol/data-types/basic-data-types.md#通貨額の指定)。 - **警告:** 代わりに`transaction.Amount`フィールドを使用すると、[Partial Paymentの悪用](partial-payments.html#partial-paymentの悪用)に対して脆弱になる可能性があります。不正使用者はこの悪用を行ってあなたをだまし、あなたが支払ったよりも多くの金額を交換または引き出すことができます。 + **警告:** 代わりに`transaction.Amount`フィールドを使用すると、[Partial Paymentの悪用](../../concepts/payment-types/partial-payments.md#partial-paymentの悪用)に対して脆弱になる可能性があります。不正使用者はこの悪用を行ってあなたをだまし、あなたが支払ったよりも多くの金額を交換または引き出すことができます。 - **[CheckCashトランザクション][]**では、アカウントは別のアカウントの[CheckCreateトランザクション][]によって承認された金額を受け取ることができます。**CheckCashトランザクション**のメタデータを確認すると、アカウントが受け取った通貨の額を確認できます。 - - **[EscrowFinishトランザクション][]** は、以前の[EscrowCreateトランザクション][]によって作成された[Escrow](escrow.html)を終了することでXRPを送金できます。**EscrowFinishトランザクション**のメタデータを確認すると、escrowからXRPを受け取ったアカウントと、その額を確認できます。 + - **[EscrowFinishトランザクション][]** は、以前の[EscrowCreateトランザクション][]によって作成された[Escrow](../../concepts/payment-types/escrow.md)を終了することでXRPを送金できます。**EscrowFinishトランザクション**のメタデータを確認すると、escrowからXRPを受け取ったアカウントと、その額を確認できます。 - - **[OfferCreateトランザクション][]** はアカウントがXRP Ledgerの[分散型取引所](decentralized-exchange.html)で以前発行したオファーを消費することで、XRPまたはトークンを送金できます。オファーを発行しないと、この方法で金額を受け取ることはできません。メタデータを確認して、アカウントが受け取った通貨(この情報がある場合)と、金額を確認します。 + - **[OfferCreateトランザクション][]** はアカウントがXRP Ledgerの[分散型取引所](../../concepts/tokens/decentralized-exchange/index.md)で以前発行したオファーを消費することで、XRPまたはトークンを送金できます。オファーを発行しないと、この方法で金額を受け取ることはできません。メタデータを確認して、アカウントが受け取った通貨(この情報がある場合)と、金額を確認します。 - - **[PaymentChannelClaimトランザクション][]** では、[Payment Channel](payment-channels.html)からXRPを送金できます。メタデータを確認して、トランザクションからXRPを受け取ったアカウント(この情報がある場合)を確認します。 + - **[PaymentChannelClaimトランザクション][]** では、[Payment Channel](../../concepts/payment-types/payment-channels.md)からXRPを送金できます。メタデータを確認して、トランザクションからXRPを受け取ったアカウント(この情報がある場合)を確認します。 - **[PaymentChannelFundトランザクション][]** は、閉鎖された(期限切れの)Payment Channelから送金元にXRPを返金することができます。 -- **`meta`フィールド**には、1つまたは複数の通貨の種類とその正確な金額、その送金先などを示す[トランザクションメタデータ](transaction-metadata.html)が示されています。トランザクションメタデータを理解する方法の詳細は、[トランザクションの結果の確認](look-up-transaction-results.html)を参照してください。 +- **`meta`フィールド**には、1つまたは複数の通貨の種類とその正確な金額、その送金先などを示す[トランザクションメタデータ](../../references/protocol/transactions/metadata.md)が示されています。トランザクションメタデータを理解する方法の詳細は、[トランザクションの結果の確認](../../concepts/transactions/finality-of-results/look-up-transaction-results.md)を参照してください。 以下のサンプルコードは、上に示したすべてのトランザクションのタイプのトランザクションメタデータを確認し、アカウントが受け取ったXRPの金額をレポートします。 -```js -{% include '_code-samples/monitor-payments-websocket/js/read-amount-received.js' %} -``` +{% code-snippet file="/_code-samples/monitor-payments-websocket/js/read-amount-received.js" language="js" /%} {{ start_step("Read Payments") }} @@ -469,24 +467,22 @@ $("#tx_read").click((event) => { ## 次のステップ -- [トランザクションの結果の確認](look-up-transaction-results.html)で、トランザクションの実行内容を確認し、適切に対応するソフトウェアを構築します。 -- あなた自身のアドレスから[XRPの送金](send-xrp.html)を試します。 -- [Escrow](escrow.html)、[Checks](checks.html)または[Payment Channel](payment-channels.html)のような高度なタイプのトランザクションの監視と着信通知へのレスポンスを試します。 +- [トランザクションの結果の確認](../../concepts/transactions/finality-of-results/look-up-transaction-results.md)で、トランザクションの実行内容を確認し、適切に対応するソフトウェアを構築します。 +- あなた自身のアドレスから[XRPの送金](send-xrp.md)を試します。 +- [Escrow](../../concepts/payment-types/escrow.md)、[Checks](../../concepts/payment-types/checks.md)または[Payment Channel](../../concepts/payment-types/payment-channels.md)のような高度なタイプのトランザクションの監視と着信通知へのレスポンスを試します。 ## その他のプログラミング言語 多くのプログラミング言語には、WebSocket接続を使用して、データの送受信を行うためのライブラリが用意されています。JavaScript以外の言語で`rippled`のWebSocket APIとの通信を効率良く始めるには、同様な機能を利用している以下の例を参考にしてください。 - +{% tabs %} -_Go_ +{% tab label="Go" %} +{% code-snippet file="/_code-samples/monitor-payments-websocket/go/monitor-incoming-payments.go" language="go" /%} +{% /tab %} -```go -{% include '_code-samples/monitor-payments-websocket/go/monitor-incoming-payments.go' %} -``` - - +{% /tabs %} **ヒント:** 目的のプログラミング言語の例がない場合があります。このページの最上部にある「GitHubで編集する」リンクをクリックして、作成したサンプルコードを提供してください。 @@ -497,17 +493,14 @@ _Go_ ## 関連項目 - **コンセプト:** - - [トランザクション](transactions.html) - - [結果のファイナリティー](finality-of-results.html) - トランザクションの成功また失敗が最終的なものとなるタイミングを判断する方法(簡単な説明: トランザクションが検証済みレジャーにある場合は、その結果とメタデータは最終的なものです)。 + - [トランザクション](../../concepts/transactions/index.md) + - [結果のファイナリティー](../../concepts/transactions/finality-of-results/index.md) - トランザクションの成功また失敗が最終的なものとなるタイミングを判断する方法(簡単な説明: トランザクションが検証済みレジャーにある場合は、その結果とメタデータは最終的なものです)。 - **チュートリアル:** - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [トランザクションの結果の確認](look-up-transaction-results.html) + - [信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md) + - [トランザクションの結果の確認](../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - **リファレンス:** - - [トランザクションのタイプ](transaction-types.html) - - [トランザクションのメタデータ](transaction-metadata.html) - メタデータフォーマットとメタデータに表示されるフィールドの概要 - - [トランザクションの結果](transaction-results.html) - トランザクションのすべての結果コードを掲載した表一覧 + - [トランザクションのタイプ](../../references/protocol/transactions/types/index.md) + - [トランザクションのメタデータ](../../references/protocol/transactions/metadata.md) - メタデータフォーマットとメタデータに表示されるフィールドの概要 + - [トランザクションの結果](../../references/protocol/transactions/transaction-results/transaction-results.md) - トランザクションのすべての結果コードを掲載した表一覧 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/get-started/public-servers.md b/content/@i18n/ja/tutorials/get-started/public-servers.md index 124dbb78f6..5ad8bf6f08 100644 --- a/content/@i18n/ja/tutorials/get-started/public-servers.md +++ b/content/@i18n/ja/tutorials/get-started/public-servers.md @@ -7,20 +7,20 @@ labels: --- # 公開サーバー -[自分で`rippled`サーバーを運営しない](install-rippled.html)場合は、以下の公開サーバーを利用して、トランザクションを送信したり、レジャーからデータを取得したりすることができます。 +[自分で`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/` | 汎用サーバークラスター | -| Ripple[¹][] | **Mainnet** | `https://s2.ripple.com:51234/` | `wss://s2.ripple.com/` | [全履歴サーバ](ledger-history.html#すべての履歴) クラスター | +| 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[¹][] | 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 | -[ネットワーク]: parallel-networks.html +[ネットワーク]: ../../concepts/networks-and-servers/parallel-networks.md [¹]: #footnote-1 [²]: #footnote-2 @@ -28,7 +28,4 @@ labels: ² `xrpl.ws`は`xrplcluster.com`のエイリアスです。しかし、`.ws` というトップレベルドメインの信頼性は、本番での使用には適さないかもしれません。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/get-started/send-xrp.md b/content/@i18n/ja/tutorials/get-started/send-xrp.md index 2c45687b70..aa2831b7b1 100644 --- a/content/@i18n/ja/tutorials/get-started/send-xrp.md +++ b/content/@i18n/ja/tutorials/get-started/send-xrp.md @@ -21,11 +21,11 @@ top_nav_grouping: 人気ページ {% set use_network = "Testnet" %} -- このページでは、xrpl.jsライブラリーを使用するJavaScriptの例を紹介します。[xrpl.js入門ガイド](get-started-using-javascript.html)に、xrpl.jsを使用してJavaScriptからXRP Ledgerデータにアクセスする方法の説明があります。 +- このページでは、xrpl.jsライブラリーを使用するJavaScriptの例を紹介します。[xrpl.js入門ガイド](get-started-using-javascript.md)に、xrpl.jsを使用してJavaScriptからXRP Ledgerデータにアクセスする方法の説明があります。 - XRP Ledgerでトランザクションを送信するには、まずアドレスと秘密鍵、そしていくらかのXRPが必要となります。次のインターフェイスを使用して、XRP Test NetにあるアドレスとTestnet XRPを入手できます。 -{% include '_snippets/interactive-tutorials/generate-step.ja.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} ## Testnetでの送金 {% set n = cycler(* range(1,99)) %} @@ -36,31 +36,31 @@ top_nav_grouping: 人気ページ 以下のサンプルコードでは公開XRP Testnetサーバーに接続します。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Connect" before="# Get credentials" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Connect" before="// Prepare transaction" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Connect", end_before="# Get credentials", language="py") }} - -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Connect", end_before="// Prepare transaction", language="java") }} - - +{% /tabs %} このチュートリアルでは、以下のボタンをクリックすることでブラウザーから直接接続できます。 -{% include '_snippets/interactive-tutorials/connect-step.ja.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. トランザクションの準備 -通常は、XRP LedgerトランザクションをオブジェクトとしてJSON[トランザクションフォーマット](transaction-formats.html)で作成します。以下の例に、必要最小限の送金仕様を示します。 +通常は、XRP LedgerトランザクションをオブジェクトとしてJSON[トランザクションフォーマット](../../references/protocol/transactions/index.md)で作成します。以下の例に、必要最小限の送金仕様を示します。 ```json { @@ -80,21 +80,21 @@ XRP送金に対して指定する必要がある必要最小限の指示は次 技術上、一部の追加のフィールドは実行可能なトランザクションに含める必要があり、また、省略可能なフィールドでも、`LastLedgerSequence`などは含めることを強く推奨します。[`autofill()`メソッド](https://js.xrpl.org/classes/Client.html#autofill)は、トランザクションの残りのフィールドに適切なデフォルトを自動的に入力します。上記の送金を準備する際の例を示します。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Prepare" before="// Sign" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Prepare", end_before="// Sign", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Prepare" before="# Sign" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Prepare" before="// Sign" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Prepare", end_before="# Sign", language="py" ) }} - -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Prepare", end_before="// Sign", language="java") }} - - +{% /tabs %} {{ start_step("Prepare") }}
      @@ -116,27 +116,24 @@ _Java_ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#sign)を使用して、トランザクションに署名します。最初の引数は、署名するJSONトランザクションの文字列バージョンです。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Sign" before="// Submit" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", - start_with="// Sign", end_before="// Submit", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Sign" before="# Submit" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Sign" before="// Submit" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", - start_with="# Sign", end_before="# Submit", language="py" ) }} - -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", - start_with="// Sign", end_before="// Submit", language="java" ) }} - - +{% /tabs %} -署名処理の結果は、署名を含むトランザクションオブジェクトになります。通常、XRP Ledger APIは、署名済みトランザクションがトランザクションの正規の[バイナリーフォーマット](serialization.html)(「ブロブ」と呼ばれる)の16進数表現になることを想定しています。 +署名処理の結果は、署名を含むトランザクションオブジェクトになります。通常、XRP Ledger APIは、署名済みトランザクションがトランザクションの正規の[バイナリーフォーマット](../../references/protocol/binary-format.md)(「ブロブ」と呼ばれる)の16進数表現になることを想定しています。 署名APIは、トランザクションのID、つまり識別用ハッシュを返します。この識別用ハッシュは、後でトランザクションを検索する際に使用します。識別用ハッシュは、このトランザクションに固有の64文字の16進文字列です。 @@ -150,20 +147,21 @@ _Java_ トランザクションをネットワークに送信します。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Submit" before="// Wait" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Submit", end_before="// Wait", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Submit" before="# Wait" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Submit" before="// Wait" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Submit", end_before="# Wait", language="py") }} - -_Java_ -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Submit", end_before="// Wait", language="java" ) }} - - +{% /tabs %} このメソッドは、ローカルでトランザクションを適用しようと試みたときの**一時的な**結果を返します。この結果は、トランザクションが検証済みレジャーに含まれた時点で変わる_可能性があります_。当初は成功していたトランザクションが最終的に失敗となったり、当初失敗していたトランザクションが最終的に成功する場合があります。しかしながら、一時的な結果はほとんどの場合は最終結果と一致するため、ここで`tesSUCCESS`が表示されたらひとまず安心しても問題ありません。😁 @@ -171,10 +169,10 @@ _Java_ - 送信元および送信先の正しいアドレスを使用しているか。 - トランザクションの他のフィールドへの入力漏れ、ステップのスキップ、その他の入力ミスがないか。 -- トランザクションの送信に必要なTest Net XRPが十分にあるか。送金できるXRPの額は、[必要準備金](reserves.html)によって制限されています。現時点では、20XRPに加えて、レジャー内に保有している各「オブジェクト」につき5XRPずつ追加となります。(Test Net Faucetを使用して新しいアドレスを生成した場合は、保有するオブジェクトはありません。) +- トランザクションの送信に必要なTest Net XRPが十分にあるか。送金できるXRPの額は、[必要準備金](../../concepts/accounts/reserves.md)によって制限されています。現時点では、20XRPに加えて、レジャー内に保有している各「オブジェクト」につき5XRPずつ追加となります。(Test Net Faucetを使用して新しいアドレスを生成した場合は、保有するオブジェクトはありません。) - テストネットワークのサーバーに接続しているか。 -他の可能性については、[トランザクション結果](transaction-results.html)の完全なリストを参照してください。 +他の可能性については、[トランザクション結果](../../references/protocol/transactions/transaction-results/transaction-results.md)の完全なリストを参照してください。 {{ start_step("Submit") }} @@ -184,26 +182,26 @@ _Java_ ### {{n.next()}}. 検証の待機 -ほとんどのトランザクションは送信後の次のレジャーバージョンに承認されます。つまり、4~7秒でトランザクションの結果が最終的なものになる可能性があります。XRP Ledgerがビジーになっているか、ネットワーク接続の品質が悪いためにトランザクションをネットワーク内で中継する処理が遅延した場合は、トランザクション確定までにもう少し時間がかかることがあります。(トランザクションの有効期限を設定する方法については、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。) +ほとんどのトランザクションは送信後の次のレジャーバージョンに承認されます。つまり、4~7秒でトランザクションの結果が最終的なものになる可能性があります。XRP Ledgerがビジーになっているか、ネットワーク接続の品質が悪いためにトランザクションをネットワーク内で中継する処理が遅延した場合は、トランザクション確定までにもう少し時間がかかることがあります。(トランザクションの有効期限を設定する方法については、[信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md)を参照してください。) - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Wait" before="// Check" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Wait", end_before="// Check", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Wait" before="# Check" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Wait" before="// Check" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Wait", end_before="# Check", language="py") }} - -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Wait", end_before="// Check", language="java" ) }} - - +{% /tabs %} {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.ja.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -211,24 +209,24 @@ _Java_ トランザクションが行った内容を正確に把握するために、トランザクションが検証済みレジャーバージョンに記録されたときにトランザクションの結果を調べる必要があります。例えば、[txメソッド][]を使用して、トランザクションのステータスを確認できます。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Check" before="// End of" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Check", end_before="// End of", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Check" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Check" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Check", language="py") }} - -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Check", language="java" ) }} - - +{% /tabs %} -**注意:** APIは、まだ検証されていないレジャーバージョンからの暫定的な結果を返す場合があります。例えば、`rippled` APIの[txメソッド][]を使用した場合は、レスポンス内の`"validated": true`を探して、データが検証済みレジャーバージョンからのものであることを確認してください。検証済みレジャーバージョンからのものではないトランザクション結果は、変わる可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)を参照してください。 +**注意:** APIは、まだ検証されていないレジャーバージョンからの暫定的な結果を返す場合があります。例えば、`rippled` APIの[txメソッド][]を使用した場合は、レスポンス内の`"validated": true`を探して、データが検証済みレジャーバージョンからのものであることを確認してください。検証済みレジャーバージョンからのものではないトランザクション結果は、変わる可能性があります。詳細は、[結果のファイナリティー](../../concepts/transactions/finality-of-results/index.md)を参照してください。 {{ start_step("Check") }} @@ -247,27 +245,26 @@ _Java_ このチュートリアルでは、Test Net XRPがすでに資金供給されているアドレスをボタンで取得しましたが、それが可能だったのはTest Net XRPに何の価値もないからです。実際のXRPでは、XRPを所有している他者からXRPを入手する必要があります。(たとえば、取引所で購入する方法など。)[xrpl.jsのWallet()クラス](https://js.xrpl.org/classes/Wallet.html)を使用して、本番またはTestnetで機能するアドレスとシークレットを生成できます。 - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const wallet = new xrpl.Wallet() console.log(wallet.address) // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f console.log(wallet.seed) // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` +{% /tab %} -_Python_ - +{% tab label="Python" %} ```py from xrpl.wallet import Wallet my_wallet = Wallet.create() print(my_wallet.address) # Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f print(my_wallet.seed) # Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` +{% /tab %} -_Java_ - +{% tab label="Java" %} ```java WalletFactory walletFactory = DefaultWalletFactory.getInstance(); SeedWalletGenerationResult generationResult = walletFactory.randomWallet(false); @@ -275,42 +272,43 @@ Wallet wallet = generationResult.wallet(); System.out.println(wallet.classicAddress()); // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f System.out.println(generationResult.seed()); // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` +{% /tab %} - +{% /tabs %} **警告:** ローカルマシンで安全な方法で生成したアドレスとシークレットのみを使用してください。別のコンピューターでアドレスとシークレットを生成して、ネットワーク経由でそれらを自分に送信した場合は、ネットワーク上の他の人がその情報を見ることができる可能性があります。その情報見ることができる人は、あなたと同じようにあなたのXRPを操作できます。また、Test Netと本番で同じアドレスを使用しないことも推奨します。指定したパラメーターによっては、一方のネットワークに向けて作成したトランザクションが、もう一方のネットワークでも実行可能になるおそれがあるためです。 -アドレスとシークレットを生成しても、直接XRPを入手できるわけではありません。単に乱数を選択しているだけです。また、そのアドレスでXRPを受け取って[アカウントに資金供給](accounts.html#アカウントの作成)する必要があります。XRPを取得する方法として最も一般的なのは、取引所から購入し、所有しているアドレスに入れる方法です。詳細は、[XRP Overview](xrp-overview.html)を参照してください。 +アドレスとシークレットを生成しても、直接XRPを入手できるわけではありません。単に乱数を選択しているだけです。また、そのアドレスでXRPを受け取って[アカウントに資金供給](../../concepts/accounts/accounts.md#アカウントの作成)する必要があります。XRPを取得する方法として最も一般的なのは、取引所から購入し、所有しているアドレスに入れる方法です。詳細は、[XRP Overview](/about/xrp)を参照してください。 ### 本番XRP Ledgerへの接続 XRP Ledgerと同期しているサーバーを指定する必要があります。多くの場合は公開サーバーを、以下のスニペットなどで使用できます。 - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const xrpl = require('xrpl') const api = new xrpl.Client('wss://xrplcluster.com') api.connect() ``` +{% /tab %} -_Python_ - +{% tab label="Python" %} ```py from xrpl.clients import JsonRpcClient client = JsonRpcClient("https://xrplcluster.com") ``` +{% /tab %} -_Java_ - +{% tab label="Java" %} ```java final HttpUrl rippledUrl = HttpUrl.get("https://xrplcluster.com"); XrplClient xrplClient = new XrplClient(rippledUrl); ``` +{% /tab %} - +{% /tabs %} **ヒント:** ローカル接続では、WebSocketプロトコルのTLSで暗号化されたバージョン(`wss`)ではなく、暗号化されていないバージョン(`ws`)を使用します。この方式は、通信が同じマシンの中だけで行われてマシンの外に出て行かないという点で安全で、TLS証明書が不要であるため設定が簡単です。外部ネットワークとの接続では、必ず`wss`を使用してください。 @@ -318,13 +316,10 @@ XrplClient xrplClient = new XrplClient(rippledUrl); このチュートリアルを完了後は、以下を試してみてください。 -- 本番システム向けに[信頼できるトランザクションの送信](reliable-transaction-submission.html)を構築する +- 本番システム向けに[信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md)を構築する - [xrpl.jsリファレンス](https://js.xrpl.org/)を参照して、XRP Ledgerの全機能を確認する -- [アカウント設定](manage-account-settings.html)をカスタマイズする -- [トランザクションのメタデータ](transaction-metadata.html)にトランザクションの結果の詳細がどのように記述されているかを知る -- escrowやPayment Channelなどの[複雑な支払いタイプ](complex-payment-types.html)について調べる +- [アカウント設定](../tasks/manage-account-settings/index.md)をカスタマイズする +- [トランザクションのメタデータ](../../references/protocol/transactions/metadata.md)にトランザクションの結果の詳細がどのように記述されているかを知る +- escrowやPayment Channelなどの[複雑な支払いタイプ](../../concepts/payment-types/index.md)について調べる - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/http-websocket-apis/index.md b/content/@i18n/ja/tutorials/http-websocket-apis/index.md index 7c801a2b00..40f0d8b410 100644 --- a/content/@i18n/ja/tutorials/http-websocket-apis/index.md +++ b/content/@i18n/ja/tutorials/http-websocket-apis/index.md @@ -2,8 +2,12 @@ html: http-websocket-apis-tutorials.html parent: tutorials.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # HTTP / Websocket API -HTTP / Websocket APIのXRPLチュートリアルです。 \ No newline at end of file +HTTP / Websocket APIのXRPLチュートリアルです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/java/index.md b/content/@i18n/ja/tutorials/java/index.md index ec36bfc529..6db44f8c31 100644 --- a/content/@i18n/ja/tutorials/java/index.md +++ b/content/@i18n/ja/tutorials/java/index.md @@ -2,8 +2,12 @@ html: java.html parent: tutorials.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Java -JavaでのXRPLチュートリアルです。 \ No newline at end of file +JavaでのXRPLチュートリアルです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/javascript/index.md b/content/@i18n/ja/tutorials/javascript/index.md index db682fa878..5ab303d25a 100644 --- a/content/@i18n/ja/tutorials/javascript/index.md +++ b/content/@i18n/ja/tutorials/javascript/index.md @@ -2,8 +2,12 @@ html: javascript.html parent: tutorials.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # JavaScript -JavaScriptでのXRPLチュートリアルです。 \ No newline at end of file +JavaScriptでのXRPLチュートリアルです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/index.md b/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/index.md index 7cbf2bd77d..a2fe99ccdf 100644 --- a/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/index.md +++ b/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/index.md @@ -2,8 +2,12 @@ html: modular-tutorials-in-javascript.html parent: javascript.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # JavaScriptのモジュール形式チュートリアル -JavaScriptによるモジュール式XRPLチュートリアルです。 \ No newline at end of file +JavaScriptによるモジュール式XRPLチュートリアルです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md b/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md index 96613159e6..79438b3a7e 100644 --- a/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md +++ b/content/@i18n/ja/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md @@ -2,8 +2,12 @@ html: nfts-using-javascript.html parent: modular-tutorials-in-javascript.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # JavaScriptを使ったNFT -XRP Ledger上でNFTのミントと販売を行います。 \ No newline at end of file +XRP Ledger上でNFTのミントと販売を行います。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/assign-a-regular-key-pair.md b/content/@i18n/ja/tutorials/manage-account-settings/assign-a-regular-key-pair.md index 387371b151..3c2badc4d3 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/assign-a-regular-key-pair.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/assign-a-regular-key-pair.md @@ -10,7 +10,7 @@ labels: XRP Ledgerでは、アカウントはその後のトランザクションには _レギュラーキーペア_ と呼ばれるセカンダリキーペアで署名することができます。レギュラーキーペアの秘密鍵が漏えいした場合は、秘密鍵を削除または交換できます。その際に、アカウントの秘密鍵以外の設定を変更したり、他のアカウントとの関係を再設定する必要はありません。レギュラーキーペアを積極的にローテーションすることも可能です。(アカウントのアドレスに固有に関連付けられているアカウントのマスターキーペアでは、このような操作は実行できません。) -マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。 +マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](../../concepts/accounts/cryptographic-keys.md)を参照してください。 このチュートリアルでは、レギュラーキーペアをアカウントに割り当てるために必要な手順を説明します。 @@ -28,42 +28,41 @@ XRP Ledgerでは、アカウントはその後のトランザクションには リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command":"wallet_propose" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"wallet_propose" } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: wallet_propose rippled wallet_propose ``` +{% /tab %} - +{% /tabs %} ### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result":{ @@ -79,9 +78,9 @@ rippled wallet_propose "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result":{ @@ -96,9 +95,9 @@ rippled wallet_propose } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result" :{ @@ -113,8 +112,9 @@ rippled wallet_propose } } ``` +{% /tab %} - +{% /tabs %} 次のステップでは、このレスポンスの`account_id`を使用してキーペアをレギュラーキーペアとしてアカウントに割り当てます。また、`master_seed`値を安全な場所に保管してください。(この値以外は特に覚えておく必要はありません。) @@ -125,13 +125,13 @@ rippled wallet_propose SetRegularKeyトランザクションでレギュラーキーペアを初めてアカウントに割り当てる際には、アカウントのマスター秘密鍵(シークレット)による署名が必要です。マスター秘密鍵の送信は危険であるため、トランザクションの署名とネットワークへのトランザクション送信を切り離した2段階方式でこのトランザクションを実行します。 -それ以降のSetRegularKeyトランザクションの送信時には、既存のレギュラー秘密鍵で署名し、レギュラー秘密鍵自体を置換または[削除](change-or-remove-a-regular-key-pair.html)できます。ネットワーク上でレギュラー秘密鍵を送信してはならないことに注意してください。 +それ以降のSetRegularKeyトランザクションの送信時には、既存のレギュラー秘密鍵で署名し、レギュラー秘密鍵自体を置換または[削除](change-or-remove-a-regular-key-pair.md)できます。ネットワーク上でレギュラー秘密鍵を送信してはならないことに注意してください。 ### トランザクションの署名 -{% include '_snippets/tutorial-sign-step.ja.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + リクエストフィールドに以下の値を指定します。 @@ -146,10 +146,9 @@ SetRegularKeyトランザクションでレギュラーキーペアを初めて リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command":"sign", @@ -161,9 +160,9 @@ SetRegularKeyトランザクションでレギュラーキーペアを初めて "secret":"ssCATR7CBvn4GLd1UuU2bqqQffHki" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"sign", @@ -179,25 +178,25 @@ SetRegularKeyトランザクションでレギュラーキーペアを初めて ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: sign secret tx_json rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7"}' ``` +{% /tab %} - +{% /tabs %} #### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result":{ @@ -218,9 +217,9 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result":{ @@ -240,9 +239,9 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result" :{ @@ -262,8 +261,9 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", } } ``` +{% /tab %} - +{% /tabs %} `sign`コマンドのレスポンスには上記のような`tx_blob`値が含まれています。オフライン署名レスポンスには`signedTransaction`値が含まれています。いずれもトランザクションの署名済みバイナリ表現(ブロブ)です。 @@ -278,19 +278,18 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command":"submit", "tx_blob":"1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"submit", @@ -301,25 +300,25 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: submit tx_blob rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540 ``` +{% /tab %} - +{% /tabs %} #### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result":{ @@ -343,9 +342,9 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result":{ @@ -368,9 +367,9 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result" :{ @@ -393,11 +392,12 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 } } ``` +{% /tab %} - +{% /tabs %} -レスポンスに含まれるトランザクションの`hash`は、[トランザクションの最終結果を検索する](tx.html)ときに使用できることに注意してください。 +レスポンスに含まれるトランザクションの`hash`は、[トランザクションの最終結果を検索する](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md)ときに使用できることに注意してください。 ## 3. レギュラーキーペアの検証 @@ -409,8 +409,8 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 ### トランザクションの署名 -{% include '_snippets/tutorial-sign-step.ja.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + リクエストフィールドに以下の値を指定します。 @@ -425,10 +425,9 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 リクエストのフォーマットの例を示します。このリクエストには`AccountSet`オプションが含まれていないことに注意してください。つまり、トランザクションの成功による影響は、アカウントのレギュラーキーペアが正しく設定されていることを確認する(およびトランザクションコストを消却する)こと以外に何もありません。 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command":"sign", @@ -439,9 +438,9 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 "secret":"sh8i92YRnEjJy3fpFkL8txQSCVo79" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"sign", @@ -456,25 +455,25 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: sign secret tx_json rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` +{% /tab %} - +{% /tabs %} #### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result":{ @@ -494,9 +493,9 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result":{ @@ -515,9 +514,9 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result" :{ @@ -536,8 +535,9 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac } } ``` +{% /tab %} - +{% /tabs %} `sign`コマンドのレスポンスには上記のような`tx_blob`値が含まれています。オフライン署名レスポンスには`signedTransaction`値が含まれています。いずれもトランザクションの署名済みバイナリ表現(ブロブ)です。 @@ -552,19 +552,18 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command":"submit", "tx_blob":"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"submit", @@ -575,25 +574,25 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh #Syntax: submit tx_blob rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` +{% /tab %} - +{% /tabs %} #### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result":{ @@ -616,9 +615,9 @@ rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result":{ @@ -640,9 +639,9 @@ rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```json { "result" :{ @@ -664,20 +663,18 @@ rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D } } ``` +{% /tab %} - +{% /tabs %} ## 4. 次のステップ これで、レギュラーキーペアをアカウントに割り当てるメリットについて理解しました。次に以下の関連トピックとチュートリアルを参照してください。 -- [レギュラーキーペアの変更または削除](change-or-remove-a-regular-key-pair.html) -- [マルチシグの設定](set-up-multi-signing.html) -- [発行アドレスと運用アドレス](account-types.html) -- [取引所としてのXRPの上場](list-xrp-as-an-exchange.html) +- [レギュラーキーペアの変更または削除](change-or-remove-a-regular-key-pair.md) +- [マルチシグの設定](set-up-multi-signing.md) +- [発行アドレスと運用アドレス](../../concepts/accounts/account-types.md) +- [取引所としてのXRPの上場](../../use-cases/defi/list-xrp-as-an-exchange.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md b/content/@i18n/ja/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md index 06eeaa6c07..0ef598483b 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md @@ -10,27 +10,27 @@ labels: XRP Ledgerでは、アカウントはその後のトランザクションには _レギュラーキーペア_ と呼ばれるセカンダリキーペアで署名することができます。アカウントのレギュラーキーペアが漏えいした場合、またはセキュリティ対策としてレギュラーキーペアを定期的に変更する必要がある場合は、[SetRegularKeyトランザクション][]を使用してアカウントレギュラーキーペアを削除または変更します。 -マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。 +マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](../../concepts/accounts/cryptographic-keys.md)を参照してください。 ## レギュラーキーペアの変更 -既存のレギュラーキーペアを変更する手順は、初めて[レギュラーキーを割り当てる](assign-a-regular-key-pair.html)手順とほぼ同じです。キーペアを生成し、レギュラーキーペアとしてアカウントに割り当てます。これにより既存のレギュラーキーペアが上書きされます。ただし大きく異なる点は、既存のレギュラーキーペアを変更するときには既存のレギュラー秘密鍵を使用して秘密鍵自体を置き換えることができますが、レギュラーキーペアをアカウントに初めて割り当てるときにはアカウントのマスター秘密鍵を使用する必要があることです。 +既存のレギュラーキーペアを変更する手順は、初めて[レギュラーキーを割り当てる](assign-a-regular-key-pair.md)手順とほぼ同じです。キーペアを生成し、レギュラーキーペアとしてアカウントに割り当てます。これにより既存のレギュラーキーペアが上書きされます。ただし大きく異なる点は、既存のレギュラーキーペアを変更するときには既存のレギュラー秘密鍵を使用して秘密鍵自体を置き換えることができますが、レギュラーキーペアをアカウントに初めて割り当てるときにはアカウントのマスター秘密鍵を使用する必要があることです。 -マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。 +マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](../../concepts/accounts/cryptographic-keys.md)を参照してください。 ## レギュラーキーペアの削除 -漏えいしたレギュラーキーペアを単にアカウントから削除する場合は、キーペアを最初に生成する必要はありません。`RegularKey`フィールドを省略した[SetRegularKeyトランザクション][]を使用します。アカウントの別の署名手段(マスターキーペアまたは[署名者リスト](multi-signing.html))が現在有効になっていない場合は、トランザクションが失敗することに注意してください。 +漏えいしたレギュラーキーペアを単にアカウントから削除する場合は、キーペアを最初に生成する必要はありません。`RegularKey`フィールドを省略した[SetRegularKeyトランザクション][]を使用します。アカウントの別の署名手段(マスターキーペアまたは[署名者リスト](../../concepts/accounts/multi-signing.md))が現在有効になっていない場合は、トランザクションが失敗することに注意してください。 アカウントのレギュラーキーペアを削除する場合、`SetRegularKey`トランザクションでは、アカウントのマスター秘密鍵(シークレット)または既存のレギュラーキーペアによる署名が必要です。マスター秘密鍵またはレギュラー秘密鍵の送信は危険であるため、トランザクションの署名とネットワークへのトランザクションの送信を切り離した2段階方式でこのトランザクションを実行します。 ### トランザクションの署名 -{% include '_snippets/tutorial-sign-step.ja.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + リクエストフィールドに以下の値を指定します。 @@ -44,10 +44,9 @@ XRP Ledgerでは、アカウントはその後のトランザクションには リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "command":"sign", @@ -58,42 +57,42 @@ XRP Ledgerでは、アカウントはその後のトランザクションには "secret":"snoPBrXtMeMyMHUVTgbuqAfg1SUTb" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` { "method":"sign", "params":[ - { - "secret" :"snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "tx_json" :{ - "TransactionType" :"SetRegularKey", - "Account" :"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" - } - } - ] + { + "secret" :"snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "tx_json" :{ + "TransactionType" :"SetRegularKey", + "Account" :"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" + } + } + ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` #Syntax: sign secret tx_json rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` +{% /tab %} - +{% /tabs %} #### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "result":{ @@ -113,9 +112,9 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` {NEWWWWWWWWWWWW "result":{ @@ -134,9 +133,9 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` { "result" :{ @@ -155,8 +154,9 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", } } ``` +{% /tab %} - +{% /tabs %} `sign`コマンドのレスポンスには上記のような`tx_blob`値が含まれています。オフライン署名レスポンスには`signedTransaction`値が含まれています。いずれもトランザクションの署名済みバイナリ表現(ブロブ)です。 @@ -171,19 +171,18 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", リクエストのフォーマットの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "command":"submit", "tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` { "method":"submit", @@ -194,25 +193,25 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` #Syntax: submit tx_blob rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` +{% /tab %} - +{% /tabs %} #### レスポンスのフォーマット 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "result":{ @@ -235,9 +234,9 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` { "result":{ @@ -259,9 +258,9 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` { "result" :{ @@ -283,8 +282,9 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` +{% /tab %} - +{% /tabs %} レギュラーキーペアの削除が成功したかどうかを確認するには、削除したレギュラー秘密鍵を使用してトランザクションを送信できないことを確認します。 @@ -295,10 +295,9 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D 処理が成功したレスポンスの例: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "error":"badSecret", @@ -316,9 +315,9 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D "type":"response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` {NEWWWWWWWWWWWW "result":{ @@ -337,9 +336,9 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` { "result" :{ @@ -358,12 +357,10 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` +{% /tab %} - +{% /tabs %} -場合によっては、`SetRegularKey`トランザクションを使用して、[トランザクションコスト](transaction-cost.html)を支払わずに[Key Resetトランザクション](transaction-cost.html#key-resetトランザクション)を送信できます。FeeEscalation Amendmentを有効にすると、Key Resetトランザクションの名目トランザクションコストがゼロであっても、`rippled`は他のトランザクションよりもKey Resetトランザクションを優先します。 +場合によっては、`SetRegularKey`トランザクションを使用して、[トランザクションコスト](../../concepts/transactions/transaction-cost.md)を支払わずに[Key Resetトランザクション](../../concepts/transactions/transaction-cost.md#key-resetトランザクション)を送信できます。FeeEscalation Amendmentを有効にすると、Key Resetトランザクションの名目トランザクションコストがゼロであっても、`rippled`は他のトランザクションよりもKey Resetトランザクションを優先します。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/disable-master-key-pair.md b/content/@i18n/ja/tutorials/manage-account-settings/disable-master-key-pair.md index 1d52c50267..662c68b0d9 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/disable-master-key-pair.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/disable-master-key-pair.md @@ -8,9 +8,9 @@ labels: --- # マスターキーペアの無効化 -このページでは、[アカウント](accounts.html)のアドレスに数学的に関連付けられた[マスターキーペア](cryptographic-keys.html)を無効化する方法について説明します。あなたのアカウントのマスターキーペアが漏洩した可能性がある場合、または[マルチシグ](multi-signing.html)をあなたのアカウントからトランザクションを送信する _唯一_ の方法としたい場合、これを行う必要があります。 +このページでは、[アカウント](../../concepts/accounts/accounts.md)のアドレスに数学的に関連付けられた[マスターキーペア](../../concepts/accounts/cryptographic-keys.md)を無効化する方法について説明します。あなたのアカウントのマスターキーペアが漏洩した可能性がある場合、または[マルチシグ](../../concepts/accounts/multi-signing.md)をあなたのアカウントからトランザクションを送信する _唯一_ の方法としたい場合、これを行う必要があります。 -**注意:** マスターキーペアを無効にすると、[トランザクションの承認](transactions.html#トランザクションの承認)の方法の1つが削除されます。マスターキーペアを無効にする前に、レギュラーキーやマルチ・サインなど、他のトランザクションの承認方法のいずれかを使用できることを確認する必要があります。(例えば、[レギュラーキーペアを割り当てた場合](assign-a-regular-key-pair.html)は、そのレギュラーキーで正常にトランザクションを送信できることを確認してください)。XRP Ledgerは分散型であるため、残りの取引承認方法を使用できない場合、誰もあなたのアカウントへのアクセスを回復することができません。 +**注意:** マスターキーペアを無効にすると、[トランザクションの承認](../../concepts/transactions/index.md#トランザクションの承認)の方法の1つが削除されます。マスターキーペアを無効にする前に、レギュラーキーやマルチ・サインなど、他のトランザクションの承認方法のいずれかを使用できることを確認する必要があります。(例えば、[レギュラーキーペアを割り当てた場合](assign-a-regular-key-pair.md)は、そのレギュラーキーで正常にトランザクションを送信できることを確認してください)。XRP Ledgerは分散型であるため、残りの取引承認方法を使用できない場合、誰もあなたのアカウントへのアクセスを回復することができません。 **マスターキーペアを無効にするには、マスターキーペアを使用する必要があります。** ただし、他のトランザクションの認証方法を使用してマスターキーペアを _再有効化_ することは可能です。 @@ -19,12 +19,12 @@ labels: アカウントのマスターキーペアを無効にするには、次の前提条件を満たしている必要があります。 -- XRP Ledger[アカウント](accounts.html)を持ち、そのアカウントからマスターキーペアを用いてトランザクションの署名と提出ができることが必要です。[安全な署名の設定](secure-signing.html) を参照してください。これには2つの一般的な方法があります。 +- XRP Ledger[アカウント](../../concepts/accounts/accounts.md)を持ち、そのアカウントからマスターキーペアを用いてトランザクションの署名と提出ができることが必要です。[安全な署名の設定](../../concepts/transactions/secure-signing.md) を参照してください。これには2つの一般的な方法があります。 - アカウントのマスターシード値を知っている。シード値は一般的に `sn3nxiW7v8KXzPzAqzyHXbSSKNuN9`のような "s" で始まる [base58][] 値で表されます。 - - あるいは、シード値を知る必要がなく、安全に保存する[専用の署名デバイス](secure-signing.html#専用の署名デバイスを使用する) を使用します + - あるいは、シード値を知る必要がなく、安全に保存する[専用の署名デバイス](../../concepts/transactions/secure-signing.md#専用の署名デバイスを使用する) を使用します - あなたのアカウントには、マスターキーペア以外のトランザクションを認証する方法が少なくとも1つ必要です。つまり、以下のいずれか、または両方を行う必要があります。 - - [レギュラーキーペアを割り当てる](assign-a-regular-key-pair.html). - - [マルチシグの設定](set-up-multi-signing.html). + - [レギュラーキーペアを割り当てる](assign-a-regular-key-pair.md). + - [マルチシグの設定](set-up-multi-signing.md). ## 手順 @@ -32,7 +32,7 @@ labels: ### {{n.next()}}. トランザクションJSONの作成 -アカウントから、`"SetValue": 4`のフィールドを持つ[AccountSet トランザクション][]を準備します。これは AccountSet フラグ "Disable Master" (`asfDisableMaster`) に対応する値です。このトランザクションの他の必須フィールドは、必須の[共通フィールド](transaction-common-fields.html)のみです。例えば、[自動入力可能なフィールド](transaction-common-fields.html#自動入力可能なフィールド) を省けば、以下のトランザクション指示で十分である。 +アカウントから、`"SetValue": 4`のフィールドを持つ[AccountSet トランザクション][]を準備します。これは AccountSet フラグ "Disable Master" (`asfDisableMaster`) に対応する値です。このトランザクションの他の必須フィールドは、必須の[共通フィールド](../../references/protocol/transactions/common-fields.md)のみです。例えば、[自動入力可能なフィールド](../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド) を省けば、以下のトランザクション指示で十分である。 ```json { @@ -42,20 +42,19 @@ labels: } ``` -**ヒント:** [予測可能な時間内にトランザクションの結果を確実に得る](reliable-transaction-submission.html)ために、`LastLedgerSequence`フィールドも提供することが強く推奨されています。 +**ヒント:** [予測可能な時間内にトランザクションの結果を確実に得る](../../concepts/transactions/reliable-transaction-submission.md)ために、`LastLedgerSequence`フィールドも提供することが強く推奨されています。 ### {{n.next()}}. トランザクションへの署名 トランザクションの署名には、**マスターキーペア**を使用する必要があります。 -**注意:** 自分が管理していないサーバーに秘密鍵を提出したり、暗号化されていない状態でネットワーク上に送信したりしないでください。これらの例は、[ローカルの `rippled` サーバー](secure-signing.html#ローカルでrippledを実行する) を使っていることを前提にしています。他の[安全な署名方法](secure-signing.html)を使っている場合は、これらの手順を変更する必要があります。 +**注意:** 自分が管理していないサーバーに秘密鍵を提出したり、暗号化されていない状態でネットワーク上に送信したりしないでください。これらの例は、[ローカルの `rippled` サーバー](../../concepts/transactions/secure-signing.md#ローカルでrippledを実行する) を使っていることを前提にしています。他の[安全な署名方法](../../concepts/transactions/secure-signing.md)を使っている場合は、これらの手順を変更する必要があります。 #### リクエストの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "sign", @@ -67,9 +66,9 @@ labels: "secret": "s████████████████████████████" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign", @@ -85,22 +84,22 @@ labels: ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh $ rippled sign s████████████████████████████ '{"TransactionType":"AccountSet", "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "SetFlag":4}' ``` +{% /tab %} - +{% /tabs %} #### レスポンスの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -122,9 +121,9 @@ $ rippled sign s█████████████████████ "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -146,9 +145,9 @@ $ rippled sign s█████████████████████ } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:13:24.783570867 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -172,8 +171,9 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} サーバーがトランザクションに正常に署名したことを示す `"status": "success"` を探してください。代わりに `"status": "error"` が表示された場合は、 `error` と `error_message` フィールドをチェックして、より詳しい情報を確認してください。よくある可能性としては、以下のようなものがあります。 @@ -188,19 +188,18 @@ Loading: "/etc/opt/ripple/rippled.cfg" #### リクエストの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "submit", "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"submit", @@ -211,21 +210,21 @@ Loading: "/etc/opt/ripple/rippled.cfg" ] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ``` $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 ``` +{% /tab %} - +{% /tabs %} #### レスポンスの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -249,9 +248,9 @@ $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103A "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -274,9 +273,9 @@ $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103A } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:25:49.361743460 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -302,15 +301,16 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} -トランザクションが `tecNO_ALTERNATIVE_KEY` という結果で失敗した場合、あなたのアカウントでは現在トランザクションを認証するための別の方法が有効になっていません。[レギュラーキーペアを割り当てる](assign-a-regular-key-pair.html)か [マルチシグを設定](set-up-multi-signing.html) した後、再度マスターキーペアの無効化を試してみてください。 +トランザクションが `tecNO_ALTERNATIVE_KEY` という結果で失敗した場合、あなたのアカウントでは現在トランザクションを認証するための別の方法が有効になっていません。[レギュラーキーペアを割り当てる](assign-a-regular-key-pair.md)か [マルチシグを設定](set-up-multi-signing.md) した後、再度マスターキーペアの無効化を試してみてください。 ### {{n.next()}}. 検証の待機 -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ### {{n.next()}}. アカウントフラグの確認 @@ -323,10 +323,9 @@ Loading: "/etc/opt/ripple/rippled.cfg" #### リクエストの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "account_info", @@ -334,9 +333,9 @@ Loading: "/etc/opt/ripple/rippled.cfg" "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_info", @@ -346,22 +345,22 @@ Loading: "/etc/opt/ripple/rippled.cfg" }] } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated ``` +{% /tab %} - +{% /tabs %} #### レスポンスの例 - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -391,9 +390,9 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -422,9 +421,9 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated } } ``` +{% /tab %} -*コマンドライン* - +{% tab label="コマンドライン" %} ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:41:38.642710734 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -456,18 +455,18 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} レスポンスの `account_data` オブジェクトで、 `Flags` フィールドと `lsfDisableMaster` フラグの値 (16 進数では `0x00100000`、10 進数では `1048576`) を ビット論理積 (ほとんどのプログラミング言語では `&` オペレーター) で比較します。 コード例: - - -*JavaScript* +{% tabs %} +{% tab label="JavaScript" %} ```js // 上記のJSON-RPCレスポンスがaccount_info_responseとして保存されていると仮定します。 const lsfDisableMaster = 0x00100000; @@ -478,9 +477,9 @@ if ((lsfDisableMaster & acct_flags) === lsfDisableMaster) { console.log("マスターキーペアが使用可能です"); } ``` +{% /tab %} -*Python* - +{% tab label="Python" %} ```python # 上記のJSON-RPCレスポンスがJSONから解析され、 # 変数account_info_responseとして保存されたと仮定すると、以下のようになります。 @@ -491,19 +490,15 @@ if lsfDisableMaster & acct_flags == lsfDisableMaster: else: console.log("マスターキーペアが使用可能です"); ``` +{% /tab %} - +{% /tabs %} この操作の結果は次の2つしかありません。 - 結果が0でない場合は `lsfDisableMaster` の値と等しく、 **マスターキーが正常に無効化されたこと** を示します。 - 結果が0の場合は、そのアカウントのマスターキーが無効になっていないことを示します。 -結果が予想と異なる場合は、前の手順で送信したトランザクションが正常に実行されたかどうかを確認してください。それは、その口座のトランザクション履歴([account_tx メソッド][])の中で最も新しいもので、結果コード `tesSUCCESS` がついているはずです。それ以外の[結果コード](transaction-results.html)が表示された場合、そのトランザクションは正常に実行されませんでした。エラーの原因によっては、これらの手順を最初からやり直した方がよいかもしれません。 +結果が予想と異なる場合は、前の手順で送信したトランザクションが正常に実行されたかどうかを確認してください。それは、その口座のトランザクション履歴([account_tx メソッド][])の中で最も新しいもので、結果コード `tesSUCCESS` がついているはずです。それ以外の[結果コード](../../references/protocol/transactions/transaction-results/transaction-results.md)が表示された場合、そのトランザクションは正常に実行されませんでした。エラーの原因によっては、これらの手順を最初からやり直した方がよいかもしれません。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/offline-account-setup.md b/content/@i18n/ja/tutorials/manage-account-settings/offline-account-setup.md index 66156f0798..8fdf7a24ae 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/offline-account-setup.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/offline-account-setup.md @@ -8,7 +8,7 @@ labels: --- # オフラインでのアカウント設定のチュートリアル -きわめて安全な[署名構成](secure-signing.html)では、XRP Ledger[アカウント](accounts.html)の[暗号鍵](cryptographic-keys.html)をオフラインの物理的に隔離されたマシンに安全に保管します。この構成を設定すると、さまざまなトランザクションに署名して、署名済みトランザクションのみをオンラインコンピューターに転送し、秘密鍵をオンラインにいる不正使用者に見せることなくそれらのトランザクションをXRP Ledgerネットワークに送信できます。 +きわめて安全な[署名構成](../../concepts/transactions/secure-signing.md)では、XRP Ledger[アカウント](../../concepts/accounts/accounts.md)の[暗号鍵](../../concepts/accounts/cryptographic-keys.md)をオフラインの物理的に隔離されたマシンに安全に保管します。この構成を設定すると、さまざまなトランザクションに署名して、署名済みトランザクションのみをオンラインコンピューターに転送し、秘密鍵をオンラインにいる不正使用者に見せることなくそれらのトランザクションをXRP Ledgerネットワークに送信できます。 **注意:** オフラインマシンを保護するためには、適切な運用セキュリティ対策が必要です。例えば、オフラインマシンは信頼できない人がアクセスできない場所に物理的に設置する必要があり、信頼できるオペレーターはマシンに悪用されたソフトウェアを転送しないように注意する必要があります。(例えば、ネットワークに接続されたコンピューターに接続したことがあるUSBドライブは使用してはいけません。) @@ -16,8 +16,8 @@ labels: オフライン署名を使用するには、次の前提条件を満たしている必要があります。 -- オフラインマシンとして使用する1台のコンピューターを用意していること。このマシンは[サポートされているオペレーティングシステム](system-requirements.html)でセットアップされている必要があります。オフラインセットアップの手順については、使用するオペレーティングシステムのサポートを参照してください(例: [Red Hat Enterprise Linux DVD ISOインストール手順](https://access.redhat.com/solutions/7227))。使用するソフトウェアと物理メディアがマルウェアに感染していないことを確認します。 -- オンラインマシンとして使用する別のコンピューターを用意していること。このマシンは`rippled`を実行する必要はありませんが、XRP Ledgerネットワークに接続し、共有レジャーの状態についての正確な情報を受信できる必要があります。例えば、[公開サーバーへのWebSocket接続](get-started-using-http-websocket-apis.html)を使用できます。 +- オフラインマシンとして使用する1台のコンピューターを用意していること。このマシンは[サポートされているオペレーティングシステム](../../infrastructure/installation/system-requirements.md)でセットアップされている必要があります。オフラインセットアップの手順については、使用するオペレーティングシステムのサポートを参照してください(例: [Red Hat Enterprise Linux DVD ISOインストール手順](https://access.redhat.com/solutions/7227))。使用するソフトウェアと物理メディアがマルウェアに感染していないことを確認します。 +- オンラインマシンとして使用する別のコンピューターを用意していること。このマシンは`rippled`を実行する必要はありませんが、XRP Ledgerネットワークに接続し、共有レジャーの状態についての正確な情報を受信できる必要があります。例えば、[公開サーバーへのWebSocket接続](../get-started/get-started-using-http-websocket-apis.md)を使用できます。 - 署名済みのトランザクションバイナリデータをオフラインマシンからオンラインマシンに転送する安全な方法を用意していること。 - その方法の1つは、オフラインマシンでQRコードジェネレーターを使用し、オンラインマシンでQRコードスキャナーを使用することです。(この場合、「オンラインマシン」はスマートフォンなどの携帯デバイスだとよいでしょう。) - 別の方法としては、物理メディアを使ってオフラインマシンからオンラインマシンにファイルをコピーします。この方法を使用する場合、オフラインマシンが悪意のあるソフトウェアに感染するおそれのある物理メディアは使用しないよう注意します。(例えば、オンラインマシンとオフラインマシンで同じUSBドライブを再利用しないようにします。) @@ -30,25 +30,23 @@ labels: ### {{n.next()}}. オフラインマシンの設定 -オフラインマシンには、安全な永続ストレージ(暗号化されたディスクドライブなど)と[トランザクションに署名する](secure-signing.html)ための方法が必要です。一般的には、必要なソフトウェアをオンラインマシンでダウンロードして、物理メディアを使ってオフラインマシンに転送します。オンラインマシン、物理メディア、ソフトウェア自体がマルウェアに感染していないことを確認する必要があります。 +オフラインマシンには、安全な永続ストレージ(暗号化されたディスクドライブなど)と[トランザクションに署名する](../../concepts/transactions/secure-signing.md)ための方法が必要です。一般的には、必要なソフトウェアをオンラインマシンでダウンロードして、物理メディアを使ってオフラインマシンに転送します。オンラインマシン、物理メディア、ソフトウェア自体がマルウェアに感染していないことを確認する必要があります。 XRP Ledgerで署名するためのソフトウェアオプションは次のとおりです。 -- パッケージ(`.deb`または`.rpm`。使用するLinuxディストリビューションによって異なる)ファイルから[`rippled`をインストール](install-rippled.html)し、[スタンドアロンモードで実行します](rippled-server-modes.html)。 +- パッケージ(`.deb`または`.rpm`。使用するLinuxディストリビューションによって異なる)ファイルから[`rippled`をインストール](../../infrastructure/installation/index.md)し、[スタンドアロンモードで実行します](../../concepts/networks-and-servers/rippled-server-modes.md)。 - [xrpl.js](https://github.com/XRPLF/xrpl.js/)とその依存関係をオフラインでインストールします。例えば、Yarn Package Managerでは、[オフラインでの使用に関して推奨される手順](https://yarnpkg.com/blog/2016/11/24/offline-mirror/)があります。 -- 関連項目: [安全な署名の設定](secure-signing.html) +- 関連項目: [安全な署名の設定](../../concepts/transactions/secure-signing.md) オフラインマシンでトランザクションの指示を生成するプロセスを容易にするために、カスタムソフトウェアを設定することもできます。例えば、ソフトウェアで次に使用する[シーケンス番号][]を追跡したり、送信するトランザクションのタイプに応じた設定済みテンプレートを含めるといったことが可能です。 ### {{n.next()}}.暗号鍵の生成 -**オフラインマシン**で、アカウントで使用する[暗号鍵](cryptographic-keys.html)のペアを生成します。鍵は、単純なパスフレーズやエントロピーが十分でないその他のソースから生成するのではなく、安全なランダム手続きで生成してください。(例えば、`rippled`の[wallet_proposeメソッド][]を使用することができます。) +**オフラインマシン**で、アカウントで使用する[暗号鍵](../../concepts/accounts/cryptographic-keys.md)のペアを生成します。鍵は、単純なパスフレーズやエントロピーが十分でないその他のソースから生成するのではなく、安全なランダム手続きで生成してください。(例えば、`rippled`の[wallet_proposeメソッド][]を使用することができます。) - - - -_rippledコマンドライン_ +{% tabs %} +{% tab label="rippledコマンドライン" %} ```sh $ ./rippled wallet_propose Loading: "/etc/opt/ripple/rippled.cfg" @@ -67,12 +65,13 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} 次の値をメモします。 -- **`account_id`**: これはキーペアに関連付けられているアドレスです。このアドレスは、XRPを供給(このプロセスの先で実行)した後に、XRP Ledgerでの **[アカウント](accounts.html)アドレス**になります。`account_id`は公開しても安全です。 +- **`account_id`**: これはキーペアに関連付けられているアドレスです。このアドレスは、XRPを供給(このプロセスの先で実行)した後に、XRP Ledgerでの **[アカウント](../../concepts/accounts/accounts.md)アドレス**になります。`account_id`は公開しても安全です。 - **`master_seed`**: これはキーペアの秘密シード値です。この値は、アカウントからのトランザクションに署名する際に使用します。最高レベルのセキュリティを実現するために、この値をオフラインマシンのディスクに書き込む前に暗号化してください。暗号化キーとして、人間のオペレーターが覚えやすい安全なパスフレーズや、物理的に安全な場所に書き留めたパスフレーズを使います。例えば、適切な重さのサイコロを使用して作成する[ダイスウェアパスフレーズ](https://theworld.com/~reinhold/diceware.html)などがあります。第2の要素として物理セキュリティキーを使用することもできます。この段階で取る対策の程度はご自身で決めてください。 - **`key_type`**: これは、このキーペアに使用する暗号化アルゴリズムです。有効なトランザクションに署名するには、どのようなタイプのキーペアを所有しているかを知る必要があります。デフォルトは`secp256k1`です。 @@ -82,9 +81,9 @@ Loading: "/etc/opt/ripple/rippled.cfg" ### {{n.next()}}.新しいアドレスへの資金の供給 -オンラインマシンから、ステップ1でメモした**アカウントアドレス** に十分なXRPを送金します。詳細は、[アカウントの作成](accounts.html#アカウントの作成)を参照してください。 +オンラインマシンから、ステップ1でメモした**アカウントアドレス** に十分なXRPを送金します。詳細は、[アカウントの作成](../../concepts/accounts/accounts.md#アカウントの作成)を参照してください。 -**ヒント:** テストの目的で、[Testnet Faucet](xrp-testnet-faucet.html)を使用して、テスト用のXRPが入った新しいアカウントを取得できます。そのアカウントを使用して、オフラインで生成されたアドレスに資金を供給します。 +**ヒント:** テストの目的で、[Testnet Faucet](/resources/dev-tools/xrp-faucets)を使用して、テスト用のXRPが入った新しいアカウントを取得できます。そのアカウントを使用して、オフラインで生成されたアドレスに資金を供給します。 @@ -94,12 +93,11 @@ Loading: "/etc/opt/ripple/rippled.cfg" 結果の`account_data`の`Sequence`フィールドにある、アカウントのシーケンス番号をメモします。この後のステップでアカウントのトランザクションに署名するために、このシーケンス番号を把握しておく必要があります。 -[DeletableAccounts Amendment](known-amendments.html#deletableaccounts)がenabledになっている場合、新しく資金を供給したアカウントの`Sequence`番号は、資金を供給したときの[レジャーインデックス][]と一致します。enabledになっていない場合、新しく資金を供給したアカウントの`Sequence`番号は常に1です。 +[DeletableAccounts Amendment](../../resources/known-amendments.md#deletableaccounts)がenabledになっている場合、新しく資金を供給したアカウントの`Sequence`番号は、資金を供給したときの[レジャーインデックス][]と一致します。enabledになっていない場合、新しく資金を供給したアカウントの`Sequence`番号は常に1です。 - - -_rippledコマンドライン_ +{% tabs %} +{% tab label="rippledコマンドライン" %} ```sh $ ./rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn @@ -124,14 +122,15 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} ### {{n.next()}}.オフラインマシンでのシーケンス番号の入力 オフラインマシンでアカウントの開始シーケンス番号を保存します。オフラインマシンを使用してトランザクションを準備するときは、必ずこの保存されたシーケンス番号を使用し、シーケンス番号を1増やして、新しい値を保存します。 -この方法で複数のトランザクションを前もって準備しておき、署名済みのトランザクションを一度にオンラインマシンに転送して、すべてを送信できます。各トランザクションの形式が有効で、十分な[トランザクションコスト](transaction-cost.html)を支払っていれば、XRP Ledgerネットワークは最終的にこれらのトランザクションを検証済みレジャーに含めて、共有XRP Ledgerにあるアカウントのシーケンス番号と、オフラインマシンで追跡している「現在の」シーケンス番号と同期が保たれるようにします。(ほとんどのトランザクションでは、ネットワークに送信して15秒以内に最終的な検証済みの結果が得られます。) +この方法で複数のトランザクションを前もって準備しておき、署名済みのトランザクションを一度にオンラインマシンに転送して、すべてを送信できます。各トランザクションの形式が有効で、十分な[トランザクションコスト](../../concepts/transactions/transaction-cost.md)を支払っていれば、XRP Ledgerネットワークは最終的にこれらのトランザクションを検証済みレジャーに含めて、共有XRP Ledgerにあるアカウントのシーケンス番号と、オフラインマシンで追跡している「現在の」シーケンス番号と同期が保たれるようにします。(ほとんどのトランザクションでは、ネットワークに送信して15秒以内に最終的な検証済みの結果が得られます。) 任意で、現在のレジャーインデックスをオフラインマシンに保存します。この値を使用して、今後のトランザクションに適切な`LastLedgerSequence`値を選択できます。 @@ -141,23 +140,22 @@ Loading: "/etc/opt/ripple/rippled.cfg" オフラインマシンで、アカウントの設定用のトランザクションを準備して署名します。詳細は、アカウントを使用する目的によって異なります。例えば次のようなことができます。 -- 定期的なローテーションで使用できる[レギュラーキーペアを割り当てる](assign-a-regular-key-pair.html)。 -- ユーザーが送金理由や送金相手をタグ付けせずに送金できないようにするために、[宛先タグを要求する](require-destination-tags.html)。 -- アカウントセキュリティを強化するために、[マルチシグを設定する](set-up-multi-signing.html)。 -- 明示的に承認した送金、または事前に承認した相手からの送金のみを受け取れるようにするために、[DepositAuthを有効にする](depositauth.html)。 -- ユーザーがあなたの許可なくあなたへの[トラストライン](trust-lines-and-issuing.html)を開けないようにするために、[RequireAuthを有効にする](authorized-trust-lines.html#requireauthの有効化)。XRP Ledgerの分散型取引所やトークン機能を使用する予定がない場合は、これを対策として行うことをお勧めします。 -- [トークン発行者](stablecoin-issuer.html)には次のような追加の設定がある場合があります。 +- 定期的なローテーションで使用できる[レギュラーキーペアを割り当てる](assign-a-regular-key-pair.md)。 +- ユーザーが送金理由や送金相手をタグ付けせずに送金できないようにするために、[宛先タグを要求する](require-destination-tags.md)。 +- アカウントセキュリティを強化するために、[マルチシグを設定する](set-up-multi-signing.md)。 +- 明示的に承認した送金、または事前に承認した相手からの送金のみを受け取れるようにするために、[DepositAuthを有効にする](../../concepts/accounts/depositauth.md)。 +- ユーザーがあなたの許可なくあなたへの[トラストライン](../../concepts/tokens/fungible-tokens/index.md)を開けないようにするために、[RequireAuthを有効にする](../../concepts/tokens/fungible-tokens/authorized-trust-lines.md#requireauthの有効化)。XRP Ledgerの分散型取引所やトークン機能を使用する予定がない場合は、これを対策として行うことをお勧めします。 +- [トークン発行者](../../use-cases/tokenization/stablecoin-issuer.md)には次のような追加の設定がある場合があります。 - トークンを送金するユーザーに対してTransferRateを設定する。 - このアドレスをトークンのみに使用する予定の場合は、XRPペイメントを禁止する。 -この段階では、トランザクションに署名をするだけで、まだ送信しません。各トランザクションに対して、`Fee`([トランザクションコスト](transaction-cost.html))や`Sequence`([シーケンス番号][])など、通常は自動入力可能なフィールドを含めて、すべてのフィールドに入力する必要があります。一度に複数のトランザクションを準備する場合は、トランザクションの実行順にシーケンシャルに増やした`Sequence`番号を使用する必要があります。 +この段階では、トランザクションに署名をするだけで、まだ送信しません。各トランザクションに対して、`Fee`([トランザクションコスト](../../concepts/transactions/transaction-cost.md))や`Sequence`([シーケンス番号][])など、通常は自動入力可能なフィールドを含めて、すべてのフィールドに入力する必要があります。一度に複数のトランザクションを準備する場合は、トランザクションの実行順にシーケンシャルに増やした`Sequence`番号を使用する必要があります。 例(RequireAuthを有効にする): - - -_rippledコマンドライン_ +{% tabs %} +{% tab label="rippledコマンドライン" %} ```sh $ rippled sign sn3nxiW7v8KXzPzAqzyHXbSSKNuN9 '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Fee": "12", "Sequence": 1, "TransactionType": "AccountSet", "SetFlag": 2}' offline @@ -182,10 +180,11 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} -一定の時間内に _すべて_ のトランザクションで最終結果が得られるように、[`LastLedgerSequence`](reliable-transaction-submission.html#lastledgersequence)フィールドに入力してください。この値は、現行のレジャーインデックス(オンラインマシンから検索する必要がある)と、トランザクションを有効に保つ時間に基づいたものである必要があります。オンラインマシンからオフラインマシンへ、オフラインマシンからオンラインマシンへ切り替える時間を取れるだけの十分に大きな`LastLedgerSequence`値を設定するようにしてください。例えば、現行のレジャーインデックスより256大きな値では、トランザクションは約15分間有効になります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 +一定の時間内に _すべて_ のトランザクションで最終結果が得られるように、[`LastLedgerSequence`](../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence)フィールドに入力してください。この値は、現行のレジャーインデックス(オンラインマシンから検索する必要がある)と、トランザクションを有効に保つ時間に基づいたものである必要があります。オンラインマシンからオフラインマシンへ、オフラインマシンからオンラインマシンへ切り替える時間を取れるだけの十分に大きな`LastLedgerSequence`値を設定するようにしてください。例えば、現行のレジャーインデックスより256大きな値では、トランザクションは約15分間有効になります。詳細は、[結果のファイナリティー](../../concepts/transactions/finality-of-results/index.md)と[信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 ### {{n.next()}}.オンラインマシンへのトランザクションのコピー @@ -196,14 +195,13 @@ Loading: "/etc/opt/ripple/rippled.cfg" ### {{n.next()}}.設定したトランザクションの送信 -次のステップはトランザクションの送信です。ほとんどのトランザクションは、送信後の次の検証済みレジャー(約4秒後)、またはキューに入っている場合はその後のレジャー(10秒未満)で最終結果が得られるはずです。トランザクションの最終結果を追跡する詳細な手順については、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 +次のステップはトランザクションの送信です。ほとんどのトランザクションは、送信後の次の検証済みレジャー(約4秒後)、またはキューに入っている場合はその後のレジャー(10秒未満)で最終結果が得られるはずです。トランザクションの最終結果を追跡する詳細な手順については、[信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 単純なトランザクションを送信する例: - - -_rippledコマンドライン_ +{% tabs %} +{% tab label="rippledコマンドライン" %} ```sh $ rippled submit 1200032280000000240000000120210000000268400000000000000C7321039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A174473045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD4381144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 @@ -232,21 +230,21 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} -**ヒント:** 一度に10件を超えるトランザクションを送信しようとしている場合、10件未満のグループに分けて送信すると成功の可能性が高まります。[トランザクションキュー](transaction-queue.html)では同じ送信者から一度に送信されるトランザクションを10件に制限しているためです。10件の1グループのトランザクションを送信した後に、すべてのトランザクションがキューから出るのを待ってから、次のグループを送信します。 +**ヒント:** 一度に10件を超えるトランザクションを送信しようとしている場合、10件未満のグループに分けて送信すると成功の可能性が高まります。[トランザクションキュー](../../concepts/transactions/transaction-queue.md)では同じ送信者から一度に送信されるトランザクションを10件に制限しているためです。10件の1グループのトランザクションを送信した後に、すべてのトランザクションがキューから出るのを待ってから、次のグループを送信します。 -[最終的でない結果](finality-of-results.html)が得られて失敗したトランザクションの送信をやり直します。同じトランザクションが2回以上処理される可能性はありません。 +[最終的でない結果](../../concepts/transactions/finality-of-results/index.md)が得られて失敗したトランザクションの送信をやり直します。同じトランザクションが2回以上処理される可能性はありません。 ### {{n.next()}}.トランザクションの最終ステータスの確認 -送信した各トランザクションについて、トランザクションの[最終結果](finality-of-results.html)をメモします。例えば、[txメソッド][]を使用します。例: +送信した各トランザクションについて、トランザクションの[最終結果](../../concepts/transactions/finality-of-results/index.md)をメモします。例えば、[txメソッド][]を使用します。例: - - -_rippledコマンドライン_ +{% tabs %} +{% tab label="rippledコマンドライン" %} ```sh $ ./rippled tx F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63 @@ -297,16 +295,17 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} すべてのトランザクションが処理された後で送信側アカウントの[account_info][account_infoメソッド]を確認すると便利です。アカウントの現在のシーケンス番号(`Sequence`フィールド)と、必要に応じてXRP残高をメモします。 失敗したトランザクションについては、どうするか決める必要があります。 -- トランザクションが`tefMAX_LEDGER`コードで失敗した場合、トランザクションが処理されるように、より高い[トランザクションコスト](transaction-cost.html)を指定する必要があります。(これはXRP Ledgerネットワークに負荷がかかっていることを示している可能性があります。)トランザクションを、より高いコストを支払い、より高い`LastLedgerSequence`パラメーター(ある場合)を持つ新しいバージョンに置き換えるのも1つの方法です。 -- トランザクションが[`tem`クラスコードで](tem-codes.html)で失敗した場合は、トランザクションの生成時にスペルミスなどのミスをした可能性があります。トランザクションを再度確認し、有効な形式に置き換えます。 -- トランザクションが[`tec`クラスコード](tec-codes.html)で失敗した場合は、失敗した具体的な理由に応じてケースバイケースで対処する必要があります。 +- トランザクションが`tefMAX_LEDGER`コードで失敗した場合、トランザクションが処理されるように、より高い[トランザクションコスト](../../concepts/transactions/transaction-cost.md)を指定する必要があります。(これはXRP Ledgerネットワークに負荷がかかっていることを示している可能性があります。)トランザクションを、より高いコストを支払い、より高い`LastLedgerSequence`パラメーター(ある場合)を持つ新しいバージョンに置き換えるのも1つの方法です。 +- トランザクションが[`tem`クラスコードで](../../references/protocol/transactions/transaction-results/tem-codes.md)で失敗した場合は、トランザクションの生成時にスペルミスなどのミスをした可能性があります。トランザクションを再度確認し、有効な形式に置き換えます。 +- トランザクションが[`tec`クラスコード](../../references/protocol/transactions/transaction-results/tec-codes.md)で失敗した場合は、失敗した具体的な理由に応じてケースバイケースで対処する必要があります。 調整や置き換えをするトランザクションについては、オフラインマシンに戻るタイミングについての詳細をメモします。 @@ -327,22 +326,18 @@ Loading: "/etc/opt/ripple/rippled.cfg" ## 関連項目 - **コンセプト:** - - [アカウント](accounts.html) - - [暗号鍵](cryptographic-keys.html) + - [アカウント](../../concepts/accounts/accounts.md) + - [暗号鍵](../../concepts/accounts/cryptographic-keys.md) - **チュートリアル:** - - [安全な署名の設定](secure-signing.html) - - [レギュラーキーペアの割り当て](assign-a-regular-key-pair.html) - - [マルチシグの設定](set-up-multi-signing.html) + - [安全な署名の設定](../../concepts/transactions/secure-signing.md) + - [レギュラーキーペアの割り当て](assign-a-regular-key-pair.md) + - [マルチシグの設定](set-up-multi-signing.md) - **リファレンス:** - - [基本的なデータタイプ: ](basic-data-types.html#アカウントシーケンス)[ ](basic-data-types.html#アカウントシーケンス)[アカウントシーケンス](basic-data-types.html#アカウントシーケンス) + - [基本的なデータタイプ: ](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)[ ](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)[アカウントシーケンス](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス) - [account_infoメソッド][] - [signメソッド][] - [submitメソッド][] - [txメソッド][] - [AccountSetトランザクション][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/require-destination-tags.md b/content/@i18n/ja/tutorials/manage-account-settings/require-destination-tags.md index 4c97f262c9..691ee53cbe 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/require-destination-tags.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/require-destination-tags.md @@ -7,16 +7,15 @@ labels: --- # 宛先タグの必須化 -`RequireDest`設定は、送金先を識別する[宛先タグ](source-and-destination-tags.html)を顧客が付け忘れている場合にあなたのアドレスに[送金](payment-types.html)できないようにするためのものです。有効にすると、XRP Ledgerは宛先タグが付いていないあなたのアドレスへの送金を拒否します。 +`RequireDest`設定は、送金先を識別する[宛先タグ](../../concepts/transactions/source-and-destination-tags.md)を顧客が付け忘れている場合にあなたのアドレスに[送金](../../concepts/payment-types/index.md)できないようにするためのものです。有効にすると、XRP Ledgerは宛先タグが付いていないあなたのアドレスへの送金を拒否します。 以下は、ローカルでホストされている`rippled`の[submitメソッド][]を使用して、`RequireDest`フラグを有効にする[AccountSetトランザクション][]を送信する例です。 リクエスト: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json POST http://localhost:5005/ Content-Type: application/json @@ -37,18 +36,15 @@ Content-Type: application/json ] } ``` +{% /tab %} -{% include '_snippets/secret-key-warning.md' %} - - - +{% /tabs %} レスポンス: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json 200 OK @@ -74,26 +70,21 @@ Content-Type: application/json } } ``` +{% /tab %} - +{% /tabs %} ## 関連項目 - **コンセプト:** - - [アカウント](accounts.html) - - [送信元と宛先タグ](source-and-destination-tags.html) - - [トランザクションコスト](transaction-cost.html) - - [支払いタイプ](payment-types.html) + - [アカウント](../../concepts/accounts/accounts.md) + - [送信元と宛先タグ](../../concepts/transactions/source-and-destination-tags.md) + - [トランザクションコスト](../../concepts/transactions/transaction-cost.md) + - [支払いタイプ](../../concepts/payment-types/index.md) - **リファレンス:** - [account_infoメソッド][] - [AccountSetトランザクション][] - - [AccountRootのフラグ](accountroot.html#accountrootのフラグ) + - [AccountRootのフラグ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/send-a-multi-signed-transaction.md b/content/@i18n/ja/tutorials/manage-account-settings/send-a-multi-signed-transaction.md index 52c000c295..fa9bbb7cb8 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/send-a-multi-signed-transaction.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/send-a-multi-signed-transaction.md @@ -11,32 +11,34 @@ labels: ## 前提条件 -- 事前にアドレスの[マルチシグの設定](set-up-multi-signing.html)をする必要があります。 +- 事前にアドレスの[マルチシグの設定](set-up-multi-signing.md)をする必要があります。 -- マルチシグは使用可能である必要があります。マルチシグは、XRP Ledgerコンセンサスプロトコルに対する[**Amendment**](amendments.html)により2016/06/27以降利用可能になりました。 +- マルチシグは使用可能である必要があります。マルチシグは、XRP Ledgerコンセンサスプロトコルに対する[**Amendment**](../../concepts/networks-and-servers/amendments.md)により2016/06/27以降利用可能になりました。 ## 1.トランザクションの作成 送信するトランザクションを表すJSONオブジェクトを作成します。`Fee`や`Sequence`をはじめ、このトランザクションに関する _すべての_ 情報を指定する必要があります。また、トランザクションがマルチシグトランザクションであることを示すため、`SigningPubKey`を空の文字列として指定します。 -マルチシグトランザクションの`Fee`は、標準の署名済みトランザクションよりもかなり高額ですので、ご注意ください。手数料は通常の[トランザクションコスト](transaction-cost.html)の(N+1)倍以上となります(Nは付与する予定の署名数です)。複数のソースから署名を収集するのに時間がかかることがあるため、その間に[トランザクションコスト](transaction-cost.html)の増加に備えて現行の最小値よりも大きな値を指定できます。 +マルチシグトランザクションの`Fee`は、標準の署名済みトランザクションよりもかなり高額ですので、ご注意ください。手数料は通常の[トランザクションコスト](../../concepts/transactions/transaction-cost.md)の(N+1)倍以上となります(Nは付与する予定の署名数です)。複数のソースから署名を収集するのに時間がかかることがあるため、その間に[トランザクションコスト](../../concepts/transactions/transaction-cost.md)の増加に備えて現行の最小値よりも大きな値を指定できます。 マルチシグが可能なトランザクションの例を以下に示します。 - { - "TransactionType":"TrustSet", - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "SigningPubKey":"", - "Fee":"30000" - } +``` +{ + "TransactionType":"TrustSet", + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags":262144, + "LimitAmount":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"100" + }, + "Sequence":2, + "SigningPubKey":"", + "Fee":"30000" +} +``` (このトランザクションは、残高上限額が100 USDのrEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQCから rHb9CJAWyB4rj91VRWn96DkukG4bwdtyThへの会計上の関係を作成します。) @@ -45,57 +47,59 @@ labels: SlignerListのメンバーの1人のシークレットキーとアドレスを指定した[sign_forメソッド][]を使用して、そのメンバーの署名を取得します。 -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} - $ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW '{ - > "TransactionType":"TrustSet", - > "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - > "Flags":262144, - > "LimitAmount":{ - > "currency":"USD", - > "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - > "value":"100" - > }, - > "Sequence":2, - > "SigningPubKey":"", - > "Fee":"30000" - > }' - Loading:"/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" :{ - "status" :"success", - "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", - "tx_json" :{ - "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee" :"30000", - "Flags" :262144, - "LimitAmount" :{ - "currency" :"USD", - "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value" :"100" - }, - "Sequence" :2, - "Signers" :[ - { - "Signer" :{ - "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - } - ], - "SigningPubKey" :"", - "TransactionType" :"TrustSet", - "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" - } - } - } + +``` +$ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW '{ +> "TransactionType":"TrustSet", +> "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", +> "Flags":262144, +> "LimitAmount":{ +> "currency":"USD", +> "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", +> "value":"100" +> }, +> "Sequence":2, +> "SigningPubKey":"", +> "Fee":"30000" +> }' +Loading:"/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" :{ + "status" :"success", + "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", + "tx_json" :{ + "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee" :"30000", + "Flags" :262144, + "LimitAmount" :{ + "currency" :"USD", + "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value" :"100" + }, + "Sequence" :2, + "Signers" :[ + { + "Signer" :{ + "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + } + ], + "SigningPubKey" :"", + "TransactionType" :"TrustSet", + "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" + } + } +} +``` レスポンスの`tx_json`フィールドを保存します。このフィールドの`Signers`フィールドに新しい署名が入力されています。`tx_blob`フィールドの値は無視できます。 -スタンドアロンモードまたは本番環境以外のネットワークで問題が発生した場合は、[マルチシグが有効であること](start-a-new-genesis-ledger-in-stand-alone-mode.html#新しいジェネシスレジャーの設定)を確認してください。 +スタンドアロンモードまたは本番環境以外のネットワークで問題が発生した場合は、[マルチシグが有効であること](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md#新しいジェネシスレジャーの設定)を確認してください。 ## 3.追加の署名の取得 @@ -104,70 +108,72 @@ SlignerListのメンバーの1人のシークレットキーとアドレスを * 並行して取得する場合: トランザクションの元のJSONを指定した`sign_for`コマンドを使用します。各レスポンスの`Signers`配列に1つの署名が含まれています。 * 順次取得する場合: 前の`sign_for`レスポンスの`tx_json`値を指定した`sign_for`コマンドを使用します。各レスポンスの既存の`Signers`配列に新しい署名が追加されます。 -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} - $ rippled sign_for rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v '{ - > "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - > "Fee" :"30000", - > "Flags" :262144, - > "LimitAmount" :{ - > "currency" :"USD", - > "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - > "value" :"100" - > }, - > "Sequence" :2, - > "Signers" :[ - > { - > "Signer" :{ - > "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - > "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - > "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - > } - > } - > ], - > "SigningPubKey" :"", - > "TransactionType" :"TrustSet", - > "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" - > }' - Loading:"/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" :{ - "status" :"success", - "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", - "tx_json" :{ - "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee" :"30000", - "Flags" :262144, - "LimitAmount" :{ - "currency" :"USD", - "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value" :"100" - }, - "Sequence" :2, - "Signers" :[ - { - "Signer" :{ - "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, - { - "Signer" :{ - "Account" :"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey" :"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature" :"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - } - ], - "SigningPubKey" :"", - "TransactionType" :"TrustSet", - "hash" :"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } - } - } + +``` +$ rippled sign_for rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v '{ +> "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", +> "Fee" :"30000", +> "Flags" :262144, +> "LimitAmount" :{ +> "currency" :"USD", +> "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", +> "value" :"100" +> }, +> "Sequence" :2, +> "Signers" :[ +> { +> "Signer" :{ +> "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", +> "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", +> "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" +> } +> } +> ], +> "SigningPubKey" :"", +> "TransactionType" :"TrustSet", +> "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" +> }' +Loading:"/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" :{ + "status" :"success", + "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", + "tx_json" :{ + "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee" :"30000", + "Flags" :262144, + "LimitAmount" :{ + "currency" :"USD", + "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value" :"100" + }, + "Sequence" :2, + "Signers" :[ + { + "Signer" :{ + "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, + { + "Signer" :{ + "Account" :"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey" :"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature" :"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + } + ], + "SigningPubKey" :"", + "TransactionType" :"TrustSet", + "hash" :"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } + } +} +``` 構成したSignerListによっては、必要なすべての当事者からの署名を取得するためにこのステップを複数回繰り返す必要があります。 @@ -178,74 +184,76 @@ SlignerListのメンバーの1人のシークレットキーとアドレスを 署名を並行して収集した場合、すべての署名を含む`tx_json`オブジェクトを手動で作成する必要があります。すべての`sign_for`レスポンスの`Signers`配列の内容を1つの`Signers`配列に結合します。この配列には各署名が含まれます。結合された`Signers`配列を元のトランザクションのJSON値に追加し、これを[submit_multisignedメソッド][]の引数として使用します。 - $ rippled submit_multisigned '{ - > "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - > "Fee" :"30000", - > "Flags" :262144, - > "LimitAmount" :{ - > "currency" :"USD", - > "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - > "value" :"100" - > }, - > "Sequence" :2, - > "Signers" :[ - > { - > "Signer" :{ - > "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - > "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - > "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - > } - > }, - > { - > "Signer" :{ - > "Account" :"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - > "SigningPubKey" :"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - > "TxnSignature" :"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - > } - > } - > ], - > "SigningPubKey" :"", - > "TransactionType" :"TrustSet", - > "hash" :"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - > }' - Loading:"/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result":{ - "engine_result":"tesSUCCESS", - "engine_result_code":0, - "engine_result_message":"The transaction was applied.Only final in a validated ledger.", - "status":"success", - "tx_blob":"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", - "tx_json":{ - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee":"30000", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "Signers":[{ - "Signer":{ - "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey":"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature":"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, { - "Signer":{ - "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey":"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature":"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - }], - "SigningPubKey":"", - "TransactionType":"TrustSet", - "hash":"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } - } +``` +$ rippled submit_multisigned '{ +> "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", +> "Fee" :"30000", +> "Flags" :262144, +> "LimitAmount" :{ +> "currency" :"USD", +> "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", +> "value" :"100" +> }, +> "Sequence" :2, +> "Signers" :[ +> { +> "Signer" :{ +> "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", +> "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", +> "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" +> } +> }, +> { +> "Signer" :{ +> "Account" :"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", +> "SigningPubKey" :"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", +> "TxnSignature" :"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" +> } +> } +> ], +> "SigningPubKey" :"", +> "TransactionType" :"TrustSet", +> "hash" :"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" +> }' +Loading:"/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result":{ + "engine_result":"tesSUCCESS", + "engine_result_code":0, + "engine_result_message":"The transaction was applied.Only final in a validated ledger.", + "status":"success", + "tx_blob":"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", + "tx_json":{ + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee":"30000", + "Flags":262144, + "LimitAmount":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"100" + }, + "Sequence":2, + "Signers":[{ + "Signer":{ + "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey":"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature":"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, { + "Signer":{ + "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey":"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature":"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + }], + "SigningPubKey":"", + "TransactionType":"TrustSet", + "hash":"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } } +} +``` レスポンスの`hash`値をメモしておきます。これにより、後でトランザクションの結果を確認できます。(この例ではハッシュは`BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6`です。) @@ -257,15 +265,17 @@ SlignerListのメンバーの1人のシークレットキーとアドレスを スタンドアロンモードで`rippled`を実行している場合は、[ledger_acceptメソッド][]を使用してレジャーを手動で閉鎖します。 - $ rippled ledger_accept - Loading:"/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" :{ - "ledger_current_index" :7, - "status" :"success" - } - } +``` +$ rippled ledger_accept +Loading:"/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" :{ + "ledger_current_index" :7, + "status" :"success" + } +} +``` ## 6.トランザクション結果の確認 @@ -276,118 +286,117 @@ SlignerListのメンバーの1人のシークレットキーとアドレスを スタンドアロンモードでは、サーバーは手動で閉鎖されたレジャーを自動的に`validated`とみなします。 - $ rippled tx BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6 - Loading:"/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result":{ - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee":"30000", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "Signers":[{ - "Signer":{ - "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey":"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature":"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, { - "Signer":{ - "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey":"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature":"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - }], - "SigningPubKey":"", - "TransactionType":"TrustSet", - "date":512172510, - "hash":"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6", - "inLedger":6, - "ledger_index":6, - "meta":{ - "AffectedNodes":[{ - "ModifiedNode":{ - "LedgerEntryType":"AccountRoot", - "LedgerIndex":"2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8", - "PreviousTxnID":"B7E1D33DB7DEA3BB65BFAB2C80E02125F47FCCF6C957A7FDECD915B3EBE0C1DD", - "PreviousTxnLgrSeq":4 - } - }, { - "CreatedNode":{ - "LedgerEntryType":"RippleState", - "LedgerIndex":"93E317B32022977C77810A2C558FBB28E30E744C68E73720622B797F957EC5FA", - "NewFields":{ - "Balance":{ - "currency":"USD", - "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", - "value":"0" - }, - "Flags":2162688, - "HighLimit":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"0" - }, - "LowLimit":{ - "currency":"USD", - "issuer":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "value":"100" - } - } - } - }, { - "ModifiedNode":{ - "FinalFields":{ - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Balance":"999960000", - "Flags":0, - "OwnerCount":6, - "Sequence":3 - }, - "LedgerEntryType":"AccountRoot", - "LedgerIndex":"A6B1BA6F2D70813100908EA84ABB7783695050312735E2C3665259F388804EA0", - "PreviousFields":{ - "Balance":"999990000", - "OwnerCount":5, - "Sequence":2 - }, - "PreviousTxnID":"8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", - "PreviousTxnLgrSeq":5 - } - }, { - "ModifiedNode":{ - "FinalFields":{ - "Flags":0, - "Owner":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "RootIndex":"C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" - }, - "LedgerEntryType":"DirectoryNode", - "LedgerIndex":"C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" - } - }, { - "CreatedNode":{ - "LedgerEntryType":"DirectoryNode", - "LedgerIndex":"D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204", - "NewFields":{ - "Owner":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "RootIndex":"D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204" - } - } - }], - "TransactionIndex":0, - "TransactionResult":"tesSUCCESS" - }, - "status":"success", - "validated": true - } +``` +$ rippled tx BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6 +Loading:"/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result":{ + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee":"30000", + "Flags":262144, + "LimitAmount":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"100" + }, + "Sequence":2, + "Signers":[{ + "Signer":{ + "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey":"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature":"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, { + "Signer":{ + "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey":"028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature":"30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + }], + "SigningPubKey":"", + "TransactionType":"TrustSet", + "date":512172510, + "hash":"BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6", + "inLedger":6, + "ledger_index":6, + "meta":{ + "AffectedNodes":[{ + "ModifiedNode":{ + "LedgerEntryType":"AccountRoot", + "LedgerIndex":"2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8", + "PreviousTxnID":"B7E1D33DB7DEA3BB65BFAB2C80E02125F47FCCF6C957A7FDECD915B3EBE0C1DD", + "PreviousTxnLgrSeq":4 + } + }, { + "CreatedNode":{ + "LedgerEntryType":"RippleState", + "LedgerIndex":"93E317B32022977C77810A2C558FBB28E30E744C68E73720622B797F957EC5FA", + "NewFields":{ + "Balance":{ + "currency":"USD", + "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", + "value":"0" + }, + "Flags":2162688, + "HighLimit":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"0" + }, + "LowLimit":{ + "currency":"USD", + "issuer":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "value":"100" + } + } + } + }, { + "ModifiedNode":{ + "FinalFields":{ + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Balance":"999960000", + "Flags":0, + "OwnerCount":6, + "Sequence":3 + }, + "LedgerEntryType":"AccountRoot", + "LedgerIndex":"A6B1BA6F2D70813100908EA84ABB7783695050312735E2C3665259F388804EA0", + "PreviousFields":{ + "Balance":"999990000", + "OwnerCount":5, + "Sequence":2 + }, + "PreviousTxnID":"8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", + "PreviousTxnLgrSeq":5 + } + }, { + "ModifiedNode":{ + "FinalFields":{ + "Flags":0, + "Owner":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "RootIndex":"C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" + }, + "LedgerEntryType":"DirectoryNode", + "LedgerIndex":"C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" + } + }, { + "CreatedNode":{ + "LedgerEntryType":"DirectoryNode", + "LedgerIndex":"D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204", + "NewFields":{ + "Owner":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "RootIndex":"D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204" + } + } + }], + "TransactionIndex":0, + "TransactionResult":"tesSUCCESS" + }, + "status":"success", + "validated": true } +} +``` - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/set-up-multi-signing.md b/content/@i18n/ja/tutorials/manage-account-settings/set-up-multi-signing.md index 60f90ce3a5..124a0c1c47 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/set-up-multi-signing.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/set-up-multi-signing.md @@ -7,18 +7,18 @@ labels: --- # マルチシグの設定 -[マルチシグ](multi-signing.html)は、XRP Ledgerの[トランザクション](transactions.html)を承認する3種類の方法の1つです。マルチシグの他に[レギュラーキーとマスターキー](cryptographic-keys.html)で署名する方法があります。3種類のトランザクション承認方法を自由に組み合わせて使用できるように[アドレス](accounts.html)を設定できます。 +[マルチシグ](../../concepts/accounts/multi-signing.md)は、XRP Ledgerの[トランザクション](../../concepts/transactions/index.md)を承認する3種類の方法の1つです。マルチシグの他に[レギュラーキーとマスターキー](../../concepts/accounts/cryptographic-keys.md)で署名する方法があります。3種類のトランザクション承認方法を自由に組み合わせて使用できるように[アドレス](../../concepts/accounts/accounts.md)を設定できます。 このチュートリアルでは、アドレスのマルチシグを有効にする方法を説明します。 ## 前提条件 -- トランザクションを送信するための十分なXRPが供給されていて、新しい署名者リストの[必要準備金](reserves.html)を満たしている資金供給のあるXRP Ledger[アドレス](accounts.html)が必要です。 +- トランザクションを送信するための十分なXRPが供給されていて、新しい署名者リストの[必要準備金](../../concepts/accounts/reserves.md)を満たしている資金供給のあるXRP Ledger[アドレス](../../concepts/accounts/accounts.md)が必要です。 - [MultiSignReserve Amendment][]が有効な場合、マルチシグを使用するには、使用する署名と署名者の数に関わらず、アカウントの準備金として2 XRPが必要です。(MultiSignReserve Amendmentは**2019年4月7日**以降、本番環境のXRP Ledgerで有効になっています。) - - [MultiSignReserve Amendment][]が有効ではないテストネットワークでは、マルチシグを使用するには[アカウント準備金](reserves.html)に通常よりも多くのXRPが必要となります。必要額は、リストの署名者の数に応じて増加します。 + - [MultiSignReserve Amendment][]が有効ではないテストネットワークでは、マルチシグを使用するには[アカウント準備金](../../concepts/accounts/reserves.md)に通常よりも多くのXRPが必要となります。必要額は、リストの署名者の数に応じて増加します。 - XRP Ledgerフォーマットでキーペアを生成するツールを利用できる必要があります。この処理に`rippled`サーバーを使用する場合は、[wallet_proposeメソッド][]が管理者専用であるため、管理者アクセス権限が必要です。 @@ -37,112 +37,116 @@ labels: [wallet_proposeメソッド][]を使用して新しいアドレスを生成できます。例: - $ rippled wallet_propose - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "account_id" : "rnRJ4dpSBKDR2M1itf4Ah6tZZm5xuNZFPH", - "key_type" : "secp256k1", - "master_key" : "FLOG SEND GOES CUFF GAGE FAT ANTI DEL GUM TIRE ISLE BEAR", - "master_seed" : "snheH5UUjU4CWqiNVLny2k21TyKPC", - "master_seed_hex" : "A9F859765EB8614D26809836382AFB82", - "public_key" : "aBR4hxFXcDNHnGYvTiqb2KU8TTTV1cYV9wXTAuz2DjBm7S8TYEBU", - "public_key_hex" : "03C09A5D112B393D531E4F092E3A5769A5752129F0A9C55C61B3A226BB9B567B9B", - "status" : "success" - } +``` +$ rippled wallet_propose +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "account_id" : "rnRJ4dpSBKDR2M1itf4Ah6tZZm5xuNZFPH", + "key_type" : "secp256k1", + "master_key" : "FLOG SEND GOES CUFF GAGE FAT ANTI DEL GUM TIRE ISLE BEAR", + "master_seed" : "snheH5UUjU4CWqiNVLny2k21TyKPC", + "master_seed_hex" : "A9F859765EB8614D26809836382AFB82", + "public_key" : "aBR4hxFXcDNHnGYvTiqb2KU8TTTV1cYV9wXTAuz2DjBm7S8TYEBU", + "public_key_hex" : "03C09A5D112B393D531E4F092E3A5769A5752129F0A9C55C61B3A226BB9B567B9B", + "status" : "success" } +} +``` 生成した各アドレスの`account_id`(XRP Ledgerアドレス)と`master_seed`(シークレットキー)をメモします。 ## 3. SignerListSetトランザクションの送信 -通常の方法(シングルシグネチャー)で[SignerListSetトランザクション][]に[署名して送信](transactions.html#トランザクションへの署名とトランザクションの送信)します。これによりSignerListがXRP Ledgerのアドレスに関連付けられるので、これ以降はSignerListの複数メンバーがあなたの代わりにトランザクションに署名するマルチシグが可能となります。 +通常の方法(シングルシグネチャー)で[SignerListSetトランザクション][]に[署名して送信](../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。これによりSignerListがXRP Ledgerのアドレスに関連付けられるので、これ以降はSignerListの複数メンバーがあなたの代わりにトランザクションに署名するマルチシグが可能となります。 この例ではSignerListに3人のメンバーが含まれています。また、マルチシグトランザクションにはrsA2LpzuawewSBQXkiju3YQTMzW13pAAdWの署名と、リストの他の2人のメンバーからの少なくとも1つの署名を必要とするように、重みと定数が設定されています。 -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} - $ rippled submit shqZZy2Rzs9ZqWTCQAdqc3bKgxnYq '{ - > "Flags": 0, - > "TransactionType": "SignerListSet", - > "Account": "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", - > "Fee": "10000", - > "SignerQuorum": 3, - > "SignerEntries": [ - > { - > "SignerEntry": { - > "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - > "SignerWeight": 2 - > } - > }, - > { - > "SignerEntry": { - > "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - > "SignerWeight": 1 - > } - > }, - > { - > "SignerEntry": { - > "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - > "SignerWeight": 1 - > } - > } - > ] - > }' - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "12000C2200000000240000000120230000000368400000000000271073210303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D74473045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F04281142DECAB42CA805119A9BA2FF305C9AFA12F0B86A1F4EB1300028114204288D2E47F8EF6C99BCC457966320D12409711E1EB13000181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1EB13000181143A4C02EA95AD6AC3BED92FA036E0BBFB712C030CE1F1", - "tx_json" : { - "Account" : "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", - "Fee" : "10000", - "Flags" : 0, - "Sequence" : 1, - "SignerEntries" : [ - { - "SignerEntry" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight" : 2 - } - }, - { - "SignerEntry" : { - "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight" : 1 - } - }, - { - "SignerEntry" : { - "Account" : "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight" : 1 - } - } - ], - "SignerQuorum" : 3, - "SigningPubKey" : "0303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D", - "TransactionType" : "SignerListSet", - "TxnSignature" : "3045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F042", - "hash" : "3950D98AD20DA52EBB1F3937EF32F382D74092A4C8DF9A0B1A06ED25200B5756" - } - } - } -[トランザクションの結果](transaction-results.html)が[**tesSUCCESS**](tes-success.html)であることを確認します。それ以外の場合、トランザクションは失敗しています。スタンドアロンモードまたは本番環境以外のネットワークで問題が発生した場合は、[マルチシグが有効であること](start-a-new-genesis-ledger-in-stand-alone-mode.html#新しいジェネシスレジャーの設定)を確認してください。 +``` +$ rippled submit shqZZy2Rzs9ZqWTCQAdqc3bKgxnYq '{ +> "Flags": 0, +> "TransactionType": "SignerListSet", +> "Account": "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", +> "Fee": "10000", +> "SignerQuorum": 3, +> "SignerEntries": [ +> { +> "SignerEntry": { +> "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", +> "SignerWeight": 2 +> } +> }, +> { +> "SignerEntry": { +> "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", +> "SignerWeight": 1 +> } +> }, +> { +> "SignerEntry": { +> "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", +> "SignerWeight": 1 +> } +> } +> ] +> }' +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "engine_result" : "tesSUCCESS", + "engine_result_code" : 0, + "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", + "status" : "success", + "tx_blob" : "12000C2200000000240000000120230000000368400000000000271073210303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D74473045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F04281142DECAB42CA805119A9BA2FF305C9AFA12F0B86A1F4EB1300028114204288D2E47F8EF6C99BCC457966320D12409711E1EB13000181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1EB13000181143A4C02EA95AD6AC3BED92FA036E0BBFB712C030CE1F1", + "tx_json" : { + "Account" : "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", + "Fee" : "10000", + "Flags" : 0, + "Sequence" : 1, + "SignerEntries" : [ + { + "SignerEntry" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight" : 2 + } + }, + { + "SignerEntry" : { + "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight" : 1 + } + }, + { + "SignerEntry" : { + "Account" : "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight" : 1 + } + } + ], + "SignerQuorum" : 3, + "SigningPubKey" : "0303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D", + "TransactionType" : "SignerListSet", + "TxnSignature" : "3045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F042", + "hash" : "3950D98AD20DA52EBB1F3937EF32F382D74092A4C8DF9A0B1A06ED25200B5756" + } + } +} +``` -**注記:** [MultiSignReserve Amendment][]が有効ではない場合は、SignerListのメンバーの増加に応じて、アドレスの[所有者準備金](reserves.html#所有者準備金)のXRP額を増加する必要があります。アドレスに十分なXRPがないと、トランザクションは[tecINSUFFICIENT_RESERVE](tec-codes.html)で失敗します。[MultiSignReserve Amendment][]が有効な場合は、SignerListの署名者の数に関係なく[所有者準備金](reserves.html#所有者準備金)として必要なXRPは5 XRPです。関連項目: [SignerListと準備金](signerlist.html#signerlistと準備金) +[トランザクションの結果](../../references/protocol/transactions/transaction-results/transaction-results.md)が[**tesSUCCESS**](../../references/protocol/transactions/transaction-results/tes-success.md)であることを確認します。それ以外の場合、トランザクションは失敗しています。スタンドアロンモードまたは本番環境以外のネットワークで問題が発生した場合は、[マルチシグが有効であること](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md#新しいジェネシスレジャーの設定)を確認してください。 + +**注記:** [MultiSignReserve Amendment][]が有効ではない場合は、SignerListのメンバーの増加に応じて、アドレスの[所有者準備金](../../concepts/accounts/reserves.md#所有者準備金)のXRP額を増加する必要があります。アドレスに十分なXRPがないと、トランザクションは[tecINSUFFICIENT_RESERVE](../../references/protocol/transactions/transaction-results/tec-codes.md)で失敗します。[MultiSignReserve Amendment][]が有効な場合は、SignerListの署名者の数に関係なく[所有者準備金](../../concepts/accounts/reserves.md#所有者準備金)として必要なXRPは5 XRPです。関連項目: [SignerListと準備金](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md#signerlistと準備金) ## 4. 検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 5. 新しい署名者リストの確認 @@ -151,79 +155,78 @@ labels: 通常、アカウントは異なるタイプのオブジェクト(トラストラインやオファーなど)を複数所有できます。このチュートリアルで新しいアドレスに資金を供給した場合、SignerListがレスポンスの唯一のオブジェクトになります。 - $ rippled account_objects rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC validated - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "account_objects" : [ - { - "Flags" : 0, - "LedgerEntryType" : "SignerList", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", - "PreviousTxnLgrSeq" : 5, - "SignerEntries" : [ - { - "SignerEntry" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight" : 2 - } - }, - { - "SignerEntry" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight" : 2 - } - }, - { - "SignerEntry" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight" : 2 - } - } - ], - "SignerListID" : 0, - "SignerQuorum" : 3, - "index" : "79FD203E4DDDF2EA78B798C963487120C048C78652A28682425E47C96D016F92" - } - ], - "ledger_hash" : "56E81069F06492FB410A70218C08169BE3AB3CFD5AEA20E999662D81DC361D9F", - "ledger_index" : 5, - "status" : "success", - "validated" : true - } - } +``` +$ rippled account_objects rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC validated +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "account_objects" : [ + { + "Flags" : 0, + "LedgerEntryType" : "SignerList", + "OwnerNode" : "0000000000000000", + "PreviousTxnID" : "8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", + "PreviousTxnLgrSeq" : 5, + "SignerEntries" : [ + { + "SignerEntry" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight" : 2 + } + }, + { + "SignerEntry" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight" : 2 + } + }, + { + "SignerEntry" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight" : 2 + } + } + ], + "SignerListID" : 0, + "SignerQuorum" : 3, + "index" : "79FD203E4DDDF2EA78B798C963487120C048C78652A28682425E47C96D016F92" + } + ], + "ledger_hash" : "56E81069F06492FB410A70218C08169BE3AB3CFD5AEA20E999662D81DC361D9F", + "ledger_index" : 5, + "status" : "success", + "validated" : true + } +} +``` SignerListが予期した内容で存在していれば、アドレスでマルチシグができるようになります。 ## 6. その他のステップ -これで、アドレスから[マルチシグトランザクションを送信](send-a-multi-signed-transaction.html)できます。次の操作も実行できます。 +これで、アドレスから[マルチシグトランザクションを送信](send-a-multi-signed-transaction.md)できます。次の操作も実行できます。 * `asfDisableMaster`フラグを使用して[AccountSetトランザクション][]を送信し、アドレスのマスターキーペアを無効化。 -* [SetRegularKeyトランザクション][]を送信して[アドレスのレギュラーキーペアを削除](change-or-remove-a-regular-key-pair.html)(レギュラーキーペアをすでに設定している場合)。 +* [SetRegularKeyトランザクション][]を送信して[アドレスのレギュラーキーペアを削除](change-or-remove-a-regular-key-pair.md)(レギュラーキーペアをすでに設定している場合)。 ## 関連項目 - **コンセプト:** - - [暗号鍵](cryptographic-keys.html) - - [マルチシグ](multi-signing.html) + - [暗号鍵](../../concepts/accounts/cryptographic-keys.md) + - [マルチシグ](../../concepts/accounts/multi-signing.md) - **チュートリアル:** - - [rippledのインストール](install-rippled.html) - - [レギュラーキーペアの割り当て](assign-a-regular-key-pair.html) - - [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - [パブリック署名の有効化](enable-public-signing.html) + - [rippledのインストール](../../infrastructure/installation/index.md) + - [レギュラーキーペアの割り当て](assign-a-regular-key-pair.md) + - [信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md) + - [パブリック署名の有効化](../../infrastructure/configuration/enable-public-signing.md) - **リファレンス:** - [wallet_proposeメソッド][] - [account_objectsメソッド][] - [sign_forメソッド][] - [submit_multisignedメソッド][] - [SignerListSetトランザクション][] - - [SignerListオブジェクト](signerlist.html) + - [SignerListオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/manage-account-settings/use-tickets.md b/content/@i18n/ja/tutorials/manage-account-settings/use-tickets.md index 0184a7c33b..abe5e0aba5 100644 --- a/content/@i18n/ja/tutorials/manage-account-settings/use-tickets.md +++ b/content/@i18n/ja/tutorials/manage-account-settings/use-tickets.md @@ -10,7 +10,7 @@ labels: --- # チケットの使用 -[チケット](ticket.html)は、通常の順序ではないトランザクションを送信する方法を提供します。このチュートリアルでは、チケットを作成し、それを使って別のトランザクションを送信する手順を説明します。 +[チケット](../../references/protocol/ledger-data/ledger-entry-types/ticket.md)は、通常の順序ではないトランザクションを送信する方法を提供します。このチュートリアルでは、チケットを作成し、それを使って別のトランザクションを送信する手順を説明します。 ## 前提条件 @@ -18,7 +18,7 @@ labels: {% set use_network = "Devnet" %} -このページでは、[xrpl.js](https://js.xrpl.org/)ライブラリを使用したJavaScriptのサンプルを提供しています。設定方法は、[JavaScriptを使ってみよう](get-started-using-javascript.html)をご覧ください。 +このページでは、[xrpl.js](https://js.xrpl.org/)ライブラリを使用したJavaScriptのサンプルを提供しています。設定方法は、[JavaScriptを使ってみよう](../get-started/get-started-using-javascript.md)をご覧ください。 JavaScriptはWebブラウザ上で動作するため、セットアップなしで読み進められ、インタラクティブな手順を利用することができます。 @@ -36,43 +36,43 @@ JavaScriptはWebブラウザ上で動作するため、セットアップなし ### {{n.next()}}. クレデンシャルの入手 -XRP Ledgerでトランザクションを送信するには、アドレスと秘密鍵、そしてXRPが必要です。開発用には、[{{use_network}}](parallel-networks.html)で以下のようなインターフェースを使ってこれらを入手することができます。 +XRP Ledgerでトランザクションを送信するには、アドレスと秘密鍵、そしてXRPが必要です。開発用には、[{{use_network}}](../../concepts/networks-and-servers/parallel-networks.md)で以下のようなインターフェースを使ってこれらを入手することができます。 -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -[本番環境のソフトウェアを作成する場合](production-readiness.html)には、既存のアカウントを使用し、[安全な署名](secure-signing.html)を使用して鍵を管理する必要があります。 +[本番環境のソフトウェアを作成する場合](/tutorials)には、既存のアカウントを使用し、[安全な署名](../../concepts/transactions/secure-signing.md)を使用して鍵を管理する必要があります。 ### {{n.next()}}. ネットワークへの接続 トランザクションをネットワークに送信するには、ネットワークに接続している必要があります。チケットは今のところDevnetでしか利用できないので、Devnetサーバーに接続する必要があります。例えば、以下のようになります。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Connect to" before="// Get credentials" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Connect to", end_before="// Get credentials") }} - - +{% /tabs %} **注記:** このチュートリアルのコードサンプルでは、JavaScriptの[`async`/`await`パターン](https://javascript.info/async-await)を使用しています。`await`は`async`関数の中で使用する必要があるため、残りのコードサンプルはここから始まる`main()`関数の中で続けるように書かれています。なお、`async`/`await`の代わりにPromiseのメソッド`.then()`や`.catch()`を使うこともできます。 このチュートリアルでは、以下のボタンをクリックして接続します。 -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. シーケンス番号の確認 チケットを作成する前に、自分のアカウントの[シーケンス番号][]を確認しておきましょう。次のステップのために現在のシーケンス番号が必要であり、設定されるチケットのシーケンス番号はこの番号から始まります。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Check Sequence" before="// Prepare and Sign TicketCreate" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Check Sequence", end_before="// Prepare and Sign TicketCreate") }} - - +{% /tabs %} {{ start_step("Check Sequence") }} @@ -86,15 +86,15 @@ _JavaScript_ 前のステップで決定したシーケンス番号を使用して、[TicketCreate トランザクション][]を構築します。`TicketCount`フィールドを使って、作成するチケットの枚数を指定します。例えば、10枚のチケットを作成するトランザクションを準備するには、次のようにします。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Prepare and Sign TicketCreate" before="// Submit TicketCreate" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Prepare and Sign TicketCreate", end_before="// Submit TicketCreate") }} +{% /tabs %} - - -トランザクションのハッシュと`LastLedgerSequence`の値を記録しておけば、[後で検証されたかどうかを確認](reliable-transaction-submission.html)することができます。 +トランザクションのハッシュと`LastLedgerSequence`の値を記録しておけば、[後で検証されたかどうかを確認](../../concepts/transactions/reliable-transaction-submission.md)することができます。 {{ start_step("Prepare & Sign") }} @@ -108,13 +108,13 @@ _JavaScript_ 前のステップで作成した署名付きトランザクションBlobを送信します。例えば、以下のようになります。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Submit TicketCreate" before="// Wait for Validation" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Submit TicketCreate", end_before="// Wait for Validation") }} - - +{% /tabs %} {{ start_step("Submit") }} @@ -125,18 +125,18 @@ _JavaScript_ ### {{n.next()}}. 検証の待機 -ほとんどのトランザクションは、送信された後に次の台帳のバージョンに受け入れられます。つまり、トランザクションの結果が確定するまでに4~7秒かかることがあります。XRP Ledgerが混雑している場合や、ネットワークの接続性が悪いためにトランザクションがネットワーク全体に中継されない場合は、トランザクションが確定するまでに時間がかかることがあります。(トランザクションの有効期限を設定する方法については、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください)。 +ほとんどのトランザクションは、送信された後に次の台帳のバージョンに受け入れられます。つまり、トランザクションの結果が確定するまでに4~7秒かかることがあります。XRP Ledgerが混雑している場合や、ネットワークの接続性が悪いためにトランザクションがネットワーク全体に中継されない場合は、トランザクションが確定するまでに時間がかかることがあります。(トランザクションの有効期限を設定する方法については、[信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md)を参照してください)。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Wait for Validation" before="// Check Available" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Wait for Validation", end_before="// Check Available") }} - - +{% /tabs %} {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -159,13 +159,13 @@ _JavaScript_ チケット付きのトランザクションを送信したい場合、どのチケットシーケンス番号を使用するかを知る必要があります。アカウントを注意深く管理していれば、どのチケットを持っているかはすでにわかっていると思いますが、よくわからない場合は、[account_objects メソッド][]を使って、利用可能なチケットを調べることができます。例えば、以下のようになります。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Check Available Tickets" before="// Prepare and Sign Ticketed" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Check Available Tickets", end_before="// Prepare and Sign Ticketed") }} - - +{% /tabs %} {{ start_step("Check Tickets") }} @@ -179,20 +179,22 @@ _JavaScript_ チケットが利用できるようになったので、それを使用するトランザクションを準備します。 -ここでは、好きな[トランザクションのタイプ](transaction-types.html)を使用することができます。次の例では、何も行わない[AccountSet トランザクション][]を使用していますが、これはレジャーに他の設定を必要としないからです。`Sequence`フィールドを`0`に設定して、利用可能なチケットの1つのチケットシーケンス番号を持つ`TicketSequence`フィールドを含めます。 +ここでは、好きな[トランザクションのタイプ](../../references/protocol/transactions/types/index.md)を使用することができます。次の例では、何も行わない[AccountSet トランザクション][]を使用していますが、これはレジャーに他の設定を必要としないからです。`Sequence`フィールドを`0`に設定して、利用可能なチケットの1つのチケットシーケンス番号を持つ`TicketSequence`フィールドを含めます。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Prepare and Sign Ticketed" before="// Submit Ticketed Transaction" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Prepare and Sign Ticketed", end_before="// Submit Ticketed Transaction") }} +{% /tabs %} - +{% admonition type="success" name="ヒント" %} +TicketCreateトランザクションをすぐに送信する予定がない場合は、トランザクションが期限切れにならないように、`LastLedgerSequence`を設定しないようにする必要があります。これを行う方法はライブラリによって異なります。 -> **ヒント:** TicketCreateトランザクションをすぐに送信する予定がない場合は、トランザクションが期限切れにならないように、`LastLedgerSequence`を設定しないようにする必要があります。これを行う方法はライブラリによって異なります。 -> -> - **xrpl.js:** トランザクションの自動入力の際に、`"LastLedgerSequence": null`を指定する。 -> - **`rippled`:** 用意された指示から`LastLedgerSequence`を省略します。サーバーはデフォルトでは値を提供しません。 +- **xrpl.js:** トランザクションの自動入力の際に、`"LastLedgerSequence": null`を指定する。 +- **`rippled`:** 用意された指示から`LastLedgerSequence`を省略します。サーバーはデフォルトでは値を提供しません。 +{% /admonition %} {{ start_step("Prepare Ticketed Tx") }}
      @@ -208,13 +210,13 @@ _JavaScript_ 前のステップで作成した署名付きトランザクションBlobを送信します。例えば、以下のようになります。 - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Submit Ticketed Transaction" before="// Wait for Validation (again)" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Submit Ticketed Transaction", end_before="// Wait for Validation (again)") }} - - +{% /tabs %} {{ start_step("Submit Ticketed Tx") }} @@ -227,14 +229,14 @@ _JavaScript_ チケット付きトランザクションは、シーケンス付きトランザクションと同じようにコンセンサスプロセスを経ます。 {{ start_step("Wait Again") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ## マルチシグで使用する -チケットの主な使用例としては、複数の[マルチシグ](multi-signing.html)を並行して集めることができます。チケットを使用することで、複数署名されたトランザクションが完全に署名されて準備が整った時点で、どれが先に準備されるかを気にすることなく送信することができます。 +チケットの主な使用例としては、複数の[マルチシグ](../../concepts/accounts/multi-signing.md)を並行して集めることができます。チケットを使用することで、複数署名されたトランザクションが完全に署名されて準備が整った時点で、どれが先に準備されるかを気にすることなく送信することができます。 -このシナリオでは、[step8,「チケット付きトランザクションの準備」](#8-チケット付きトランザクションの準備)が若干異なります。準備と署名を一度に行うのではなく、[任意のマルチシグトランザクションの送信](send-a-multi-signed-transaction.html)の手順に従うことになります。まずトランザクションを準備し、次に信頼できる署名者の間でトランザクションを循環させて署名を集め、最後に署名を組み合わせて最終的なマルチシグトランザクションを作成します。 +このシナリオでは、[step8,「チケット付きトランザクションの準備」](#8-チケット付きトランザクションの準備)が若干異なります。準備と署名を一度に行うのではなく、[任意のマルチシグトランザクションの送信](send-a-multi-signed-transaction.md)の手順に従うことになります。まずトランザクションを準備し、次に信頼できる署名者の間でトランザクションを循環させて署名を集め、最後に署名を組み合わせて最終的なマルチシグトランザクションを作成します。 複数の異なるトランザクションを処理する場合、それぞれが異なるチケットを使用する限り、この作業を並行して行うことができます。 @@ -242,19 +244,16 @@ _JavaScript_ ## 関連項目 - **Concepts:** - - [チケット](tickets.html) - - [マルチシグ](multi-signing.html) + - [チケット](../../concepts/accounts/tickets.md) + - [マルチシグ](../../concepts/accounts/multi-signing.md) - **Tutorials:** - - [マルチシグの設定](set-up-multi-signing.html) - - [信頼出来るトランザクションの送信](reliable-transaction-submission.html) + - [マルチシグの設定](set-up-multi-signing.md) + - [信頼出来るトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md) - **References:** - [account_objects メソッド][] - [sign_for メソッド][] - [submit_multisigned メソッド][] - [TicketCreate トランザクション][] - - [トランザクションの共通フィールド](transaction-common-fields.html) + - [トランザクションの共通フィールド](../../references/protocol/transactions/common-fields.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/python/index.md b/content/@i18n/ja/tutorials/python/index.md index 6a85d85905..ed8301f986 100644 --- a/content/@i18n/ja/tutorials/python/index.md +++ b/content/@i18n/ja/tutorials/python/index.md @@ -2,8 +2,12 @@ html: python.html parent: tutorials.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Python -PythonでのXRPLチュートリアルです。 \ No newline at end of file +PythonでのXRPLチュートリアルです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/python/modular-tutorials-in-python/index.md b/content/@i18n/ja/tutorials/python/modular-tutorials-in-python/index.md index 3a340dfae2..40a60d39ef 100644 --- a/content/@i18n/ja/tutorials/python/modular-tutorials-in-python/index.md +++ b/content/@i18n/ja/tutorials/python/modular-tutorials-in-python/index.md @@ -2,8 +2,12 @@ html: modular-tutorials-in-python.html parent: python.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Pythonのモジュール形式チュートリアル -Pythonによるモジュール式XRPLチュートリアル。 \ No newline at end of file +Pythonによるモジュール式XRPLチュートリアル。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/tasks/index.md b/content/@i18n/ja/tutorials/tasks/index.md index 873d6e3081..91ed4c55ab 100644 --- a/content/@i18n/ja/tutorials/tasks/index.md +++ b/content/@i18n/ja/tutorials/tasks/index.md @@ -2,8 +2,12 @@ html: tasks.html parent: tutorials.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # タスク -XRP Ledgerの代表的なタスクです。 \ No newline at end of file +XRP Ledgerの代表的なタスクです。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/tasks/manage-account-settings/index.md b/content/@i18n/ja/tutorials/tasks/manage-account-settings/index.md index 2703596de7..2f10789150 100644 --- a/content/@i18n/ja/tutorials/tasks/manage-account-settings/index.md +++ b/content/@i18n/ja/tutorials/tasks/manage-account-settings/index.md @@ -1,8 +1,12 @@ --- html: manage-account-settings.html parent: tasks.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # アカウントの設定の利用 -XRP Ledgerアカウントを設定して、思い通りの支払いをしましょう。 \ No newline at end of file +XRP Ledgerアカウントを設定して、思い通りの支払いをしましょう。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/index.md b/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/index.md index 576b144f60..c39ade9463 100644 --- a/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/index.md +++ b/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/index.md @@ -1,8 +1,12 @@ --- html: use-specialized-payment-types.html parent: tasks.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # 専門的な支払いタイプの使用 -EscrowやPayment Channelなどの高度な機能を使用して、XRP Ledgerでスマートアプリケーションを構築しましょう。 \ No newline at end of file +EscrowやPayment Channelなどの高度な機能を使用して、XRP Ledgerでスマートアプリケーションを構築しましょう。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md b/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md index 2b3dc60332..35d2105e8c 100644 --- a/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md +++ b/content/@i18n/ja/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md @@ -1,8 +1,12 @@ --- html: use-escrows.html parent: use-specialized-payment-types.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Escrowの使用 XRP Ledgerは、一定時間の経過後か暗号条件が満たされた場合にのみ実行されるEscrowをサポートします。Escrowが送金できるのはXRPのみで、トークンは送金できません。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/tasks/use-tokens/index.md b/content/@i18n/ja/tutorials/tasks/use-tokens/index.md index 86163a4763..291bd04584 100644 --- a/content/@i18n/ja/tutorials/tasks/use-tokens/index.md +++ b/content/@i18n/ja/tutorials/tasks/use-tokens/index.md @@ -1,8 +1,12 @@ --- html: use-tokens.html parent: tasks.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # トークンの利用 -XRP Ledgerでトークン(代替型やそれ以外)を発行し、取引しましょう \ No newline at end of file +XRP Ledgerでトークン(代替型やそれ以外)を発行し、取引しましょう + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md index 984ed2a59b..1e6115d934 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md @@ -9,9 +9,9 @@ labels: _[Checks Amendment][]により追加されました。_ -このチュートリアルでは、[Check](checks.html)を取り消す手順を説明します。この手順を実行すると、送金を行わずに[レジャーのCheckオブジェクト](check.html)が削除されます。 +このチュートリアルでは、[Check](../../../concepts/payment-types/checks.md)を取り消す手順を説明します。この手順を実行すると、送金を行わずに[レジャーのCheckオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/check.md)が削除されます。 -着信したCheckが不要な場合、取り消すことができます。送信時に内容を誤って入力した場合や状況が変化した場合に、送信したCheckを取り消すこともできます。有効期限切れのCheckはレジャーから削除する必要があります。これにより、送金元に[所有者準備金](reserves.html#所有者準備金)が戻ります。 +着信したCheckが不要な場合、取り消すことができます。送信時に内容を誤って入力した場合や状況が変化した場合に、送信したCheckを取り消すこともできます。有効期限切れのCheckはレジャーから削除する必要があります。これにより、送金元に[所有者準備金](../../../concepts/accounts/reserves.md#所有者準備金)が戻ります。 {% set cancel_n = cycler(* range(1,99)) %} @@ -22,13 +22,13 @@ _[Checks Amendment][]により追加されました。_ - 現在レジャーに記録されているCheckオブジェクトのIDが必要です。 - たとえばこのチュートリアルの例では、IDが`49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0`のCheckを取り消しますが、この手順を自身で実行する場合は異なるIDを使用する必要があります。 - CheckCancelトランザクションを送信する資金供給のあるアカウントの**アドレス**と**シークレットキー**。Checkが有効期限切れでない限り、このアドレスは、Checkの送金元または受取人のいずれかでなければなりません。 -- トランザクションに[安全に署名できる手段](secure-signing.html)。 -- [クライアントライブラリ](client-libraries.html)またはHTTPライブラリ、WebSocketライブラリなど。 +- トランザクションに[安全に署名できる手段](../../../concepts/transactions/secure-signing.md)。 +- [クライアントライブラリ](../../../references/client-libraries.md)またはHTTPライブラリ、WebSocketライブラリなど。 ## {{cancel_n.next()}}.CheckCancelトランザクションの準備 -[CheckCancelトランザクション][]のフィールドの値を決定します。以下のフィールドは必要最小限のフィールドです。その他のフィールドはオプションまたは署名時に[自動入力](transaction-common-fields.html#自動入力可能なフィールド)可能なフィールドです。 +[CheckCancelトランザクション][]のフィールドの値を決定します。以下のフィールドは必要最小限のフィールドです。その他のフィールドはオプションまたは署名時に[自動入力](../../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド)可能なフィールドです。 | フィールド | 値 | 説明 | |:------------------|:-----------------|:--------------------------------------| @@ -40,10 +40,9 @@ _[Checks Amendment][]により追加されました。_ Checkを取り消す例を以下に示します。 - - -*JSON-RPC、WebSocket、またはコマンドライン* +{% tabs %} +{% tab label="JSON-RPC、WebSocket、またはコマンドライン" %} ```json { "TransactionType": "CheckCancel", @@ -52,147 +51,119 @@ Checkを取り消す例を以下に示します。 "Fee": "12" } ``` +{% /tab %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCancel.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/prepareCancel.js' %} -``` - - +{% /tabs %} ## {{cancel_n.next()}}.CheckCancelトランザクションの署名 -{% include '_snippets/tutorial-sign-step.ja.md' %} +{% partial file="/_snippets/tutorial-sign-step.md" /%} ### リクエストの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/signCancel.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/signCancel.js' %} -``` +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cancel-req.sh" language="bash" /%} +{% /tab %} -*コマンドライン* - -```bash -{% include '_code-samples/checks/cli/sign-cancel-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/sign-cancel-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/sign-cancel-resp.txt' %} -``` +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cancel-resp.txt" language="json" /%} +{% /tab %} -*コマンドライン* - -```json -{% include '_code-samples/checks/cli/sign-cancel-resp.txt' %} -``` - - +{% /tabs %} ## {{cancel_n.next()}}.署名済みCheckCancelトランザクションの送信 {% set step_1_link = "#1checkcancelトランザクションの準備" %} -{% include '_snippets/tutorial-submit-step.md' %} +{% partial file="/_snippets/tutorial-submit-step.md" /%} ### リクエストの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submitCancel.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submitCancel.js' %} -``` +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cancel-req.sh" language="bash" /%} +{% /tab %} -*コマンドライン* - -```bash -{% include '_code-samples/checks/cli/submit-cancel-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submit-cancel-resp.txt" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submit-cancel-resp.txt' %} -``` +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cancel-resp.txt" language="json" /%} +{% /tab %} -*コマンドライン* - -```json -{% include '_code-samples/checks/cli/submit-cancel-resp.txt' %} -``` - - +{% /tabs %} ## {{cancel_n.next()}}.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## {{cancel_n.next()}}.最終結果の確認 トランザクションのステータスを確認するには、CheckCancelトランザクションの識別用ハッシュを指定した[txメソッド][]を使用します。トランザクションが成功したことを示す`"TransactionResult": "tesSUCCESS"`フィールドをトランザクションメタデータから検索し、またこの結果が最終結果であることを示す`"validated": true`フィールドを結果から検索します。 -トランザクションによって[Checkレジャーオブジェクト](check.html)が削除されたことを示す`"LedgerEntryType": "Check"`を含む`DeletedNode`オブジェクトを、トランザクションメタデータから検索します。このオブジェクトの`LedgerIndex`はCheckのIDに一致している必要があります。 +トランザクションによって[Checkレジャーオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/check.md)が削除されたことを示す`"LedgerEntryType": "Check"`を含む`DeletedNode`オブジェクトを、トランザクションメタデータから検索します。このオブジェクトの`LedgerIndex`はCheckのIDに一致している必要があります。 ### リクエストの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/getCancelTx.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/getCancelTx.js' %} -``` +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cancel-req.sh" language="bash" /%} +{% /tab %} -*コマンドライン* - -```bash -{% include '_code-samples/checks/cli/tx-cancel-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/get-cancel-tx-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/js/get-cancel-tx-resp.txt' %} -``` +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cancel-resp.txt" language="json" /%} +{% /tab %} -*コマンドライン* +{% /tabs %} -```json -{% include '_code-samples/checks/cli/tx-cancel-resp.txt' %} -``` - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md index 12e476acb5..8e6550745b 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md @@ -13,18 +13,18 @@ Checkがレジャーに記録されており有効期限切れではない場合 Checkから可能な限りの額を受領したい場合には、変動金額でCheckを換金できます。 -指定受取人は、[Checkを正確な金額で換金する](cash-a-check-for-a-flexible-amount.html)こともできます。 +指定受取人は、[Checkを正確な金額で換金する](cash-a-check-for-a-flexible-amount.md)こともできます。 {% set cash_flex_n = cycler(* range(1,99)) %} ## 前提条件 -{% include '_snippets/checkcash-prereqs.ja.md' %} +{% partial file="/_snippets/checkcash-prereqs.md" /%} ## {{cash_flex_n.next()}}.CheckCashトランザクションの準備 -[CheckCashトランザクション][]のフィールドの値を決定します。Checkを変動金額で換金する場合、以下のフィールドは必要最小限です。それ以外のフィールドはオプションまたは署名時に[自動入力](transaction-common-fields.html#自動入力可能なフィールド)可能なフィールドです。 +[CheckCashトランザクション][]のフィールドの値を決定します。Checkを変動金額で換金する場合、以下のフィールドは必要最小限です。それ以外のフィールドはオプションまたは署名時に[自動入力](../../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド)可能なフィールドです。 | フィールド | 値 | 説明 | |:------------------|:--------------------------|:-----------------------------| @@ -37,10 +37,9 @@ Checkから可能な限りの額を受領したい場合には、変動金額で Checkを変動金額で換金するためのトランザクションを準備する手順を以下の例に示します。 - - -*JSON-RPC、WebSocket、またはコマンドライン* +{% tabs %} +{% tab label="JSON-RPC、WebSocket、またはコマンドライン" %} ```json { "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", @@ -49,78 +48,69 @@ Checkを変動金額で換金するためのトランザクションを準備す "CheckID": "2E0AD0740B79BE0AAE5EDD1D5FC79E3C5C221D23C6A7F771D85569B5B91195C2" } ``` +{% /tab %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCashFlex.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/prepareCashFlex.js' %} -``` - - +{% /tabs %} ## {{cash_flex_n.next()}}.CheckCashトランザクションの署名 -{% include '_snippets/tutorial-sign-step.ja.md' %} +{% partial file="/_snippets/tutorial-sign-step.md" /%} ### リクエストの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-flex-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/sign-cash-flex-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-flex-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/sign-cash-flex-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_flex_n.next()}}.署名済みCheckCashトランザクションの送信 {% set step_1_link = "#1checkcashトランザクションの準備" %} -{% include '_snippets/tutorial-submit-step.md' %} +{% partial file="/_snippets/tutorial-submit-step.md" /%} ### リクエストの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-flex-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/submit-cash-flex-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-flex-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/submit-cash-flex-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_flex_n.next()}}.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## {{cash_flex_n.next()}}.最終結果の確認 @@ -128,32 +118,28 @@ Checkを変動金額で換金するためのトランザクションを準備す ### リクエストの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-flex-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/tx-cash-flex-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-flex-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/tx-cash-flex-resp.txt' %} -``` - - +{% /tabs %} ### エラー処理 -[](transaction-results.html)Checkの換金が`tec`クラスコードで失敗した場合は、[すべてのトランザクションレスポンスのリスト](transaction-results.html)でコードを確認し、適切に対処してください。CheckCashトランザクションでよく返される結果コードの一部を次に示します。 +[](../../../references/protocol/transactions/transaction-results/transaction-results.md)Checkの換金が`tec`クラスコードで失敗した場合は、[すべてのトランザクションレスポンスのリスト](../../../references/protocol/transactions/transaction-results/transaction-results.md)でコードを確認し、適切に対処してください。CheckCashトランザクションでよく返される結果コードの一部を次に示します。 | 結果コード | 意味 | 対処 | |-------------|---------|----------------| @@ -161,44 +147,48 @@ Checkを変動金額で換金するためのトランザクションを準備す | `tecNO_ENTRY` | Check IDが存在していません。 | CheckCashトランザクションの`CheckID`が正しいことを確認してください。Checkがまだ取り消されていないこと、または正常に換金されていないことを確認してください。 | | `tecNO_LINE` | 受取人がCheckの通貨のトラストラインを所有していません。 | このイシュアーからのこの通貨を保有するには、指定された通貨とイシュアーのトラストラインを作成し、[TrustSetトランザクション][]を使用してこのトラストラインに適切な限度額を設定してから、Checkの換金を再試行します。 | | `tecNO_PERMISSION` | CheckCashトランザクションの送信者はCheckの`Destination`ではありません。 | Checkの`Destination`を再度確認します。 | -| `tecNO_AUTH` | このCheckの通貨のイシュアーは[Authorized Trust Line](authorized-trust-lines.html)を使用していますが、受取人からイシュアーへのトラストラインが承認されていません。 | このトラストラインを承認するようイシュアーに依頼し、承認されたらCheckの換金を再試行します。 | -| `tecPATH_PARTIAL` | トラストラインの限度額、または送金元に送金通貨の残高(イシュアーの[送金手数料](transfer-fees.html)がある場合はこの手数料を含む)が十分になかったことが原因で、Checkでは十分なトークンを送金できませんでした。 | 原因がトラストラインの限度額である場合は、(希望する場合には)限度額を引き上げる[TrustSetトランザクション][]を送信するか、または通貨の一部を消費して残高を減らしてから、Checkの換金を再試行します。原因が送金元の残高である場合は、送金元にCheckの通貨が積み増しされるまで待つか、または以前よりも低い額でCheckの換金を再試行します。 | +| `tecNO_AUTH` | このCheckの通貨のイシュアーは[Authorized Trust Line](../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用していますが、受取人からイシュアーへのトラストラインが承認されていません。 | このトラストラインを承認するようイシュアーに依頼し、承認されたらCheckの換金を再試行します。 | +| `tecPATH_PARTIAL` | トラストラインの限度額、または送金元に送金通貨の残高(イシュアーの[送金手数料](../../../concepts/tokens/transfer-fees.md)がある場合はこの手数料を含む)が十分になかったことが原因で、Checkでは十分なトークンを送金できませんでした。 | 原因がトラストラインの限度額である場合は、(希望する場合には)限度額を引き上げる[TrustSetトランザクション][]を送信するか、または通貨の一部を消費して残高を減らしてから、Checkの換金を再試行します。原因が送金元の残高である場合は、送金元にCheckの通貨が積み増しされるまで待つか、または以前よりも低い額でCheckの換金を再試行します。 | | `tecUNFUNDED_PAYMENT` | Checkで十分なXRPを送金できませんでした。 | 送金元にXRPが積み増しされるまで待つか、または以前よりも低い額でCheckの換金を再試行します。 | ## {{cash_flex_n.next()}}.送金された額の確認 Checkが変動する`DeliverMin`の額で換金された場合は、Checkは少なくとも`DeliverMin`の額で換金されたと想定できます。送金された額を正確に得るには、トランザクションメタデータを調べます。メタデータの`AffectedNodes`配列には、通貨のタイプに応じて、Checkの換金による残高の変更を反映した1~2つのオブジェクトが含まれています。 -- XRPの場合、Checkの送金元の`AccountRoot`オブジェクトのXRP `Balance` フィールドから引き落しが行われます。Checkの受取人(CheckCashトランザクションを送信したユーザー)の`AccountRoot`オブジェクトでは、最低でもCheckCashトランザクションの`DeliverMin`から、トランザクションの送信にかかる[トランザクションコスト](transaction-cost.html)を差し引いた額が、XRP `Balance`に入金されます。 +- XRPの場合、Checkの送金元の`AccountRoot`オブジェクトのXRP `Balance` フィールドから引き落しが行われます。Checkの受取人(CheckCashトランザクションを送信したユーザー)の`AccountRoot`オブジェクトでは、最低でもCheckCashトランザクションの`DeliverMin`から、トランザクションの送信にかかる[トランザクションコスト](../../../concepts/transactions/transaction-cost.md)を差し引いた額が、XRP `Balance`に入金されます。 たとえば以下の`ModifiedNode`は、アカウントrGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis(Checkの受取人でありこのCheckCashトランザクションの送信者)のXRP残高が`9999999970` dropから`10099999960` dropに変更されています。つまり、このトランザクションを処理した結果として、受取人に対し _正味_ 99.99999 XRPが入金されています。 - { - "ModifiedNode": { - "FinalFields": { - "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "Balance": "10099999960", - "Flags": 0, - "OwnerCount": 2, - "Sequence": 5 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "7939126A732EBBDEC715FD3CCB056EB31E65228CA17E3B2901E7D30B90FD03D3", - "PreviousFields": { - "Balance": "9999999970", - "Sequence": 4 - }, - "PreviousTxnID": "0283465F0D21BE6B1E91ABDE17266C24C1B4915BAAA9A88CC098A98D5ECD3E9E", - "PreviousTxnLgrSeq": 8005334 - } - } + ``` + { + "ModifiedNode": { + "FinalFields": { + "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", + "Balance": "10099999960", + "Flags": 0, + "OwnerCount": 2, + "Sequence": 5 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "7939126A732EBBDEC715FD3CCB056EB31E65228CA17E3B2901E7D30B90FD03D3", + "PreviousFields": { + "Balance": "9999999970", + "Sequence": 4 + }, + "PreviousTxnID": "0283465F0D21BE6B1E91ABDE17266C24C1B4915BAAA9A88CC098A98D5ECD3E9E", + "PreviousTxnLgrSeq": 8005334 + } + } + ``` 正味金額99.99999 XRPは、このCheckCashトランザクションを送信するにあたり、トランザクションコストを支払うために消却された額を差し引いた後の金額です。以下のトランザクション指示(抜粋)は、トランザクションコスト(`Fee`フィールド)がXRPの10 dropであることを示しています。これを正味残高の変更に追加することで、このCheckの換金のために受取人rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAisに _総額_ 100 XRPが入金されます。 - "Account" : "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "TransactionType" : "CheckCash", - "DeliverMin" : "95000000", - "Fee" : "10", + ``` + "Account" : "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", + "TransactionType" : "CheckCash", + "DeliverMin" : "95000000", + "Fee" : "10", + ``` - Checkの送金元または受取人がイシュアーであるトークンの場合、これらのアカウント間のトラストラインを表す`RippleState`オブジェクトでは、`Balance`がCheckの受取人に有利な方法で調整されています。 @@ -208,8 +198,8 @@ Checkが変動する`DeliverMin`の額で換金された場合は、Checkは少 - - トークンに[送金手数料](transfer-fees.html)がある場合、受取人への入金額を上回る額がCheckの送金元から引き落とされます。(この差額が送金手数料であり、これがイシュアーに戻されることによりイシュアーの正味の債務は減少します。) + - トークンに[送金手数料](../../../concepts/tokens/transfer-fees.md)がある場合、受取人への入金額を上回る額がCheckの送金元から引き落とされます。(この差額が送金手数料であり、これがイシュアーに戻されることによりイシュアーの正味の債務は減少します。) -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md index 61f34a5edf..e791210f08 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md @@ -11,17 +11,17 @@ _[Checks Amendment][]により追加されました。_ Checkがレジャーに含まれており有効期限切れではない場合は、指定の受取人は`Amount`フィールドを指定した[CheckCashトランザクション][]を送信することで、Checkを換金し、Checkに指定されている額までの正確な額を受領できます。請求書の額面通りの金額を回収したい場合など、特定の金額の受領を希望する際には、この方法でCheckを換金できます。 -指定の受取人は、[Checkを変動金額で換金する](cash-a-check-for-a-flexible-amount.html)こともできます。 +指定の受取人は、[Checkを変動金額で換金する](cash-a-check-for-a-flexible-amount.md)こともできます。 {% set cash_exact_n = cycler(* range(1,99)) %} ## 前提条件 -{% include '_snippets/checkcash-prereqs.ja.md' %} +{% partial file="/_snippets/checkcash-prereqs.md" /%} ## {{cash_exact_n.next()}}.CheckCashトランザクションの準備 -[CheckCashトランザクション][]のフィールドの値を決定します。Checkを正確な金額で換金する場合、以下のフィールドが最低限必要です。それ以外のフィールドはオプションまたは署名時に[自動入力](transaction-common-fields.html#自動入力可能なフィールド)可能なフィールドです。 +[CheckCashトランザクション][]のフィールドの値を決定します。Checkを正確な金額で換金する場合、以下のフィールドが最低限必要です。それ以外のフィールドはオプションまたは署名時に[自動入力](../../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド)可能なフィールドです。 | フィールド | 値 | 説明 | |:------------------|:--------------------------|:-----------------------------| @@ -35,10 +35,9 @@ Checkがレジャーに含まれており有効期限切れではない場合は Checkを正確な金額で換金するためのトランザクションを準備する手順を以下の例に示します。 - - -*JSON-RPC、WebSocket、またはコマンドライン* +{% tabs %} +{% tab label="JSON-RPC、WebSocket、またはコマンドライン" %} ```json { "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", @@ -48,78 +47,69 @@ Checkを正確な金額で換金するためのトランザクションを準備 "Fee": "12" } ``` +{% /tab %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCashExact.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/prepareCashExact.js' %} -``` - - +{% /tabs %} ## {{cash_exact_n.next()}}.CheckCashトランザクションの署名 -{% include '_snippets/tutorial-sign-step.ja.md' %} +{% partial file="/_snippets/tutorial-sign-step.md" /%} ### リクエストの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-exact-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/sign-cash-exact-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-exact-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/sign-cash-exact-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_exact_n.next()}}.署名済みCheckCashトランザクションの送信 {% set step_1_link = "#1checkcashトランザクションの準備" %} -{% include '_snippets/tutorial-submit-step.md' %} +{% partial file="/_snippets/tutorial-submit-step.md" /%} ### リクエストの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-exact-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/submit-cash-exact-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-exact-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/submit-cash-exact-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_exact_n.next()}}.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## {{cash_exact_n.next()}}.最終結果の確認 @@ -127,33 +117,29 @@ Checkを正確な金額で換金するためのトランザクションを準備 Checkが正確な`Amount`で換金された場合は、受取人に対し正確な額が入金されたと想定できます(トークンの金額が極めて大きい場合や小さい場合は、金額が丸められることがあります)。 -Checkを換金できない場合、Checkはレジャーに残るため、後日換金を再試行できます。代わりに[Checkを変動金額で換金する](cash-a-check-for-a-flexible-amount.html)ことができます。 +Checkを換金できない場合、Checkはレジャーに残るため、後日換金を再試行できます。代わりに[Checkを変動金額で換金する](cash-a-check-for-a-flexible-amount.md)ことができます。 ### リクエストの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-exact-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/tx-cash-exact-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*コマンドライン* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-exact-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/tx-cash-exact-resp.txt' %} -``` - - +{% /tabs %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md index 512526ff31..ae4f7ebffe 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md @@ -9,7 +9,7 @@ labels: _[Checks Amendment][]により追加されました。_ -このチュートリアルでは、[Check](checks.html)をその受取人で検索する方法を説明します。[Checkを送金元で検索する](look-up-checks-by-sender.html)こともできます。 +このチュートリアルでは、[Check](../../../concepts/payment-types/checks.md)をその受取人で検索する方法を説明します。[Checkを送金元で検索する](look-up-checks-by-sender.md)こともできます。 ## 1. 特定のアドレスのすべてのCheckの検索 @@ -20,41 +20,31 @@ _[Checks Amendment][]により追加されました。_ ### リクエストの例 - +{% tabs %} -*RippleAPI* +{% tab label="RippleAPI" %} +{% code-snippet file="/_code-samples/checks/js/getChecks.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/getChecks.js' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-req.json" language="json" /%} +{% /tab %} -*JSON-RPC* - -```json -{% include '_code-samples/checks/json-rpc/account_objects-req.json' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*RippleAPI* +{% tab label="RippleAPI" %} +{% code-snippet file="/_code-samples/checks/js/get-checks-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/get-checks-resp.txt' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-resp.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* - -```json -200 OK - -{% include '_code-samples/checks/json-rpc/account_objects-resp.json' %} -``` - - +{% /tabs %} ## 2. 受取人に基づくレスポンスの絞り込み @@ -80,5 +70,5 @@ for (i=0; i < account_objects_response.account_objects.length; i++) { ``` -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md index 37e3f29265..c29c6e7594 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md @@ -9,7 +9,7 @@ labels: _[Checks Amendment][]により追加されました。_ -このチュートリアルでは、[Check](checks.html)をその送金元で検索する方法を説明します。[Checkを受取人で検索する](look-up-checks-by-recipient.html)こともできます。 +このチュートリアルでは、[Check](../../../concepts/payment-types/checks.md)をその送金元で検索する方法を説明します。[Checkを受取人で検索する](look-up-checks-by-recipient.md)こともできます。 ## 1. 特定のアドレスのすべてのCheckの検索 @@ -21,41 +21,31 @@ _[Checks Amendment][]により追加されました。_ ### リクエストの例 - +{% tabs %} -*RippleAPI* +{% tab label="RippleAPI" %} +{% code-snippet file="/_code-samples/checks/js/getChecks.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/getChecks.js' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-req.json" language="json" /%} +{% /tab %} -*JSON-RPC* - -```json -{% include '_code-samples/checks/json-rpc/account_objects-req.json' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*RippleAPI* +{% tab label="RippleAPI" %} +{% code-snippet file="/_code-samples/checks/js/get-checks-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/get-checks-resp.txt' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-resp.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* - -```json -200 OK - -{% include '_code-samples/checks/json-rpc/account_objects-resp.json' %} -``` - - +{% /tabs %} ## 2. 送金元に基づくレスポンスの絞り込み @@ -80,5 +70,5 @@ for (i=0; i < account_objects_response.account_objects.length; i++) { ``` -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/send-a-check.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/send-a-check.md index 9a960baf92..c95a3042bb 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/send-a-check.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/send-a-check.md @@ -7,9 +7,9 @@ labels: --- # Checkの送信 -Checkの送信は、指定受取人にあなたからの支払いを引き出す許可を与えることに似ています。このプロセスの結果、受取人が後で現金化できる[レジャーのCheckオブジェクト](check.html)が作成されます。 +Checkの送信は、指定受取人にあなたからの支払いを引き出す許可を与えることに似ています。このプロセスの結果、受取人が後で現金化できる[レジャーのCheckオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/check.md)が作成されます。 -多くの場合、Checkではなく[Payment][]が送信されます。これは、Paymentでは1つのステップで受取人に直接送金できるためです。ただし、指定受取人が[DepositAuth](depositauth.html)を使用している場合はPaymentを直接送信できないため、代替手段としてCheckが適切です。 +多くの場合、Checkではなく[Payment][]が送信されます。これは、Paymentでは1つのステップで受取人に直接送金できるためです。ただし、指定受取人が[DepositAuth](../../../concepts/accounts/depositauth.md)を使用している場合はPaymentを直接送信できないため、代替手段としてCheckが適切です。 このチュートリアルでは、架空の会社BoxSend SG(XRP LedgerアドレスはrBXsgNkPcDN2runsvWmwxk3Lh97zdgo9za)が架空の暗号資産コンサルタント会社Grand Payments(XRP LedgerアドレスはrGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis)に、コンサルティング料を支払う例を取り上げます。Grand PaymentsはXRPでの支払いを望んでいますが、税務処理と規制対応を簡素化するため、明示的に承認した支払いのみを受け入れます。 @@ -22,36 +22,33 @@ XRP Ledgerの外部でGrand PaymentsはBoxSend SGに請求書(IDは`46060241FA このチュートリアルでCheckを送信するには、以下が必要です。 - Checkの送信元である資金供給のあるアカウントの**アドレス**と**シークレットキー**。 - - [XRP Ledger Test Net Faucet](xrp-test-net-faucet.html)を使用して、10,000 Test Net XRPを保有する資金供給のあるアドレスおよびシークレットを取得できます。 + - [XRP Ledger Test Net Faucet](/resources/dev-tools/xrp-faucets)を使用して、10,000 Test Net XRPを保有する資金供給のあるアドレスおよびシークレットを取得できます。 - Checkを受領する資金供給のあるアカウントの**アドレス**。 -- トランザクションに[安全に署名できる手段](secure-signing.html)。 -- [クライアントライブラリ](client-libraries.html)またはHTTPライブラリ、WebSocketライブラリなど。 +- トランザクションに[安全に署名できる手段](../../../concepts/transactions/secure-signing.md)。 +- [クライアントライブラリ](../../../references/client-libraries.md)またはHTTPライブラリ、WebSocketライブラリなど。 ## {{send_n.next()}}.CheckCreateトランザクションの準備 -Checkの額と、Checkを現金化できる当事者を決定します。[CheckCreateトランザクション][]のフィールドの値を決定します。以下のフィールドは必要最小限のフィールドです。その他のフィールドはオプションまたは署名時に[自動入力](transaction-common-fields.html#自動入力可能なフィールド)できるフィールドです。 +Checkの額と、Checkを現金化できる当事者を決定します。[CheckCreateトランザクション][]のフィールドの値を決定します。以下のフィールドは必要最小限のフィールドです。その他のフィールドはオプションまたは署名時に[自動入力](../../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド)できるフィールドです。 | フィールド | 値 | 説明 | |:------------------|:--------------------------|:-----------------------------| | `TransactionType` | 文字列 | このフィールドには文字列`CheckCreate`を使用します。 | | `Account` | 文字列(アドレス) | Checkを作成する送金元のアドレス。(あなたのアドレスです。) | | `Destination` | 文字列(アドレス) | Checkを換金できる指定受取人のアドレス。 | -| `SendMax` | 文字列またはオブジェクト(額) | Checkが現金化されるときに送金元から引き出される最大額。XRPの場合、XRPのdrop数を示す文字列を使用します。トークンの場合、`currency`、`issuer`、および`value` フィールドを含むオブジェクトを使用します。詳細は、[通貨額の指定][]を参照してください。受取人がXRP以外の通貨で正確な額のCheckを換金できるようにし、かつ[送金手数料](transfer-fees.html)を含めるには、送金手数料分の追加パーセンテージを必ず指定してください。(たとえば受取人が送金手数料2%でCheckをイシュアーからの100 CADに現金化できるようにするには、`SendMax`をイシュアーからの102 CADに設定する必要があります。) | +| `SendMax` | 文字列またはオブジェクト(額) | Checkが現金化されるときに送金元から引き出される最大額。XRPの場合、XRPのdrop数を示す文字列を使用します。トークンの場合、`currency`、`issuer`、および`value` フィールドを含むオブジェクトを使用します。詳細は、[通貨額の指定][]を参照してください。受取人がXRP以外の通貨で正確な額のCheckを換金できるようにし、かつ[送金手数料](../../../concepts/tokens/transfer-fees.md)を含めるには、送金手数料分の追加パーセンテージを必ず指定してください。(たとえば受取人が送金手数料2%でCheckをイシュアーからの100 CADに現金化できるようにするには、`SendMax`をイシュアーからの102 CADに設定する必要があります。) | ### CheckCreateトランザクションの準備の例 以下の例は、BoxSend SG(`rBXsgNkPcDN2runsvWmwxk3Lh97zdgo9za`)がGrand Payments(`rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`)宛てに作成した100 XRPのCheckです。追加(オプション)のメタデータとして、BoxSend SGはGrand Paymentsの請求書のIDを追加しています。これによりGrand PaymentsはこのCheckがどの請求書に対する支払いかを確認できます。 - +{% tabs %} -*ripple-lib 1.x* - -```js -{% include '_code-samples/checks/js/prepareCreate.js' %} -``` - -*JSON-RPC、WebSocket、またはコマンドライン* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCreate.js" language="js" /%} +{% /tab %} +{% tab label="JSON-RPC、WebSocket、またはコマンドライン" %} ```json { "TransactionType":"CheckCreate", @@ -61,177 +58,139 @@ Checkの額と、Checkを現金化できる当事者を決定します。[CheckC "InvoiceID":"46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291" } ``` +{% /tab %} - +{% /tabs %} ## {{send_n.next()}}.CheckCreateトランザクションへの署名 -{% include '_snippets/tutorial-sign-step.ja.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + ### リクエストの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/signCreate.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/signCreate.js' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/sign-create-req.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-create-req.sh" language="bash" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/sign-create-req.json' %} -``` - -*コマンドライン* - -```bash -{% include '_code-samples/checks/cli/sign-create-req.sh' %} -``` - - +{% /tabs %} #### レスポンスの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/sign-create-resp.txt" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/sign-create-resp.txt' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/sign-create-resp.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/sign-create-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/sign-create-resp.json' %} -``` - -*コマンドライン* - -```json -{% include '_code-samples/checks/cli/sign-create-resp.txt' %} -``` - - +{% /tabs %} ## {{send_n.next()}}.署名済みトランザクションの送信 {% set step_1_link = "#1checkcreateトランザクションの準備" %} -{% include '_snippets/tutorial-submit-step.md' %} - +{% partial file="/_snippets/tutorial-submit-step.md" /%} + ### リクエストの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submitCreate.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submitCreate.js' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/submit-create-req.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-create-req.sh" language="bash" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/submit-create-req.json' %} -``` - -*コマンドライン* - -```bash -{% include '_code-samples/checks/cli/submit-create-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submit-create-resp.txt" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submit-create-resp.txt' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/submit-create-resp.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/submit-create-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/submit-create-resp.json' %} -``` - -*コマンドライン* - -```json -{% include '_code-samples/checks/cli/submit-create-resp.txt' %} -``` - - +{% /tabs %} ## {{send_n.next()}}.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} - +{% partial file="/_snippets/wait-for-validation.md" /%} + ## {{send_n.next()}}.最終結果の確認 トランザクションのステータスを確認するには、CheckCreateトランザクションの識別用ハッシュを指定した[txメソッド][]を使用します。トランザクションメタデータで、トランザクションが成功したことを示す`"TransactionResult": "tesSUCCESS"`フィールドを探し、またこの結果が最終結果であることを示す`"validated": true`フィールドを結果で探します。 -トランザクションのメタデータで、`LedgerEntryType`が `"Check"`の`CreatedNode`オブジェクトを探します。これは、トランザクションにより[Checkレジャーオブジェクト](check.html)が作成されたことを示します。このオブジェクトの`LedgerIndex` がCheckのIDです。以下の例ではCheckのIDは`84C61BE9B39B2C4A2267F67504404F1EC76678806C1B901EA781D1E3B4CE0CD9`です。 +トランザクションのメタデータで、`LedgerEntryType`が `"Check"`の`CreatedNode`オブジェクトを探します。これは、トランザクションにより[Checkレジャーオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/check.md)が作成されたことを示します。このオブジェクトの`LedgerIndex` がCheckのIDです。以下の例ではCheckのIDは`84C61BE9B39B2C4A2267F67504404F1EC76678806C1B901EA781D1E3B4CE0CD9`です。 ### リクエストの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/getCreateTx.js" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/getCreateTx.js' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/tx-create-req.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-create-req.sh" language="bash" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/tx-create-req.json' %} -``` - -*コマンドライン* - -```bash -{% include '_code-samples/checks/cli/tx-create-req.sh' %} -``` - - +{% /tabs %} ### レスポンスの例 - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/get-create-tx-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/get-create-tx-resp.txt' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/tx-create-resp.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="コマンドライン" %} +{% code-snippet file="/_code-samples/checks/cli/tx-create-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/tx-create-resp.json' %} -``` +{% /tabs %} -*コマンドライン* - -```json -{% include '_code-samples/checks/cli/tx-create-resp.txt' %} -``` - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/use-checks.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/use-checks.md index 736b44e921..a92ae9e4ef 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/use-checks.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-checks/use-checks.md @@ -2,7 +2,8 @@ html: use-checks.html parent: use-specialized-payment-types.html blurb: XRP LedgerのCheckは、紙の小切手と同じように、別のアカウントに資金を振り込ませることができます。 -template: pagetype-category.html.jinja +metadata: + indexPage: true labels: - Checks --- @@ -10,7 +11,7 @@ labels: XRP LedgerのChecksでは、別のアカウントが後で支払いを請求することが認められていており、個人用の紙の小切手の仕組みと似ています。 - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} + + +{% child-pages /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md index b405960581..7f84066654 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md @@ -14,90 +14,78 @@ XRP LedgerのEscrowが有効期限切れとなるのは、その`CancelAfter`の リクエスト: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-request-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-request-expiration.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-response-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-response-expiration.json' %} -``` - - +{% /tabs %} [account_objectsメソッド][]を使用してEscrowを検索し、`CancelAfter`の時刻と比較できます。 リクエスト: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-request-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-request-expiration.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-response-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-response-expiration.json' %} -``` - - +{% /tabs %} ## 2.EscrowCancelトランザクションの送信 -XRP Ledgerでは、[EscrowCancelトランザクション][]に[署名して送信する](transactions.html#トランザクションへの署名とトランザクションの送信)ことで、***誰でも***有効期限切れのEscrowを取り消すことができます。トランザクションの`Owner`フィールドを、そのEscrowを作成した`EscrowCreate`トランザクションの`Account`に設定します。`OfferSequence`フィールドを、`EscrowCreate`トランザクションの`Sequence`に設定します。 +XRP Ledgerでは、[EscrowCancelトランザクション][]に[署名して送信する](../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)ことで、***誰でも***有効期限切れのEscrowを取り消すことができます。トランザクションの`Owner`フィールドを、そのEscrowを作成した`EscrowCreate`トランザクションの`Account`に設定します。`OfferSequence`フィールドを、`EscrowCreate`トランザクションの`Sequence`に設定します。 -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} リクエスト: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowcancel.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowcancel.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowcancel.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowcancel.json' %} -``` - - +{% /tabs %} トランザクションの識別用`hash`値をメモしておきます。これにより、検証済みレジャーバージョンに記録されるときにその最終ステータスを確認できます。 ## 3.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 4.最終結果の確認 @@ -105,34 +93,26 @@ EscrowCancelトランザクションの識別用ハッシュを指定した[tx リクエスト: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowcancel.json" language="json" /%} +{% /tab %} - -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowcancel.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowcancel.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowcancel.json' %} -``` - - +{% /tabs %} 上記の例では、`r3wN3v2vTUkr5qd6daqDc2xE4LSysdVjkT`がEscrowの送金元であり、`Balance`が99999**8**9990 dropから99999**9**9990 dropに増加していることから、エスクローに預託されていた10,000 XRP dropが返金されたことがわかります(drop = 0.01XRP) 。 **ヒント:** Escrowを実行する[EscrowFinishトランザクション][]で使用する`OfferSequence`が不明な場合は、Escrowの`PreviousTxnID`フィールドのトランザクションの識別用ハッシュを指定した[txメソッド][]を使用して、そのEscrowを作成したトランザクションを検索します。Escrowを終了するときには、そのトランザクションの`Sequence`の値を`OfferSequence`の値として使用します。 - -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md index f17c13fe62..48dc0f0a31 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md @@ -8,7 +8,7 @@ labels: --- # Escrowの検索 -保留中のEscrowはすべて[Escrowオブジェクト](escrow.html)としてレジャーに保管されます。 +保留中のEscrowはすべて[Escrowオブジェクト](../../../concepts/payment-types/escrow.md)としてレジャーに保管されます。 Escrowオブジェクトを検索するには、[account_objectsメソッド][]で[送金元のアドレス](#送金元のアドレスによるescrowの検索)または[送金先のアドレス](#送金先のアドレスによるescrowの検索)を使用して検索します。 @@ -20,15 +20,13 @@ Escrowオブジェクトを検索するには、[account_objectsメソッド][] リクエスト: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-request.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-request.json' %} -``` - - +{% /tabs %} レスポンスは以下の例のようになります。このレスポンスには、送金元アドレスまたは送金先アドレスが`rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`である保留中のEscrowオブジェクトがすべて含まれています。送金元アドレスは`Account`の値であり、送金先アドレスは`Destination`の値です。 @@ -37,15 +35,13 @@ _Websocket_ レスポンス: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-response.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-response.json' %} -``` - - +{% /tabs %} ## 送金先のアドレスによるEscrowの検索 @@ -57,15 +53,13 @@ _Websocket_ リクエスト: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-request.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-request.json' %} -``` - - +{% /tabs %} レスポンスは以下の例のようになります。レスポンスには送金先アドレスまたは送金元アドレスが`rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`である保留中のEscrowオブジェクトがすべて含まれています。送金先アドレスは`Destination`の値であり、送金元アドレスは`Account`の値です。 @@ -74,17 +68,12 @@ _Websocket_ レスポンス: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-response.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-response.json' %} -``` +{% /tabs %} - - - -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md index d4703bca97..8fefc487f5 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md @@ -44,20 +44,18 @@ console.log('Fulfillment:', fulfillment) `CancelAfter`の時刻を24時間先に設定する例: - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const rippleOffset = 946684800 const CancelAfter = Math.floor(Date.now() / 1000) + (24*60*60) - rippleOffset console.log(CancelAfter) // Example:556927412 ``` +{% /tab %} - - - +{% /tabs %} **警告:** XRP Ledgerでは、時刻を**Rippleエポック(2000-01-01T00:00:00Z)以降の経過秒数**として指定する必要があります。`CancelAfter`または`FinishAfter`フィールドで、UNIX時刻を同等のRipple時刻に変換せずに使用すると、ロック解除時刻が**30年**先に設定されることになります。 ## 3.EscrowCreateトランザクションの送信 -[EscrowCreateトランザクション][]に[署名して送信](transactions.html#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Condition`フィールドを、保留中の支払いがリリースされる時刻に設定します。`Destination`を受取人に設定します。受取人と送金元のアドレスは同じでもかまいません。前の手順で算出した`CancelAfter`または`FinishAfter`の時刻も指定します。`Amount`を、Escrowする[XRP、drop単位][]の合計額に設定します。 +[EscrowCreateトランザクション][]に[署名して送信](../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Condition`フィールドを、保留中の支払いがリリースされる時刻に設定します。`Destination`を受取人に設定します。受取人と送金元のアドレスは同じでもかまいません。前の手順で算出した`CancelAfter`または`FinishAfter`の時刻も指定します。`Amount`を、Escrowする[XRP、drop単位][]の合計額に設定します。 -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} リクエスト: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowcreate-condition.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowcreate-condition.json' %} -``` - - +{% /tabs %} ## 4.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 5.Escrowが作成されたことの確認 -トランザクションの識別用ハッシュを指定した[txメソッド][]を使用して、トランザクションの最終ステータスを確認します。特に、[Escrowレジャーオブジェクト](escrow.html)が作成されたことを示す`CreatedNode`をトランザクションメタデータで探します。 +トランザクションの識別用ハッシュを指定した[txメソッド][]を使用して、トランザクションの最終ステータスを確認します。特に、[Escrowレジャーオブジェクト](../../../concepts/payment-types/escrow.md)が作成されたことを示す`CreatedNode`をトランザクションメタデータで探します。 リクエスト: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowcreate-condition.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowcreate-condition.json' %} -``` - - +{% /tabs %} ## 6.EscrowFinishトランザクションの送信 -`FinishAfter`の時刻が経過した後で資金のリリースを実行する[EscrowFinishトランザクション][]に[署名して送信](transactions.html#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Owner`フィールドにEscrowCreateトランザクションの`Account`アドレスを設定し、`OfferSequence` にEscrowCreateトランザクションの`Sequence`番号を設定します。`Condition`フィールドと`Fulfillment`フィールドに、ステップ1で生成した条件値とフルフィルメント値をそれぞれ16進数で設定します。フルフィルメントのサイズ(バイト数)に基づいて`Fee`([トランザクションコスト](transaction-cost.html))の値を設定します。条件付きEscrowFinishでは、少なくとも330 drop(XRP)と、フルフィルメントのサイズで16バイトごとに10 dropが必要です。 +`FinishAfter`の時刻が経過した後で資金のリリースを実行する[EscrowFinishトランザクション][]に[署名して送信](../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Owner`フィールドにEscrowCreateトランザクションの`Account`アドレスを設定し、`OfferSequence` にEscrowCreateトランザクションの`Sequence`番号を設定します。`Condition`フィールドと`Fulfillment`フィールドに、ステップ1で生成した条件値とフルフィルメント値をそれぞれ16進数で設定します。フルフィルメントのサイズ(バイト数)に基づいて`Fee`([トランザクションコスト](../../../concepts/transactions/transaction-cost.md))の値を設定します。条件付きEscrowFinishでは、少なくとも330 drop(XRP)と、フルフィルメントのサイズで16バイトごとに10 dropが必要です。 -**注記:** EscrowCreateトランザクションに`FinishAfter`フィールドが含まれている場合、Escrowの条件として正しいフルフィルメントを指定しても、この時刻よりも前の時点ではこのトランザクションを実行できません。前に閉鎖されたレジャーの閉鎖時刻が`FinishAfter`の時刻よりも前である場合、EscrowFinishトランザクションは[結果コード](transaction-results.html)`tecNO_PERMISSION`で失敗します。 +**注記:** EscrowCreateトランザクションに`FinishAfter`フィールドが含まれている場合、Escrowの条件として正しいフルフィルメントを指定しても、この時刻よりも前の時点ではこのトランザクションを実行できません。前に閉鎖されたレジャーの閉鎖時刻が`FinishAfter`の時刻よりも前である場合、EscrowFinishトランザクションは[結果コード](../../../references/protocol/transactions/transaction-results/transaction-results.md)`tecNO_PERMISSION`で失敗します。 -Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired-escrow.html)だけが可能です。 +Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired-escrow.md)だけが可能です。 -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowfinish-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowfinish-condition.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowfinish-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowfinish-condition.json' %} -``` - - +{% /tabs %} トランザクションの識別用`hash`値をメモしておきます。これにより、検証済みレジャーバージョンに記録されるときにその最終ステータスを確認できます。 ## 7.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 8.最終結果の確認 @@ -178,18 +163,10 @@ EscrowFinishトランザクションの識別用ハッシュを指定した[tx リクエスト: -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowfinish-condition.json' %} -``` +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowfinish-condition.json" language="json" /%} レスポンス: -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowfinish-condition.json' %} -``` +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowfinish-condition.json" language="json" /%} - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md index 3e35937e73..6f5fcf152c 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md @@ -14,10 +14,9 @@ labels: 時刻を **[Rippleエポック以降の経過秒数][]** として指定する必要があります。Rippleエポックは、UNIXエポックの946684800秒後です。たとえば、2017年11月13日の午前0時(UTC)に資金をリリースする場合、以下のようになります。 - - -*JavaScript* +{% tabs %} +{% tab label="JavaScript" %} ```js // JavaScript Date() is natively expressed in milliseconds; convert to seconds const release_date_unix = Math.floor( new Date("2017-11-13T00:00:00Z") / 1000 ); @@ -25,10 +24,9 @@ const release_date_ripple = release_date_unix - 946684800; console.log(release_date_ripple); // 563846400 ``` +{% /tab %} - - - +{% /tabs %} **警告:** `FinishAfter`フィールドで、UNIX時刻を同等のRipple時刻に変換せずに使用すると、ロック解除時刻が30年先に設定されることになります。 ## 2.EscrowCreateトランザクションの送信 -[EscrowCreateトランザクション][]に[署名して送信](transactions.html#トランザクションへの署名とトランザクションの送信)します。トランザクションの`FinishAfter`フィールドを、保留中の支払いがリリースされる時刻に設定します。`Condition`フィールドを省略して、時刻を保留中の支払いをリリースする唯一の条件とします。`Destination`を受取人に設定します。受取人と送金元のアドレスは同じでもかまいません。`Amount`を、Escrowする[XRP、drop単位][]の合計額に設定します。 +[EscrowCreateトランザクション][]に[署名して送信](../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。トランザクションの`FinishAfter`フィールドを、保留中の支払いがリリースされる時刻に設定します。`Condition`フィールドを省略して、時刻を保留中の支払いをリリースする唯一の条件とします。`Destination`を受取人に設定します。受取人と送金元のアドレスは同じでもかまいません。`Amount`を、Escrowする[XRP、drop単位][]の合計額に設定します。 -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} リクエスト: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowcreate-time.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowcreate-time.json' %} -``` - - +{% /tabs %} トランザクションの識別用`hash`値をメモしておきます。これにより、検証済みレジャーバージョンに記録されるときにその最終ステータスを確認できます。 ## 3.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 4.Escrowが作成されたことの確認 -トランザクションの識別用ハッシュを指定した[txメソッド][]を使用して、トランザクションの最終ステータスを確認します。[Escrowレジャーオブジェクト](escrow.html)が作成されたことを示す`CreatedNode`をトランザクションメタデータで探します。 +トランザクションの識別用ハッシュを指定した[txメソッド][]を使用して、トランザクションの最終ステータスを確認します。[Escrowレジャーオブジェクト](../../../concepts/payment-types/escrow.md)が作成されたことを示す`CreatedNode`をトランザクションメタデータで探します。 リクエスト: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowcreate-time.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowcreate-time.json' %} -``` - - +{% /tabs %} ## 5.リリース時刻までの待機 -`FinishAfter`時刻が指定されている保留中の支払いは、Escrowノードの`FinishAfter`時刻よりも後の[`close_time`ヘッダーフィールド](ledger-header.html)の時刻でレジャーが閉鎖するまでは完了できません。 +`FinishAfter`時刻が指定されている保留中の支払いは、Escrowノードの`FinishAfter`時刻よりも後の[`close_time`ヘッダーフィールド](../../../references/protocol/ledger-data/ledger-header.md)の時刻でレジャーが閉鎖するまでは完了できません。 最新の検証済みレジャーの閉鎖時刻は、[ledgerメソッド][]を使用して検索できます。 リクエスト: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-request.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-request.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-response.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-response.json' %} -``` - - +{% /tabs %} ## 6.EscrowFinishトランザクションの送信 -`FinishAfter`の時刻が経過した後で資金のリリースを実行する[EscrowFinishトランザクション][]に[署名して送信](transactions.html#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Owner`フィールドにEscrowCreateトランザクションの`Account`アドレスを設定し、`OfferSequence` にEscrowCreateトランザクションの`Sequence`番号を設定します。時刻のみに基づいて保留されているEscrowの場合は、`Condition`フィールドと`Fulfillment`フィールドを省略します。 +`FinishAfter`の時刻が経過した後で資金のリリースを実行する[EscrowFinishトランザクション][]に[署名して送信](../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Owner`フィールドにEscrowCreateトランザクションの`Account`アドレスを設定し、`OfferSequence` にEscrowCreateトランザクションの`Sequence`番号を設定します。時刻のみに基づいて保留されているEscrowの場合は、`Condition`フィールドと`Fulfillment`フィールドを省略します。 **ヒント:** XRP Ledgerの状態はトランザクションでしか変更できないため、EscrowFinishトランザクションが必要です。このトランザクションの送信者は、Escrowの受取人、Escrowの元としての送金人、またはその他のXRP Ledgerアドレスのいずれかです。 -Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired-escrow.html)だけが可能です。 +Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired-escrow.md)だけが可能です。 -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} リクエスト: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowfinish-time.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowfinish-time.json' %} -``` - - +{% /tabs %} トランザクションの識別用`hash`値をメモしておきます。これにより、検証済みレジャーバージョンに記録されるときにその最終ステータスを確認できます。 ## 7.検証の待機 -{% include '_snippets/wait-for-validation.ja.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 8.最終結果の確認 @@ -185,31 +166,22 @@ EscrowFinishトランザクションの識別用ハッシュを指定した[tx リクエスト: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowfinish-time.json' %} -``` - - +{% /tabs %} レスポンス: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowfinish-time.json' %} -``` +{% /tabs %} - - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-payment-channels.md b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-payment-channels.md index c78966fb84..610b815e80 100644 --- a/content/@i18n/ja/tutorials/use-specialized-payment-types/use-payment-channels.md +++ b/content/@i18n/ja/tutorials/use-specialized-payment-types/use-payment-channels.md @@ -8,9 +8,9 @@ labels: --- # Payment Channelの使用 -Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的な[Payment Channel](payment-channels.html)の使用方法を、ローカル`rippled`サーバーの[JSON-RPC API](http-websocket-apis.html)を使用する例を使って説明します。 +Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的な[Payment Channel](../../concepts/payment-types/payment-channels.md)の使用方法を、ローカル`rippled`サーバーの[JSON-RPC API](../../references/http-websocket-apis/index.md)を使用する例を使って説明します。 -このチュートリアルを進めるにあたって[資金供給されているXRP Ledgerアカウント](accounts.html)を所有するユーザーが2名いれば理想的です。ただし、2つのXRP Ledgerアドレスを管理する1名のユーザーとしてこのチュートリアルを進めることもできます。 +このチュートリアルを進めるにあたって[資金供給されているXRP Ledgerアカウント](../../concepts/accounts/accounts.md)を所有するユーザーが2名いれば理想的です。ただし、2つのXRP Ledgerアドレスを管理する1名のユーザーとしてこのチュートリアルを進めることもできます。 ## サンプルの値 @@ -27,7 +27,7 @@ Payment Channelは、少額の単位に分割可能な「非同期」のXRPペ また、トランザクションの送信先`rippled`サーバーも必要です。このチュートリアルの例では、`rippled`サーバーがテストマシン(`localhost`)で稼働しており、このテストマシンはポート**5005**で非暗号化JSON-RPC APIエンドポイントに接続しています。 -実際のXRPを送金せずにテストを実施するには、Test Net XRPを保有する[XRP Ledger Testnet](xrp-testnet-faucet.html)のアドレスを使用できます。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日間は確保されます。 @@ -36,7 +36,7 @@ Payment Channelに使用できるXRPの額に制限はありません。この 次の図は、Payment Channelのライフサイクルの概要を示します。 -[![Payment Channelフローチャート](img/paychan-flow.ja.png)](img/paychan-flow.ja.png) +[![Payment Channelフローチャート](/img/paychan-flow.ja.png)](/img/paychan-flow.ja.png) この図のステップの番号は、このチュートリアルのステップの番号に対応しています。 @@ -57,113 +57,121 @@ Payment Channelに使用できるXRPの額に制限はありません。この **ヒント:** 「決済遅延」の設定だけが決済を遅延するわけでわありません。レジャーバージョンが閉鎖すると即時に決済が遅延されます(3~5秒)。「決済遅延」とは、Channel閉鎖の強制的な遅延です。これにより、受取人が決済を完了できるようになります。 -以下の例は、JSON-RPC APIを使用してローカル`rippled`サーバーへ[送信](submit.html#署名と送信モード)することで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つのオブジェクトとして支払人の[所有者準備金](reserves.html#所有者準備金)に反映されます。所有者は少なくとも、Payment Channelに割り当てられたXRPを差引き後に、準備金を維持するのに十分なXRPを保有している必要があります。 +**注記:** Payment Channelは1つのオブジェクトとして支払人の[所有者準備金](../../concepts/accounts/reserves.md#所有者準備金)に反映されます。所有者は少なくとも、Payment Channelに割り当てられたXRPを差引き後に、準備金を維持するのに十分なXRPを保有している必要があります。 リクエスト: - POST http://localhost:5005/ - Content-Type: application/json +``` +POST http://localhost:5005/ +Content-Type: application/json - { - "method": "submit", - "params": [{ - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "TransactionType": "PaymentChannelCreate", - "Amount": "100000000", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "SettleDelay": 86400, - "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "DestinationTag": 20170428 - }, - "fee_mult_max": 1000 - }] - } +{ + "method": "submit", + "params": [{ + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "TransactionType": "PaymentChannelCreate", + "Amount": "100000000", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "SettleDelay": 86400, + "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "DestinationTag": 20170428 + }, + "fee_mult_max": 1000 + }] +} +``` レスポンス: - 200 OK +``` +200 OK - { - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", +{ + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + ... + "tx_json": { ... - "tx_json": { - ... - "TransactionType": "PaymentChannelCreate", - "hash": "3F93C482C0BC2A1387D9E67DF60BECBB76CC2160AE98522C77AF0074D548F67D" - } + "TransactionType": "PaymentChannelCreate", + "hash": "3F93C482C0BC2A1387D9E67DF60BECBB76CC2160AE98522C77AF0074D548F67D" } } +} +``` `submit`リクエストに対する直接のレスポンスには、トランザクションを識別する`hash`値を含む _暫定的な_ 結果が含まれています。支払人は、検証済みレジャーでトランザクションの _最終_ 結果を確認し、メタデータからChannel IDを取得する必要があります。この処理は`tx`コマンドを使用して実行できます。 リクエスト: - POST http://localhost:5005/ - Content-Type: application/json +``` +POST http://localhost:5005/ +Content-Type: application/json - { - "method": "tx", - "params": [{ - "transaction": "3F93C482C0BC2A1387D9E67DF60BECBB76CC2160AE98522C77AF0074D548F67D" - }] - } +{ + "method": "tx", + "params": [{ + "transaction": "3F93C482C0BC2A1387D9E67DF60BECBB76CC2160AE98522C77AF0074D548F67D" + }] +} +``` レスポンス: - 200 OK +``` +200 OK - { - "result": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Amount": "100000000", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - ... - "TransactionType": "PaymentChannelCreate", - ... - "hash": "3F93C482C0BC2A1387D9E67DF60BECBB76CC2160AE98522C77AF0074D548F67D", - "inLedger": 29380080, - "ledger_index": 29380080, - "meta": { - "AffectedNodes": [ - ... - { - "CreatedNode": { - "LedgerEntryType": "PayChannel", - "LedgerIndex": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "NewFields": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Amount": "100000000", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DestinationTag": 20170428, - "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "SettleDelay": 86400 - } +{ + "result": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Amount": "100000000", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + ... + "TransactionType": "PaymentChannelCreate", + ... + "hash": "3F93C482C0BC2A1387D9E67DF60BECBB76CC2160AE98522C77AF0074D548F67D", + "inLedger": 29380080, + "ledger_index": 29380080, + "meta": { + "AffectedNodes": [ + ... + { + "CreatedNode": { + "LedgerEntryType": "PayChannel", + "LedgerIndex": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "NewFields": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Amount": "100000000", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DestinationTag": 20170428, + "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "SettleDelay": 86400 } - }, - ... - ], - "TransactionIndex": 16, - "TransactionResult": "tesSUCCESS" - }, - "status": "success", - "validated": true - } + } + }, + ... + ], + "TransactionIndex": 16, + "TransactionResult": "tesSUCCESS" + }, + "status": "success", + "validated": true } +} +``` 支払人はJSON-RPCからのレスポンスで以下を確認する必要があります。 - トランザクションの`meta`フィールドで、`TransactionResult`が`tesSUCCESS`であることを確認します。 -- データが検証済みレジャーのデータであることを示す`"validated":true`がレスポンスに含まれていることを確認します。(結果`tesSUCCESS`は、検証済みレジャーバージョンに記録されている場合にのみ[最終的な](finality-of-results.html)結果です。) +- データが検証済みレジャーのデータであることを示す`"validated":true`がレスポンスに含まれていることを確認します。(結果`tesSUCCESS`は、検証済みレジャーバージョンに記録されている場合にのみ[最終的な](../../concepts/transactions/finality-of-results/index.md)結果です。) - トランザクションの`meta`フィールドの`AffectedNodes`配列で、`LedgerEntryType`が`PayChannel`である`CreatedNode`オブジェクトを検索します。`CreatedNode`オブジェクトの`LedgerIndex`フィールドはChannel IDを示します。(上記の例では、これは「5DB0...」で始まる16進文字列です。)Channel IDは、後でクレームに署名する際に必要です。 - PayChannelレジャーオブジェクトタイプの詳細については、[PayChannelレジャーオブジェクト](paychannel.html)を参照してください。 + PayChannelレジャーオブジェクトタイプの詳細については、[PayChannelレジャーオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/paychannel.md)を参照してください。 ## 2. 受取人がPayment Channelの特性を確認します。 @@ -172,39 +180,43 @@ Payment Channelを見つけるには、以下の例(JSON-RPC APIを使用) リクエスト: - POST http://localhost:5005/ - Content-Type: application/json +``` +POST http://localhost:5005/ +Content-Type: application/json - { - "method": "account_channels", - "params": [{ - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" - }] - } +{ + "method": "account_channels", + "params": [{ + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" + }] +} +``` レスポンス: - 200 OK +``` +200 OK - { - "result": { +{ + "result": { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "channels": [{ "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "channels": [{ - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "amount": "100000000", - "balance": "0", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_tag": 20170428, - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "settle_delay": 86400 - }], - "status": "success" - } + "amount": "100000000", + "balance": "0", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_tag": 20170428, + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "settle_delay": 86400 + }], + "status": "success" } +} +``` 受取人は、以下のすべての点を含め、Payment Channelのパラメーターが特定のユースケースに適していることを確認します。 @@ -227,26 +239,30 @@ Payment Channelを見つけるには、以下の例(JSON-RPC APIを使用) リクエスト: - POST http://localhost:5005/ - Content-Type: application/json +``` +POST http://localhost:5005/ +Content-Type: application/json - { - "method": "channel_authorize", - "params": [{ - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "secret": "s████████████████████████████", - "amount": "1000000" - }] - } +{ + "method": "channel_authorize", + "params": [{ + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "secret": "s████████████████████████████", + "amount": "1000000" + }] +} +``` レスポンス: - { - "result": { - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "status": "success" - } +``` +{ + "result": { + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "status": "success" } +} +``` ## 4. 支払人が、商品またはサービスに対する支払いとしてクレームを受取人に送信します。 @@ -271,67 +287,75 @@ JSON-RPC APIで`channel_verify`を使用する例: リクエスト: - POST http://localhost:5005/ - Content-Type: application/json +``` +POST http://localhost:5005/ +Content-Type: application/json - { - "method": "channel_verify", - "params": [{ - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "amount": "1000000" - }] - } +{ + "method": "channel_verify", + "params": [{ + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "amount": "1000000" + }] +} +``` レスポンス: - 200 OK +``` +200 OK - { - "result": { - "signature_verified":true, - "status":"success" - } +{ + "result": { + "signature_verified":true, + "status":"success" } +} +``` レスポンスに`"signature_verified": true`が含まれている場合、クレームの署名は真正です。受取人は、クレームを換金できる十分なXRPがChannelにあること**も**確認する必要があります。このためには、受取人は[account_channelsメソッド][]を使用して、Payment Channelの最新の検証済み状態を確認します。 リクエスト: - POST http://localhost:5005/ - Content-Type: application/json +``` +POST http://localhost:5005/ +Content-Type: application/json - { - "method": "account_channels", - "params": [{ - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" - }] - } +{ + "method": "account_channels", + "params": [{ + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" + }] +} +``` レスポンス: - 200 OK +``` +200 OK - { - "result": { +{ + "result": { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "channels": [{ "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "channels": [{ - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "amount": "100000000", - "balance": "0", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_tag": 20170428, - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "settle_delay": 86400 - }], - "status": "success" - } + "amount": "100000000", + "balance": "0", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_tag": 20170428, + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "settle_delay": 86400 + }], + "status": "success" } +} +``` 受取人は以下の点を確認する必要があります: @@ -377,56 +401,60 @@ ChannelからXRPを清算する例: リクエスト: - POST http://localhost:5005/ - Content-Type: application/json +``` +POST http://localhost:5005/ +Content-Type: application/json - { - "method": "submit", - "params": [{ - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelClaim", - "Amount": "1000000", - "Balance": "1000000", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "Signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064" - }, - "fee_mult_max": 1000 - }] - } - -レスポンス: - - 200 OK - - { - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", - "status": "success", - "tx_blob": "12000F2280000000240000017450165DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB36140000000000F42406240000000000F424068400000000000000A7121023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210096B933BC24DA77D8C4057B4780B282BA66C668DFE1ACF4EEC063AD6661725797022037C8823669CE91AACA8CC754C9F041359F85B0B32384AEA141EBC3603798A24C7646304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF5029006481144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", +{ + "method": "submit", + "params": [{ + "secret": "s████████████████████████████", "tx_json": { "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelClaim", "Amount": "1000000", "Balance": "1000000", "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Fee": "10", - "Flags": 2147483648, "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "Sequence": 372, - "Signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "PaymentChannelClaim", - "TxnSignature": "304502210096B933BC24DA77D8C4057B4780B282BA66C668DFE1ACF4EEC063AD6661725797022037C8823669CE91AACA8CC754C9F041359F85B0B32384AEA141EBC3603798A24C", - "hash": "C9FE08FC88CF76C3B06622ADAA47AE99CABB3380E4D195E7751274CFD87910EB" - } + "Signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064" + }, + "fee_mult_max": 1000 + }] +} +``` + +レスポンス: + +``` +200 OK + +{ + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "status": "success", + "tx_blob": "12000F2280000000240000017450165DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB36140000000000F42406240000000000F424068400000000000000A7121023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210096B933BC24DA77D8C4057B4780B282BA66C668DFE1ACF4EEC063AD6661725797022037C8823669CE91AACA8CC754C9F041359F85B0B32384AEA141EBC3603798A24C7646304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF5029006481144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "1000000", + "Balance": "1000000", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Fee": "10", + "Flags": 2147483648, + "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "Sequence": 372, + "Signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "PaymentChannelClaim", + "TxnSignature": "304502210096B933BC24DA77D8C4057B4780B282BA66C668DFE1ACF4EEC063AD6661725797022037C8823669CE91AACA8CC754C9F041359F85B0B32384AEA141EBC3603798A24C", + "hash": "C9FE08FC88CF76C3B06622ADAA47AE99CABB3380E4D195E7751274CFD87910EB" } } +} +``` -受取人は検証済みレジャーでこのトランザクションが正常に処理されたことを確認します。詳細は、[確実なトランザクションの送信](reliable-transaction-submission.html)を参照してください。 +受取人は検証済みレジャーでこのトランザクションが正常に処理されたことを確認します。詳細は、[確実なトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md)を参照してください。 ## 9. 支払人と受取人の取引完了後、支払人はChannelの閉鎖を要求します。 @@ -438,46 +466,50 @@ ChannelにXRPが _残っている_ 場合は、このChannelの閉鎖要求は また、受取人はクレームの処理完了直後にPayment Channelを閉鎖できます _([フローチャート][]の9b)_。 -Channelの閉鎖を要求する[トランザクションを送信する](submit.html#署名と送信モード)例: +Channelの閉鎖を要求する[トランザクションを送信する](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#署名と送信モード)例: - { - "method": "submit", - "params": [{ - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "TransactionType": "PaymentChannelClaim", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Flags": 2147614720 - }, - "fee_mult_max": 1000 - }] - } +``` +{ + "method": "submit", + "params": [{ + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "TransactionType": "PaymentChannelClaim", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Flags": 2147614720 + }, + "fee_mult_max": 1000 + }] +} +``` トランザクションが検証済みレジャーに記録されたら、いずれの当事者も[account_channelsメソッド][]を使用して現在スケジュールされているChannelの有効期限を確認できます。最新の検証済みレジャーバージョンからデータを取得するには、`"ledger_index": "validated"`を必ず指定してください。 `account_channels`レスポンスの例: - { - "result": { - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "channels": [ - { - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "amount": "100000000", - "balance": "1000000", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_tag": 20170428, - "expiration": 547073182, - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "settle_delay": 86400 - } - ], - "status": "success" - } +``` +{ + "result": { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "channels": [ + { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "amount": "100000000", + "balance": "1000000", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_tag": 20170428, + "expiration": 547073182, + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "settle_delay": 86400 + } + ], + "status": "success" } +} +``` この例に示されている`expiration`の値547073182([Rippleエポック以降の経過秒数][]) は2017-05-02T20:46:22Zに対応しています。このため、この時刻までに決済されなかったクレームはすべて無効になります。 @@ -485,115 +517,119 @@ Channelの閉鎖を要求する[トランザクションを送信する](submit. 決済遅延が経過するか、またはChannelが予定されている有効期限に達したら、Channelは有効期限切れになります。それ以降に行われるこのChannelに影響するトランザクションはすべて、Channelを閉鎖するだけであり、未請求のXRPは支払人に返金されます。 -Channelは期限切れ状態で永久にレジャーに残ることがあります。これは、レジャーはトランザクションの結果によってのみ変わるので、_誰かが_ 有効期限切れのChannelを閉鎖するトランザクションを送信する必要があるためです。Channelがレジャーに残っている限り、そのChannelは[所有者準備金](reserves.html#所有者準備金)の点から支払人が所有するオブジェクトと見なされます。 +Channelは期限切れ状態で永久にレジャーに残ることがあります。これは、レジャーはトランザクションの結果によってのみ変わるので、_誰かが_ 有効期限切れのChannelを閉鎖するトランザクションを送信する必要があるためです。Channelがレジャーに残っている限り、そのChannelは[所有者準備金](../../concepts/accounts/reserves.md#所有者準備金)の点から支払人が所有するオブジェクトと見なされます。 このため、支払人には`tfClose`フラグを指定した2番目の[PaymentChannelClaimトランザクション][]を送信することが推奨されます。ただしその他のアカウント(Payment Channelに関与するアカウントを含む)は有効期限切れのChannelを閉鎖できません。 -このトランザクションを送信するコマンドは、Channelの有効期限切れをリクエストする前述の例と同じです。(ただしコマンドの実行結果である[自動入力](transaction-common-fields.html#自動入力可能なフィールド) `Sequence`番号、署名、識別用ハッシュは一意です。) +このトランザクションを送信するコマンドは、Channelの有効期限切れをリクエストする前述の例と同じです。(ただしコマンドの実行結果である[自動入力](../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド) `Sequence`番号、署名、識別用ハッシュは一意です。) -有効期限切れのChannelを閉鎖するトランザクションを[送信する](submit.html#署名と送信モード)例: +有効期限切れのChannelを閉鎖するトランザクションを[送信する](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#署名と送信モード)例: - { - "method": "submit", - "params": [{ - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "TransactionType": "PaymentChannelClaim", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Flags": 2147614720 - }, - "fee_mult_max": 1000 - }] - } +``` +{ + "method": "submit", + "params": [{ + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "TransactionType": "PaymentChannelClaim", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Flags": 2147614720 + }, + "fee_mult_max": 1000 + }] +} +``` トランザクションが検証済みレジャーに記録されたら、そのトランザクションのメタデータを調べて、Channelが削除され、XRPが送金元に返金されたことを確認できます。 このステップのトランザクションを検索する[txメソッド][]を使用した場合のレスポンスの例: - { - "result": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Fee": "5606", - "Flags": 2147614720, - "Sequence": 41, - "SigningPubKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "TransactionType": "PaymentChannelClaim", - "TxnSignature": "3044022008922FEB6F7D35D42006685BCBB007103D2A40AFAA69A7CFC10DF529F94BB6A402205D67816F50BBAEE0A2709AA3A93707304EC21133550FD2FF7436AD0C3CA6CE27", - "date": 547091262, - "hash": "9C0CAAC3DD1A74461132DA4451F9E53BDF4C93DFDBEFCE1B10021EC569013B33", - "inLedger": 29480670, - "ledger_index": 29480670, - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", - "PreviousTxnID": "C9FE08FC88CF76C3B06622ADAA47AE99CABB3380E4D195E7751274CFD87910EB", - "PreviousTxnLgrSeq": 29385089 - } - }, - { - "DeletedNode": { - "FinalFields": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Amount": "100000000", - "Balance": "1000000", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DestinationTag": 20170428, - "Expiration": 547073182, - "Flags": 0, - "OwnerNode": "0000000000000000", - "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", - "PreviousTxnLgrSeq": 29451256, - "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "SettleDelay": 86400 - }, - "LedgerEntryType": "PayChannel", - "LedgerIndex": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3" - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Balance": "1041862844", - "Flags": 0, - "OwnerCount": 2, - "Sequence": 42 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "B1CB040A17F9469BC00376EC8719535655824AD16CB5F539DD5765FEA88FDBE3", - "PreviousFields": { - "Balance": "942868450", - "OwnerCount": 3, - "Sequence": 41 - }, - "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", - "PreviousTxnLgrSeq": 29451256 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "Owner": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "RootIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" - } +``` +{ + "result": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Fee": "5606", + "Flags": 2147614720, + "Sequence": 41, + "SigningPubKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "TransactionType": "PaymentChannelClaim", + "TxnSignature": "3044022008922FEB6F7D35D42006685BCBB007103D2A40AFAA69A7CFC10DF529F94BB6A402205D67816F50BBAEE0A2709AA3A93707304EC21133550FD2FF7436AD0C3CA6CE27", + "date": 547091262, + "hash": "9C0CAAC3DD1A74461132DA4451F9E53BDF4C93DFDBEFCE1B10021EC569013B33", + "inLedger": 29480670, + "ledger_index": 29480670, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", + "PreviousTxnID": "C9FE08FC88CF76C3B06622ADAA47AE99CABB3380E4D195E7751274CFD87910EB", + "PreviousTxnLgrSeq": 29385089 } - ], - "TransactionIndex": 7, - "TransactionResult": "tesSUCCESS" - }, - "status": "success", - "validated": true - } + }, + { + "DeletedNode": { + "FinalFields": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Amount": "100000000", + "Balance": "1000000", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DestinationTag": 20170428, + "Expiration": 547073182, + "Flags": 0, + "OwnerNode": "0000000000000000", + "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", + "PreviousTxnLgrSeq": 29451256, + "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "SettleDelay": 86400 + }, + "LedgerEntryType": "PayChannel", + "LedgerIndex": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Balance": "1041862844", + "Flags": 0, + "OwnerCount": 2, + "Sequence": 42 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "B1CB040A17F9469BC00376EC8719535655824AD16CB5F539DD5765FEA88FDBE3", + "PreviousFields": { + "Balance": "942868450", + "OwnerCount": 3, + "Sequence": 41 + }, + "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", + "PreviousTxnLgrSeq": 29451256 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "RootIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" + } + } + ], + "TransactionIndex": 7, + "TransactionResult": "tesSUCCESS" + }, + "status": "success", + "validated": true } +} +``` トランザクションメタデータで以下のエントリを検索します。 @@ -607,9 +643,4 @@ Channelは期限切れ状態で永久にレジャーに残ることがありま これでPayment Channelの使用法のチュートリアルを終了します。ユーザーが、Payment Channelのスピードと利便性を最大限に活用できる独特で興味深い用途を考えることが推奨されます。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/use-cases/defi/algorithmic-trading.md b/content/@i18n/ja/use-cases/defi/algorithmic-trading.md index c3f309dbd6..8f5e4623fb 100644 --- a/content/@i18n/ja/use-cases/defi/algorithmic-trading.md +++ b/content/@i18n/ja/use-cases/defi/algorithmic-trading.md @@ -25,7 +25,7 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード 裁定取引を行うには、XRP Ledgerの内部と関連する部分の両方で、多くの方法があります。以下の例は潜在的な戦略を説明するためのものですが、他の方法も可能です。 -**循環支払い**を利用して、マルチアセットトレードを完了し利益を得ることができます。XRP Ledgerは、XRPが真ん中のアセットである3つのアセットセットセットと同様に、アセットペア間の重複した取引を自動的に接続します。しかし、XRP Ledgerのプロトコルは、他のより長い、あるいはより複雑な経路のトレードを自動的に見つけて競うことはしません。(可能な限り最善の経路を見つけることは、計算集約型な問題のカテゴリとして知られています。)したがって、XRP Ledgerが独自の経路を見つける場合、XRP Ledgerのプロトコルは自動的に他の、より長い、あるいはより複雑な経路の取引を見つけ、競争させることはありません。したがって、自分で経路探索(PathFinding)を行えば、このような有益な裁定取引の機会を見つけることが可能です。その場合は、[Paymentトランザクション](payment.html)でそれらの[経路(Paths)](paths.html)を明示的に指定できます。1つのFOOを使って2つのBARを買い、その2つのBARを使って3つのTSTを買い、最後に3つのTSTを使って1.1 FOOを買えば、0.1 FOOから取引に関わるトークンの[送金手数料](transfer-fees.html)などのコストを差し引いた利益を得ることができます。 +**循環支払い**を利用して、マルチアセットトレードを完了し利益を得ることができます。XRP Ledgerは、XRPが真ん中のアセットである3つのアセットセットセットと同様に、アセットペア間の重複した取引を自動的に接続します。しかし、XRP Ledgerのプロトコルは、他のより長い、あるいはより複雑な経路のトレードを自動的に見つけて競うことはしません。(可能な限り最善の経路を見つけることは、計算集約型な問題のカテゴリとして知られています。)したがって、XRP Ledgerが独自の経路を見つける場合、XRP Ledgerのプロトコルは自動的に他の、より長い、あるいはより複雑な経路の取引を見つけ、競争させることはありません。したがって、自分で経路探索(PathFinding)を行えば、このような有益な裁定取引の機会を見つけることが可能です。その場合は、[Paymentトランザクション](../../references/protocol/transactions/types/payment.md)でそれらの[経路(Paths)](../../concepts/tokens/fungible-tokens/paths.md)を明示的に指定できます。1つのFOOを使って2つのBARを買い、その2つのBARを使って3つのTSTを買い、最後に3つのTSTを使って1.1 FOOを買えば、0.1 FOOから取引に関わるトークンの[送金手数料](../../concepts/tokens/transfer-fees.md)などのコストを差し引いた利益を得ることができます。 資産の価格が異なる複数の取引所(CEX)に口座を持っている場合、**取引所間の裁定取引**を行うことができます。例えば、ACME取引所でXRPを1XRPあたり0.45ドルで購入し、そのXRPをWayGate取引所に移動して1XRPあたり0.50ドルで売却した場合、XRPあたり0.05ドルの利益を得ることができます。より複雑な例として、ACME取引所でBTC:ETHの価格が変動し、BTCに対してETHが安くなった場合、ある取引所でETH→XRPを売却し、そのXRPをACME取引所に移動し、XRP→BTC→ETHを取引して利益を得ることで、この価格変動を利用できる可能性があります。XRP Ledgerの取引は数秒で決済されますが、イーサリアムの取引は数分、ビットコインの取引は数時間かかることがあるため、XRPをブリッジ通貨として使用することで、ACME取引所でETH→BTC→BTC→ETHと取引するよりも早くこの機会を利用できる可能性があります。(これはもちろん、XRPへの交換が利益以上のコストにならないだけの十分な流動性と狭いスプレッドがある場合にのみ機能します) @@ -40,9 +40,9 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード 以下のページでは、XRP Ledgerの分散型取引所の仕組みについて説明しています。 -- [トークン](tokens.html) -- [分散型取引所](decentralized-exchange.html) -- [オファー](offers.html) +- [トークン](../../concepts/tokens/index.md) +- [分散型取引所](../../concepts/tokens/decentralized-exchange/index.md) +- [オファー](../../concepts/tokens/decentralized-exchange/offers.md) ## テストとよくある間違い @@ -55,12 +55,12 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード このような計算やボットの作成においては、よく次のような間違いが存在します。 -- **丸め誤差**: 計算が適切でなかったり、ブロックチェーンが使用する精度と一致しなかったりすると、トレード結果を不正確に予測して損失を出したり、トレードが全く実行されなかったりする可能性があります。XRP Ledgerは、トークンとXRPの量に異なる精度を使用しているため、一方を他方に交換する際、予期せぬ場所で四捨五入される可能性があります。プロトコルで使用される精度の詳細については、[通貨フォーマット](currency-formats.html)をご覧ください。 - - トークンの発行者は、トークンに関わる取引レートの精度をより詳細に制限できることに注意してください。詳しくは[Tick Size](ticksize.html)をご覧ください。 +- **丸め誤差**: 計算が適切でなかったり、ブロックチェーンが使用する精度と一致しなかったりすると、トレード結果を不正確に予測して損失を出したり、トレードが全く実行されなかったりする可能性があります。XRP Ledgerは、トークンとXRPの量に異なる精度を使用しているため、一方を他方に交換する際、予期せぬ場所で四捨五入される可能性があります。プロトコルで使用される精度の詳細については、[通貨フォーマット](../../references/protocol/data-types/currency-formats.md)をご覧ください。 + - トークンの発行者は、トークンに関わる取引レートの精度をより詳細に制限できることに注意してください。詳しくは[Tick Size](../../concepts/tokens/decentralized-exchange/ticksize.md)をご覧ください。 - 通常、四捨五入の違いや、計算時と約定時の値動きの違いを考慮し、金額を調整する必要があります。この金額は「スリッページ」と呼ばれ、適切な金額を設定することが重要です。スリッページが低すぎると、トレードがまったく約定しない可能性があります。一方、スリッページが高すぎると、フロントランニングの影響を受けやすくなり、スリッページが高ければ高いほど、値動きによって利益が削られる可能性が高くなります。 -- **余分なコストと遅延を考慮しないこと**: 例えば、2つのステーブルコインの裏付けが米ドルであるにもかかわらず、ある発行者が0.5%の送金手数料を請求し、別の発行者が0.25%の[送金手数料](transfer-fees.html)を請求した場合、そのステーブルコインの取引価格には約0.25%の差が生じます。トランザクションを送信するためのコストは、通常は少額ですが、その他の潜在的な遅延の影響も忘れないでください。例えば、オフレジャーの取引所が現時点で有利な価格を示していたとしても、その取引所の入金処理に数時間から数日かかる場合、その取引所で事前に流動性を持っていない限り、その価格を利用することはできません。 +- **余分なコストと遅延を考慮しないこと**: 例えば、2つのステーブルコインの裏付けが米ドルであるにもかかわらず、ある発行者が0.5%の送金手数料を請求し、別の発行者が0.25%の[送金手数料](../../concepts/tokens/transfer-fees.md)を請求した場合、そのステーブルコインの取引価格には約0.25%の差が生じます。トランザクションを送信するためのコストは、通常は少額ですが、その他の潜在的な遅延の影響も忘れないでください。例えば、オフレジャーの取引所が現時点で有利な価格を示していたとしても、その取引所の入金処理に数時間から数日かかる場合、その取引所で事前に流動性を持っていない限り、その価格を利用することはできません。 - **稀な事象を考慮していないこと**: 前例のない出来事(「ブラック・スワン」)はさておき、個々の異常値によって計算結果がゆがむことがあります。一例として(これは実話ですが)、あるトレーダーが、ある戦略の潜在的な利益を特定の時間帯で計算したところ、利益の80%以上が、他のユーザが誤って価格にゼロを追加してしまった1つの「入力ミス」の取引によるものであったと報じました。同じ戦略を、これらの異常値の取引を含まない時間範囲に対して計算すると、利益ははるかに少なくなりました。 -- **トランザクションのフラグを確認しないこ**と: XRP Ledgerのトランザクションのフラグは、そのトランザクションの処理方法や、プロトコルがそれを「成功」とマークするタイミングに大きな影響を与える可能性があります。例えば、"Offer"トランザクションのフラグは、全額がすぐに得られる場合にのみトレードされる"Fill or Kill"注文にすることができます。"Payment"トランザクションのフラグは、意図した宛先に全額を届けることができなくても成功する[partial payments](partial-payments.html)にすることができます。トランザクションの`Flags`フィールドを解析するためにビット演算をする必要がありますが、それをスキップしてしまうと、予想と結果が全く異なったものとなってしまう可能性があります。 +- **トランザクションのフラグを確認しないこ**と: XRP Ledgerのトランザクションのフラグは、そのトランザクションの処理方法や、プロトコルがそれを「成功」とマークするタイミングに大きな影響を与える可能性があります。例えば、"Offer"トランザクションのフラグは、全額がすぐに得られる場合にのみトレードされる"Fill or Kill"注文にすることができます。"Payment"トランザクションのフラグは、意図した宛先に全額を届けることができなくても成功する[partial payments](../../concepts/payment-types/partial-payments.md)にすることができます。トランザクションの`Flags`フィールドを解析するためにビット演算をする必要がありますが、それをスキップしてしまうと、予想と結果が全く異なったものとなってしまう可能性があります。 ## 税金とライセンス @@ -71,21 +71,21 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード ### トレードの発注 -XRP Ledgerの分散型取引所で_代替可能_トークンとXRPを売買するには、通常[OfferCreateトランザクション](offercreate.html)を送信します。この方法でトレードを行うためのコードと技術的ステップの詳細なウォークスルーについては、[分散型取引所でのトレード](trade-in-the-decentralized-exchange.html)をご覧ください。[Paymentトランザクション](payment.html)を使用して通貨を両替することも可能です。[クロスカレンしー支払い](cross-currency-payments.html)を他のユーザに送ったり、長い[パス](paths.html)を使って裁定取引の機会を1つの操作にまとめることで、自分自身に送り返すこともできます。 +XRP Ledgerの分散型取引所で_代替可能_トークンとXRPを売買するには、通常[OfferCreateトランザクション](../../references/protocol/transactions/types/offercreate.md)を送信します。この方法でトレードを行うためのコードと技術的ステップの詳細なウォークスルーについては、[分散型取引所でのトレード](../../tutorials/use-tokens/trade-in-the-decentralized-exchange.md)をご覧ください。[Paymentトランザクション](../../references/protocol/transactions/types/payment.md)を使用して通貨を両替することも可能です。[クロスカレンしー支払い](../../concepts/payment-types/cross-currency-payments.md)を他のユーザに送ったり、長い[パス](../../concepts/tokens/fungible-tokens/paths.md)を使って裁定取引の機会を1つの操作にまとめることで、自分自身に送り返すこともできます。 -NFTをトレードするためのコードと技術的な手順については、[JavaScriptを使用したNFTokenの送信](transfer-nfts-using-javascript.html)を参照してください。 +NFTをトレードするためのコードと技術的な手順については、[JavaScriptを使用したNFTokenの送信](../../tutorials/quickstart/transfer-nfts-using-javascript.md)を参照してください。 ### トレードデータの確認 -XRP Ledgerのトレード活動に関する情報源は数多くあります。トレード戦略やユースケースによっては、[公開サーバ](public-servers.html)を通してXRP Ledgerに接続することができるかもしれませんが、多くの場合、自分自身のサーバを稼働させることで利益を得ることができます。P2Pモードでコアサーバをセットアップする方法については、[`rippled`のインストール](install-rippled.html)をご覧ください。 +XRP Ledgerのトレード活動に関する情報源は数多くあります。トレード戦略やユースケースによっては、[公開サーバ](../../tutorials/get-started/public-servers.md)を通してXRP Ledgerに接続することができるかもしれませんが、多くの場合、自分自身のサーバを稼働させることで利益を得ることができます。P2Pモードでコアサーバをセットアップする方法については、[`rippled`のインストール](../../infrastructure/installation/index.md)をご覧ください。 -他のトレード活動を追跡するアプローチの場合、トレード額を正確に知るためにトランザクションの詳細なメタデータを確認する必要があるかもしれません。オファーは部分的に約定することがあり、複数の一致するオファーを約定することがあります。トランザクションメタデータの解釈方法の詳細については、[トランザクションの結果の確認](look-up-transaction-results.html)をご覧ください。 +他のトレード活動を追跡するアプローチの場合、トレード額を正確に知るためにトランザクションの詳細なメタデータを確認する必要があるかもしれません。オファーは部分的に約定することがあり、複数の一致するオファーを約定することがあります。トランザクションメタデータの解釈方法の詳細については、[トランザクションの結果の確認](../../concepts/transactions/finality-of-results/look-up-transaction-results.md)をご覧ください。 -利益確定のチャンスに反応する時間をできるだけ多く確保するために、[オープンレジャー](open-closed-validated-ledgers.html)から保留中のデータを見たり、提案されているトランザクションをモニタリングしたりすることもできます。WebSocketに接続している場合、`transactions_proposed`ストリームで[subscribeメソッド](subscribe.html)を使用すると、コンセンサスによって検証される前のトランザクションを見ることができます。また、`accounts_proposed`パラメータを使用してsubscribeすることで、特定のアカウント(例えば、トレードに興味のあるトークンの発行者)に影響するトランザクションのサブセットに限定することもできます。 +利益確定のチャンスに反応する時間をできるだけ多く確保するために、[オープンレジャー](../../concepts/ledgers/open-closed-validated-ledgers.md)から保留中のデータを見たり、提案されているトランザクションをモニタリングしたりすることもできます。WebSocketに接続している場合、`transactions_proposed`ストリームで[subscribeメソッド](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md)を使用すると、コンセンサスによって検証される前のトランザクションを見ることができます。また、`accounts_proposed`パラメータを使用してsubscribeすることで、特定のアカウント(例えば、トレードに興味のあるトークンの発行者)に影響するトランザクションのサブセットに限定することもできます。 ### 今後の展開 -Ripple社はXRP Ledger プロトコルを拡張し、既存の中央指値注文ベース(CLOB)の分散型取引所と連携するネイティブな自動マーケットメーカー(AMM)の機能を追加することを提案しました。この提案が受け入れられ、[amendments](amendments.html)として有効になれば、AMMはXRP Ledger上のトレードにおいて重要な要素となるでしょう。詳しくは以下のリンクをご覧ください。 +Ripple社はXRP Ledger プロトコルを拡張し、既存の中央指値注文ベース(CLOB)の分散型取引所と連携するネイティブな自動マーケットメーカー(AMM)の機能を追加することを提案しました。この提案が受け入れられ、[amendments](../../concepts/networks-and-servers/amendments.md)として有効になれば、AMMはXRP Ledger上のトレードにおいて重要な要素となるでしょう。詳しくは以下のリンクをご覧ください。 - [XLS-30d: Automated Market Maker 規格草案](https://github.com/XRPLF/XRPL-Standards/discussions/78) - [AMMドキュメント (Ripple社のオープンソースのサイト)](https://opensource.ripple.com/docs/xls-30d-amm/automated-market-makers/) diff --git a/content/@i18n/ja/use-cases/defi/index.md b/content/@i18n/ja/use-cases/defi/index.md index 1a9c4be6b1..ae49289068 100644 --- a/content/@i18n/ja/use-cases/defi/index.md +++ b/content/@i18n/ja/use-cases/defi/index.md @@ -2,9 +2,13 @@ html: defi-uc.html parent: use-cases.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: 中央機関を介さずに、高速で安全な金融トランザクションを可能にします。 --- # DeFi -中央機関を介さずに、高速で安全な金融トランザクションを可能にします。 \ No newline at end of file +中央機関を介さずに、高速で安全な金融トランザクションを可能にします。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/use-cases/defi/list-xrp-as-an-exchange.md b/content/@i18n/ja/use-cases/defi/list-xrp-as-an-exchange.md index 01c7646bd7..df25d04a6c 100644 --- a/content/@i18n/ja/use-cases/defi/list-xrp-as-an-exchange.md +++ b/content/@i18n/ja/use-cases/defi/list-xrp-as-an-exchange.md @@ -41,33 +41,33 @@ XRPをサポートするために、Alpha Exchangeでは以下を行う必要が 関連項目: -* [コンプライアンス指針](stablecoin-compliance-guidelines.html) — ゲートウェイと取引所は異なりますが、取引所は地域の規制に準拠し、適切な当局の監督下になければなりません。 +* [コンプライアンス指針](../../concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md) — ゲートウェイと取引所は異なりますが、取引所は地域の規制に準拠し、適切な当局の監督下になければなりません。 -* [注意事項](stablecoin-precautions.html) +* [注意事項](../../concepts/tokens/fungible-tokens/stablecoins/precautions.md) ### Partial Payments -追加の前に、取引所は[Partial Payments](partial-payments.html)機能について知っておく必要があります。この機能を使用すると、XRP Ledgerのユーザーは、`SendMax`を増やさずに、受取金額を減額して、支払いを正常に送信できます。この機能は、送信者側に追加費用が発生せず、[支払いの返金](bouncing-payments.html)に便利です。 +追加の前に、取引所は[Partial Payments](../../concepts/payment-types/partial-payments.md)機能について知っておく必要があります。この機能を使用すると、XRP Ledgerのユーザーは、`SendMax`を増やさずに、受取金額を減額して、支払いを正常に送信できます。この機能は、送信者側に追加費用が発生せず、[支払いの返金](../../concepts/payment-types/bouncing-payments.md)に便利です。 #### Partial Paymentsに関する警告 -[tfPartialPaymentフラグ](payment.html#paymentのフラグ)が有効にされると、`Amount`フィールド **_は受取り金額とは同じでなくなることがあります_** 。支払いのメタデータにある`delivered_amount`フィールドは、宛先アカウントが実際に受け取る通貨の金額を示しています。支払いを受信するときに、Amountフィールドの代わりに、`delivered_amount`を使用してアカウントで受信した金額を判断します。 +[tfPartialPaymentフラグ](../../references/protocol/transactions/types/payment.md#paymentのフラグ)が有効にされると、`Amount`フィールド **_は受取り金額とは同じでなくなることがあります_** 。支払いのメタデータにある`delivered_amount`フィールドは、宛先アカウントが実際に受け取る通貨の金額を示しています。支払いを受信するときに、Amountフィールドの代わりに、`delivered_amount`を使用してアカウントで受信した金額を判断します。 -**警告:** この機能が悪用されることがあります。詳細については、[Partial Payments](partial-payments.html)を参照してください。 +**警告:** この機能が悪用されることがあります。詳細については、[Partial Payments](../../concepts/payment-types/partial-payments.md)を参照してください。 ### アカウント -XRPは、XRP Ledgerの _アカウント_ ( _ウォレット_ や _アドレス_ とも呼ばれる)で保持されます。XRP Ledgerのアカウントは、例えばBitcoinのような、アカウントに経費がほとんどまたは一切かからない他のブロックチェーンの台帳とは異なります。XRP Ledgerでは、[アカウントの削除](deleting-accounts.html)は可能が、各アカウントは個別の、他の人に送信することのできない、[XRPの準備金](reserves.html)を保持する必要があります。このような理由から、Rippleでは利用機関に対し、必要のない過剰なアカウントを作成しないように勧めています。 +XRPは、XRP Ledgerの _アカウント_ ( _ウォレット_ や _アドレス_ とも呼ばれる)で保持されます。XRP Ledgerのアカウントは、例えばBitcoinのような、アカウントに経費がほとんどまたは一切かからない他のブロックチェーンの台帳とは異なります。XRP Ledgerでは、[アカウントの削除](../../concepts/accounts/deleting-accounts.md)は可能が、各アカウントは個別の、他の人に送信することのできない、[XRPの準備金](../../concepts/accounts/reserves.md)を保持する必要があります。このような理由から、Rippleでは利用機関に対し、必要のない過剰なアカウントを作成しないように勧めています。 Rippleが推奨するベストプラクティスに従い、Alpha Exchangeは、XRP Ledgerに最低2つのアカウントを作成する必要があります。シークレットキーが悪用された場合の危険を最小限にとどめるため、Rippleでは、[ _コールドアカウント_ 、 _ホットアカウント_ 、 _ウォームアカウント_ ](https://ripple.com/build/issuing-operational-addresses/)(それぞれコールドウォレット、ホットウォレット、ウォームウォレットとも呼ばれる)の作成をお勧めしています。コールド/ホット/ウォームのモデルは、セキュリティと利便性のバランスをとるためのものです。XRPを上場する取引所は、以下のアカウントを作成する必要があります。 -* 大部分のXRPと顧客の資金を維持する[ _コールドウォレット_ ](account-types.html#発行アドレス)。取引所にとって、これはユーザーが[預入れ](#取引所へのxrpの入金)をするアドレスです。 セキュリティを最適化するため、このアカウントのシークレットキーはオフラインにする必要があります。 +* 大部分のXRPと顧客の資金を維持する[ _コールドウォレット_ ](../../concepts/accounts/account-types.md#発行アドレス)。取引所にとって、これはユーザーが[預入れ](#取引所へのxrpの入金)をするアドレスです。 セキュリティを最適化するため、このアカウントのシークレットキーはオフラインにする必要があります。 取引所のコールドウォレットが悪用されると、以下のような結果が生じるおそれがあります。 @@ -83,22 +83,22 @@ Rippleが推奨するベストプラクティスに従い、Alpha Exchangeは、 * 不正使用者が、アカウントにasfRequireAuthフラグを設定した場合。この設定は解除できません。ただし、これは通貨の発行のみに関係し、ゲートウェイではない取引所には影響しません。不正使用者がマスターキーで設定または設定解除したその他の設定は、元に戻すことができます。 -* 顧客のXRP出金や入金を管理する、日常業務を遂行するための1つ以上の[ _ホットウォレット_ ](account-types.html#運用アドレス)。例えば、ホットウォレットがあれば、取引所はこの種のXRPの自動送金を安全にサポートできます。出金リクエストにただちに応じるため、ホットウォレットはオンラインである必要があります。 +* 顧客のXRP出金や入金を管理する、日常業務を遂行するための1つ以上の[ _ホットウォレット_ ](../../concepts/accounts/account-types.md#運用アドレス)。例えば、ホットウォレットがあれば、取引所はこの種のXRPの自動送金を安全にサポートできます。出金リクエストにただちに応じるため、ホットウォレットはオンラインである必要があります。 - 不正使用されたホットウォレットによって発生するおそれのある結果についての詳細は、[Operational Account Compromise](account-types.html#運用アドレスの漏えい)を参照してください。 + 不正使用されたホットウォレットによって発生するおそれのある結果についての詳細は、[Operational Account Compromise](../../concepts/accounts/account-types.md#運用アドレスの漏えい)を参照してください。 -* オプションとして、コールドウォレットとホットウォレットの間で追加のセキュリティ層を提供する、1つ以上のウォームウォレット。ホットウォレットとは異なり、ウォームウォレットのシークレットキーはオンラインである必要はありません。さらに、ウォームウォレットのシークレットキーを複数の人に分散し、[マルチシグ](multi-signing.html)を導入してセキュリティを強化することもできます。 +* オプションとして、コールドウォレットとホットウォレットの間で追加のセキュリティ層を提供する、1つ以上のウォームウォレット。ホットウォレットとは異なり、ウォームウォレットのシークレットキーはオンラインである必要はありません。さらに、ウォームウォレットのシークレットキーを複数の人に分散し、[マルチシグ](../../concepts/accounts/multi-signing.md)を導入してセキュリティを強化することもできます。 - 不正使用されたウォームウォレットによって発生するおそれのある結果についての詳細は、[スタンバイアドレスの漏えい](account-types.html#スタンバイアドレスの漏えい)を参照してください。 + 不正使用されたウォームウォレットによって発生するおそれのある結果についての詳細は、[スタンバイアドレスの漏えい](../../concepts/accounts/account-types.md#スタンバイアドレスの漏えい)を参照してください。 関連項目: -* [発行アドレスと運用アドレス](account-types.html) +* [発行アドレスと運用アドレス](../../concepts/accounts/account-types.md) -* [アカウントの作成](accounts.html#アカウントの作成) +* [アカウントの作成](../../concepts/accounts/accounts.md#アカウントの作成) -* [準備金](reserves.html) +* [準備金](../../concepts/accounts/reserves.md) ### バランスシート @@ -198,7 +198,7 @@ XRPの額は、XRP Ledgerで、符号なし整数の _drop_ として示され _Alpha Exchange_ のような取引所では、XRPは「台帳上」または「台帳外」に存在します。 -* **台帳上のXRP**: XRP保有者のパブリック[アドレス](addresses.html)を指定し、パブリックのXRP Ledgerを通じて照会できるXRP。これらの残高の取引相手はXRP Ledgerです。詳細については、[XRP](what-is-xrp.html)を参照してください。 +* **台帳上のXRP**: XRP保有者のパブリック[アドレス](../../concepts/accounts/addresses.md)を指定し、パブリックのXRP Ledgerを通じて照会できるXRP。これらの残高の取引相手はXRP Ledgerです。詳細については、[XRP](../../introduction/what-is-xrp.md)を参照してください。 * **台帳外のXRP**: 取引所の会計システムに保持されている、取引所のインターフェイスで照会できるXRP。台帳外のXRP残高はクレジットペースです。取引相手は、XRPを保有している取引所です。 @@ -311,7 +311,7 @@ CharlieというユーザーがAlpha Exchangeに50,000XRPを入金したいと 1. Charlieは50,000XRPの支払いを、Alpha Exchangeの[コールドウォレット](#アカウント)に送信します。 - a. Charlieは識別子(このケースでは`789`)を支払いに追加し、Alpha Exchangeにある自身のアカウントに関連付けます。これは、[ _宛先タグ_ ](source-and-destination-tags.html)と呼ばれます。(これを使用するには、Alpha Exchangeは、すべての入金でCharlieのような宛先タグを必要とするように、すべてのアカウントでasfRequireDestフラグをオンに設定している必要があります。詳細については、[AccountSet Flags](accountset.html#accountsetのフラグ)を参照してください。) + a. Charlieは識別子(このケースでは`789`)を支払いに追加し、Alpha Exchangeにある自身のアカウントに関連付けます。これは、[ _宛先タグ_ ](../../concepts/transactions/source-and-destination-tags.md)と呼ばれます。(これを使用するには、Alpha Exchangeは、すべての入金でCharlieのような宛先タグを必要とするように、すべてのアカウントでasfRequireDestフラグをオンに設定している必要があります。詳細については、[AccountSet Flags](../../references/protocol/transactions/types/accountset.md#accountsetのフラグ)を参照してください。) 2. Alpha Exchangeのソフトウェアは、受信される支払を検出し、`789`をチャーリーのアカウントの宛先タグとして認識します。 @@ -412,12 +412,12 @@ XRP残高 Alpha Exchangeユーザー(Charlieなど)は、Alpha Exchangeでクレジットベースの残高を取引できます。Alpha Exchangeは、これらの取引の作成時に、新しいバランスシートでユーザーの残高を追跡する必要があります。これらの取引は、 _台帳外_ であり、XRP Ledgerから独立しています。このため、この残高の変化はXRP Ledgerには記録されません。 -XRPを自身のXRP Ledgerアカウントに保有している顧客は、XRP Ledgerに組み込まれた分散型取引所 を使用して、ゲートウェイによって発行された通貨を取引することもできます。XRP Ledger _上_ での取引の詳細は、[オファーのライフサイクル](offers.html#オファーのライフサイクル)を参照してください。 +XRPを自身のXRP Ledgerアカウントに保有している顧客は、XRP Ledgerに組み込まれた分散型取引所 を使用して、ゲートウェイによって発行された通貨を取引することもできます。XRP Ledger _上_ での取引の詳細は、[オファーのライフサイクル](../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)を参照してください。 ### XRPの保有高のリバランス -取引所は、いつでもホットウォレットとコールドウォレットの間で残高を調整できます。各残高調整には、[トランザクションコスト](transaction-cost.html)がかかりますが、それ以外にはすべてのアカウントの合計残高に影響はありません。台帳上の合計残高は、取引所で取引に使用できる合計残高を常に上回る必要があります。(XRP Ledgerのトランザクションコストをカバーできるだけの十分な余剰が必要です。) +取引所は、いつでもホットウォレットとコールドウォレットの間で残高を調整できます。各残高調整には、[トランザクションコスト](../../concepts/transactions/transaction-cost.md)がかかりますが、それ以外にはすべてのアカウントの合計残高に影響はありません。台帳上の合計残高は、取引所で取引に使用できる合計残高を常に上回る必要があります。(XRP Ledgerのトランザクションコストをカバーできるだけの十分な余剰が必要です。) 以下の表は、(XRP Ledgerで[Paymentトランザクション][]を介した)Alpha Exchangeのコールドウォレットとホットウォレットの間での80,000XRPの残高調整を示すものです。コールドウォレットから引き落としが行われ、ホットウォレットに入金が行われました。この支払いを逆にすると(ホットウォレットから引き落としが行われ、コールドウォレットに入金が行われる)、ホットウォレットの残高は減少します。このような残高調整は、取引所がオンラインホットウォレットにXRPを保持することに関連するリスクを抑えるために役立ちます。 @@ -603,8 +603,4 @@ XRPを自身のXRP Ledgerアカウントに保有している顧客は、XRP Led - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/@i18n/ja/use-cases/index.md b/content/@i18n/ja/use-cases/index.md index 5c3a5c2f8b..bb461f340d 100644 --- a/content/@i18n/ja/use-cases/index.md +++ b/content/@i18n/ja/use-cases/index.md @@ -2,8 +2,12 @@ html: use-cases.html parent: docs.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # ユースケース -実践的なユースケースに基づいたドキュメントをご覧ください。 \ No newline at end of file +実践的なユースケースに基づいたドキュメントをご覧ください。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/use-cases/payments/index.md b/content/@i18n/ja/use-cases/payments/index.md index 3e6aeb842e..f7b6c6360c 100644 --- a/content/@i18n/ja/use-cases/payments/index.md +++ b/content/@i18n/ja/use-cases/payments/index.md @@ -2,9 +2,13 @@ html: payments-uc.html parent: use-cases.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: XRP Ledgerで様々なタイプの支払いを利用するための実例を紹介します。 --- # Payment -XRP Ledgerで様々なタイプの支払いを利用するための実例を紹介します。 \ No newline at end of file +XRP Ledgerで様々なタイプの支払いを利用するための実例を紹介します。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/use-cases/payments/peer-to-peer-payments-uc.md b/content/@i18n/ja/use-cases/payments/peer-to-peer-payments-uc.md index 2dc2af8392..e72b1a0e48 100644 --- a/content/@i18n/ja/use-cases/payments/peer-to-peer-payments-uc.md +++ b/content/@i18n/ja/use-cases/payments/peer-to-peer-payments-uc.md @@ -12,26 +12,26 @@ XRP Ledgerは、決済を処理するための効率的でボーダレスなサ ## ウォレット -XRP Ledgerを使用して直接支払いを処理する前に、使用するウォレットを決める必要があります。ウォレットは、レジャーとのやり取りや資金の管理を簡単にします。ニーズに応じて多くの中から選ぶことができ、自分で作成することも可能です。[暗号通貨のウォレット](crypto-wallets.html)をご覧ください。 +XRP Ledgerを使用して直接支払いを処理する前に、使用するウォレットを決める必要があります。ウォレットは、レジャーとのやり取りや資金の管理を簡単にします。ニーズに応じて多くの中から選ぶことができ、自分で作成することも可能です。[暗号通貨のウォレット](../../introduction/crypto-wallets.md)をご覧ください。 ## アカウントの作成 -アカウントを作成する前に、XRP Ledgerのどのネットワークを使用するかを決定する必要があります。異なるユースケースのために複数のネットワークがありますが、ネイティブのXRPトランザクションは`Mainnet`でしか起こりません。[パラレルネットワーク](parallel-networks.html)をご覧ください。 +アカウントを作成する前に、XRP Ledgerのどのネットワークを使用するかを決定する必要があります。異なるユースケースのために複数のネットワークがありますが、ネイティブのXRPトランザクションは`Mainnet`でしか起こりません。[パラレルネットワーク](../../concepts/networks-and-servers/parallel-networks.md)をご覧ください。 -一般に公開されているウォレットのほとんどは、アカウントを作成する機能を提供しており、公開鍵と秘密鍵を生成することができます。そうでない場合でも、数学的に有効である限り、自分でアカウントを作成することができます。[アカウントの作成](accounts.html#creating-accounts)をご覧ください。 +一般に公開されているウォレットのほとんどは、アカウントを作成する機能を提供しており、公開鍵と秘密鍵を生成することができます。そうでない場合でも、数学的に有効である限り、自分でアカウントを作成することができます。[アカウントの作成](../../concepts/accounts/accounts.md#creating-accounts)をご覧ください。 ## アカウントを探す -アカウントは、資金が提供され、最低準備金を満たすまでは、XRP Ledger上でアクティブではありません。[準備金](reserves.html)をご覧ください。 +アカウントは、資金が提供され、最低準備金を満たすまでは、XRP Ledger上でアクティブではありません。[準備金](../../concepts/accounts/reserves.md)をご覧ください。 -利用しているウォレットがXRPを購入するオプションを提供していない場合、それを行うサードパーティの取引所を見つけて、あなたのアカウントに送る必要があります。または、友人などからXRPをあなたのアカウントに送ってもらうこともできます。[Payment](payment.html)をご覧ください。 +利用しているウォレットがXRPを購入するオプションを提供していない場合、それを行うサードパーティの取引所を見つけて、あなたのアカウントに送る必要があります。または、友人などからXRPをあなたのアカウントに送ってもらうこともできます。[Payment](../../references/protocol/transactions/types/payment.md)をご覧ください。 アカウントに資金を提供した後、XRP Ledger自体でアカウントが存在し、資金が提供されていることを確認する必要があります。次の方法などが利用できます。 - [XRPLエクスプローラー](https://livenet.xrpl.org/) - - [`account_info`コマンド](account_info.html) + - [`account_info`コマンド](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md) ## Paymentの利用 @@ -39,7 +39,7 @@ XRP Ledgerを使用して直接支払いを処理する前に、使用するウ ### XRPによる直接支払い -XRP支払いは、XRP Ledger上で誰かに支払いをする最も簡単な方法です。Checkやエスクローを使うこともできますが、これらは複数回のトランザクションを必要とします。XRPの直接支払いは1回のトランザクションで済みますので、この方法は日々の取引に最適です。もしあなたが大量のトランザクションを扱う事業者であれば、迅速かつシンプルで、手数料が最も低いこの方法がぴったりかもしれません。[XRPによる直接支払い](direct-xrp-payments.html)をご覧ください。 +XRP支払いは、XRP Ledger上で誰かに支払いをする最も簡単な方法です。Checkやエスクローを使うこともできますが、これらは複数回のトランザクションを必要とします。XRPの直接支払いは1回のトランザクションで済みますので、この方法は日々の取引に最適です。もしあなたが大量のトランザクションを扱う事業者であれば、迅速かつシンプルで、手数料が最も低いこの方法がぴったりかもしれません。[XRPによる直接支払い](../../concepts/payment-types/direct-xrp-payments.md)をご覧ください。 XRPの直接支払いを実現するためには、受取人のアドレスを知るだけで十分です。 @@ -48,6 +48,6 @@ XRPの直接支払いを実現するためには、受取人のアドレスを XRP Ledgerは、XRPとトークンのクロスカレンシー決済を可能にします。XRP Ledger内のクロスカレンシー支払いは完全にアトミックで、支払いが完全に実行されるか、支払いの一部すら全く実行されないことを意味します。 -クロスカレンシー支払いは、宛先に固定額を送りますが、送信者は、トランザクションをネットワーク上で成立させるために必要となる経路によって、手数料コストが変動することがあります。[クロスカレンシー支払い](cross-currency-payments.html)をご覧ください。 +クロスカレンシー支払いは、宛先に固定額を送りますが、送信者は、トランザクションをネットワーク上で成立させるために必要となる経路によって、手数料コストが変動することがあります。[クロスカレンシー支払い](../../concepts/payment-types/cross-currency-payments.md)をご覧ください。 XRPのネイティブ通貨ではなく、特定のトークンによる支払いを希望する場合に最適なオプションです diff --git a/content/@i18n/ja/use-cases/payments/restricting-deposits-uc.md b/content/@i18n/ja/use-cases/payments/restricting-deposits-uc.md index 272b998996..f70ffa52ff 100644 --- a/content/@i18n/ja/use-cases/payments/restricting-deposits-uc.md +++ b/content/@i18n/ja/use-cases/payments/restricting-deposits-uc.md @@ -19,7 +19,7 @@ labels: ## デポジット認可のセットアップ -デポジット認可を有効にするには、`AccountSet`トランザクションを使用して`asfDepositAuth`フラグを設定します。[デポジット認可](depositauth.html)をご覧ください。 +デポジット認可を有効にするには、`AccountSet`トランザクションを使用して`asfDepositAuth`フラグを設定します。[デポジット認可](../../concepts/accounts/depositauth.md)をご覧ください。 ## アカウントの事前認可 @@ -27,7 +27,7 @@ labels: 事前認可されたアカウントによる支払いは通貨を問わないので、認可する通貨を指定することはできません。すべてを認可するか認可しないかです。 -[デポジットの事前認可](depositpreauth.html)をご覧ください。 +[デポジットの事前認可](../../references/protocol/transactions/types/depositpreauth.md)をご覧ください。 ## 未認可のアカウントからの入金を許可する @@ -41,14 +41,14 @@ Checkは、デポジット認可が有効な場合、シンプルで親しみや この方法は最もシンプルですが、資金が保証されるわけではありません。Checkは後払いであり、Checkを現金化しようとする瞬間まで資金は動きません。Checkを現金化するときに、送金側のアカウントに必要な資金がない可能性があり、ビジネスによっては遅延やその他の問題を引き起こす可能性があります。 -[Checkの利用](use-checks.html)をご覧ください。 +[Checkの利用](../../tutorials/use-specialized-payment-types/use-checks/use-checks.md)をご覧ください。 ### Escrow 入金時の資金保証が必要な場合は、エスクローで入金してもらう方法もあります。通常のエスクローと同様に、送金者はレジャーに資金を確保し、一定の条件が満たされるまで資金を効果的にロックします。これにより、エスクローを閉じて資金を放出するときに、資金が利用できることが保証されます。 -[エスクローの利用](use-escrows.html)をご覧ください。 +[エスクローの利用](../../tutorials/tasks/use-specialized-payment-types/use-escrows/index.md)をご覧ください。 -* `TokenTaxon`フィールドを使用すると、NFTを論理的なコレクションとしてミントすることができます。[NFTをコレクションとしてミントする](nft-collections.html)をご覧ください。 -* 発行者として将来的にトークンをバーンできるようにしたい場合は、`Flags`フィールドを _1_ に設定します。NFTを譲渡可能にするには、`Flags`フィールドを _8_ に設定します。NFTをバーン可能かつ譲渡可能にするには、`Flags`フィールドを _9_ に設定します。[Burnableフラグ](nftoken.html#nftoken-flags)および[Transferableフラグ](nftoken.html#nftoken-flags)をご覧ください。 +* `TokenTaxon`フィールドを使用すると、NFTを論理的なコレクションとしてミントすることができます。[NFTをコレクションとしてミントする](../../concepts/tokens/nfts/collections.md)をご覧ください。 +* 発行者として将来的にトークンをバーンできるようにしたい場合は、`Flags`フィールドを _1_ に設定します。NFTを譲渡可能にするには、`Flags`フィールドを _8_ に設定します。NFTをバーン可能かつ譲渡可能にするには、`Flags`フィールドを _9_ に設定します。[Burnableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)および[Transferableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)をご覧ください。 -[NFTokenのミントとバーン](mint-and-burn-nfts-using-javascript.html)をご覧ください。 +[NFTokenのミントとバーン](../../tutorials/quickstart/mint-and-burn-nfts-using-javascript.md)をご覧ください。 ## NFTの販売 -NFTを売却する場合は、売却オファーを作成する必要があります。[NFTokensの取引](transfer-nfts-using-javascript.html)をご覧ください。 +NFTを売却する場合は、売却オファーを作成する必要があります。[NFTokensの取引](../../tutorials/quickstart/transfer-nfts-using-javascript.md)をご覧ください。 -NFTをオークション形式で販売することができます。[NFTオークションの実行](transfer-nfts-using-javascript.html)をご覧ください。 +NFTをオークション形式で販売することができます。[NFTオークションの実行](../../tutorials/quickstart/transfer-nfts-using-javascript.md)をご覧ください。 ### 準備金要件 @@ -55,15 +55,15 @@ NFTをオークション形式で販売することができます。[NFTオー 次のコンテンツをご覧ください。 -1. [NFTokenOffer](nft-reserve-requirements.html#nftokenoffer-reserve) -2. NFToken page ([所有者準備金](nft-reserve-requirements.html#owner-reserve)) -3. 少額の[取引手数料](transfer-fees.html) +1. [NFTokenOffer](../../concepts/tokens/nfts/reserve-requirements.md#nftokenoffer-reserve) +2. NFToken page ([所有者準備金](../../concepts/tokens/nfts/reserve-requirements.md#owner-reserve)) +3. 少額の[取引手数料](../../concepts/tokens/transfer-fees.md) ### 支払い -XRPL NFTの最もシンプルな支払い方法はXRPです。XRPを使ったNFTの売り買いの例については、[NFTokenの取引](transfer-nfts-using-javascript.html))をご覧ください。 +XRPL NFTの最もシンプルな支払い方法はXRPです。XRPを使ったNFTの売り買いの例については、[NFTokenの取引](../../tutorials/quickstart/transfer-nfts-using-javascript.md))をご覧ください。 -他の通貨での取引は、DEXを活用してあらゆる種類の発行通貨を受け入れ、取引することができます。[分散型取引所での取引](trade-in-the-decentralized-exchange.html#trade-in-the-decentralized-exchange)をご覧ください。 +他の通貨での取引は、DEXを活用してあらゆる種類の発行通貨を受け入れ、取引することができます。[分散型取引所での取引](../../tutorials/use-tokens/trade-in-the-decentralized-exchange.md#trade-in-the-decentralized-exchange)をご覧ください。 ## NFTのインデックス化 @@ -71,7 +71,7 @@ NFTを出品する際、オブジェクトのメタデータを使って分類 関連項目: -- [Clioのセットアップ](install-clio-on-ubuntu.html) +- [Clioのセットアップ](../../infrastructure/installation/install-clio-on-ubuntu.md) - [XRPL Data API](https://api.xrpldata.com/docs/static/index.html#/) - [Bithomp](https://docs.bithomp.com/#nft-xls-20) diff --git a/content/@i18n/ja/use-cases/tokenization/index.md b/content/@i18n/ja/use-cases/tokenization/index.md index c4078590f7..8c4e140cc4 100644 --- a/content/@i18n/ja/use-cases/tokenization/index.md +++ b/content/@i18n/ja/use-cases/tokenization/index.md @@ -2,9 +2,13 @@ html: tokenization.html parent: use-cases.html top_nav_grouping: カテゴリ -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: XRP Ledgerが対応する様々なトークンを使用できます。 --- # Tokenization -XRP Ledgerが対応する様々なトークンを使用できます。 \ No newline at end of file +XRP Ledgerが対応する様々なトークンを使用できます。 + + +{% child-pages /%} diff --git a/content/@i18n/ja/use-cases/tokenization/nft-mkt-overview.md b/content/@i18n/ja/use-cases/tokenization/nft-mkt-overview.md index e5c238ee46..26a902cfbc 100644 --- a/content/@i18n/ja/use-cases/tokenization/nft-mkt-overview.md +++ b/content/@i18n/ja/use-cases/tokenization/nft-mkt-overview.md @@ -35,56 +35,56 @@ NFTビジネスを始めるにあたって、必要不可欠な4つの準備項 3. 必要なNFT情報のインデックス作成 4. NFTをキャッシュするための永続的なストレージ戦略の決定 -[![NFTマーケットのフロー](img/nft-mkt-overview.png "NFTマーケットのフロー")](img/nft-mkt-overview.png) +[![NFTマーケットのフロー](/img/nft-mkt-overview.png "NFTマーケットのフロー")](/img/nft-mkt-overview.png) ## XRPLへの接続 -トランザクションの少ない小規模なサイトを立ち上げたい場合は、XRP Ledgerの無料の公開サーバのいずれかと連携することができます。[パブリックサーバ](public-servers.html)をご覧ください。 +トランザクションの少ない小規模なサイトを立ち上げたい場合は、XRP Ledgerの無料の公開サーバのいずれかと連携することができます。[パブリックサーバ](../../tutorials/get-started/public-servers.md)をご覧ください。 -大規模なサイトを大量に立ち上げたい場合は、独自のXRP Ledgerのサーバインスタンスを導入する価値があるかもしれません。[rippledのインストール](install-rippled.html)をご覧ください。 +大規模なサイトを大量に立ち上げたい場合は、独自のXRP Ledgerのサーバインスタンスを導入する価値があるかもしれません。[rippledのインストール](../../infrastructure/installation/index.md)をご覧ください。 関連項目: -* [独自サーバ運用のメリットとデメリット](networks-and-servers.html#reasons-to-run-your-own-server). +* [独自サーバ運用のメリットとデメリット](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). ## ブロックチェーンの基本機能のセットアップ NFTをいくつかミントして販売することで、マーケットプレイスを構築し始めることができます。 -最初のNFTを作成するには、チュートリアル _NFTonenのミントとバーン_ の指示に従います。[NFTのミントとバーン](mint-and-burn-nfts-using-javascript.html)をご覧ください。 +最初のNFTを作成するには、チュートリアル _NFTonenのミントとバーン_ の指示に従います。[NFTのミントとバーン](../../tutorials/quickstart/mint-and-burn-nfts-using-javascript.md)をご覧ください。 NFTokenのURLは、NFTのコンテンツが保存されている場所へのリンクです。IPFSアカウントを作成し、永続的なURLにNFTokenのコンテンツを保存するのも1つの方法です。[NFTデータ保存のベストプラクティス](https://docs.ipfs.io/how-to/best-practices-for-nft-data)をご覧ください。 -発行者として将来的にトークンをバーンできるようにしたい場合は、`Flags`フィールドを _1_ に設定します。NFTを譲渡可能にするには、`Flags`フィールドを _8_ に設定します。NFTをバーン可能かつ譲渡可能にするには、`Flags`フィールドを _9_ に設定します。[Burnableフラグ](nftoken.html#nftoken-flags)および[Transferableフラグ](nftoken.html#nftoken-flags)をご覧ください。 +発行者として将来的にトークンをバーンできるようにしたい場合は、`Flags`フィールドを _1_ に設定します。NFTを譲渡可能にするには、`Flags`フィールドを _8_ に設定します。NFTをバーン可能かつ譲渡可能にするには、`Flags`フィールドを _9_ に設定します。[Burnableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)および[Transferableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)をご覧ください。 -transfer feeを設定することで、将来の取引からロイヤリティを徴収することができます。これは販売価格の0~50%を表す0~50000の値です。[NFTの取引手数料](nftoken.html#transferfee)をご覧ください。 +transfer feeを設定することで、将来の取引からロイヤリティを徴収することができます。これは販売価格の0~50%を表す0~50000の値です。[NFTの取引手数料](../../references/protocol/data-types/nftoken.md#transferfee)をご覧ください。 -`TokenTaxon`フィールドを使用すると、NFTを論理的なコレクションとしてミントすることができます。[NFTをコレクションとしてミントする](nft-collections.html)をご覧ください。 +`TokenTaxon`フィールドを使用すると、NFTを論理的なコレクションとしてミントすることができます。[NFTをコレクションとしてミントする](../../concepts/tokens/nfts/collections.md)をご覧ください。 自分で作成したコンテンツで自分のNFTをミントすることもできますが、他のクリエイターの代わりにNFTを生成する認可Minterになることもできます。この場合、クリエイターは新しいNFTの作成に専念し、あなたはNFTのミントと販売を担当することができます。 認可MinterがクリエイターのためにNFTをミントし終えたら、その権限を取り消し、クリエイターのNFTを制御できないようにすることができます。 -[認可Minter](nftoken-authorized-minting.html)をご覧ください。 +[認可Minter](../../concepts/tokens/nfts/authorizing-another-minter.md)をご覧ください。 -ミント済みのNFTは、`NFTokenPage`に記録されます。アカウント上の`NFTokenPage`1つにつき2XRPの準備金が必要です。[NFT準備金](nft-reserve-requirements.html)をご覧ください。 +ミント済みのNFTは、`NFTokenPage`に記録されます。アカウント上の`NFTokenPage`1つにつき2XRPの準備金が必要です。[NFT準備金](../../concepts/tokens/nfts/reserve-requirements.md)をご覧ください。 -各「NFTokenPage」は16~32個のNFTを保持します。大量のNFTをミントすると、あなたのXRPを大量に準備金としてロックすることになります。オンデマンドミント(または _遅延ミント_ )を行うことで、XRPを柔軟に維持することができます。[遅延ミント](nftoken-batch-minting.html#mint-on-demand-lazy-minting)と[スクリプトミント](nftoken-batch-minting.html#scripted-minting)をご覧下さい。 +各「NFTokenPage」は16~32個のNFTを保持します。大量のNFTをミントすると、あなたのXRPを大量に準備金としてロックすることになります。オンデマンドミント(または _遅延ミント_ )を行うことで、XRPを柔軟に維持することができます。[遅延ミント](../../concepts/tokens/nfts/batch-minting.md#mint-on-demand-lazy-minting)と[スクリプトミント](../../concepts/tokens/nfts/batch-minting.md#scripted-minting)をご覧下さい。 ### ウォレットのセットアップ 新しいウォレットをセットアップします。[Xumm](https://xumm.app/)をご覧ください。 -アカウントを作成する際には、10 XRPの基本準備金が必要であることに注意してください。[準備金](reserves.html#base-reserve-and-owner-reserve)をご覧ください。 +アカウントを作成する際には、10 XRPの基本準備金が必要であることに注意してください。[準備金](../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve)をご覧ください。 ### NFTの取引 -NFTの取引は、売りオファーの作成または買いオファーの承諾によって行われます。[NFTokensの取引](transfer-nfts-using-javascript.html)をご覧ください。 +NFTの取引は、売りオファーの作成または買いオファーの承諾によって行われます。[NFTokensの取引](../../tutorials/quickstart/transfer-nfts-using-javascript.md)をご覧ください。 -NFTをオークション形式で販売することができます。[NFTオークションの実行](nftoken-auctions.html)をご覧ください。 +NFTをオークション形式で販売することができます。[NFTオークションの実行](../../concepts/tokens/nfts/running-an-nft-auction.md)をご覧ください。 -あなたはブローカーとして、売り手と入札者をつなぎ、取引を完了させ、購入価格の何パーセントかを保持することができます。[NFTokenの取引を仲介する](broker-an-nft-sale-using-javascript.html)をご覧ください。 +あなたはブローカーとして、売り手と入札者をつなぎ、取引を完了させ、購入価格の何パーセントかを保持することができます。[NFTokenの取引を仲介する](../../tutorials/quickstart/broker-an-nft-sale-using-javascript.md)をご覧ください。 #### 準備金要件 @@ -96,15 +96,15 @@ NFTをオークション形式で販売することができます。[NFTオー 次のコンテンツをご覧ください。 -1. [NFTokenOffer](nft-reserve-requirements.html#nftokenoffer-reserve) -2. NFToken page ([所有者準備金](nft-reserve-requirements.html#owner-reserve)) -3. 少額の[取引手数料](transfer-fees.html) +1. [NFTokenOffer](../../concepts/tokens/nfts/reserve-requirements.md#nftokenoffer-reserve) +2. NFToken page ([所有者準備金](../../concepts/tokens/nfts/reserve-requirements.md#owner-reserve)) +3. 少額の[取引手数料](../../concepts/tokens/transfer-fees.md) #### 支払い -XRPL NFTの最もシンプルな支払い方法はXRPです。XRPを使ったNFTの売り買いの例については、[NFTokenの取引](transfer-nfts-using-javascript.html)をご覧ください。 +XRPL NFTの最もシンプルな支払い方法はXRPです。XRPを使ったNFTの売り買いの例については、[NFTokenの取引](../../tutorials/quickstart/transfer-nfts-using-javascript.md)をご覧ください。 -他の通貨での取引は、DEXを活用してあらゆる種類の発行通貨を受け入れ、取引することができます。[分散型取引所での取引](trade-in-the-decentralized-exchange.html#trade-in-the-decentralized-exchange)をご覧ください。 +他の通貨での取引は、DEXを活用してあらゆる種類の発行通貨を受け入れ、取引することができます。[分散型取引所での取引](../../tutorials/use-tokens/trade-in-the-decentralized-exchange.md#trade-in-the-decentralized-exchange)をご覧ください。 -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/_code-samples/key-derivation/js/README.md b/content/_code-samples/key-derivation/js/README.md index 53a35247b0..557a9b5844 100644 --- a/content/_code-samples/key-derivation/js/README.md +++ b/content/_code-samples/key-derivation/js/README.md @@ -3,22 +3,32 @@ Generates key from a given input in Ed25519 and Secp256k1 format. On first run, you have to install the necessary node.js dedpendencies: - npm install +``` +npm install +``` ## Command-line usage: ### Base58 formatted seed: - npm start "snJj9fYixUfpNCBn9LzLdLv5QqUKZ" +``` +npm start "snJj9fYixUfpNCBn9LzLdLv5QqUKZ" +``` ### Hex formatted seed: - npm start "BB664A14F510A366404BC4352A2230A5" +``` +npm start "BB664A14F510A366404BC4352A2230A5" +``` ### Password like seed: - npm start "sEdSKaCy2JT7JaM7v95H9SxkhP9wS2r" +``` +npm start "sEdSKaCy2JT7JaM7v95H9SxkhP9wS2r" +``` ### Random seed - npm start \ No newline at end of file +``` +npm start +``` \ No newline at end of file diff --git a/content/_code-samples/send-a-memo/js/README.md b/content/_code-samples/send-a-memo/js/README.md index e15d160099..7204f927ed 100644 --- a/content/_code-samples/send-a-memo/js/README.md +++ b/content/_code-samples/send-a-memo/js/README.md @@ -4,4 +4,6 @@ Generates a random account and creates a payment transaction with Memo field. ### Random seed - npm start \ No newline at end of file +``` +npm start +``` \ No newline at end of file diff --git a/content/_code-samples/tx-serialization/js/README.md b/content/_code-samples/tx-serialization/js/README.md index 1a1bc47518..388d3b12f7 100644 --- a/content/_code-samples/tx-serialization/js/README.md +++ b/content/_code-samples/tx-serialization/js/README.md @@ -6,26 +6,38 @@ For a detailed explanation, see [Serialization](https://xrpl.org/serialization.h On first run, you have to install the necessary node.js dependencies: - npm install +``` +npm install +``` ## Command-line usage: ### Simple example, use tx1.json default: - node index.js +``` +node index.js +``` ### Verbose output, use --verbose or -v: - node index.js -v +``` +node index.js -v +``` ### Raw output without formatting, use --raw or -r: - node index.js -r +``` +node index.js -r +``` ### Pick JSON fixture file: - node index.js -f test-cases/tx3.json +``` +node index.js -f test-cases/tx3.json +``` ### Feed JSON as CLI argument: - node index.js -j "{\"TransactionType\":\"Payment\"}" \ No newline at end of file +``` +node index.js -j "{\"TransactionType\":\"Payment\"}" +``` \ No newline at end of file diff --git a/content/_snippets/checkcash-prereqs.md b/content/_snippets/checkcash-prereqs.md index e29521dacd..e8d6559b5a 100644 --- a/content/_snippets/checkcash-prereqs.md +++ b/content/_snippets/checkcash-prereqs.md @@ -3,6 +3,6 @@ The prerequisites for cashing a check are the same whether you are cashing it fo - You need the ID of a Check object currently in the ledger. - For example, the ID of one Check in these examples is `838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334`, although you must use a different ID to go through these steps yourself. - The **address** and **secret key** of the Check's stated recipient. The address must match the `Destination` address in the Check object. -- If the Check is for a [token](tokens.html), you (the recipient) must have a [trust line](trust-lines-and-issuing.html) to the issuer. Your limit on that trust line must be high enough to hold your previous balance plus the amount you would receive. -- A [secure way to sign transactions](secure-signing.html). -- A [client library](client-libraries.html) that can connect to the XRP Ledger, or [any HTTP or WebSocket client](get-started-using-http-websocket-apis.html). +- If the Check is for a [token](../concepts/tokens/index.md), you (the recipient) must have a [trust line](../concepts/tokens/fungible-tokens/index.md) to the issuer. Your limit on that trust line must be high enough to hold your previous balance plus the amount you would receive. +- A [secure way to sign transactions](../concepts/transactions/secure-signing.md). +- A [client library](../references/client-libraries.md) that can connect to the XRP Ledger, or [any HTTP or WebSocket client](../tutorials/get-started/get-started-using-http-websocket-apis.md). diff --git a/content/_snippets/common-links.md b/content/_snippets/common-links.md new file mode 100644 index 0000000000..2e5d119522 --- /dev/null +++ b/content/_snippets/common-links.md @@ -0,0 +1,1070 @@ +[AMM amendment]: /resources/known-amendments.md#amm +[AMM entry]: /references/protocol/ledger-data/ledger-entry-types/amm.md +[AMM object]: /references/protocol/ledger-data/ledger-entry-types/amm.md +[AMM エントリ]: /references/protocol/ledger-data/ledger-entry-types/amm.md +[AMM オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/amm.md +[AMMBid transaction]: /references/protocol/transactions/types/ammbid.md +[AMMBid transactions]: /references/protocol/transactions/types/ammbid.md +[AMMBid トランザクション]: /references/protocol/transactions/types/ammbid.md +[AMMBid]: /references/protocol/transactions/types/ammbid.md +[AMMBidトランザクション]: /references/protocol/transactions/types/ammbid.md +[AMMCreate transaction]: /references/protocol/transactions/types/ammcreate.md +[AMMCreate transactions]: /references/protocol/transactions/types/ammcreate.md +[AMMCreate トランザクション]: /references/protocol/transactions/types/ammcreate.md +[AMMCreate]: /references/protocol/transactions/types/ammcreate.md +[AMMCreateトランザクション]: /references/protocol/transactions/types/ammcreate.md +[AMMDelete transaction]: /references/protocol/transactions/types/ammdelete.md +[AMMDelete transactions]: /references/protocol/transactions/types/ammdelete.md +[AMMDelete トランザクション]: /references/protocol/transactions/types/ammdelete.md +[AMMDelete]: /references/protocol/transactions/types/ammdelete.md +[AMMDeleteトランザクション]: /references/protocol/transactions/types/ammdelete.md +[AMMDeposit transaction]: /references/protocol/transactions/types/ammdeposit.md +[AMMDeposit transactions]: /references/protocol/transactions/types/ammdeposit.md +[AMMDeposit トランザクション]: /references/protocol/transactions/types/ammdeposit.md +[AMMDeposit]: /references/protocol/transactions/types/ammdeposit.md +[AMMDepositトランザクション]: /references/protocol/transactions/types/ammdeposit.md +[AMMVote transaction]: /references/protocol/transactions/types/ammvote.md +[AMMVote transactions]: /references/protocol/transactions/types/ammvote.md +[AMMVote トランザクション]: /references/protocol/transactions/types/ammvote.md +[AMMVote]: /references/protocol/transactions/types/ammvote.md +[AMMVoteトランザクション]: /references/protocol/transactions/types/ammvote.md +[AMMWithdraw transaction]: /references/protocol/transactions/types/ammwithdraw.md +[AMMWithdraw transactions]: /references/protocol/transactions/types/ammwithdraw.md +[AMMWithdraw トランザクション]: /references/protocol/transactions/types/ammwithdraw.md +[AMMWithdraw]: /references/protocol/transactions/types/ammwithdraw.md +[AMMWithdrawトランザクション]: /references/protocol/transactions/types/ammwithdraw.md +[AMMの修正]: /resources/known-amendments.md#amm +[AMMエントリ]: /references/protocol/ledger-data/ledger-entry-types/amm.md +[AMMオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/amm.md +[API v1]: /references/http-websocket-apis/api-conventions/request-formatting.md#api-versioning +[API v2]: /references/http-websocket-apis/api-conventions/request-formatting.md#api-versioning +[AccountDelete transaction]: /references/protocol/transactions/types/accountdelete.md +[AccountDelete transactions]: /references/protocol/transactions/types/accountdelete.md +[AccountDelete トランザクション]: /references/protocol/transactions/types/accountdelete.md +[AccountDelete]: /references/protocol/transactions/types/accountdelete.md +[AccountDeleteトランザクション]: /references/protocol/transactions/types/accountdelete.md +[AccountRoot entry]: /references/protocol/ledger-data/ledger-entry-types/accountroot.md +[AccountRoot object]: /references/protocol/ledger-data/ledger-entry-types/accountroot.md +[AccountRoot エントリ]: /references/protocol/ledger-data/ledger-entry-types/accountroot.md +[AccountRoot オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/accountroot.md +[AccountRootエントリ]: /references/protocol/ledger-data/ledger-entry-types/accountroot.md +[AccountRootオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/accountroot.md +[AccountSet transaction]: /references/protocol/transactions/types/accountset.md +[AccountSet transactions]: /references/protocol/transactions/types/accountset.md +[AccountSet トランザクション]: /references/protocol/transactions/types/accountset.md +[AccountSet]: /references/protocol/transactions/types/accountset.md +[AccountSetトランザクション]: /references/protocol/transactions/types/accountset.md +[Address]: /references/protocol/data-types/basic-data-types.md#addresses +[Amendments entry]: /concepts/networks-and-servers/amendments.md +[Amendments object]: /concepts/networks-and-servers/amendments.md +[Amendments エントリ]: /concepts/networks-and-servers/amendments.md +[Amendments オブジェクト]: /concepts/networks-and-servers/amendments.md +[Amendmentsエントリ]: /concepts/networks-and-servers/amendments.md +[Amendmentsオブジェクト]: /concepts/networks-and-servers/amendments.md +[Check entry]: /references/protocol/ledger-data/ledger-entry-types/check.md +[Check object]: /references/protocol/ledger-data/ledger-entry-types/check.md +[Check エントリ]: /references/protocol/ledger-data/ledger-entry-types/check.md +[Check オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/check.md +[CheckCancel transaction]: /references/protocol/transactions/types/checkcancel.md +[CheckCancel transactions]: /references/protocol/transactions/types/checkcancel.md +[CheckCancel トランザクション]: /references/protocol/transactions/types/checkcancel.md +[CheckCancel]: /references/protocol/transactions/types/checkcancel.md +[CheckCancelトランザクション]: /references/protocol/transactions/types/checkcancel.md +[CheckCash transaction]: /references/protocol/transactions/types/checkcash.md +[CheckCash transactions]: /references/protocol/transactions/types/checkcash.md +[CheckCash トランザクション]: /references/protocol/transactions/types/checkcash.md +[CheckCashMakesTrustLine amendment]: /resources/known-amendments.md#checkcashmakestrustline +[CheckCashMakesTrustLineの修正]: /resources/known-amendments.md#checkcashmakestrustline +[CheckCash]: /references/protocol/transactions/types/checkcash.md +[CheckCashトランザクション]: /references/protocol/transactions/types/checkcash.md +[CheckCreate transaction]: /references/protocol/transactions/types/checkcreate.md +[CheckCreate transactions]: /references/protocol/transactions/types/checkcreate.md +[CheckCreate トランザクション]: /references/protocol/transactions/types/checkcreate.md +[CheckCreate]: /references/protocol/transactions/types/checkcreate.md +[CheckCreateトランザクション]: /references/protocol/transactions/types/checkcreate.md +[Checks amendment]: /resources/known-amendments.md#checks +[Checksの修正]: /resources/known-amendments.md#checks +[Checkエントリ]: /references/protocol/ledger-data/ledger-entry-types/check.md +[Checkオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/check.md +[Clawback amendment]: /resources/known-amendments.md#clawback +[Clawbackの修正]: /resources/known-amendments.md#clawback +[Crypto-Conditions Specification]: https://tools.ietf.org/html/draft-thomas-crypto-conditions-04 +[CryptoConditions amendment]: /resources/known-amendments.md#cryptoconditions +[CryptoConditionsSuite amendment]: /resources/known-amendments.md#cryptoconditionssuite +[CryptoConditionsSuiteの修正]: /resources/known-amendments.md#cryptoconditionssuite +[CryptoConditionsの修正]: /resources/known-amendments.md#cryptoconditions +[Currency Amount]: /references/protocol/data-types/basic-data-types.md#specifying-currency-amounts +[Currency Code]: /references/protocol/data-types/currency-formats.md#currency-codes +[DID amendment]: /resources/known-amendments.md#did +[DIDの修正]: /resources/known-amendments.md#did +[DeletableAccounts amendment]: /resources/known-amendments.md#deletableaccounts +[DeletableAccountsの修正]: /resources/known-amendments.md#deletableaccounts +[DepositAuth amendment]: /resources/known-amendments.md#depositauth +[DepositAuthの修正]: /resources/known-amendments.md#depositauth +[DepositPreauth amendment]: /resources/known-amendments.md#depositpreauth +[DepositPreauth entry]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauth object]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauth transaction]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauth transactions]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauth エントリ]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauth オブジェクト]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauth トランザクション]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauth]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauthの修正]: /resources/known-amendments.md#depositpreauth +[DepositPreauthエントリ]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauthオブジェクト]: /references/protocol/transactions/types/depositpreauth.md +[DepositPreauthトランザクション]: /references/protocol/transactions/types/depositpreauth.md +[DirectoryNode entry]: /references/protocol/ledger-data/ledger-entry-types/directorynode.md +[DirectoryNode object]: /references/protocol/ledger-data/ledger-entry-types/directorynode.md +[DirectoryNode エントリ]: /references/protocol/ledger-data/ledger-entry-types/directorynode.md +[DirectoryNode オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/directorynode.md +[DirectoryNodeエントリ]: /references/protocol/ledger-data/ledger-entry-types/directorynode.md +[DirectoryNodeオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/directorynode.md +[DisallowIncoming amendment]: /resources/known-amendments.md#disallowincoming +[DisallowIncomingの修正]: /resources/known-amendments.md#disallowincoming +[EnableAmendment pseudo-transaction]: /references/protocol/transactions/pseudo-transaction-types/enableamendment.md +[EnableAmendment pseudo-transactions]: /references/protocol/transactions/pseudo-transaction-types/enableamendment.md +[EnableAmendment]: /references/protocol/transactions/pseudo-transaction-types/enableamendment.md +[EnableAmendment疑似トランザクション]: /references/protocol/transactions/pseudo-transaction-types/enableamendment.md +[EnforceInvariants amendment]: /resources/known-amendments.md#enforceinvariants +[EnforceInvariantsの修正]: /resources/known-amendments.md#enforceinvariants +[Escrow amendment]: /resources/known-amendments.md#escrow +[Escrow entry]: /concepts/payment-types/escrow.md +[Escrow object]: /concepts/payment-types/escrow.md +[Escrow エントリ]: /concepts/payment-types/escrow.md +[Escrow オブジェクト]: /concepts/payment-types/escrow.md +[EscrowCancel transaction]: /references/protocol/transactions/types/escrowcancel.md +[EscrowCancel transactions]: /references/protocol/transactions/types/escrowcancel.md +[EscrowCancel トランザクション]: /references/protocol/transactions/types/escrowcancel.md +[EscrowCancel]: /references/protocol/transactions/types/escrowcancel.md +[EscrowCancelトランザクション]: /references/protocol/transactions/types/escrowcancel.md +[EscrowCreate transaction]: /references/protocol/transactions/types/escrowcreate.md +[EscrowCreate transactions]: /references/protocol/transactions/types/escrowcreate.md +[EscrowCreate トランザクション]: /references/protocol/transactions/types/escrowcreate.md +[EscrowCreate]: /references/protocol/transactions/types/escrowcreate.md +[EscrowCreateトランザクション]: /references/protocol/transactions/types/escrowcreate.md +[EscrowFinish transaction]: /references/protocol/transactions/types/escrowfinish.md +[EscrowFinish transactions]: /references/protocol/transactions/types/escrowfinish.md +[EscrowFinish トランザクション]: /references/protocol/transactions/types/escrowfinish.md +[EscrowFinish]: /references/protocol/transactions/types/escrowfinish.md +[EscrowFinishトランザクション]: /references/protocol/transactions/types/escrowfinish.md +[Escrowの修正]: /resources/known-amendments.md#escrow +[Escrowエントリ]: /concepts/payment-types/escrow.md +[Escrowオブジェクト]: /concepts/payment-types/escrow.md +[ExpandedSignerList amendment]: /resources/known-amendments.md#expandedsignerlist +[ExpandedSignerListの修正]: /resources/known-amendments.md#expandedsignerlist +[FeeEscalation amendment]: /resources/known-amendments.md#feeescalation +[FeeEscalationの修正]: /resources/known-amendments.md#feeescalation +[FeeSettings entry]: /references/protocol/ledger-data/ledger-entry-types/feesettings.md +[FeeSettings object]: /references/protocol/ledger-data/ledger-entry-types/feesettings.md +[FeeSettings エントリ]: /references/protocol/ledger-data/ledger-entry-types/feesettings.md +[FeeSettings オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/feesettings.md +[FeeSettingsエントリ]: /references/protocol/ledger-data/ledger-entry-types/feesettings.md +[FeeSettingsオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/feesettings.md +[Flow amendment]: /resources/known-amendments.md#flow +[FlowCross amendment]: /resources/known-amendments.md#flowcross +[FlowCrossの修正]: /resources/known-amendments.md#flowcross +[FlowV2 amendment]: /resources/known-amendments.md#flowv2 +[FlowV2の修正]: /resources/known-amendments.md#flowv2 +[Flowの修正]: /resources/known-amendments.md#flow +[Hash]: /references/protocol/data-types/basic-data-types.md#hashes +[ImmediateOfferKilled amendment]: /resources/known-amendments.md#immediateofferkilled +[ImmediateOfferKilledの修正]: /resources/known-amendments.md#immediateofferkilled +[Interledger Protocol]: https://interledger.org/ +[Internal Type]: /references/protocol/binary-format.md +[Introduced in: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +[Introduced in: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +[Introduced in: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +[Introduced in: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +[Introduced in: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +[Introduced in: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +[Introduced in: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +[Introduced in: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +[Introduced in: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +[Introduced in: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +[Introduced in: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +[Introduced in: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +[Introduced in: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +[Introduced in: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +[Introduced in: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +[Introduced in: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +[Introduced in: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +[Introduced in: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +[Introduced in: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +[Introduced in: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +[Introduced in: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +[Introduced in: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +[Introduced in: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +[Introduced in: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +[Introduced in: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +[Introduced in: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +[Introduced in: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +[Introduced in: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +[Introduced in: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +[Introduced in: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +[Introduced in: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +[Introduced in: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +[Introduced in: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +[Introduced in: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +[Introduced in: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +[Introduced in: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +[Introduced in: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +[Introduced in: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +[Introduced in: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +[Introduced in: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +[Introduced in: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +[Introduced in: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +[Introduced in: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +[Introduced in: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" +[Ledger Index]: /references/protocol/data-types/basic-data-types.md#ledger-index +[LedgerHashes entry]: /references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +[LedgerHashes object]: /references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +[LedgerHashes エントリ]: /references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +[LedgerHashes オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +[LedgerHashesエントリ]: /references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +[LedgerHashesオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +[Marker]: /references/http-websocket-apis/api-conventions/markers-and-pagination.md +[MultiSign amendment]: /resources/known-amendments.md#multisign +[MultiSignReserve amendment]: /resources/known-amendments.md#multisignreserve +[MultiSignReserveの修正]: /resources/known-amendments.md#multisignreserve +[MultiSignの修正]: /resources/known-amendments.md#multisign +[NFTokenAcceptOffer transaction]: /references/protocol/transactions/types/nftokenacceptoffer.md +[NFTokenAcceptOffer transactions]: /references/protocol/transactions/types/nftokenacceptoffer.md +[NFTokenAcceptOffer トランザクション]: /references/protocol/transactions/types/nftokenacceptoffer.md +[NFTokenAcceptOffer]: /references/protocol/transactions/types/nftokenacceptoffer.md +[NFTokenAcceptOfferトランザクション]: /references/protocol/transactions/types/nftokenacceptoffer.md +[NFTokenBurn transaction]: /references/protocol/transactions/types/nftokenburn.md +[NFTokenBurn transactions]: /references/protocol/transactions/types/nftokenburn.md +[NFTokenBurn トランザクション]: /references/protocol/transactions/types/nftokenburn.md +[NFTokenBurn]: /references/protocol/transactions/types/nftokenburn.md +[NFTokenBurnトランザクション]: /references/protocol/transactions/types/nftokenburn.md +[NFTokenCancelOffer transaction]: /references/protocol/transactions/types/nftokencanceloffer.md +[NFTokenCancelOffer transactions]: /references/protocol/transactions/types/nftokencanceloffer.md +[NFTokenCancelOffer トランザクション]: /references/protocol/transactions/types/nftokencanceloffer.md +[NFTokenCancelOffer]: /references/protocol/transactions/types/nftokencanceloffer.md +[NFTokenCancelOfferトランザクション]: /references/protocol/transactions/types/nftokencanceloffer.md +[NFTokenCreateOffer transaction]: /references/protocol/transactions/types/nftokencreateoffer.md +[NFTokenCreateOffer transactions]: /references/protocol/transactions/types/nftokencreateoffer.md +[NFTokenCreateOffer トランザクション]: /references/protocol/transactions/types/nftokencreateoffer.md +[NFTokenCreateOffer]: /references/protocol/transactions/types/nftokencreateoffer.md +[NFTokenCreateOfferトランザクション]: /references/protocol/transactions/types/nftokencreateoffer.md +[NFTokenMint transaction]: /references/protocol/transactions/types/nftokenmint.md +[NFTokenMint transactions]: /references/protocol/transactions/types/nftokenmint.md +[NFTokenMint トランザクション]: /references/protocol/transactions/types/nftokenmint.md +[NFTokenMint]: /references/protocol/transactions/types/nftokenmint.md +[NFTokenMintトランザクション]: /references/protocol/transactions/types/nftokenmint.md +[NFTokenOffer entry]: /references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +[NFTokenOffer object]: /references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +[NFTokenOffer エントリ]: /references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +[NFTokenOffer オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +[NFTokenOfferエントリ]: /references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +[NFTokenOfferオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +[NFTokenPage entry]: /references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +[NFTokenPage object]: /references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +[NFTokenPage エントリ]: /references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +[NFTokenPage オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +[NFTokenPageエントリ]: /references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +[NFTokenPageオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +[NFToken]: /references/protocol/data-types/nftoken.md +[NegativeUNL amendment]: /resources/known-amendments.md#negativeunl +[NegativeUNL entry]: /references/protocol/ledger-data/ledger-entry-types/negativeunl.md +[NegativeUNL object]: /references/protocol/ledger-data/ledger-entry-types/negativeunl.md +[NegativeUNL エントリ]: /references/protocol/ledger-data/ledger-entry-types/negativeunl.md +[NegativeUNL オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/negativeunl.md +[NegativeUNLの修正]: /resources/known-amendments.md#negativeunl +[NegativeUNLエントリ]: /references/protocol/ledger-data/ledger-entry-types/negativeunl.md +[NegativeUNLオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/negativeunl.md +[New in: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +[New in: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +[New in: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +[New in: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +[New in: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +[New in: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +[New in: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +[New in: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +[New in: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +[New in: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +[New in: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +[New in: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +[New in: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +[New in: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +[New in: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +[New in: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +[New in: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +[New in: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +[New in: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +[New in: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +[New in: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +[New in: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +[New in: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +[New in: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +[New in: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +[New in: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +[New in: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +[New in: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +[New in: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +[New in: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +[New in: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +[New in: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +[New in: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +[New in: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +[New in: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +[New in: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +[New in: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +[New in: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +[New in: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +[New in: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +[New in: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +[New in: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +[New in: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +[New in: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" +[NonFungibleTokensV1 amendment]: /resources/known-amendments.md#nonfungibletokensv1 +[NonFungibleTokensV1_1 amendment]: /resources/known-amendments.md#nonfungibletokensv1_1 +[NonFungibleTokensV1_1の修正]: /resources/known-amendments.md#nonfungibletokensv1_1 +[NonFungibleTokensV1の修正]: /resources/known-amendments.md#nonfungibletokensv1 +[Offer entry]: /references/protocol/ledger-data/ledger-entry-types/offer.md +[Offer object]: /references/protocol/ledger-data/ledger-entry-types/offer.md +[Offer エントリ]: /references/protocol/ledger-data/ledger-entry-types/offer.md +[Offer オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/offer.md +[OfferCancel transaction]: /references/protocol/transactions/types/offercancel.md +[OfferCancel transactions]: /references/protocol/transactions/types/offercancel.md +[OfferCancel トランザクション]: /references/protocol/transactions/types/offercancel.md +[OfferCancel]: /references/protocol/transactions/types/offercancel.md +[OfferCancelトランザクション]: /references/protocol/transactions/types/offercancel.md +[OfferCreate transaction]: /references/protocol/transactions/types/offercreate.md +[OfferCreate transactions]: /references/protocol/transactions/types/offercreate.md +[OfferCreate トランザクション]: /references/protocol/transactions/types/offercreate.md +[OfferCreate]: /references/protocol/transactions/types/offercreate.md +[OfferCreateトランザクション]: /references/protocol/transactions/types/offercreate.md +[Offerエントリ]: /references/protocol/ledger-data/ledger-entry-types/offer.md +[Offerオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/offer.md +[OwnerPaysFee amendment]: /resources/known-amendments.md#ownerpaysfee +[OwnerPaysFeeの修正]: /resources/known-amendments.md#ownerpaysfee +[PayChan amendment]: /resources/known-amendments.md#paychan +[PayChannel entry]: /references/protocol/ledger-data/ledger-entry-types/paychannel.md +[PayChannel object]: /references/protocol/ledger-data/ledger-entry-types/paychannel.md +[PayChannel エントリ]: /references/protocol/ledger-data/ledger-entry-types/paychannel.md +[PayChannel オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/paychannel.md +[PayChannelエントリ]: /references/protocol/ledger-data/ledger-entry-types/paychannel.md +[PayChannelオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/paychannel.md +[PayChanの修正]: /resources/known-amendments.md#paychan +[Payment transaction]: /references/protocol/transactions/types/payment.md +[Payment transactions]: /references/protocol/transactions/types/payment.md +[Payment トランザクション]: /references/protocol/transactions/types/payment.md +[PaymentChannelClaim transaction]: /references/protocol/transactions/types/paymentchannelclaim.md +[PaymentChannelClaim transactions]: /references/protocol/transactions/types/paymentchannelclaim.md +[PaymentChannelClaim トランザクション]: /references/protocol/transactions/types/paymentchannelclaim.md +[PaymentChannelClaim]: /references/protocol/transactions/types/paymentchannelclaim.md +[PaymentChannelClaimトランザクション]: /references/protocol/transactions/types/paymentchannelclaim.md +[PaymentChannelCreate transaction]: /references/protocol/transactions/types/paymentchannelcreate.md +[PaymentChannelCreate transactions]: /references/protocol/transactions/types/paymentchannelcreate.md +[PaymentChannelCreate トランザクション]: /references/protocol/transactions/types/paymentchannelcreate.md +[PaymentChannelCreate]: /references/protocol/transactions/types/paymentchannelcreate.md +[PaymentChannelCreateトランザクション]: /references/protocol/transactions/types/paymentchannelcreate.md +[PaymentChannelFund transaction]: /references/protocol/transactions/types/paymentchannelfund.md +[PaymentChannelFund transactions]: /references/protocol/transactions/types/paymentchannelfund.md +[PaymentChannelFund トランザクション]: /references/protocol/transactions/types/paymentchannelfund.md +[PaymentChannelFund]: /references/protocol/transactions/types/paymentchannelfund.md +[PaymentChannelFundトランザクション]: /references/protocol/transactions/types/paymentchannelfund.md +[Payment]: /references/protocol/transactions/types/payment.md +[Paymentトランザクション]: /references/protocol/transactions/types/payment.md +[RFC-1751]: https://tools.ietf.org/html/rfc1751 +[Removed in: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_RED" +[Removed in: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_RED" +[Removed in: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_RED" +[Removed in: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_RED" +[Removed in: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_RED" +[Removed in: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_RED" +[Removed in: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_RED" +[Removed in: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_RED" +[Removed in: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_RED" +[Removed in: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_RED" +[Removed in: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_RED" +[Removed in: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_RED" +[Removed in: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_RED" +[Removed in: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_RED" +[Removed in: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_RED" +[Removed in: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_RED" +[Removed in: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_RED" +[Removed in: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_RED" +[Removed in: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_RED" +[Removed in: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_RED" +[Removed in: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_RED" +[Removed in: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_RED" +[Removed in: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_RED" +[Removed in: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_RED" +[Removed in: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_RED" +[Removed in: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_RED" +[Removed in: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_RED" +[Removed in: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_RED" +[Removed in: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_RED" +[Removed in: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_RED" +[Removed in: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_RED" +[Removed in: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_RED" +[Removed in: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_RED" +[Removed in: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_RED" +[Removed in: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_RED" +[Removed in: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_RED" +[Removed in: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_RED" +[Removed in: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_RED" +[Removed in: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_RED" +[Removed in: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_RED" +[Removed in: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_RED" +[Removed in: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_RED" +[Removed in: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_RED" +[Removed in: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_RED" +[Reporting Mode]: /concepts/networks-and-servers/rippled-server-modes.md#reporting-mode +[RequireFullyCanonicalSig amendment]: /resources/known-amendments.md#requirefullycanonicalsig +[RequireFullyCanonicalSigの修正]: /resources/known-amendments.md#requirefullycanonicalsig +[RippleState entry]: /references/protocol/ledger-data/ledger-entry-types/ripplestate.md +[RippleState object]: /references/protocol/ledger-data/ledger-entry-types/ripplestate.md +[RippleState エントリ]: /references/protocol/ledger-data/ledger-entry-types/ripplestate.md +[RippleState オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/ripplestate.md +[RippleStateエントリ]: /references/protocol/ledger-data/ledger-entry-types/ripplestate.md +[RippleStateオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/ripplestate.md +[Rippleエポック以降の経過秒数]: /references/protocol/data-types/basic-data-types.md#時間の指定 +[SHA-512Half]: /references/protocol/data-types/basic-data-types.md#hashes +[SHA-512ハーフ]: /references/protocol/data-types/basic-data-types.md#ハッシュ +[SHAMapV2 amendment]: /resources/known-amendments.md#shamapv2 +[SHAMapV2の修正]: /resources/known-amendments.md#shamapv2 +[Sequence Number]: /references/protocol/data-types/basic-data-types.md#account-sequence +[SetFee pseudo-transaction]: /references/protocol/transactions/pseudo-transaction-types/setfee.md +[SetFee pseudo-transactions]: /references/protocol/transactions/pseudo-transaction-types/setfee.md +[SetFee]: /references/protocol/transactions/pseudo-transaction-types/setfee.md +[SetFee疑似トランザクション]: /references/protocol/transactions/pseudo-transaction-types/setfee.md +[SetRegularKey transaction]: /references/protocol/transactions/types/setregularkey.md +[SetRegularKey transactions]: /references/protocol/transactions/types/setregularkey.md +[SetRegularKey トランザクション]: /references/protocol/transactions/types/setregularkey.md +[SetRegularKey]: /references/protocol/transactions/types/setregularkey.md +[SetRegularKeyトランザクション]: /references/protocol/transactions/types/setregularkey.md +[SignerList entry]: /references/protocol/ledger-data/ledger-entry-types/signerlist.md +[SignerList object]: /references/protocol/ledger-data/ledger-entry-types/signerlist.md +[SignerList エントリ]: /references/protocol/ledger-data/ledger-entry-types/signerlist.md +[SignerList オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/signerlist.md +[SignerListSet transaction]: /references/protocol/transactions/types/signerlistset.md +[SignerListSet transactions]: /references/protocol/transactions/types/signerlistset.md +[SignerListSet トランザクション]: /references/protocol/transactions/types/signerlistset.md +[SignerListSet]: /references/protocol/transactions/types/signerlistset.md +[SignerListSetトランザクション]: /references/protocol/transactions/types/signerlistset.md +[SignerListエントリ]: /references/protocol/ledger-data/ledger-entry-types/signerlist.md +[SignerListオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/signerlist.md +[SortedDirectories amendment]: /resources/known-amendments.md#sorteddirectories +[SortedDirectoriesの修正]: /resources/known-amendments.md#sorteddirectories +[Specifying Currency Amounts]: /references/protocol/data-types/basic-data-types.md#specifying-currency-amounts +[Specifying Ledgers]: /references/protocol/data-types/basic-data-types.md#specifying-ledgers +[Specifying Time]: /references/protocol/data-types/basic-data-types.md#specifying-time +[SusPay amendment]: /resources/known-amendments.md#suspay +[SusPayの修正]: /resources/known-amendments.md#suspay +[TickSize amendment]: /resources/known-amendments.md#ticksize +[TickSizeの修正]: /resources/known-amendments.md#ticksize +[Ticket entry]: /references/protocol/ledger-data/ledger-entry-types/ticket.md +[Ticket object]: /references/protocol/ledger-data/ledger-entry-types/ticket.md +[Ticket エントリ]: /references/protocol/ledger-data/ledger-entry-types/ticket.md +[Ticket オブジェクト]: /references/protocol/ledger-data/ledger-entry-types/ticket.md +[TicketBatch amendment]: /resources/known-amendments.md#ticketbatch +[TicketBatchの修正]: /resources/known-amendments.md#ticketbatch +[TicketCreate transaction]: /references/protocol/transactions/types/ticketcreate.md +[TicketCreate transactions]: /references/protocol/transactions/types/ticketcreate.md +[TicketCreate トランザクション]: /references/protocol/transactions/types/ticketcreate.md +[TicketCreate]: /references/protocol/transactions/types/ticketcreate.md +[TicketCreateトランザクション]: /references/protocol/transactions/types/ticketcreate.md +[Tickets amendment]: /resources/known-amendments.md#tickets +[Ticketsの修正]: /resources/known-amendments.md#tickets +[Ticketエントリ]: /references/protocol/ledger-data/ledger-entry-types/ticket.md +[Ticketオブジェクト]: /references/protocol/ledger-data/ledger-entry-types/ticket.md +[Transaction Cost]: /concepts/transactions/transaction-cost.md +[TrustSet transaction]: /references/protocol/transactions/types/trustset.md +[TrustSet transactions]: /references/protocol/transactions/types/trustset.md +[TrustSet トランザクション]: /references/protocol/transactions/types/trustset.md +[TrustSetAuth amendment]: /resources/known-amendments.md#trustsetauth +[TrustSetAuthの修正]: /resources/known-amendments.md#trustsetauth +[TrustSet]: /references/protocol/transactions/types/trustset.md +[TrustSetトランザクション]: /references/protocol/transactions/types/trustset.md +[UNLModify pseudo-transaction]: /references/protocol/transactions/pseudo-transaction-types/unlmodify.md +[UNLModify pseudo-transactions]: /references/protocol/transactions/pseudo-transaction-types/unlmodify.md +[UNLModify]: /references/protocol/transactions/pseudo-transaction-types/unlmodify.md +[UNLModify疑似トランザクション]: /references/protocol/transactions/pseudo-transaction-types/unlmodify.md +[Updated in: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +[Updated in: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +[Updated in: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +[Updated in: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +[Updated in: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +[Updated in: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +[Updated in: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +[Updated in: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +[Updated in: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +[Updated in: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +[Updated in: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +[Updated in: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +[Updated in: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +[Updated in: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +[Updated in: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +[Updated in: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +[Updated in: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +[Updated in: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +[Updated in: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +[Updated in: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +[Updated in: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +[Updated in: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +[Updated in: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +[Updated in: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +[Updated in: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +[Updated in: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +[Updated in: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +[Updated in: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +[Updated in: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +[Updated in: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +[Updated in: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +[Updated in: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +[Updated in: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +[Updated in: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +[Updated in: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +[Updated in: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +[Updated in: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +[Updated in: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +[Updated in: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +[Updated in: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +[Updated in: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +[Updated in: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +[Updated in: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +[Updated in: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" +[XChainBridge amendment]: /resources/known-amendments.md#xchainbridge +[XChainBridgeの修正]: /resources/known-amendments.md#xchainbridge +[XRP, in drops]: /references/protocol/data-types/basic-data-types.md#specifying-currency-amounts +[XRPFees amendment]: /resources/known-amendments.md#xrpfees +[XRPFeesの修正]: /resources/known-amendments.md#xrpfees +[XRP、drop単位]: /references/protocol/data-types/basic-data-types.md#通貨額の指定 +[XRPのdrop数]: /references/protocol/data-types/basic-data-types.md#通貨額の指定 +[account_channels command]: /references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +[account_channels method]: /references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +[account_channels メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +[account_channelsメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +[account_currencies command]: /references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +[account_currencies method]: /references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +[account_currencies メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +[account_currenciesメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +[account_info command]: /references/http-websocket-apis/public-api-methods/account-methods/account_info.md +[account_info method]: /references/http-websocket-apis/public-api-methods/account-methods/account_info.md +[account_info メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_info.md +[account_infoメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_info.md +[account_lines command]: /references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +[account_lines method]: /references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +[account_lines メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +[account_linesメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +[account_nfts command]: /references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +[account_nfts method]: /references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +[account_nfts メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +[account_nftsメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +[account_objects command]: /references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +[account_objects method]: /references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +[account_objects メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +[account_objectsメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +[account_offers command]: /references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +[account_offers method]: /references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +[account_offers メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +[account_offersメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +[account_tx command]: /references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +[account_tx method]: /references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +[account_tx メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +[account_txメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +[admin command]: /references/http-websocket-apis/admin-api-methods/index.md +[amm_info command]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +[amm_info method]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +[amm_info メソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +[amm_infoメソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +[base58]: /references/protocol/data-types/base58-encodings.md +[book_offers command]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +[book_offers method]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +[book_offers メソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +[book_offersメソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +[can_delete command]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +[can_delete method]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +[can_delete メソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +[can_deleteメソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +[channel_authorize command]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +[channel_authorize method]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +[channel_authorize メソッド]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +[channel_authorizeメソッド]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +[channel_verify command]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +[channel_verify method]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +[channel_verify メソッド]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +[channel_verifyメソッド]: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +[common fields]: /references/protocol/transactions/common-fields.md +[connect command]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +[connect method]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +[connect メソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +[connectメソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +[consensus_info command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +[consensus_info method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +[consensus_info メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +[consensus_infoメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +[crawl_shards command]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md +[crawl_shards method]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md +[crawl_shards メソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md +[crawl_shardsメソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md +[crypto-condition]: https://tools.ietf.org/html/draft-thomas-crypto-conditions-04 +[crypto-conditions]: https://tools.ietf.org/html/draft-thomas-crypto-conditions-04 +[deposit_authorized command]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +[deposit_authorized method]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +[deposit_authorized メソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +[deposit_authorizedメソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +[download_shard command]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md +[download_shard method]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md +[download_shard メソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md +[download_shardメソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md +[drops of XRP]: /references/protocol/data-types/basic-data-types.md#specifying-currency-amounts +[feature command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +[feature method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +[feature メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +[featureメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +[fee command]: /references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +[fee levels]: /concepts/transactions/transaction-cost.md#fee-levels +[fee method]: /references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +[fee メソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +[feeメソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +[fetch_info command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +[fetch_info method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +[fetch_info メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +[fetch_infoメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +[fix1201 amendment]: /resources/known-amendments.md#fix1201 +[fix1201の修正]: /resources/known-amendments.md#fix1201 +[fix1368 amendment]: /resources/known-amendments.md#fix1368 +[fix1368の修正]: /resources/known-amendments.md#fix1368 +[fix1373 amendment]: /resources/known-amendments.md#fix1373 +[fix1373の修正]: /resources/known-amendments.md#fix1373 +[fix1512 amendment]: /resources/known-amendments.md#fix1512 +[fix1512の修正]: /resources/known-amendments.md#fix1512 +[fix1513 amendment]: /resources/known-amendments.md#fix1513 +[fix1513の修正]: /resources/known-amendments.md#fix1513 +[fix1515 amendment]: /resources/known-amendments.md#fix1515 +[fix1515の修正]: /resources/known-amendments.md#fix1515 +[fix1523 amendment]: /resources/known-amendments.md#fix1523 +[fix1523の修正]: /resources/known-amendments.md#fix1523 +[fix1528 amendment]: /resources/known-amendments.md#fix1528 +[fix1528の修正]: /resources/known-amendments.md#fix1528 +[fix1543 amendment]: /resources/known-amendments.md#fix1543 +[fix1543の修正]: /resources/known-amendments.md#fix1543 +[fix1571 amendment]: /resources/known-amendments.md#fix1571 +[fix1571の修正]: /resources/known-amendments.md#fix1571 +[fix1578 amendment]: /resources/known-amendments.md#fix1578 +[fix1578の修正]: /resources/known-amendments.md#fix1578 +[fix1623 amendment]: /resources/known-amendments.md#fix1623 +[fix1623の修正]: /resources/known-amendments.md#fix1623 +[fixCheckThreading amendment]: /resources/known-amendments.md#fixcheckthreading +[fixCheckThreadingの修正]: /resources/known-amendments.md#fixcheckthreading +[fixDisallowIncomingV1 amendment]: /resources/known-amendments.md#fixdisallowincomingv1 +[fixDisallowIncomingV1の修正]: /resources/known-amendments.md#fixdisallowincomingv1 +[fixFillOrKill amendment]: /resources/known-amendments.md#fixfillorkill +[fixFillOrKillの修正]: /resources/known-amendments.md#fixfillorkill +[fixMasterKeyAsRegularKey amendment]: /resources/known-amendments.md#fixmasterkeyasregularkey +[fixMasterKeyAsRegularKeyの修正]: /resources/known-amendments.md#fixmasterkeyasregularkey +[fixNFTokenDirV1 amendment]: /resources/known-amendments.md#fixnftokendirv1 +[fixNFTokenDirV1の修正]: /resources/known-amendments.md#fixnftokendirv1 +[fixNFTokenRemint amendment]: /resources/known-amendments.md#fixnftokenremint +[fixNFTokenRemintの修正]: /resources/known-amendments.md#fixnftokenremint +[fixPayChanRecipientOwnerDir amendment]: /resources/known-amendments.md#fixpaychanrecipientownerdir +[fixPayChanRecipientOwnerDirの修正]: /resources/known-amendments.md#fixpaychanrecipientownerdir +[fixQualityUpperBound amendment]: /resources/known-amendments.md#fixqualityupperbound +[fixQualityUpperBoundの修正]: /resources/known-amendments.md#fixqualityupperbound +[fixRemoveNFTokenAutoTrustLine amendment]: /resources/known-amendments.md#fixremovenftokenautotrustline +[fixRemoveNFTokenAutoTrustLineの修正]: /resources/known-amendments.md#fixremovenftokenautotrustline +[fixTakerDryOfferRemoval amendment]: /resources/known-amendments.md#fixtakerdryofferremoval +[fixTakerDryOfferRemovalの修正]: /resources/known-amendments.md#fixtakerdryofferremoval +[fixTrustLinesToSelf amendment]: /resources/known-amendments.md#fixtrustlinestoself +[fixTrustLinesToSelfの修正]: /resources/known-amendments.md#fixtrustlinestoself +[gateway_balances command]: /references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +[gateway_balances method]: /references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +[gateway_balances メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +[gateway_balancesメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +[get_counts command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +[get_counts method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +[get_counts メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +[get_countsメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +[hexadecimal]: https://en.wikipedia.org/wiki/Hexadecimal +[identifying hash]: /concepts/transactions/index.md#identifying-transactions +[json command]: /references/http-websocket-apis/public-api-methods/utility-methods/json.md +[json method]: /references/http-websocket-apis/public-api-methods/utility-methods/json.md +[json メソッド]: /references/http-websocket-apis/public-api-methods/utility-methods/json.md +[jsonメソッド]: /references/http-websocket-apis/public-api-methods/utility-methods/json.md +[ledger command]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +[ledger format]: /references/protocol/ledger-data/ledger-entry-types/index.md +[ledger index]: /references/protocol/data-types/basic-data-types.md#ledger-index +[ledger method]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +[ledger メソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +[ledger_accept command]: /references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +[ledger_accept method]: /references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +[ledger_accept メソッド]: /references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +[ledger_acceptメソッド]: /references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +[ledger_cleaner command]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +[ledger_cleaner method]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +[ledger_cleaner メソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +[ledger_cleanerメソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +[ledger_closed command]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +[ledger_closed method]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +[ledger_closed メソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +[ledger_closedメソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +[ledger_current command]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +[ledger_current method]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +[ledger_current メソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +[ledger_currentメソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +[ledger_data command]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +[ledger_data method]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +[ledger_data メソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +[ledger_dataメソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +[ledger_entry command]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +[ledger_entry method]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +[ledger_entry メソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +[ledger_entryメソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +[ledger_request command]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +[ledger_request method]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +[ledger_request メソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +[ledger_requestメソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +[ledgerメソッド]: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +[log_level command]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +[log_level method]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +[log_level メソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +[log_levelメソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +[logrotate command]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +[logrotate method]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +[logrotate メソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +[logrotateメソッド]: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +[manifest command]: /references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +[manifest method]: /references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +[manifest メソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +[manifestメソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +[nft_buy_offers command]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +[nft_buy_offers method]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +[nft_buy_offers メソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +[nft_buy_offersメソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +[nft_info command]: /references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +[nft_info method]: /references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +[nft_info メソッド]: /references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +[nft_infoメソッド]: /references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +[nft_sell_offers command]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +[nft_sell_offers method]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +[nft_sell_offers メソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +[nft_sell_offersメソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +[node key pair]: /concepts/networks-and-servers/peer-protocol.md#node-key-pair +[node public key]: /concepts/networks-and-servers/peer-protocol.md#node-key-pair +[noripple_check command]: /references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +[noripple_check method]: /references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +[noripple_check メソッド]: /references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +[noripple_checkメソッド]: /references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +[path_find command]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +[path_find method]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +[path_find メソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +[path_findメソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +[peer reservation]: /concepts/networks-and-servers/peer-protocol.md#fixed-peers-and-peer-reservations +[peer reservations]: /concepts/networks-and-servers/peer-protocol.md#fixed-peers-and-peer-reservations +[peer_reservations_add command]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +[peer_reservations_add method]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +[peer_reservations_add メソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +[peer_reservations_addメソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +[peer_reservations_del command]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +[peer_reservations_del method]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +[peer_reservations_del メソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +[peer_reservations_delメソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +[peer_reservations_list command]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +[peer_reservations_list method]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +[peer_reservations_list メソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +[peer_reservations_listメソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +[peers command]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +[peers method]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +[peers メソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +[peersメソッド]: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +[ping command]: /references/http-websocket-apis/public-api-methods/utility-methods/ping.md +[ping method]: /references/http-websocket-apis/public-api-methods/utility-methods/ping.md +[ping メソッド]: /references/http-websocket-apis/public-api-methods/utility-methods/ping.md +[pingメソッド]: /references/http-websocket-apis/public-api-methods/utility-methods/ping.md +[print command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +[print method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +[print メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +[printメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +[public servers]: /tutorials/get-started/public-servers.md +[random command]: /references/http-websocket-apis/public-api-methods/utility-methods/random.md +[random method]: /references/http-websocket-apis/public-api-methods/utility-methods/random.md +[random メソッド]: /references/http-websocket-apis/public-api-methods/utility-methods/random.md +[randomメソッド]: /references/http-websocket-apis/public-api-methods/utility-methods/random.md +[result code]: /references/protocol/transactions/transaction-results/transaction-results.md +[ripple-lib]: https://github.com/XRPLF/xrpl.js +[ripple_path_find command]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +[ripple_path_find method]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +[ripple_path_find メソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +[ripple_path_findメソッド]: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +[seconds since the Ripple Epoch]: /references/protocol/data-types/basic-data-types.md#specifying-time +[server_info command]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +[server_info method]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +[server_info メソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +[server_infoメソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +[server_state command]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +[server_state method]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +[server_state メソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +[server_stateメソッド]: /references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +[sign command]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +[sign method]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +[sign メソッド]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +[sign_for command]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +[sign_for method]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +[sign_for メソッド]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +[sign_forメソッド]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +[signメソッド]: /references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +[stand-alone mode]: /concepts/networks-and-servers/rippled-server-modes.md#stand-alone-mode +[standard format]: /references/http-websocket-apis/api-conventions/response-formatting.md +[stop command]: /references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +[stop method]: /references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +[stop メソッド]: /references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +[stopメソッド]: /references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +[submit command]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +[submit method]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +[submit メソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +[submit_multisigned command]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +[submit_multisigned method]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +[submit_multisigned メソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +[submit_multisignedメソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +[submitメソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +[subscribe command]: /references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +[subscribe method]: /references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +[subscribe メソッド]: /references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +[subscribeメソッド]: /references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +[transaction cost]: /concepts/transactions/transaction-cost.md +[transaction_entry command]: /references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +[transaction_entry method]: /references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +[transaction_entry メソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +[transaction_entryメソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +[tx command]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +[tx method]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +[tx メソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +[tx_history command]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +[tx_history method]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +[tx_history メソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +[tx_historyメソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +[txメソッド]: /references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +[universal error types]: /references/http-websocket-apis/api-conventions/error-formatting.md#universal-errors +[unsubscribe command]: /references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +[unsubscribe method]: /references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +[unsubscribe メソッド]: /references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +[unsubscribeメソッド]: /references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +[validation_create command]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +[validation_create method]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +[validation_create メソッド]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +[validation_createメソッド]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +[validation_seed command]: /references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +[validation_seed method]: /references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +[validation_seed メソッド]: /references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +[validation_seedメソッド]: /references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +[validator_info command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +[validator_info method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +[validator_info メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +[validator_infoメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +[validator_list_sites command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +[validator_list_sites method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +[validator_list_sites メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +[validator_list_sitesメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +[validators command]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +[validators method]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +[validators メソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +[validatorsメソッド]: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +[wallet_propose command]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +[wallet_propose method]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +[wallet_propose メソッド]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +[wallet_proposeメソッド]: /references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +[アドレス]: /references/protocol/data-types/basic-data-types.md#アドレス +[シーケンス番号]: /references/protocol/data-types/basic-data-types.md#アカウントシーケンス +[スタンドアロンモード]: /concepts/networks-and-servers/rippled-server-modes.md#スタンドアロンモード +[トランザクションコスト]: /concepts/transactions/transaction-cost.md +[ノードキーペア]: /concepts/networks-and-servers/peer-protocol.md#ノードキーペア +[ノード公開鍵]: /concepts/networks-and-servers/peer-protocol.md#ノードキーペア +[ハッシュ]: /references/protocol/data-types/basic-data-types.md#ハッシュ +[ピアリザベーション]: /concepts/networks-and-servers/peer-protocol.md#固定ピアとピアリザベーション +[マーカー]: /references/http-websocket-apis/api-conventions/markers-and-pagination.md +[レジャーの指定]: /references/protocol/data-types/basic-data-types.md#レジャーの指定 +[レジャーインデックス]: /references/protocol/data-types/basic-data-types.md#レジャーインデックス +[レジャーフォーマット]: /references/protocol/ledger-data/index.md +[レポートモード]: /concepts/networks-and-servers/rippled-server-modes.md#レポートモード +[公開サーバー]: /tutorials/get-started/public-servers.md +[共通フィールド]: /references/protocol/transactions/common-fields.md +[内部の型]: /references/protocol/binary-format.md +[削除: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_RED" +[削除: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_RED" +[削除: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_RED" +[削除: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_RED" +[削除: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_RED" +[削除: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_RED" +[削除: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_RED" +[削除: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_RED" +[削除: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_RED" +[削除: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_RED" +[削除: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_RED" +[削除: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_RED" +[削除: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_RED" +[削除: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_RED" +[削除: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_RED" +[削除: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_RED" +[削除: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_RED" +[削除: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_RED" +[削除: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_RED" +[削除: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_RED" +[削除: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_RED" +[削除: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_RED" +[削除: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_RED" +[削除: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_RED" +[削除: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_RED" +[削除: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_RED" +[削除: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_RED" +[削除: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_RED" +[削除: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_RED" +[削除: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_RED" +[削除: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_RED" +[削除: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_RED" +[削除: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_RED" +[削除: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_RED" +[削除: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_RED" +[削除: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_RED" +[削除: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_RED" +[削除: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_RED" +[削除: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_RED" +[削除: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_RED" +[削除: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_RED" +[削除: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_RED" +[削除: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_RED" +[削除: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_RED" +[導入: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +[導入: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +[導入: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +[導入: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +[導入: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +[導入: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +[導入: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +[導入: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +[導入: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +[導入: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +[導入: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +[導入: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +[導入: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +[導入: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +[導入: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +[導入: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +[導入: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +[導入: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +[導入: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +[導入: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +[導入: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +[導入: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +[導入: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +[導入: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +[導入: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +[導入: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +[導入: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +[導入: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +[導入: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +[導入: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +[導入: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +[導入: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +[導入: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +[導入: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +[導入: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +[導入: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +[導入: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +[導入: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +[導入: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +[導入: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +[導入: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +[導入: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +[導入: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +[導入: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" +[手数料レベル]: /concepts/transactions/transaction-cost.md#手数料レベル +[新規: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +[新規: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +[新規: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +[新規: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +[新規: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +[新規: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +[新規: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +[新規: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +[新規: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +[新規: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +[新規: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +[新規: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +[新規: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +[新規: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +[新規: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +[新規: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +[新規: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +[新規: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +[新規: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +[新規: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +[新規: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +[新規: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +[新規: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +[新規: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +[新規: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +[新規: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +[新規: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +[新規: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +[新規: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +[新規: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +[新規: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +[新規: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +[新規: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +[新規: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +[新規: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +[新規: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +[新規: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +[新規: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +[新規: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +[新規: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +[新規: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +[新規: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +[新規: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +[新規: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" +[時間の指定]: /references/protocol/data-types/basic-data-types.md#時間の指定 +[更新: rippled 0.26.0]: https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +[更新: rippled 0.26.1]: https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +[更新: rippled 0.26.2]: https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +[更新: rippled 0.26.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +[更新: rippled 0.26.4-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +[更新: rippled 0.26.4]: https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +[更新: rippled 0.27.0]: https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +[更新: rippled 0.27.1]: https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +[更新: rippled 0.27.2]: https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +[更新: rippled 0.27.3-sp1]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +[更新: rippled 0.27.3-sp2]: https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +[更新: rippled 0.27.3]: https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +[更新: rippled 0.27.4]: https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +[更新: rippled 0.28.0]: https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +[更新: rippled 0.28.2]: https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +[更新: rippled 0.29.0-hf1]: https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +[更新: rippled 0.29.0]: https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +[更新: rippled 0.30.0]: https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +[更新: rippled 0.30.1]: https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +[更新: rippled 0.31.0]: https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +[更新: rippled 0.32.0]: https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +[更新: rippled 0.32.1]: https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +[更新: rippled 0.33.0]: https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +[更新: rippled 0.50.0]: https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +[更新: rippled 0.70.0]: https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +[更新: rippled 0.70.2]: https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +[更新: rippled 0.80.0]: https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +[更新: rippled 0.80.1]: https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +[更新: rippled 0.90.0]: https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +[更新: rippled 1.0.0]: https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +[更新: rippled 1.1.0]: https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +[更新: rippled 1.10.0]: https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +[更新: rippled 1.11.0]: https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +[更新: rippled 1.12.0]: https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +[更新: rippled 1.2.0]: https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +[更新: rippled 1.2.1]: https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +[更新: rippled 1.3.1]: https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +[更新: rippled 1.4.0]: https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +[更新: rippled 1.5.0]: https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +[更新: rippled 1.6.0]: https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +[更新: rippled 1.7.0]: https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +[更新: rippled 1.7.2]: https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +[更新: rippled 1.8.1]: https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +[更新: rippled 2.0.0]: https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" +[標準フォーマット]: /references/http-websocket-apis/api-conventions/response-formatting.md +[汎用エラータイプ]: /references/http-websocket-apis/api-conventions/error-formatting.md#汎用エラー +[識別用ハッシュ]: /concepts/transactions/index.md#トランザクションの識別 +[通貨コード]: /references/protocol/data-types/currency-formats.md#通貨コード +[通貨額]: /references/protocol/data-types/basic-data-types.md#通貨額の指定 +[通貨額の指定]: /references/protocol/data-types/basic-data-types.md#通貨額の指定 diff --git a/content/_snippets/conf-file-location.ja.md b/content/_snippets/conf-file-location.ja.md deleted file mode 100644 index 032ab6d956..0000000000 --- a/content/_snippets/conf-file-location.ja.md +++ /dev/null @@ -1 +0,0 @@ -[推奨インストール](install-rippled.html)では、デフォルトで`/etc/opt/ripple/rippled.cfg`という設定ファイルを使用します。その他の場所としては、`$HOME/.config/ripple/rippled.cfg`(`$HOME`は`rippled`を実行しているユーザーのホームディレクトリです)、`$HOME/.local/ripple/rippled.cfg`または`rippled`を起動した現在の作業ディレクトリがあります。 diff --git a/content/_snippets/conf-file-location.md b/content/_snippets/conf-file-location.md index b878ca4914..9e2792ffa0 100644 --- a/content/_snippets/conf-file-location.md +++ b/content/_snippets/conf-file-location.md @@ -1 +1 @@ -The [recommended installation](install-rippled.html) uses the config file `/etc/opt/ripple/rippled.cfg` by default. Other places you can put a config file include `$HOME/.config/ripple/rippled.cfg` (where `$HOME` is the home directory of the user running `rippled`), `$HOME/.local/ripple/rippled.cfg`, or the current working directory from where you start `rippled`. +The [recommended installation](../infrastructure/installation/index.md) uses the config file `/etc/opt/ripple/rippled.cfg` by default. Other places you can put a config file include `$HOME/.config/ripple/rippled.cfg` (where `$HOME` is the home directory of the user running `rippled`), `$HOME/.local/ripple/rippled.cfg`, or the current working directory from where you start `rippled`. diff --git a/content/_snippets/data_types/account_sequence.ja.md b/content/_snippets/data_types/account_sequence.ja.md deleted file mode 100644 index f7d98a2dd7..0000000000 --- a/content/_snippets/data_types/account_sequence.ja.md +++ /dev/null @@ -1,11 +0,0 @@ -シーケンス番号とは、32ビットの符号なし整数であり、指定された送金元からのトランザクションが正しい順序で1回だけ実行されるようにするために使用されます。 - -すべての[XRP Ledgerアカウント](accounts.html)には、`Sequence`フィールドに1つのシーケンス番号があり、アカウントがトランザクションを送信し、そのトランザクションが[検証済みレジャー](ledgers.html)に記録されるたびに、1ずつ増加します。シーケンス番号は各[トランザクション](transactions.html)の`Sequence`フィールドにもあり、そのトランザクションが実行される際にアカウントの現在のシーケンス番号と一致している必要があります。各アカウントで、各シーケンス番号は番号順に一度だけ使用できます。 - -[DeletableAccounts Amendment](known-amendments.html#deletableaccounts) を適用する場合、アカウントの`Sequence`番号の始まりが、アカウントが作成されたレジャーバージョンの[レジャーインデックス][]と一致します。DeletableAccountsを適用しない場合、どのアカウントの`Sequence`番号も1で始まります。 - -トランザクションがレジャーに記録されると、トランザクションの実行が成功したか[`tec`クラスのエラーコード](tec-codes.html)で失敗したかを問わず、シーケンス番号が1つ消費されます。トランザクションのその他の失敗についてはレジャーに記録されないため、送金元のシーケンス番号は変更されません(その他の影響もありません)。 - -レジャー内では、[アドレス][]とシーケンス番号を一緒に使用して、その送金元とシーケンス番号を持つ検証済みトランザクションによって作成されたオブジェクトが識別されることがあります。この方法で識別されたオブジェクトの例として、[Escrow](escrow.html)と[オファー](offers.html)が挙げられます。 - -複数の未確定のトランザクションが、同じ送金元と同じシーケンス番号を持つことが可能です。そのようなトランザクションは互いに排他的であり、検証済みレジャーに記録されるのはいずれか一方のみです。(それ以外は最終的に影響ありません。) diff --git a/content/_snippets/data_types/account_sequence.md b/content/_snippets/data_types/account_sequence.md index 1284b2efb0..2a3d967f5b 100644 --- a/content/_snippets/data_types/account_sequence.md +++ b/content/_snippets/data_types/account_sequence.md @@ -1,13 +1,13 @@ A sequence number is a 32-bit unsigned integer that is used to make sure transactions from a given sender execute only once each, and in the correct order. -Every [account in the XRP Ledger](accounts.html) has a sequence number in its `Sequence` field, which increases by 1 whenever that account sends a transaction and that transaction gets included in a [validated ledger](ledgers.html). Each [transaction](transactions.html) also has a sequence number in its `Sequence` field, which must match the account's current sequence number when the transaction executes. For each account, each sequence number can only be used once, in numerical order. +Every [account in the XRP Ledger](../../concepts/accounts/accounts.md) has a sequence number in its `Sequence` field, which increases by 1 whenever that account sends a transaction and that transaction gets included in a [validated ledger](../../concepts/ledgers/index.md). Each [transaction](../../concepts/transactions/index.md) also has a sequence number in its `Sequence` field, which must match the account's current sequence number when the transaction executes. For each account, each sequence number can only be used once, in numerical order. -[Tickets](tickets.html) make some exceptions from these rules so that it is possible to send transactions out of the normal order. Tickets represent sequence numbers reserved for later use; a transaction can use a Ticket instead of a normal sequence number. +[Tickets](../../concepts/accounts/tickets.md) make some exceptions from these rules so that it is possible to send transactions out of the normal order. Tickets represent sequence numbers reserved for later use; a transaction can use a Ticket instead of a normal sequence number. -With the [DeletableAccounts amendment](known-amendments.html#deletableaccounts), the starting `Sequence` number for an account matches the [Ledger Index][] of the ledger version where the account was created. Before DeletableAccounts, every account started with `Sequence` number 1. +With the [DeletableAccounts amendment](../../resources/known-amendments.md#deletableaccounts), the starting `Sequence` number for an account matches the [Ledger Index][] of the ledger version where the account was created. Before DeletableAccounts, every account started with `Sequence` number 1. -Whenever a transaction is included in a ledger, it uses up a sequence number (or Ticket) regardless of whether the transaction executed successfully or failed with a [`tec`-class error code](tec-codes.html). Other transaction failures don't get included in ledgers, so they don't change the sender's sequence number (or have any other effects). +Whenever a transaction is included in a ledger, it uses up a sequence number (or Ticket) regardless of whether the transaction executed successfully or failed with a [`tec`-class error code](../../references/protocol/transactions/transaction-results/tec-codes.md). Other transaction failures don't get included in ledgers, so they don't change the sender's sequence number (or have any other effects). -Within the ledger, an [Address][] and a sequence number are sometimes used together to identify an object that was created by the validated transaction with that sender and sequence number. [Escrows](escrow.html) and [Offers](offers.html) are examples of objects identified this way. +Within the ledger, an [Address][] and a sequence number are sometimes used together to identify an object that was created by the validated transaction with that sender and sequence number. [Escrows](../../concepts/payment-types/escrow.md) and [Offers](../../concepts/tokens/decentralized-exchange/offers.md) are examples of objects identified this way. It is possible for multiple unconfirmed transactions to have the same sender and sequence number. Such transactions are mutually exclusive, and at most one of them can be included in a validated ledger. (Any others ultimately have no effect.) diff --git a/content/_snippets/data_types/address.ja.md b/content/_snippets/data_types/address.ja.md deleted file mode 100644 index 757664de90..0000000000 --- a/content/_snippets/data_types/address.ja.md +++ /dev/null @@ -1,12 +0,0 @@ -XRP Ledgerのアカウントは、XRP Ledgerの[base58][]フォーマットのアドレスで識別されます。このアドレスはアカウントのマスター[公開鍵](https://en.wikipedia.org/wiki/Public-key_cryptography)から生成され、マスター公開鍵は秘密鍵から生成されます。アドレスはJSON文字列で記述され、以下の特徴があります。 - -* 長さは25から35文字 -* 文字`r`から始まる -* 数字"`0`"、大文字"`O`"、大文字"`I`"、小文字"`l`"を除く英数字 -* 大文字と小文字を区別 -* 4バイトのチェックサムが含まれており、ランダムな文字から有効なアドレスが生成される確率はおよそ232分の1 - -> **注記:** [宛先タグ](source-and-destination-tags.html)をアドレスに「組み込む」**X**アドレス形式もあります。これらのアドレスは`X`(メインネット用)または`T`([テストネットワーク](parallel-networks.html)用)で始まります。取引所とウォレットは、顧客が知る必要のあるすべてのデータを1つの値で表すためにXアドレスを使用できます。詳細については、[Xアドレスフォーマットサイト](https://xrpaddress.info/)と[コーデック](https://github.com/xrp-community/xrpl-tagged-address-codec)をご覧ください -> -> XRP Ledgerプロトコルは「クラシック」アドレスのみをネイティブにサポートしていますが、多くの[クライアントライブラリ](client-libraries.html)はXアドレスもサポートしています。 - diff --git a/content/_snippets/data_types/address.md b/content/_snippets/data_types/address.md index c866e9df4d..c0163b8140 100644 --- a/content/_snippets/data_types/address.md +++ b/content/_snippets/data_types/address.md @@ -6,6 +6,8 @@ Accounts in the XRP Ledger are identified by an address in the XRP Ledger's [bas * Case-sensitive * Includes a 4-byte checksum so that the probability of generating a valid address from random characters is approximately 1 in 232 -> **Note:** There is also an **X**-address format that "packs" a [destination tag](source-and-destination-tags.html) into the address. These addresses start with an `X` (for Mainnet) or a `T` (for [test networks](parallel-networks.html)). Exchanges and wallets can use X-addresses to represent all the data a customer needs to know in one value. For more information, see the [X-address format site](https://xrpaddress.info/) and [codec](https://github.com/xrp-community/xrpl-tagged-address-codec). -> -> The XRP Ledger protocol only supports "classic" addresses natively, but many [client libraries](client-libraries.html) support X-addresses too. +{% admonition type="info" name="Note" %} +There is also an **X**-address format that "packs" a [destination tag](../../concepts/transactions/source-and-destination-tags.md) into the address. These addresses start with an `X` (for Mainnet) or a `T` (for [test networks](../../concepts/networks-and-servers/parallel-networks.md)). Exchanges and wallets can use X-addresses to represent all the data a customer needs to know in one value. For more information, see the [X-address format site](https://xrpaddress.info/) and [codec](https://github.com/xrp-community/xrpl-tagged-address-codec). + +The XRP Ledger protocol only supports "classic" addresses natively, but many [client libraries](../../references/client-libraries.md) support X-addresses too. +{% /admonition %} diff --git a/content/_snippets/data_types/currency_code.ja.md b/content/_snippets/data_types/currency_code.ja.md deleted file mode 100644 index a58018e1ca..0000000000 --- a/content/_snippets/data_types/currency_code.ja.md +++ /dev/null @@ -1,6 +0,0 @@ -[HTTP / WebSocket API](http-websocket-apis.html)は、2種類の通貨コードをサポートしています。 - -- **[標準通貨コード](currency-formats.html#標準通貨コード):** `"EUR"`や "USD"`のような3文字の文字列 -- **[非標準通貨コード](currency-formats.html#非標準通貨コード):** `"0158415500000000C1F76FFF6ECB0BAC600000000"`のような160ビットの16進数の文字列。これは一般的ではありません。 - -同じコードを持つトークンは、接続されたトラストラインを越えて[rippling(波及)](rippling.html)することができます。通貨コードには、XRP Ledgerに組み込まれた他の動作はありません。 diff --git a/content/_snippets/data_types/currency_code.md b/content/_snippets/data_types/currency_code.md index ffb0c9db76..e947ae17d0 100644 --- a/content/_snippets/data_types/currency_code.md +++ b/content/_snippets/data_types/currency_code.md @@ -1,6 +1,6 @@ -The [HTTP / WebSocket APIs](http-websocket-apis.html) support two formats of currency code: +The [HTTP / WebSocket APIs](../../references/http-websocket-apis/index.md) support two formats of currency code: -- **[Standard Currency Codes](currency-formats.html#standard-currency-codes):** As a 3-character string such as `"EUR"` or `"USD"`. -- **[Nonstandard Currency Codes](currency-formats.html#nonstandard-currency-codes):** As a 160-bit hexadecimal string, such as `"0158415500000000C1F76FF6ECB0BAC600000000"`. This is uncommon. +- **[Standard Currency Codes](../../references/protocol/data-types/currency-formats.md#standard-currency-codes):** As a 3-character string such as `"EUR"` or `"USD"`. +- **[Nonstandard Currency Codes](../../references/protocol/data-types/currency-formats.md#nonstandard-currency-codes):** As a 160-bit hexadecimal string, such as `"0158415500000000C1F76FF6ECB0BAC600000000"`. This is uncommon. -Tokens with the same code can [ripple](rippling.html) across connected trust lines. Currency codes have no other behavior built into the XRP Ledger. +Tokens with the same code can [ripple](../../concepts/tokens/fungible-tokens/rippling.md) across connected trust lines. Currency codes have no other behavior built into the XRP Ledger. diff --git a/content/_snippets/data_types/ledger_index.md b/content/_snippets/data_types/ledger_index.md index 1964201072..5594667efc 100644 --- a/content/_snippets/data_types/ledger_index.md +++ b/content/_snippets/data_types/ledger_index.md @@ -1,4 +1,4 @@ -A ledger index is a 32-bit unsigned integer used to identify a ledger. The ledger index is sometimes known as the ledger's _sequence number_. (This is different from an [account sequence](basic-data-types.html#account-sequence).) The very first ledger was ledger index 1, and each new ledger has a ledger index that is 1 higher than the ledger index of the ledger immediately before it. +A ledger index is a 32-bit unsigned integer used to identify a ledger. The ledger index is sometimes known as the ledger's _sequence number_. (This is different from an [account sequence](../../references/protocol/data-types/basic-data-types.md#account-sequence).) The very first ledger was ledger index 1, and each new ledger has a ledger index that is 1 higher than the ledger index of the ledger immediately before it. The ledger index indicates the order of the ledgers; the [Hash][] value identifies the exact contents of the ledger. Two ledgers with the same hash are always the same. For validated ledgers, hash values and ledger indexes are equally valid and correlate 1:1. However, this is not true for in-progress ledgers: diff --git a/content/_snippets/data_types/public_key.md b/content/_snippets/data_types/public_key.md index f562c246c9..517104a226 100644 --- a/content/_snippets/data_types/public_key.md +++ b/content/_snippets/data_types/public_key.md @@ -2,7 +2,7 @@ The XRP Ledger uses public keys to verify cryptographic signatures in several pl * To authorize transactions, a public key is attached to the transaction. The public key must be mathematically associated with the sending XRP Ledger address or the sender's regular key address. * To secure peer-to-peer communications between `rippled` servers. This uses a "node public key" that the server generates randomly when it starts with an empty database. -* To sign validation votes as part of the consensus process. This uses a "validator public key" that the server operator [defines in the config file](run-rippled-as-a-validator.html). +* To sign validation votes as part of the consensus process. This uses a "validator public key" that the server operator [defines in the config file](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md). Validator public keys and node public keys use the exact same format. diff --git a/content/_snippets/etl-source-object.md b/content/_snippets/etl-source-object.md index cd2230cb2c..6c44c8041e 100644 --- a/content/_snippets/etl-source-object.md +++ b/content/_snippets/etl-source-object.md @@ -10,4 +10,4 @@ On a reporting mode server, each member of the `etl_sources` field is an object | `ip` | String | The IP address (IPv4 or IPv6) of the P2P mode server. | | `last_message_arrival_time` | String | An ISO 8601 timestamp indicating the most recent time the reporting mode server received a message from this P2P server. | | `validated_ledgers_range` | String | The range of validated ledger versions this P2P mode server reports that it has available, in the same format as `complete_ledgers`. | -| `websocket_port` | String | The port number on the P2P server where this reporting mode server is configured to forward WebSocket requests that cannot be served directly from reporting mode. | \ No newline at end of file +| `websocket_port` | String | The port number on the P2P server where this reporting mode server is configured to forward WebSocket requests that cannot be served directly from reporting mode. | diff --git a/content/_snippets/interactive-tutorials/generate-step.md b/content/_snippets/interactive-tutorials/generate-step.md index 68bad689c9..bb35069063 100644 --- a/content/_snippets/interactive-tutorials/generate-step.md +++ b/content/_snippets/interactive-tutorials/generate-step.md @@ -12,4 +12,4 @@
      {{ end_step() }} -**Caution:** Ripple provides the [Testnet and Devnet](parallel-networks.html) for testing purposes only, and sometimes resets the state of these test networks along with all balances. As a precaution, **do not** use the same addresses on Testnet/Devnet and Mainnet. +**Caution:** Ripple provides the [Testnet and Devnet](../../concepts/networks-and-servers/parallel-networks.md) for testing purposes only, and sometimes resets the state of these test networks along with all balances. As a precaution, **do not** use the same addresses on Testnet/Devnet and Mainnet. diff --git a/content/_snippets/ledger-objects-intro.ja.md b/content/_snippets/ledger-objects-intro.ja.md deleted file mode 100644 index cd48b8a544..0000000000 --- a/content/_snippets/ledger-objects-intro.ja.md +++ /dev/null @@ -1,3 +0,0 @@ -各[レジャー](ledgers.html)の状態ツリーは**レジャーオブジェクト**のセットで構成されており、それらが総合して共有レジャーのすべての設定、残高、関係を表します。 - -rippledサーバーが互いに通信するために使用する[ピアプロトコル](peer-protocol.html)では、レジャーオブジェクトは生[バイナリーフォーマット](serialization.html)で表されます。rippled APIでは、レジャーオブジェクトはJSONオブジェクトとして表されます。 diff --git a/content/_snippets/ledger-objects-intro.md b/content/_snippets/ledger-objects-intro.md index 6e95483968..2d220c912a 100644 --- a/content/_snippets/ledger-objects-intro.md +++ b/content/_snippets/ledger-objects-intro.md @@ -1,5 +1,5 @@ -Each [ledger version](ledgers.html)'s state data is a set of **ledger objects**, sometimes called _ledger entries_, which collectively represent all settings, balances, and relationships at a given point in time. To store or retrieve an object in the state data, the protocol uses that object's unique **[Ledger Object ID](ledger-object-ids.html)**. +Each [ledger version](../concepts/ledgers/index.md)'s state data is a set of **ledger objects**, sometimes called _ledger entries_, which collectively represent all settings, balances, and relationships at a given point in time. To store or retrieve an object in the state data, the protocol uses that object's unique **[Ledger Object ID](../references/protocol/ledger-data/common-fields.md)**. -In the [peer protocol](peer-protocol.html), ledger objects have a [canonical binary format](serialization.html). In `rippled` APIs, ledger objects are represented as JSON objects. +In the [peer protocol](../concepts/networks-and-servers/peer-protocol.md), ledger objects have a [canonical binary format](../references/protocol/binary-format.md). In `rippled` APIs, ledger objects are represented as JSON objects. A ledger object's data fields depend on the type of object; the XRP Ledger supports the following types: diff --git a/content/_snippets/lowercase-types.md b/content/_snippets/lowercase-types.md index 6506de65f4..540685717c 100644 --- a/content/_snippets/lowercase-types.md +++ b/content/_snippets/lowercase-types.md @@ -1 +1 @@ -The valid types are: `account`, `amendments`, `amm` :not_enabled:, `check`, `deposit_preauth`, `directory`, `escrow`, `fee`, `hashes`, `nft_offer`, `offer`, `payment_channel`, `signer_list`, `state` (trust line), and `ticket`. \ No newline at end of file +The valid types are: `account`, `amendments`, `amm` {% not-enabled /%}, `check`, `deposit_preauth`, `directory`, `escrow`, `fee`, `hashes`, `nft_offer`, `offer`, `payment_channel`, `signer_list`, `state` (trust line), and `ticket`. diff --git a/content/_snippets/macros/page-children.md b/content/_snippets/macros/page-children.md index c65c23971b..8b13789179 100644 --- a/content/_snippets/macros/page-children.md +++ b/content/_snippets/macros/page-children.md @@ -1,16 +1 @@ -{% macro page_children(pg, depth, max_depth, show_blurbs) %} -{% if pg.children %} -{% if depth == 1 %}
        {% endif %} - {% for child in pg.children %} -
      • {{child.name}} - {% if child.status == "not_enabled" %}:not_enabled:{% endif %} -

        {{child.blurb}}

        -
      • - {% if child.children and depth < max_depth %} -{{ page_children(child, depth+1, max_depth, show_blurbs) }} - {% endif %} - {% endfor %} -{% if depth == 1 %}
      {% endif %} -{% endif %} -{% endmacro %} diff --git a/content/_snippets/no-cli-syntax.ja.md b/content/_snippets/no-cli-syntax.ja.md deleted file mode 100644 index cb57da1676..0000000000 --- a/content/_snippets/no-cli-syntax.ja.md +++ /dev/null @@ -1 +0,0 @@ -**注記:** このメソッドにはコマンドライン構文がありません。代わりに[jsonメソッド][]を使って、コマンドラインからこのメソッドにアクセスすることができます。 diff --git a/content/_snippets/no-cli-syntax.md b/content/_snippets/no-cli-syntax.md index a776a6cf79..2b49392b21 100644 --- a/content/_snippets/no-cli-syntax.md +++ b/content/_snippets/no-cli-syntax.md @@ -1 +1,3 @@ -**Note:** There is no commandline syntax for this method. You can use the [json method][] to access this method from the commandline instead. \ No newline at end of file +{% admonition type="info" name="Note" %} +There is no commandline syntax for this method. You can use the [json method][] to access this method from the commandline instead. +{% /admonition %} diff --git a/content/_snippets/port-descriptor-object.md b/content/_snippets/port-descriptor-object.md index 3d134b473e..50fe6ea605 100644 --- a/content/_snippets/port-descriptor-object.md +++ b/content/_snippets/port-descriptor-object.md @@ -6,6 +6,6 @@ Each member of the `ports` array is an object with the following fields: | Field | Value | Description | |------------|-----------------|-------------| | `port` | String - Number | A port number where the server is listening. | -| `protocol` | Array of String | A list of protocols being served on this port. Valid protocols include `http` or `https` for JSON-RPC, `ws`, `ws2`, `wss`, `wss2` for WebSocket, `grpc` for [gRPC](configure-grpc.html), and `peer` for the [XRP Ledger Peer Protocol](peer-protocol.html). | +| `protocol` | Array of String | A list of protocols being served on this port. Valid protocols include `http` or `https` for JSON-RPC, `ws`, `ws2`, `wss`, `wss2` for WebSocket, `grpc` for [gRPC](../infrastructure/configuration/configure-grpc.md), and `peer` for the [XRP Ledger Peer Protocol](../concepts/networks-and-servers/peer-protocol.md). | -**Note:** Depending on network infrastructure, the ports and protocols reported here may not match how the server can be reached from the outside network. For example, if TLS terminates at a load balancer or proxy, the server may report `http` on one port, but might only be reachable through `https` on port 443 from outside. \ No newline at end of file +**Note:** Depending on network infrastructure, the ports and protocols reported here may not match how the server can be reached from the outside network. For example, if TLS terminates at a load balancer or proxy, the server may report `http` on one port, but might only be reachable through `https` on port 443 from outside. diff --git a/content/_snippets/post-rippled-install.md b/content/_snippets/post-rippled-install.md index 2a17b339e4..e31a739ce7 100644 --- a/content/_snippets/post-rippled-install.md +++ b/content/_snippets/post-rippled-install.md @@ -1,24 +1,24 @@ -It can take several minutes to sync with the rest of the XRP Ledger network, during which time the server outputs various warnings. For information about log messages, see [Understanding Log Messages](understanding-log-messages.html). +It can take several minutes to sync with the rest of the XRP Ledger network, during which time the server outputs various warnings. For information about log messages, see [Understanding Log Messages](../infrastructure/troubleshooting/understanding-log-messages.md). -You can use the [`rippled` commandline interface](get-started-using-http-websocket-apis.html#commandline) to see if your server is synced with the network: +You can use the [`rippled` commandline interface](../tutorials/get-started/get-started-using-http-websocket-apis.md#commandline) to see if your server is synced with the network: ```sh rippled server_info ``` -If the `server_state` in the response is `full` or `proposing`, then your server is fully synced to the network. Otherwise, you may need to wait longer. Fresh servers usually sync within 15 minutes; servers that already have [ledger history](ledger-history.html) stored can take longer. +If the `server_state` in the response is `full` or `proposing`, then your server is fully synced to the network. Otherwise, you may need to wait longer. Fresh servers usually sync within 15 minutes; servers that already have [ledger history](../concepts/networks-and-servers/ledger-history.md) stored can take longer. -After your server has synchronized with the rest of the network, you have a fully functional XRP Ledger peer-to-peer server that you can use to submit transactions or get API access to the XRP Ledger. See [Client Libraries](client-libraries.html) or [HTTP / WebSocket APIs](http-websocket-apis.html) for different ways to communicate with the server. +After your server has synchronized with the rest of the network, you have a fully functional XRP Ledger peer-to-peer server that you can use to submit transactions or get API access to the XRP Ledger. See [Client Libraries](../references/client-libraries.md) or [HTTP / WebSocket APIs](../references/http-websocket-apis/index.md) for different ways to communicate with the server. -If you use the XRP Ledger for your business or you want to contribute to the stability of the network, you should run one server as a validator. For information about validating servers and why you might want to run one, see [Run rippled as a Validator](run-rippled-as-a-validator.html). +If you use the XRP Ledger for your business or you want to contribute to the stability of the network, you should run one server as a validator. For information about validating servers and why you might want to run one, see [Run rippled as a Validator](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md). -Having trouble getting your server started? See [rippled Server Won't Start](server-wont-start.html). +Having trouble getting your server started? See [rippled Server Won't Start](../infrastructure/troubleshooting/server-wont-start.md). ### Additional Configuration -`rippled` should connect to the XRP Ledger with the default configuration. However, you can change your settings by editing the `rippled.cfg` file. For recommendations about configuration settings, see [Capacity Planning](capacity-planning.html). +`rippled` should connect to the XRP Ledger with the default configuration. However, you can change your settings by editing the `rippled.cfg` file. For recommendations about configuration settings, see [Capacity Planning](../infrastructure/installation/capacity-planning.md). -{% include '_snippets/conf-file-location.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} See [the `rippled` GitHub repository](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg) for a description of all configuration options. @@ -31,4 +31,4 @@ If you change the `[debug_logfile]` or `[database_path]` sections, you may need You must update `rippled` regularly to remain synced with the rest of the XRP Ledger network. You can subscribe to the [rippled Google Group](https://groups.google.com/forum/#!forum/ripple-server) to receive notifications of new `rippled` releases. -The `rippled` package includes a script you can use to [enable automatic updates on Linux](update-rippled-automatically-on-linux.html). On other platforms, you must update manually. +The `rippled` package includes a script you can use to [enable automatic updates on Linux](../infrastructure/installation/update-rippled-automatically-on-linux.md). On other platforms, you must update manually. diff --git a/content/_snippets/pseudo-tx-fields-intro.md b/content/_snippets/pseudo-tx-fields-intro.md index 7f385b380f..4ca1faae6a 100644 --- a/content/_snippets/pseudo-tx-fields-intro.md +++ b/content/_snippets/pseudo-tx-fields-intro.md @@ -1,3 +1,3 @@ -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](pseudo-transaction-types.html), {{currentpage.name}} pseudo-transactions use the following fields: +In addition to the [common fields](../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md), {% $frontmatter.seo.title %} pseudo-transactions use the following fields: diff --git a/content/_snippets/public-signing-note.md b/content/_snippets/public-signing-note.md index 173dbcb22a..3332542b6c 100644 --- a/content/_snippets/public-signing-note.md +++ b/content/_snippets/public-signing-note.md @@ -1 +1 @@ -_By default, this method is [admin-only](admin-api-methods.html). It can be used as a public method if the server admin has [enabled public signing](enable-public-signing.html)._ +_By default, this method is [admin-only](../references/http-websocket-apis/admin-api-methods/index.md). It can be used as a public method if the server admin has [enabled public signing](../infrastructure/configuration/enable-public-signing.md)._ diff --git a/content/_snippets/rippled-api-links.md b/content/_snippets/rippled-api-links.md index 084eb17211..8b13789179 100644 --- a/content/_snippets/rippled-api-links.md +++ b/content/_snippets/rippled-api-links.md @@ -1,261 +1 @@ - -[Address]: basic-data-types.html#addresses -[アドレス]: basic-data-types.html#アドレス -[admin command]: admin-api-methods.html -[API v1]: request-formatting.html#api-versioning -[API v2]: request-formatting.html#api-versioning -[base58]: base58-encodings.html -[common fields]: transaction-common-fields.html -[共通フィールド]: transaction-common-fields.html -[Currency Amount]: basic-data-types.html#specifying-currency-amounts -[通貨額]: basic-data-types.html#通貨額の指定 -[通貨額の指定]: basic-data-types.html#通貨額の指定 -[Currency Code]: currency-formats.html#currency-codes -[通貨コード]: currency-formats.html#通貨コード -[drops of XRP]: basic-data-types.html#specifying-currency-amounts -[fee levels]: transaction-cost.html#fee-levels -[手数料レベル]: transaction-cost.html#手数料レベル -[XRPのdrop数]: basic-data-types.html#通貨額の指定 -[Hash]: basic-data-types.html#hashes -[ハッシュ]: basic-data-types.html#ハッシュ -[identifying hash]: transactions.html#identifying-transactions -[識別用ハッシュ]: transactions.html#トランザクションの識別 -[Internal Type]: serialization.html -[内部の型]: serialization.html -[Ledger Index]: basic-data-types.html#ledger-index -[ledger index]: basic-data-types.html#ledger-index -[レジャーインデックス]: basic-data-types.html#レジャーインデックス -[ledger format]: ledger-object-types.html -[レジャーフォーマット]: ledger-data-formats.html -[Marker]: markers-and-pagination.html -[マーカー]: markers-and-pagination.html -[node public key]: peer-protocol.html#node-key-pair -[ノード公開鍵]: peer-protocol.html#ノードキーペア -[node key pair]: peer-protocol.html#node-key-pair -[ノードキーペア]: peer-protocol.html#ノードキーペア -[peer reservation]: peer-protocol.html#fixed-peers-and-peer-reservations -[peer reservations]: peer-protocol.html#fixed-peers-and-peer-reservations -[ピアリザベーション]: peer-protocol.html#固定ピアとピアリザベーション -[public servers]: public-servers.html -[公開サーバー]: public-servers.html -[result code]: transaction-results.html -[seconds since the Ripple Epoch]: basic-data-types.html#specifying-time -[Reporting Mode]: rippled-server-modes.html#reporting-mode -[レポートモード]: rippled-server-modes.html#レポートモード -[Rippleエポック以降の経過秒数]: basic-data-types.html#時間の指定 -[Sequence Number]: basic-data-types.html#account-sequence -[シーケンス番号]: basic-data-types.html#アカウントシーケンス -[SHA-512Half]: basic-data-types.html#hashes -[SHA-512ハーフ]: basic-data-types.html#ハッシュ -[Specifying Currency Amounts]: basic-data-types.html#specifying-currency-amounts -[Specifying Ledgers]: basic-data-types.html#specifying-ledgers -[レジャーの指定]: basic-data-types.html#レジャーの指定 -[Specifying Time]: basic-data-types.html#specifying-time -[時間の指定]: basic-data-types.html#時間の指定 -[stand-alone mode]: rippled-server-modes.html#stand-alone-mode -[スタンドアロンモード]: rippled-server-modes.html#スタンドアロンモード -[standard format]: response-formatting.html -[標準フォーマット]: response-formatting.html -[Transaction Cost]: transaction-cost.html -[transaction cost]: transaction-cost.html -[トランザクションコスト]: transaction-cost.html -[universal error types]: error-formatting.html#universal-errors -[汎用エラータイプ]: error-formatting.html#汎用エラー -[XRP, in drops]: basic-data-types.html#specifying-currency-amounts -[XRP、drop単位]: basic-data-types.html#通貨額の指定 -[NFToken]: nftoken.html - -{% set ledger_entries = [ - "AccountRoot", - "Amendments", - "AMM", - "Check", - "DepositPreauth", - "DirectoryNode", - "Escrow", - "FeeSettings", - "LedgerHashes", - "NegativeUNL", - "NFTokenOffer", - "NFTokenPage", - "Offer", - "PayChannel", - "RippleState", - "SignerList", - "Ticket" -] %} - -{% for ledger_entry in ledger_entries %} -{% if ledger_entry in ["amendments", "depositpreauth", "escrow"] %} - {# objects where the naive URL is already taken #} -[{{ledger_entry}} object]: {{ledger_entry|lower}}-object.html -[{{ledger_entry}} entry]: {{ledger_entry|lower}}-object.html -[{{ledger_entry}}オブジェクト]: {{ledger_entry|lower}}-object.html -[{{ledger_entry}} オブジェクト]: {{ledger_entry|lower}}-object.html -[{{ledger_entry}}エントリ]: {{ledger_entry|lower}}-object.html -[{{ledger_entry}} エントリ]: {{ledger_entry|lower}}-object.html -{% else %} -[{{ledger_entry}} object]: {{ledger_entry|lower}}.html -[{{ledger_entry}} entry]: {{ledger_entry|lower}}.html -[{{ledger_entry}}オブジェクト]: {{ledger_entry|lower}}.html -[{{ledger_entry}} オブジェクト]: {{ledger_entry|lower}}.html -[{{ledger_entry}}エントリ]: {{ledger_entry|lower}}.html -[{{ledger_entry}} エントリ]: {{ledger_entry|lower}}.html -{% endif %} -{% endfor %} - - - -[crypto-condition]: https://tools.ietf.org/html/draft-thomas-crypto-conditions-04 -[crypto-conditions]: https://tools.ietf.org/html/draft-thomas-crypto-conditions-04 -[Crypto-Conditions Specification]: https://tools.ietf.org/html/draft-thomas-crypto-conditions-04 -[hexadecimal]: https://en.wikipedia.org/wiki/Hexadecimal -[Interledger Protocol]: https://interledger.org/ -[RFC-1751]: https://tools.ietf.org/html/rfc1751 -[ripple-lib]: https://github.com/XRPLF/xrpl.js - - -{% set api_methods = [ - "account_channels", - "account_currencies", - "account_info", - "account_lines", - "account_nfts", - "account_objects", - "account_offers", - "account_tx", - "amm_info", - "book_offers", - "can_delete", - "channel_authorize", - "channel_verify", - "connect", - "consensus_info", - "crawl_shards", - "deposit_authorized", - "download_shard", - "feature", - "fee", - "fetch_info", - "gateway_balances", - "get_counts", - "json", - "ledger", - "ledger_accept", - "ledger_cleaner", - "ledger_closed", - "ledger_current", - "ledger_data", - "ledger_entry", - "ledger_request", - "log_level", - "logrotate", - "manifest", - "nft_buy_offers", - "nft_info", - "nft_sell_offers", - "noripple_check", - "path_find", - "peer_reservations_add", - "peer_reservations_del", - "peer_reservations_list", - "peers", - "ping", - "print", - "random", - "ripple_path_find", - "server_info", - "server_state", - "sign", - "sign_for", - "stop", - "submit", - "submit_multisigned", - "subscribe", - "transaction_entry", - "tx", - "tx_history", - "unsubscribe", - "validation_create", - "validation_seed", - "validator_info", - "validator_list_sites", - "validators", - "wallet_propose" -] %} - -{% for method in api_methods %} -[{{method}} method]: {{method|lower}}.html -[{{method}} command]: {{method|lower}}.html -[{{method}}メソッド]: {{method|lower}}.html -[{{method}} メソッド]: {{method|lower}}.html -{% endfor %} - - -{% set amendment_names = [ - "AMM", - "Checks", - "CheckCashMakesTrustLine", - "Clawback", - "CryptoConditions", - "CryptoConditionsSuite", - "DeletableAccounts", - "DepositAuth", - "DepositPreauth", - "DID", - "DisallowIncoming", - "EnforceInvariants", - "Escrow", - "ExpandedSignerList", - "FeeEscalation", - "fix1201", - "fix1368", - "fix1373", - "fix1512", - "fix1513", - "fix1515", - "fix1523", - "fix1528", - "fix1543", - "fix1571", - "fix1578", - "fix1623", - "fixCheckThreading", - "fixDisallowIncomingV1", - "fixFillOrKill", - "fixMasterKeyAsRegularKey", - "fixNFTokenDirV1", - "fixNFTokenRemint", - "fixPayChanRecipientOwnerDir", - "fixRemoveNFTokenAutoTrustLine", - "fixQualityUpperBound", - "fixTakerDryOfferRemoval", - "fixTrustLinesToSelf", - "Flow", - "FlowCross", - "FlowV2", - "ImmediateOfferKilled", - "MultiSign", - "MultiSignReserve", - "NegativeUNL", - "NonFungibleTokensV1", - "NonFungibleTokensV1_1", - "OwnerPaysFee", - "PayChan", - "RequireFullyCanonicalSig", - "SHAMapV2", - "SortedDirectories", - "SusPay", - "TicketBatch", - "Tickets", - "TickSize", - "TrustSetAuth", - "XChainBridge", - "XRPFees" -] %} - -{% for amd in amendment_names %} -[{{amd}} amendment]: known-amendments.html#{{amd|lower}} -[{{amd}}の修正]: known-amendments.html#{{amd|lower}} -{% endfor %} diff --git a/content/_snippets/rippled_versions.md b/content/_snippets/rippled_versions.md index 106053a941..8b13789179 100644 --- a/content/_snippets/rippled_versions.md +++ b/content/_snippets/rippled_versions.md @@ -1,59 +1 @@ - -{% set rippled_versions = [ - "0.26.0", - "0.26.1", - "0.26.2", - "0.26.3-sp1", - "0.26.4", - "0.26.4-sp1", - "0.27.0", - "0.27.1", - "0.27.2", - "0.27.3", - "0.27.3-sp1", - "0.27.3-sp2", - "0.27.4", - "0.28.0", - "0.28.2", - "0.29.0", - "0.29.0-hf1", - "0.30.0", - "0.30.1", - "0.31.0", - "0.32.0", - "0.32.1", - "0.33.0", - "0.50.0", - "0.70.0", - "0.70.2", - "0.80.0", - "0.80.1", - "0.90.0", - "1.0.0", - "1.1.0", - "1.2.0", - "1.2.1", - "1.3.1", - "1.4.0", - "1.5.0", - "1.6.0", - "1.7.0", - "1.7.2", - "1.8.1", - "1.10.0", - "1.11.0", - "1.12.0", - "2.0.0" -] %} - -{% for v in rippled_versions %} -[New in: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_BLUE" -[Introduced in: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_BLUE" -[Updated in: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_BLUE" -[Removed in: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_RED" -[導入: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_BLUE" -[新規: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_BLUE" -[更新: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_BLUE" -[削除: rippled {{v}}]: https://github.com/XRPLF/rippled/releases/tag/{{v}} "BADGE_RED" -{% endfor %} diff --git a/content/_snippets/secret-key-warning.md b/content/_snippets/secret-key-warning.md index 2e2fa4aa69..a403506d96 100644 --- a/content/_snippets/secret-key-warning.md +++ b/content/_snippets/secret-key-warning.md @@ -1 +1,3 @@ -**Caution:** Never submit a secret key to a server you do not control. Do not send a secret key unencrypted over the network. +{% admonition type="warning" name="Caution" %} +Never submit a secret key to a server you do not control. Do not send a secret key unencrypted over the network. +{% /admonition %} diff --git a/content/_snippets/setfee_uniqueness_note.ja.md b/content/_snippets/setfee_uniqueness_note.ja.md deleted file mode 100644 index 3adb425003..0000000000 --- a/content/_snippets/setfee_uniqueness_note.ja.md +++ /dev/null @@ -1 +0,0 @@ -**注記:** XRP Ledgerの全履歴では、トランザクションハッシュは一意であるというルールに例外があります。初期の2つの[SetFee疑似トランザクション][]にはまったく同じフィールドがあったため、ハッシュが同じ`1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B`になっています。これらのトランザクションのうち1つ目は[レジャー3715073に](websocket-api-tool.html?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3715073%7D)表示され、2つ目は[レジャー3721729に](websocket-api-tool.html?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3721729%7D)表示されます。新しい[SetFee疑似トランザクション][]には`LedgerSequence`フィールドが含まれるため、ハッシュは一意であることが保証されています。 diff --git a/content/_snippets/setfee_uniqueness_note.md b/content/_snippets/setfee_uniqueness_note.md index 94d7b2faa9..dfd5013496 100644 --- a/content/_snippets/setfee_uniqueness_note.md +++ b/content/_snippets/setfee_uniqueness_note.md @@ -1 +1,3 @@ -**Note:** In the full history of the XRP Ledger, there is an exception to the rule that transaction hashes are unique. Two early [SetFee pseudo-transactions][] had the exact same fields, resulting in the same hash, `1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B`. The first of these transactions appears [in ledger 3715073](websocket-api-tool.html?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3715073%7D) and the second is [in ledger 3721729](websocket-api-tool.html?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3721729%7D). Newer [SetFee pseudo-transactions][] include a `LedgerSequence` field so that they are guaranteed to be unique. +{% admonition type="info" name="Note" %} +In the full history of the XRP Ledger, there is an exception to the rule that transaction hashes are unique. Two early [SetFee pseudo-transactions][] had the exact same fields, resulting in the same hash, `1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B`. The first of these transactions appears [in ledger 3715073](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3715073%7D) and the second is [in ledger 3721729](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs2.ripple.com%2F&req=%7B%22id%22%3A%22setfee_nonunique_hash_1%22%2C%22command%22%3A%22transaction_entry%22%2C%22tx_hash%22%3A%221C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B%22%2C%22ledger_index%22%3A3721729%7D). Newer [SetFee pseudo-transactions][] include a `LedgerSequence` field so that they are guaranteed to be unique. +{% /admonition %} diff --git a/content/_snippets/string-number-formatting.ja.md b/content/_snippets/string-number-formatting.ja.md deleted file mode 100644 index 358d143cc1..0000000000 --- a/content/_snippets/string-number-formatting.ja.md +++ /dev/null @@ -1,8 +0,0 @@ -XRP LedgerのAPIでは、[XRP](what-is-xrp.html)と[トークン](tokens.html)の両方で、通貨の金額を数値で表現するために、JSONのネイティブの数値ではなく文字列を使用します。これは、JSONパーサーが自動的にすべてのJSON数値を浮動小数点形式で表現しようとする可能性がある場合に、精度の低下を防ぐためです。String値の中では、数値はネイティブのJSON数値と同じ方法で処理されます。 - -* 10進数 -* ゼロの接頭辞なし -* 小数点として`.`を含むことができます。例えば、½は`0.5`と表されます -* 負の金額は`-`から始まります -* `E`または`e`は10の累乗(科学的記数法)を表します。例えば`1.2E5`は1.2×105つまり`120000`と同じです。負の指数も可能です。 -* カンマ(`,`)は使用しません。 diff --git a/content/_snippets/string-number-formatting.md b/content/_snippets/string-number-formatting.md index eb3230ba60..19c1f0c087 100644 --- a/content/_snippets/string-number-formatting.md +++ b/content/_snippets/string-number-formatting.md @@ -1,4 +1,4 @@ -XRP Ledger APIs generally use strings, rather than native JSON numbers, to represent numeric amounts of currency for both [XRP](what-is-xrp.html) and [tokens](tokens.html). This protects against a loss of precision when using JSON parsers, which may automatically try to represent all JSON numbers in a floating-point format. Within the String value, the numbers are serialized in the same way as native JSON numbers: +XRP Ledger APIs generally use strings, rather than native JSON numbers, to represent numeric amounts of currency for both [XRP](../introduction/what-is-xrp.md) and [tokens](../concepts/tokens/index.md). This protects against a loss of precision when using JSON parsers, which may automatically try to represent all JSON numbers in a floating-point format. Within the String value, the numbers are serialized in the same way as native JSON numbers: * Base-10. * Non-zero-prefaced. diff --git a/content/_snippets/tutorial-sign-step.ja.md b/content/_snippets/tutorial-sign-step.ja.md deleted file mode 100644 index a113ebe7a7..0000000000 --- a/content/_snippets/tutorial-sign-step.ja.md +++ /dev/null @@ -1,3 +0,0 @@ -トランザクションに署名する最も安全な方法は、[クライアントライブラリ](client-libraries.html)を使用してローカルで署名することです。[signメソッド](sign.html)を使用してトランザクションに署名することもできますが、その場合は信頼できる暗号化された接続を使用するか、ローカル接続を使用して、自分が管理しているサーバーに対してのみに行うようにしてください。 - -いずれの場合も、後のために、署名したトランザクションの識別用ハッシュを書き留めておいてください。 diff --git a/content/_snippets/tutorial-sign-step.md b/content/_snippets/tutorial-sign-step.md index 9a0497b592..a11c718128 100644 --- a/content/_snippets/tutorial-sign-step.md +++ b/content/_snippets/tutorial-sign-step.md @@ -1,3 +1,3 @@ -The most secure way to sign a transaction is to [sign locally with a client library](secure-signing.html#local-signing-example). Alternatively, if you run your own `rippled` node you can sign the transaction using the [sign method](sign.html), but this must be done through a trusted and encrypted connection, or through a local (same-machine) connection. +The most secure way to sign a transaction is to [sign locally with a client library](../concepts/transactions/secure-signing.md#local-signing-example). Alternatively, if you run your own `rippled` node you can sign the transaction using the [sign method](../references/http-websocket-apis/admin-api-methods/signing-methods/sign.md), but this must be done through a trusted and encrypted connection, or through a local (same-machine) connection. In all cases, note the signed transaction's identifying hash for later. diff --git a/content/_snippets/tutorial-submit-step.md b/content/_snippets/tutorial-submit-step.md index 307c4444e3..3237b3bced 100644 --- a/content/_snippets/tutorial-submit-step.md +++ b/content/_snippets/tutorial-submit-step.md @@ -1,3 +1,3 @@ -Take the signed transaction blob from the previous step and submit it to a `rippled` server. You can do this safely even if you do not run the `rippled` server. The response contains a provisional result, which should be `tesSUCCESS`, but this result is [usually not final](finality-of-results.html). A provisional response of `terQUEUED` is also OK, since [queued transactions](transaction-cost.html#queued-transactions) are generally included in the next open ledger version (usually about 10 seconds after submission). +Take the signed transaction blob from the previous step and submit it to a `rippled` server. You can do this safely even if you do not run the `rippled` server. The response contains a provisional result, which should be `tesSUCCESS`, but this result is [usually not final](../concepts/transactions/finality-of-results/index.md). A provisional response of `terQUEUED` is also OK, since [queued transactions](../concepts/transactions/transaction-cost.md#queued-transactions) are generally included in the next open ledger version (usually about 10 seconds after submission). **Tip:** If the preliminary result is `tefMAX_LEDGER`, the transaction has failed permanently because its `LastLedgerSequence` parameter is lower than the current ledger. This happens when you take longer than the expected number of ledger versions between preparing and submitting the transaction. If this occurs, [start over from step 1]({{step_1_link}}) with a higher `LastLedgerSequence` value. diff --git a/content/_snippets/tx-fields-intro.ja.md b/content/_snippets/tx-fields-intro.ja.md deleted file mode 100644 index 82a2fd713a..0000000000 --- a/content/_snippets/tx-fields-intro.ja.md +++ /dev/null @@ -1,3 +0,0 @@ -## {{currentpage.name}} フィールド - -[共通フィールド][]に加えて、{{currentpage.name}}トランザクションは以下のフィールドを使用します。 diff --git a/content/_snippets/tx-fields-intro.md b/content/_snippets/tx-fields-intro.md index a33c046557..0d8f796abf 100644 --- a/content/_snippets/tx-fields-intro.md +++ b/content/_snippets/tx-fields-intro.md @@ -1,3 +1,3 @@ -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields][], {{currentpage.name}} transactions use the following fields: +In addition to the [common fields][], {% $frontmatter.seo.title %} transactions use the following fields: diff --git a/content/_snippets/tx-metadata-field-table.md b/content/_snippets/tx-metadata-field-table.md index 81028a920e..4e348e1ef7 100644 --- a/content/_snippets/tx-metadata-field-table.md +++ b/content/_snippets/tx-metadata-field-table.md @@ -1,7 +1,7 @@ | Field | Value | Description | |:----------------------------------------|:--------------------|:-------------| -| `AffectedNodes` | Array | List of [ledger entries](ledger-object-types.html) that were created, deleted, or modified by this transaction, and specific changes to each. | -| `DeliveredAmount` | [Currency Amount][] | _(May be omitted)_ For a [partial payment](partial-payments.html), this field records the amount of currency actually delivered to the destination. To avoid errors when reading transactions, instead use the `delivered_amount` field, which is provided for all Payment transactions, partial or not. | +| `AffectedNodes` | Array | List of [ledger entries](../references/protocol/ledger-data/ledger-entry-types/index.md) that were created, deleted, or modified by this transaction, and specific changes to each. | +| `DeliveredAmount` | [Currency Amount][] | _(May be omitted)_ For a [partial payment](../concepts/payment-types/partial-payments.md), this field records the amount of currency actually delivered to the destination. To avoid errors when reading transactions, instead use the `delivered_amount` field, which is provided for all Payment transactions, partial or not. | | `TransactionIndex` | Unsigned Integer | The transaction's position within the ledger that included it. This is zero-indexed. (For example, the value `2` means it was the 3rd transaction in that ledger.) | -| `TransactionResult` | String | A [result code](transaction-results.html) indicating whether the transaction succeeded or how it failed. | -| [`delivered_amount`](transaction-metadata.html#delivered_amount) | [Currency Amount][] | _(Omitted for non-Payment transactions)_ The [Currency Amount][] actually received by the `Destination` account. Use this field to determine how much was delivered, regardless of whether the transaction is a [partial payment](partial-payments.html). See [this description](transaction-metadata.html#delivered_amount) for details. | +| `TransactionResult` | String | A [result code](../references/protocol/transactions/transaction-results/transaction-results.md) indicating whether the transaction succeeded or how it failed. | +| [`delivered_amount`](../references/protocol/transactions/metadata.md#delivered_amount) | [Currency Amount][] | _(Omitted for non-Payment transactions)_ The [Currency Amount][] actually received by the `Destination` account. Use this field to determine how much was delivered, regardless of whether the transaction is a [partial payment](../concepts/payment-types/partial-payments.md). See [this description](../references/protocol/transactions/metadata.md#delivered_amount) for details. | diff --git a/content/_snippets/tx-type-links.md b/content/_snippets/tx-type-links.md index ae8f7d7cd1..8b13789179 100644 --- a/content/_snippets/tx-type-links.md +++ b/content/_snippets/tx-type-links.md @@ -1,53 +1 @@ -{% set txtypes = [ - "AccountDelete", - "AccountSet", - "AMMBid", - "AMMDelete", - "AMMDeposit", - "AMMCreate", - "AMMVote", - "AMMWithdraw", - "CheckCancel", - "CheckCash", - "CheckCreate", - "DepositPreauth", - "EscrowCancel", - "EscrowCreate", - "EscrowFinish", - "NFTokenAcceptOffer", - "NFTokenBurn", - "NFTokenCancelOffer", - "NFTokenCreateOffer", - "NFTokenMint", - "OfferCancel", - "OfferCreate", - "Payment", - "PaymentChannelClaim", - "PaymentChannelCreate", - "PaymentChannelFund", - "SetRegularKey", - "SignerListSet", - "TicketCreate", - "TrustSet" -] %} -{% set pstxtypes = [ - "EnableAmendment", - "SetFee", - "UNLModify" -] %} - -{% for tx in txtypes %} -[{{tx}}]: {{tx|lower}}.html -[{{tx}} transaction]: {{tx|lower}}.html -[{{tx}} transactions]: {{tx|lower}}.html -[{{tx}}トランザクション]: {{tx|lower}}.html -[{{tx}} トランザクション]: {{tx|lower}}.html -{% endfor %} - -{% for tx in pstxtypes %} -[{{tx}}]: {{tx|lower}}.html -[{{tx}} pseudo-transaction]: {{tx|lower}}.html -[{{tx}} pseudo-transactions]: {{tx|lower}}.html -[{{tx}}疑似トランザクション]: {{tx|lower}}.html -{% endfor %} diff --git a/content/_snippets/unsynced_warning_logs.ja.md b/content/_snippets/unsynced_warning_logs.ja.md deleted file mode 100644 index 7a6b9ad1f6..0000000000 --- a/content/_snippets/unsynced_warning_logs.ja.md +++ /dev/null @@ -1 +0,0 @@ -サーバー起動後の最初の5~15分間に、サーバーがネットワークの他の部分と同期せず、このようなメッセージが出力されることは特に異常な動作ではありません。サーバー起動後かなり経過してからこれらのメッセージが書き込まれる場合は、問題が発生している可能性があります。一般的な原因としては、ネットワーク接続の信頼性が低いことや、[ハードウェアのスペック](system-requirements.html)が不十分であることが考えられます。また、同じハードウェアで実行されている他のプロセスがリソースをめぐって`rippled`と競合している場合にも発生する可能性があります。(`rippled`とリソースをめぐって競合する可能性のある他のプロセスの例としては、スケジュール済みバックアップ、ウィルススキャナー、定期的なデータベースクリーナーなどがあります。) \ No newline at end of file diff --git a/content/_snippets/unsynced_warning_logs.md b/content/_snippets/unsynced_warning_logs.md index 35b1817a65..0f46df0b07 100644 --- a/content/_snippets/unsynced_warning_logs.md +++ b/content/_snippets/unsynced_warning_logs.md @@ -1 +1 @@ -During the first 5 to 15 minutes after the server starts up, it is normal for it to be out of sync with the rest of the network and print messages such as these. If the server writes these messages long after starting up, it could indicate a problem. Common causes include unreliable network connections and insufficient [hardware specs](system-requirements.html). This can also happen when other processes running on the same hardware are competing with `rippled` for resources. (Examples of other processes that may compete with `rippled` for resources include scheduled backups, virus scanners, and periodic database cleaners.) +During the first 5 to 15 minutes after the server starts up, it is normal for it to be out of sync with the rest of the network and print messages such as these. If the server writes these messages long after starting up, it could indicate a problem. Common causes include unreliable network connections and insufficient [hardware specs](../infrastructure/installation/system-requirements.md). This can also happen when other processes running on the same hardware are competing with `rippled` for resources. (Examples of other processes that may compete with `rippled` for resources include scheduled backups, virus scanners, and periodic database cleaners.) diff --git a/content/concepts/accounts/account-types.md b/content/concepts/accounts/account-types.md index abbf27be0b..5afa347062 100644 --- a/content/concepts/accounts/account-types.md +++ b/content/concepts/accounts/account-types.md @@ -8,14 +8,14 @@ labels: --- # Account Types -{% include '_snippets/issuing-and-operational-addresses-intro.md' %} - +{% partial file="/_snippets/issuing-and-operational-addresses-intro.md" /%} + ## Funds Lifecycle When a token issuer follows this separation of roles, funds tend to flow in specific directions, as in the following diagram: -{{ include_svg("img/issued-currency-funds-flow.svg", "Diagram: Funds flow from the issuing address to standby addresses, to operational addresses, to customer and partner addresses, and finally back to the issuing address.")}} +[{% inline-svg file="/img/issued-currency-funds-flow.svg" /%}](/img/issued-currency-funds-flow.svg "Diagram: Funds flow from the issuing address to standby addresses, to operational addresses, to customer and partner addresses, and finally back to the issuing address.") The issuing address creates tokens by sending payments to standby addresses. These tokens have negative value from the perspective of the issuing address, since they (often) represent obligations. The same tokens have positive value from other perspectives, including from the perspective of a standby address. @@ -40,7 +40,7 @@ If a malicious actor learns the secret key behind a institution's issuing addres ### Multiple Issuing Addresses -A financial institution can issue more than one type of token in the XRP Ledger from a single issuing address. However, there are some settings that apply equally to all (fungible) tokens issued from an address, including the percentage for [transfer fees](transfer-fees.html) and the [global freeze](freezes.html) status. If the financial institution wants the flexibility to manage settings differently for each type of token, the institution must multiple issuing addresses. +A financial institution can issue more than one type of token in the XRP Ledger from a single issuing address. However, there are some settings that apply equally to all (fungible) tokens issued from an address, including the percentage for [transfer fees](../tokens/transfer-fees.md) and the [global freeze](../tokens/fungible-tokens/freezes.md) status. If the financial institution wants the flexibility to manage settings differently for each type of token, the institution must multiple issuing addresses. ## Operational Addresses @@ -70,18 +70,14 @@ If a standby address is compromised, the consequences are like an operational ad ## See Also - **Concepts:** - - [Accounts](accounts.html) - - [Cryptographic Keys](cryptographic-keys.html) + - [Accounts](accounts.md) + - [Cryptographic Keys](cryptographic-keys.md) - **Tutorials:** - - [Assign a Regular Key Pair](assign-a-regular-key-pair.html) - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.html) + - [Assign a Regular Key Pair](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md) + - [Change or Remove a Regular Key Pair](../../tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **References:** - [account_info method][] - [SetRegularKey transaction][] - - [AccountRoot object](accountroot.html) + - [AccountRoot object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/accounts.md b/content/concepts/accounts/accounts.md index e714896a34..fb63b9abb6 100644 --- a/content/concepts/accounts/accounts.md +++ b/content/concepts/accounts/accounts.md @@ -8,7 +8,7 @@ labels: --- # Accounts -An "Account" in the XRP Ledger represents a holder of XRP and a sender of [transactions](transaction-formats.html). +An "Account" in the XRP Ledger represents a holder of XRP and a sender of [transactions](../../references/protocol/transactions/index.md). An account consists of an address, an XRP balance, a sequence number, and a history of its transactions. To be able to send transactions, the owner also needs one or more cryptographic key pairs associated with the account. @@ -18,24 +18,24 @@ An account consists of an address, an XRP balance, a sequence number, and a hist The core elements of an account are: - An identifying **address**, such as `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`. -- An **XRP balance**. Some of this XRP is set aside for the [Reserve](reserves.html). -- A **sequence number**, which helps make sure any transactions this account sends are applied in the correct order and only once. To execute a transaction, the transaction's sequence number and its sender's sequence number must match. Then, as part of applying the transaction, the account's sequence number increases by 1. (See also: [Basic Data Types: Account Sequence](basic-data-types.html#account-sequence).) +- An **XRP balance**. Some of this XRP is set aside for the [Reserve](reserves.md). +- A **sequence number**, which helps make sure any transactions this account sends are applied in the correct order and only once. To execute a transaction, the transaction's sequence number and its sender's sequence number must match. Then, as part of applying the transaction, the account's sequence number increases by 1. (See also: [Basic Data Types: Account Sequence](../../references/protocol/data-types/basic-data-types.md#account-sequence).) - A **history of transactions** that affected this account and its balances. -- One or more ways to [authorize transactions](transactions.html#authorizing-transactions), possibly including: +- One or more ways to [authorize transactions](../transactions/index.md#authorizing-transactions), possibly including: - A master key pair intrinsic to the account. (This can be disabled but not changed.) - A "regular" key pair that can be rotated. - - A signer list for [multi-signing](multi-signing.html). (Stored separately from the account's core data.) + - A signer list for [multi-signing](multi-signing.md). (Stored separately from the account's core data.) -An account's core data is stored in an [AccountRoot](accountroot.html) ledger entry. An account can also be the owner (or partial owner) of several other types of ledger entry. +An account's core data is stored in an [AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) ledger entry. An account can also be the owner (or partial owner) of several other types of ledger entry. **Tip:** An "Account" in the XRP Ledger is somewhere between the financial usage (like "bank account") and the computing usage (like "UNIX account"). Non-XRP currencies and assets aren't stored in an XRP Ledger Account itself; each such asset is stored in an accounting relationship called a "Trust Line" that connects two parties. ## Creating Accounts -There is not a dedicated "create account" transaction. The [Payment transaction][] automatically creates a new account if the payment sends enough XRP to a mathematically-valid address that does not already have an account. This is called _funding_ an account, and creates an [AccountRoot entry](accountroot.html) in the ledger. No other transaction can create an account. +There is not a dedicated "create account" transaction. The [Payment transaction][] automatically creates a new account if the payment sends enough XRP to a mathematically-valid address that does not already have an account. This is called _funding_ an account, and creates an [AccountRoot entry](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) in the ledger. No other transaction can create an account. -**Caution:** Funding an account **does not** give you any special privileges over that account. Whoever has the secret key corresponding to the account's address has full control over the account and all XRP it contains. For some addresses, it's possible that no one has the secret key, in which case the account is a [black hole](addresses.html#special-addresses) and the XRP is lost forever. +**Caution:** Funding an account **does not** give you any special privileges over that account. Whoever has the secret key corresponding to the account's address has full control over the account and all XRP it contains. For some addresses, it's possible that no one has the secret key, in which case the account is a [black hole](addresses.md#special-addresses) and the XRP is lost forever. The typical way to get an account in the XRP Ledger is as follows: @@ -45,27 +45,24 @@ The typical way to get an account in the XRP Ledger is as follows: - For example, you can buy XRP in a private exchange, then withdraw XRP from the exchange to the address you specified. - **Caution:** The first time you receive XRP at your own XRP Ledger address, you must pay the [account reserve](reserves.html) (currently 10 XRP), which locks up that amount of XRP indefinitely. In contrast, private exchanges usually hold all their customers' XRP in a few shared XRP Ledger accounts, so customers don't have to pay the reserve for individual accounts at the exchange. Before withdrawing, consider whether having your own account directly on the XRP Ledger is worth the price. + **Caution:** The first time you receive XRP at your own XRP Ledger address, you must pay the [account reserve](reserves.md) (currently 10 XRP), which locks up that amount of XRP indefinitely. In contrast, private exchanges usually hold all their customers' XRP in a few shared XRP Ledger accounts, so customers don't have to pay the reserve for individual accounts at the exchange. Before withdrawing, consider whether having your own account directly on the XRP Ledger is worth the price. ## See Also - **Concepts:** - - [Reserves](reserves.html) - - [Cryptographic Keys](cryptographic-keys.html) - - [Issuing and Operational Addresses](account-types.html) + - [Reserves](reserves.md) + - [Cryptographic Keys](cryptographic-keys.md) + - [Issuing and Operational Addresses](account-types.md) - **References:** - [account_info method][] - [wallet_propose method][] - [AccountSet transaction][] - [Payment transaction][] - - [AccountRoot object](accountroot.html) + - [AccountRoot object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - **Tutorials:** - - [Manage Account Settings (Category)](manage-account-settings.html) - - [Monitor Incoming Payments with WebSocket](monitor-incoming-payments-with-websocket.html) + - [Manage Account Settings (Category)](../../tutorials/tasks/manage-account-settings/index.md) + - [Monitor Incoming Payments with WebSocket](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/addresses.md b/content/concepts/accounts/addresses.md index d89be8102d..c067c440a6 100644 --- a/content/concepts/accounts/addresses.md +++ b/content/concepts/accounts/addresses.md @@ -7,9 +7,9 @@ labels: --- # Addresses -{% include '_snippets/data_types/address.md' %} +{% partial file="/_snippets/data_types/address.md" /%} -Any valid address can [become an account in the XRP Ledger](accounts.html#creating-accounts) by being funded. You can also use an address that has not been funded to represent a [regular key](cryptographic-keys.html) or a member of a [signer list](multi-signing.html). Only a funded account can be the sender of a transaction. +Any valid address can [become an account in the XRP Ledger](accounts.md#creating-accounts) by being funded. You can also use an address that has not been funded to represent a [regular key](cryptographic-keys.md) or a member of a [signer list](multi-signing.md). Only a funded account can be the sender of a transaction. Creating a valid address is a strictly mathematical task starting with a key pair. You can generate a key pair and calculate its address entirely offline without communicating to the XRP Ledger or any other party. The conversion from a public key to an address involves a one-way hash function, so it is possible to confirm that a public key matches an address but it is impossible to derive the public key from the address alone. (This is part of the reason why signed transactions include the public key _and_ the address of the sender.) @@ -22,7 +22,7 @@ Some addresses have special meaning, or historical uses, in the XRP Ledger. In m | Address | Name | Meaning | Black Hole? | |-------------------------------|------|---------|-------------| | `rrrrrrrrrrrrrrrrrrrrrhoLvTp` | ACCOUNT\_ZERO | An address that is the XRP Ledger's [base58][] encoding of the value `0`. In peer-to-peer communications, `rippled` uses this address as the issuer for XRP. | Yes | -| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT\_ONE | An address that is the XRP Ledger's [base58][] encoding of the value `1`. In the ledger, [RippleState entries](ripplestate.html) use this address as a placeholder for the issuer of a trust line balance. | Yes | +| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT\_ONE | An address that is the XRP Ledger's [base58][] encoding of the value `1`. In the ledger, [RippleState entries](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) use this address as a placeholder for the issuer of a trust line balance. | Yes | | `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` | The genesis account | When `rippled` starts a new genesis ledger from scratch (for example, in stand-alone mode), this account holds all the XRP. This address is generated from the seed value `masterpassphrase` which is [hard-coded](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184). | No | | `rrrrrrrrrrrrrrrrrNAMEtxvNvQ` | Ripple Name reservation black-hole | In the past, Ripple asked users to send XRP to this account to reserve Ripple Names.| Yes | | `rrrrrrrrrrrrrrrrrrrn5RM1rHd` | NaN Address | Previous versions of [ripple-lib](https://github.com/XRPLF/xrpl.js) generated this address when encoding the value [NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN) using the XRP Ledger's [base58][] string encoding format. | Yes | @@ -38,52 +38,58 @@ XRP Ledger addresses are encoded using [base58][] with the _dictionary_ `rpshnaf The following diagram shows the relationship between keys and addresses: -{{ include_svg("img/address-encoding.svg", "Master Public Key + Type Prefix → Account ID + Checksum → Address") }} +[{% inline-svg file="/img/address-encoding.svg" /%}](/img/address-encoding.svg "Master Public Key + Type Prefix → Account ID + Checksum → Address") -The formula for calculating an XRP Ledger address from a public key is as follows. For the complete example code, see [`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/js/encode_address.js). For the process of deriving a public key from a passphrase or seed value, see [Key Derivation](cryptographic-keys.html#key-derivation). +The formula for calculating an XRP Ledger address from a public key is as follows. For the complete example code, see [`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/js/encode_address.js). For the process of deriving a public key from a passphrase or seed value, see [Key Derivation](cryptographic-keys.md#key-derivation). 1. Import required algorithms: SHA-256, RIPEMD160, and base58. Set the dictionary for base58. - 'use strict'; - const assert = require('assert'); - const crypto = require('crypto'); - const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; - const base58 = require('base-x')(R_B58_DICT); + ``` + 'use strict'; + const assert = require('assert'); + const crypto = require('crypto'); + const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; + const base58 = require('base-x')(R_B58_DICT); - assert(crypto.getHashes().includes('sha256')); - assert(crypto.getHashes().includes('ripemd160')); + assert(crypto.getHashes().includes('sha256')); + assert(crypto.getHashes().includes('ripemd160')); + ``` 2. Start with a 33-byte ECDSA secp256k1 public key, or a 32-byte Ed25519 public key. For Ed25519 keys, prefix the key with the byte `0xED`. - const pubkey_hex = - 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; - const pubkey = Buffer.from(pubkey_hex, 'hex'); - assert(pubkey.length == 33); + ``` + const pubkey_hex = + 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; + const pubkey = Buffer.from(pubkey_hex, 'hex'); + assert(pubkey.length == 33); + ``` 3. Calculate the [RIPEMD160](https://en.wikipedia.org/wiki/RIPEMD) hash of the SHA-256 hash of the public key. This value is the "Account ID". - const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); - const pubkey_outer_hash = crypto.createHash('ripemd160'); - pubkey_outer_hash.update(pubkey_inner_hash.digest()); - const account_id = pubkey_outer_hash.digest(); + ``` + const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); + const pubkey_outer_hash = crypto.createHash('ripemd160'); + pubkey_outer_hash.update(pubkey_inner_hash.digest()); + const account_id = pubkey_outer_hash.digest(); + ``` 4. Calculate the SHA-256 hash of the SHA-256 hash of the Account ID; take the first 4 bytes. This value is the "checksum". - const address_type_prefix = Buffer.from([0x00]); - const payload = Buffer.concat([address_type_prefix, account_id]); - const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); - const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); - const checksum = chksum_hash2.slice(0,4); + ``` + const address_type_prefix = Buffer.from([0x00]); + const payload = Buffer.concat([address_type_prefix, account_id]); + const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); + const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); + const checksum = chksum_hash2.slice(0,4); + ``` 5. Concatenate the payload and the checksum. Calculate the base58 value of the concatenated buffer. The result is the address. - const dataToEncode = Buffer.concat([payload, checksum]); - const address = base58.encode(dataToEncode); - console.log(address); - // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN + ``` + const dataToEncode = Buffer.concat([payload, checksum]); + const address = base58.encode(dataToEncode); + console.log(address); + // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN + ``` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/cryptographic-keys.md b/content/concepts/accounts/cryptographic-keys.md index 0a8e7c6494..088fffa5c3 100644 --- a/content/concepts/accounts/cryptographic-keys.md +++ b/content/concepts/accounts/cryptographic-keys.md @@ -8,15 +8,15 @@ labels: --- # Cryptographic Keys -In the XRP Ledger, a digital signature _authorizes_ a [transaction](transactions.html) to do a specific set of actions. Only signed transactions can be submitted to the network and included in a validated ledger. +In the XRP Ledger, a digital signature _authorizes_ a [transaction](../transactions/index.md) to do a specific set of actions. Only signed transactions can be submitted to the network and included in a validated ledger. -To make a digital signature, you use a cryptographic key pair associated with the transaction's sending account. A key pair may be generated using any of the XRP Ledger's supported [cryptographic signing algorithms](#signing-algorithms). A key pair can be used as a [master key pair](#master-key-pair), [regular key pair](#regular-key-pair) or a member of a [signer list](multi-signing.html), regardless of what algorithm was used to generate it. +To make a digital signature, you use a cryptographic key pair associated with the transaction's sending account. A key pair may be generated using any of the XRP Ledger's supported [cryptographic signing algorithms](#signing-algorithms). A key pair can be used as a [master key pair](#master-key-pair), [regular key pair](#regular-key-pair) or a member of a [signer list](multi-signing.md), regardless of what algorithm was used to generate it. **Warning:** It is important to maintain proper security over your cryptographic keys. Digital signatures are the only way of authorizing transactions in the XRP Ledger, and there is no privileged administrator who can undo or reverse any transactions after they have applied. If someone else knows the seed or private key of your XRP Ledger account, that person can create digital signatures to authorize any transaction the same as you could. ## Generating Keys -Many [client libraries](client-libraries.html) and applications can generate a key pair suitable for use with the XRP Ledger. However, you should only use key pairs that were generated with devices and software you trust. Compromised applications can expose your secret to malicious users who can then send transactions from your account later. +Many [client libraries](../../references/client-libraries.md) and applications can generate a key pair suitable for use with the XRP Ledger. However, you should only use key pairs that were generated with devices and software you trust. Compromised applications can expose your secret to malicious users who can then send transactions from your account later. ## Key Components @@ -25,7 +25,7 @@ A cryptographic key pair is a **private key** and a **public key** that are conn When dealing with the XRP Ledger, you may also use some related values such as a passphrase, seed, account ID, or address. -{{ include_svg("img/cryptographic-keys.svg", "Diagram: Passphrase → Seed → Private Key → Public Key → Account ID ←→ Address") }} +[{% inline-svg file="/img/cryptographic-keys.svg" /%}](/img/cryptographic-keys.svg "Diagram: Passphrase → Seed → Private Key → Public Key → Account ID ←→ Address") _Figure: A simplified view of the relationship between cryptographic key values._ The passphrase, seed, and private key are **secrets**: if you know any of these values for an account, you can make valid signatures and you have full control over that account. If you own an account, be **very careful** with your account's secret information. If you don't have it, you can't use your account. If someone else can access it, they can take control of your account. @@ -61,16 +61,16 @@ Transactions in the XRP Ledger must include the public keys so that the network ### Account ID and Address -The **Account ID** is the core identifier for an [account](accounts.html) or a key pair. It is derived from the public key. In the XRP Ledger protocol, the Account ID is 20 bytes of binary data. Most XRP Ledger APIs represent the Account ID as an address, in one of two formats: +The **Account ID** is the core identifier for an [account](accounts.md) or a key pair. It is derived from the public key. In the XRP Ledger protocol, the Account ID is 20 bytes of binary data. Most XRP Ledger APIs represent the Account ID as an address, in one of two formats: - A "classic address" writes an Account ID in [base58][] with a checksum. In a [wallet_propose method][] response, this is the `account_id` value. -- An "X-Address" combines an Account ID _and_ a [Destination Tag](source-and-destination-tags.html) and writes the combined value in [base58][] with a checksum. +- An "X-Address" combines an Account ID _and_ a [Destination Tag](../transactions/source-and-destination-tags.md) and writes the combined value in [base58][] with a checksum. The checksum in both formats is there so that small changes result in an invalid address, instead of changing it to refer to a different, but still potentially valid, account. This way, if you make a typo or a transmission error occurs, you don't send money to the wrong place. -It is important to know that not all Account IDs (or addresses) refer to accounts in the ledger. Deriving keys and addresses is purely a mathematical operation. For an account to have a record in the XRP Ledger, it must [receive a payment of XRP](accounts.html#creating-accounts) that funds its [reserve requirement](reserves.html). An account cannot send any transactions until after it has been funded. +It is important to know that not all Account IDs (or addresses) refer to accounts in the ledger. Deriving keys and addresses is purely a mathematical operation. For an account to have a record in the XRP Ledger, it must [receive a payment of XRP](accounts.md#creating-accounts) that funds its [reserve requirement](reserves.md). An account cannot send any transactions until after it has been funded. -Even if an Account ID or address does not refer to a funded account, you _can_ use that Account ID or address to represent a [regular key pair](#regular-key-pair) or a [member of a signer list](multi-signing.html). +Even if an Account ID or address does not refer to a funded account, you _can_ use that Account ID or address to represent a [regular key pair](#regular-key-pair) or a [member of a signer list](multi-signing.md). ### Key Type @@ -83,11 +83,11 @@ The `key_type` field in the [wallet_propose method][] refers to the cryptographi The master key pair consists of a private key and a public key. The address of an account is derived from the account's master key pair, so they are intrinsically related. You cannot change or remove the master key pair, but you can disable it. -The [wallet_propose method][] is one way of generating a master key pair. The response from this method shows the account's seed, address, and master public key together. For some other ways of setting up master key pairs, see [Secure Signing](secure-signing.html). +The [wallet_propose method][] is one way of generating a master key pair. The response from this method shows the account's seed, address, and master public key together. For some other ways of setting up master key pairs, see [Secure Signing](../transactions/secure-signing.md). **Warning:** If a malicious actor learns your master private key (or seed), they have full control over your account, unless your master key pair is disabled. They can take all the money your account holds and do other irreparable harm. Treat your secret values with care! -Because changing a master key pair is impossible, you should treat it with care proportionate to the value it holds. A good practice is to [keep your master key pair offline](offline-account-setup.html) and set up a regular key pair to sign transactions from your account instead. By keeping the master key pair enabled but offline, you can be reasonably certain that no one can get access to it using the internet, but you can still go find it to use in an emergency. +Because changing a master key pair is impossible, you should treat it with care proportionate to the value it holds. A good practice is to [keep your master key pair offline](../../tutorials/manage-account-settings/offline-account-setup.md) and set up a regular key pair to sign transactions from your account instead. By keeping the master key pair enabled but offline, you can be reasonably certain that no one can get access to it using the internet, but you can still go find it to use in an emergency. Keeping your master key pair offline means not putting the secret information (passphrase, seed, or private key) anywhere that malicious actors can get access to it. In general, this means it is not within reach of a computer program that interacts with the internet at large. For example, you could keep it on an air-gapped machine that never connects to the internet, on a piece of paper stored in a safe, or have it completely memorized. (Memorization has some drawbacks, though, including making it impossible to pass the key on after you are dead.) @@ -97,15 +97,15 @@ Keeping your master key pair offline means not putting the secret information (p **Only** the master key pair can authorize transactions to do certain things: -- Send an account's very first transaction, because accounts cannot be initialized with another way of [authorizing transactions](transactions.html#authorizing-transactions). +- Send an account's very first transaction, because accounts cannot be initialized with another way of [authorizing transactions](../transactions/index.md#authorizing-transactions). - Disable the master key pair. -- Permanently give up the ability to [freeze](freezes.html#no-freeze). +- Permanently give up the ability to [freeze](../tokens/fungible-tokens/freezes.md#no-freeze). -- Send a special [key reset transaction](transaction-cost.html#key-reset-transaction) with a transaction cost of 0 XRP. +- Send a special [key reset transaction](../transactions/transaction-cost.md#key-reset-transaction) with a transaction cost of 0 XRP. -A regular key or [multi-signature](multi-signing.html) can do anything else the same as the master key pair. Notably, after you have disabled the master key pair, you can re-enable it using a regular key pair or multi-signature. You can also [delete an account](deleting-accounts.html) if it meets the requirements for deletion. +A regular key or [multi-signature](multi-signing.md) can do anything else the same as the master key pair. Notably, after you have disabled the master key pair, you can re-enable it using a regular key pair or multi-signature. You can also [delete an account](deleting-accounts.md) if it meets the requirements for deletion. ## Regular Key Pair @@ -118,7 +118,7 @@ A good security practice is to save your master private key somewhere offline, a Regular key pairs have the same format as master key pairs. You generate them the same way (for example, using the [wallet_propose method][]). The only difference is that a regular key pair is not intrinsically tied to the account it signs transactions for. It is possible (but not a good idea) to use the master key pair from one account as the regular key pair for another account. -The [SetRegularKey transaction][] assigns or changes the regular key pair for an account. For a tutorial on assigning or changing a regular key pair, see [Assign a Regular Key Pair](assign-a-regular-key-pair.html). +The [SetRegularKey transaction][] assigns or changes the regular key pair for an account. For a tutorial on assigning or changing a regular key pair, see [Assign a Regular Key Pair](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md). ## Signing Algorithms @@ -134,7 +134,7 @@ The XRP Ledger supports the following cryptographic signing algorithms: When you generate a key pair with the [wallet_propose method][], you can specify the `key_type` to choose which cryptographic signing algorithm to use to derive the keys. If you generated a key type other than the default, you must also specify the `key_type` when signing transactions. -The supported types of key pairs can be used interchangeably throughout the XRP Ledger as master key pairs, regular key pairs, and members of signer lists. The process of [deriving an address](addresses.html#address-encoding) is the same for secp256k1 and Ed25519 key pairs. +The supported types of key pairs can be used interchangeably throughout the XRP Ledger as master key pairs, regular key pairs, and members of signer lists. The process of [deriving an address](addresses.md#address-encoding) is the same for secp256k1 and Ed25519 key pairs. ### Future Algorithms @@ -154,13 +154,13 @@ The key derivation processes described here are implemented in multiple places a - [Seed definition](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/Seed.h) - [General & Ed25519 key derivation](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) - [secp256k1 key derivation](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) -- In Python 3 in [this repository's code samples section]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/key-derivation/py/key_derivation.py). +- In Python 3 in {% repo-link path="content/_code-samples/key-derivation/py/key_derivation.py" %}this repository's code samples section{% /repo-link %}. - In JavaScript in the [`ripple-keypairs`](https://github.com/XRPLF/xrpl.js/tree/main/packages/ripple-keypairs) package. ### Ed25519 Key Derivation [[Source]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/protocol/impl/SecretKey.cpp#L203 "Source") -{{ include_svg("img/key-derivation-ed25519.svg", "Passphrase → Seed → Secret Key → Prefix + Public Key") }} +[{% inline-svg file="/img/key-derivation-ed25519.svg" /%}](/img/key-derivation-ed25519.svg "Passphrase → Seed → Secret Key → Prefix + Public Key") 1. Calculate the [SHA-512Half][] of the seed value. The result is the 32-byte secret key. @@ -181,7 +181,7 @@ The key derivation processes described here are implemented in multiple places a ### secp256k1 Key Derivation [[Source]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp "Source") -{{ include_svg("img/key-derivation-secp256k1.svg", "Passphrase → Seed → Root Key Pair → Intermediate Key Pair → Master Key Pair") }} +[{% inline-svg file="/img/key-derivation-secp256k1.svg" /%}](/img/key-derivation-secp256k1.svg "Passphrase → Seed → Root Key Pair → Intermediate Key Pair → Master Key Pair") Key derivation for secp256k1 XRP Ledger account keys involves more steps than Ed25519 key derivation for a couple reasons: @@ -212,7 +212,9 @@ The steps to derive the XRP Ledger's secp256k1 account key pair from a seed valu You can convert an uncompressed public key to the compressed form with the `openssl` commandline tool. For example, if the uncompressed public key is in the file `ec-pub.pem`, you can output the compressed form like this: - $ openssl ec -in ec-pub.pem -pubin -text -noout -conv_form compressed + ``` + $ openssl ec -in ec-pub.pem -pubin -text -noout -conv_form compressed + ``` 3. Derive an "intermediate key pair" from the compressed root public key you, as follows: @@ -237,23 +239,20 @@ The steps to derive the XRP Ledger's secp256k1 account key pair from a seed valu 6. When serializing an account's public key to its [base58][] format, use the account public key prefix, `0x23`. - See [Address Encoding](addresses.html#address-encoding) for information and sample code to convert from an account's public key to its address. + See [Address Encoding](addresses.md#address-encoding) for information and sample code to convert from an account's public key to its address. ## See Also - **Concepts:** - - [Issuing and Operational Addresses](account-types.html) + - [Issuing and Operational Addresses](account-types.md) - **Tutorials:** - - [Assign a Regular Key Pair](assign-a-regular-key-pair.html) - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.html) + - [Assign a Regular Key Pair](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md) + - [Change or Remove a Regular Key Pair](../../tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **References:** - [SetRegularKey transaction][] - - [AccountRoot ledger object](accountroot.html) + - [AccountRoot ledger object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - [wallet_propose method][] - [account_info method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/decentralized-identifiers.md b/content/concepts/accounts/decentralized-identifiers.md index a03d0f928c..0f529dd8b0 100644 --- a/content/concepts/accounts/decentralized-identifiers.md +++ b/content/concepts/accounts/decentralized-identifiers.md @@ -8,7 +8,7 @@ labels: --- # Decentralized Identifiers -_(Requires the [DID amendment][] :not_enabled:)_ +_(Requires the [DID amendment][] {% not-enabled /%})_ A Decentralized Identifier (DID) is a new type of identifier defined by the World Wide Web Consortium (W3C) that enables verifiable, digital identities. DIDs are fully under the control of the DID owner, independent from any centralized registry, identity provider, or certificate authority. @@ -75,8 +75,4 @@ To learn more about the core properties of a DID document, see: [Decentralized I - You can include any content in a DID document, but should limit it to verification methods and service points. Since DIDs on XRPL can be resolved by anyone, you shouldn't include any personal information. - IPFS allows anyone to store content on the nodes in a distributed network. A common misconception is that anyone can edit that content; however, the content-addressability of IPFS means any edited content will have a different address from the original. While any entity can copy a DID document anchored with an XRPL account's `DIDDocument` or `URI` fields, they can't change the document itself unless they control the private key that created the corresponding `DID` object. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/deleting-accounts.md b/content/concepts/accounts/deleting-accounts.md index 04b054fb24..625bab7520 100644 --- a/content/concepts/accounts/deleting-accounts.md +++ b/content/concepts/accounts/deleting-accounts.md @@ -7,34 +7,31 @@ labels: --- # Deleting Accounts -The owner of an account can send an [AccountDelete transaction][] to deletes the account and related entries from the ledger, sending most of the account's remaining XRP balance to another account. To discourage wasteful creation and deletion of accounts, deleting an account requires burning a higher than usual amount of XRP as the [transaction cost](transaction-cost.html). +The owner of an account can send an [AccountDelete transaction][] to deletes the account and related entries from the ledger, sending most of the account's remaining XRP balance to another account. To discourage wasteful creation and deletion of accounts, deleting an account requires burning a higher than usual amount of XRP as the [transaction cost](../transactions/transaction-cost.md). Some types of associated ledger entries block an account from being deleted. For example, the issuer of a fungible token can't be deleted while anyone holds a nonzero balance of that token. -After an account has been deleted, it can be re-created in the ledger through the normal method of [creating accounts](accounts.html#creating-accounts). An account that has been deleted and re-created is no different than an account that has been created for the first time. +After an account has been deleted, it can be re-created in the ledger through the normal method of [creating accounts](accounts.md#creating-accounts). An account that has been deleted and re-created is no different than an account that has been created for the first time. ## Requirements To be deleted, an account must meet the following requirements: - The account's `Sequence` number plus 256 must be less than the current [Ledger Index][]. -- The account must not be linked to any of the following types of [ledger entries](ledger-object-types.html) (as a sender or receiver): +- The account must not be linked to any of the following types of [ledger entries](../../references/protocol/ledger-data/ledger-entry-types/index.md) (as a sender or receiver): - `Escrow` - `PayChannel` - `RippleState` - `Check` - The account must own fewer than 1000 objects in the ledger. -- The transaction must pay a special [transaction cost][] equal to at least the [owner reserve](reserves.html) for one item (currently 2 XRP). +- The transaction must pay a special [transaction cost][] equal to at least the [owner reserve](reserves.md) for one item (currently 2 XRP). ## Cost of Deleting **Warning:** The [AccountDelete transaction][]'s transaction cost always applies when the transaction is included in a validated ledger, even if the transaction failed because the account does not meet the requirements to be deleted. To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, use the `fail_hard` option when submitting an AccountDelete transaction. -Unlike Bitcoin and many other cryptocurrencies, each new version of the XRP Ledger's public ledger chain contains the full state of the ledger, which increases in size with each new account. For that reason, you should not create new XRP Ledger accounts unless necessary. You can recover some of an account's 10 XRP [reserve](reserves.html) by deleting the account, but you must still destroy at least 2 XRP to do so. +Unlike Bitcoin and many other cryptocurrencies, each new version of the XRP Ledger's public ledger chain contains the full state of the ledger, which increases in size with each new account. For that reason, you should not create new XRP Ledger accounts unless necessary. You can recover some of an account's 10 XRP [reserve](reserves.md) by deleting the account, but you must still destroy at least 2 XRP to do so. -Institutions who send and receive value on behalf of many users can use [**Source Tags** and **Destination Tags**](source-and-destination-tags.html) to distinguish payments from and to their customers while only using one (or a handful) of accounts in the XRP Ledger. +Institutions who send and receive value on behalf of many users can use [**Source Tags** and **Destination Tags**](../transactions/source-and-destination-tags.md) to distinguish payments from and to their customers while only using one (or a handful) of accounts in the XRP Ledger. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/depositauth.md b/content/concepts/accounts/depositauth.md index 1f318aede9..098244e42f 100644 --- a/content/concepts/accounts/depositauth.md +++ b/content/concepts/accounts/depositauth.md @@ -10,10 +10,10 @@ labels: _(Added by the [DepositAuth amendment][].)_ -Deposit Authorization is an optional [account](accounts.html) setting in the XRP Ledger. If enabled, Deposit Authorization blocks all transfers from strangers, including transfers of XRP and [tokens](tokens.html). An account with Deposit Authorization can only receive value in two ways: +Deposit Authorization is an optional [account](accounts.md) setting in the XRP Ledger. If enabled, Deposit Authorization blocks all transfers from strangers, including transfers of XRP and [tokens](../tokens/index.md). An account with Deposit Authorization can only receive value in two ways: - From accounts it has [preauthorized](#preauthorization). -- By sending a transaction to receive the funds. For example, an account with Deposit Authorization could finish an [Escrow](escrow.html) that was initiated by a stranger. +- By sending a transaction to receive the funds. For example, an account with Deposit Authorization could finish an [Escrow](../payment-types/escrow.md) that was initiated by a stranger. By default, new accounts have DepositAuth disabled and can receive XRP from anyone. @@ -23,7 +23,7 @@ Financial services regulations and licenses may require that a business or entit The Deposit Authorization flag introduces an option for those using the XRP Ledger to comply with such regulations without changing the fundamental nature of the decentralized ledger. With Deposit Authorization enabled, an account can only receive funds it explicitly approves by sending a transaction. The owner of an account using Deposit Authorization can perform the due diligence necessary to identify the sender of any funds _before_ sending the transaction that causes the account to receive the money. -When you have Deposit Authorization enabled, you can receive money from [Checks](known-amendments.html#checks), [Escrow](escrow.html), and [Payment Channels](known-amendments.html#paychan). In these transactions' "two-step" model, first the source sends a transaction to authorize sending funds, then the destination sends a transaction to authorize receiving those funds. +When you have Deposit Authorization enabled, you can receive money from [Checks](../../resources/known-amendments.md#checks), [Escrow](../payment-types/escrow.md), and [Payment Channels](../../resources/known-amendments.md#paychan). In these transactions' "two-step" model, first the source sends a transaction to authorize sending funds, then the destination sends a transaction to authorize receiving those funds. To receive money from [Payment transactions][] when you have Deposit Authorization enabled, you must [preauthorize](#preauthorization) the senders of those Payments. _(Added by the [DepositPreauth amendment][].)_ @@ -31,9 +31,9 @@ To receive money from [Payment transactions][] when you have Deposit Authorizati To get the full effect of Deposit Authorization, Ripple recommends also doing the following: -- Always maintain an XRP balance higher than the minimum [reserve requirement](reserves.html). -- Keep the Default Ripple flag in its default (disabled) state. Do not enable [rippling](rippling.html) on any trust lines. When sending [TrustSet transactions][], always use the [`tfSetNoRipple` flag](trustset.html). -- Do not place [Offers](offercreate.html). It is impossible to know in advance which matching offers will be consumed to execute such a trade. +- Always maintain an XRP balance higher than the minimum [reserve requirement](reserves.md). +- Keep the Default Ripple flag in its default (disabled) state. Do not enable [rippling](../tokens/fungible-tokens/rippling.md) on any trust lines. When sending [TrustSet transactions][], always use the [`tfSetNoRipple` flag](../../references/protocol/transactions/types/trustset.md). +- Do not place [Offers](../../references/protocol/transactions/types/offercreate.md). It is impossible to know in advance which matching offers will be consumed to execute such a trade. ## Precise Semantics @@ -41,7 +41,7 @@ An account with Deposit Authorization enabled: - **Cannot** be the destination of [Payment transactions][], with **the following exceptions**: - If the destination has [preauthorized](#preauthorization) the sender of the Payment. _(Added by the [DepositPreauth amendment][])_ - - If the account's XRP balance is equal to or below the minimum account [reserve requirement](reserves.html), it can be the destination of an XRP Payment whose `Amount` is equal or less than the minimum account reserve (currently 10 XRP). This is to prevent an account from becoming "stuck" by being unable to send transactions but also unable to receive XRP. The account's owner reserve does not matter for this case. + - If the account's XRP balance is equal to or below the minimum account [reserve requirement](reserves.md), it can be the destination of an XRP Payment whose `Amount` is equal or less than the minimum account reserve (currently 10 XRP). This is to prevent an account from becoming "stuck" by being unable to send transactions but also unable to receive XRP. The account's owner reserve does not matter for this case. - Can receive XRP from [PaymentChannelClaim transactions][] **only in the following cases**: - The sender of the PaymentChannelClaim transaction is the destination of the payment channel. - The destination of the PaymentChannelClaim transaction has [preauthorized](#preauthorization) the sender of the PaymentChannelClaim. _(Added by the [DepositPreauth amendment][])_ @@ -51,7 +51,7 @@ An account with Deposit Authorization enabled: - **Can** receive XRP or tokens by sending a [CheckCash][] transaction. _(Added by the [Checks amendment][].)_ - **Can** receive XRP or tokens by sending [OfferCreate transactions][]. - If the account sends an OfferCreate transaction that is not fully executed immediately, it **can** receive the rest of the ordered XRP or token later when the offer is consumed by other accounts' [Payment][] and [OfferCreate][] transactions. -- If the account has created any trust lines without the [No Ripple flag](rippling.html) enabled, or has enabled the Default Ripple flag and issued any currency, the account **can** receive the tokens of those trust lines in [Payment transactions][] as a result of rippling. It cannot be the destination of those transactions. +- If the account has created any trust lines without the [No Ripple flag](../tokens/fungible-tokens/rippling.md) enabled, or has enabled the Default Ripple flag and issued any currency, the account **can** receive the tokens of those trust lines in [Payment transactions][] as a result of rippling. It cannot be the destination of those transactions. - In general, an account in the XRP Ledger **cannot** receive any non-XRP currencies in the XRP Ledger as long as all of the following are true. (This rule is not specific to the DepositAuth flag.) - The account has not created any trust lines with a nonzero limit. - The account has not issued tokens on trust lines created by others. @@ -59,17 +59,17 @@ An account with Deposit Authorization enabled: The following table summarizes whether a transaction type can deposit money with DepositAuth enabled or disabled: -{% include '_snippets/depositauth-semantics-table.md' %} - +{% partial file="/_snippets/depositauth-semantics-table.md" /%} + ## Enabling or Disabling Deposit Authorization -An account can enable deposit authorization by sending an [AccountSet transaction][] with the `SetFlag` field set to the `asfDepositAuth` value (9). The account can disable deposit authorization by sending an [AccountSet transaction][] with the `ClearFlag` field set to the `asfDepositAuth` value (9). For more information on AccountSet flags, see [AccountSet flags](accountset.html). +An account can enable deposit authorization by sending an [AccountSet transaction][] with the `SetFlag` field set to the `asfDepositAuth` value (9). The account can disable deposit authorization by sending an [AccountSet transaction][] with the `ClearFlag` field set to the `asfDepositAuth` value (9). For more information on AccountSet flags, see [AccountSet flags](../../references/protocol/transactions/types/accountset.md). ## Checking Whether an Account Has DepositAuth Enabled -To see whether an account has Deposit Authorization enabled, use the [account_info method][] to look up the account. Compare the value of the `Flags` field (in the `result.account_data` object) with the [bitwise flags defined for an AccountRoot ledger object](accountroot.html). +To see whether an account has Deposit Authorization enabled, use the [account_info method][] to look up the account. Compare the value of the `Flags` field (in the `result.account_data` object) with the [bitwise flags defined for an AccountRoot ledger object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md). If the result of the `Flags` value bitwise-AND the `lsfDepositAuth` flag value (`0x01000000`) is nonzero, then the account has DepositAuth enabled. If the result is zero, then the account has DepositAuth disabled. @@ -83,7 +83,7 @@ Preauthorization is currency-agnostic. You cannot preauthorize accounts for spec To preauthorize a particular sender, send a [DepositPreauth transaction][] with the address of another account to preauthorize in the `Authorize` field. To revoke preauthorization, provide the other account's address in the `Unauthorize` field instead. Specify your own address in the `Account` field as usual. You can preauthorize or unauthorize accounts even if you do not currently have DepositAuth enabled; the preauthorization status you set for other accounts is saved, but has no effect unless you enable DepositAuth. An account cannot preauthorize itself. Preauthorizations are one-directional, and have no effect on payments going the opposite direction. -Preauthorizing another account adds a [DepositPreauth object](depositpreauth-object.html) to the ledger, which increases the [owner reserve](reserves.html#owner-reserves) of the account providing the authorization. If the account revokes this preauthorization, doing so removes the object and decreases the owner reserve. +Preauthorizing another account adds a [DepositPreauth object](../../references/protocol/ledger-data/ledger-entry-types/depositpreauth.md) to the ledger, which increases the [owner reserve](reserves.md#owner-reserves) of the account providing the authorization. If the account revokes this preauthorization, doing so removes the object and decreases the owner reserve. After the DepositPreauth transaction has been processed, the authorized account can send funds to your account, even if you have DepositAuth enabled, using any of the following transaction types: @@ -104,16 +104,15 @@ You can use the [deposit_authorized method][] to see if an account is authorized ## See Also - The [DepositPreauth transaction][] reference. -- The [DepositPreauth ledger object type](depositpreauth-object.html). -- The [deposit_authorized method][] of the [`rippled` API](http-websocket-apis.html). -- The [Authorized Trust Lines](authorized-trust-lines.html) feature (`RequireAuth` flag) limits which counterparties can hold non-XRP currencies issued by an account. +- The [DepositPreauth ledger object type](../../references/protocol/ledger-data/ledger-entry-types/depositpreauth.md). +- The [deposit_authorized method][] of the [`rippled` API](../../references/http-websocket-apis/index.md). +- The [Authorized Trust Lines](../tokens/fungible-tokens/authorized-trust-lines.md) feature (`RequireAuth` flag) limits which counterparties can hold non-XRP currencies issued by an account. - The `DisallowXRP` flag indicates that an account should not receive XRP. This is a softer protection than Deposit Authorization, and is not enforced by the XRP Ledger. (Client applications should honor this flag or at least warn about it.) -- The `RequireDest` flag indicates that an account can only receive currency amounts if the sending transaction specifies a [Destination Tag](source-and-destination-tags.html). This protects users from forgetting to indicate the purpose of a payment, but does not protect recipients from unknown senders, who can make up arbitrary destination tags. -- [Partial Payments](partial-payments.html) provide a way for accounts to return unwanted payments while subtracting [transfer fees](transfer-fees.html) and exchange rates from the amount delivered instead of adding them to the amount sent. +- The `RequireDest` flag indicates that an account can only receive currency amounts if the sending transaction specifies a [Destination Tag](../transactions/source-and-destination-tags.md). This protects users from forgetting to indicate the purpose of a payment, but does not protect recipients from unknown senders, who can make up arbitrary destination tags. +- [Partial Payments](../payment-types/partial-payments.md) provide a way for accounts to return unwanted payments while subtracting [transfer fees](../tokens/transfer-fees.md) and exchange rates from the amount delivered instead of adding them to the amount sent. - -[DepositPreauth amendment]: known-amendments.html#depositpreauth -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + +[DepositPreauth amendment]: ../../resources/known-amendments.md#depositpreauth + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/multi-signing.md b/content/concepts/accounts/multi-signing.md index 8ce66d22ad..94625f634a 100644 --- a/content/concepts/accounts/multi-signing.md +++ b/content/concepts/accounts/multi-signing.md @@ -8,7 +8,7 @@ labels: --- # Multi-Signing -Multi-signing in the XRP Ledger is a method of [authorizing transactions](transactions.html#authorizing-transactions) for the XRP Ledger by using a combination of multiple secret keys. You can have any combination of authorization methods enabled for your address, including multi-signing, a [master key pair](cryptographic-keys.html#master-key-pair), and a [regular key pair](cryptographic-keys.html#regular-key-pair). (The only requirement is that _at least one_ method must be enabled.) +Multi-signing in the XRP Ledger is a method of [authorizing transactions](../transactions/index.md#authorizing-transactions) for the XRP Ledger by using a combination of multiple secret keys. You can have any combination of authorization methods enabled for your address, including multi-signing, a [master key pair](cryptographic-keys.md#master-key-pair), and a [regular key pair](cryptographic-keys.md#regular-key-pair). (The only requirement is that _at least one_ method must be enabled.) Benefits of multi-signing include: @@ -50,7 +50,7 @@ For a very important account, you might set the quorum to 3, with 3 participants Another account might also have a quorum of 3. You assign your CEO a weight of 3, 3 Vice Presidents a weight of 2 each, and 3 Directors a weight of 1 each. To approve a transaction for this account requires the approval of all 3 Directors (total weight of 3), 1 Vice President and 1 Director (total weight of 3), 2 Vice Presidents (total weight of 4), or the CEO (total weight of 3). -In each of the previous three use cases, you would disable the master key without configuring a regular key, so that multi-signing is the only way of [authorizing transactions](transactions.html#authorizing-transactions). +In each of the previous three use cases, you would disable the master key without configuring a regular key, so that multi-signing is the only way of [authorizing transactions](../transactions/index.md#authorizing-transactions). There might be a scenario where you create a multi-signing list as a "backup plan." The account owner normally uses a regular key for their transactions (not a multi-signing key). For safety, the owner adds a signer list containing 3 friends, each with a weight of 1, and a quorum of 3. If the account owner were to lose the private key, they can ask their friends to multi-sign a transaction to replace the regular key. @@ -59,28 +59,27 @@ There might be a scenario where you create a multi-signing list as a "backup pla To successfully submit a multi-signed transaction, you must do all of the following: -* The address sending the transaction (specified in the `Account` field) must have a [`SignerList` object in the ledger](signerlist.html). For instructions on how to do this, see [Set Up Multi-Signing](set-up-multi-signing.html). +* The address sending the transaction (specified in the `Account` field) must have a [`SignerList` object in the ledger](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md). For instructions on how to do this, see [Set Up Multi-Signing](../../tutorials/manage-account-settings/set-up-multi-signing.md). * The transaction must include the `SigningPubKey` field as an empty string. -* The transaction must include a [`Signers` field](transaction-common-fields.html#signers-field) containing an array of signatures. +* The transaction must include a [`Signers` field](../../references/protocol/transactions/common-fields.md#signers-field) containing an array of signatures. * The signatures present in the `Signers` array must match signers defined in the `SignerList`. * For the provided signatures, the total weight associated with those signers must be equal or greater than the quorum for the `SignerList`. -* The [transaction cost](transaction-cost.html) (specified in the `Fee` field) must be at least (N+1) times the normal transaction cost, where N is the number of signatures provided. -* All fields of the transaction must be defined before collecting signatures. You cannot [auto-fill](transaction-common-fields.html#auto-fillable-fields) any fields. +* The [transaction cost](../transactions/transaction-cost.md) (specified in the `Fee` field) must be at least (N+1) times the normal transaction cost, where N is the number of signatures provided. +* All fields of the transaction must be defined before collecting signatures. You cannot [auto-fill](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) any fields. * If presented in binary form, the `Signers` array must be sorted based on the numeric value of the signer addresses, with the lowest value first. (If submitted as JSON, the [submit_multisigned method][] handles this automatically.) ## See Also - **Tutorials:** - - [Set Up Multi-Signing](set-up-multi-signing.html) - - [Send a Multi-Signed Transaction](send-a-multi-signed-transaction.html) + - [Set Up Multi-Signing](../../tutorials/manage-account-settings/set-up-multi-signing.md) + - [Send a Multi-Signed Transaction](../../tutorials/manage-account-settings/send-a-multi-signed-transaction.md) - **Concepts:** - - [Cryptographic Keys](cryptographic-keys.html) - - [Special Transaction Cost for Multi-signed transactions](transaction-cost.html#special-transaction-costs) + - [Cryptographic Keys](cryptographic-keys.md) + - [Special Transaction Cost for Multi-signed transactions](../transactions/transaction-cost.md#special-transaction-costs) - **References:** - [SignerListSet transaction][] - - [SignerList object](signerlist.html) + - [SignerList object](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) - [sign_for method][] - [submit_multisigned method][] -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/reserves.md b/content/concepts/accounts/reserves.md index e199b7a960..ad6eea3ff9 100644 --- a/content/concepts/accounts/reserves.md +++ b/content/concepts/accounts/reserves.md @@ -11,9 +11,9 @@ top_nav_grouping: Popular Pages The XRP Ledger applies _reserve requirements_, in XRP, to protect the shared global ledger from growing excessively large as the result of spam or malicious usage. The goal is to constrain the growth of the ledger to match improvements in technology so that a current commodity-level machine can always fit the current ledger in RAM. -To have an account, an address must hold a minimum amount of XRP in the shared global ledger. To fund a new address, you must receive enough XRP at that address to meet the reserve requirement. You cannot send the reserved XRP to others, but you can recover some of the XRP by [deleting the account](deleting-accounts.html). +To have an account, an address must hold a minimum amount of XRP in the shared global ledger. To fund a new address, you must receive enough XRP at that address to meet the reserve requirement. You cannot send the reserved XRP to others, but you can recover some of the XRP by [deleting the account](deleting-accounts.md). -The reserve requirement changes from time to time due to the [Fee Voting](fee-voting.html) process, where validators can agree to new reserve settings. +The reserve requirement changes from time to time due to the [Fee Voting](../consensus-protocol/fee-voting.md) process, where validators can agree to new reserve settings. ## Base Reserve and Owner Reserve @@ -33,14 +33,14 @@ Reserves on other networks may vary. Many objects in the ledger (ledger entries) are owned by a particular account. Usually, the owner is the account that created the object. Each object increases the owner's total reserve requirement by the owner reserve. When objects are removed from the ledger, they no longer count against the reserve requirement. -Objects that count towards their owner's reserve requirement include: [Checks](checks.html), [Deposit Preauthorizations](depositauth.html#preauthorization), [Escrows](escrow.html), [NFT Offers](non-fungible-token-transfers.html), [NFT Pages](non-fungible-tokens.html), [Offers](offer.html), [Payment Channels](payment-channels.html), [Signer Lists](multi-signing.html), [Tickets](tickets.html), and [Trust Lines](trust-lines-and-issuing.html). +Objects that count towards their owner's reserve requirement include: [Checks](../payment-types/checks.md), [Deposit Preauthorizations](depositauth.md#preauthorization), [Escrows](../payment-types/escrow.md), [NFT Offers](../tokens/nfts/trading.md), [NFT Pages](../tokens/nfts/index.md), [Offers](../../references/protocol/ledger-data/ledger-entry-types/offer.md), [Payment Channels](../payment-types/payment-channels.md), [Signer Lists](multi-signing.md), [Tickets](tickets.md), and [Trust Lines](../tokens/fungible-tokens/index.md). Some special cases: -- Non-Fungible Tokens (NFTs) are grouped into pages containing up to 32 NFTs each, and the owner reserve applies per page rather than per NFT. Due to the mechanism for splitting and combining pages, the number of NFTs actually stored per page varies. See also: [Reserve for NFTokenPage objects](nftokenpage.html#nftokenpage-reserve). -- Trust lines (`RippleState` entries) are shared between two accounts. The owner reserve can apply to one or both of them. Most often, the token holder owes a reserve and the issuer does not. See also: [RippleState: Contributing to the Owner Reserve](ripplestate.html#contributing-to-the-owner-reserve). -- Signer lists created before the [MultiSignReserve amendment][] activated in April 2019 count as multiple objects. See also: [Signer Lists and Reserves](signerlist.html#signer-lists-and-reserves). -- An [Owner Directory](directorynode.html) is a ledger entry that lists all objects related to an account, including all objects the account owns. However, the owner directory itself does not count towards the reserve. +- Non-Fungible Tokens (NFTs) are grouped into pages containing up to 32 NFTs each, and the owner reserve applies per page rather than per NFT. Due to the mechanism for splitting and combining pages, the number of NFTs actually stored per page varies. See also: [Reserve for NFTokenPage objects](../../references/protocol/ledger-data/ledger-entry-types/nftokenpage.md#nftokenpage-reserve). +- Trust lines (`RippleState` entries) are shared between two accounts. The owner reserve can apply to one or both of them. Most often, the token holder owes a reserve and the issuer does not. See also: [RippleState: Contributing to the Owner Reserve](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#contributing-to-the-owner-reserve). +- Signer lists created before the [MultiSignReserve amendment][] activated in April 2019 count as multiple objects. See also: [Signer Lists and Reserves](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md#signer-lists-and-reserves). +- An [Owner Directory](../../references/protocol/ledger-data/ledger-entry-types/directorynode.md) is a ledger entry that lists all objects related to an account, including all objects the account owns. However, the owner directory itself does not count towards the reserve. ### Looking Up Reserves @@ -53,31 +53,28 @@ Applications can look up the current base and incremental reserve values using t To determine the owner reserve of an account, multiply the incremental reserve by the number of objects the account owns. To look up the number of objects an account owns, call the [account_info method][] and take `account_data.OwnerCount`. -To calculate an address's total reserve requirement, multiply `OwnerCount` by `reserve_inc_xrp`, then add `reserve_base_xrp`. [Here is a demonstration](build-a-desktop-wallet-in-python.html#codeblock-17) of this calculation in Python. +To calculate an address's total reserve requirement, multiply `OwnerCount` by `reserve_inc_xrp`, then add `reserve_base_xrp`. [Here is a demonstration](../../tutorials/build-apps/build-a-desktop-wallet-in-python.md#codeblock-17) of this calculation in Python. ## Going Below the Reserve Requirement -During transaction processing, the [transaction cost](transaction-cost.html) destroys some of the sending address's XRP balance. This can cause an address's XRP to go below the reserve requirement. You can even destroy _all_ of your XRP this way. +During transaction processing, the [transaction cost](../transactions/transaction-cost.md) destroys some of the sending address's XRP balance. This can cause an address's XRP to go below the reserve requirement. You can even destroy _all_ of your XRP this way. When your account holds less XRP than its current reserve requirement, you cannot send XRP to others, or create new objects that would increase your account's reserve requirement. Even so, the account continues to exist in the ledger and you can still send transactions that don't do these things, as long as you have enough XRP to pay the transaction cost. You can go back above the reserve requirement by receiving enough XRP, or if the reserve requirement decreases below the amount you have. -**Tip:** If your address is below the reserve requirement, you can send an [OfferCreate transactions][] to acquire more XRP and get back above the reserve requirement. However, since you cannot create an [Offer entry in the ledger](offer.html) while you are below the reserve, this transaction can only consume Offers that are already in the order books. +**Tip:** If your address is below the reserve requirement, you can send an [OfferCreate transactions][] to acquire more XRP and get back above the reserve requirement. However, since you cannot create an [Offer entry in the ledger](../../references/protocol/ledger-data/ledger-entry-types/offer.md) while you are below the reserve, this transaction can only consume Offers that are already in the order books. ## Changing the Reserve Requirements -The XRP Ledger has a mechanism to adjust the reserve requirements. Such adjustments may consider, for example, long-term changes in the value of XRP, improvements in the capacity of commodity-level machine hardware, or increased efficiency in the server software implementation. Any changes have to be approved by the consensus process. See [Fee Voting](fee-voting.html) for more information. +The XRP Ledger has a mechanism to adjust the reserve requirements. Such adjustments may consider, for example, long-term changes in the value of XRP, improvements in the capacity of commodity-level machine hardware, or increased efficiency in the server software implementation. Any changes have to be approved by the consensus process. See [Fee Voting](../consensus-protocol/fee-voting.md) for more information. ## See Also - [account_objects method][] - [AccountRoot Object][] -- [Fee Voting](fee-voting.html) +- [Fee Voting](../consensus-protocol/fee-voting.md) - [SetFee pseudo-transaction][] -- [Tutorial: Calculate and display the reserve requirement (Python)](build-a-desktop-wallet-in-python.html#3-display-an-account) +- [Tutorial: Calculate and display the reserve requirement (Python)](../../tutorials/build-apps/build-a-desktop-wallet-in-python.md#3-display-an-account) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/accounts/tickets.md b/content/concepts/accounts/tickets.md index 88a1808b48..c1c64c60a4 100644 --- a/content/concepts/accounts/tickets.md +++ b/content/concepts/accounts/tickets.md @@ -10,38 +10,38 @@ labels: _(Added by the [TicketBatch amendment][].)_ -A Ticket in the XRP Ledger is a way of setting aside a [sequence number][Sequence Number] for a transaction without sending it right away. Tickets allow transactions to be sent outside of the normal sequence order. One use case for this is to allow for [multi-signed transactions](multi-signing.html) where it may take a while to collect the necessary signatures: while collecting signatures for a transaction that uses a Ticket, you can still send other transactions. +A Ticket in the XRP Ledger is a way of setting aside a [sequence number][Sequence Number] for a transaction without sending it right away. Tickets allow transactions to be sent outside of the normal sequence order. One use case for this is to allow for [multi-signed transactions](multi-signing.md) where it may take a while to collect the necessary signatures: while collecting signatures for a transaction that uses a Ticket, you can still send other transactions. ## Background -[Transactions](transactions.html) have sequence numbers so that any given transaction can execute no more than once. Sequence numbers also make sure any given transaction is unique: if you send the exact same amount of money to the same person multiple times, the Sequence Number is one detail that is guaranteed to be different each time. Finally, Sequence Numbers provide an elegant way to put transactions in a consistent order, even if some of them arrive out of order when sent throughout the network. +[Transactions](../transactions/index.md) have sequence numbers so that any given transaction can execute no more than once. Sequence numbers also make sure any given transaction is unique: if you send the exact same amount of money to the same person multiple times, the Sequence Number is one detail that is guaranteed to be different each time. Finally, Sequence Numbers provide an elegant way to put transactions in a consistent order, even if some of them arrive out of order when sent throughout the network. However, there are some situations where sequence numbers are too limiting. For example: - Two or more users share access to an account, each with the ability to send transactions independently. If these users try to send transactions around the same time without coordinating first, they may each try to use the same Sequence number for different transactions, and only one can succeed. - You may want to prepare and sign a transaction in advance, then save it in some secure storage so that it can be executed at any future point if certain events occur. However, if you want to continue using your account as normal in the meantime, you don't know what Sequence number the set-aside transaction will need. -- When [multiple people must sign a transaction](multi-signing.html) to make it valid, it can be difficult to plan more than one transaction at a time. If you number the transactions with separate sequence numbers, you can't send the later-numbered transactions until everyone has signed the previous transactions; but if you use the same sequence number for each pending transactions, only one of them can succeed. +- When [multiple people must sign a transaction](multi-signing.md) to make it valid, it can be difficult to plan more than one transaction at a time. If you number the transactions with separate sequence numbers, you can't send the later-numbered transactions until everyone has signed the previous transactions; but if you use the same sequence number for each pending transactions, only one of them can succeed. Tickets provide a solution to all of these problems by setting aside sequence numbers that can be used later, outside of their usual order, but still no more than once each. ## Tickets Are Reserved Sequence Numbers -A Ticket is a record that a sequence number has been set aside to be used later. An account first sends a [TicketCreate transaction][] to set aside one or more sequence numbers as Tickets; this puts a record in the [ledger's state data](ledgers.html), in the form of a [Ticket object][], for each sequence number reserved. +A Ticket is a record that a sequence number has been set aside to be used later. An account first sends a [TicketCreate transaction][] to set aside one or more sequence numbers as Tickets; this puts a record in the [ledger's state data](../ledgers/index.md), in the form of a [Ticket object][], for each sequence number reserved. Tickets are numbered using the sequence numbers that were set aside to create them. For example, if your account's current sequence number is 101 and you create 3 Tickets, those Tickets have Ticket Sequence numbers 102, 103, and 104. Doing so increases your account's sequence number to 105. -{{ include_svg("img/ticket-creation.svg", "Diagram: Creating three Tickets") }} +[{% inline-svg file="/img/ticket-creation.svg" /%}](/img/ticket-creation.svg "Diagram: Creating three Tickets") Later, you can send a transaction using a specific Ticket instead of a sequence number; doing so removes the corresponding Ticket from the ledger's state data and does not change your account's normal sequence number. You can also still send transactions using normal sequence numbers without using Tickets. You can use any of your available Tickets in any order at any time, but each Ticket can only be used once. -{{ include_svg("img/ticket-usage.svg", "Diagram: Using Ticket 103.") }} +[{% inline-svg file="/img/ticket-usage.svg" /%}](/img/ticket-usage.svg "Diagram: Using Ticket 103.") Continuing the above example, you can send a transaction using sequence number 105 or any of the three Tickets you created. If you send a transaction using Ticket 103, doing so deletes Ticket 103 from the ledger. Your next transaction after that can use sequence number 105, Ticket 102, or Ticket 104. -**Caution:** Each Ticket counts as a separate item for the [owner reserve](reserves.html), so you must set aside 2 XRP for each Ticket. (The XRP becomes available again after you use the Ticket.) This cost can add up quickly if you create a large number of Tickets at once. +**Caution:** Each Ticket counts as a separate item for the [owner reserve](reserves.md), so you must set aside 2 XRP for each Ticket. (The XRP becomes available again after you use the Ticket.) This cost can add up quickly if you create a large number of Tickets at once. -As with sequence numbers, sending a transaction uses up the Ticket _if and only if_ the transaction is confirmed by [consensus](consensus.html). However, transactions that fail to do what they were intended to do can still be confirmed by consensus with [`tec`-class result codes](tec-codes.html). +As with sequence numbers, sending a transaction uses up the Ticket _if and only if_ the transaction is confirmed by [consensus](../consensus-protocol/index.md). However, transactions that fail to do what they were intended to do can still be confirmed by consensus with [`tec`-class result codes](../../references/protocol/transactions/transaction-results/tec-codes.md). To look up what Tickets an account has available, use the [account_objects method][]. @@ -52,24 +52,21 @@ Any account can create and use Tickets on any type of transaction. However, some - Each Ticket can only be used once. It is possible to have multiple different candidate transactions that would use the same Ticket Sequence, but only one of those candidates can be validated by consensus. - Each account cannot have more than 250 Tickets in the ledger at a time. You cannot create more than 250 Tickets at a time, either. - You _can_ use a Ticket to create more Tickets. If you do, the Ticket you used does not count towards the total number of Tickets you can have at once. -- Each Ticket counts toward the [owner reserve](reserves.html), so you must set aside 2 XRP for each Ticket you have not used yet. The XRP becomes available for you to use again after the Ticket is used. -- Within an individual ledger, transactions that use Tickets execute after other transactions from the same sender. If an account has multiple transactions using Tickets in the same ledger version, those Tickets execute in order from lowest Ticket Sequence to highest. (For more information, see the documentation on consensus's [canonical order](consensus-structure.html#calculate-and-share-validations).) -- To "cancel" a Ticket, use the Ticket to [perform a no-op](canceling-a-transaction.html) [AccountSet transaction][]. This deletes the Ticket so that you don't have to meet its reserve requirement. +- Each Ticket counts toward the [owner reserve](reserves.md), so you must set aside 2 XRP for each Ticket you have not used yet. The XRP becomes available for you to use again after the Ticket is used. +- Within an individual ledger, transactions that use Tickets execute after other transactions from the same sender. If an account has multiple transactions using Tickets in the same ledger version, those Tickets execute in order from lowest Ticket Sequence to highest. (For more information, see the documentation on consensus's [canonical order](../consensus-protocol/consensus-structure.md#calculate-and-share-validations).) +- To "cancel" a Ticket, use the Ticket to [perform a no-op](../transactions/finality-of-results/canceling-a-transaction.md) [AccountSet transaction][]. This deletes the Ticket so that you don't have to meet its reserve requirement. ## See Also - **Concepts:** - - [Multi-Signing](multi-signing.html) + - [Multi-Signing](multi-signing.md) - **Tutorials:** - - [Use Tickets](use-tickets.html) + - [Use Tickets](../../tutorials/manage-account-settings/use-tickets.md) - **References:** - [TicketCreate transaction][] - - [Transaction Common Fields](transaction-common-fields.html) - - [Ticket object](ticket.html) + - [Transaction Common Fields](../../references/protocol/transactions/common-fields.md) + - [Ticket object](../../references/protocol/ledger-data/ledger-entry-types/ticket.md) - [account_objects method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/consensus-protocol/consensus-principles-and-rules.md b/content/concepts/consensus-protocol/consensus-principles-and-rules.md index 1440414662..8a8794b3b3 100644 --- a/content/concepts/consensus-protocol/consensus-principles-and-rules.md +++ b/content/concepts/consensus-protocol/consensus-principles-and-rules.md @@ -113,22 +113,18 @@ The XRP Ledger's consensus algorithm provides a robust alternative to proof of w ## See Also - **Concepts:** - - [Consensus](consensus.html) - - [Consensus Research](consensus-research.html) + - [Consensus](index.md) + - [Consensus Research](consensus-research.md) - [XRPL Consensus Mechanism Video](https://www.youtube.com/watch?v=k6VqEkqRTmk&list=PLJQ55Tj1hIVZtJ_JdTvSum2qMTsedWkNi&index=2) - **Tutorials:** - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Run `rippled` as a Validator](run-rippled-as-a-validator.html) + - [Reliable Transaction Submission](../transactions/reliable-transaction-submission.md) + - [Run `rippled` as a Validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **References:** - - [Ledger Format Reference](ledger-data-formats.html) - - [Transaction Format Reference](transaction-formats.html) + - [Ledger Format Reference](../../references/protocol/ledger-data/index.md) + - [Transaction Format Reference](../../references/protocol/transactions/index.md) - [consensus_info method][] - [validator_list_sites method][] - [validators method][] - [consensus_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/consensus-protocol/consensus-protections.md b/content/concepts/consensus-protocol/consensus-protections.md index 7eac2ced27..3cf56b3323 100644 --- a/content/concepts/consensus-protocol/consensus-protections.md +++ b/content/concepts/consensus-protocol/consensus-protections.md @@ -23,7 +23,7 @@ _Validators_ are servers that actively contribute to the process of deciding eac - Behaving maliciously as a result of pressure from outside factors, such as threats from an oppressive government. - Accidentally sending confusing or malformed messages due to a bug or outdated software. -In general, consensus can continue without problems as long as only a small percentage (less than about 20%) of trusted validators are misbehaving at a given time. (For the exact percentages and the math behind them, see the latest [Consensus Research](consensus-research.html).) +In general, consensus can continue without problems as long as only a small percentage (less than about 20%) of trusted validators are misbehaving at a given time. (For the exact percentages and the math behind them, see the latest [Consensus Research](consensus-research.md).) If more than about 20% of validators are unreachable or not behaving properly, the network fails to reach a consensus. During this time, new transactions can be tentatively processed, but new ledger versions cannot be validated, so those transactions' final outcomes are not certain. In this situation, it would become immediately obvious that the XRP Ledger is unhealthy, prompting intervention from human participants who can decide whether to wait, or reconfigure their set of trusted validators. @@ -63,11 +63,11 @@ By default, XRP Ledger servers are configured to use validator list sites run by Technically, if you run a server, you can configure your own list site or explicitly choose validators to trust on an individual basis, but this is not recommended. If your chosen set of validators does not have enough overlap with others, your server may diverge from the rest of the network, and you could lose money by taking action based on your server's divergent state. -Research is ongoing to design an improved consensus protocol that allows more heterogeneous validator lists. For more information, see the [Consensus Research](consensus-research.html) page. +Research is ongoing to design an improved consensus protocol that allows more heterogeneous validator lists. For more information, see the [Consensus Research](consensus-research.md) page. ## See Also -- For a **detailed description** of the consensus protocol, see [Consensus](consensus.html). -- For an explanation of the **design decisions and background** behind the consensus protocol, see [Consensus Principles and Rules](consensus-principles-and-rules.html). -- For **academic research** exploring the properties and limitations of the protocol, see [Consensus Research](consensus-research.html). +- For a **detailed description** of the consensus protocol, see [Consensus](index.md). +- For an explanation of the **design decisions and background** behind the consensus protocol, see [Consensus Principles and Rules](consensus-principles-and-rules.md). +- For **academic research** exploring the properties and limitations of the protocol, see [Consensus Research](consensus-research.md). diff --git a/content/concepts/consensus-protocol/consensus-structure.md b/content/concepts/consensus-protocol/consensus-structure.md index e98ef7a5f3..566c4149f0 100644 --- a/content/concepts/consensus-protocol/consensus-structure.md +++ b/content/concepts/consensus-protocol/consensus-structure.md @@ -9,7 +9,7 @@ labels: _Written by Dave Cohen, David Schwartz, and Arthur Britto._ -This article provides a high level overview of the XRP Ledger, the information it stores, and how [transactions](transaction-formats.html) result in changes to the ledger. +This article provides a high level overview of the XRP Ledger, the information it stores, and how [transactions](../../references/protocol/transactions/index.md) result in changes to the ledger. When building applications on the XRP Ledger, it is important to understand this process, so as not to be surprised by the behavior of XRP Ledger APIs and their effects. @@ -18,21 +18,21 @@ When building applications on the XRP Ledger, it is important to understand this The peer-to-peer XRP Ledger network provides a worldwide, shared ledger, which gives applications authoritative information about the state of its contents. This state information includes: -- settings for each [account](accounts.html) -- balances of XRP and [tokens](tokens.html) +- settings for each [account](../accounts/accounts.md) +- balances of XRP and [tokens](../tokens/index.md) - offers in the distributed exchange -- network settings, such as [transaction costs](transaction-cost.html) and [reserve](reserves.html) amounts +- network settings, such as [transaction costs](../transactions/transaction-cost.md) and [reserve](../accounts/reserves.md) amounts - a timestamp -For a full, technical description of which data is included in a ledger version, see the [Ledger Format Reference](ledger-data-formats.html). +For a full, technical description of which data is included in a ledger version, see the [Ledger Format Reference](../../references/protocol/ledger-data/index.md). -{{ include_svg("img/anatomy-of-a-ledger-complete.svg", "Figure 1: XRP Ledger Elements") }} +[{% inline-svg file="/img/anatomy-of-a-ledger-complete.svg" /%}](/img/anatomy-of-a-ledger-complete.svg "Figure 1: XRP Ledger Elements") _Figure 1: XRP Ledger Elements_ The XRP Ledger has a new ledger version every several seconds. When the network agrees on the contents of a ledger version, that ledger version is _validated_, and its contents can never change. The validated ledger versions that preceded it form the ledger history. Even the most recent validated ledger is part of history, as it represents the state of the network as of a short time ago. In the present, the network is evaluating transactions which may be applied and finalized in the next ledger version. While this evaluation is happening, the network has candidate ledger versions that are not yet validated. -{{ include_svg("img/ledger-history.svg", "Figure 2: XRP Ledger History")}} +[{% inline-svg file="/img/ledger-history.svg" /%}](/img/ledger-history.svg "Figure 2: XRP Ledger History") _Figure 2: XRP Ledger History_ @@ -40,31 +40,31 @@ A ledger version has two identifiers. One identifier is its _ledger index_. Ledg As servers propose transactions to apply to the ledger, they may create several candidate ledger versions with slightly different contents. These candidate ledger versions have the same ledger index but different ledger hashes. Of the many candidates, only one can become validated. All the other candidate ledger versions are discarded. Thus, there is exactly one validated ledger hash for each ledger index in history. -User level changes to the ledger are the results of transactions. Examples of [transactions](transaction-formats.html) include payments, changes to account settings or trust lines, and offers to trade. Each transaction authorizes one or more changes to the ledger, and is cryptographically signed by an account owner. Transactions are the only way to authorize changes to an account, or to change anything else in the ledger. +User level changes to the ledger are the results of transactions. Examples of [transactions](../../references/protocol/transactions/index.md) include payments, changes to account settings or trust lines, and offers to trade. Each transaction authorizes one or more changes to the ledger, and is cryptographically signed by an account owner. Transactions are the only way to authorize changes to an account, or to change anything else in the ledger. Each ledger version also contains a set of transactions and metadata about those transactions. The transactions it includes are only the ones that have been applied to the previous ledger version to create the new ledger version. The metadata records the exact effects of the transaction on the ledger's state data. -{{ include_svg("img/ledger-changes.svg", "Figure 3: Transactions Applied to Ledger Version")}} +[{% inline-svg file="/img/ledger-changes.svg" /%}](/img/ledger-changes.svg "Figure 3: Transactions Applied to Ledger Version") _Figure 3: Transactions Applied to Ledger Version_ The set of transactions included in a ledger instance are recorded in that ledger and allow audits of the XRP Ledger history. If an account balance is different in ledger N+1 than it was in ledger N, then ledger N+1 contains the transaction(s) responsible for the change. -Transactions that appear in a validated ledger may have succeeded in changing the ledger, or may have been processed without doing the requested action. Successful transactions have the **`tesSUCCESS`** [result code](transaction-results.html) which indicates the requested changes are applied to the ledger. Failed transactions in the ledger have **`tec`** class result codes.1 +Transactions that appear in a validated ledger may have succeeded in changing the ledger, or may have been processed without doing the requested action. Successful transactions have the **`tesSUCCESS`** [result code](../../references/protocol/transactions/transaction-results/transaction-results.md) which indicates the requested changes are applied to the ledger. Failed transactions in the ledger have **`tec`** class result codes.1 -All transactions included in a ledger destroy some XRP as a [transaction cost](transaction-cost.html), regardless of whether they had a **`tes`** or **`tec`** code. The exact amount of XRP to destroy is defined by the signed transaction instructions. +All transactions included in a ledger destroy some XRP as a [transaction cost](../transactions/transaction-cost.md), regardless of whether they had a **`tes`** or **`tec`** code. The exact amount of XRP to destroy is defined by the signed transaction instructions. There are other classes of result codes besides **`tes`** and **`tec`**. Any other classes of result code indicate provisional failures returned by API calls. Only **`tes`** and **`tec`** codes appear in ledgers. Transactions that are not included in ledgers cannot have any effect on the ledger state (including XRP balances), but transitions that provisionally failed may still end up succeeding. -When working with [XRP Ledger APIs](http-websocket-apis.html), applications must distinguish between candidate transactions proposed for inclusion in a ledger versus validated transactions which are included in a validated ledger. Only transaction results found in a validated ledger are immutable. A candidate transaction may eventually be included in a validated ledger, or it may not. +When working with [XRP Ledger APIs](../../references/http-websocket-apis/index.md), applications must distinguish between candidate transactions proposed for inclusion in a ledger versus validated transactions which are included in a validated ledger. Only transaction results found in a validated ledger are immutable. A candidate transaction may eventually be included in a validated ledger, or it may not. -Important: Some [`rippled` APIs](http-websocket-apis.html) provide provisional results, based on candidate transactions 2. Applications should never rely on provisional results to determine the final outcome of a transaction. The only way to know with certainty that a transaction finally succeeded is to check the status of the transaction until it is both in a validated ledger and has result code `tesSUCCESS`. If the transaction is in a validated ledger with any other result code, it has failed. If the ledger specified in a transaction’s [`LastLedgerSequence`](transaction-common-fields.html) has been validated, yet the transaction does not appear in that ledger or any before it, then that transaction has failed and can never appear in any ledger. An outcome is final only for transactions that appear in a validated ledger or can never appear because of `LastLedgerSequence` restrictions as explained later in this document. +Important: Some [`rippled` APIs](../../references/http-websocket-apis/index.md) provide provisional results, based on candidate transactions 2. Applications should never rely on provisional results to determine the final outcome of a transaction. The only way to know with certainty that a transaction finally succeeded is to check the status of the transaction until it is both in a validated ledger and has result code `tesSUCCESS`. If the transaction is in a validated ledger with any other result code, it has failed. If the ledger specified in a transaction’s [`LastLedgerSequence`](../../references/protocol/transactions/common-fields.md) has been validated, yet the transaction does not appear in that ledger or any before it, then that transaction has failed and can never appear in any ledger. An outcome is final only for transactions that appear in a validated ledger or can never appear because of `LastLedgerSequence` restrictions as explained later in this document. ## The XRP Ledger Protocol – Consensus and Validation -The peer-to-peer XRP Ledger network consists of many independent XRP Ledger servers (typically running [`rippled`](xrpl-servers.html)) that accept and process transactions. Client applications sign and send transactions to XRP Ledger servers, which relay these candidate transactions throughout the network for processing. Examples of client applications include mobile and web wallets, gateways to financial institutions, and electronic trading platforms. +The peer-to-peer XRP Ledger network consists of many independent XRP Ledger servers (typically running [`rippled`](../networks-and-servers/index.md)) that accept and process transactions. Client applications sign and send transactions to XRP Ledger servers, which relay these candidate transactions throughout the network for processing. Examples of client applications include mobile and web wallets, gateways to financial institutions, and electronic trading platforms. -{{ include_svg("img/xrp-ledger-network.svg", "Figure 4: Participants in the XRP Ledger Protocol") }} +[{% inline-svg file="/img/xrp-ledger-network.svg" /%}](/img/xrp-ledger-network.svg "Figure 4: Participants in the XRP Ledger Protocol") _Figure 4: Participants in the XRP Ledger Protocol_ @@ -78,17 +78,17 @@ The servers on the network share information about candidate transactions. Throu During consensus, each server evaluates proposals from a specific set of servers, known as that server's trusted validators, or _Unique Node List (UNL)_.5 Trusted validators represent a subset of the network which, when taken collectively, is "trusted" not to collude in an attempt to defraud the server evaluating the proposals. This definition of "trust" does not require that each individual chosen validator is trusted. Rather, validators are chosen based on the expectation they will not collude in a coordinated effort to falsify data relayed to the network 6. -{{ include_svg("img/consensus-rounds.svg", "Figure 5: Validators Propose and Revise Transaction Sets") }} +[{% inline-svg file="/img/consensus-rounds.svg" /%}](/img/consensus-rounds.svg "Figure 5: Validators Propose and Revise Transaction Sets") _Figure 5: Validators Propose and Revise Transaction Sets — At the start of consensus, validators may have different sets of transactions. In later rounds, servers modify their proposals to match what their trusted validators proposed. This process determines which transactions they should apply to the ledger version currently being discussed, and which they should postpone for later ledger versions._ Candidate transactions that are not included in the agreed-upon proposal remain candidate transactions. They may be considered again in for the next ledger version. Typically, a transaction which is omitted from one ledger version is included in the next ledger version. -In some circumstances, a transaction could fail to achieve consensus indefinitely. One such circumstance is if the network increases the required [transaction cost](transaction-cost.html) to a value higher than the transaction provides. The transaction could potentially succeed if the fees are lowered at some point in the future. To ensure that a transaction either succeeds or fails within a limited amount of time, transactions can be set to expire if they are not processed by a certain ledger index. For more information, see [Reliable Transaction Submission](reliable-transaction-submission.html). +In some circumstances, a transaction could fail to achieve consensus indefinitely. One such circumstance is if the network increases the required [transaction cost](../transactions/transaction-cost.md) to a value higher than the transaction provides. The transaction could potentially succeed if the fees are lowered at some point in the future. To ensure that a transaction either succeeds or fails within a limited amount of time, transactions can be set to expire if they are not processed by a certain ledger index. For more information, see [Reliable Transaction Submission](../transactions/reliable-transaction-submission.md). ### Validation -Validation is the second stage of the overall consensus process, which verifies that the servers got the same results and declares a ledger version final. In rare cases, the first stage of [consensus can fail](consensus-principles-and-rules.html#consensus-can-fail); validation provides a confirmation afterward so that servers can recognize this and act accordingly. +Validation is the second stage of the overall consensus process, which verifies that the servers got the same results and declares a ledger version final. In rare cases, the first stage of [consensus can fail](consensus-principles-and-rules.md#consensus-can-fail); validation provides a confirmation afterward so that servers can recognize this and act accordingly. Validation can be broken up into roughly two parts: @@ -110,7 +110,7 @@ When the consensus process completes, each server independently computes a new l 3. Process each transaction according to its instructions, in order. Update the ledger's state data accordingly. - If the transaction cannot be successfully executed, include the transaction with a [`tec`-class result code](tec-codes.html).1 + If the transaction cannot be successfully executed, include the transaction with a [`tec`-class result code](../../references/protocol/transactions/transaction-results/tec-codes.md).1 For certain "retriable" transaction failures, instead move the transaction to the end of the canonical order to be retried after other transactions in the same ledger version have executed. @@ -120,7 +120,7 @@ When the consensus process completes, each server independently computes a new l 5. Calculate the identifying hash of the new ledger version. -{{ include_svg("img/consensus-calculate-validation.svg", "Figure 7: An XRP Ledger Server Calculates a Ledger Validation") }} +[{% inline-svg file="/img/consensus-calculate-validation.svg" /%}](/img/consensus-calculate-validation.svg "Figure 7: An XRP Ledger Server Calculates a Ledger Validation") _Figure 7: An XRP Ledger Server Calculates a Ledger Validation — Each server applies agreed-upon transactions to the previous validated ledger. Validators send their results to the entire network._ @@ -128,7 +128,7 @@ _Figure 7: An XRP Ledger Server Calculates a Ledger Validation — Each server a Validators each relay their results in the form of a signed message containing the hash of the ledger version they calculated. These messages, called _validations_, allow each server to compare the ledger it computed with those of its peers. -{{ include_svg("img/consensus-declare-validation.svg", "Figure 8: Ledger is Validated When Supermajority of Peers Calculate the Same Result Result") }} +[{% inline-svg file="/img/consensus-declare-validation.svg" /%}](/img/consensus-declare-validation.svg "Figure 8: Ledger is Validated When Supermajority of Peers Calculate the Same Result Result") _Figure 8: Ledger is Validated When Supermajority of Peers Calculate the Same Result — Each server compares its calculated ledger with the hashes received from its chosen validators. If not in agreement, the server must recalculate or retrieve the correct ledger._ @@ -136,7 +136,7 @@ Servers in the network recognize a ledger instance as validated when a supermajo In cases where a server is in the minority, having computed a ledger that differs from its peers, the server disregards the ledger it computed 8. It recomputes the correct ledger, or retrieves the correct ledger as needed. -If the network fails to achieve supermajority agreement on validations, this implies that transaction volume was too high or network latency too great for the consensus process to produce consistent proposals. In this case, the servers repeat the consensus process for a new ledger version. As time passes since consensus began, it becomes increasingly likely that a majority of the servers have received the same set of candidate transactions, as each consensus round reduces disagreement. The XRP Ledger dynamically adjusts [transaction costs](transaction-cost.html) and the time to wait for consensus in response to these conditions. +If the network fails to achieve supermajority agreement on validations, this implies that transaction volume was too high or network latency too great for the consensus process to produce consistent proposals. In this case, the servers repeat the consensus process for a new ledger version. As time passes since consensus began, it becomes increasingly likely that a majority of the servers have received the same set of candidate transactions, as each consensus round reduces disagreement. The XRP Ledger dynamically adjusts [transaction costs](../transactions/transaction-cost.md) and the time to wait for consensus in response to these conditions. Once they reach supermajority agreement on validations, the servers work with the new validated ledger, ledger index N+1. The consensus and validation process repeats 9, considering candidate transactions that were not included in the last round along with new transactions submitted in the meantime. @@ -157,7 +157,7 @@ The lifecycle of a single transaction is as follows: - If a consensus round fails, the consensus process repeats until it succeeds. - The validated ledger includes the transaction and its effects on the ledger state. -Applications should only rely on information in validated ledgers, not on the provisional results of candidate transactions. Some [`rippled` APIs](http-websocket-apis.html) initially return provisional results for transactions. The results of a transaction become immutable only when that transaction is included in a validated ledger, or the transaction includes `LastLedgerSequence` and does not appear in any validated ledger with that ledger index or lower. +Applications should only rely on information in validated ledgers, not on the provisional results of candidate transactions. Some [`rippled` APIs](../../references/http-websocket-apis/index.md) initially return provisional results for transactions. The results of a transaction become immutable only when that transaction is included in a validated ledger, or the transaction includes `LastLedgerSequence` and does not appear in any validated ledger with that ledger index or lower. Best practices for applications submitting transactions include: @@ -173,14 +173,14 @@ Best practices for applications submitting transactions include: ## See Also - **Concepts:** - - [Consensus Research](consensus-research.html) + - [Consensus Research](consensus-research.md) - [The Consensus Mechanism (YouTube)](https://www.youtube.com/watch?v=k6VqEkqRTmk&list=PLJQ55Tj1hIVZtJ_JdTvSum2qMTsedWkNi&index=2) - **Tutorials:** - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Run `rippled` as a Validator](run-rippled-as-a-validator.html) + - [Reliable Transaction Submission](../transactions/reliable-transaction-submission.md) + - [Run `rippled` as a Validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **References:** - - [Ledger Format Reference](ledger-data-formats.html) - - [Transaction Format Reference](transaction-formats.html) + - [Ledger Format Reference](../../references/protocol/ledger-data/index.md) + - [Transaction Format Reference](../../references/protocol/transactions/index.md) - [consensus_info method][] - [validator_list_sites method][] - [validators method][] @@ -191,7 +191,7 @@ Best practices for applications submitting transactions include: ## Footnotes -1 – Transactions with [**tec** result codes](tec-codes.html) do not perform the requested action, but do have effects on the ledger. To prevent abuse of the network and to pay for the cost of distributing the transaction, they destroy the XRP [transaction cost](transaction-cost.html). To not block other transactions submitted by the same sender around the same time, they increment the sending account's [sequence number](basic-data-types.html#account-sequence). Transactions with `tec`-class results sometimes also perform maintenance such as deleting expired objects or unfunded trade offers. +1 – Transactions with [**tec** result codes](../../references/protocol/transactions/transaction-results/tec-codes.md) do not perform the requested action, but do have effects on the ledger. To prevent abuse of the network and to pay for the cost of distributing the transaction, they destroy the XRP [transaction cost](../transactions/transaction-cost.md). To not block other transactions submitted by the same sender around the same time, they increment the sending account's [sequence number](../../references/protocol/data-types/basic-data-types.md#account-sequence). Transactions with `tec`-class results sometimes also perform maintenance such as deleting expired objects or unfunded trade offers. 2 – For example, consider a scenario where Alice has $100, and sends all of it to Bob. If an application first submits that payment transaction, then immediately after checks Alice’s balance, the API returns $0. This value is based on the provisional result of a candidate transaction. There are circumstances in which the payment fails and Alice’s balance remains $100 (or, due to other transactions, become some other amount). The only way to know with certainty that Alice’s payment to Bob succeeded is to check the status of the transaction until it is both in a validated ledger and has result code **`tesSUCCESS`**. If the transaction is in a validated ledger with any other result code, the payment has failed. @@ -201,7 +201,7 @@ Best practices for applications submitting transactions include: 5 – Each server defines its own trusted validators, but the consistency of the network depends on different servers choosing lists that have a high degree of overlap. For this reason, Ripple publishes a list of recommended validators. -6 – If proposals from all validators were evaluated, instead of exclusively from the validators chosen not to collude, a malicious attacker could run more validators to gain disproportionate power over the validation process, so they could introduce invalid transactions or omit valid transactions from proposals. The chosen validator list [defends against Sybil attacks](consensus-protections.html#sybil-attacks). +6 – If proposals from all validators were evaluated, instead of exclusively from the validators chosen not to collude, a malicious attacker could run more validators to gain disproportionate power over the validation process, so they could introduce invalid transactions or omit valid transactions from proposals. The chosen validator list [defends against Sybil attacks](consensus-protections.md#sybil-attacks). 7 – The supermajority threshold, as of November 2014, requires that at least 80% of peers must agree for a ledger to be validated. This happens to be the same percentage required by a round of consensus. Both thresholds are subject to change and need not be equal. @@ -211,8 +211,4 @@ Best practices for applications submitting transactions include: 10 – A `rippled` server can respond to API requests even without a complete ledger history. Interruptions in service or network connectivity can lead to missing ledgers, or gaps, in the server’s ledger history. Over time, if configured to, `rippled` fills in gaps in its history. When testing for missing transactions, it is important to verify against a server with continuous complete ledgers from the time the transaction was submitted until its `LastLedgerSequence`. Use the [server_info method][] to determine which ledgers are available to a particular server. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/consensus-protocol/fee-voting.md b/content/concepts/consensus-protocol/fee-voting.md index 7c1bdfc271..7978c9b3a7 100644 --- a/content/concepts/consensus-protocol/fee-voting.md +++ b/content/concepts/consensus-protocol/fee-voting.md @@ -8,9 +8,9 @@ labels: --- # Fee Voting -Validators can vote for changes to basic [transaction cost](transaction-cost.html) as well as [reserve requirements](reserves.html). If the preferences in a validator's configuration are different than the network's current settings, the validator expresses its preferences to the network periodically. If a quorum of validators agrees on a change, they can apply a change that takes effect thereafter. Validators may do this for various reasons, especially to adjust to long-term changes in the value of XRP. +Validators can vote for changes to basic [transaction cost](../transactions/transaction-cost.md) as well as [reserve requirements](../accounts/reserves.md). If the preferences in a validator's configuration are different than the network's current settings, the validator expresses its preferences to the network periodically. If a quorum of validators agrees on a change, they can apply a change that takes effect thereafter. Validators may do this for various reasons, especially to adjust to long-term changes in the value of XRP. -Operators of [`rippled` validators](run-rippled-as-a-validator.html) can set their preferences for the transaction cost and reserve requirements in the `[voting]` stanza of the `rippled.cfg` file. +Operators of [`rippled` validators](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) can set their preferences for the transaction cost and reserve requirements in the `[voting]` stanza of the `rippled.cfg` file. **Caution:** Insufficient requirements, if adopted by a consensus of trusted validators, could expose the XRP Ledger peer-to-peer network to denial-of-service attacks. @@ -28,7 +28,7 @@ Every 256th ledger is called a "flag" ledger. (A flag ledger is defined such tha In the flag ledger itself, nothing happens, but validators receive and take note of the votes from other validators they trust. -After counting the votes of other validators, each validator attempts to compromise between its own preferences and the preferences of a majority of validators it trusts. (For example, if one validator wants to raise the minimum transaction cost from 10 to 100, but most validators only want to raise it from 10 to 20, the one validator settles on the change to raise the cost to 20. However, the one validator never settles on a value lower than 10 or higher than 100.) If a compromise is possible, the validator inserts a [SetFee pseudo-transaction](setfee.html) into its proposal for the ledger following the flag ledger. Other validators who want the same change insert the same SetFee pseudo-transaction into their proposals for the same ledger. (Validators whose preferences match the existing network settings do nothing.) If a SetFee pseudo-transaction survives the consensus process to be included in a validated ledger, then the new transaction cost and reserve settings denoted by the SetFee pseudo-transaction take effect starting with the following ledger. +After counting the votes of other validators, each validator attempts to compromise between its own preferences and the preferences of a majority of validators it trusts. (For example, if one validator wants to raise the minimum transaction cost from 10 to 100, but most validators only want to raise it from 10 to 20, the one validator settles on the change to raise the cost to 20. However, the one validator never settles on a value lower than 10 or higher than 100.) If a compromise is possible, the validator inserts a [SetFee pseudo-transaction](../../references/protocol/transactions/pseudo-transaction-types/setfee.md) into its proposal for the ledger following the flag ledger. Other validators who want the same change insert the same SetFee pseudo-transaction into their proposals for the same ledger. (Validators whose preferences match the existing network settings do nothing.) If a SetFee pseudo-transaction survives the consensus process to be included in a validated ledger, then the new transaction cost and reserve settings denoted by the SetFee pseudo-transaction take effect starting with the following ledger. In short: @@ -39,7 +39,7 @@ In short: ## Maximum Fee Values -The maximum possible values for the fees are limited by the internal data types stored in the [FeeSettings ledger object](feesettings.html). These values are as follows: +The maximum possible values for the fees are limited by the internal data types stored in the [FeeSettings ledger object](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md). These values are as follows: | Parameter | Maximum Value (drops) | Maximum Value (XRP) |-----------|-----------------------|----| @@ -51,21 +51,16 @@ The maximum possible values for the fees are limited by the internal data types ## See Also - **Concepts:** - - [Amendments](amendments.html) - - [Transaction Cost](transaction-cost.html) - - [Reserves](reserves.html) - - [Transaction Queue](transaction-queue.html) + - [Amendments](../networks-and-servers/amendments.md) + - [Transaction Cost](../transactions/transaction-cost.md) + - [Reserves](../accounts/reserves.md) + - [Transaction Queue](../transactions/transaction-queue.md) - **Tutorials:** - - [Configure `rippled`](configure-rippled.html) + - [Configure `rippled`](../../infrastructure/configuration/index.md) - **References:** - [fee method][] - [server_info method][] - - [FeeSettings object](feesettings.html) + - [FeeSettings object](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) - [SetFee pseudo-transaction][] - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/consensus-protocol/index.md b/content/concepts/consensus-protocol/index.md index 4379dd4cb9..e3fb6963c9 100644 --- a/content/concepts/consensus-protocol/index.md +++ b/content/concepts/consensus-protocol/index.md @@ -25,11 +25,11 @@ The XRP Ledger uses a consensus protocol unlike any digital asset that came befo These properties are sometimes summarized as the following principles, in order of priority: **Correctness, Agreement, Forward Progress**. -This protocol is still evolving, as is our knowledge of its limits and possible failure cases. For academic research on the protocol itself, see [Consensus Research](consensus-research.html). +This protocol is still evolving, as is our knowledge of its limits and possible failure cases. For academic research on the protocol itself, see [Consensus Research](consensus-research.md). ## Background -Consensus protocols are a solution to the _double-spend problem_: the challenge of preventing someone from successfully spending the same digital money twice. The hardest part about this problem is putting transactions in order: without a central authority, it can be difficult to resolve disputes about which transaction comes first when you have two or more mutually-exclusive transactions sent around the same time. For a detailed analysis of the double-spend problem, how the XRP Ledger Consensus Protocol solves this problem, and the tradeoffs and limitations involved, see [Consensus Principles and Rules](consensus-principles-and-rules.html). +Consensus protocols are a solution to the _double-spend problem_: the challenge of preventing someone from successfully spending the same digital money twice. The hardest part about this problem is putting transactions in order: without a central authority, it can be difficult to resolve disputes about which transaction comes first when you have two or more mutually-exclusive transactions sent around the same time. For a detailed analysis of the double-spend problem, how the XRP Ledger Consensus Protocol solves this problem, and the tradeoffs and limitations involved, see [Consensus Principles and Rules](consensus-principles-and-rules.md). ## Ledger History @@ -40,7 +40,7 @@ The XRP Ledger processes transactions in blocks called "ledger versions", or "le - The set of transactions that have been applied to the previous ledger to result in this one. - Metadata about the current ledger version, such as its ledger index, a [cryptographic hash](https://en.wikipedia.org/wiki/Cryptographic_hash_function) that uniquely identifies its contents, and information about the parent ledger that was used as a basis for building this one. -{{ include_svg("img/anatomy-of-a-ledger-simplified.svg", "Figure 1: Anatomy of a ledger version, which includes transactions, state, and metadata") }} +[{% inline-svg file="/img/anatomy-of-a-ledger-simplified.svg" /%}](/img/anatomy-of-a-ledger-simplified.svg "Figure 1: Anatomy of a ledger version, which includes transactions, state, and metadata") Each ledger version is numbered with a _ledger index_ and builds on a previous ledger version whose index is one less, going all the way back to a starting point called the _genesis ledger_ with ledger index 1.[¹](#footnote-1) Like Bitcoin and other blockchain technologies, this forms a public history of all transactions and their results. Unlike many blockchain technologies, each new "block" in the XRP Ledger contains the entirety of the current state, so you don't need to collect the entire history to know what's happening now.[²](#footnote-2) @@ -49,15 +49,15 @@ The main goal of the XRP Ledger Consensus Protocol is to agree on a set of trans ## Trust-Based Validation -The core principle behind the XRP Ledger's consensus mechanism is that a little trust goes a long way. Each participant in the network chooses a set of _validators_, servers [specifically configured to participate actively in consensus](run-rippled-as-a-validator.html), run by different parties who are expected to behave honestly most of the time according to the protocol. More importantly, the set of chosen validators should not be likely to collude with one another to break the rules in the exact same way. This list is called a _Unique Node List_, or UNL. +The core principle behind the XRP Ledger's consensus mechanism is that a little trust goes a long way. Each participant in the network chooses a set of _validators_, servers [specifically configured to participate actively in consensus](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md), run by different parties who are expected to behave honestly most of the time according to the protocol. More importantly, the set of chosen validators should not be likely to collude with one another to break the rules in the exact same way. This list is called a _Unique Node List_, or UNL. As the network progresses, each server listens to its trusted validators[³](#footnote-3); as long as a large enough percentage of them agree that a set of transactions should occur and that a given ledger is the result, the server declares a consensus. If they don't agree, validators modify their proposals to more closely match the other validators they trust, repeating the process in several rounds until they reach a consensus. -{{ include_svg("img/consensus-rounds.svg", "Figure 2: Consensus rounds. Validators revise their proposals to match other validators they trust") }} +[{% inline-svg file="/img/consensus-rounds.svg" /%}](/img/consensus-rounds.svg "Figure 2: Consensus rounds. Validators revise their proposals to match other validators they trust") It's OK if a small proportion of validators don't work properly all the time. As long as fewer than 20% of trusted validators are faulty, consensus can continue unimpeded; and confirming an invalid transaction would require over 80% of trusted validators to collude. If more than 20% but less than 80% of trusted validators are faulty, the network stops making progress. -For a longer exploration of how the XRP Ledger Consensus Protocol responds to various challenges, attacks, and failure cases, see [Consensus Protections Against Attacks and Failure Modes](consensus-protections.html). +For a longer exploration of how the XRP Ledger Consensus Protocol responds to various challenges, attacks, and failure cases, see [Consensus Protections Against Attacks and Failure Modes](consensus-protections.md). ---- diff --git a/content/concepts/consensus-protocol/invariant-checking.md b/content/concepts/consensus-protocol/invariant-checking.md index 240c86713a..487bf92b1a 100644 --- a/content/concepts/consensus-protocol/invariant-checking.md +++ b/content/concepts/consensus-protocol/invariant-checking.md @@ -77,19 +77,19 @@ The XRP Ledger checks all the following invariants on each transaction: ### Transaction Fee Check - **Invariant Condition(s):** - - The [transaction cost](transaction-cost.html) amount must never be negative, nor larger than the cost specified in the transaction. + - The [transaction cost](../transactions/transaction-cost.md) amount must never be negative, nor larger than the cost specified in the transaction. ### XRP Not Created - **Invariant Condition(s):** - - A transaction must not create XRP and should only destroy the XRP [transaction cost](transaction-cost.html). + - A transaction must not create XRP and should only destroy the XRP [transaction cost](../transactions/transaction-cost.md). ### Account Roots Not Deleted - **Invariant Condition(s):** - - An [account](accounts.html) cannot be deleted from the ledger except by an [AccountDelete transaction][]. + - An [account](../accounts/accounts.md) cannot be deleted from the ledger except by an [AccountDelete transaction][]. - A successful AccountDelete transaction always deletes exactly 1 account. @@ -102,33 +102,33 @@ The XRP Ledger checks all the following invariants on each transaction: ### Ledger Entry Types Match - **Invariant Condition(s):** - - Corresponding modified ledger entries should match in type and added entries should be a [valid type](ledger-object-types.html). + - Corresponding modified ledger entries should match in type and added entries should be a [valid type](../../references/protocol/ledger-data/ledger-entry-types/index.md). ### No XRP Trust Lines - **Invariant Condition(s):** - - [Trust lines](trust-lines-and-issuing.html) using XRP are not allowed. + - [Trust lines](../tokens/fungible-tokens/index.md) using XRP are not allowed. ### No Bad Offers - **Invariant Condition(s):** - - [Offers](offer.html) should be for non-negative amounts and must not be XRP to XRP. + - [Offers](../../references/protocol/ledger-data/ledger-entry-types/offer.md) should be for non-negative amounts and must not be XRP to XRP. ### No Zero Escrow - **Invariant Condition(s):** - - An [escrow](escrow-object.html) entry must hold more than 0 XRP and less than 100 billion XRP. + - An [escrow](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) entry must hold more than 0 XRP and less than 100 billion XRP. ### Valid New Account Root - **Invariant Condition(s):** - - A new [account root](accountroot.html) must be the consequence of a payment. - - A new account root must have the right starting [sequence](basic-data-types.html#account-sequence). - - A transaction must not create more than one new [account](accounts.html). + - A new [account root](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) must be the consequence of a payment. + - A new account root must have the right starting [sequence](../../references/protocol/data-types/basic-data-types.md#account-sequence). + - A transaction must not create more than one new [account](../accounts/accounts.md). ### ValidNFTokenPage @@ -165,12 +165,7 @@ The XRP Ledger checks all the following invariants on each transaction: - **Other:** - - [Authorized Trust Lines](authorized-trust-lines.html) + - [Authorized Trust Lines](../tokens/fungible-tokens/authorized-trust-lines.md) - [Calculating Balance Changes for a Transaction](https://xrpl.org/blog/2015/calculating-balance-changes-for-a-transaction.html#calculating-balance-changes-for-a-transaction) - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/consensus-protocol/negative-unl.md b/content/concepts/consensus-protocol/negative-unl.md index a0b9c6282c..08b8f860dc 100644 --- a/content/concepts/consensus-protocol/negative-unl.md +++ b/content/concepts/consensus-protocol/negative-unl.md @@ -7,9 +7,9 @@ labels: --- # Negative UNL -_Added by the [NegativeUNL Amendment](known-amendments.html#negativeunl)._ +_Added by the [NegativeUNL Amendment](../../resources/known-amendments.md#negativeunl)._ -The _Negative UNL_ is a feature of the XRP Ledger [consensus protocol](consensus.html) that improves _liveness_, the network's ability to make forward progress during a partial outage. Using the Negative UNL, servers adjust their effective UNLs based on which validators are currently online and operational, so that a new [ledger version](ledgers.html) can be declared _validated_ even if several trusted validators are offline. +The _Negative UNL_ is a feature of the XRP Ledger [consensus protocol](index.md) that improves _liveness_, the network's ability to make forward progress during a partial outage. Using the Negative UNL, servers adjust their effective UNLs based on which validators are currently online and operational, so that a new [ledger version](../ledgers/index.md) can be declared _validated_ even if several trusted validators are offline. The Negative UNL has no impact on how the network processes transactions or what transactions' outcomes are, except that it improves the network's ability to declare outcomes final during some types of partial outages. @@ -33,12 +33,12 @@ In cases where validators go offline one or two at a time, the remaining validat If more than 20% of validators suddenly go offline all at once, the remaining servers cannot achieve the quorum necessary to validate a new ledger, so no new ledgers could be validated. However, those servers can still make tentative forward progress through successive consensus rounds. Over time, the remaining validators would continue to apply changes to the Negative UNL to the tentative ledgers and adjust their effective UNLs; eventually, if the situation persists, the network could resume fully validating ledgers by using the adjusted Negative UNL from the tentative ledger versions. -Negative UNL has no effect on [stand-alone mode](rippled-server-modes.html) since the server does not use consensus in stand-alone mode. +Negative UNL has no effect on [stand-alone mode](../networks-and-servers/rippled-server-modes.md) since the server does not use consensus in stand-alone mode. ## How It Works -The Negative UNL is closely tied to the [consensus process](consensus.html) and is designed with safeguards to maintain the continuity and reliability of the network in adverse situations. When all trusted validators are operating normally, the Negative UNL is unused and has no effect. When some validators appear to be offline or out of sync, the Negative UNL rules take effect. +The Negative UNL is closely tied to the [consensus process](index.md) and is designed with safeguards to maintain the continuity and reliability of the network in adverse situations. When all trusted validators are operating normally, the Negative UNL is unused and has no effect. When some validators appear to be offline or out of sync, the Negative UNL rules take effect. The Negative UNL is intentionally designed to change at a slow rate, to avoid any time-based disagreements about which Negative UNL should apply to a given ledger version's consensus process. @@ -55,7 +55,7 @@ This metric of reliability measures the availability of a validator _and_ the be - The validator's validation votes are not reaching the server due to poor network connectivity between them. - The validator stops operating or gets overloaded. -- The validator is not following the same protocol rules as the server, for a variety of reasons. Possibilities include misconfiguration, software bugs, intentionally following a [different network](parallel-networks.html), or malicious behavior. +- The validator is not following the same protocol rules as the server, for a variety of reasons. Possibilities include misconfiguration, software bugs, intentionally following a [different network](../networks-and-servers/parallel-networks.md), or malicious behavior. If a validator's reliability is **less than 50%**, it is a candidate to be added to the Negative UNL. To be removed from the Negative UNL, a validator's reliability must be **greater than 80%**. @@ -73,7 +73,7 @@ Each flag ledger, all of the following changes apply: 1. Changes to the Negative UNL that were scheduled in the previous flag ledger go into effect for the following ledger version. The consensus process for validating this flag ledger itself does not use the scheduled change. - **Note:** This is one of the only times a ledger's state data is modified without a [transaction](transactions.html) or [pseudo-transaction](pseudo-transaction-types.html). + **Note:** This is one of the only times a ledger's state data is modified without a [transaction](../transactions/index.md) or [pseudo-transaction](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md). 2. If the Negative UNL is not full, each server proposes adding **up to 1** validator to the Negative UNL from among its trusted validators with less than 50% reliability. 3. If the Negative UNL is not empty, each server proposes removing **up to 1** validator from the Negative UNL. A server can propose removing a validator from the Negative UNL for two reasons: @@ -81,9 +81,9 @@ Each flag ledger, all of the following changes apply: - It does not have that validator in its UNL. (If a validator goes down permanently, this rule ensures that it gets removed from the on-ledger Negative UNL after it has been removed from servers' configured UNLs.) 4. If a proposed change to the Negative UNL achieves a consensus, the change is scheduled to go into effect in the following flag ledger. Up to one addition and one removal can be scheduled this way. -The proposals to add and remove validators from the Negative UNL take the form of [UNLModify pseudo-transactions][]. The consensus process determines whether each pseudo-transaction achieves a consensus or gets thrown out, in the same way as other [pseudo-transactions](pseudo-transaction-types.html). In other words, for a particular validator to be added or removed from the Negative UNL, a consensus of servers must propose the same change. +The proposals to add and remove validators from the Negative UNL take the form of [UNLModify pseudo-transactions][]. The consensus process determines whether each pseudo-transaction achieves a consensus or gets thrown out, in the same way as other [pseudo-transactions](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md). In other words, for a particular validator to be added or removed from the Negative UNL, a consensus of servers must propose the same change. -Scheduled and effective changes to the Negative UNL are tracked in the [NegativeUNL object](negativeunl.html) in the ledger's state data. +Scheduled and effective changes to the Negative UNL are tracked in the [NegativeUNL object](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) in the ledger's state data. ### Negative UNL Limits @@ -111,7 +111,7 @@ This mechanism has several useful properties: ### Filtering Validations -During [the validation step of the consensus process](consensus-structure.html#validation), validators in the parent ledger's Negative UNL are disabled. Each server calculates an "effective UNL" consisting of its configured UNL with the disabled validators removed, and recalculates its quorum. (The quorum is always at least 80% of the effective UNL and at least 60% of the configured UNL.) If a disabled validator sends validation votes, servers track those votes for purposes of calculating the disabled validator's reliability measurement, but they do not use those votes towards determining whether a ledger version has achieved a consensus. +During [the validation step of the consensus process](consensus-structure.md#validation), validators in the parent ledger's Negative UNL are disabled. Each server calculates an "effective UNL" consisting of its configured UNL with the disabled validators removed, and recalculates its quorum. (The quorum is always at least 80% of the effective UNL and at least 60% of the configured UNL.) If a disabled validator sends validation votes, servers track those votes for purposes of calculating the disabled validator's reliability measurement, but they do not use those votes towards determining whether a ledger version has achieved a consensus. **Note:** The Negative UNL adjusts the _total_ trusted validators that the quorum is calculated from, not the quorum directly. The quorum is a percentage but the number of votes is a whole number, so reducing the total trusted validators does not always change the number of votes required to reach a quorum. For example, if there are 15 total validators, 80% is 12 validators exactly. If you reduce the total to 14 validators, 80% is 11.2 validators, which means that it still requires 12 validators to reach a quorum. @@ -123,58 +123,55 @@ The following example demonstrates how the Negative UNL affects the consensus pr 1. Suppose your server's UNL consists of 38 trusted validators, so an 80% quorum is at least 31 of 38 trusted validators. -{{ include_svg("img/negative-unl-01.svg", "Diagram: Normal case: Negative UNL unused, quorum is 80% of configured validators.") }} +[{% inline-svg file="/img/negative-unl-01.svg" /%}](/img/negative-unl-01.svg "Diagram: Normal case: Negative UNL unused, quorum is 80% of configured validators.") 2. Imagine 2 of those validators, named MissingA and UnsteadyB, appear to have gone offline. (Both of them have reliability scores < 50%.) During the consensus process for ledger _N_, many of the remaining validators propose adding UnsteadyB to the negative UNL. The motion passes via a quorum of at least 31 of the remaining validators, and ledger _N_ becomes validated with UnsteadyB scheduled to be disabled. -{{ include_svg("img/negative-unl-02.svg", "Diagram: UnsteadyB is scheduled to be disabled.") }} +[{% inline-svg file="/img/negative-unl-02.svg" /%}](/img/negative-unl-02.svg "Diagram: UnsteadyB is scheduled to be disabled.") 3. For ledgers _N+1_ through _N+256_, the consensus process continues without changes. 4. In the next flag ledger, ledger _N+256_, UnsteadyB gets automatically moved from "scheduled" to the "disabled" list in the ledger. Also, since MissingA is still offline, a consensus of validators schedules MissingA to be disabled in the next flag ledger. -{{ include_svg("img/negative-unl-04.svg", "Diagram: UnsteadyB gets disabled and MissingA is scheduled to be disabled, too.") }} +[{% inline-svg file="/img/negative-unl-04.svg" /%}](/img/negative-unl-04.svg "Diagram: UnsteadyB gets disabled and MissingA is scheduled to be disabled, too.") 5. For ledgers _N+257_ through _N+512_, the quorum is now 30 of 37 validators. 6. UnsteadyB comes back online in ledger _N+270_. It sends validation votes that agree with the rest of the network for ledgers _N+270_ through _N+511_, giving it a reliability score of > 80%. -{{ include_svg("img/negative-unl-06.svg", "Diagram: UnsteadyB comes back online, but it's still disabled.") }} +[{% inline-svg file="/img/negative-unl-06.svg" /%}](/img/negative-unl-06.svg "Diagram: UnsteadyB comes back online, but it's still disabled.") 7. In the next flag ledger, _N+256_, MissingA gets automatically moved to the disabled list, as scheduled. Meanwhile, a consensus of validators schedule UnsteadyB to be removed from the Negative UNL, due to its improved reliability score. -{{ include_svg("img/negative-unl-07.svg", "Diagram: MissingA is disabled and UnsteadyB is scheduled to be re-enabled.") }} +[{% inline-svg file="/img/negative-unl-07.svg" /%}](/img/negative-unl-07.svg "Diagram: MissingA is disabled and UnsteadyB is scheduled to be re-enabled.") 8. For ledgers _N+513_ through _N+768_, the quorum is 29 of 36 validators. UnsteadyB continues to send validations stably while MissingA remains offline. 9. In flag ledger _N+768_, UnsteadyB gets automatically removed from the disabled list, as scheduled. -{{ include_svg("img/negative-unl-09.svg", "Diagram: UnsteadyB is removed from the disabled list.") }} +[{% inline-svg file="/img/negative-unl-09.svg" /%}](/img/negative-unl-09.svg "Diagram: UnsteadyB is removed from the disabled list.") 10. Eventually, you decide that MissingA is probably not coming back, so you remove it from your server's configured UNL. Your server starts proposing removing MissingA from the Negative UNL each flag ledger thereafter. -{{ include_svg("img/negative-unl-10.svg", "Diagram: After removing MissingA from the configured UNL, it's proposed for removal from the Negative UNL, too.") }} +[{% inline-svg file="/img/negative-unl-10.svg" /%}](/img/negative-unl-10.svg "Diagram: After removing MissingA from the configured UNL, it's proposed for removal from the Negative UNL, too.") 11. As validator operators remove MissingA from their configured UNLs, their validators vote to also remove MissingA from the Negative UNL. When enough validators have done so, the proposal to remove MissingA achieves a consensus, and MissingA is scheduled, then finally removed from the Negative UNL. -{{ include_svg("img/negative-unl-11.svg", "Diagram: MissingA is removed from the Negative UNL.") }} +[{% inline-svg file="/img/negative-unl-11.svg" /%}](/img/negative-unl-11.svg "Diagram: MissingA is removed from the Negative UNL.") ## See Also - **Concepts:** - - [Consensus Protocol](consensus.html) + - [Consensus Protocol](index.md) - **Tutorials:** - - [Connect Your `rippled` to a Parallel Network](connect-your-rippled-to-the-xrp-test-net.html) - - [Run `rippled` as a Validator](run-rippled-as-a-validator.html) + - [Connect Your `rippled` to a Parallel Network](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) + - [Run `rippled` as a Validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **References:** - - [NegativeUNL Object](negativeunl.html) + - [NegativeUNL Object](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) - [UNLModify pseudo-transaction][] - [ledger_entry method][] - [consensus_info method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/index.md b/content/concepts/index.md index c62fa432be..f0eb1d7e69 100644 --- a/content/concepts/index.md +++ b/content/concepts/index.md @@ -2,8 +2,12 @@ html: concepts.html parent: docs.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Concepts -Learn the "what" and "why" behind fundamental aspects of the XRP Ledger. \ No newline at end of file +Learn the "what" and "why" behind fundamental aspects of the XRP Ledger. + + +{% child-pages /%} diff --git a/content/concepts/ledgers/index.md b/content/concepts/ledgers/index.md index 603d4d0024..696756baec 100644 --- a/content/concepts/ledgers/index.md +++ b/content/concepts/ledgers/index.md @@ -8,9 +8,9 @@ labels: --- # Ledgers -The XRP Ledger is a shared, global ledger that is open to all. Individual participants can trust the integrity of the ledger without having to trust any single institution to manage it. The XRP Ledger protocol accomplishes this by managing a ledger database that can only be updated according to very specific rules. Each server in the peer-to-peer network keeps a full copy of the ledger database, and the network distributes candidate transactions, which are applied in blocks according to the [consensus process](consensus.html). +The XRP Ledger is a shared, global ledger that is open to all. Individual participants can trust the integrity of the ledger without having to trust any single institution to manage it. The XRP Ledger protocol accomplishes this by managing a ledger database that can only be updated according to very specific rules. Each server in the peer-to-peer network keeps a full copy of the ledger database, and the network distributes candidate transactions, which are applied in blocks according to the [consensus process](../consensus-protocol/index.md). -{{ include_svg("img/ledger-changes.svg", "Diagram: Each ledger is the result of applying transactions to the previous ledger version.") }} +[{% inline-svg file="/img/ledger-changes.svg" /%}](/img/ledger-changes.svg "Diagram: Each ledger is the result of applying transactions to the previous ledger version.") The shared global ledger consists of a series of blocks, called ledger versions or simply _ledgers_. Every ledger version has a [Ledger Index][] which identifies the correct order of ledgers. Each permanent, closed ledger also has a unique, identifying hash value. @@ -18,21 +18,17 @@ At any given time, each XRP Ledger server has an in-progress _open_ ledger, a nu A single ledger version consists of several parts: -{{ include_svg("img/anatomy-of-a-ledger-simplified.svg", "Diagram: A ledger has transactions, a state tree, and a header with the close time and validation info") }} +[{% inline-svg file="/img/anatomy-of-a-ledger-simplified.svg" /%}](/img/anatomy-of-a-ledger-simplified.svg "Diagram: A ledger has transactions, a state tree, and a header with the close time and validation info") * A **header** - The [Ledger Index][], hashes of its other contents, and other metadata. -* A **transaction tree** - The [transactions](transaction-formats.html) that were applied to the previous ledger to make this one. -* A **state tree** - All the data in the ledger, as [ledger entries](ledger-object-types.html): balances, settings, and so on. +* A **transaction tree** - The [transactions](../../references/protocol/transactions/index.md) that were applied to the previous ledger to make this one. +* A **state tree** - All the data in the ledger, as [ledger entries](../../references/protocol/ledger-data/ledger-entry-types/index.md): balances, settings, and so on. ## See Also -- For more information about ledger headers, ledger object IDs, and ledger object types, see [Ledger Data Formats](ledger-data-formats.html) -- For information on how servers track the history of changes to ledger state, see [Ledger History](ledger-history.html) +- For more information about ledger headers, ledger object IDs, and ledger object types, see [Ledger Data Formats](../../references/protocol/ledger-data/index.md) +- For information on how servers track the history of changes to ledger state, see [Ledger History](../networks-and-servers/ledger-history.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/ledgers/ledger-close-times.md b/content/concepts/ledgers/ledger-close-times.md index ef4d06ee2d..d0b78d0eff 100644 --- a/content/concepts/ledgers/ledger-close-times.md +++ b/content/concepts/ledgers/ledger-close-times.md @@ -7,11 +7,11 @@ labels: --- # Ledger Close Times -The time that a ledger version closed is recorded at the `close_time` field of the [ledger header](ledger-header.html). To make it easier for the network to reach a consensus on an exact close time, this value is rounded to a number of seconds based on the close time resolution, currently 10 seconds. If rounding would cause a ledger's close time to be the same as (or earlier than) its parent ledger's, the child ledger has its close time set to the parent's close time plus 1. This guarantees that the close times of validated ledgers are strictly increasing. +The time that a ledger version closed is recorded at the `close_time` field of the [ledger header](../../references/protocol/ledger-data/ledger-header.md). To make it easier for the network to reach a consensus on an exact close time, this value is rounded to a number of seconds based on the close time resolution, currently 10 seconds. If rounding would cause a ledger's close time to be the same as (or earlier than) its parent ledger's, the child ledger has its close time set to the parent's close time plus 1. This guarantees that the close times of validated ledgers are strictly increasing. Since new ledger versions usually close about every 3 to 5 seconds, these rules result in a loose pattern where ledgers' close times end in :00, :01, :02, :10, :11, :20, :21, and so on. Times ending in 2 are less common and times ending in 3 are very rare, but both occur randomly when more ledgers randomly happen to close within a 10-second window. -Generally speaking, the ledger cannot make any time-based measurements that are more precise than the close time resolution. For example, to check if an object has passed an expiration date, the rule is to compare it to the close time of the parent ledger. (The close time of a ledger is not yet known when executing transactions to go into that ledger.) This means that, for example, an [Escrow](escrow.html) could successfully finish at a real-world time that is up to about 10 seconds later than the time-based expiration specified in the Escrow object. +Generally speaking, the ledger cannot make any time-based measurements that are more precise than the close time resolution. For example, to check if an object has passed an expiration date, the rule is to compare it to the close time of the parent ledger. (The close time of a ledger is not yet known when executing transactions to go into that ledger.) This means that, for example, an [Escrow](../payment-types/escrow.md) could successfully finish at a real-world time that is up to about 10 seconds later than the time-based expiration specified in the Escrow object. ### Example diff --git a/content/concepts/ledgers/ledger-structure.md b/content/concepts/ledgers/ledger-structure.md index 9efcaa1601..cba5d42220 100644 --- a/content/concepts/ledgers/ledger-structure.md +++ b/content/concepts/ledgers/ledger-structure.md @@ -11,12 +11,12 @@ The consensus protocol takes a previous ledger version as a starting point, form Each ledger version contains _state data_, a _transaction set_, and a _header_ containing metadata. -{{ include_svg("img/ledger.svg", "Diagram: A ledger consists of a header, transaction set, and state data.") }} +[{% inline-svg file="/img/ledger.svg" /%}](/img/ledger.svg "Diagram: A ledger consists of a header, transaction set, and state data.") ## State Data -{{ include_svg("img/ledger-state-data.svg", "Diagram: A ledger's state data, in the form of various objects which are sometimes linked like a graph.") }} +[{% inline-svg file="/img/ledger-state-data.svg" /%}](/img/ledger-state-data.svg "Diagram: A ledger's state data, in the form of various objects which are sometimes linked like a graph.") The _state data_ represents a snapshot of all accounts, balances, settings, and other information as of this ledger version. When a server connects to the network, one of the first things it does is download a full set of the current state data so that it can process new transactions and answer queries about the current state. Since every server in the network has a full copy of the state data, all data is public and every copy is equally valid. @@ -24,7 +24,7 @@ The state data consists of individual objects called _ledger entries_, stored in ## Transaction Set -{{ include_svg("img/ledger-transaction-set.svg", "Diagram: A ledger's transaction set, a group of transactions placed in canonical order.") }} +[{% inline-svg file="/img/ledger-transaction-set.svg" /%}](/img/ledger-transaction-set.svg "Diagram: A ledger's transaction set, a group of transactions placed in canonical order.") Every change made to the ledger is the result of a transaction. Each ledger version contains a _transaction set_ which is a group of transactions that have been newly applied in a specific order. If you take the previous ledger version's state data, and apply this ledger's transaction set on top of it, you get this ledger's state data as a result. @@ -40,24 +40,24 @@ The _ledger header_ is a block of data that summarizes a ledger version. Like th -- {{include_svg("img/ledger-index-icon.svg", "", classes="floating-diagram")}} The _ledger index_, which identifies the ledger version's position in the chain. It builds on the ledger with an index that is one lower, back to the starting point known as the _genesis ledger_. This forms a public history of all transactions and results. -- {{include_svg("img/ledger-hash-icon.svg", "", classes="floating-diagram")}} The _ledger hash_, which uniquely identifies the ledger's contents. The hash is calculated so that if any detail of the ledger version changes, the hash is completely different, which makes it also like a checksum that shows that none of the data in the ledger has been lost, modified, or corrupted. -- {{include_svg("img/ledger-parent-icon.svg", "", classes="floating-diagram")}} The _parent ledger hash_. A ledger version is largely defined by the difference from the _parent ledger_ that came before it, so the header also contains the unique hash of its parent ledger. -- {{include_svg("img/ledger-timestamp-icon.svg", "", classes="floating-diagram")}} The _close time_, the official timestamp when this ledger's contents were finalized. This number is rounded off by a number of seconds, usually 10. -- {{include_svg("img/ledger-state-data-hash-icon.svg", "", classes="floating-diagram")}} A _state data hash_ which acts as a checksum on this ledger's state data. -- {{include_svg("img/ledger-tx-set-hash-icon.svg", "", classes="floating-diagram")}} A _transaction set hash_ which acts as a checksum on this ledger's transaction set data. -- {{include_svg("img/ledger-notes-icon.svg", "", classes="floating-diagram")}} A few other notes like the total amount of XRP in existence and the amount the close time was rounded by. +- [{% inline-svg file="/img/ledger-index-icon.svg" /%}](/img/ledger-index-icon.svg "") The _ledger index_, which identifies the ledger version's position in the chain. It builds on the ledger with an index that is one lower, back to the starting point known as the _genesis ledger_. This forms a public history of all transactions and results. +- [{% inline-svg file="/img/ledger-hash-icon.svg" /%}](/img/ledger-hash-icon.svg "") The _ledger hash_, which uniquely identifies the ledger's contents. The hash is calculated so that if any detail of the ledger version changes, the hash is completely different, which makes it also like a checksum that shows that none of the data in the ledger has been lost, modified, or corrupted. +- [{% inline-svg file="/img/ledger-parent-icon.svg" /%}](/img/ledger-parent-icon.svg "") The _parent ledger hash_. A ledger version is largely defined by the difference from the _parent ledger_ that came before it, so the header also contains the unique hash of its parent ledger. +- [{% inline-svg file="/img/ledger-timestamp-icon.svg" /%}](/img/ledger-timestamp-icon.svg "") The _close time_, the official timestamp when this ledger's contents were finalized. This number is rounded off by a number of seconds, usually 10. +- [{% inline-svg file="/img/ledger-state-data-hash-icon.svg" /%}](/img/ledger-state-data-hash-icon.svg "") A _state data hash_ which acts as a checksum on this ledger's state data. +- [{% inline-svg file="/img/ledger-tx-set-hash-icon.svg" /%}](/img/ledger-tx-set-hash-icon.svg "") A _transaction set hash_ which acts as a checksum on this ledger's transaction set data. +- [{% inline-svg file="/img/ledger-notes-icon.svg" /%}](/img/ledger-notes-icon.svg "") A few other notes like the total amount of XRP in existence and the amount the close time was rounded by. -A ledger's transaction set and state data are unlimited in size, but the ledger header is always a fixed size. For the exact data and binary format of a ledger header, see [Ledger Header](ledger-header.html). +A ledger's transaction set and state data are unlimited in size, but the ledger header is always a fixed size. For the exact data and binary format of a ledger header, see [Ledger Header](../../references/protocol/ledger-data/ledger-header.md). ## Validation Status -{{ include_svg("img/ledger-validated-mark.svg", "Diagram: A ledger's validation status, which is added on top of the ledger and not part of the ledger itself.") }} +[{% inline-svg file="/img/ledger-validated-mark.svg" /%}](/img/ledger-validated-mark.svg "Diagram: A ledger's validation status, which is added on top of the ledger and not part of the ledger itself.") When a consensus of validators in a server's Unique Node List agree on the contents of a ledger version, that ledger version is marked as validated and immutable. The ledger's contents can only change by subsequent transactions making a new ledger version, continuing the chain. -When a ledger version is first created, it is not yet validated. Due to differences in when candidate transactions arrive at different servers, the network may build and propose multiple different ledger versions to be the next step in the chain. The [consensus protocol](consensus.html) decides which one of them becomes validated. (Any candidate transactions that weren't in the validated ledger version can typically be included in the next ledger version's transaction set instead.) +When a ledger version is first created, it is not yet validated. Due to differences in when candidate transactions arrive at different servers, the network may build and propose multiple different ledger versions to be the next step in the chain. The [consensus protocol](../consensus-protocol/index.md) decides which one of them becomes validated. (Any candidate transactions that weren't in the validated ledger version can typically be included in the next ledger version's transaction set instead.) ## Ledger Index or Ledger Hash? @@ -66,4 +66,4 @@ There are two different ways of identifying a ledger version: its _ledger index_ Ledgers from different chains can have the same ledger index but different hashes. Also, when dealing with unvalidated ledger versions, there can be multiple candidate ledgers with the same index but different contents and therefore different hashes. -Two ledgers with the same ledger hash are always completely identical. \ No newline at end of file +Two ledgers with the same ledger hash are always completely identical. diff --git a/content/concepts/ledgers/open-closed-validated-ledgers.md b/content/concepts/ledgers/open-closed-validated-ledgers.md index 0e688a0dae..5fccc7475f 100644 --- a/content/concepts/ledgers/open-closed-validated-ledgers.md +++ b/content/concepts/ledgers/open-closed-validated-ledgers.md @@ -16,8 +16,8 @@ The `rippled` server makes a distinction between ledger versions that are _open_ | **Can contents change?** | Yes | No, but the whole ledger could be replaced | Never | | **Transactions are applied in:** | The order they are received | Canonical order | Canonical order | -Unintuitively, the XRP Ledger never "closes" an open ledger to convert it into a closed ledger. Instead, the server throws away the open ledger, creates a new closed ledger by applying transactions on top of a previous closed ledger, then creates a new open ledger using the latest closed ledger as a base. This is a consequence of [how consensus solves the double-spend problem](consensus-principles-and-rules.html#simplifying-the-problem). +Unintuitively, the XRP Ledger never "closes" an open ledger to convert it into a closed ledger. Instead, the server throws away the open ledger, creates a new closed ledger by applying transactions on top of a previous closed ledger, then creates a new open ledger using the latest closed ledger as a base. This is a consequence of [how consensus solves the double-spend problem](../consensus-protocol/consensus-principles-and-rules.md#simplifying-the-problem). -For an open ledger, servers apply transactions in the order those transactions appear, but different servers may see transactions in different orders. Since there is no central timekeeper to decide which transaction was actually first, servers may disagree on the exact order of transactions that were sent around the same time. Thus, the process for calculating a closed ledger version that is eligible for [validation](consensus-structure.html#validation) is different than the process of building an open ledger from proposed transactions in the order they arrive. To create a "closed" ledger, each XRP Ledger server starts with a set of transactions and a previous, or "parent", ledger version. The server puts the transactions in a canonical order, then applies them to the previous ledger in that order. The canonical order is designed to be deterministic and efficient, but hard to game, to increase the difficulty of front-running Offers in the [decentralized exchange](decentralized-exchange.html). +For an open ledger, servers apply transactions in the order those transactions appear, but different servers may see transactions in different orders. Since there is no central timekeeper to decide which transaction was actually first, servers may disagree on the exact order of transactions that were sent around the same time. Thus, the process for calculating a closed ledger version that is eligible for [validation](../consensus-protocol/consensus-structure.md#validation) is different than the process of building an open ledger from proposed transactions in the order they arrive. To create a "closed" ledger, each XRP Ledger server starts with a set of transactions and a previous, or "parent", ledger version. The server puts the transactions in a canonical order, then applies them to the previous ledger in that order. The canonical order is designed to be deterministic and efficient, but hard to game, to increase the difficulty of front-running Offers in the [decentralized exchange](../tokens/decentralized-exchange/index.md). -Thus, an open ledger is only ever used as a temporary workspace, which is a major reason why transactions' [tentative results may vary from their final results](finality-of-results.html). +Thus, an open ledger is only ever used as a temporary workspace, which is a major reason why transactions' [tentative results may vary from their final results](../transactions/finality-of-results/index.md). diff --git a/content/concepts/networks-and-servers/amendments.md b/content/concepts/networks-and-servers/amendments.md index 91a581a407..51ee81b6a1 100644 --- a/content/concepts/networks-and-servers/amendments.md +++ b/content/concepts/networks-and-servers/amendments.md @@ -19,7 +19,7 @@ Every amendment has a unique identifying hex value and a short name. The short n ## Amendment Process -The [Contributing Code to the XRP Ledger](contribute-code-flow.html) topic walks through the workflow to develop an amendment from an idea to activation on the XRP Ledger. +The [Contributing Code to the XRP Ledger](../../resources/contribute-code/contribute-code.md) topic walks through the workflow to develop an amendment from an idea to activation on the XRP Ledger. After the code for an amendment is built into a software release, the process to enable it happens within the XRP Ledger network, which checks the status of amendments every _flag_ ledger (typically about 15 minutes apart). @@ -39,9 +39,9 @@ Every 256th ledger is called a **flag** ledger. The flag ledger doesn't have spe ## Amendment Voting -Each version of `rippled` is compiled with a list of [known amendments](known-amendments.html) and the code to implement those amendments. Operators of `rippled` validators configure their servers to vote on each amendment and can change it at any time. If the operator doesn't choose a vote, the server uses a default vote defined by the source code. +Each version of `rippled` is compiled with a list of [known amendments](../../resources/known-amendments.md) and the code to implement those amendments. Operators of `rippled` validators configure their servers to vote on each amendment and can change it at any time. If the operator doesn't choose a vote, the server uses a default vote defined by the source code. -**Note:** The default vote can change between software releases. [Updated in: rippled 1.8.1][] +**Note:** The default vote can change between software releases. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}Updated in: rippled 1.8.1{% /badge %} Amendments must maintain two weeks of support from more than 80% of trusted validators to be enabled. If support drops below 80%, the amendment is temporarily rejected, and the two week period restarts. Amendments can gain and lose a majority any number of times before they become permanently enabled. @@ -76,16 +76,12 @@ The [XRP Ledger Standard 11d](https://github.com/XRPLF/XRPL-Standards/discussion ## See Also - **Concepts:** - - [Consensus](consensus.html) + - [Consensus](../consensus-protocol/index.md) - **Tutorials:** - - [Run rippled as a Validator](run-rippled-as-a-validator.html) - - [Configure Amendment Voting](configure-amendment-voting.html) - - [Contribute Code to the XRP Ledger](contribute-code-flow.html) + - [Run rippled as a Validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Configure Amendment Voting](../../infrastructure/configuration/configure-amendment-voting.md) + - [Contribute Code to the XRP Ledger](../../resources/contribute-code/contribute-code.md) - **References:** - - [Known Amendments](known-amendments.html) + - [Known Amendments](../../resources/known-amendments.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/networks-and-servers/clustering.md b/content/concepts/networks-and-servers/clustering.md index 88875d2820..0f533e98d6 100644 --- a/content/concepts/networks-and-servers/clustering.md +++ b/content/concepts/networks-and-servers/clustering.md @@ -13,20 +13,16 @@ If you are running multiple `rippled` servers in a single datacenter, you can co - Clustered servers share information about peers and API clients that are misbehaving or abusing the network. This makes it harder to attack all servers of the cluster at once. - Clustered servers always propagate transactions throughout the cluster, even if the transaction does not meet the current load-based transaction fee on some of them. -If you are running a validator as a [private peer](peer-protocol.html#private-peers), Ripple recommends using a cluster of `rippled` servers as proxy servers. +If you are running a validator as a [private peer](peer-protocol.md#private-peers), Ripple recommends using a cluster of `rippled` servers as proxy servers. ## See Also - **Tutorials:** - - [Cluster `rippled` Servers](cluster-rippled-servers.html) - - [Run rippled as a Validator](run-rippled-as-a-validator.html) + - [Cluster `rippled` Servers](../../infrastructure/configuration/peering/cluster-rippled-servers.md) + - [Run rippled as a Validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **References:** - [peers method][] - [connect method][] - - [Peer Crawler](peer-crawler.html) + - [Peer Crawler](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/networks-and-servers/index.md b/content/concepts/networks-and-servers/index.md index 6bca7a680a..fab7d5b1d2 100644 --- a/content/concepts/networks-and-servers/index.md +++ b/content/concepts/networks-and-servers/index.md @@ -2,14 +2,15 @@ html: networks-and-servers.html parent: concepts.html blurb: rippled is the core peer-to-peer server that manages the XRP Ledger. -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Networks and Servers There are two main types of server software that power the XRP Ledger: - The core server, `rippled`, runs the the peer-to-peer network which processes transactions and reaches a consensus on their outcome. -- The API server, [Clio](the-clio-server.html), provides a powerful interface for fetching or querying data from the ledger. +- The API server, [Clio](the-clio-server.md), provides a powerful interface for fetching or querying data from the ledger. Anyone can run instances of one or both of these types of servers based on their needs. @@ -25,7 +26,7 @@ You need to trust the server you use. If you connect to a malicious server, ther * It could selectively show or hide payment paths and currency exchange offers to guarantee its own profit while not providing you the best deal. * If you sent it your address's secret key, it could make arbitrary transactions on your behalf, and even transfer or destroy all the money your address holds. -Additionally, running your own server gives you [admin access](get-started-using-http-websocket-apis.html#admin-access), which allows you to run important admin-only and load-intensive commands. If you use a shared server, you have to worry about other users of the same server competing with you for the server's computing power. Many of the commands in the WebSocket API can put a lot of strain on the server, so the server has the option to scale back its responses when it needs to. If you share a server with others, you may not always get the best results possible. +Additionally, running your own server gives you [admin access](../../tutorials/get-started/get-started-using-http-websocket-apis.md#admin-access), which allows you to run important admin-only and load-intensive commands. If you use a shared server, you have to worry about other users of the same server competing with you for the server's computing power. Many of the commands in the WebSocket API can put a lot of strain on the server, so the server has the option to scale back its responses when it needs to. If you share a server with others, you may not always get the best results possible. Finally, if you run a validating server, you can use a stock server as a proxy to the public network while keeping your validating server on a private network only accessible to the outside world through the stock server. This makes it more difficult to compromise the integrity of your validating server. @@ -33,7 +34,7 @@ Finally, if you run a validating server, you can use a stock server as a proxy t - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} + + +{% child-pages /%} diff --git a/content/concepts/networks-and-servers/ledger-history.md b/content/concepts/networks-and-servers/ledger-history.md index c3a185f707..30e88b6067 100644 --- a/content/concepts/networks-and-servers/ledger-history.md +++ b/content/concepts/networks-and-servers/ledger-history.md @@ -9,9 +9,9 @@ labels: --- # Ledger History -The [consensus process](consensus.html) creates a chain of [validated ledger versions](ledgers.html), each derived from the previous one by applying a set of [transactions](transactions.html). Every [`rippled` server](xrpl-servers.html) stores ledger versions and transaction history locally. The amount of transaction history a server stores depends on how long that server has been online and how much history it is configured to fetch and keep. +The [consensus process](../consensus-protocol/index.md) creates a chain of [validated ledger versions](../ledgers/index.md), each derived from the previous one by applying a set of [transactions](../transactions/index.md). Every [`rippled` server](index.md) stores ledger versions and transaction history locally. The amount of transaction history a server stores depends on how long that server has been online and how much history it is configured to fetch and keep. -Servers in the peer-to-peer XRP Ledger network share transactions and other data with each other as part of the consensus process. Each server independently builds each new ledger version and compares results with its trusted validators to ensure consistency. (If a consensus of trusted validators disagrees with a server's results, that server fetches the necessary data from its peers to achieve consistency.) Servers can download older data from their peers to fill gaps in their available history. The structure of the ledger uses cryptographic [hashes](basic-data-types.html#hashes) of the data so that any server can verify the integrity and consistency of the data. +Servers in the peer-to-peer XRP Ledger network share transactions and other data with each other as part of the consensus process. Each server independently builds each new ledger version and compares results with its trusted validators to ensure consistency. (If a consensus of trusted validators disagrees with a server's results, that server fetches the necessary data from its peers to achieve consistency.) Servers can download older data from their peers to fill gaps in their available history. The structure of the ledger uses cryptographic [hashes](../../references/protocol/data-types/basic-data-types.md#hashes) of the data so that any server can verify the integrity and consistency of the data. ## Databases @@ -27,20 +27,20 @@ The [server_info method][] reports how many ledger versions your server has avai ## Fetching History -When an XRP Ledger server starts, its first priority is to get a complete copy of the latest validated ledger. From there, it keeps up with advances in the ledger progress. The server fills in any gaps in its ledger history that occur after syncing, and can backfill history from before it became synced. (Gaps in ledger history can occur if a server temporarily becomes too busy to keep up with the network, loses its network connection, or suffers other temporary issues.) When downloading ledger history, the server requests the missing data from its [peer servers](peer-protocol.html), and verifies the data's integrity using cryptographic [hashes][Hash]. +When an XRP Ledger server starts, its first priority is to get a complete copy of the latest validated ledger. From there, it keeps up with advances in the ledger progress. The server fills in any gaps in its ledger history that occur after syncing, and can backfill history from before it became synced. (Gaps in ledger history can occur if a server temporarily becomes too busy to keep up with the network, loses its network connection, or suffers other temporary issues.) When downloading ledger history, the server requests the missing data from its [peer servers](peer-protocol.md), and verifies the data's integrity using cryptographic [hashes][Hash]. -Backfilling history is one of the server's lowest priorities, so it may take a long time to fill missing history, especially if the server is busy or its hardware and network specs aren't good enough. For recommendations on hardware specs, see [Capacity Planning](capacity-planning.html). Backfilling history also requires that at least one of the server's direct peers has the history in question. For more information on managing your server's peer-to-peer connections, see [Configure Peering](configure-peering.html). +Backfilling history is one of the server's lowest priorities, so it may take a long time to fill missing history, especially if the server is busy or its hardware and network specs aren't good enough. For recommendations on hardware specs, see [Capacity Planning](../../infrastructure/installation/capacity-planning.md). Backfilling history also requires that at least one of the server's direct peers has the history in question. For more information on managing your server's peer-to-peer connections, see [Configure Peering](../../infrastructure/configuration/peering/index.md). -The XRP Ledger identifies data (on several different levels) by a unique hash of its contents. The XRP Ledger's state data contains a short summary of the ledger's history, in the form of the [LedgerHashes object type](ledgerhashes.html). Servers use the LedgerHashes objects to know which ledger versions to fetch, and to confirm that the ledger data they receive is correct and complete. +The XRP Ledger identifies data (on several different levels) by a unique hash of its contents. The XRP Ledger's state data contains a short summary of the ledger's history, in the form of the [LedgerHashes object type](../../references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md). Servers use the LedgerHashes objects to know which ledger versions to fetch, and to confirm that the ledger data they receive is correct and complete. ### Backfilling -[Updated in: rippled 1.6.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}Updated in: rippled 1.6.0{% /badge %} -The amount of history a server attempts to download depends on its configuration. The server automatically tries to fill gaps by downloading history up to **the oldest ledger it already has available**. You can use the `[ledger_history]` setting to make the server backfill history beyond that point. However, the server never downloads ledgers that would be scheduled for [deletion](online-deletion.html). +The amount of history a server attempts to download depends on its configuration. The server automatically tries to fill gaps by downloading history up to **the oldest ledger it already has available**. You can use the `[ledger_history]` setting to make the server backfill history beyond that point. However, the server never downloads ledgers that would be scheduled for [deletion](../../infrastructure/configuration/data-retention/online-deletion.md). -The `[ledger_history]` setting defines a minimum number of ledgers to accumulate from before the current validated ledger. Use the special value `full` to download the [full history](#full-history) of the network. If you specify a number of ledgers, it must be equal to or more than the `online_deletion` setting; you cannot use `[ledger_history]` to make the server download _less_ history. To reduce the amount of history a server stores, change the [online deletion](online-deletion.html) settings instead. +The `[ledger_history]` setting defines a minimum number of ledgers to accumulate from before the current validated ledger. Use the special value `full` to download the [full history](#full-history) of the network. If you specify a number of ledgers, it must be equal to or more than the `online_deletion` setting; you cannot use `[ledger_history]` to make the server download _less_ history. To reduce the amount of history a server stores, change the [online deletion](../../infrastructure/configuration/data-retention/online-deletion.md) settings instead. @@ -55,28 +55,28 @@ Providers of Full History servers reserve the right to block access that is foun **Tip:** Unlike some cryptocurrency networks, servers in the XRP Ledger do not need full history to know the current state and keep up with current transactions. -For instructions on setting up full history, see [Configure Full History](configure-full-history.html). +For instructions on setting up full history, see [Configure Full History](../../infrastructure/configuration/data-retention/configure-full-history.md). ## History Sharding -An alternative to storing the full history of the XRP Ledger on a single expensive machine is to configure many servers to each store a part of all ledger history. The [History Sharding](history-sharding.html) feature makes this possible, storing ranges of ledger history in a separate storage area called the _shard store_. When a peer server asks for specific data (as described in [fetching history](#fetching-history) above), a server can answer using data from either its ledger store or shard store. +An alternative to storing the full history of the XRP Ledger on a single expensive machine is to configure many servers to each store a part of all ledger history. The [History Sharding](../../infrastructure/configuration/data-retention/history-sharding.md) feature makes this possible, storing ranges of ledger history in a separate storage area called the _shard store_. When a peer server asks for specific data (as described in [fetching history](#fetching-history) above), a server can answer using data from either its ledger store or shard store. Online deletion **does not** delete from the shard store. However, if you configure online deletion to keep at least 32768 ledger versions in your server's ledger store, your server can copy full shards from the ledger store to the shard store before automatically deleting them from the ledger store. -For more information, see [Configure History Sharding](configure-history-sharding.html). +For more information, see [Configure History Sharding](../../infrastructure/configuration/data-retention/configure-history-sharding.md). ## See Also - **Concepts:** - - [Ledgers](ledgers.html) - - [Consensus](consensus.html) + - [Ledgers](../ledgers/index.md) + - [Consensus](../consensus-protocol/index.md) - **Tutorials:** - - [Configure `rippled`](configure-rippled.html) - - [Configure Online Deletion](configure-online-deletion.html) - - [Configure Advisory Deletion](configure-advisory-deletion.html) - - [Configure History Sharding](configure-history-sharding.html) - - [Configure Full History](configure-full-history.html) + - [Configure `rippled`](../../infrastructure/configuration/index.md) + - [Configure Online Deletion](../../infrastructure/configuration/data-retention/configure-online-deletion.md) + - [Configure Advisory Deletion](../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) + - [Configure History Sharding](../../infrastructure/configuration/data-retention/configure-history-sharding.md) + - [Configure Full History](../../infrastructure/configuration/data-retention/configure-full-history.md) - **References:** - [ledger method][] - [server_info method][] @@ -84,7 +84,4 @@ For more information, see [Configure History Sharding](configure-history-shardin - [can_delete method][] - [ledger_cleaner method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/networks-and-servers/parallel-networks.md b/content/concepts/networks-and-servers/parallel-networks.md index 26ea1b3c8b..5b33d24578 100644 --- a/content/concepts/networks-and-servers/parallel-networks.md +++ b/content/concepts/networks-and-servers/parallel-networks.md @@ -13,13 +13,13 @@ To help members of the XRP Ledger community interact with XRP Ledger technology | Network | Upgrade Cadence | Description | |:--------|:----------------|:-------------------------------------------------| -| Mainnet | Stable releases | _The_ [XRP Ledger](xrp-ledger-overview.html), a decentralized cryptographic ledger powered by a network of peer-to-peer servers and the home of [XRP](what-is-xrp.html). | -| Testnet | Stable releases | An "alternate universe" network that acts as a testing ground for software built on the XRP Ledger, without impacting production XRP Ledger users and without risking real money. The [amendment status](known-amendments.html) of the Testnet is intended to closely mirror the Mainnet, although slight variations in timing may occur due to the unpredictable nature of decentralized systems. | +| Mainnet | Stable releases | _The_ [XRP Ledger](/about/), a decentralized cryptographic ledger powered by a network of peer-to-peer servers and the home of [XRP](../../introduction/what-is-xrp.md). | +| Testnet | Stable releases | An "alternate universe" network that acts as a testing ground for software built on the XRP Ledger, without impacting production XRP Ledger users and without risking real money. The [amendment status](../../resources/known-amendments.md) of the Testnet is intended to closely mirror the Mainnet, although slight variations in timing may occur due to the unpredictable nature of decentralized systems. | | Devnet | Beta releases | A preview of coming attractions, where unstable changes to the core XRP Ledger software may be tested out. Developers can use this altnet to interact with and learn about planned new XRP Ledger features and amendments that are not yet enabled on the Mainnet. | | [Hooks V3 Testnet](https://hooks-testnet-v3.xrpl-labs.com/) | [Hooks server](https://github.com/XRPL-Labs/xrpld-hooks) | A preview of on-chain smart contract functionality using [hooks](https://xrpl-hooks.readme.io/). | | Sidechain-Devnet | Beta releases | A sidechain to test cross-chain bridge features. Devnet is treated as the locking chain and this sidechain is the issuing chain.
      Library support:
      - [xrpl.js 2.12.0](https://www.npmjs.com/package/xrpl/v/2.12.0)
      - [xrpl-py 2.4.0](https://pypi.org/project/xrpl-py/2.4.0/)
      **Note**: You can also use the [`xbridge-cli`](https://github.com/XRPLF/xbridge-cli) commandline tool to set up a cross-chain bridge on your local machine. | -Each altnet has its own separate supply of test XRP, which is [given away for free](xrp-testnet-faucet.html) to parties interested in experimenting with the XRP Ledger and developing applications and integrations. Test XRP does not have real-world value and is lost when the network is reset. +Each altnet has its own separate supply of test XRP, which is [given away for free](/resources/dev-tools/xrp-faucets) to parties interested in experimenting with the XRP Ledger and developing applications and integrations. Test XRP does not have real-world value and is lost when the network is reset. **Caution:** Unlike the XRP Ledger Mainnet, test networks are usually _centralized_ and there are no guarantees about the stability and availability of these networks. They have been and continue to be used to test various properties of server configuration, network topology, and network performance. @@ -28,28 +28,24 @@ Each altnet has its own separate supply of test XRP, which is [given away for fr The main factor in determining which network a server follows is its configured UNL—the list of validators it trusts not to collude. Each server uses its configured UNL to know which ledger to accept as the truth. When different consensus groups of `rippled` instances only trust other members of the same group, each group continues as a parallel network. Even if malicious or misbehaving computers connect to both networks, the consensus process avoids confusion as long as the members of each network are not configured to trust members of another network in excess of their quorum settings. -Ripple runs the main servers in the Testnet and Devnet; you can also [connect your own `rippled` server to these networks](connect-your-rippled-to-the-xrp-test-net.html). The Testnet and Devnet do not use diverse, censorship-resistant sets of validators. This makes it possible for Ripple to reset the Testnet or Devnet at any time. +Ripple runs the main servers in the Testnet and Devnet; you can also [connect your own `rippled` server to these networks](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). The Testnet and Devnet do not use diverse, censorship-resistant sets of validators. This makes it possible for Ripple to reset the Testnet or Devnet at any time. ## See Also - **Tools:** - - [XRP Testnet Faucet](xrp-test-net-faucet.html) + - [XRP Testnet Faucet](/resources/dev-tools/xrp-faucets) - **Concepts:** - - [Consensus](consensus.html) - - [Amendments](amendments.html) + - [Consensus](../consensus-protocol/index.md) + - [Amendments](amendments.md) - **Tutorials:** - - [Connect Your `rippled` to the XRP Testnet](connect-your-rippled-to-the-xrp-test-net.html) - - [Use rippled in Stand-Alone Mode](use-stand-alone-mode.html) + - [Connect Your `rippled` to the XRP Testnet](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) + - [Use rippled in Stand-Alone Mode](../../infrastructure/testing-and-auditing/index.md) - **References:** - [server_info method][] - [consensus_info method][] - [validator_list_sites method][] - [validators method][] - - [Daemon Mode Options](commandline-usage.html#daemon-mode-options) + - [Daemon Mode Options](../../infrastructure/commandline-usage.md#daemon-mode-options) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/networks-and-servers/peer-protocol.md b/content/concepts/networks-and-servers/peer-protocol.md index 6dae2b1783..5583689592 100644 --- a/content/concepts/networks-and-servers/peer-protocol.md +++ b/content/concepts/networks-and-servers/peer-protocol.md @@ -27,14 +27,14 @@ Typically, a server needs to connect to a public hub only once, for a short amou The [peers method][] shows a list of peers your server is currently connected to. -For certain high-value servers (such as important [validators](rippled-server-modes.html#rippled-server-modes)) you may prefer not to have your server connect to untrusted peers through the peer discovery process. In this case, you can configure your server to use [private peers](#private-peers) only. +For certain high-value servers (such as important [validators](rippled-server-modes.md#rippled-server-modes)) you may prefer not to have your server connect to untrusted peers through the peer discovery process. In this case, you can configure your server to use [private peers](#private-peers) only. ## Peer Protocol Port -To participate in the XRP Ledger, `rippled` servers connect to arbitrary peers using the peer protocol. (All peers are treated as untrusted, unless they are [clustered](clustering.html) with the current server.) +To participate in the XRP Ledger, `rippled` servers connect to arbitrary peers using the peer protocol. (All peers are treated as untrusted, unless they are [clustered](clustering.md) with the current server.) -Ideally, the server should be able to send _and_ receive connections on the peer port. You should [forward the port used for the peer protocol through your firewall](forward-ports-for-peering.html) to the `rippled` server. +Ideally, the server should be able to send _and_ receive connections on the peer port. You should [forward the port used for the peer protocol through your firewall](../../infrastructure/configuration/peering/forward-ports-for-peering.md) to the `rippled` server. IANA [has assigned port **2459**](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=2459) for the XRP Ledger peer protocol, but for compatibility with legacy systems, the [default `rippled` config file](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg) listens for incoming peer protocol connections on **port 51235** on all network interfaces. If you run a server, you can configure which port(s) your server listens on using the `rippled.cfg` file. @@ -47,7 +47,7 @@ ip = 0.0.0.0 protocol = peer ``` -The peer protocol port also serves [special peer port methods](peer-port-methods.html). +The peer protocol port also serves [special peer port methods](../../references/http-websocket-apis/peer-port-methods/index.md). ## Node Key Pair @@ -55,15 +55,15 @@ When a server first starts up, it generates a _node key pair_ to use to identify The node key pair is saved in the database and reused when the server restarts. If you delete the server's databases, it creates a new node key pair, effectively coming online with a different identity. To reuse the same key pair even if the databases are deleted, you can configure the server with a `[node_seed]` stanza. To generate a value suitable for use in the `[node_seed]` stanza, use the [validation_create method][]. -The node key pair also identifies other servers for purposes of [clustering](clustering.html) or [reserving peer slots](#fixed-peers-and-peer-reservations). If you have a cluster of servers, you should configure each server in the cluster with a unique `[node_seed]` setting. For more information on setting up a cluster, see [Cluster `rippled` Servers](cluster-rippled-servers.html). +The node key pair also identifies other servers for purposes of [clustering](clustering.md) or [reserving peer slots](#fixed-peers-and-peer-reservations). If you have a cluster of servers, you should configure each server in the cluster with a unique `[node_seed]` setting. For more information on setting up a cluster, see [Cluster `rippled` Servers](../../infrastructure/configuration/peering/cluster-rippled-servers.md). ## Fixed Peers and Peer Reservations Normally, a `rippled` server attempts to maintain a healthy number of peers, and automatically connects to untrusted peers up to a maximum number. You can configure a `rippled` server to remain connected to specific peer servers in several ways: -- Use **Fixed Peers** to remain always connected to specific other peers based on their IP addresses. This only works if the peers have fixed IP addresses. Use the `[ips_fixed]` config stanza to configure fixed peers. This is a necessary part of [clustering](clustering.html) or [private peers](#private-peers). Fixed peers are defined in the config file, so changes only apply after restarting the server. Fixed peers are most useful for keeping servers connected if those servers are run by the same person or organization. -- Use **Peer Reservations** to prioritize specific peers. If your server has a peer reservation for a specific peer, then your server always accepts connection requests from that peer even if your server is already at its maximum number of connected peers. (This can cause your server to go _over_ the maximum number of peers.) You identify a reserved peer by its [node key pair](#node-key-pair), so you can do this even for peers with variable IP addresses. Peer reservations are configured through admin commands and saved in the server databases, so they can be adjusted while the server is online and are saved across restarts. Peer reservations are most useful for connecting servers run by different people or organizations. [New in: rippled 1.4.0][] +- Use **Fixed Peers** to remain always connected to specific other peers based on their IP addresses. This only works if the peers have fixed IP addresses. Use the `[ips_fixed]` config stanza to configure fixed peers. This is a necessary part of [clustering](clustering.md) or [private peers](#private-peers). Fixed peers are defined in the config file, so changes only apply after restarting the server. Fixed peers are most useful for keeping servers connected if those servers are run by the same person or organization. +- Use **Peer Reservations** to prioritize specific peers. If your server has a peer reservation for a specific peer, then your server always accepts connection requests from that peer even if your server is already at its maximum number of connected peers. (This can cause your server to go _over_ the maximum number of peers.) You identify a reserved peer by its [node key pair](#node-key-pair), so you can do this even for peers with variable IP addresses. Peer reservations are configured through admin commands and saved in the server databases, so they can be adjusted while the server is online and are saved across restarts. Peer reservations are most useful for connecting servers run by different people or organizations. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} In the following cases, a `rippled` server does not connect to untrusted peers: @@ -81,9 +81,9 @@ Configuring a server as a private server has several effects: - The server does not make outgoing connections to other servers in the peer-to-peer network unless it has been explicitly configured to connect to those servers. - The server does not accept incoming connections from other servers unless it has been explicitly configured to accept connections from those servers. -- The server asks its direct peers not to reveal its IP address in untrusted communications, including the [peer crawler API response](peer-crawler.html). This does not affect trusted communications such as the [peers admin method][peers method]. +- The server asks its direct peers not to reveal its IP address in untrusted communications, including the [peer crawler API response](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md). This does not affect trusted communications such as the [peers admin method][peers method]. - Validators always ask their peers to hide the validators' IP addresses, regardless of the private server settings. This helps protect validators from being overloaded by denial of service attacks. [New in: rippled 1.2.1][] + Validators always ask their peers to hide the validators' IP addresses, regardless of the private server settings. This helps protect validators from being overloaded by denial of service attacks. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}New in: rippled 1.2.1{% /badge %} **Caution:** It is possible to modify a server's source code so that it ignores this request and shares its immediate peers' IP addresses anyway. You should configure your private server to connect only to servers that you know are not modified in this way. @@ -91,7 +91,7 @@ Configuring a server as a private server has several effects: To be part of the XRP Ledger, a `rippled` server must be connected to the rest of the open peer-to-peer network. Roughly speaking, there are three categories of configurations for how a `rippled` server connects to the network: -- Using **discovered peers**. The server connects to any untrusted servers it finds and stays connected as long as those servers behave appropriately. (For example, they don't request too much data, their network connections are stable, and they appear to be following the same [network](parallel-networks.html).) This is the default. +- Using **discovered peers**. The server connects to any untrusted servers it finds and stays connected as long as those servers behave appropriately. (For example, they don't request too much data, their network connections are stable, and they appear to be following the same [network](parallel-networks.md).) This is the default. - As a **private server using proxies** run by the same person or organization. The proxies are stock `rippled` servers (also connected to discovered peers) that maintain a fixed peering connection with the private server. - As a **private server using public hubs**. This is similar to using proxies, but it relies on specific third parties. @@ -145,22 +145,22 @@ The pros and cons of each configuration are as follows: ### Configuring a Private Server -To configure your server as a private server, set the `[peer_private]` setting to `1` in the config file. For detailed instructions, see [Configure a Private Server](configure-a-private-server.html). +To configure your server as a private server, set the `[peer_private]` setting to `1` in the config file. For detailed instructions, see [Configure a Private Server](../../infrastructure/configuration/peering/configure-a-private-server.md). ## See Also - **Concepts:** - - [Consensus](consensus.html) - - [Parallel Networks](parallel-networks.html) + - [Consensus](../consensus-protocol/index.md) + - [Parallel Networks](parallel-networks.md) - **Tutorials:** - - [Cluster rippled Servers](cluster-rippled-servers.html) - - [Configure a Private Server](configure-a-private-server.html) - - [Configure the Peer Crawler](configure-the-peer-crawler.html) - - [Forward Ports for Peering](forward-ports-for-peering.html) - - [Manually Connect to a Specific Peer](manually-connect-to-a-specific-peer.html) - - [Set Maximum Number of Peers](set-max-number-of-peers.html) - - [Use a Peer Reservation](use-a-peer-reservation.html) + - [Cluster rippled Servers](../../infrastructure/configuration/peering/cluster-rippled-servers.md) + - [Configure a Private Server](../../infrastructure/configuration/peering/configure-a-private-server.md) + - [Configure the Peer Crawler](../../infrastructure/configuration/peering/configure-the-peer-crawler.md) + - [Forward Ports for Peering](../../infrastructure/configuration/peering/forward-ports-for-peering.md) + - [Manually Connect to a Specific Peer](../../infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md) + - [Set Maximum Number of Peers](../../infrastructure/configuration/peering/set-max-number-of-peers.md) + - [Use a Peer Reservation](../../infrastructure/configuration/peering/use-a-peer-reservation.md) - **References:** - [peers method][] - [peer_reservations_add method][] @@ -168,10 +168,6 @@ To configure your server as a private server, set the `[peer_private]` setting t - [peer_reservations_list method][] - [connect method][] - [fetch_info method][] - - [Peer Crawler](peer-crawler.html) + - [Peer Crawler](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/networks-and-servers/rippled-server-modes.md b/content/concepts/networks-and-servers/rippled-server-modes.md index c40de69b97..49a30f5bcf 100644 --- a/content/concepts/networks-and-servers/rippled-server-modes.md +++ b/content/concepts/networks-and-servers/rippled-server-modes.md @@ -9,16 +9,16 @@ labels: The `rippled` server software can run in several modes depending on its configuration, including: -- [**P2P Mode**](#p2p-mode) - This is the main mode of the server: it follows the peer-to-peer network, processes transactions, and maintains some amount of [ledger history](ledger-history.html). This mode can be configured to do any or all of the following roles: +- [**P2P Mode**](#p2p-mode) - This is the main mode of the server: it follows the peer-to-peer network, processes transactions, and maintains some amount of [ledger history](ledger-history.md). This mode can be configured to do any or all of the following roles: - [**Validator**](#validators) - Helps secure the network by participating in consensus. - - [**API Server**](#api-servers) - Provides [API access](get-started-using-http-websocket-apis.html) to read data from the shared ledger, submit transactions, and watch activity in the ledger. Optionally, this can be a [**Full History Server**](#full-history-servers), which keeps a complete record of transaction and ledger history. + - [**API Server**](#api-servers) - Provides [API access](../../tutorials/get-started/get-started-using-http-websocket-apis.md) to read data from the shared ledger, submit transactions, and watch activity in the ledger. Optionally, this can be a [**Full History Server**](#full-history-servers), which keeps a complete record of transaction and ledger history. - [**Hub Server**](#public-hubs) - Relays messages between many other members of the peer-to-peer network. -- [**Reporting mode**](#reporting-mode) - A specialized mode for serving API requests from a relational database. It does not participate in the peer-to-peer network, so you need to run a P2P Mode server and connect the reporting mode server using a trusted gRPC connection. [New in: rippled 1.7.0][] +- [**Reporting mode**](#reporting-mode) - A specialized mode for serving API requests from a relational database. It does not participate in the peer-to-peer network, so you need to run a P2P Mode server and connect the reporting mode server using a trusted gRPC connection. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}New in: rippled 1.7.0{% /badge %} - [**Stand-alone mode**](#stand-alone-mode) - An offline mode for testing. Does not connect to the peer-to-peer network or use consensus. -You can also run the `rippled` executable as a client application for accessing [`rippled` APIs](http-websocket-apis.html) locally. (Two instances of the same binary can run side-by-side in this case; one as a server, and the other running briefly as a client and then terminating.) +You can also run the `rippled` executable as a client application for accessing [`rippled` APIs](../../references/http-websocket-apis/index.md) locally. (Two instances of the same binary can run side-by-side in this case; one as a server, and the other running briefly as a client and then terminating.) -For information on the commands to run `rippled` in each of these modes, see the [Commandline Reference](commandline-usage.html). +For information on the commands to run `rippled` in each of these modes, see the [Commandline Reference](../../infrastructure/commandline-usage.md). ## P2P Mode @@ -31,21 +31,21 @@ P2P Mode servers can be further configured to provide additional functionality. - [API Server](#api-servers) - [Public Hubs](#public-hubs) -P2P Mode servers connect to [Mainnet](parallel-networks.html) by default. +P2P Mode servers connect to [Mainnet](parallel-networks.md) by default. ### API Servers -All P2P Mode servers provide [APIs](http-websocket-apis.html) for purposes like submitting transactions, checking balances and settings, and administering the server. If you query the XRP Ledger for data or submit transactions for business use, it can be useful to [run your own server](networks-and-servers.html#reasons-to-run-your-own-server). +All P2P Mode servers provide [APIs](../../references/http-websocket-apis/index.md) for purposes like submitting transactions, checking balances and settings, and administering the server. If you query the XRP Ledger for data or submit transactions for business use, it can be useful to [run your own server](index.md#reasons-to-run-your-own-server). #### Full History Servers -Unlike some other blockchains, the XRP Ledger does not require servers to have a complete transaction history to know the current state and process new transactions. As a server operator, you decide how much [ledger history](ledger-history.html) to store at a time. However, a P2P Mode server can only answer API requests using the ledger history it has locally available. For example, if you keep six months of history, your server can't describe the outcome of a transaction from a year ago. API servers with [full history](ledger-history.html#full-history) can report all transactions and balances since the start of the XRP Ledger. +Unlike some other blockchains, the XRP Ledger does not require servers to have a complete transaction history to know the current state and process new transactions. As a server operator, you decide how much [ledger history](ledger-history.md) to store at a time. However, a P2P Mode server can only answer API requests using the ledger history it has locally available. For example, if you keep six months of history, your server can't describe the outcome of a transaction from a year ago. API servers with [full history](ledger-history.md#full-history) can report all transactions and balances since the start of the XRP Ledger. ### Public Hubs -A hub server is a P2P Mode server with lots of [peer protocol connections](peer-protocol.html) to other servers. Hub servers, especially _public hubs_ that allow connections from the open internet, help the XRP Ledger network maintain efficient connectivity. Successful public hubs embody the following traits: +A hub server is a P2P Mode server with lots of [peer protocol connections](peer-protocol.md) to other servers. Hub servers, especially _public hubs_ that allow connections from the open internet, help the XRP Ledger network maintain efficient connectivity. Successful public hubs embody the following traits: - Good bandwidth. @@ -53,28 +53,28 @@ A hub server is a P2P Mode server with lots of [peer protocol connections](peer- - Ability to relay messages reliably. -To configure your server as a hub, increase the maximum number of peers allowed and make sure you've [forwarded the appropriate ports](forward-ports-for-peering.html) through your firewall and NAT (network address translation) router as appropriate. +To configure your server as a hub, increase the maximum number of peers allowed and make sure you've [forwarded the appropriate ports](../../infrastructure/configuration/peering/forward-ports-for-peering.md) through your firewall and NAT (network address translation) router as appropriate. ### Validators -The robustness of the XRP Ledger depends on an interconnected web of _validators_ who each trust some other validators _not to collude_. In addition to processing each transaction and calculating ledger state exactly like other P2P Mode servers, validators participate actively in the [consensus protocol](consensus.html). If you or your organization relies on the XRP Ledger, it is in your interest to contribute to the consensus process by running _one_ server as a validator. +The robustness of the XRP Ledger depends on an interconnected web of _validators_ who each trust some other validators _not to collude_. In addition to processing each transaction and calculating ledger state exactly like other P2P Mode servers, validators participate actively in the [consensus protocol](../consensus-protocol/index.md). If you or your organization relies on the XRP Ledger, it is in your interest to contribute to the consensus process by running _one_ server as a validator. Validation uses only a small amount of computing resources, but there is not much benefit to a single entity or organization running multiple validators because doing so does not provide more protections against collusion. Each validator identifies itself with a unique cryptographic key pair that must be carefully managed; multiple validators must not share a key pair. For these reasons, validation is disabled by default. -You can safely enable validation on a server that is also used for other purposes; this type of configuration is called an _all-purpose server_. Alternatively, you can run a _dedicated validator_ that does not perform other tasks, possibly in a [cluster](clustering.html) with other P2P Mode `rippled` servers. +You can safely enable validation on a server that is also used for other purposes; this type of configuration is called an _all-purpose server_. Alternatively, you can run a _dedicated validator_ that does not perform other tasks, possibly in a [cluster](clustering.md) with other P2P Mode `rippled` servers. -For more information about running a validator, see [Run `rippled` as a Validator](run-rippled-as-a-validator.html). +For more information about running a validator, see [Run `rippled` as a Validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md). ## Reporting Mode -[New in: rippled 1.7.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}New in: rippled 1.7.0{% /badge %} -Reporting mode is specialized mode for serving API requests more efficiently. In this mode, the server gets the latest validated ledger data over [gRPC](configure-grpc.html) from a separate `rippled` server running in P2P Mode, then loads that data into a relational database ([PostgreSQL](https://www.postgresql.org/)). The reporting mode server does not directly participate in the peer-to-peer network, though it can forward requests such as transaction submission to the P2P Mode server it uses. +Reporting mode is specialized mode for serving API requests more efficiently. In this mode, the server gets the latest validated ledger data over [gRPC](../../infrastructure/configuration/configure-grpc.md) from a separate `rippled` server running in P2P Mode, then loads that data into a relational database ([PostgreSQL](https://www.postgresql.org/)). The reporting mode server does not directly participate in the peer-to-peer network, though it can forward requests such as transaction submission to the P2P Mode server it uses. -Multiple reporting mode servers can share access to a PostgreSQL database and [Apache Cassandra](https://cassandra.apache.org/) cluster to serve a large amount of history without each server needing a redundant copy of all the data. Reporting mode servers provide this data through the same [`rippled` APIs](http-websocket-apis.html) with some slight changes to accommodate for the differences in how they store the underlying data. +Multiple reporting mode servers can share access to a PostgreSQL database and [Apache Cassandra](https://cassandra.apache.org/) cluster to serve a large amount of history without each server needing a redundant copy of all the data. Reporting mode servers provide this data through the same [`rippled` APIs](../../references/http-websocket-apis/index.md) with some slight changes to accommodate for the differences in how they store the underlying data. -Most notably, reporting mode servers do not report pending, non-validated ledger data or transactions. This limitation is relevant to certain use cases that rely on rapid access to in-flux data, such as performing arbitrage in the [decentralized exchange](decentralized-exchange.html). +Most notably, reporting mode servers do not report pending, non-validated ledger data or transactions. This limitation is relevant to certain use cases that rely on rapid access to in-flux data, such as performing arbitrage in the [decentralized exchange](../tokens/decentralized-exchange/index.md). @@ -83,19 +83,15 @@ Most notably, reporting mode servers do not report pending, non-validated ledger In stand-alone mode, the server operates without connecting to the network and participating in the consensus process. Without the consensus process, you have to manually advance the ledger and no distinction is made between "closed" and "validated" ledgers. However, the server still provides API access and processes transactions the same. This enables you to: -- [Test the effects of Amendments](test-amendments.html) before those Amendments have gone into effect across the decentralized network. -- [Create a new genesis ledger](start-a-new-genesis-ledger-in-stand-alone-mode.html) from scratch. -- [Load an existing ledger version](load-a-saved-ledger-in-stand-alone-mode.html) from disk, then replay specific transactions to re-create their outcomes or test other possibilities. +- [Test the effects of Amendments](../../infrastructure/testing-and-auditing/test-amendments.md) before those Amendments have gone into effect across the decentralized network. +- [Create a new genesis ledger](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md) from scratch. +- [Load an existing ledger version](../../infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md) from disk, then replay specific transactions to re-create their outcomes or test other possibilities. ## See Also - **Tutorials:** - - [Configure `rippled`](configure-rippled.html) - - [Use rippled in Stand-Alone Mode](use-stand-alone-mode.html) + - [Configure `rippled`](../../infrastructure/configuration/index.md) + - [Use rippled in Stand-Alone Mode](../../infrastructure/testing-and-auditing/index.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/networks-and-servers/the-clio-server.md b/content/concepts/networks-and-servers/the-clio-server.md index b18427f8d3..4d16c9396f 100644 --- a/content/concepts/networks-and-servers/the-clio-server.md +++ b/content/concepts/networks-and-servers/the-clio-server.md @@ -13,7 +13,7 @@ Clio stores validated historical ledger and transaction data in a space efficien Clio requires access to a `rippled` server, which can run on the same machine as Clio or separately. -While Clio offers the complete [HTTP / WebSocket APIs](http-websocket-apis.html), by default, it only returns validated data. For any requests that require access to the P2P network, Clio automatically forwards the request to the `rippled` server on the P2P network and passes the response back. +While Clio offers the complete [HTTP / WebSocket APIs](../../references/http-websocket-apis/index.md), by default, it only returns validated data. For any requests that require access to the P2P network, Clio automatically forwards the request to the `rippled` server on the P2P network and passes the response back. ## Why Should I Run a Clio Server? @@ -30,7 +30,7 @@ There are lots of reasons you might want to run your own Clio server, but most o ## How does a Clio Server Work? -{{ include_svg("img/clio-basic-architecture.svg", "Figure 1: How does a Clio server work?") }} +[{% inline-svg file="/img/clio-basic-architecture.svg" /%}](/img/clio-basic-architecture.svg "Figure 1: How does a Clio server work?") A Clio server stores validated ledger data such as transaction metadata, account states, and ledger headers in a persistent datastore. @@ -47,4 +47,4 @@ Clio will **always** forward to `rippled` if any of the following is true: - [Clio source code](https://github.com/XRPLF/clio) - **Tutorials:** - - [Install Clio server on Ubuntu](install-clio-on-ubuntu.html) + - [Install Clio server on Ubuntu](../../infrastructure/installation/install-clio-on-ubuntu.md) diff --git a/content/concepts/networks-and-servers/transaction-censorship-detection.md b/content/concepts/networks-and-servers/transaction-censorship-detection.md index 30823b0724..b9b8b62035 100644 --- a/content/concepts/networks-and-servers/transaction-censorship-detection.md +++ b/content/concepts/networks-and-servers/transaction-censorship-detection.md @@ -7,11 +7,11 @@ labels: --- # Transaction Censorship Detection -[New in: rippled 1.2.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}New in: rippled 1.2.0{% /badge %} The XRP Ledger is designed to be censorship resistant. In support of this design, the XRP Ledger provides an automated transaction censorship detector that is available on all `rippled` servers, enabling all participants to see if censorship is affecting the network. -While a `rippled` server is in sync with the network, the detector tracks all transactions that should have been accepted in the last round of [consensus](consensus.html) and included in the last validated ledger. The detector issues log messages of increasing severity when it sees transactions that have not been included in a validated ledger after several rounds of consensus. +While a `rippled` server is in sync with the network, the detector tracks all transactions that should have been accepted in the last round of [consensus](../consensus-protocol/index.md) and included in the last validated ledger. The detector issues log messages of increasing severity when it sees transactions that have not been included in a validated ledger after several rounds of consensus. @@ -67,13 +67,12 @@ Here are some scenarios that could cause the detector to issue false positive me ## See Also - **Concepts:** - - [Consensus Principles and Rules](consensus-principles-and-rules.html) - - [Transaction Queue](transaction-queue.html) + - [Consensus Principles and Rules](../consensus-protocol/consensus-principles-and-rules.md) + - [Transaction Queue](../transactions/transaction-queue.md) - **Tutorials:** - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Understanding Log Messages](understanding-log-messages.html) + - [Reliable Transaction Submission](../transactions/reliable-transaction-submission.md) + - [Understanding Log Messages](../../infrastructure/troubleshooting/understanding-log-messages.md) - **References:** - - [Transaction Results](transaction-results.html) + - [Transaction Results](../../references/protocol/transactions/transaction-results/transaction-results.md) - -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/payment-types/bouncing-payments.md b/content/concepts/payment-types/bouncing-payments.md index 88fb319158..7a8264aeb2 100644 --- a/content/concepts/payment-types/bouncing-payments.md +++ b/content/concepts/payment-types/bouncing-payments.md @@ -9,10 +9,10 @@ labels: When one of your addresses receives a payment whose purpose is unclear, we recommend that you try to return the money to its sender. While this is more work than pocketing the money, it demonstrates good faith towards customers. You can have an operator bounce payments manually, or create a system to do so automatically. -The first requirement to bouncing payments is [robustly monitoring for incoming payments](robustly-monitoring-for-payments.html). You do not want to accidentally refund a customer for more than they sent you! (This is particularly important if your bounce process is automated.) Malicious users can take advantage of a naive integration by sending [partial payments](partial-payments.html#partial-payments-exploit). +The first requirement to bouncing payments is [robustly monitoring for incoming payments](robustly-monitoring-for-payments.md). You do not want to accidentally refund a customer for more than they sent you! (This is particularly important if your bounce process is automated.) Malicious users can take advantage of a naive integration by sending [partial payments](partial-payments.md#partial-payments-exploit). Second, you should send bounced payments as Partial Payments. Since third parties can manipulate the cost of pathways between addresses, Partial Payments allow you to divest yourself of the full amount without being concerned about exchange rates within the XRP Ledger. You should publicize your bounced payments policy as part of your terms of use. Send the bounced payment from either an operational address or a standby address. -To send a Partial Payment, enable the [`tfPartialPayment` flag](payment.html#payment-flags) on the transaction. Set the `Amount` field to the amount you received and omit the `SendMax` field. You should use the `SourceTag` value from the incoming payment as the `DestinationTag` value for the return payment. +To send a Partial Payment, enable the [`tfPartialPayment` flag](../../references/protocol/transactions/types/payment.md#payment-flags) on the transaction. Set the `Amount` field to the amount you received and omit the `SendMax` field. You should use the `SourceTag` value from the incoming payment as the `DestinationTag` value for the return payment. To prevent two systems from bouncing payments back and forth indefinitely, you can set a new Source Tag for the outgoing return payment. If you receive an unexpected payment whose Destination Tag matches the Source Tag of a return you sent, then do not bounce it back again. diff --git a/content/concepts/payment-types/checks.md b/content/concepts/payment-types/checks.md index 16fa99290a..ef79a2d111 100644 --- a/content/concepts/payment-types/checks.md +++ b/content/concepts/payment-types/checks.md @@ -17,7 +17,7 @@ XRP Ledger Checks can have expiration times after which they may no longer be ca - Checks allow people to exchange funds using a process that is familiar to and accepted by the banking industry. -- If your intended recipient uses [Deposit Authorization](depositauth.html) to block direct payments from strangers, a check is a good alternative. +- If your intended recipient uses [Deposit Authorization](../accounts/depositauth.md) to block direct payments from strangers, a check is a good alternative. - Flexible check cashes. The recipient can redeem the Check for between a minimum and maximum amount. @@ -43,27 +43,23 @@ XRP Ledger Checks can have expiration times after which they may no longer be ca For more information about Checks in the XRP Ledger, see: -- [Transaction Reference](transaction-types.html) +- [Transaction Reference](../../references/protocol/transactions/types/index.md) - [CheckCreate][] - [CheckCash][] - [CheckCancel][] -- [Checks Tutorials](use-checks.html) - - [Send a Check](send-a-check.html) - - [Look up Checks by sender address](look-up-checks-by-sender.html) - - [Look up Checks by recipient address](look-up-checks-by-recipient.html) - - [Cash a Check for an exact amount](cash-a-check-for-an-exact-amount.html) - - [Cash a Check for a flexible amount](cash-a-check-for-a-flexible-amount.html) - - [Cancel a Check](cancel-a-check.html) +- [Checks Tutorials](../../tutorials/use-specialized-payment-types/use-checks/use-checks.md) + - [Send a Check](../../tutorials/use-specialized-payment-types/use-checks/send-a-check.md) + - [Look up Checks by sender address](../../tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md) + - [Look up Checks by recipient address](../../tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md) + - [Cash a Check for an exact amount](../../tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md) + - [Cash a Check for a flexible amount](../../tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md) + - [Cancel a Check](../../tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md) - [Checks amendment][] For more information about related features, see: -* [Deposit Authorization](depositauth.html) -* [Escrow](escrow.html) -* [Payment Channels Tutorial](use-payment-channels.html) +* [Deposit Authorization](../accounts/depositauth.md) +* [Escrow](escrow.md) +* [Payment Channels Tutorial](../../tutorials/use-specialized-payment-types/use-payment-channels.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/payment-types/cross-currency-payments.md b/content/concepts/payment-types/cross-currency-payments.md index 45a42007e6..056b5c0981 100644 --- a/content/concepts/payment-types/cross-currency-payments.md +++ b/content/concepts/payment-types/cross-currency-payments.md @@ -10,35 +10,32 @@ labels: The XRP Ledger enables you to make cross-currency payments of XRP and tokens. Cross-currency payments within the XRP Ledger are fully atomic, meaning the payment fully executes or no part of the payment executes at all. -By default, cross-currency payments deliver a fixed amount to their destination at a variable cost to their source. Cross-currency payments can also be [partial payments](partial-payments.html) that deliver a variable amount within a set sending limit. +By default, cross-currency payments deliver a fixed amount to their destination at a variable cost to their source. Cross-currency payments can also be [partial payments](partial-payments.md) that deliver a variable amount within a set sending limit. ## Prerequisites -- By definition, a cross-currency payment involves at least two currencies, which means that at least one currency involved must be a non-XRP [token](tokens.html). -- There must be at least one [Path](paths.html) between the sender and receiver, and the total liquidity across all paths must be enough to execute the payment. Cross-currency payments convert from one currency to another by consuming [Offers](offers.html) in the XRP Ledger's [decentralized exchange](decentralized-exchange.html). +- By definition, a cross-currency payment involves at least two currencies, which means that at least one currency involved must be a non-XRP [token](../tokens/index.md). +- There must be at least one [Path](../tokens/fungible-tokens/paths.md) between the sender and receiver, and the total liquidity across all paths must be enough to execute the payment. Cross-currency payments convert from one currency to another by consuming [Offers](../tokens/decentralized-exchange/offers.md) in the XRP Ledger's [decentralized exchange](../tokens/decentralized-exchange/index.md). ## Auto-Bridging Cross-currency payments that exchange one token for another token can automatically use XRP to bridge the tokens, when it decreases the cost of the payment. For example, a payment sending from USD to MXN automatically converts USD to XRP and then XRP to MXN if doing so is cheaper than converting USD to MXN directly. Larger trades can use a combination of direct (USD-MXN) and auto-bridged (USD-XRP-MXN) conversions. -For more information, see [Auto-Bridging](autobridging.html). +For more information, see [Auto-Bridging](../tokens/decentralized-exchange/autobridging.md). ## See Also - **Concepts:** - - [Tokens](tokens.html) - - [Decentralized Exchange](decentralized-exchange.html) - - [Paths](paths.html) + - [Tokens](../tokens/index.md) + - [Decentralized Exchange](../tokens/decentralized-exchange/index.md) + - [Paths](../tokens/fungible-tokens/paths.md) - **References:** - [Payment transaction type][Payment transaction] - [path_find method][] - [ripple_path_find method][] - - [Interpreting Metadata of Cross-Currency Payments](look-up-transaction-results.html#token-payments) + - [Interpreting Metadata of Cross-Currency Payments](../transactions/finality-of-results/look-up-transaction-results.md#token-payments) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/payment-types/direct-xrp-payments.md b/content/concepts/payment-types/direct-xrp-payments.md index a1c9658983..9da2080d83 100644 --- a/content/concepts/payment-types/direct-xrp-payments.md +++ b/content/concepts/payment-types/direct-xrp-payments.md @@ -26,26 +26,22 @@ The basis of any financial system is transferring value. The quickest and simple 2. Transaction processing checks the receiving address; if any check fails, the payment fails. - - If the receiving address is funded, the engine makes additional checks based on their settings, such as [Deposit Authorization](depositauth.html). - - If the receiving address isn't funded, it checks if the payment will deliver enough XRP to meet the minimum [account reserve](reserves.html) requirement. If the reserve is met, a new account is created for the address and its starting balance is the amount received. + - If the receiving address is funded, the engine makes additional checks based on their settings, such as [Deposit Authorization](../accounts/depositauth.md). + - If the receiving address isn't funded, it checks if the payment will deliver enough XRP to meet the minimum [account reserve](../accounts/reserves.md) requirement. If the reserve is met, a new account is created for the address and its starting balance is the amount received. 4. The ledger debits and credits the corresponding accounts. - **Note:** The sender is also debited the XRP [transaction cost](transaction-cost.html). + **Note:** The sender is also debited the XRP [transaction cost](../transactions/transaction-cost.md). ## See Also - **Tutorials:** - - [Send XRP (Interactive Tutorial)](send-xrp.html) - - [Monitor Incoming Payments with WebSocket](monitor-incoming-payments-with-websocket.html) + - [Send XRP (Interactive Tutorial)](../../tutorials/get-started/send-xrp.md) + - [Monitor Incoming Payments with WebSocket](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) - **References:** - [Payment transaction][] - - [Transaction Results](transaction-results.html) + - [Transaction Results](../../references/protocol/transactions/transaction-results/transaction-results.md) - [account_info method][] - for checking XRP balances - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/payment-types/escrow.md b/content/concepts/payment-types/escrow.md index fe45fba01e..34f89486b0 100644 --- a/content/concepts/payment-types/escrow.md +++ b/content/concepts/payment-types/escrow.md @@ -37,7 +37,7 @@ The XRP Ledger supports three types of escrow: The following diagram shows the states an Escrow can progress through: -[![State diagram showing escrows going from Held → Ready/Conditionally Ready → Expired](img/escrow-states.png)](img/escrow-states.png) +[![State diagram showing escrows going from Held → Ready/Conditionally Ready → Expired](/img/escrow-states.png)](/img/escrow-states.png) The diagram shows three different cases for three possible combinations of the escrow's "finish-after" time (`FinishAfter` field), crypto-condition (`Condition` field), and expiration time (`CancelAfter` field): @@ -52,24 +52,24 @@ The diagram shows three different cases for three possible combinations of the e - Escrow only works with XRP, not tokens. - The costs can make it infeasible for small amounts. - - Escrow requires two transactions: one to create the escrow, and one to finish or cancel it. Crypto-Conditions incur a higher [transaction cost](transaction-cost.html) than usual. - - While the escrow is incomplete, the sender is responsible for the [reserve requirement](reserves.html) of the `Escrow` object. + - Escrow requires two transactions: one to create the escrow, and one to finish or cancel it. Crypto-Conditions incur a higher [transaction cost](../transactions/transaction-cost.md) than usual. + - While the escrow is incomplete, the sender is responsible for the [reserve requirement](../accounts/reserves.md) of the `Escrow` object. - You can't create an escrow with past time values. -- Timed releases and expirations resolve according to [ledger close times](ledger-close-times.html). In practice, actual release and expiration times can vary by about five seconds as ledgers close. +- Timed releases and expirations resolve according to [ledger close times](../ledgers/ledger-close-times.md). In practice, actual release and expiration times can vary by about five seconds as ledgers close. - The only supported crypto-condition type is PREIMAGE-SHA-256. ## EscrowFinish Transaction Cost -When using crypto-conditions, the EscrowFinish transaction must pay a [higher transaction cost](transaction-cost.html#special-transaction-costs) because of the higher processing load involved in verifying the crypto-condition fulfillment. +When using crypto-conditions, the EscrowFinish transaction must pay a [higher transaction cost](../transactions/transaction-cost.md#special-transaction-costs) because of the higher processing load involved in verifying the crypto-condition fulfillment. -The additional transaction cost required is proportional to the size of the fulfillment. If the transaction is [multi-signed](multi-signing.html), the cost of multi-signing is added to the cost of the fulfillment. +The additional transaction cost required is proportional to the size of the fulfillment. If the transaction is [multi-signed](../accounts/multi-signing.md), the cost of multi-signing is added to the cost of the fulfillment. -Currently, an EscrowFinish with a fulfillment requires a minimum transaction cost of **330 [drops of XRP](basic-data-types.html#specifying-currency-amounts) plus 10 drops per 16 bytes in the size of the fulfillment**. +Currently, an EscrowFinish with a fulfillment requires a minimum transaction cost of **330 [drops of XRP](../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts) plus 10 drops per 16 bytes in the size of the fulfillment**. **Note:** The above formula is based on the assumption that the reference cost of a transaction is 10 drops of XRP. -If [Fee Voting](fee-voting.html) changes the `reference_fee` value, the formula scales based on the new reference cost. The generalized formula for an EscrowFinish transaction with a fulfillment is as follows: +If [Fee Voting](../consensus-protocol/fee-voting.md) changes the `reference_fee` value, the formula scales based on the new reference cost. The generalized formula for an EscrowFinish transaction with a fulfillment is as follows: ``` reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) @@ -81,18 +81,15 @@ reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) For more information about Escrow in the XRP Ledger, see the following: -- [Escrow Tutorials](use-escrows.html) -- [Transaction Reference](transaction-formats.html) +- [Escrow Tutorials](../../tutorials/tasks/use-specialized-payment-types/use-escrows/index.md) +- [Transaction Reference](../../references/protocol/transactions/index.md) - [EscrowCreate transaction][] - [EscrowFinish transaction][] - [EscrowCancel transaction][] -- [Ledger Reference](ledger-data-formats.html) - - [Escrow object](escrow-object.html) +- [Ledger Reference](../../references/protocol/ledger-data/index.md) + - [Escrow object](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) For more information on Ripple's 55-billion XRP lock-up, see [Ripple's Insights Blog](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/payment-types/index.md b/content/concepts/payment-types/index.md index 88ae56b9c6..91b7dcc88c 100644 --- a/content/concepts/payment-types/index.md +++ b/content/concepts/payment-types/index.md @@ -1,9 +1,13 @@ --- html: payment-types.html parent: concepts.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: The XRP Ledger supports point-to-point XRP payments alongside other, more specialized payment types. --- # Payment Types -The XRP Ledger supports point-to-point XRP payments alongside other, more specialized payment types. \ No newline at end of file +The XRP Ledger supports point-to-point XRP payments alongside other, more specialized payment types. + + +{% child-pages /%} diff --git a/content/concepts/payment-types/partial-payments.md b/content/concepts/payment-types/partial-payments.md index 4569224e2c..d462dafdf6 100644 --- a/content/concepts/payment-types/partial-payments.md +++ b/content/concepts/payment-types/partial-payments.md @@ -8,11 +8,11 @@ labels: --- # Partial Payments -The sender of any [Payment transaction][] can enable the ["Partial Payment" flag](payment.html#payment-flags) and send a payment which delivers less than the `Amount` field indicates. When processing any Payment, use the `delivered_amount` metadata field, not the `Amount` field. The `delivered_amount` is the amount a payment actually delivered. +The sender of any [Payment transaction][] can enable the ["Partial Payment" flag](../../references/protocol/transactions/types/payment.md#payment-flags) and send a payment which delivers less than the `Amount` field indicates. When processing any Payment, use the `delivered_amount` metadata field, not the `Amount` field. The `delivered_amount` is the amount a payment actually delivered. -If a Payment does not enable the Partial Payment flag, the `Amount` field of a [Payment transaction][] in the XRP Ledger specifies the amount to deliver after charging for exchange rates and [transfer fees](transfer-fees.html). The Partial Payment flag ([`tfPartialPayment`](payment.html#payment-flags)) allows a payment to succeed by reducing the amount received instead of increasing the amount sent. Partial payments are useful for [returning payments](bouncing-payments.html) without incurring additional costs to oneself. +If a Payment does not enable the Partial Payment flag, the `Amount` field of a [Payment transaction][] in the XRP Ledger specifies the amount to deliver after charging for exchange rates and [transfer fees](../tokens/transfer-fees.md). The Partial Payment flag ([`tfPartialPayment`](../../references/protocol/transactions/types/payment.md#payment-flags)) allows a payment to succeed by reducing the amount received instead of increasing the amount sent. Partial payments are useful for [returning payments](bouncing-payments.md) without incurring additional costs to oneself. -The amount of XRP used for the [transaction cost](transaction-cost.html) is always deducted from the sender’s account, regardless of the type of transaction. This transaction cost, or fee, is not included in the `Amount`. +The amount of XRP used for the [transaction cost](../transactions/transaction-cost.md) is always deducted from the sender’s account, regardless of the type of transaction. This transaction cost, or fee, is not included in the `Amount`. Partial payments can be used to exploit naive integrations with the XRP Ledger to steal money from exchanges and gateways. The [Partial Payments Exploit](#partial-payments-exploit) section of this document describes how this exploit works and how you can avoid it. @@ -24,11 +24,13 @@ When sending a Payment that does not use the Partial Payment flag, the `Amount` In other words: - Amount + (fees) = (sent amount) ≤ SendMax +``` +Amount + (fees) = (sent amount) ≤ SendMax +``` -In this formula, "fees" refers to [transfer fees](transfer-fees.html) and currency exchange rates. The "sent amount" and the delivered amount (`Amount`) may be denominated in different currencies and converted by consuming Offers in the XRP Ledger's decentralized exchange. +In this formula, "fees" refers to [transfer fees](../tokens/transfer-fees.md) and currency exchange rates. The "sent amount" and the delivered amount (`Amount`) may be denominated in different currencies and converted by consuming Offers in the XRP Ledger's decentralized exchange. -**Note:** The `Fee` field of the transaction refers to the XRP [transaction cost](transaction-cost.html), which is destroyed to relay the transaction to the network. The exact transaction cost specified is always debited from the sender and is completely separate from the fee calculations for any type of payment. +**Note:** The `Fee` field of the transaction refers to the XRP [transaction cost](../transactions/transaction-cost.md), which is destroyed to relay the transaction to the network. The exact transaction cost specified is always debited from the sender and is completely separate from the fee calculations for any type of payment. ### With Partial Payments @@ -38,7 +40,9 @@ The optional `DeliverMin` field specifies a minimum amount to deliver. The `Send In other words: - Amount ≥ (Delivered Amount) = SendMax - (Fees) ≥ DeliverMin > 0 +``` +Amount ≥ (Delivered Amount) = SendMax - (Fees) ≥ DeliverMin > 0 +``` ### Partial Payment Limitations @@ -48,13 +52,13 @@ Partial Payments have the following limitations: - Direct XRP-to-XRP payments cannot be partial payments; this case returns the [result code][] `temBAD_SEND_XRP_PARTIAL`. - However, cross-currency payments that involve XRP as one of the currencies _can_ be partial payments. -[result code]: transaction-results.html +[result code]: ../../references/protocol/transactions/transaction-results/transaction-results.md ### The `delivered_amount` Field -To help understand how much a partial payment actually delivered, the metadata of a successful Payment transaction includes a `delivered_amount` field. This field describes the amount actually delivered, in the [same format](basic-data-types.html#specifying-currency-amounts) as the `Amount` field. +To help understand how much a partial payment actually delivered, the metadata of a successful Payment transaction includes a `delivered_amount` field. This field describes the amount actually delivered, in the [same format](../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts) as the `Amount` field. -For non-partial payments, the `delivered_amount` field of the transaction metadata is equal to the `Amount` field of the transaction. When a payment delivers [tokens](tokens.html), the `delivered_amount` may be slightly different than the `Amount` field due to rounding. +For non-partial payments, the `delivered_amount` field of the transaction metadata is equal to the `Amount` field of the transaction. When a payment delivers [tokens](../tokens/index.md), the `delivered_amount` may be slightly different than the `Amount` field due to rounding. The delivered amount is **not available** for transactions that meet **both** of the following criteria: @@ -70,13 +74,13 @@ You can find the `delivered_amount` field in the following places: | [JSON-RPC / WebSocket][] | [account_tx method][] | `result.transactions` array members' `meta.delivered_amount` | | [JSON-RPC / WebSocket][] | [tx method][] | `result.meta.delivered_amount` | | [JSON-RPC / WebSocket][] | [transaction_entry method][] | `result.metadata.delivered_amount` | -| [JSON-RPC / WebSocket][] | [ledger method][] (with transactions expanded) | `result.ledger.transactions` array members' `metaData.delivered_amount` [New in: rippled 1.2.1][] | -| [WebSocket][] | [Transaction subscriptions](subscribe.html#transaction-streams) | Subscription messages' `meta.delivered_amount` [New in: rippled 1.2.1][] | +| [JSON-RPC / WebSocket][] | [ledger method][] (with transactions expanded) | `result.ledger.transactions` array members' `metaData.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}New in: rippled 1.2.1{% /badge %} | +| [WebSocket][] | [Transaction subscriptions](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#transaction-streams) | Subscription messages' `meta.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}New in: rippled 1.2.1{% /badge %} | | ripple-lib v1.x | `getTransaction` method | `outcome.deliveredAmount` | | ripple-lib v1.x | `getTransactions` method | array members' `outcome.deliveredAmount` | -[WebSocket]: http-websocket-apis.html -[JSON-RPC / WebSocket]: http-websocket-apis.html +[WebSocket]: ../../references/http-websocket-apis/index.md +[JSON-RPC / WebSocket]: ../../references/http-websocket-apis/index.md ## Partial Payments Exploit @@ -118,21 +122,18 @@ Using [the `delivered_amount` field](#the-delivered_amount-field) when processin ## See Also - **Tools:** - - [Transaction Sender](tx-sender.html) + - [Transaction Sender](/resources/dev-tools/tx-sender) - **Concepts:** - - [Transactions](transactions.html) + - [Transactions](../transactions/index.md) - **Tutorials:** - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Monitor Incoming Payments with WebSocket](monitor-incoming-payments-with-websocket.html) - - [Use Specialized Payment Types](use-specialized-payment-types.html) - - [List XRP as an Exchange](list-xrp-as-an-exchange.html) + - [Look Up Transaction Results](../transactions/finality-of-results/look-up-transaction-results.md) + - [Monitor Incoming Payments with WebSocket](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) + - [Use Specialized Payment Types](../../tutorials/tasks/use-specialized-payment-types/index.md) + - [List XRP as an Exchange](../../use-cases/defi/list-xrp-as-an-exchange.md) - **References:** - [Payment transaction][] - - [Transaction Metadata](transaction-metadata.html) + - [Transaction Metadata](../../references/protocol/transactions/metadata.md) - [account_tx method][] - [tx method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/payment-types/payment-channels.md b/content/concepts/payment-types/payment-channels.md index 41fd2ca8d7..286f984ada 100644 --- a/content/concepts/payment-types/payment-channels.md +++ b/content/concepts/payment-types/payment-channels.md @@ -10,7 +10,7 @@ labels: Payment Channels are an advanced feature for sending "asynchronous" XRP payments that can be divided into very small increments and settled later. -The XRP for a payment channel is set aside temporarily. The sender creates _Claims_ against the channel, which the recipient verifies without sending an XRP Ledger transaction or waiting for a new ledger version to be approved by [consensus](consensus.html). (This is an _asynchronous_ process because it happens separate from the usual pattern of getting transactions approved by consensus.) At any time, the recipient can _redeem_ a Claim to receive an amount of XRP authorized by that Claim. Settling a Claim like this uses a standard XRP Ledger transaction, as part of the usual consensus process. This single transaction can encompass any number of transactions guaranteed by smaller Claims. +The XRP for a payment channel is set aside temporarily. The sender creates _Claims_ against the channel, which the recipient verifies without sending an XRP Ledger transaction or waiting for a new ledger version to be approved by [consensus](../consensus-protocol/index.md). (This is an _asynchronous_ process because it happens separate from the usual pattern of getting transactions approved by consensus.) At any time, the recipient can _redeem_ a Claim to receive an amount of XRP authorized by that Claim. Settling a Claim like this uses a standard XRP Ledger transaction, as part of the usual consensus process. This single transaction can encompass any number of transactions guaranteed by smaller Claims. Because Claims can be verified individually but settled in bulk later, payment channels make it possible to conduct transactions at a rate only limited by the participants' ability to create and verify the digital signatures of those Claims. This limit is primarily based on the speed of the participants' hardware and the complexity of the signature algorithms. For maximum speed, use Ed25519 signatures, which are faster than the XRP Ledger's default secp256k1 ECDSA signatures. Research has [demonstrated the ability to create over Ed25519 100,000 signatures per second and to verify over 70,000 per second](https://ed25519.cr.yp.to/ed25519-20110926.pdf) on commodity hardware in 2011. @@ -30,26 +30,22 @@ Payment Channels do not intrinsically specify anything about what you can buy an The following diagram summarizes the lifecycle of a payment channel: -{{ include_svg("img/paychan-flow.svg", "Payment Channel Flow Diagram") }} +[{% inline-svg file="/img/paychan-flow.svg" /%}](/img/paychan-flow.svg "Payment Channel Flow Diagram") ## See Also - **Related Concepts:** - - [Escrow](escrow.html), a similar feature for higher-value, lower-speed conditional XRP payments. + - [Escrow](escrow.md), a similar feature for higher-value, lower-speed conditional XRP payments. - **Tutorials and Use Cases:** - - [Use Payment Channels](use-payment-channels.html), a tutorial stepping through the process of using a payment channel. - - [Open a Payment Channel to Enable an Inter-Exchange Network](open-a-payment-channel-to-enable-an-inter-exchange-network.html) + - [Use Payment Channels](../../tutorials/use-specialized-payment-types/use-payment-channels.md), a tutorial stepping through the process of using a payment channel. + - [Open a Payment Channel to Enable an Inter-Exchange Network](../../tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network.md) - **References:** - [channel_authorize method][] - [channel_verify method][] - - [PayChannel object](paychannel.html) + - [PayChannel object](../../references/protocol/ledger-data/ledger-entry-types/paychannel.md) - [PaymentChannelClaim transaction][] - [PaymentChannelCreate transaction][] - [PaymentChannelFund transaction][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/payment-types/robustly-monitoring-for-payments.md b/content/concepts/payment-types/robustly-monitoring-for-payments.md index d1221d8913..98fc23b4a1 100644 --- a/content/concepts/payment-types/robustly-monitoring-for-payments.md +++ b/content/concepts/payment-types/robustly-monitoring-for-payments.md @@ -11,8 +11,8 @@ To robustly check for incoming payments, issuers should do the following: * Keep a record of the most-recently-processed transaction and ledger. That way, if you temporarily lose connectivity, you know how far to go back. * Check the result code of every incoming payment. Some payments go into the ledger to charge an anti-spam fee, even though they failed. Only transactions with the result code `tesSUCCESS` can change non-XRP balances. Only transactions from a validated ledger are final. -* Look out for [Partial Payments](partial-payments.html). Payments with the partial payment flag enabled can be considered "successful" if any non-zero amount is delivered, even minuscule amounts. - * Check the transaction for a [`delivered_amount` field](partial-payments.html#the-delivered_amount-field). If present, that field indicates how much money _actually_ got delivered to the `Destination` address. +* Look out for [Partial Payments](partial-payments.md). Payments with the partial payment flag enabled can be considered "successful" if any non-zero amount is delivered, even minuscule amounts. + * Check the transaction for a [`delivered_amount` field](partial-payments.md#the-delivered_amount-field). If present, that field indicates how much money _actually_ got delivered to the `Destination` address. * In xrpl.js, you can use the [`xrpl.getBalanceChanges()` method](https://js.xrpl.org/modules.html#getBalanceChanges) to see how much each address received. In some cases, this can be divided into multiple parts on different trust lines. * Some transactions change your balances without being payments directly to or from one of your addresses. @@ -23,4 +23,4 @@ As an added precaution, we recommend comparing the balances of your issuing addr * Use the `gateway_balances` method to check your balances. * If you have a Transfer Fee set, then your obligations within the XRP Ledger decrease slightly whenever other XRP Ledger addresses transfer your tokens among themselves. -For more details on how to read the details of incoming transactions, see [Look Up Transaction Results](look-up-transaction-results.html). +For more details on how to read the details of incoming transactions, see [Look Up Transaction Results](../transactions/finality-of-results/look-up-transaction-results.md). diff --git a/content/concepts/payment-types/sending-payments-to-customers.md b/content/concepts/payment-types/sending-payments-to-customers.md index 3af961336b..6ae014de95 100644 --- a/content/concepts/payment-types/sending-payments-to-customers.md +++ b/content/concepts/payment-types/sending-payments-to-customers.md @@ -15,12 +15,9 @@ Generally, when sending stablecoins, you use a [Payment transaction][]. Some of - Before sending a payment into the XRP Ledger, double check the cost of the payment. A payment from your operational address to a customer should not cost more than the destination amount plus any transfer fee you have set. - When issuing new tokens from your issuing address, you should omit the `SendMax` field. Otherwise, malicious users can arrange their settings so that you issue the full `SendMax` amount instead of just the intended destination `Amount`. - When sending tokens _from a hot wallet_, you must specify `SendMax` if you have a nonzero transfer fee. In this case, set the `SendMax` field to the amount specified in the `Amount` field plus the transfer fee. (You may want to round up slightly, in case the precision of your calculations doesn't exactly match the XRP Ledger's.) For example, if you send a transaction whose `Amount` field specifies 99.47 USD, and your transfer fee is 0.25%, you should set the `SendMax` field to 124.3375, or 124.34 USD if you round up. -- Omit the `Paths` field. This field is unnecessary when sending directly from the issuer, or from a hot wallet as long as the tokens being sent and the tokens being received have the same currency code and issuer—that is, they're the same stablecoin. The `Paths` field is intended for [Cross-Currency Payments](cross-currency-payments.html) and longer multi-hop (rippling) payments. If you naively perform pathfinding and attach the paths to your transaction, your payment may take a more expensive indirect route rather than failing if the direct path is not available; malicious users can even set this up to. +- Omit the `Paths` field. This field is unnecessary when sending directly from the issuer, or from a hot wallet as long as the tokens being sent and the tokens being received have the same currency code and issuer—that is, they're the same stablecoin. The `Paths` field is intended for [Cross-Currency Payments](cross-currency-payments.md) and longer multi-hop (rippling) payments. If you naively perform pathfinding and attach the paths to your transaction, your payment may take a more expensive indirect route rather than failing if the direct path is not available; malicious users can even set this up to. - If you get a `tecPATH_DRY` result code, this usually indicates that either the customer doesn't have the necessary trust line set up already, or your issuer's rippling settings aren't configured correctly. -For a detailed tutorial on issuing a token on the XRP Ledger, whether a stablecoin or otherwise, see [Issue a Fungible Token](issue-a-fungible-token.html). +For a detailed tutorial on issuing a token on the XRP Ledger, whether a stablecoin or otherwise, see [Issue a Fungible Token](../../tutorials/use-tokens/issue-a-fungible-token.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/decentralized-exchange/autobridging.md b/content/concepts/tokens/decentralized-exchange/autobridging.md index 5812022978..ac7fc5825e 100644 --- a/content/concepts/tokens/decentralized-exchange/autobridging.md +++ b/content/concepts/tokens/decentralized-exchange/autobridging.md @@ -8,22 +8,18 @@ labels: --- # Auto-Bridging -Any [Offer](offers.html) in the XRP Ledger's [decentralized exchange](decentralized-exchange.html) that would exchange two tokens could potentially use XRP as an intermediary currency in a synthetic order book. This is because of _auto-bridging_, which serves to improve liquidity across all asset pairs by using XRP when doing so is cheaper than trading directly. This works because of XRP's nature as a native cryptocurrency to the XRP Ledger. Offer execution can use a combination of direct and auto-bridged offers to achieve the best total exchange rate. +Any [Offer](offers.md) in the XRP Ledger's [decentralized exchange](index.md) that would exchange two tokens could potentially use XRP as an intermediary currency in a synthetic order book. This is because of _auto-bridging_, which serves to improve liquidity across all asset pairs by using XRP when doing so is cheaper than trading directly. This works because of XRP's nature as a native cryptocurrency to the XRP Ledger. Offer execution can use a combination of direct and auto-bridged offers to achieve the best total exchange rate. Example: _Anita places an offer to sell GBP and buy BRL. She might find that this uncommon market has few offers. There is one offer with a good rate, but it has insufficient quantity to satisfy Anita's trade. However, both GBP and BRL have active, competitive markets to XRP. The XRP Ledger's auto-bridging system finds a way to complete Anita's offer by purchasing XRP with GBP from one trader, then selling the XRP to another trader to buy BRL. Anita automatically gets the best rate possible by combining the small offer in the direct GBP:BRL market with the better composite rates created by pairing GBP:XRP and XRP:BRL offers._ -Auto-bridging happens automatically on any [OfferCreate transaction][]. [Payment transactions](payment.html) _do not_ use auto-bridging by default, but path-finding can find [paths](paths.html) that have the same effect. +Auto-bridging happens automatically on any [OfferCreate transaction][]. [Payment transactions](../../../references/protocol/transactions/types/payment.md) _do not_ use auto-bridging by default, but path-finding can find [paths](../fungible-tokens/paths.md) that have the same effect. ## See Also - [Dev Blog: Introducing Autobridging](https://xrpl.org/blog/2014/introducing-offer-autobridging.html) -- [Offer Preference](offers.html#offer-preference) +- [Offer Preference](offers.md#offer-preference) -- [Payment Paths](paths.html) +- [Payment Paths](../fungible-tokens/paths.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/decentralized-exchange/automated-market-makers.md b/content/concepts/tokens/decentralized-exchange/automated-market-makers.md index 472ebd3491..1066a7ac63 100644 --- a/content/concepts/tokens/decentralized-exchange/automated-market-makers.md +++ b/content/concepts/tokens/decentralized-exchange/automated-market-makers.md @@ -10,7 +10,7 @@ labels: --- # Automated Market Makers -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ Automated Market Makers (AMMs) are smart contracts that provide liquidity in the XRP Ledger's decentralized exchange. Each AMM holds a pool of two assets and enables users to swap between them at an exchange rate set by a formula. @@ -24,9 +24,9 @@ When the flow of funds between the two assets in a pool is relatively active and ## How the AMM Works -An AMM holds two different assets: at most one of these can be XRP, and one or both of them can be [tokens](tokens.html). Tokens with different issuers are considered different assets for this purpose. This means that there can be an AMM for two tokens with the same currency code but different issuers ("FOO issued by WayGate" is different than "FOO issued by StableFoo"), or the same issuer but different currency codes. The order does not matter; the AMM for FOO.WayGate to XRP is the same as for XRP to FOO.WayGate. +An AMM holds two different assets: at most one of these can be XRP, and one or both of them can be [tokens](../index.md). Tokens with different issuers are considered different assets for this purpose. This means that there can be an AMM for two tokens with the same currency code but different issuers ("FOO issued by WayGate" is different than "FOO issued by StableFoo"), or the same issuer but different currency codes. The order does not matter; the AMM for FOO.WayGate to XRP is the same as for XRP to FOO.WayGate. -When users want to trade in the decentralized exchange, their [Offers](offers.html) and [Cross-Currency Payments](cross-currency-payments.html) can automatically use AMMs to complete the trade. A single transaction might execute by matching Offers, AMMs, or a mix of both, depending on what's cheaper. +When users want to trade in the decentralized exchange, their [Offers](offers.md) and [Cross-Currency Payments](../../payment-types/cross-currency-payments.md) can automatically use AMMs to complete the trade. A single transaction might execute by matching Offers, AMMs, or a mix of both, depending on what's cheaper. An AMM sets its exchange rate based on the balance of assets in the pool. When you trade against an AMM, the exchange rate adjusts based on how much your trade shifts the balance of assets the AMM holds. As its supply of one asset goes down, the price of that asset goes up; as its supply of an asset goes up, the price of that asset goes down. An AMM gives generally better exchange rates when it has larger overall amounts in its pool. This is because any given trade causes a smaller shift in the balance of the AMM's assets. The more a trade unbalances the AMM's supply of the two assets, the more extreme the exchange rate becomes. @@ -39,8 +39,8 @@ The XRP Ledger's implements a _geometric mean_ AMM with a weight parameter of 0. To prevent misuse, some restrictions apply to the assets used in an AMM. If you try to create an AMM with an asset that does not meet these restrictions, the transaction fails. The rules are as follows: - The asset must not be an LP Token from another AMM. -- If the asset is a token whose issuer uses [Authorized Trust Lines](authorized-trust-lines.html), the creator of the AMM must be authorized to hold those tokens. Only users whose trust lines are authorized can deposit that token into the AMM or withdraw it; however, users can still deposit or withdraw the other asset. -- If the [Clawback amendment][] :not_enabled: is enabled, the issuer of the token must not have enabled the ability to claw back their tokens. +- If the asset is a token whose issuer uses [Authorized Trust Lines](../fungible-tokens/authorized-trust-lines.md), the creator of the AMM must be authorized to hold those tokens. Only users whose trust lines are authorized can deposit that token into the AMM or withdraw it; however, users can still deposit or withdraw the other asset. +- If the [Clawback amendment][] {% not-enabled /%} is enabled, the issuer of the token must not have enabled the ability to claw back their tokens. ## LP Tokens @@ -51,13 +51,13 @@ For example, if you created an AMM with 5 ETH and 5 USD, and then someone exchan Anyone can deposit assets to an existing AMM. When they do, they receive new LP Tokens based on how much they deposited. The amount that a liquidity provider can withdraw from an AMM is based on the proportion of the AMM's LP Tokens they hold compared to the total number of LP Tokens outstanding. -LP Tokens are like other tokens in the XRP Ledger, so you can use them in many [types of payments](payment-types.html) or trade them in the decentralized exchange. (To receive LP Tokens as payment, you must set up a [trust line](trust-lines-and-issuing.html) with a non-zero limit with the AMM Account as the issuer.) However, you can _only_ send LP Tokens directly to the AMM (redeeming them) using the [AMMWithdraw][] transaction type, not through other types of payments. Similarly, you can only send assets to the AMM's pool through the [AMMDeposit][] transaction type. +LP Tokens are like other tokens in the XRP Ledger, so you can use them in many [types of payments](../../payment-types/index.md) or trade them in the decentralized exchange. (To receive LP Tokens as payment, you must set up a [trust line](../fungible-tokens/index.md) with a non-zero limit with the AMM Account as the issuer.) However, you can _only_ send LP Tokens directly to the AMM (redeeming them) using the [AMMWithdraw][] transaction type, not through other types of payments. Similarly, you can only send assets to the AMM's pool through the [AMMDeposit][] transaction type. The AMM is designed so that an AMM's asset pool is empty if and only if the AMM has no outstanding LP Tokens. This situation can only occur as the result of an [AMMWithdraw][] transaction; when it does, the AMM is automatically deleted. ### LP Token Currency Codes -LP Tokens use a special type of currency code in the 160-bit hexadecimal ["non-standard" format](currency-formats.html#nonstandard-currency-codes). These codes have the first 8 bits `0x03`. The remainder of the code is a SHA-512 hash, truncated to the first 152 bits, of the two assets' currency codes and their issuers. (The assets are placed in a "canonical order" with the numerically lower currency+issuer pair first.) As a result, the LP Tokens for a given asset pair's AMM have a predictable, consistent currency code. +LP Tokens use a special type of currency code in the 160-bit hexadecimal ["non-standard" format](../../../references/protocol/data-types/currency-formats.md#nonstandard-currency-codes). These codes have the first 8 bits `0x03`. The remainder of the code is a SHA-512 hash, truncated to the first 152 bits, of the two assets' currency codes and their issuers. (The assets are placed in a "canonical order" with the numerically lower currency+issuer pair first.) As a result, the LP Tokens for a given asset pair's AMM have a predictable, consistent currency code. ## Trading Fees @@ -66,7 +66,7 @@ Trading fees are a source of passive income for liquidity providers, and they of Liquidity providers can vote to set the fee from 0% to 1%, in increments of 0.001%. Liquidity providers have an incentive to set trading fees at an appropriate rate: if fees are too high, trades will use order books to get a better rate instead; if fees are too low, liquidity providers don't get any benefit for contributing to the pool. Each AMM gives its liquidity providers the power to vote on its fees, in proportion to the amount of LP Tokens those liquidity providers hold. -To vote, a liquidity provider sends an [AMMVote transaction][]. Whenever anyone places a new vote, the AMM recalculates its fee to be an average of the latest votes weighted by how many LP Tokens those voters hold. Up to 8 liquidity providers' votes can be counted this way; if more liquidity providers try to vote then only the top 8 votes (by most LP Tokens held) are counted. Even though liquidity providers' share of LP Tokens can shift rapidly for many reasons (such as trading those tokens using [Offers](offers.html)), the trading fees are only recalculated whenever someone places a new vote (even if that vote is not one of the top 8). +To vote, a liquidity provider sends an [AMMVote transaction][]. Whenever anyone places a new vote, the AMM recalculates its fee to be an average of the latest votes weighted by how many LP Tokens those voters hold. Up to 8 liquidity providers' votes can be counted this way; if more liquidity providers try to vote then only the top 8 votes (by most LP Tokens held) are counted. Even though liquidity providers' share of LP Tokens can shift rapidly for many reasons (such as trading those tokens using [Offers](offers.md)), the trading fees are only recalculated whenever someone places a new vote (even if that vote is not one of the top 8). ### Auction Slot @@ -77,7 +77,7 @@ With any AMM, when the price of its assets shifts significantly in external mark ## Representation in the Ledger -In the ledger's state data, an AMM consists of multiple [ledger entries](ledger-object-types.html): +In the ledger's state data, an AMM consists of multiple [ledger entries](../../../references/protocol/ledger-data/ledger-entry-types/index.md): - An [AMM entry][] describing the automated market maker itself. @@ -85,9 +85,9 @@ In the ledger's state data, an AMM consists of multiple [ledger entries](ledger- The address of this AccountRoot is chosen somewhat randomly when the AMM is created, and it is different if the AMM is deleted and re-created. This is to prevent people from funding the AMM account with excess XRP in advance. -- [Trust lines](trust-lines-and-issuing.html) to the special AMM Account for the tokens in the AMM's pool. +- [Trust lines](../fungible-tokens/index.md) to the special AMM Account for the tokens in the AMM's pool. -These ledger entries are not owned by any account, so the [reserve requirement](reserves.html) does not apply to them. However, to prevent spam, the transaction to create an AMM has a special [transaction cost](transaction-cost.html) that requires the sender to burn a larger than usual amount of XRP. +These ledger entries are not owned by any account, so the [reserve requirement](../../accounts/reserves.md) does not apply to them. However, to prevent spam, the transaction to create an AMM has a special [transaction cost](../../transactions/transaction-cost.md) that requires the sender to burn a larger than usual amount of XRP. ## Deletion @@ -101,11 +101,8 @@ An AMM is deleted when an [AMMWithdraw transaction][] withdraws all assets from If there are more than 512 trust lines attached to the AMM account when it would be deleted, the withdraw succeeds and deletes as many trust lines as it can, but leaves the AMM in the ledger with no assets in its pool. -While an AMM has no assets in its pool, anyone can delete it by sending an [AMMDelete transaction][]; if the remaining number of trust lines is still greater than the limit, multiple AMMDelete transactions may be necessary to fully delete the AMM. Alternatively, anyone can perform a [special deposit](ammdeposit.html#empty-amm-special-case) to fund the AMM as if it were new. No other operations are valid on an AMM with an empty asset pool. +While an AMM has no assets in its pool, anyone can delete it by sending an [AMMDelete transaction][]; if the remaining number of trust lines is still greater than the limit, multiple AMMDelete transactions may be necessary to fully delete the AMM. Alternatively, anyone can perform a [special deposit](../../../references/protocol/transactions/types/ammdeposit.md#empty-amm-special-case) to fund the AMM as if it were new. No other operations are valid on an AMM with an empty asset pool. There is no refund or incentive for deleting an empty AMM. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/decentralized-exchange/index.md b/content/concepts/tokens/decentralized-exchange/index.md index 8d0e3dec6a..2151732165 100644 --- a/content/concepts/tokens/decentralized-exchange/index.md +++ b/content/concepts/tokens/decentralized-exchange/index.md @@ -1,46 +1,47 @@ --- html: decentralized-exchange.html parent: tokens.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: The XRP Ledger contains a fully functional exchange where users can trade tokens for XRP or each other. targets: - en --- # Decentralized Exchange -The XRP Ledger has possibly the world's oldest _decentralized exchange_ (sometimes abbreviated "DEX"), operating continuously since the XRP Ledger's launch in 2012. The exchange allows users to buy and sell [tokens](tokens.html) for XRP or other tokens, with minimal [fees](fees.html) charged to the network itself (not paid out to any party). +The XRP Ledger has possibly the world's oldest _decentralized exchange_ (sometimes abbreviated "DEX"), operating continuously since the XRP Ledger's launch in 2012. The exchange allows users to buy and sell [tokens](../index.md) for XRP or other tokens, with minimal [fees](../../transactions/fees.md) charged to the network itself (not paid out to any party). -**Caution:** Anyone can [issue a token](issue-a-fungible-token.html) with any currency code or ticker symbol they want and sell it in the decentralized exchange. Always perform due diligence before buying a token, and pay attention to the issuer. Otherwise, you might give up something of value and receive worthless tokens in exchange. +**Caution:** Anyone can [issue a token](../../../tutorials/use-tokens/issue-a-fungible-token.md) with any currency code or ticker symbol they want and sell it in the decentralized exchange. Always perform due diligence before buying a token, and pay attention to the issuer. Otherwise, you might give up something of value and receive worthless tokens in exchange. ## Structure The XRP Ledger's decentralized exchange consists of an unlimited number of currency pairs, tracked on-demand when users make trades. A currency pair can consist of XRP and a token or two different tokens; tokens are always identified by the combination of an issuer and a currency code. It is possible to trade between two tokens with the same currency code and different issuers, or the same issuer and different currency codes. -As with all changes to the XRP Ledger, you need to send a [transaction](transactions.html) to make a trade. A trade in the XRP Ledger is called an [Offer](offers.html). An Offer is effectively a [_limit order_](https://en.wikipedia.org/wiki/Order_(exchange)#Limit_order) to buy or sell a specific amount of one currency (XRP or a token) for a specific amount of another. When the network executes an Offer, if there are any matching Offers for the same currency pair, they are consumed starting with the best exchange rate first. +As with all changes to the XRP Ledger, you need to send a [transaction](../../transactions/index.md) to make a trade. A trade in the XRP Ledger is called an [Offer](offers.md). An Offer is effectively a [_limit order_](https://en.wikipedia.org/wiki/Order_(exchange)#Limit_order) to buy or sell a specific amount of one currency (XRP or a token) for a specific amount of another. When the network executes an Offer, if there are any matching Offers for the same currency pair, they are consumed starting with the best exchange rate first. -An Offer can be fully or partially filled; if it's not fully filled right away, it becomes a passive Offer object in the ledger for the remaining amount. Later on, other Offers or [Cross-currency payments](cross-currency-payments.html) can match and consume the Offer. Because of this, Offers can execute at better than their requested exchange rate when initially placed, or at exactly their stated exchange rate later on (aside from minor differences to account for rounding). +An Offer can be fully or partially filled; if it's not fully filled right away, it becomes a passive Offer object in the ledger for the remaining amount. Later on, other Offers or [Cross-currency payments](../../payment-types/cross-currency-payments.md) can match and consume the Offer. Because of this, Offers can execute at better than their requested exchange rate when initially placed, or at exactly their stated exchange rate later on (aside from minor differences to account for rounding). -Offers can be manually or automatically canceled after being placed. For details on this and other properties of Offers, see [Offers](offers.html). +Offers can be manually or automatically canceled after being placed. For details on this and other properties of Offers, see [Offers](offers.md). -When trading two tokens, [auto-bridging](autobridging.html) improves exchange rates and liquidity by automatically trading token-to-XRP and XRP-to-token when doing so is cheaper than trading directly token-to-token. +When trading two tokens, [auto-bridging](autobridging.md) improves exchange rates and liquidity by automatically trading token-to-XRP and XRP-to-token when doing so is cheaper than trading directly token-to-token. ### Example Trade -{{ include_svg("img/decentralized-exchange-example-trade.svg", "Diagram: Partially filled offer to buy a token for XRP.") }} +[{% inline-svg file="/img/decentralized-exchange-example-trade.svg" /%}](/img/decentralized-exchange-example-trade.svg "Diagram: Partially filled offer to buy a token for XRP.") The above diagram shows an example trade in the decentralized exchange. In this example, a trader named Tran places an Offer to buy 100 tokens with the currency code FOO issued by a fictional business called WayGate. (For brevity, "FOO.WayGate" refers to these tokens.) Tran specifies that he is willing to spend up to 1000 XRP for the full total. When Tran's transaction is processed, the following things happen: 1. The network calculates the exchange rate of Tran's Offer, by dividing the amount to buy by the amount to pay. 0. The network finds the order book for the reverse of Tran's Offer: in this case, that means the order book for selling FOO.WayGate and buying XRP. This order book already has several existing Offers from other traders for varying amounts and exchange rates. 0. Tran's Offer "consumes" matching Offers, starting with the best exchange rate and working its way down, until either Tran's Offer has been fully filled, or there are no more Offers whose exchange rate is equal or better than the rate specified in Tran's Offer. In this example, only 22 FOO.WayGate are available at the requested rate or better. The consumed Offers are removed from the order book. -0. Tran receives the amount of FOO.WayGate that the trade was able to acquire, from the various traders who had previous placed orders to sell it. These tokens go to Tran's [trust line](trust-lines-and-issuing.html) to WayGate for FOO. (If Tran did not already have that trust line, one is automatically created.) +0. Tran receives the amount of FOO.WayGate that the trade was able to acquire, from the various traders who had previous placed orders to sell it. These tokens go to Tran's [trust line](../fungible-tokens/index.md) to WayGate for FOO. (If Tran did not already have that trust line, one is automatically created.) 0. In return, those traders receive XRP from Tran according to their stated exchange rates. 0. The network calculates the remainder of Tran's Offer: since the original Offer was to buy 100 FOO.WayGate and so far Tran has received 22, the remainder is 78 FOO.WayGate. Using the original exchange rate, that means that the rest of Tran's Offer is now to buy 78 FOO.WayGate for 780 XRP. 0. The resulting "remainder" gets placed onto the order book for trades going the same direction as Tran's: selling XRP and buying FOO.WayGate. Later transactions, including ones executed immediately after Tran's in the _same_ ledger, use the updated order books for their trades, so they can consume part or all of Tran's Offer until it's fully filled or Tran cancels it. -**Note:** The canonical order transactions execute in when a ledger is closed and validated is not the same as the order those transactions were sent. When multiple transactions affect the same order book in the same ledger, the final results of those transactions may be very different than the tentative results calculated at the time of transaction submission. For more details on when transactions' results are or are not final, see [Finality of Results](finality-of-results.html). +**Note:** The canonical order transactions execute in when a ledger is closed and validated is not the same as the order those transactions were sent. When multiple transactions affect the same order book in the same ledger, the final results of those transactions may be very different than the tentative results calculated at the time of transaction submission. For more details on when transactions' results are or are not final, see [Finality of Results](../../transactions/finality-of-results/index.md). ## Limitations @@ -51,13 +52,13 @@ Because trades are only executed each time a new ledger closes (approximately ev The XRP Ledger does not natively represent concepts such as market orders, stop orders, or trading on leverage. Some of these may be possible with creative use of custom tokens and Offer properties. -As a decentralized system, the XRP Ledger does not have any information on the actual people and organizations behind the [accounts](accounts.html) involved in trading. The ledger itself cannot implement restrictions around who can or cannot participate in trading, and users and issuers must take care to follow any relevant laws to regulate trading tokens that represent various types of underlying assets. Features such as [freezes](freezes.html) and [authorized trust lines](authorized-trust-lines.html) are intended to help issuers comply with relevant laws and regulations. +As a decentralized system, the XRP Ledger does not have any information on the actual people and organizations behind the [accounts](../../accounts/accounts.md) involved in trading. The ledger itself cannot implement restrictions around who can or cannot participate in trading, and users and issuers must take care to follow any relevant laws to regulate trading tokens that represent various types of underlying assets. Features such as [freezes](../fungible-tokens/freezes.md) and [authorized trust lines](../fungible-tokens/authorized-trust-lines.md) are intended to help issuers comply with relevant laws and regulations. ## See Also - **Concepts:** - - See [Offers](offers.html) for details on how trades work in the XRP Ledger. - - See [Tokens](tokens.html) for an overview of how various types of value can be represented in the XRP Ledger. + - See [Offers](offers.md) for details on how trades work in the XRP Ledger. + - See [Tokens](../index.md) for an overview of how various types of value can be represented in the XRP Ledger. - **References:** - [account_offers method][] to look up Offers placed by an account - [book_offers method][] to look up Offers to buy or sell a given currency pair @@ -66,7 +67,7 @@ As a decentralized system, the XRP Ledger does not have any information on the a - [Offer object][] for the data structure of passive Offers in the ledger - [DirectoryNode object][] for the data structure that tracks all the Offers for a given currency pair and exchange rate. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} + + +{% child-pages /%} diff --git a/content/concepts/tokens/decentralized-exchange/offers.md b/content/concepts/tokens/decentralized-exchange/offers.md index b572e136b4..128d6764b5 100644 --- a/content/concepts/tokens/decentralized-exchange/offers.md +++ b/content/concepts/tokens/decentralized-exchange/offers.md @@ -7,11 +7,11 @@ labels: --- # Offers -In the XRP Ledger's [decentralized exchange](decentralized-exchange.html), trade orders are called "Offers". Offers can trade XRP with [tokens](tokens.html), or tokens for other tokens, including tokens with the same currency code but different issuers. (Tokens with the same code but different issuers can also sometimes be exchanged through [rippling](rippling.html).) +In the XRP Ledger's [decentralized exchange](index.md), trade orders are called "Offers". Offers can trade XRP with [tokens](../index.md), or tokens for other tokens, including tokens with the same currency code but different issuers. (Tokens with the same code but different issuers can also sometimes be exchanged through [rippling](../fungible-tokens/rippling.md).) - To create an Offer, send an [OfferCreate transaction][]. -- Offers that aren't fully filled immediately become [Offer objects](offer.html) in the ledger data. Later Offers and Payments can consume the Offer object from the ledger. -- [Cross-currency payments](cross-currency-payments.html) consume Offers to provide liquidity. However, they never create Offer objects in the ledger. +- Offers that aren't fully filled immediately become [Offer objects](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) in the ledger data. Later Offers and Payments can consume the Offer object from the ledger. +- [Cross-currency payments](../../payment-types/cross-currency-payments.md) consume Offers to provide liquidity. However, they never create Offer objects in the ledger. ## Lifecycle of an Offer @@ -19,7 +19,7 @@ An [OfferCreate transaction][] is an instruction to conduct a trade, either betw The Offer object waits in the ledger until other Offers or cross-currency payments fully consume it. The account that placed the Offer is called the Offer's _owner_. You can cancel your own Offers at any time, using the dedicated [OfferCancel transaction][], or as an option of the [OfferCreate transaction][]. -While you have an Offer in the ledger, it sets aside some of your XRP toward the [owner reserve](reserves.html). When the Offer gets removed, for any reason, that XRP is freed up again. +While you have an Offer in the ledger, it sets aside some of your XRP toward the [owner reserve](../../accounts/reserves.md). When the Offer gets removed, for any reason, that XRP is freed up again. ### Variations @@ -40,7 +40,7 @@ When you try to place an Offer, the transaction is rejected as "unfunded" if you However, you don't need to hold the full amount specified in the Offer. Placing an Offer does not lock up your funds, so you can place multiple Offers to sell the same tokens (or XRP), or place an Offer and hope to get enough tokens or XRP to fully fund it later. -**To sell XRP,** you must hold enough XRP to meet all the [reserve requirements](reserves.html), including the reserve for the Offer object to be placed in the ledger and for the trust line to hold the token you are buying. As long as you have any XRP left over after setting aside the reserve amount, you can place the Offer. +**To sell XRP,** you must hold enough XRP to meet all the [reserve requirements](../../accounts/reserves.md), including the reserve for the Offer object to be placed in the ledger and for the trust line to hold the token you are buying. As long as you have any XRP left over after setting aside the reserve amount, you can place the Offer. When another Offer matches yours, both Offers execute to the extent that their owners' funds allow at the the time. If there are matching Offers and you run out of funds before yours is fully filled, the rest of your Offer is canceled. An Offer can't make your balance of a token negative, unless you are the issuer of that token. (If you are the issuer, you can use Offers to issue new tokens up to the total amount specified in your Offers; tokens you issue are represented as negative balances from your perspective.) @@ -50,15 +50,15 @@ It is possible for an Offer to become temporarily or permanently _unfunded_ in t - If the owner no longer has any of the sell asset. - The Offer becomes funded again when the owner obtains more of that asset. -- If the sell asset is a token in a [frozen trust line](freezes.html). +- If the sell asset is a token in a [frozen trust line](../fungible-tokens/freezes.md). - The Offer becomes funded again when the trust line is no longer frozen. -- If the Offer needs to create a new trust line, but the owner does not have enough XRP for the increased [reserve](reserves.html). (See [Offers and Trust](#offers-and-trust).) +- If the Offer needs to create a new trust line, but the owner does not have enough XRP for the increased [reserve](../../accounts/reserves.md). (See [Offers and Trust](#offers-and-trust).) - The offer becomes funded again when the owner obtains more XRP, or the reserve requirements decrease. - If the Offer is expired. (See [Offer Expiration](#offer-expiration).) An unfunded Offer stays on the ledger until a transaction removes it. Ways that an Offer can be removed from the ledger include: -- A matching Offer or [Cross-currency payment](cross-currency-payments.html) fully consumes the Offer. +- A matching Offer or [Cross-currency payment](../../payment-types/cross-currency-payments.md) fully consumes the Offer. - The owner explicitly cancels the Offer. - The owner implicitly cancels the Offer by sending a new Offer that crosses it. - The Offer is found to be unfunded or expired during transaction processing. Typically this means that another Offer tried to consume it and could not. @@ -68,14 +68,14 @@ An unfunded Offer stays on the ledger until a transaction removes it. Ways that Tracking the funding status of all Offers can be computationally taxing. In particular, addresses that are actively trading may have a large number of Offers open. A single balance can affect the funding status of many Offers. Because of this, the XRP Ledger does not _proactively_ find and remove unfunded or expired Offers. -A client application can locally track the funding status of Offers. To do this, first retrieve an order book using the [book_offers method][] and check the `taker_gets_funded` field of Offers. Then, [subscribe](subscribe.html) to the `transactions` stream and watch the transaction metadata to see which Offers are modified. +A client application can locally track the funding status of Offers. To do this, first retrieve an order book using the [book_offers method][] and check the `taker_gets_funded` field of Offers. Then, [subscribe](../../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md) to the `transactions` stream and watch the transaction metadata to see which Offers are modified. ## Offers and Trust -The limit values of [trust lines](trust-lines-and-issuing.html) do not affect Offers. In other words, you can use an Offer to acquire more than the maximum amount you trust an issuer for. +The limit values of [trust lines](../fungible-tokens/index.md) do not affect Offers. In other words, you can use an Offer to acquire more than the maximum amount you trust an issuer for. -However, holding tokens still requires a trust line to the issuer. When an Offer is consumed, it automatically creates any necessary trust lines, setting their limits to 0. Because [trust lines increase the reserve an account must hold](reserves.html), any Offers that would require a new trust line also require the address to have enough XRP to meet the reserve for that trust line. +However, holding tokens still requires a trust line to the issuer. When an Offer is consumed, it automatically creates any necessary trust lines, setting their limits to 0. Because [trust lines increase the reserve an account must hold](../../accounts/reserves.md), any Offers that would require a new trust line also require the address to have enough XRP to meet the reserve for that trust line. Trust line limits protect you from receiving more of a token as payment than you want. Offers can go beyond those limits because they are an explicit statement of how much of the token you want. @@ -93,7 +93,7 @@ When you place an Offer, you can optionally add an expiration time to it. By def Expiration times are specified down to the second, but the exact, real-world time when an Offer expires is less precise. An Offer is expired if it has an expiration time that is _earlier than or equal to_ the close time of the previous ledger. Otherwise, the Offer can still execute, even if the real-world time is later than the Offer's expiration. In other words, an Offer is still "active" if its expiration time is later than the close time of the latest validated ledger, regardless of what your clock says. -This is a consequence of how the network reaches agreement. For the entire peer-to-peer network to reach a consensus, all servers must agree which Offers are expired when executing transactions. Individual servers may have slight differences in their internal clock settings, so they might not reach the same conclusions about which Offers were expired if they each used the "current" time. The close time of a ledger is not known until after the transactions in that ledger have been executed, so servers use the official close time of the _previous_ ledger instead. The [close times of ledgers are rounded](ledger-close-times.html), which further increases the potential difference between real-world time and the time used to determine if an Offer is expired. +This is a consequence of how the network reaches agreement. For the entire peer-to-peer network to reach a consensus, all servers must agree which Offers are expired when executing transactions. Individual servers may have slight differences in their internal clock settings, so they might not reach the same conclusions about which Offers were expired if they each used the "current" time. The close time of a ledger is not known until after the transactions in that ledger have been executed, so servers use the official close time of the _previous_ ledger instead. The [close times of ledgers are rounded](../../ledgers/ledger-close-times.md), which further increases the potential difference between real-world time and the time used to determine if an Offer is expired. **Note:** Expired Offers remain in the ledger data until a transaction removes them. Until then, they can continue to appear in data retrieved from the API (for example, using the [ledger_entry method][]). Transactions automatically delete any expired and unfunded Offers they find, usually while executing Offers or cross-currency payments that would have matched or canceled them. The owner reserve associated with an Offer is only made available again when the Offer is actually deleted. @@ -101,16 +101,13 @@ This is a consequence of how the network reaches agreement. For the entire peer- ## See Also - **Concepts:** - - [Tokens](tokens.html) - - [Paths](paths.html) + - [Tokens](../index.md) + - [Paths](../fungible-tokens/paths.md) - **References:** - [account_offers method][] - [book_offers method][] - [OfferCreate transaction][] - [OfferCancel transaction][] - - [Offer object](offer.html) + - [Offer object](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/decentralized-exchange/ticksize.md b/content/concepts/tokens/decentralized-exchange/ticksize.md index cdef7729d4..c0959d4b09 100644 --- a/content/concepts/tokens/decentralized-exchange/ticksize.md +++ b/content/concepts/tokens/decentralized-exchange/ticksize.md @@ -24,9 +24,4 @@ When an issuer enables, disables, or changes the `TickSize`, Offers that were pl - [book_offers method][] - [OfferCreate transaction][] - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/fungible-tokens/authorized-trust-lines.md b/content/concepts/tokens/fungible-tokens/authorized-trust-lines.md index ad4407d4b7..3db9310ee7 100644 --- a/content/concepts/tokens/fungible-tokens/authorized-trust-lines.md +++ b/content/concepts/tokens/fungible-tokens/authorized-trust-lines.md @@ -12,7 +12,7 @@ The Authorized Trust Lines feature enables issuers to create tokens that can onl To use the Authorized Trust Lines feature, enable the **Require Auth** flag on your issuing account. While the setting is enabled, other accounts can only hold tokens you issue if you have authorized those accounts' trust lines to your issuing account. -You can authorize a trust line by sending a [TrustSet transaction][] from your issuing address, configuring the trust line between your account and the account to authorize. After you have authorized a trust line, you can never revoke that authorization. (You can, however, [freeze](freezes.html) that trust line if you need to.) +You can authorize a trust line by sending a [TrustSet transaction][] from your issuing address, configuring the trust line between your account and the account to authorize. After you have authorized a trust line, you can never revoke that authorization. (You can, however, [freeze](freezes.md) that trust line if you need to.) The transaction to authorize a trust line must be signed by the issuing address, which unfortunately means an increased risk exposure for that address. @@ -31,7 +31,7 @@ With a stablecoin on the XRP Ledger and use Authorized Trust Lines, the process ## As a Precaution -Even if you don't intend to use Authorized Trust Lines, you can enable the Require Auth setting on [operational and standby accounts](account-types.html), and then never have those accounts approve any trust lines. This prevents those accounts from issuing tokens by accident (for example, if a user accidentally trusts the wrong address). This is only a precaution, and does not stop the operational and standby accounts from transferring the _issuer's_ tokens, as intended. +Even if you don't intend to use Authorized Trust Lines, you can enable the Require Auth setting on [operational and standby accounts](../../accounts/account-types.md), and then never have those accounts approve any trust lines. This prevents those accounts from issuing tokens by accident (for example, if a user accidentally trusts the wrong address). This is only a precaution, and does not stop the operational and standby accounts from transferring the _issuer's_ tokens, as intended. ## Technical Details @@ -62,12 +62,12 @@ POST http://localhost:5005/ } ``` -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} + ## Checking Whether an Account Has Require Auth Enabled -To see whether an account has the Require Auth setting enabled, use the [account_info method][] to look up the account. Compare the value of the `Flags` field (in the `result.account_data` object) with the [bitwise flags defined for an AccountRoot ledger object](accountroot.html). +To see whether an account has the Require Auth setting enabled, use the [account_info method][] to look up the account. Compare the value of the `Flags` field (in the `result.account_data` object) with the [bitwise flags defined for an AccountRoot ledger object](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md). If the result of the `Flags` value bitwise-AND the `lsfRequireAuth` flag value (`0x00040000`) is nonzero, then the account has Require Auth enabled. If the result is zero, then the account has Require Auth disabled. @@ -75,7 +75,7 @@ If the result of the `Flags` value bitwise-AND the `lsfRequireAuth` flag value ( If you are using the Authorized Trust Lines feature, others cannot hold balances you issue unless you first authorize their trust lines to you. If you issue more than one currency, you must separately authorize trust lines for each currency. -To authorize a trust line, submit a [TrustSet transaction][] from your issuing address, with the user to trust as the `issuer` of the `LimitAmount`. Leave the `value` (the amount to trust them for) as **0**, and enable the [`tfSetfAuth`](trustset.html#trustset-flags) flag for the transaction. +To authorize a trust line, submit a [TrustSet transaction][] from your issuing address, with the user to trust as the `issuer` of the `LimitAmount`. Leave the `value` (the amount to trust them for) as **0**, and enable the [`tfSetfAuth`](../../../references/protocol/transactions/types/trustset.md#trustset-flags) flag for the transaction. The following is an example of using a locally-hosted `rippled`'s [submit method][] to send a TrustSet transaction authorizing the customer address `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn` to hold USD issued by the address `rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW`: @@ -105,8 +105,8 @@ POST http://localhost:8088/ } ``` -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} + ## Checking Whether Trust Lines Are Authorized @@ -118,17 +118,14 @@ In the response's `result.lines` array, find the object whose `currency` field i ## See Also - **Concepts:** - - [Deposit Authorization](depositauth.html) - - [Freezing Issued Currencies](freezes.html) + - [Deposit Authorization](../../accounts/depositauth.md) + - [Freezing Issued Currencies](freezes.md) - **References:** - [account_lines method][] - [account_info method][] - [AccountSet transaction][] - [TrustSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) - - [RippleState (trust line) Flags](ripplestate.html#ripplestate-flags) + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/fungible-tokens/clawing-back-tokens.md b/content/concepts/tokens/fungible-tokens/clawing-back-tokens.md index 80ed7da635..3337117ac9 100644 --- a/content/concepts/tokens/fungible-tokens/clawing-back-tokens.md +++ b/content/concepts/tokens/fungible-tokens/clawing-back-tokens.md @@ -7,7 +7,7 @@ labels: --- # Clawing Back Tokens -{% include '_snippets/clawback-disclaimer.md' %} +{% partial file="/_snippets/clawback-disclaimer.md" /%} For regulatory purposes, some issuers need the ability to recover tokens after they are distributed to accounts. For example, if an issuer were to discover that tokens were sent to an account sanctioned for illegal activity, the issuer could recover, or *claw back*, the funds. @@ -36,7 +36,4 @@ Conversely, if you try to set `lsfNoFreeze` while `lsfAllowTrustLineClawback` is If successful, this transaction would claw back at most 314.159 FOO issued by rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9S and held by rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md b/content/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md index 8c807dfed9..a905da7924 100644 --- a/content/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md +++ b/content/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md @@ -7,9 +7,9 @@ labels: --- # Common Misunderstandings about Freezes -It is a common misconception that Ripple or others can freeze XRP, similar to how centralized services like PayPal can suspend your account and prevent you from accessing your funds. In reality, while the XRP Ledger does have a [freeze feature](freezes.html), it can only be used on issued tokens, not on XRP. **No one can freeze XRP.** +It is a common misconception that Ripple or others can freeze XRP, similar to how centralized services like PayPal can suspend your account and prevent you from accessing your funds. In reality, while the XRP Ledger does have a [freeze feature](freezes.md), it can only be used on issued tokens, not on XRP. **No one can freeze XRP.** -Tokens in the XRP Ledger are [fundamentally different than XRP](currency-formats.html#comparison). Tokens always exist _in trust lines_, which _can_ be frozen. XRP exists in accounts, which _cannot_ be frozen. +Tokens in the XRP Ledger are [fundamentally different than XRP](../../../references/protocol/data-types/currency-formats.md#comparison). Tokens always exist _in trust lines_, which _can_ be frozen. XRP exists in accounts, which _cannot_ be frozen. ## Isn't XRP Just Ripple's Token? @@ -21,7 +21,7 @@ The XRP Ledger is decentralized so that no one party has control over it—not R The _issuer_ of a token can freeze your trust line for _that token specifically_. They can't freeze the rest of your account, or any tokens from different issuers, and they can't stop you from using the XRP Ledger. -Furthermore, token issuers can voluntarily and permanently _give up_ their ability to freeze tokens. This ["No Freeze"](freezes.html#no-freeze) setting is intended to allow tokens to behave more like physical cash, in that third parties can't stop you from using it. +Furthermore, token issuers can voluntarily and permanently _give up_ their ability to freeze tokens. This ["No Freeze"](freezes.md#no-freeze) setting is intended to allow tokens to behave more like physical cash, in that third parties can't stop you from using it. ## But I Heard Ripple Froze Jed McCaleb's XRP? @@ -30,4 +30,4 @@ This is a misrepresentation of events that actually happened in 2015–2016. Jed Notably, the "freeze" did not happen on the XRP Ledger and did not involve the XRP Ledger's freeze feature. Like any custodial exchange, Bitstamp has the ability to freeze its users' accounts and stop them from trading or withdrawing funds, especially if those funds are involved in a legal dispute. -In contrast, when trading in the XRP Ledger's [decentralized exchange](decentralized-exchange.html), you custody your own assets so no one can stop you from dealing in XRP. +In contrast, when trading in the XRP Ledger's [decentralized exchange](../decentralized-exchange/index.md), you custody your own assets so no one can stop you from dealing in XRP. diff --git a/content/concepts/tokens/fungible-tokens/demurrage.md b/content/concepts/tokens/fungible-tokens/demurrage.md index c5a638c479..a0ccf8f988 100644 --- a/content/concepts/tokens/fungible-tokens/demurrage.md +++ b/content/concepts/tokens/fungible-tokens/demurrage.md @@ -8,7 +8,7 @@ status: removed **Warning:** Demurrage is a deprecated feature with no ongoing support. This page describes historical behavior of older versions of XRP Ledger software. -[Demurrage](http://en.wikipedia.org/wiki/Demurrage_%28currency%29) is a negative interest rate on assets held that represents the cost of holding those assets. To represent the demurrage on a token in the XRP Ledger, you can track it using a custom [currency code](currency-formats.html#currency-codes) that indicates the demurrage rate. This effectively creates separate versions of the token for each varying amount of demurrage. Client applications can support this by representing the demurraging currency code with an annual percentage rate alongside the currency code. For example: "XAU (-0.5%pa)". +[Demurrage](http://en.wikipedia.org/wiki/Demurrage_%28currency%29) is a negative interest rate on assets held that represents the cost of holding those assets. To represent the demurrage on a token in the XRP Ledger, you can track it using a custom [currency code](../../../references/protocol/data-types/currency-formats.md#currency-codes) that indicates the demurrage rate. This effectively creates separate versions of the token for each varying amount of demurrage. Client applications can support this by representing the demurraging currency code with an annual percentage rate alongside the currency code. For example: "XAU (-0.5%pa)". ## Representing Demurraging Token Amounts @@ -41,14 +41,14 @@ To convert between display amounts and ledger amounts, you can use the following 2. Apply it to the amount to convert: - To convert ledger values to display values, multiply by the demurrage coefficient. - To convert display values to ledger values, divide by the demurrage coefficient. -3. If necessary, adjust the resulting value so that it can be represented to the desired accuracy. Ledger values are limited to 15 decimal digits of precision, according to the XRP Ledger's [token format](currency-formats.html#token-precision). +3. If necessary, adjust the resulting value so that it can be represented to the desired accuracy. Ledger values are limited to 15 decimal digits of precision, according to the XRP Ledger's [token format](../../../references/protocol/data-types/currency-formats.md#token-precision). ## Interest-Bearing Currency Code Format -Rather than using the [standard currency code format](currency-formats.html#currency-codes), tokens that have positive interest or negative interest (demurrage) use a 160-bit currency code in the following format: +Rather than using the [standard currency code format](../../../references/protocol/data-types/currency-formats.md#currency-codes), tokens that have positive interest or negative interest (demurrage) use a 160-bit currency code in the following format: -![Demurraging Currency Code Format](img/demurrage-currency-code-format.png) +![Demurraging Currency Code Format](/img/demurrage-currency-code-format.png) 1. The first 8 bits must be `0x01`. 2. The next 24 bits represent 3 characters of ASCII. diff --git a/content/concepts/tokens/fungible-tokens/freezes.md b/content/concepts/tokens/fungible-tokens/freezes.md index bab520f786..d454fde43d 100644 --- a/content/concepts/tokens/fungible-tokens/freezes.md +++ b/content/concepts/tokens/fungible-tokens/freezes.md @@ -11,7 +11,7 @@ Issuers can freeze the tokens they issue in the XRP Ledger. **This does not appl In certain cases, to meet regulatory requirements, or while investigating suspicious activity, an exchange or gateway may want to freeze token balances. -**Tip:** No one can freeze XRP in the XRP Ledger. However, custodial exchanges can always freeze the funds they custody at their own discretion. For more details, see [Common Misunderstandings about Freezes](common-misconceptions-about-freezes.html). +**Tip:** No one can freeze XRP in the XRP Ledger. However, custodial exchanges can always freeze the funds they custody at their own discretion. For more details, see [Common Misunderstandings about Freezes](common-misconceptions-about-freezes.md). There are three settings related to freezes: @@ -24,18 +24,18 @@ All freeze settings can be enacted regardless of whether the balance(s) to be fr ## Individual Freeze -The **Individual Freeze** feature is a setting on a [trust line](trust-lines-and-issuing.html). When an issuer enables the Individual Freeze setting, the following rules apply to the tokens in that trust line: +The **Individual Freeze** feature is a setting on a [trust line](index.md). When an issuer enables the Individual Freeze setting, the following rules apply to the tokens in that trust line: * Payments can still occur directly between the two parties of the frozen trust line. * The counterparty of that trust line can no longer decrease its balance on the frozen trust line, except in direct payments to the issuer. The counterparty can only send the frozen currencies directly to the issuer. * The counterparty can still receive payments from others on the frozen trust line. -* The counterparty's offers to sell the tokens in the frozen trust line are [considered unfunded](offers.html#lifecycle-of-an-offer). +* The counterparty's offers to sell the tokens in the frozen trust line are [considered unfunded](../decentralized-exchange/offers.md#lifecycle-of-an-offer). Reminder: Trust lines do not hold XRP. XRP cannot be frozen. A financial institution can freeze the trust line linking it to a counterparty if that counterparty shows suspicious activity or violates the financial institution's terms of use. The financial institution should also freeze the counterparty in any other systems the financial institution uses that are connected to the XRP Ledger. (Otherwise, an address might still be able to engage in undesired activity by sending payments through the financial institution.) -An individual address can freeze its trust line to a financial institution. This has no effect on transactions between the institution and other users. It does, however, prevent other addresses, including [operational addresses](account-types.html), from sending that financial institution's tokens to the individual address. This type of individual freeze has no effect on offers. +An individual address can freeze its trust line to a financial institution. This has no effect on transactions between the institution and other users. It does, however, prevent other addresses, including [operational addresses](../../accounts/account-types.md), from sending that financial institution's tokens to the individual address. This type of individual freeze has no effect on offers. The Individual Freeze applies to a single trust line. To freeze multiple tokens with a particular counterparty, the address must enable Individual Freeze on the trust lines for each separate currency code. @@ -46,15 +46,15 @@ An address cannot enable the Individual Freeze setting if it has enabled the [No The **Global Freeze** feature is a setting on an account. An account can enable a global freeze only on itself. When an issuer enables the Global Freeze feature, the following rules apply to all tokens they issue: -* All counterparties of the frozen issuer can no longer decrease the balances in their trust lines to the frozen account, except in direct payments to the issuer. (This also affects the issuer's own [operational addresses](account-types.html).) +* All counterparties of the frozen issuer can no longer decrease the balances in their trust lines to the frozen account, except in direct payments to the issuer. (This also affects the issuer's own [operational addresses](../../accounts/account-types.md).) * Counterparties of the frozen issuer can still send and receive payments directly to and from the issuing address. -* All offers to sell tokens issued by the frozen address are [considered unfunded](offers.html#lifecycle-of-an-offer). +* All offers to sell tokens issued by the frozen address are [considered unfunded](../decentralized-exchange/offers.md#lifecycle-of-an-offer). Reminder: addresses cannot issue XRP. Global freezes do not apply to XRP. -It can be useful to enable Global Freeze on a financial institution's [issuing account](account-types.html) if the issuer's [secret key](cryptographic-keys.html) is compromised, even after regaining control of a such an address. This stops the flow of funds, preventing attackers from getting away with any more money or at least making it easier to track what happened. Besides enacting a Global Freeze in the XRP Ledger, the issuer should also suspend activities in its outside systems. +It can be useful to enable Global Freeze on a financial institution's [issuing account](../../accounts/account-types.md) if the issuer's [secret key](../../accounts/cryptographic-keys.md) is compromised, even after regaining control of a such an address. This stops the flow of funds, preventing attackers from getting away with any more money or at least making it easier to track what happened. Besides enacting a Global Freeze in the XRP Ledger, the issuer should also suspend activities in its outside systems. -It can also be useful to enable Global Freeze if a financial institution intends to migrate to a new [issuing address](account-types.html), or if the financial institution intends to cease doing business. This locks the funds at a specific point in time, so users cannot trade them away for other currencies. +It can also be useful to enable Global Freeze if a financial institution intends to migrate to a new [issuing address](../../accounts/account-types.md), or if the financial institution intends to cease doing business. This locks the funds at a specific point in time, so users cannot trade them away for other currencies. Global Freeze applies to _all_ tokens issued and held by the address. You cannot enable Global Freeze for only one currency code. If you want to have the ability to freeze some tokens and not others, you should use different addresses for each token. @@ -76,7 +76,7 @@ The XRP Ledger cannot force an issuer to honor the obligations that its issued f The No Freeze setting applies to all tokens issued to and from an address. If you want to be able to freeze some tokens but not others, you should use different addresses for each. -You can only enable the No Freeze setting with a transaction signed by your address's master key secret. You cannot use a [Regular Key](setregularkey.html) or a [multi-signed transaction](multi-signing.html) to enable No Freeze. +You can only enable the No Freeze setting with a transaction signed by your address's master key secret. You cannot use a [Regular Key](../../../references/protocol/transactions/types/setregularkey.md) or a [multi-signed transaction](../../accounts/multi-signing.md) to enable No Freeze. @@ -84,20 +84,17 @@ You can only enable the No Freeze setting with a transaction signed by your addr - [Freeze Code Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/freeze) - **Concepts:** - - [Trust Lines and Issuing](trust-lines-and-issuing.html) + - [Trust Lines and Issuing](index.md) - **Tutorials:** - - [Enable No Freeze](enable-no-freeze.html) - - [Enact Global Freeze](enact-global-freeze.html) - - [Freeze a Trust Line](freeze-a-trust-line.html) + - [Enable No Freeze](../../../tutorials/use-tokens/enable-no-freeze.md) + - [Enact Global Freeze](../../../tutorials/use-tokens/enact-global-freeze.md) + - [Freeze a Trust Line](../../../tutorials/use-tokens/freeze-a-trust-line.md) - **References:** - [account_lines method][] - [account_info method][] - [AccountSet transaction][] - [TrustSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) - - [RippleState (trust line) Flags](ripplestate.html#ripplestate-flags) + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/fungible-tokens/index.md b/content/concepts/tokens/fungible-tokens/index.md index d828151ad4..8aa9c85cf9 100644 --- a/content/concepts/tokens/fungible-tokens/index.md +++ b/content/concepts/tokens/fungible-tokens/index.md @@ -13,57 +13,57 @@ Fungible tokens are interchangeable and indistinguishable from one another. They ## Trust Lines -Trust lines are structures in the XRP Ledger for holding fungible [tokens](tokens.html). Trust lines enforce the XRP Ledger's rule that you cannot cause someone else to hold a token they don't want. This precaution is necessary to enable the XRP Ledger's use case for [community credit](tokens.html#community-credit) among other benefits. +Trust lines are structures in the XRP Ledger for holding fungible [tokens](../index.md). Trust lines enforce the XRP Ledger's rule that you cannot cause someone else to hold a token they don't want. This precaution is necessary to enable the XRP Ledger's use case for [community credit](../index.md#community-credit) among other benefits. Each "trust line" is a _bidirectional_ relationship consisting of: -- The identifiers for the two [accounts](accounts.html) that the trust line connects. +- The identifiers for the two [accounts](../../accounts/accounts.md) that the trust line connects. - A single, shared balance, which is positive from the perspective of one account and negative from the other perspective. - - The account with a negative balance is generally considered the "issuer" of the tokens. However, in the [APIs](http-websocket-apis.html), the name `issuer` can refer to either side. + - The account with a negative balance is generally considered the "issuer" of the tokens. However, in the [APIs](../../../references/http-websocket-apis/index.md), the name `issuer` can refer to either side. - Various settings and metadata. _Each_ of the two accounts can control its own settings on the trust line. - Most importantly, each side sets a limit on the trust line, which is 0 by default. Each account's balance (from its perspective on the trust line) can't go above that account's limit, except [through that account's own actions](#going-above-the-limit). Each trust line is specific to a given [currency code][]. Two accounts can have any number of trust lines between them for different currency codes, but only one shared trust line for any particular currency code. -The balance on a trust line is negative or positive depending on which side you view it from. The side with the negative balance is called the "issuer" and can control some properties of how those tokens behave. When you send tokens to another account that isn't the issuer, those tokens "ripple" through the issuer and possibly other accounts using the same currency code. This is useful in some cases, but can cause unexpected and undesirable behavior in others. You can use the [No Ripple flag](rippling.html) on trust lines to prevent those trust lines from rippling. +The balance on a trust line is negative or positive depending on which side you view it from. The side with the negative balance is called the "issuer" and can control some properties of how those tokens behave. When you send tokens to another account that isn't the issuer, those tokens "ripple" through the issuer and possibly other accounts using the same currency code. This is useful in some cases, but can cause unexpected and undesirable behavior in others. You can use the [No Ripple flag](rippling.md) on trust lines to prevent those trust lines from rippling. ## Creation Any account can unilaterally "trust" another account to issue a token by sending a [TrustSet transaction][] with a nonzero limit and their own settings. This creates a line with a zero balance, and sets the other side's settings to the default. -Trust lines can be implicitly created by some transactions, such as when you buy a token in the [decentralized exchange](decentralized-exchange.html). In this case, the trust line uses entirely default settings. +Trust lines can be implicitly created by some transactions, such as when you buy a token in the [decentralized exchange](../decentralized-exchange/index.md). In this case, the trust line uses entirely default settings. ## Going Above the Limit There are three cases where you can hold a balance that is _greater_ than your limit on that trust line: -1. When you acquire more of that token through [trading](decentralized-exchange.html). +1. When you acquire more of that token through [trading](../decentralized-exchange/index.md). 2. When you decrease the limit on a trust line that has a positive balance. -3. When you acquire more of that token by [cashing a Check](checks.html). (_Requires the [CheckCashMakesTrustLine amendment][]_) +3. When you acquire more of that token by [cashing a Check](../../payment-types/checks.md). (_Requires the [CheckCashMakesTrustLine amendment][]_) ## Trust Line Settings In addition to the shared balance, each account has its own settings on the trust line, which consist of the following: -- The **Limit**, a number from 0 to the [maximum token amount](currency-formats.html). Payments and other accounts' actions cannot cause the trust line's balance (from this account's perspective) to go over the limit. The default is `0`. -- **Authorized**: A true/false value used with [Authorized Trust Lines](authorized-trust-lines.html) to allow the other side to hold tokens this account issues. The default is `false`. Once set to `true`, this cannot be changed back. -- **No Ripple**: A true/false value to control whether tokens can [ripple](rippling.html) through this trust line. The default depends on the account's "Default Ripple" setting; for new accounts, "Default Ripple" is off which means that `true` is the default for No Ripple. Usually, issuers should allow rippling and non-issuers should disable rippling unless they are using trust lines for community credit. -- **Freeze**: A true/false value indicating whether an [individual freeze](freezes.html#individual-freeze) is in effect on this trust line. The default is `false`. +- The **Limit**, a number from 0 to the [maximum token amount](../../../references/protocol/data-types/currency-formats.md). Payments and other accounts' actions cannot cause the trust line's balance (from this account's perspective) to go over the limit. The default is `0`. +- **Authorized**: A true/false value used with [Authorized Trust Lines](authorized-trust-lines.md) to allow the other side to hold tokens this account issues. The default is `false`. Once set to `true`, this cannot be changed back. +- **No Ripple**: A true/false value to control whether tokens can [ripple](rippling.md) through this trust line. The default depends on the account's "Default Ripple" setting; for new accounts, "Default Ripple" is off which means that `true` is the default for No Ripple. Usually, issuers should allow rippling and non-issuers should disable rippling unless they are using trust lines for community credit. +- **Freeze**: A true/false value indicating whether an [individual freeze](freezes.md#individual-freeze) is in effect on this trust line. The default is `false`. - **Quality In** and **Quality Out** settings, which allow the account to value tokens issued by the other account on this trust line at less (or more) than face value. For example, if a stablecoin issuer charges a 3% fee for withdrawing tokens for the equivalent off-ledger assets, you could use these settings to value those tokens at 97% of face value. The default, `0`, represents face value. ## Reserves and Deletion -Since a trust line occupies space in the ledger, [a trust line increases the XRP your account must hold in reserve](reserves.html). Either or both accounts in the trust line may be charged the reserve for the trust line, depending on the status of the trust line: if any of your settings are not the default, or if you hold a positive balance, it counts as one item toward your owner reserve. +Since a trust line occupies space in the ledger, [a trust line increases the XRP your account must hold in reserve](../../accounts/reserves.md). Either or both accounts in the trust line may be charged the reserve for the trust line, depending on the status of the trust line: if any of your settings are not the default, or if you hold a positive balance, it counts as one item toward your owner reserve. Generally, this means that the account that created the trust line is responsible for the reserve and the issuer is not. Trust lines are automatically deleted if both sides' settings are in the default state and the balance is 0. This means that, to delete a trust line, you need to: 1. Send a [TrustSet transaction][] to set your settings to the defaults. -2. Offload any positive balance you have on the trust line. You could do this by sending a [payment](cross-currency-payments.html), or by selling the currency in the [decentralized exchange](decentralized-exchange.html). +2. Offload any positive balance you have on the trust line. You could do this by sending a [payment](../../payment-types/cross-currency-payments.md), or by selling the currency in the [decentralized exchange](../decentralized-exchange/index.md). If your balance is negative (you are the issuer) or the other side's settings are not in the default state, you cannot cause the trust line to be totally deleted, but you can make it so that it does not count towards your owner reserve by following the same steps. @@ -82,15 +82,12 @@ When an account owns 3 or more objects in the ledger, the full owner reserve app ## See Also - **Concepts:** - - [Decentralized Exchange](decentralized-exchange.html) - - [Rippling](rippling.html) + - [Decentralized Exchange](../decentralized-exchange/index.md) + - [Rippling](rippling.md) - **References:** - [account_lines method][] - Look up trust lines attached to a given account - [gateway_balances method][] - Look up an issuer's total balance issued - - [RippleState object](ripplestate.html) - The data format for trust lines in the ledger's state data. + - [RippleState object](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) - The data format for trust lines in the ledger's state data. - [TrustSet transaction][] - The transaction to create or modify trust lines. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/fungible-tokens/paths.md b/content/concepts/tokens/fungible-tokens/paths.md index 3e5591d025..5970de9a34 100644 --- a/content/concepts/tokens/fungible-tokens/paths.md +++ b/content/concepts/tokens/fungible-tokens/paths.md @@ -8,11 +8,11 @@ labels: --- # Paths -In the XRP Ledger, paths define a way for [tokens](tokens.html) to flow through intermediary steps as part of a payment. Paths enable [cross-currency payments](cross-currency-payments.html) by connecting sender and receiver through orders in the XRP Ledger's [decentralized exchange](decentralized-exchange.html). Paths also enable complex settlement of offsetting debts. +In the XRP Ledger, paths define a way for [tokens](../index.md) to flow through intermediary steps as part of a payment. Paths enable [cross-currency payments](../../payment-types/cross-currency-payments.md) by connecting sender and receiver through orders in the XRP Ledger's [decentralized exchange](../decentralized-exchange/index.md). Paths also enable complex settlement of offsetting debts. A single Payment transaction in the XRP Ledger can use multiple paths, combining liquidity from different sources to deliver the desired amount. Thus, a transaction includes a _path set_, which is a collection of possible paths to take. All paths in a path set must start with the same currency, and must also end with the same currency as each other. -Since XRP can be sent directly to any address, an [XRP-to-XRP transaction](direct-xrp-payments.html) does not use any paths. +Since XRP can be sent directly to any address, an [XRP-to-XRP transaction](../../payment-types/direct-xrp-payments.md) does not use any paths. ## Path Steps @@ -21,13 +21,13 @@ A path is made of steps that connect the sender to the receiver of the payment. * Rippling through another address with the same currency * Trading tokens or XRP using an order book -[Rippling](rippling.html) is the process of exchanging equivalent tokens using the same currency code. In the typical case, rippling through an issuer involves reducing the tokens issued to one party and increasing the tokens issued to another party by an equal amount. The path step specifies which account to ripple through. +[Rippling](rippling.md) is the process of exchanging equivalent tokens using the same currency code. In the typical case, rippling through an issuer involves reducing the tokens issued to one party and increasing the tokens issued to another party by an equal amount. The path step specifies which account to ripple through. -[Trading tokens and possibly XRP](decentralized-exchange.html) involves going to an order book and finding the best exchange rate between the assets involved for the amount being sent. The path step specifies which currency to change to, but does not record the state of the Offers in the order book. The canonical order of transactions is not final until a ledger is validated, so you cannot know for certain which Offers a transaction will take, until after the transaction has been validated. (You can make an educated guess, since each transaction takes the best available Offers at the time it executes in the final ledger.) +[Trading tokens and possibly XRP](../decentralized-exchange/index.md) involves going to an order book and finding the best exchange rate between the assets involved for the amount being sent. The path step specifies which currency to change to, but does not record the state of the Offers in the order book. The canonical order of transactions is not final until a ledger is validated, so you cannot know for certain which Offers a transaction will take, until after the transaction has been validated. (You can make an educated guess, since each transaction takes the best available Offers at the time it executes in the final ledger.) -In both types of steps, each intermediate address gains and loses approximately equal value: either a balance ripples from a trust line to another trust line in the same currency, or they exchange currencies according to a previously-placed order. In some cases, the amounts gained and lost may not be exactly equivalent, due to [transfer fees](transfer-fees.html), trust line quality settings, or rounding. +In both types of steps, each intermediate address gains and loses approximately equal value: either a balance ripples from a trust line to another trust line in the same currency, or they exchange currencies according to a previously-placed order. In some cases, the amounts gained and lost may not be exactly equivalent, due to [transfer fees](../transfer-fees.md), trust line quality settings, or rounding. -{{ include_svg("img/paths-examples.svg", "Diagram of three example paths") }} +[{% inline-svg file="/img/paths-examples.svg" /%}](/img/paths-examples.svg "Diagram of three example paths") @@ -37,7 +37,7 @@ In both types of steps, each intermediate address gains and loses approximately The `rippled` API has two methods that can be used for pathfinding. The [ripple_path_find method][] does a one-time lookup of possible path sets. The [path_find method][] (WebSocket only) expands on the search with follow-up responses whenever a ledger closes or the server finds a better path. -You can have `rippled` automatically fill in paths when you sign it, by including the `build_path` field in a request to the [sign method][] or [`submit` command (sign-and-submit mode)](submit.html#sign-and-submit-mode). However, we recommend pathfinding separately and confirming the results before signing, to avoid surprises. +You can have `rippled` automatically fill in paths when you sign it, by including the `build_path` field in a request to the [sign method][] or [`submit` command (sign-and-submit mode)](../../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#sign-and-submit-mode). However, we recommend pathfinding separately and confirming the results before signing, to avoid surprises. **Caution:** Although `rippled` is designed to search for the cheapest paths possible, it may not always find them. Untrustworthy `rippled` instances could also be modified to change this behavior for profit. The actual cost to execute a payment along a path can change between submission and transaction execution. @@ -46,11 +46,11 @@ Finding paths is a very challenging problem that changes slightly every few seco ## Implied Steps -By convention, several steps of a path are implied by the [fields of the Payment transaction](payment.html): specifically, the `Account` (sender), `Destination` (receiver), `Amount` (currency and amount to be delivered) and `SendMax` (currency and amount to be sent, if specified). The implied steps are as follows: +By convention, several steps of a path are implied by the [fields of the Payment transaction](../../../references/protocol/transactions/types/payment.md): specifically, the `Account` (sender), `Destination` (receiver), `Amount` (currency and amount to be delivered) and `SendMax` (currency and amount to be sent, if specified). The implied steps are as follows: * The first step of a path is always implied to be the sender of the transaction, as defined by the transaction's `Account` field. * If the transaction includes a `SendMax` field with an `issuer` that is not the sender of the transaction, that issuer is implied to be the second step of the path. - * If `issuer` of the `SendMax` _is_ the sending address, then the path starts at the sending address, and may use any of that address's trust lines for the given currency code. See [special values for `SendMax` and `Amount`](payment.html#special-issuer-values-for-sendmax-and-amount) for details. + * If `issuer` of the `SendMax` _is_ the sending address, then the path starts at the sending address, and may use any of that address's trust lines for the given currency code. See [special values for `SendMax` and `Amount`](../../../references/protocol/transactions/types/payment.md#special-issuer-values-for-sendmax-and-amount) for details. * If the `Amount` field of the transaction includes an `issuer` that is not the same as the `Destination` of the transaction, that issuer is implied to be the second-to-last step of the path. * Finally, last step of a path is always implied to be the receiver of a transaction, as defined by the transaction's `Destination` field. @@ -68,9 +68,9 @@ The default path could be any of the following: The following diagram enumerates all possible default paths: -{{ include_svg("img/default-paths.svg", "Diagram of default paths") }} +[{% inline-svg file="/img/default-paths.svg" /%}](/img/default-paths.svg "Diagram of default paths") -You can use the [`tfNoDirectRipple` flag](payment.html#payment-flags) to disable the default path. In this case, the transaction can only execute using the paths explicitly included in the transaction. Traders can use this option to take arbitrage opportunities. +You can use the [`tfNoDirectRipple` flag](../../../references/protocol/transactions/types/payment.md#payment-flags) to disable the default path. In this case, the transaction can only execute using the paths explicitly included in the transaction. Traders can use this option to take arbitrage opportunities. ## Path Specifications @@ -106,16 +106,12 @@ The `type` field, used for the binary serialization of a path set, is actually c ## See Also - **Concepts:** - - [Cross-Currency Payments](cross-currency-payments.html) - - [Decentralized Exchange](decentralized-exchange.html) - - [Partial Payments](partial-payments.html) + - [Cross-Currency Payments](../../payment-types/cross-currency-payments.md) + - [Decentralized Exchange](../decentralized-exchange/index.md) + - [Partial Payments](../../payment-types/partial-payments.md) - **References:** - [Payment transaction][] - [path_find method][] (WebSocket only) - [ripple_path_find method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/fungible-tokens/rippling.md b/content/concepts/tokens/fungible-tokens/rippling.md index fc6c2f3835..018f8bbb86 100644 --- a/content/concepts/tokens/fungible-tokens/rippling.md +++ b/content/concepts/tokens/fungible-tokens/rippling.md @@ -8,9 +8,9 @@ labels: --- # Rippling -In the XRP Ledger, "rippling" describes a process of atomic net settlement between multiple connected parties who have [trust lines](trust-lines-and-issuing.html) for the same token. Rippling is essential, because it allows users who hold tokens to send those to each other with the issuer as a passive intermediary. In a sense, rippling is like a passive, two-way [exchange order](offers.html) with no limit and a 1:1 exchange rate for two tokens with the same currency code but different issuers. +In the XRP Ledger, "rippling" describes a process of atomic net settlement between multiple connected parties who have [trust lines](index.md) for the same token. Rippling is essential, because it allows users who hold tokens to send those to each other with the issuer as a passive intermediary. In a sense, rippling is like a passive, two-way [exchange order](../decentralized-exchange/offers.md) with no limit and a 1:1 exchange rate for two tokens with the same currency code but different issuers. -Rippling only occurs along the [paths](paths.html) of a payment. [Direct XRP-to-XRP payments](direct-xrp-payments.html) do not involve rippling. +Rippling only occurs along the [paths](paths.md) of a payment. [Direct XRP-to-XRP payments](../../payment-types/direct-xrp-payments.md) do not involve rippling. For non-issuing accounts, rippling can be undesirable because it lets other users shift obligations between tokens with the same currency code but different issuers. The [No Ripple Flag](#the-no-ripple-flag) disables rippling by default when others open trust lines to your account, unless you enable rippling by default using the [Default Ripple flag](#the-default-ripple-flag). @@ -20,11 +20,11 @@ For non-issuing accounts, rippling can be undesirable because it lets other user "Rippling" occurs when more than one trust line is adjusted to make a payment. For example, if Alice owes Charlie money, and Alice also owes Bob money, then you could represent that in the XRP Ledger with trust lines like so: -{{ include_svg("img/noripple-01.svg", "Charlie --($10)-- Alice -- ($20) -- Bob") }} +[{% inline-svg file="/img/noripple-01.svg" /%}](/img/noripple-01.svg "Charlie --($10)-- Alice -- ($20) -- Bob") If Bob wants to pay $3 to Charlie, then he could say, "Alice, take $3 of the money you owe me, and pay it to Charlie." Alice transfers some of the debt from Bob to Charlie. In the end, the trust lines work out like so: -{{ include_svg("img/noripple-02.svg", "Charlie --($13)-- Alice --($17)-- Bob") }} +[{% inline-svg file="/img/noripple-02.svg" /%}](/img/noripple-02.svg "Charlie --($13)-- Alice --($17)-- Bob") We call this process, where two addresses pay each other by adjusting the balances of trust lines in between them, "rippling". This is a useful and important feature of the XRP Ledger. Rippling occurs when addresses are linked by trust lines that use the same currency code. The issuer does not need to be the same: in fact, larger chains always involve changing issuers. @@ -38,17 +38,17 @@ An account can disable No Ripple on a single trust line, which can allow ripplin For example, imagine Emily has money issued by two different financial institutions, like so -{{ include_svg("img/noripple-03.svg", "Charlie --($10)-- Institution A --($1)-- Emily --($100)-- Institution B --($2)-- Daniel") }} +[{% inline-svg file="/img/noripple-03.svg" /%}](/img/noripple-03.svg "Charlie --($10)-- Institution A --($1)-- Emily --($100)-- Institution B --($2)-- Daniel") Now Charlie can pay Daniel by rippling through Emily's address. For example, if Charlie pays Daniel $10: -{{ include_svg("img/noripple-04.svg", "Charlie --($0)-- Institution A --($11)-- Emily --($90)-- Institution B --($12)-- Daniel") }} +[{% inline-svg file="/img/noripple-04.svg" /%}](/img/noripple-04.svg "Charlie --($0)-- Institution A --($11)-- Emily --($90)-- Institution B --($12)-- Daniel") This may surprise Emily, who does not know Charlie or Daniel. Even worse, if Institution A charges her higher fees to withdraw her money than Institution B, this could cost Emily money. The No Ripple flag exists to avoid this scenario. If Emily sets it on both trust lines, then payments cannot ripple through her address using those two trust lines. For example: -{{ include_svg("img/noripple-05.svg", "Charlie --($10)-- Institution A --($1, No Ripple)-- Emily --($100, No Ripple)-- Institution B --($2)-- Daniel") }} +[{% inline-svg file="/img/noripple-05.svg" /%}](/img/noripple-05.svg "Charlie --($10)-- Institution A --($1, No Ripple)-- Emily --($100, No Ripple)-- Institution B --($2)-- Daniel") Now the above scenario, where Charlie pays Daniel while rippling through Emily's address, is no longer possible. @@ -56,7 +56,7 @@ Now the above scenario, where Charlie pays Daniel while rippling through Emily's The No Ripple flag makes certain paths invalid, so that they cannot be used to make payments. A path is considered invalid if and only if it enters **and** exits an address node through trust lines where No Ripple has been enabled for that address. -{{ include_svg("img/noripple-06.svg", "Diagram demonstrating that No Ripple has to be set on both trust lines by the same address to do anything") }} +[{% inline-svg file="/img/noripple-06.svg" /%}](/img/noripple-06.svg "Diagram demonstrating that No Ripple has to be set on both trust lines by the same address to do anything") ## The Default Ripple Flag @@ -80,23 +80,20 @@ To enable the No Ripple flag, send a [TrustSet transaction][] with the `tfSetNoR In the case of two accounts that mutually trust each other, the No Ripple flag is tracked separately for each account. -Using the [HTTP / WebSocket APIs](http-websocket-apis.html) or your preferred [client library](client-libraries.html), look up trust lines with the [account_lines method][]. For each trust line, the `no_ripple` field shows whether the current address has enabled the No Ripple flag on that trust line, and the `no_ripple_peer` field shows whether the counterparty has enabled the No Ripple flag. +Using the [HTTP / WebSocket APIs](../../../references/http-websocket-apis/index.md) or your preferred [client library](../../../references/client-libraries.md), look up trust lines with the [account_lines method][]. For each trust line, the `no_ripple` field shows whether the current address has enabled the No Ripple flag on that trust line, and the `no_ripple_peer` field shows whether the counterparty has enabled the No Ripple flag. ## See Also - **Concepts:** - - [Paths](paths.html) + - [Paths](paths.md) - **Tutorials:** - - [Stablecoin Issuer](stablecoin-issuer.html) + - [Stablecoin Issuer](../../../use-cases/tokenization/stablecoin-issuer.md) - **References:** - [account_lines method][] - [account_info method][] - [AccountSet transaction][] - [TrustSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) - - [RippleState (trust line) Flags](ripplestate.html#ripplestate-flags) + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/fungible-tokens/stablecoins/configuration.md b/content/concepts/tokens/fungible-tokens/stablecoins/configuration.md index e6c2d5c2d2..fdf6cef3df 100644 --- a/content/concepts/tokens/fungible-tokens/stablecoins/configuration.md +++ b/content/concepts/tokens/fungible-tokens/stablecoins/configuration.md @@ -7,7 +7,7 @@ labels: --- # Stablecoin Configuration -There are some settings you must configure on your XRP Ledger account before you start issuing tokens. For examples of how to configure these settings, see [Issue a Fungible Token](issue-a-fungible-token.html). +There are some settings you must configure on your XRP Ledger account before you start issuing tokens. For examples of how to configure these settings, see [Issue a Fungible Token](../../../../tutorials/use-tokens/issue-a-fungible-token.md). Settings you might want to configure include: @@ -22,7 +22,7 @@ Settings you might want to configure include: ## Default Ripple -The Default Ripple flag controls whether the balances on a trust line are allowed to _ripple_ by default. Rippling is what allows customers to send and trade tokens among themselves, so an issuer MUST allow rippling on all the trust lines to its issuing address. See [Rippling](rippling.html). +The Default Ripple flag controls whether the balances on a trust line are allowed to _ripple_ by default. Rippling is what allows customers to send and trade tokens among themselves, so an issuer MUST allow rippling on all the trust lines to its issuing address. See [Rippling](../rippling.md). Before asking customers to create trust lines to its issuing address, an issuer should enable the Default Ripple flag on that address. Otherwise, the issuer must individually disable the No Ripple flag for each trust line that other addresses have created. @@ -40,14 +40,14 @@ Deposit Authorization is most useful for blocking unwanted XRP payments, because Therefore, Deposit Authorization is not recommended for stablecoin issuers unless you need it to meet regulatory requirements about receiving money from unknown or sanctioned entities. -For more information, see [Deposit Authorization](depositauth.html). +For more information, see [Deposit Authorization](../../../accounts/depositauth.md). ## Disallow Incoming Trust Line The Disallow Incoming Trust Line setting prevents other users from opening trust lines to an address. As a precaution, you should enable this setting on your operational and standby addresses so that those addresses cannot issue tokens even inadvertently. Do not enable this setting on your issuing address. -To enable this setting, send an [AccountSet transaction](accountset.html) with `"SetFlag": 15` (`asfDisallowIncomingTrustline`). +To enable this setting, send an [AccountSet transaction](../../../../references/protocol/transactions/types/accountset.md) with `"SetFlag": 15` (`asfDisallowIncomingTrustline`). ## Disallow XRP @@ -63,18 +63,18 @@ The Require Auth setting blocks users from holding the tokens you issue unless y Also, you must use your issuing address each time you authorize a trust line; if you must authorize a lot of trust lines, this can undermine the security of your issuing address because you have to use it so often. (If you only need to use the issuing address sparingly, you can put greater protections on its secret keys. The more often you use it, the more of a burden those protections become.) -For more information, see [Authorized Trust Lines](authorized-trust-lines.html). +For more information, see [Authorized Trust Lines](../authorized-trust-lines.md). ## Tick Size -The Tick Size setting controls how many decimal places are used when calculating exchange rates in the [Decentralized Exchange](decentralized-exchange.html). A higher Tick Size means more precision and less rounding in the amounts of various trades. Too much precision can be inconvenient because trades are ranked primarily based on exchange rate, so a trader can offer a minuscule amount more to the top of the list. A smaller Tick Size works similar to the minimum bid increment at an auction, saving everyone the time and effort of gradually bidding up a price by irrelevantly small amounts. However, a smaller Tick Size results in more rounding, which can increase the costs of trading, and sometimes has surprising results because two Offers that seemed like an exact match before rounding no longer match after rounding. +The Tick Size setting controls how many decimal places are used when calculating exchange rates in the [Decentralized Exchange](../../decentralized-exchange/index.md). A higher Tick Size means more precision and less rounding in the amounts of various trades. Too much precision can be inconvenient because trades are ranked primarily based on exchange rate, so a trader can offer a minuscule amount more to the top of the list. A smaller Tick Size works similar to the minimum bid increment at an auction, saving everyone the time and effort of gradually bidding up a price by irrelevantly small amounts. However, a smaller Tick Size results in more rounding, which can increase the costs of trading, and sometimes has surprising results because two Offers that seemed like an exact match before rounding no longer match after rounding. The Tick Size is an account-level setting and applies to all tokens issued by the same address. Tick Size only controls the precision of _exchange rates_, not the precision of the token itself. Users can send and hold very large or very small amounts regardless of the Tick Size set by the token's issuer. -For more information, see [Tick Size](ticksize.html). +For more information, see [Tick Size](../../decentralized-exchange/ticksize.md). ## Transfer Fees @@ -85,7 +85,7 @@ When users send a token with a transfer fee, the amount of the transfer fee is d At a protocol level, the transfer fee is defined by the `TransferRate` account setting, which is an integer from 1 billion to 2 billion. -For more information, see [Transfer Fees](transfer-fees.html). +For more information, see [Transfer Fees](../../transfer-fees.md). ### Transfer Fees with Operational and Standby Addresses @@ -97,4 +97,3 @@ Set the `SendMax` transaction parameter higher than the destination `Amount` par **Note:** Transfer fees do not apply when sending tokens directly from or to the issuing address. The issuing address must always accept its tokens at face value in the XRP Ledger. This means that customers don't have to pay the transfer fee if they send payments to the issuing address directly, but they do when sending to an operational address. If you accept payments at both addresses, you may want to adjust the amount you credit customers in your system of record when customers send payments to the operational address, to compensate for the transfer fee the customer pays. For example: If ACME sets a transfer fee of 1%, an XRP Ledger payment to deliver 5 EUR.ACME from a customer address to ACME's issuing address would cost exactly 5 EUR.ACME. However, the customer would need to send 5.05 EUR.ACME to deliver 5 EUR.ACME to ACME's operational address. When ACME credits customers for payments to ACME's operational address, ACME credits the customer for the amount delivered to the operational address _and_ the transfer fee, giving the customer €5,05 in ACME's systems. - diff --git a/content/concepts/tokens/fungible-tokens/stablecoins/precautions.md b/content/concepts/tokens/fungible-tokens/stablecoins/precautions.md index 9ec957ad88..00094d313f 100644 --- a/content/concepts/tokens/fungible-tokens/stablecoins/precautions.md +++ b/content/concepts/tokens/fungible-tokens/stablecoins/precautions.md @@ -12,17 +12,17 @@ Processing payments to and from the XRP Ledger naturally comes with some risks, ## Infrastructure -For your own security as well as the stability of the network, each XRP Ledger business should [run its own XRP Ledger servers](install-rippled.html), including one [validator](rippled-server-modes.html#validators). +For your own security as well as the stability of the network, each XRP Ledger business should [run its own XRP Ledger servers](../../../../infrastructure/installation/index.md), including one [validator](../../../networks-and-servers/rippled-server-modes.md#validators). ## Tool Security -Any time you submit an XRP Ledger transaction, it must be signed using your secret key. The secret key gives full control over your XRP Ledger address. Never send your secret key to a server run by someone else. Either use your own server, or sign the transactions locally using a client library. For instructions and examples of secure configurations, see [Set Up Secure Signing](secure-signing.html). +Any time you submit an XRP Ledger transaction, it must be signed using your secret key. The secret key gives full control over your XRP Ledger address. Never send your secret key to a server run by someone else. Either use your own server, or sign the transactions locally using a client library. For instructions and examples of secure configurations, see [Set Up Secure Signing](../../../transactions/secure-signing.md). There are several interfaces you can use to connect to the XRP Ledger, depending on your needs and your existing software: -- [HTTP / WebSocket APIs](http-websocket-apis.html) can be used as a low-level interface to all core XRP Ledger functionality. -- [Client Libraries](client-libraries.html) are available in several programming languages to provide convenient utilities for accessing the XRP Ledger. +- [HTTP / WebSocket APIs](../../../../references/http-websocket-apis/index.md) can be used as a low-level interface to all core XRP Ledger functionality. +- [Client Libraries](../../../../references/client-libraries.md) are available in several programming languages to provide convenient utilities for accessing the XRP Ledger. - Other tools such as [xApps](https://xumm.readme.io/docs/xapps) are also available. - Third party wallet applications might also be useful, especially for humans in charge of standby addresses. @@ -31,24 +31,24 @@ However, take care to only use reputable tools from their official distribution ## Payments from the XRP Ledger -When receiving payments from the XRP Ledger, it's important to recognize when a payment is final or not, and to credit the customer for the correct amount, so that your processes and integration software can't be exploited. For details and common pitfalls, see [Robustly Monitoring for Payments](robustly-monitoring-for-payments.html). +When receiving payments from the XRP Ledger, it's important to recognize when a payment is final or not, and to credit the customer for the correct amount, so that your processes and integration software can't be exploited. For details and common pitfalls, see [Robustly Monitoring for Payments](../../../payment-types/robustly-monitoring-for-payments.md). -If you receive an unexpected or unwanted payment, the standard practice is to return it to the sender. For details of how to do this without incurring additional costs, see [Bouncing Payments](bouncing-payments.html). +If you receive an unexpected or unwanted payment, the standard practice is to return it to the sender. For details of how to do this without incurring additional costs, see [Bouncing Payments](../../../payment-types/bouncing-payments.md). -Before processing a payment out of the XRP Ledger, make sure you know the customer's identity. This makes it harder for anonymous attackers to scam you. Most anti-money-laundering regulations require this anyway. This is especially important because the users sending money from the XRP Ledger could be different than the ones that initially received the money in the XRP Ledger. For more context, see [Stablecoin Compliance Guidelines](stablecoin-compliance-guidelines.html). +Before processing a payment out of the XRP Ledger, make sure you know the customer's identity. This makes it harder for anonymous attackers to scam you. Most anti-money-laundering regulations require this anyway. This is especially important because the users sending money from the XRP Ledger could be different than the ones that initially received the money in the XRP Ledger. For more context, see [Stablecoin Compliance Guidelines](compliance-guidelines.md). ## Payments into the XRP Ledger -When sending payments into the XRP Ledger, follow best practices to avoid overpaying on fees and roundabout paths. For details, see [Sending Payments to Customers](sending-payments-to-customers.html). +When sending payments into the XRP Ledger, follow best practices to avoid overpaying on fees and roundabout paths. For details, see [Sending Payments to Customers](../../../payment-types/sending-payments-to-customers.md). If you accept payments from in external systems, such as bank deposits or credit/debit payments, be sure to protect yourself against reversible deposits. XRP Ledger payments are irreversible, but many other digital payments are not. Scammers can abuse this to take their fiat money back by canceling a non-XRPL transaction after you've already sent an XRP Ledger payment. -Additionally, follow the [Reliable Transaction Submission guidelines](reliable-transaction-submission.html) to ensure that you know the final outcome of your XRP Ledger transactions even in rare circumstances like power failures or network outages. +Additionally, follow the [Reliable Transaction Submission guidelines](../../../transactions/reliable-transaction-submission.md) to ensure that you know the final outcome of your XRP Ledger transactions even in rare circumstances like power failures or network outages. ## Other Precautions - Track your obligations and balances within the XRP Ledger, and compare with the assets in your collateral account. If they do not match up, stop processing withdrawals and deposits until you resolve the discrepancy. -- Avoid ambiguous situations. Setting up the appropriate settings on all your addresses helps to avoid cases like accidentally issuing tokens from the wrong address or users sending money to the wrong place. For recommendations, see [Stablecoin Configuration](stablecoin-configuration.html). +- Avoid ambiguous situations. Setting up the appropriate settings on all your addresses helps to avoid cases like accidentally issuing tokens from the wrong address or users sending money to the wrong place. For recommendations, see [Stablecoin Configuration](configuration.md). - Monitor for suspicious or abusive behavior. For example, a user could repeatedly send funds into and out of the XRP Ledger, as a denial of service attack that effectively empties an operational address's balance. Suspend customers whose addresses are involved in suspicious behavior by not processing their XRP Ledger payments. diff --git a/content/concepts/tokens/fungible-tokens/stablecoins/settings.md b/content/concepts/tokens/fungible-tokens/stablecoins/settings.md index 4af5606d04..b7a7c0e43e 100644 --- a/content/concepts/tokens/fungible-tokens/stablecoins/settings.md +++ b/content/concepts/tokens/fungible-tokens/stablecoins/settings.md @@ -31,16 +31,16 @@ A transfer fee setting charges users a percentage fee when transferring tokens b When users send a token with a transfer fee, the amount of the transfer fee is debited from the sending side in addition to the destination amount, but only the destination amount is credited to the recipient. The amount of the fee "vanishes" from the XRP Ledger. As a stablecoin issuer, this means that you gain that much equity in your reserves outside of the XRP Ledger—or, in other words, the amount you need to keep as collateral decreases each time users pay a transfer fee. -For more information, see [Transfer Fees](transfer-fees.html). +For more information, see [Transfer Fees](../../transfer-fees.md). ## Set Your Tick Size -The Tick Size setting controls how many decimal places are used when calculating exchange rates in the [Decentralized Exchange](decentralized-exchange.html). A higher Tick Size (more decimal places) means more precision and less rounding in the amounts of various trades. A smaller Tick Size works similar to the minimum bid increment at an auction, saving everyone the time and effort of gradually bidding up a price by unreasonably small amounts. +The Tick Size setting controls how many decimal places are used when calculating exchange rates in the [Decentralized Exchange](../../decentralized-exchange/index.md). A higher Tick Size (more decimal places) means more precision and less rounding in the amounts of various trades. A smaller Tick Size works similar to the minimum bid increment at an auction, saving everyone the time and effort of gradually bidding up a price by unreasonably small amounts. The Tick Size is an account-level setting and applies to all tokens issued by the same address. -See [Tick Size](ticksize.html). +See [Tick Size](../../decentralized-exchange/ticksize.md). ## Set the Default Ripple Flag @@ -49,14 +49,14 @@ The Default Ripple flag controls whether the balances on a trust line are allowe Before asking customers to create trust lines to your issuing address, enable the Default Ripple flag on that address. Otherwise, you must individually disable the No Ripple flag for each trust line that other addresses have created. -See [Rippling](rippling.html). +See [Rippling](../rippling.md). ## Enable Destination Tags If your stablecoin application handles transactions on behalf of several customers, it might not be immediately obvious to which account you should credit. Destination tags help to avoid this situation by requiring the sender to specify the beneficiary or destination for a payment. To enable the `RequireDest` flag, set the `asfRequireDest` value (1) in the `SetFlag` field of an `AccountSet` transaction. -See [Source and Destination Tags](source-and-destination-tags.html). +See [Source and Destination Tags](../../../transactions/source-and-destination-tags.md). ## Asset Control Features @@ -67,7 +67,7 @@ You have several options for controlling the creation and distribution of your s When you need to follow compliance rules such as Know Your Customer (KYC) and Anti-Money Laundering (AML), you can use trust lines to create permissioned pools for the distribution of your stablecoin. This allows you to be certain to whom the funds are transferred. -See [Authorized Trust Lines](authorized-trust-lines.html). +See [Authorized Trust Lines](../authorized-trust-lines.md). ### Freeze Flags @@ -76,16 +76,16 @@ You have the ability to freeze your stablecoins in your holder accounts. You mig Conversely, you can set the No Freeze feature, which permanently gives up the ability to freeze tokens. This makes your stablecoin more like fiat currency, in the sense that you cannot interfere with counterparties trading the tokens among themselves. -See [Freezing Tokens](freezes.html). +See [Freezing Tokens](../freezes.md). ### Clawback Flags -_(Requires the [Clawback amendment](known-amendments.html#clawback) :not_enabled:)_ +_(Requires the [Clawback amendment](../../../../resources/known-amendments.md#clawback) {% not-enabled /%})_ Clawback allows you to retrieve, or _clawback_, stablecoins from a trust line under specific circumstances. This gives you added ability to respond to challenges such as lost account access or malicious activity. -See [Clawback](clawback.html). +See [Clawback](../../../../references/protocol/transactions/types/clawback.md). ### Fixed Supply diff --git a/content/concepts/tokens/index.md b/content/concepts/tokens/index.md index de8d798042..45ade99a76 100644 --- a/content/concepts/tokens/index.md +++ b/content/concepts/tokens/index.md @@ -9,25 +9,25 @@ labels: All assets other than XRP can be represented in the XRP Ledger as _tokens_. -Standard tokens are fungible: meaning, all units of that token are interchangeable and indistinguishable. Tokens can be used for [cross-currency payments](cross-currency-payments.html) and can be traded in the [decentralized exchange](decentralized-exchange.html). +Standard tokens are fungible: meaning, all units of that token are interchangeable and indistinguishable. Tokens can be used for [cross-currency payments](../payment-types/cross-currency-payments.md) and can be traded in the [decentralized exchange](decentralized-exchange/index.md). **Note:** Tokens on the XRP Ledger have also been called "IOUs" (as in [I-owe-you](https://en.wikipedia.org/wiki/IOU)) and "issued currencies" in the past. However, these terms are not preferred because they do not cover the full range of digital assets that XRP Ledger tokens can represent. Tokens can also be non-fungible. Non-fungible tokens (NFTs) serve to encode ownership of unique physical, non-physical, or purely digital goods, such as works of art or in-game items. -See [Fungible Tokens](trust-lines-and-issuing.html) and [Non-fungible Tokens](non-fungible-tokens.html). +See [Fungible Tokens](fungible-tokens/index.md) and [Non-fungible Tokens](nfts/index.md). ## Stablecoins Stablecoins are a common model for tokens in the XRP Ledger. The issuer holds assets of value outside of the XRP Ledger, and issues tokens representing the equivalent value on the ledger. -See [Stablecoins](stablecoins.html). +See [Stablecoins](fungible-tokens/stablecoins/index.md). ## Community Credit -Another way you can use the XRP Ledger is for "community credit", a system where individuals who know each other can use the XRP Ledger to track who owes whom how much money. One feature of the XRP Ledger is that it can automatically and atomically use these debts to settle payments through [rippling](rippling.html). +Another way you can use the XRP Ledger is for "community credit", a system where individuals who know each other can use the XRP Ledger to track who owes whom how much money. One feature of the XRP Ledger is that it can automatically and atomically use these debts to settle payments through [rippling](fungible-tokens/rippling.md). -For more on this type of usage, see [paths](paths.html). +For more on this type of usage, see [paths](fungible-tokens/paths.md). ## Other Tokens @@ -43,11 +43,8 @@ Tokens in the XRP Ledger are fundamentally different than XRP. Tokens always exi Anyone can issue tokens by sending a [Payment transaction][] if the necessary trust lines are in place. You can "burn" tokens by sending them back to the issuer. In some cases, cross-currency payments or trades can also create more tokens according to an issuer's settings. -Issuers have options with tokens that are not available with XRP. Issuers can charge a [transfer fee](transfer-fees.html) that is automatically deducted when users transfer their tokens. Issuers can also define a [tick size](ticksize.html) for exchanges rates involving their tokens. Both issuers and regular accounts can [freeze](freezes.html) trust lines, which limits how the tokens in those trust lines can be used. +Issuers have options with tokens that are not available with XRP. Issuers can charge a [transfer fee](transfer-fees.md) that is automatically deducted when users transfer their tokens. Issuers can also define a [tick size](decentralized-exchange/ticksize.md) for exchanges rates involving their tokens. Both issuers and regular accounts can [freeze](fungible-tokens/freezes.md) trust lines, which limits how the tokens in those trust lines can be used. Tokens use decimal (base-10) math with 15 digits of precision and an exponent that allows them to express very large values (up to 9999999999999999 × 1080) and very small values (down to 1.0 × 10-81). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/nfts/authorizing-another-minter.md b/content/concepts/tokens/nfts/authorizing-another-minter.md index 4a52d66ae9..5be6393fed 100644 --- a/content/concepts/tokens/nfts/authorizing-another-minter.md +++ b/content/concepts/tokens/nfts/authorizing-another-minter.md @@ -56,4 +56,3 @@ const transactionBlob = { ``` When you or a broker sells the NFT, the TransferFee (percentage of sale) is credited to your issuing account. - diff --git a/content/concepts/tokens/nfts/batch-minting.md b/content/concepts/tokens/nfts/batch-minting.md index 299ea0dfb5..ac4b1c44f0 100644 --- a/content/concepts/tokens/nfts/batch-minting.md +++ b/content/concepts/tokens/nfts/batch-minting.md @@ -25,9 +25,9 @@ Any market activity before the initial sale of the NFT is not recorded on the XR ## Scripted Minting -Use a program or script to mint many tokens at once. You might find that [Tickets](tickets.html) help you submit transactions in parallel, up to a current limit of 200 transactions in one group. +Use a program or script to mint many tokens at once. You might find that [Tickets](../../accounts/tickets.md) help you submit transactions in parallel, up to a current limit of 200 transactions in one group. -For a practical example, see the [Batch Mint NFTs Using JavaScript](batch-mint-nfts-using-javascript.html) tutorial. +For a practical example, see the [Batch Mint NFTs Using JavaScript](../../../tutorials/quickstart/batch-mint-nfts-using-javascript.md) tutorial. ### Benefits @@ -36,4 +36,4 @@ For a practical example, see the [Batch Mint NFTs Using JavaScript](batch-mint-n ### Downside -You need to meet the [reserve requirement](reserves.html) for all of the NFTs you mint. As a rule of thumb, this is roughly 1/12th XRP per NFT at the current reserve rate. In the event that you do not have enough XRP in reserve, your mint transactions fail until you get more XRP. +You need to meet the [reserve requirement](../../accounts/reserves.md) for all of the NFTs you mint. As a rule of thumb, this is roughly 1/12th XRP per NFT at the current reserve rate. In the event that you do not have enough XRP in reserve, your mint transactions fail until you get more XRP. diff --git a/content/concepts/tokens/nfts/collections.md b/content/concepts/tokens/nfts/collections.md index aeed2d9e55..8d08de3fc6 100644 --- a/content/concepts/tokens/nfts/collections.md +++ b/content/concepts/tokens/nfts/collections.md @@ -13,5 +13,4 @@ For example, for your first collection, you might set the `NFTokenTaxon` to `1`. While the `NFTokenTaxon` field is required, you can set the value to `0` if you don't intend to create a collection. -See [NFTokenTaxon](nftoken.html#nftokentaxon). - +See [NFTokenTaxon](../../../references/protocol/data-types/nftoken.md#nftokentaxon). diff --git a/content/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md b/content/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md index 3e9a6614bd..f6606a06b2 100644 --- a/content/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md +++ b/content/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md @@ -11,11 +11,11 @@ For some projects, you might want to guarantee that no more than a fixed number To guarantee a fixed number of NFTs: -1. Create and fund a new account, the _Issuer_. This account is the issuer of the tokens within the collection. See [Creating Accounts](accounts.html#creating-accounts). -1. Use `AccountSet` to assign your operational wallet as an authorized minter for the issuer. See [Authorizing Another Account to Mint Your NFTs](nftoken-authorized-minting.html). -1. Use your operational account to mint the tokens using `NFTokenMint`. The operational wallet holds all of the tokens minted for the Issuer. See [Batch Minting](nftoken-batch-minting.html). +1. Create and fund a new account, the _Issuer_. This account is the issuer of the tokens within the collection. See [Creating Accounts](../../accounts/accounts.md#creating-accounts). +1. Use `AccountSet` to assign your operational wallet as an authorized minter for the issuer. See [Authorizing Another Account to Mint Your NFTs](authorizing-another-minter.md). +1. Use your operational account to mint the tokens using `NFTokenMint`. The operational wallet holds all of the tokens minted for the Issuer. See [Batch Minting](batch-minting.md). 1. Use `AccountSet` to remove your operational wallet as an authorized minter for the Issuer. -1. “Blackhole” the Issuer account. See [Disable Master Key Pair](disable-master-key-pair.html). +1. “Blackhole” the Issuer account. See [Disable Master Key Pair](../../../tutorials/manage-account-settings/disable-master-key-pair.md). At this point, it is impossible for any new tokens to be minted with the issuer’s address as the issuing account. diff --git a/content/concepts/tokens/nfts/index.md b/content/concepts/tokens/nfts/index.md index fa14603f45..c94f7cca96 100644 --- a/content/concepts/tokens/nfts/index.md +++ b/content/concepts/tokens/nfts/index.md @@ -18,7 +18,7 @@ To represent digital assets similar to these, use the XRP Ledger's Non-Fungible On the XRP Ledger, an NFT is represented as a [NFToken][] object. An NFT is a unique, indivisible unit that is not used for payments. Users can mint (create), hold, buy, sell, and burn (destroy) NFTs. -The ledger stores up to 32 NFTs owned by the same account in a single [NFTokenPage object][] to save space. As a result, the owner's [reserve requirement](reserves.html) for NFTs only increases when the ledger needs to make a new page to store additional tokens. +The ledger stores up to 32 NFTs owned by the same account in a single [NFTokenPage object][] to save space. As a result, the owner's [reserve requirement](../../accounts/reserves.md) for NFTs only increases when the ledger needs to make a new page to store additional tokens. Accounts can also name a _Broker_ or an _Authorized Minter_ who can sell or mint NFTs on their behalf. @@ -28,7 +28,7 @@ NFTs have several immutable settings that are defined when the token is minted. - Whether the issuer can burn the token, regardless of who currently holds it. - Whether the holder of the token can transfer it to others. (An NFT can always be sent to or from the issuer directly.) - If transfers are allowed, the issuer can charge a transfer fee as a percentage of the sale price. -- Whether the holder can sell the NFT for [fungible token](trust-lines-and-issuing.html) amounts, or only for XRP. +- Whether the holder can sell the NFT for [fungible token](../fungible-tokens/index.md) amounts, or only for XRP. ## NFT Lifecycle @@ -36,11 +36,8 @@ Anyone can create a new NFT using the [NFTokenMint transaction][]. The NFT lives You can destroy an NFT you own using the [NFTokenBurn transaction][]. If the issuer minted the token with the `tfBurnable` flag enabled, the issuer can also burn the token, regardless of the current owner. (This could be useful, for example, for a token that represents a ticket to an event that is used up at some point.) -![The NFT Lifecycle](img/nft-lifecycle.png "NFT Lifecycle Image") +![The NFT Lifecycle](/img/nft-lifecycle.png "NFT Lifecycle Image") -For more info about transferring NFTs, see [Trading NFTs on the XRP Ledger](non-fungible-token-transfers.html). +For more info about transferring NFTs, see [Trading NFTs on the XRP Ledger](trading.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/nfts/nft-apis.md b/content/concepts/tokens/nfts/nft-apis.md index 1efe9a1b5b..e2e690684a 100644 --- a/content/concepts/tokens/nfts/nft-apis.md +++ b/content/concepts/tokens/nfts/nft-apis.md @@ -38,14 +38,11 @@ This page lists the transactions and requests associated with NFTs as a handy re ## Clio -[Clio servers](the-clio-server.html) also provide the following APIs related to NFTs: +[Clio servers](../../networks-and-servers/the-clio-server.md) also provide the following APIs related to NFTs: -- [nft_info](nft_info.html) - Get current status information about the specified NFT. -- [nft_history](nft_history.html) - Get past transaction metadata for the specified NFT. +- [nft_info](../../../references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md) - Get current status information about the specified NFT. +- [nft_history](../../../references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md) - Get past transaction metadata for the specified NFT. -You can access a public Clio server by sending a request to its URL and Clio port (typically 51233). Public Clio API servers come with no SLAs nor any responsibility to be fixed on priority. If your business use case requires continual monitoring and information requests, consider setting up your own Clio server instance. See [install-clio-on-ubuntu](install-clio-on-ubuntu.html). +You can access a public Clio server by sending a request to its URL and Clio port (typically 51233). Public Clio API servers come with no SLAs nor any responsibility to be fixed on priority. If your business use case requires continual monitoring and information requests, consider setting up your own Clio server instance. See [install-clio-on-ubuntu](../../../infrastructure/installation/install-clio-on-ubuntu.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/nfts/reserve-requirements.md b/content/concepts/tokens/nfts/reserve-requirements.md index 3a86cc718d..36297b80d2 100644 --- a/content/concepts/tokens/nfts/reserve-requirements.md +++ b/content/concepts/tokens/nfts/reserve-requirements.md @@ -11,11 +11,11 @@ Minting, holding, and offering NFTs for sale require XRP held in reserve. The re ## Base Reserve -Your account must set aside a base reserve, currently 10 XRP. The base reserve XRP amount is subject to change. See [Base Reserve and Owner Reserve](reserves.html#base-reserve-and-owner-reserve). +Your account must set aside a base reserve, currently 10 XRP. The base reserve XRP amount is subject to change. See [Base Reserve and Owner Reserve](../../accounts/reserves.md#base-reserve-and-owner-reserve). ## Owner Reserve -For each object you own on the XRP Ledger, there is an owner reserve, currently 2 XRP. This is to discourage users from spamming the ledger with unnecessary data, and to encourage them to clean up any data that is no longer necessary. The owner reserve amount is subject to change. See [Base Reserve and Owner Reserve](reserves.html#base-reserve-and-owner-reserve). +For each object you own on the XRP Ledger, there is an owner reserve, currently 2 XRP. This is to discourage users from spamming the ledger with unnecessary data, and to encourage them to clean up any data that is no longer necessary. The owner reserve amount is subject to change. See [Base Reserve and Owner Reserve](../../accounts/reserves.md#base-reserve-and-owner-reserve). For NFTs, the _object_ does not refer to the individual NFTs, but to the `NFTokenPage` objects owned by the account. `NFTokenPage` objects can store up to 32 NFTs. @@ -26,22 +26,22 @@ Therefore, you can estimate the reserve requirements for minting or owning _N_ N The following table provides examples of how much the total owner reserve might be, depending on the number of NFTs owned and the number of pages holding them. -| NFTs Owned | Best Case | Typical Case | Worst Case | +| NFTs Owned | Best Case | Typical Case | Worst Case | |:------------|:----------|:-------------|:-----------| -| 32 or fewer | 2 XRP | 2 XRP | 2 XRP | -| 50 | 4 XRP | 6 XRP | 8 XRP | -| 200 | 14 XRP | 18 XRP | 26 XRP | -| 1000 | 64 XRP | 84 XRP | 126 XRP | +| 32 or fewer | 2 XRP | 2 XRP | 2 XRP | +| 50 | 4 XRP | 6 XRP | 8 XRP | +| 200 | 14 XRP | 18 XRP | 26 XRP | +| 1000 | 64 XRP | 84 XRP | 126 XRP | ## `NFTokenOffer` Reserve Each `NFTokenOffer` object costs the account placing the offer one incremental reserve. As of this writing, the incremental reserve is 2 XRP. The reserve can be recovered by cancelling the offer. The reserve is also recovered if the offer is accepted, which removes the offer from the XRP Ledger. -**Tip** After you sell an NFT, as a courtesy, cancel any stale `NFTokenOffer` objects on behalf of your bidders to give them back their reserve. You can do this with [NFTokenCancelOffer](nftokencanceloffer.html) transactions. +**Tip** After you sell an NFT, as a courtesy, cancel any stale `NFTokenOffer` objects on behalf of your bidders to give them back their reserve. You can do this with [NFTokenCancelOffer](../../../references/protocol/transactions/types/nftokencanceloffer.md) transactions. ## Practical Considerations -When minting, holding, and offering to buy and sell NFTs, the reserve requirements can add up quickly. This can result in your account going below the reserve requirement during a transaction. Going below the requirement can limit your ability to trade on the XRPL. See [Going Below the Reserve Requirement](reserves.html#going-below-the-reserve-requirement). +When minting, holding, and offering to buy and sell NFTs, the reserve requirements can add up quickly. This can result in your account going below the reserve requirement during a transaction. Going below the requirement can limit your ability to trade on the XRPL. See [Going Below the Reserve Requirement](../../accounts/reserves.md#going-below-the-reserve-requirement). If you create a new account, mint an NFT, and create an `NFTokenSellOffer` on the XRP Ledger, that requires a minimum reserve of 14 XRP. @@ -65,4 +65,4 @@ If you were to mint 200 NFTs and create an `NFTokenSellOffer`for each, that woul | Total | 436 XRP | | | | -If the required reserves exceed the amount you are comfortable setting aside, consider using the mint-on-demand model to reduce the number of NFTs and offers you hold at any one time. For details, see [Batch Minting](nftoken-batch-minting.html). +If the required reserves exceed the amount you are comfortable setting aside, consider using the mint-on-demand model to reduce the number of NFTs and offers you hold at any one time. For details, see [Batch Minting](batch-minting.md). diff --git a/content/concepts/tokens/nfts/running-an-nft-auction.md b/content/concepts/tokens/nfts/running-an-nft-auction.md index 94838bb406..2d76bf19a1 100644 --- a/content/concepts/tokens/nfts/running-an-nft-auction.md +++ b/content/concepts/tokens/nfts/running-an-nft-auction.md @@ -21,7 +21,7 @@ This flow is the most straightforward. Note that the `NFTokenOffer` objects can Run the auction in brokered mode, as an auction with a reserve. -![Auction in Brokered Mode with a Reserve](img/nft-auction1.png "Auction in Brokered Mode with a Reserve") +![Auction in Brokered Mode with a Reserve](/img/nft-auction1.png "Auction in Brokered Mode with a Reserve") 1. The seller creates the NFT, then sets the auction reserve price using `NFTokenCreateOffer`, specifying the broker account as the destination. 1. The bidders make offers using `NFTokenCreateOffer`, setting the broker account as the destination. @@ -43,7 +43,7 @@ A major mitigating factor of this downside is that if this behavior were to happ This is the most complex workflow of the three. -![Auction in Brokered Mode without a Reserve](img/nft-auction2.png "Auction in Brokered Mode without a Reserve") +![Auction in Brokered Mode without a Reserve](/img/nft-auction2.png "Auction in Brokered Mode without a Reserve") 1. The seller creates an NFT using `NFTokenMint`. 1. The bidders make offers using `NFTokenCreateOffer`, setting the broker as the destination. diff --git a/content/concepts/tokens/nfts/trading.md b/content/concepts/tokens/nfts/trading.md index 0b5a0525c5..085059d361 100644 --- a/content/concepts/tokens/nfts/trading.md +++ b/content/concepts/tokens/nfts/trading.md @@ -16,7 +16,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ Every `NFTokenOffer` object requires that your account increase its owner reserve, currently 2 XRP per `NFTokenSellOffer` and 2 XRP per `NFTokenBuyOffer`. This is to prevent accounts from spamming the ledger with offers they don't intend to complete. -See [NFT Reserve Requirements](nft-reserve-requirements.html). +See [NFT Reserve Requirements](reserve-requirements.md). ## Sell Offers @@ -62,15 +62,12 @@ Using a broker offers several advantages. For example: In the most straightforward workflow, a creator mints a new NFT. The creator initiates a sell offer, entering the minimum acceptable sale price and setting the broker as the destination. Potential buyers make bids for the NFT, setting the broker as the destination for the bid. The broker selects a winning bid and completes the transaction, taking a broker’s fee. As a best practice, the broker then cancels any remaining buy offers for the NFT. -![Brokered Mode with Reserve](img/nft-brokered-mode-with-reserve.png) +![Brokered Mode with Reserve](/img/nft-brokered-mode-with-reserve.png) Another potential workflow would give the creator more control over the sale. In this workflow, the creator mints a new NFT. Bidders create their offers, setting the broker as the destination. The broker selects the winning bid, subtracts their broker fee, and uses `NFTokenCreateOffer` to request that the creator sign off on the offer. The creator signs the requested offer, setting the broker as the destination. The broker completes the sale using `NFTokenAcceptOffer`, retaining the broker fee. The broker cancels any remaining bids for the NFT using `NFTokenCancelOffer`. -![Brokered Mode without Reserve](img/nft-brokered-mode-without-reserve.png) +![Brokered Mode without Reserve](/img/nft-brokered-mode-without-reserve.png) The same workflows can be used when an owner resells an NFT created by another account. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/tokens/transfer-fees.md b/content/concepts/tokens/transfer-fees.md index 6e17c84662..40d0a893c5 100644 --- a/content/concepts/tokens/transfer-fees.md +++ b/content/concepts/tokens/transfer-fees.md @@ -8,13 +8,13 @@ labels: --- # Transfer Fees -[Token](tokens.html) issuers can charge a _transfer fee_ that applies when users transfer those tokens among themselves. The sender of the transfer is debited an extra percentage based on the transfer fee, while the recipient of the transfer is credited the intended amount. The difference is the transfer fee. +[Token](index.md) issuers can charge a _transfer fee_ that applies when users transfer those tokens among themselves. The sender of the transfer is debited an extra percentage based on the transfer fee, while the recipient of the transfer is credited the intended amount. The difference is the transfer fee. For standard tokens, the tokens paid in the transfer fee are burned, and no longer tracked in the XRP Ledger. If the token is backed by off-ledger assets, this reduces the amount of those assets the issuer has to hold in reserve to meet its obligations in the XRP Ledger. Transfer fees are usually not appropriate for tokens that aren't backed with outside assets. -Non-fungible tokens can also have transfer fees, but they work differently. For details, see [Non-Fungible Tokens](non-fungible-tokens.html). +Non-fungible tokens can also have transfer fees, but they work differently. For details, see [Non-Fungible Tokens](nfts/index.md). -The transfer fee does not apply when sending or receiving _directly_ to and from the issuing account, but it does apply when transferring from an [operational address](account-types.html) to another user. +The transfer fee does not apply when sending or receiving _directly_ to and from the issuing account, but it does apply when transferring from an [operational address](../accounts/account-types.md) to another user. XRP never has a transfer fee, because it never has an issuer. @@ -24,11 +24,11 @@ In this example, ACME Bank issues a EUR stablecoin on the XRP Ledger. ACME Bank The following diagram shows an XRP Ledger payment of 2 EUR.ACME from Alice to Charlie with a transfer fee of 1%: -{{ include_svg("img/transfer-fees.svg", "Alice sends 2,02€, Charlie receives 2,00€, and ACME owes 0,02€ less in the XRP Ledger") }} +[{% inline-svg file="/img/transfer-fees.svg" /%}](/img/transfer-fees.svg "Alice sends 2,02€, Charlie receives 2,00€, and ACME owes 0,02€ less in the XRP Ledger") In accounting terms, Alice's, ACME's, and Charlie's balance sheets may have changed like this: -{{ include_svg("img/transfer-fees-balance-sheets.svg", "Alice's assets are down 2,02€, Charlie's are up 2,00€, and ACME's liabilities are down 0,02€") }} +[{% inline-svg file="/img/transfer-fees-balance-sheets.svg" /%}](/img/transfer-fees-balance-sheets.svg "Alice's assets are down 2,02€, Charlie's are up 2,00€, and ACME's liabilities are down 0,02€") @@ -38,7 +38,7 @@ In accounting terms, Alice's, ACME's, and Charlie's balance sheets may have chan A transfer fee applies whenever an individual transfer would move tokens from one party to another (except when going to/from the issuing account directly). In more complex transactions, this can occur multiple times. Transfer fees apply starting from the end and working backwards, so that ultimately the sender of a payment must send enough to account for all fees. For example: -{{ include_svg("img/transfer-fees-in-paths.svg", "Diagram of cross-currency payment with transfer fees") }} +[{% inline-svg file="/img/transfer-fees-in-paths.svg" /%}](/img/transfer-fees-in-paths.svg "Diagram of cross-currency payment with transfer fees") In this scenario, Salazar (the sender) holds EUR issued by ACME, and wants to deliver 100 USD issued by WayGate to Rosa (the recipient). FXMaker is a trader with the best offer in the order book, at a rate of 1 USD.WayGate for every 0.9 EUR.ACME. If there were no transfer fees, Salazar could deliver 100 USD to Rosa by sending 90 EUR. However, ACME has a transfer fee of 1% and WayGate has a transfer fee of 0.2%. This means: @@ -58,28 +58,24 @@ A token issuer can submit an [AccountSet transaction][] to change the `TransferR Anyone can check an account's `TransferRate` with the [account_info method][]. If the `TransferRate` is omitted, then that indicates no fee. -**Note:** The ledger may contain accounts with a transfer fee larger than the current maximum. The [fix1201 amendment](known-amendments.html#fix1201), enabled on 2017-11-14, lowered the maximum transfer fee to 100% (a `TransferRate` of `2000000000`) from an effective limit of approximately 329% (based on the maximum size of a 32-bit integer). Transfer fees that were already set continue to apply at their stated rate. +**Note:** The ledger may contain accounts with a transfer fee larger than the current maximum. The [fix1201 amendment](../../resources/known-amendments.md#fix1201), enabled on 2017-11-14, lowered the maximum transfer fee to 100% (a `TransferRate` of `2000000000`) from an effective limit of approximately 329% (based on the maximum size of a 32-bit integer). Transfer fees that were already set continue to apply at their stated rate. ## Client Library Support -Some [client libraries](client-libraries.html) have convenience functions for getting and setting `TransferRate` functions. +Some [client libraries](../../references/client-libraries.md) have convenience functions for getting and setting `TransferRate` functions. **JavaScript:** Use `xrpl.percentToTransferRate()` to convert a percentage transfer fee from a string to the corresponding `TransferRate` value. ## See Also - **Concepts:** - - [Fees (Disambiguation)](fees.html) - - [Transaction Cost](transaction-cost.html) - - [Paths](paths.html) + - [Fees (Disambiguation)](../transactions/fees.md) + - [Transaction Cost](../transactions/transaction-cost.md) + - [Paths](fungible-tokens/paths.md) - **References:** - [account_lines method][] - [account_info method][] - [AccountSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) + - [AccountRoot Flags](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/fees.md b/content/concepts/transactions/fees.md index 127b75bb1b..cb011cbe4e 100644 --- a/content/concepts/transactions/fees.md +++ b/content/concepts/transactions/fees.md @@ -16,13 +16,13 @@ However, the rules of the XRP Ledger include several types of fees, including ne ### Neutral Fees -The _**transaction cost**_ (sometimes called the transaction fee) is a miniscule amount of XRP destroyed to send a transaction. This cost scales with the load of the network, which protects the peer-to-peer network from spam. See [Transaction Cost](transaction-cost.html) for more information. +The _**transaction cost**_ (sometimes called the transaction fee) is a miniscule amount of XRP destroyed to send a transaction. This cost scales with the load of the network, which protects the peer-to-peer network from spam. See [Transaction Cost](transaction-cost.md) for more information. -The _**reserve requirement**_ is a minimum amount of XRP that an account must hold. It increases with the number of objects the account owns in the ledger. This disincentivizes users from increasing the size of the ledger carelessly or maliciously. See [Reserves](reserves.html) for more information. +The _**reserve requirement**_ is a minimum amount of XRP that an account must hold. It increases with the number of objects the account owns in the ledger. This disincentivizes users from increasing the size of the ledger carelessly or maliciously. See [Reserves](../accounts/reserves.md) for more information. ### Optional Fees -_**Transfer fees**_ are optional percentage fees that issuers can charge to transfer the currencies they issue to other addresses within the XRP Ledger. See [Transfer Fees](transfer-fees.html) for more information. +_**Transfer fees**_ are optional percentage fees that issuers can charge to transfer the currencies they issue to other addresses within the XRP Ledger. See [Transfer Fees](../tokens/transfer-fees.md) for more information. _**Trust line quality**_ is a setting that allows an account to value balances on a trust line at higher or lower than face value. This can lead to situations that are like charging a fee. Trust line quality does not apply to XRP, which is not tied to a trust line. diff --git a/content/concepts/transactions/finality-of-results/canceling-a-transaction.md b/content/concepts/transactions/finality-of-results/canceling-a-transaction.md index 727f18a987..55d1af5772 100644 --- a/content/concepts/transactions/finality-of-results/canceling-a-transaction.md +++ b/content/concepts/transactions/finality-of-results/canceling-a-transaction.md @@ -7,21 +7,18 @@ labels: --- # Canceling a Transaction -An important and intentional feature of the XRP Ledger is that a [transaction](transactions.html)'s outcome is [final](finality-of-results.html) as soon as it has been incorporated in a [ledger version](ledgers.html) that is validated by the [consensus process](consensus.html). +An important and intentional feature of the XRP Ledger is that a [transaction](../index.md)'s outcome is [final](index.md) as soon as it has been incorporated in a [ledger version](../../ledgers/index.md) that is validated by the [consensus process](../../consensus-protocol/index.md). If a transaction has _not_ yet been included in a validated ledger, it may be possible to effectively cancel it by sending another transaction from the same sending address with the same `Sequence` value. If you do not want the replacement transaction to do anything, send an [AccountSet transaction][] with no options. -**Caution:** There is no guaranteed way to cancel a valid transaction after it has been distributed to the network. The process described here may or may not work depending on factors including how busy the network is, the network topology, and the [transaction cost](transaction-cost.html) of the proposed transaction. +**Caution:** There is no guaranteed way to cancel a valid transaction after it has been distributed to the network. The process described here may or may not work depending on factors including how busy the network is, the network topology, and the [transaction cost](../transaction-cost.md) of the proposed transaction. -If the transaction has already been distributed to the network and proposed as a [candidate transaction](consensus-structure.html#consensus) in servers' consensus proposals, it may be too late to cancel. It is more likely that you can successfully cancel a transaction that is [queued](transaction-queue.html) or is stuck "in limbo" because its [transaction cost](transaction-cost.html) is not high enough to meet the network's current requirements. In this case, the replacement transaction can either do nothing, or do the same thing as the transaction to be canceled. The replacement transaction is more likely to succeed if its transaction cost is higher. +If the transaction has already been distributed to the network and proposed as a [candidate transaction](../../consensus-protocol/consensus-structure.md#consensus) in servers' consensus proposals, it may be too late to cancel. It is more likely that you can successfully cancel a transaction that is [queued](../transaction-queue.md) or is stuck "in limbo" because its [transaction cost](../transaction-cost.md) is not high enough to meet the network's current requirements. In this case, the replacement transaction can either do nothing, or do the same thing as the transaction to be canceled. The replacement transaction is more likely to succeed if its transaction cost is higher. -For example, if you try to submit 3 transactions with sequence numbers 11, 12, and 13, but transaction 11 gets lost somehow or does not have a high enough [transaction cost](transaction-cost.html) to be propagated to the network, then you can cancel transaction 11 by submitting an AccountSet transaction with no options and sequence number 11. This does nothing (except destroying the transaction cost for the new transaction 11), but it allows transactions 12 and 13 to become valid. +For example, if you try to submit 3 transactions with sequence numbers 11, 12, and 13, but transaction 11 gets lost somehow or does not have a high enough [transaction cost](../transaction-cost.md) to be propagated to the network, then you can cancel transaction 11 by submitting an AccountSet transaction with no options and sequence number 11. This does nothing (except destroying the transaction cost for the new transaction 11), but it allows transactions 12 and 13 to become valid. This approach is preferable to renumbering and resubmitting transactions 12 and 13, because it prevents transactions from being effectively duplicated under different sequence numbers. In this way, an AccountSet transaction with no options is the canonical "[no-op](http://en.wikipedia.org/wiki/NOP)" transaction. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/finality-of-results/index.md b/content/concepts/transactions/finality-of-results/index.md index 871ca6aa5f..147b64e941 100644 --- a/content/concepts/transactions/finality-of-results/index.md +++ b/content/concepts/transactions/finality-of-results/index.md @@ -8,7 +8,7 @@ labels: --- # Finality of Results -The order in which transactions apply to the consensus [ledger](ledgers.html) is not final until a ledger is closed and the exact transaction set is approved by the [consensus process](consensus.html). A transaction that succeeded initially could still fail, and a transaction that failed initially could still succeed. Additionally, a transaction that was rejected by the consensus process in one round could achieve consensus in a later round. +The order in which transactions apply to the consensus [ledger](../../ledgers/index.md) is not final until a ledger is closed and the exact transaction set is approved by the [consensus process](../../consensus-protocol/index.md). A transaction that succeeded initially could still fail, and a transaction that failed initially could still succeed. Additionally, a transaction that was rejected by the consensus process in one round could achieve consensus in a later round. A validated ledger can include successful transactions (`tes` result codes) as well as failed transactions (`tec` result codes). No transaction with any other result is included in a ledger. @@ -26,38 +26,34 @@ Any other transaction result is potentially not final. In that case, the transac ## How can non-final results change? -When you initially submit a transaction, the `rippled` server tentatively applies that transaction to its current open ledger, then returns the tentative [transaction results](transaction-results.html) from doing so. However, the transaction's final result may be very different than its tentative results, for several reasons: +When you initially submit a transaction, the `rippled` server tentatively applies that transaction to its current open ledger, then returns the tentative [transaction results](../../../references/protocol/transactions/transaction-results/transaction-results.md) from doing so. However, the transaction's final result may be very different than its tentative results, for several reasons: - The transaction may be delayed until a later ledger version, or may never be included in a validated ledger. For the most part, the XRP Ledger follows a principle that all valid transactions should be processed as soon as possible. However, there are exceptions, including: - - If a proposed transaction has not been relayed to a majority of validators by the time a [consensus round](consensus.html) begins, it may be postponed until the next ledger version, to give the remaining validators time to fetch the transaction and confirm that it is valid. + - If a proposed transaction has not been relayed to a majority of validators by the time a [consensus round](../../consensus-protocol/index.md) begins, it may be postponed until the next ledger version, to give the remaining validators time to fetch the transaction and confirm that it is valid. - If an address sends two different transactions using the same sequence number, at most one of those transactions can become validated. If those transactions are relayed through the network in different paths, a tentatively-successful transaction that some servers saw first may end up failing because the other, conflicting transaction reached a majority of servers first. - - To protect the network from spam, all transactions must destroy a [transaction cost](transaction-cost.html) in XRP to be relayed throughout the XRP Ledger peer-to-peer network. If heavy load on the peer-to-peer network causes the transaction cost to increase, a transaction that tentatively succeeded may not get relayed to enough servers to achieve a consensus, or may be [queued](transaction-queue.html) for later. + - To protect the network from spam, all transactions must destroy a [transaction cost](../transaction-cost.md) in XRP to be relayed throughout the XRP Ledger peer-to-peer network. If heavy load on the peer-to-peer network causes the transaction cost to increase, a transaction that tentatively succeeded may not get relayed to enough servers to achieve a consensus, or may be [queued](../transaction-queue.md) for later. - - Temporary internet outages or delays may prevent a proposed transaction from being successfully relayed before the transaction's intended expiration, as set by the `LastLedgerSequence` field. (If the transaction does not have an expiration, then it remains valid and could succeed any amount of time later, which can be undesirable in its own way. See [Reliable Transaction Submission](reliable-transaction-submission.html) for details.) + - Temporary internet outages or delays may prevent a proposed transaction from being successfully relayed before the transaction's intended expiration, as set by the `LastLedgerSequence` field. (If the transaction does not have an expiration, then it remains valid and could succeed any amount of time later, which can be undesirable in its own way. See [Reliable Transaction Submission](../reliable-transaction-submission.md) for details.) - Combinations of two or more of these factors can also occur. -- The [order transactions apply in a closed ledger](open-closed-validated-ledgers.html) is usually different than the order those transactions were tentatively applied to a current open ledger; depending on the transactions involved, this can cause a tentatively-successful transaction to fail or a tentatively-failed transaction to succeed. Some examples include: +- The [order transactions apply in a closed ledger](../../ledgers/open-closed-validated-ledgers.md) is usually different than the order those transactions were tentatively applied to a current open ledger; depending on the transactions involved, this can cause a tentatively-successful transaction to fail or a tentatively-failed transaction to succeed. Some examples include: - - If two transactions would each fully consume the same Offer in the [decentralized exchange](decentralized-exchange.html), whichever one comes first succeeds, and the other fails. Since the order in which those transactions apply may change, the one that succeeded can fail and the one that failed can succeed. Since oOffers can be partially executed, they could also still succeed, but to a greater or lesser extent. + - If two transactions would each fully consume the same Offer in the [decentralized exchange](../../tokens/decentralized-exchange/index.md), whichever one comes first succeeds, and the other fails. Since the order in which those transactions apply may change, the one that succeeded can fail and the one that failed can succeed. Since oOffers can be partially executed, they could also still succeed, but to a greater or lesser extent. - - If a [cross-currency payment](cross-currency-payments.html) succeeds by consuming an Offer in the decentralized exchange, but a different transaction consumes or creates offers in the same order book, the cross-currency payment may succeed with a different exchange rate than it had when it executed tentatively. If it was a [partial payment](partial-payments.html), it could also deliver a different amount. + - If a [cross-currency payment](../../payment-types/cross-currency-payments.md) succeeds by consuming an Offer in the decentralized exchange, but a different transaction consumes or creates offers in the same order book, the cross-currency payment may succeed with a different exchange rate than it had when it executed tentatively. If it was a [partial payment](../../payment-types/partial-payments.md), it could also deliver a different amount. - A [Payment transaction][] that tentatively failed because the sender did not have enough funds may later succeed because another transaction delivering the necessary funds came first in the canonical order. The reverse is also possible: a transaction that tentatively succeeded may fail because a transaction delivering the necessary funds did not come first after being put into canonical order. - **Tip:** For this reason, when running tests against the XRP Ledger, be sure to wait for a ledger close in between transactions if you have several accounts affecting the same data. If you are testing against a server in [stand-alone mode][], you must [manually close the ledger](advance-the-ledger-in-stand-alone-mode.html) in such cases. + **Tip:** For this reason, when running tests against the XRP Ledger, be sure to wait for a ledger close in between transactions if you have several accounts affecting the same data. If you are testing against a server in [stand-alone mode][], you must [manually close the ledger](../../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md) in such cases. ## See Also -- [Look up Transaction Results](look-up-transaction-results.html) -- [Transaction Results Reference](transaction-results.html) +- [Look up Transaction Results](look-up-transaction-results.md) +- [Transaction Results Reference](../../../references/protocol/transactions/transaction-results/transaction-results.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/finality-of-results/look-up-transaction-results.md b/content/concepts/transactions/finality-of-results/look-up-transaction-results.md index 4035970ce7..d58b851964 100644 --- a/content/concepts/transactions/finality-of-results/look-up-transaction-results.md +++ b/content/concepts/transactions/finality-of-results/look-up-transaction-results.md @@ -8,9 +8,9 @@ labels: --- # Look Up Transaction Results -To use the XRP Ledger effectively, you need to be able to understand [transaction](transactions.html) outcomes: did the transaction succeed? What did it do? If it failed, why? +To use the XRP Ledger effectively, you need to be able to understand [transaction](../index.md) outcomes: did the transaction succeed? What did it do? If it failed, why? -The XRP Ledger is a shared system, with all data recorded publicly and carefully, securely updated with each new [ledger version](ledgers.html). Anyone can look up the exact outcome of any transaction and read the [transaction metadata](transaction-metadata.html) to see what it did. +The XRP Ledger is a shared system, with all data recorded publicly and carefully, securely updated with each new [ledger version](../../ledgers/index.md). Anyone can look up the exact outcome of any transaction and read the [transaction metadata](../../../references/protocol/transactions/metadata.md) to see what it did. This document describes, at a low level, how to know why a transaction reached the outcome it did. For an end-user, it is easier to look at a processed view of a transaction. For example, you can [use XRP Charts to get an English-language description of any recorded transaction](https://xrpcharts.ripple.com/#/transactions/). @@ -21,9 +21,9 @@ To understand the outcome of a transaction as described in these instructions, y - Know which transaction you want to understand. If you know the transaction's [identifying hash][], you can look it up that way. You can also look at transactions that executed in a recent ledger or the transactions that most recently affected a given account. - Have access to a `rippled` server that provides reliable information and has the necessary history for when the transaction was submitted. - For looking up the outcomes of transactions you've recently submitted, the server you submitted through should be enough, as long as it maintains sync with the network during that time. - - For outcomes of older transactions, you may want to use a [full-history server](ledger-history.html#full-history). + - For outcomes of older transactions, you may want to use a [full-history server](../../networks-and-servers/ledger-history.md#full-history). -**Tip:** There are other ways of querying for data on transactions from the XRP Ledger, including the [Data API](data-api.html) and other exported databases, but those interfaces are non-authoritative. This document describes how to look up data using the `rippled` API directly, for the most direct and authoritative results possible. +**Tip:** There are other ways of querying for data on transactions from the XRP Ledger, including the [Data API](../../../references/data-api.md) and other exported databases, but those interfaces are non-authoritative. This document describes how to look up data using the `rippled` API directly, for the most direct and authoritative results possible. ## 1. Get Transaction Status @@ -33,7 +33,7 @@ Knowing whether a transaction succeeded or failed is a two-part question: 1. Was the transaction included in a validated ledger? 2. If so, what changes to the ledger state occurred as a result? -To know whether a transaction was included in a validated ledger, you usually need access to all the ledgers it could possibly be in. The simplest, most foolproof way to do this is to look up the transaction on a [full history server](ledger-history.html#full-history). Use the [tx method][], [account_tx method][], or other response from `rippled`. Look for `"validated": true` to indicate that this response uses a ledger version that has been validated by consensus. +To know whether a transaction was included in a validated ledger, you usually need access to all the ledgers it could possibly be in. The simplest, most foolproof way to do this is to look up the transaction on a [full history server](../../networks-and-servers/ledger-history.md#full-history). Use the [tx method][], [account_tx method][], or other response from `rippled`. Look for `"validated": true` to indicate that this response uses a ledger version that has been validated by consensus. - If the result does not have `"validated": true`, then the result may be tentative and you must wait for the ledger to be validated to know if the transaction's outcome is final. - If the result does not contain the transaction in question, or returns the error `txnNotFound`, then the transaction is not in any ledger that the server has in its available history. This may or may not mean that the transaction failed, depending on whether the transaction could be in a validated ledger version that the server does not have and whether it could be included in a future validated ledger. You can constrain the range of ledgers a transaction can be in by knowing: @@ -62,22 +62,22 @@ The following example shows a successful transaction, as returned by the [tx met } ``` -This example shows an [AccountSet transaction][] sent by the [account](accounts.html) with address `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`, using [Sequence number][] 376. The transaction's [identifying hash][] is `017DED8F5E20F0335C6F56E3D5EE7EF5F7E83FB81D2904072E665EEA69402567` and its [result](transaction-results.html) is `tesSUCCESS`. The transaction was included in ledger version 46447423, which has been validated, so these results are final. +This example shows an [AccountSet transaction][] sent by the [account](../../accounts/accounts.md) with address `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`, using [Sequence number][] 376. The transaction's [identifying hash][] is `017DED8F5E20F0335C6F56E3D5EE7EF5F7E83FB81D2904072E665EEA69402567` and its [result](../../../references/protocol/transactions/transaction-results/transaction-results.md) is `tesSUCCESS`. The transaction was included in ledger version 46447423, which has been validated, so these results are final. ### Case: Not Included in a Validated Ledger -**If a transaction is not included in a validated ledger, it cannot possibly have had _any_ effect on the shared XRP Ledger state.** If the transaction's failure to be included in a ledger is [_final_](finality-of-results.html), then it cannot have any future effect, either. +**If a transaction is not included in a validated ledger, it cannot possibly have had _any_ effect on the shared XRP Ledger state.** If the transaction's failure to be included in a ledger is [_final_](index.md), then it cannot have any future effect, either. -If the transaction's failure is not final, it may still become included in a _future_ validated ledger. You can use the provisional results of applying the transaction to the current open ledger as a preview of the likely effects the transaction may have in a final ledger, but those results can change due to [many factors](finality-of-results.html#how-can-non-final-results-change). +If the transaction's failure is not final, it may still become included in a _future_ validated ledger. You can use the provisional results of applying the transaction to the current open ledger as a preview of the likely effects the transaction may have in a final ledger, but those results can change due to [many factors](index.md#how-can-non-final-results-change). ### Case: Included in a Validated Ledger -If the transaction _is_ included in a validated ledger, then the [transaction metadata](transaction-metadata.html) contains a full report of all changes that were made to the ledger state as a result of processing the transaction. The metadata's `TransactionResult` field contains a [transaction result code](transaction-results.html) that summarizes the outcome: +If the transaction _is_ included in a validated ledger, then the [transaction metadata](../../../references/protocol/transactions/metadata.md) contains a full report of all changes that were made to the ledger state as a result of processing the transaction. The metadata's `TransactionResult` field contains a [transaction result code](../../../references/protocol/transactions/transaction-results/transaction-results.md) that summarizes the outcome: - The code `tesSUCCESS` indicates that the transaction was, more or less, successful. -- A `tec`-class code indicates that the transaction failed, and its only effects on the ledger state are to destroy the XRP [transaction cost](transaction-cost.html) and possibly perform some bookkeeping like removing [expired Offers](offers.html#offer-expiration) and [closed payment channels](payment-channels.html#payment-channel-lifecycle). +- A `tec`-class code indicates that the transaction failed, and its only effects on the ledger state are to destroy the XRP [transaction cost](../transaction-cost.md) and possibly perform some bookkeeping like removing [expired Offers](../../tokens/decentralized-exchange/offers.md#offer-expiration) and [closed payment channels](../../payment-types/payment-channels.md#payment-channel-lifecycle). - No other code can appear in any ledger. The result code is only a summary of the transaction's outcome. To understand in more detail what the transaction did, you must read the rest of the metadata in context of the transaction's instructions and the ledger state before the transaction executed. @@ -87,11 +87,11 @@ The result code is only a summary of the transaction's outcome. To understand in Transaction metadata describes _exactly_ how the transaction was applied to the ledger, including the following fields: -{% include '_snippets/tx-metadata-field-table.md' %} +{% partial file="/_snippets/tx-metadata-field-table.md" /%} -Most of the metadata is contained in [the `AffectedNodes` array](transaction-metadata.html#affectednodes). What to look for in this array depends on the type of transaction. Almost every transaction modifies the sender's [AccountRoot object][] to destroy the XRP [transaction cost](transaction-cost.html) and increase the [account's Sequence number](basic-data-types.html#account-sequence). +Most of the metadata is contained in [the `AffectedNodes` array](../../../references/protocol/transactions/metadata.md#affectednodes). What to look for in this array depends on the type of transaction. Almost every transaction modifies the sender's [AccountRoot object][] to destroy the XRP [transaction cost](../transaction-cost.md) and increase the [account's Sequence number](../../../references/protocol/data-types/basic-data-types.md#account-sequence). -**Info:** One exception to this rule is for [pseudo-transactions](pseudo-transaction-types.html), which aren't sent from a real account and thus do not modify an AccountRoot object. There are other exceptions that modify an AccountRoot object without changing its `Balance` field: [free key reset transactions](transaction-cost.html#key-reset-transaction) do not change the sender's XRP balance; and in the unlikely scenario that a transaction causes an account to receive exactly as much XRP as it destroys, the account's Balance shows no net change. (The net decrease in XRP occurs elsewhere in the metadata, debited from wherever the account sent the XRP.) +**Info:** One exception to this rule is for [pseudo-transactions](../../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md), which aren't sent from a real account and thus do not modify an AccountRoot object. There are other exceptions that modify an AccountRoot object without changing its `Balance` field: [free key reset transactions](../transaction-cost.md#key-reset-transaction) do not change the sender's XRP balance; and in the unlikely scenario that a transaction causes an account to receive exactly as much XRP as it destroys, the account's Balance shows no net change. (The net decrease in XRP occurs elsewhere in the metadata, debited from wherever the account sent the XRP.) This example shows the full response from step 1 above. See if you can figure out what changes it made to the ledger: @@ -144,17 +144,17 @@ This example shows the full response from step 1 above. See if you can figure ou } ``` -The _only_ changes made by this [no-op transaction](cancel-or-skip-a-transaction.html) are to update the [AccountRoot object][] representing the sender's account in the following ways: +The _only_ changes made by this [no-op transaction](canceling-a-transaction.md) are to update the [AccountRoot object][] representing the sender's account in the following ways: - The `Sequence` value increases from 376 to 377. -- The XRP `Balance` in this account changes from `396015176` to `396015164` [drops of XRP][]. This decrease of exactly 12 drops represents the [transaction cost](transaction-cost.html), as specified in the `Fee` field of the transaction. +- The XRP `Balance` in this account changes from `396015176` to `396015164` [drops of XRP][]. This decrease of exactly 12 drops represents the [transaction cost](../transaction-cost.md), as specified in the `Fee` field of the transaction. -- The [`AccountTxnID`](transaction-common-fields.html#accounttxnid) changes to show that this transaction is now the one most recently sent from this address. +- The [`AccountTxnID`](../../../references/protocol/transactions/common-fields.md#accounttxnid) changes to show that this transaction is now the one most recently sent from this address. - The previous transaction to affect this account was the transaction `E710CADE7FE9C26C51E8630138322D80926BE91E46D69BF2F36E6E4598D6D0CF`, which executed in ledger version 46447387, as specified in the `PreviousTxnID` and `PreviousTxnLgrSeq` fields. (This may be useful if you want to walk backwards through the account's transaction history.) - **Note:** Although the metadata does not explicitly show it, any time a transaction modifies a ledger object, it updates that object's `PreviousTxnID` and `PreviousTxnLgrSeq` fields with the current transaction's information. If the same sender has multiple transactions in a single ledger version, each one after the first provides a `PreviousTxnLgrSeq` whose value is the [ledger index](basic-data-types.html#ledger-index) of the ledger version that included all those transactions. + **Note:** Although the metadata does not explicitly show it, any time a transaction modifies a ledger object, it updates that object's `PreviousTxnID` and `PreviousTxnLgrSeq` fields with the current transaction's information. If the same sender has multiple transactions in a single ledger version, each one after the first provides a `PreviousTxnLgrSeq` whose value is the [ledger index](../../../references/protocol/data-types/basic-data-types.md#ledger-index) of the ledger version that included all those transactions. Since the `ModifiedNode` entry for `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`'s account is the only object in the `AffectedNodes` array, no other changes were made to the ledger as a result of this transaction. @@ -165,8 +165,8 @@ Since the `ModifiedNode` entry for `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`'s accoun Almost any transaction can result in the following types of changes: - **Sequence and Transaction Cost changes:** [As mentioned, every transaction (excluding pseudo-transactions) modifies the sender's `AccountRoot` object](#2-interpret-metadata) to increase the sender's sequence number and destroy the XRP used to pay the transaction cost. -- **Account Threading:** Some transactions that create objects also modify the [AccountRoot object](accountroot.html) of an intended recipient or destination account to indicate that something relating to that account changed. This technique of "tagging" an account changes only that object's `PreviousTxnID` and `PreviousTxnLgrSeq` fields. This makes it more efficient to look up an account's transaction history by following the "thread" of transactions mentioned in these fields. -- **Directory Updates:** Transactions that create or remove ledger objects often make changes to [DirectoryNode objects](directorynode.html) to track which objects exist. Also, when a transaction adds an object that counts towards an account's [owner reserve](reserves.html#owner-reserves), it increases the `OwnerCount` of the owner's [AccountRoot object][]. Removing an object decreases the `OwnerCount`. This is how the XRP Ledger tracks how much owner reserve each account owes at any point in time. +- **Account Threading:** Some transactions that create objects also modify the [AccountRoot object](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) of an intended recipient or destination account to indicate that something relating to that account changed. This technique of "tagging" an account changes only that object's `PreviousTxnID` and `PreviousTxnLgrSeq` fields. This makes it more efficient to look up an account's transaction history by following the "thread" of transactions mentioned in these fields. +- **Directory Updates:** Transactions that create or remove ledger objects often make changes to [DirectoryNode objects](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md) to track which objects exist. Also, when a transaction adds an object that counts towards an account's [owner reserve](../../accounts/reserves.md#owner-reserves), it increases the `OwnerCount` of the owner's [AccountRoot object][]. Removing an object decreases the `OwnerCount`. This is how the XRP Ledger tracks how much owner reserve each account owes at any point in time. Example of increasing an Account's `OwnerCount`: @@ -193,7 +193,7 @@ Example of increasing an Account's `OwnerCount`: } ``` -Many transaction types create or modify [DirectoryNode objects](directorynode.html). These objects are for bookkeeping: tracking all objects attached to an account, or all exchange Offers at the same exchange rate. If the transaction created new objects in the ledger, it may need to add entries to an existing DirectoryNode object, or add another DirectoryNode object to represent another page of the directory. If the transaction removed objects from the ledger, it may delete one or more DirectoryNode objects that are no longer needed. +Many transaction types create or modify [DirectoryNode objects](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md). These objects are for bookkeeping: tracking all objects attached to an account, or all exchange Offers at the same exchange rate. If the transaction created new objects in the ledger, it may need to add entries to an existing DirectoryNode object, or add another DirectoryNode object to represent another page of the directory. If the transaction removed objects from the ledger, it may delete one or more DirectoryNode objects that are no longer needed. Example of a `CreatedNode` representing a new Offer Directory: @@ -216,31 +216,31 @@ Other things to look for when processing transaction metadata depend on the tran ### Payments -A [Payment transaction][] can represent a direct XRP-to-XRP transaction, a [cross-currency payment](cross-currency-payments.html), or a direct transaction of a fungible [token](tokens.html). Anything other than a direct XRP-to-XRP transaction can be a [partial payment](partial-payments.html), including token-to-XRP or XRP-to-token transactions. +A [Payment transaction][] can represent a direct XRP-to-XRP transaction, a [cross-currency payment](../../payment-types/cross-currency-payments.md), or a direct transaction of a fungible [token](../../tokens/index.md). Anything other than a direct XRP-to-XRP transaction can be a [partial payment](../../payment-types/partial-payments.md), including token-to-XRP or XRP-to-token transactions. -XRP amounts are tracked in the `Balance` field of `AccountRoot` objects. (XRP can also exist in [Escrow objects](escrow-object.html) and [PayChannel objects](paychannel.html), but Payment transactions cannot affect those.) +XRP amounts are tracked in the `Balance` field of `AccountRoot` objects. (XRP can also exist in [Escrow objects](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) and [PayChannel objects](../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md), but Payment transactions cannot affect those.) -You should always use [the `delivered_amount` field](partial-payments.html#the-delivered_amount-field) to see how much a payment delivered. +You should always use [the `delivered_amount` field](../../payment-types/partial-payments.md#the-delivered_amount-field) to see how much a payment delivered. -If the payment contains a `CreatedNode` with `"LedgerEntryType": "AccountRoot"`, that means the payment [funded a new account](accounts.html#creating-accounts) in the ledger. +If the payment contains a `CreatedNode` with `"LedgerEntryType": "AccountRoot"`, that means the payment [funded a new account](../../accounts/accounts.md#creating-accounts) in the ledger. #### Token Payments Payments involving tokens are a bit more complicated. -All changes in token balances are reflected in [RippleState objects](ripplestate.html), which represent [trust lines](trust-lines-and-issuing.html). An increase to one party's balance on a trust line is considered to decrease the counterparty's balance by equal amount; in the metadata, this is only recorded as a single change to the shared `Balance` for the RippleState object. Whether this change is recorded as an "increase" or "decrease" depends on which account has the numerically higher address. +All changes in token balances are reflected in [RippleState objects](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md), which represent [trust lines](../../tokens/fungible-tokens/index.md). An increase to one party's balance on a trust line is considered to decrease the counterparty's balance by equal amount; in the metadata, this is only recorded as a single change to the shared `Balance` for the RippleState object. Whether this change is recorded as an "increase" or "decrease" depends on which account has the numerically higher address. -A single payment may go across a long [path](paths.html) consisting of several trust lines and order books. The process of changing the balances on several trust lines to connect parties indirectly is called [rippling](rippling.html). Depending on the `issuer` specified in the transaction's `Amount` field, it is also possible that the amount delivered may be split between several trust lines (`RippleState` accounts) connected to the destination account. +A single payment may go across a long [path](../../tokens/fungible-tokens/paths.md) consisting of several trust lines and order books. The process of changing the balances on several trust lines to connect parties indirectly is called [rippling](../../tokens/fungible-tokens/rippling.md). Depending on the `issuer` specified in the transaction's `Amount` field, it is also possible that the amount delivered may be split between several trust lines (`RippleState` accounts) connected to the destination account. **Tip:** The order that modified objects are presented in the metadata does not necessarily match the order those objects were visited while processing a payment. To better understand payment execution, it may help to reorder `AffectedNodes` members to reconstruct the paths the funds took through the ledger. -Cross-currency payments consume [Offers](offer.html) in part or entirely to change between different currency codes and issuers. If a transaction shows `DeletedNode` objects for `Offer` types, that can indicate an Offer that was fully consumed, or an Offer that was found to be [expired or unfunded](offers.html#lifecycle-of-an-offer) at the time of processing. If a transaction shows a `ModifiedNode` of type `Offer`, that indicates an Offer that was partially consumed. +Cross-currency payments consume [Offers](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) in part or entirely to change between different currency codes and issuers. If a transaction shows `DeletedNode` objects for `Offer` types, that can indicate an Offer that was fully consumed, or an Offer that was found to be [expired or unfunded](../../tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) at the time of processing. If a transaction shows a `ModifiedNode` of type `Offer`, that indicates an Offer that was partially consumed. -The [`QualityIn` and `QualityOut` settings of trust lines](trustset.html) can affect how one side of a trust line values the token, so that the numeric change in balances is different from how the sender values that token. The `delivered_amount` shows how much was delivered as valued by the recipient. +The [`QualityIn` and `QualityOut` settings of trust lines](../../../references/protocol/transactions/types/trustset.md) can affect how one side of a trust line values the token, so that the numeric change in balances is different from how the sender values that token. The `delivered_amount` shows how much was delivered as valued by the recipient. -If the amount to be sent or received is outside of the [token precision](currency-formats.html#token-precision), it is possible that one side may be debited for an amount that is rounded to nothing on the other side of the transaction. As a result, when two parties transact while their balances are different by a factor of 1016, it is possible that rounding may effectively "create" or "destroy" small amounts of the token. (XRP is never rounded, so this is not possible with XRP.) +If the amount to be sent or received is outside of the [token precision](../../../references/protocol/data-types/currency-formats.md#token-precision), it is possible that one side may be debited for an amount that is rounded to nothing on the other side of the transaction. As a result, when two parties transact while their balances are different by a factor of 1016, it is possible that rounding may effectively "create" or "destroy" small amounts of the token. (XRP is never rounded, so this is not possible with XRP.) -Depending on the length of the [paths](paths.html), the metadata for cross-currency payments can be _long_. For example, [transaction 8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B](https://xrpcharts.ripple.com/#/transactions/8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B) delivered 2.788 GCB issued by `rHaaans...`, spending XRP but passing through USD from 2 issuers, paying XRP to 2 accounts, removing an unfunded offer from `r9ZoLsJ...` to trade EUR for ETH, plus bookkeeping for a total of 17 different ledger objects modified. +Depending on the length of the [paths](../../tokens/fungible-tokens/paths.md), the metadata for cross-currency payments can be _long_. For example, [transaction 8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B](https://xrpcharts.ripple.com/#/transactions/8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B) delivered 2.788 GCB issued by `rHaaans...`, spending XRP but passing through USD from 2 issuers, paying XRP to 2 accounts, removing an unfunded offer from `r9ZoLsJ...` to trade EUR for ETH, plus bookkeeping for a total of 17 different ledger objects modified. ### Offers @@ -267,9 +267,9 @@ An [OfferCreate transaction][] may or may not create an object in the ledger, de } ``` -A `ModifiedNode` of type `Offer` indicates an Offer that was matched and partially consumed. A single transaction can consume a large number of Offers. An Offer to trade two tokens might also consume Offers to trade XRP because of [auto-bridging](autobridging.html). All or part of an exchange can be auto-bridged. +A `ModifiedNode` of type `Offer` indicates an Offer that was matched and partially consumed. A single transaction can consume a large number of Offers. An Offer to trade two tokens might also consume Offers to trade XRP because of [auto-bridging](../../tokens/decentralized-exchange/autobridging.md). All or part of an exchange can be auto-bridged. -A `DeletedNode` of type `Offer` can indicate a matching Offer that was fully consumed, an Offer that was found to be [expired or unfunded](offers.html#lifecycle-of-an-offer) at the time of processing, or an Offer that was canceled as part of placing a new Offer. You can recognize a canceled Offer because the `Account` that placed it is the sender of the transaction that deleted it. +A `DeletedNode` of type `Offer` can indicate a matching Offer that was fully consumed, an Offer that was found to be [expired or unfunded](../../tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) at the time of processing, or an Offer that was canceled as part of placing a new Offer. You can recognize a canceled Offer because the `Account` that placed it is the sender of the transaction that deleted it. Example of a deleted Offer: @@ -299,15 +299,15 @@ Example of a deleted Offer: } ``` -Offers can create, delete, and modify both types of [DirectoryNode objects](directorynode.html), to keep track of who placed which Offers and which Offers are available at which exchange rates. Generally, users don't need to pay close attention to this bookkeeping. +Offers can create, delete, and modify both types of [DirectoryNode objects](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md), to keep track of who placed which Offers and which Offers are available at which exchange rates. Generally, users don't need to pay close attention to this bookkeeping. An [OfferCancel transaction][] may have the code `tesSUCCESS` even if there was no Offer to delete. Look for a `DeletedNode` of type `Offer` to confirm that the transaction actually deleted an Offer. If not, the Offer may already have been removed by a previous transaction, or the OfferCancel transaction may have used the wrong sequence number in the `OfferSequence` field. -If an OfferCreate transaction shows a `CreatedNode` of type `RippleState`, that indicates that [the Offer created a trust line](offers.html#offers-and-trust) to hold a token received in the trade. +If an OfferCreate transaction shows a `CreatedNode` of type `RippleState`, that indicates that [the Offer created a trust line](../../tokens/decentralized-exchange/offers.md#offers-and-trust) to hold a token received in the trade. ### Escrows -A successful [EscrowCreate transaction][] creates an [Escrow object](escrow-object.html) in the ledger. Look for a `CreatedNode` entry of type `Escrow`. The `NewFields` should show an `Amount` equal to the amount of XRP escrowed, and other properties as specified. +A successful [EscrowCreate transaction][] creates an [Escrow object](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) in the ledger. Look for a `CreatedNode` entry of type `Escrow`. The `NewFields` should show an `Amount` equal to the amount of XRP escrowed, and other properties as specified. A successful EscrowCreate transaction also debits the same amount of XRP from the sender. Look for a `ModifiedNode` of type `AccountRoot`, where the `Account` in the final fields matches the address from the `Account` in the transaction instructions. The `Balance` should show the decrease in XRP due to the escrowed XRP (and the XRP destroyed to pay the transaction cost). @@ -361,7 +361,7 @@ In the following excerpt, we see that `r9UUEX...`'s balance increases by 1 billi Look for a `CreatedNode` of type `PayChannel` when creating a payment channel. You should also find a `ModifiedNode` of type `AccountRoot` showing the decrease in the sender's balance. Look for an `Account` field in the `FinalFields` to confirm that the address matches the sender, and look at the difference in the `Balance` fields to see the change in XRP balance. -The metadata also lists the newly-created payment channel in the destination's [owner directory](directorynode.html). This prevents an account from [being deleted](deleting-accounts.html) if it is the destination of an open payment channel. (This behavior was added by the [fixPayChanRecipientOwnerDir amendment](known-amendments.html#fixpaychanrecipientownerdir).) +The metadata also lists the newly-created payment channel in the destination's [owner directory](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md). This prevents an account from [being deleted](../../accounts/deleting-accounts.md) if it is the destination of an open payment channel. (This behavior was added by the [fixPayChanRecipientOwnerDir amendment](../../../resources/known-amendments.md#fixpaychanrecipientownerdir).) There are several ways to request to close a payment channel, aside from the immutable `CancelAfter` time of the channel (which is only set on creation). If a transaction schedules a channel to close, there is a `ModifiedNode` entry of type `PayChannel` for the channel, with the newly-added close time in the `Expiration` field of the `FinalFields`. The following example shows the changes to a `PayChannel` in a case where the sender requested to close the channel without redeeming a claim: @@ -391,7 +391,7 @@ There are several ways to request to close a payment channel, aside from the imm ### TrustSet Transactions -TrustSet transactions create, modify, or delete [trust lines](trust-lines-and-issuing.html), which are represented as [`RippleState` objects](ripplestate.html). A single `RippleState` object contains settings for both parties involved, including their limits, [rippling settings](rippling.html), and more. Creating and modifying trust lines can also [adjust the sender's owner reserve and owner directory](#general-purpose-bookkeeping). +TrustSet transactions create, modify, or delete [trust lines](../../tokens/fungible-tokens/index.md), which are represented as [`RippleState` objects](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md). A single `RippleState` object contains settings for both parties involved, including their limits, [rippling settings](../../tokens/fungible-tokens/rippling.md), and more. Creating and modifying trust lines can also [adjust the sender's owner reserve and owner directory](#general-purpose-bookkeeping). The following example shows a new trust line, where **`rf1BiG...`** is willing to hold up to 110 USD issued by **`rsA2Lp...`**: @@ -428,31 +428,27 @@ The following example shows a new trust line, where **`rf1BiG...`** is willing t Most other transactions create a specific type of ledger entry and [adjust the sender's owner reserve and owner directory](#general-purpose-bookkeeping): - [AccountSet transactions][] modify the sender's existing [AccountRoot object][], changing the settings and flags as specified. -- [DepositPreauth transactions][] add or remove a [DepositPreauth object](depositpreauth-object.html) for a specific sender. +- [DepositPreauth transactions][] add or remove a [DepositPreauth object](../../../references/protocol/ledger-data/ledger-entry-types/depositpreauth.md) for a specific sender. - [SetRegularKey transactions][] modify the [AccountRoot object][] of the sender, changing the `RegularKey` field as specified. -- [SignerListSet transactions][] add, remove, or replace a [SignerList object](signerlist.html). +- [SignerListSet transactions][] add, remove, or replace a [SignerList object](../../../references/protocol/ledger-data/ledger-entry-types/signerlist.md). ### Pseudo-Transactions -[Pseudo-transactions](pseudo-transaction-types.html) also have metadata, but they do not follow all the rules of normal transactions. They are not tied to a real account (the `Account` value is the [base58-encoded form of the number 0](addresses.html#special-addresses)), so they do not modify an AccountRoot object in the ledger to increase the `Sequence` number or destroy XRP. Pseudo-transactions only make specific changes to special ledger objects: +[Pseudo-transactions](../../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md) also have metadata, but they do not follow all the rules of normal transactions. They are not tied to a real account (the `Account` value is the [base58-encoded form of the number 0](../../accounts/addresses.md#special-addresses)), so they do not modify an AccountRoot object in the ledger to increase the `Sequence` number or destroy XRP. Pseudo-transactions only make specific changes to special ledger objects: -- [EnableAmendment pseudo-transactions][] modify the [Amendments ledger object](amendments-object.html) to track which amendments are enabled, and which ones are pending with majority support and for how long. -- [SetFee pseudo-transactions][] modify the [FeeSettings ledger object](feesettings.html) to change the base levels for the [transaction cost](transaction-cost.html) and [reserve requirements](reserves.html). +- [EnableAmendment pseudo-transactions][] modify the [Amendments ledger object](../../../references/protocol/ledger-data/ledger-entry-types/amendments.md) to track which amendments are enabled, and which ones are pending with majority support and for how long. +- [SetFee pseudo-transactions][] modify the [FeeSettings ledger object](../../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) to change the base levels for the [transaction cost](../transaction-cost.md) and [reserve requirements](../../accounts/reserves.md). ## See Also - **Concepts:** - - [Finality of Results](finality-of-results.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Finality of Results](index.md) + - [Reliable Transaction Submission](../reliable-transaction-submission.md) - **Tutorials:** - - [Monitor Incoming Payments with WebSocket](monitor-incoming-payments-with-websocket.html) + - [Monitor Incoming Payments with WebSocket](../../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) - **References:** - - [Ledger Entry Types Reference](ledger-object-types.html) - All possible fields of all types of ledger entries - - [Transaction Metadata](transaction-metadata.html) - Summary of the metadata format and fields that appear in metadata - - [Transaction Results](transaction-results.html) - Tables of all possible result codes for transactions. + - [Ledger Entry Types Reference](../../../references/protocol/ledger-data/ledger-entry-types/index.md) - All possible fields of all types of ledger entries + - [Transaction Metadata](../../../references/protocol/transactions/metadata.md) - Summary of the metadata format and fields that appear in metadata + - [Transaction Results](../../../references/protocol/transactions/transaction-results/transaction-results.md) - Tables of all possible result codes for transactions. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/finality-of-results/transaction-malleability.md b/content/concepts/transactions/finality-of-results/transaction-malleability.md index 3ee688d10e..6023d49015 100644 --- a/content/concepts/transactions/finality-of-results/transaction-malleability.md +++ b/content/concepts/transactions/finality-of-results/transaction-malleability.md @@ -14,7 +14,7 @@ If vulnerable software submits malleable transactions and assumes they can only On the XRP Ledger mainnet, only **multi-signed transactions** can be malleable, if they have more signatures than necessary, or if an authorized signer provides an additional signature beyond what is necessary. Good operational security can protect against these problems. See [Mitigations for Multi-Signature Malleability](#mitigations-for-multi-signature-malleability) for guidelines. -Before 2014, single-signed transactions could be malleable due to properties of the default signing algorithm, ECDSA with the secp256k1 curve. For compatibility with legacy signing tools, it was possible to create and submit malleable single-signed transactions until the [RequireFullyCanonicalSig amendment][] became enabled on 2020-07-03. (Transactions [signed with Ed25519 keys](cryptographic-keys.html#signing-algorithms) were never vulnerable to this problem.) +Before 2014, single-signed transactions could be malleable due to properties of the default signing algorithm, ECDSA with the secp256k1 curve. For compatibility with legacy signing tools, it was possible to create and submit malleable single-signed transactions until the [RequireFullyCanonicalSig amendment][] became enabled on 2020-07-03. (Transactions [signed with Ed25519 keys](../../accounts/cryptographic-keys.md#signing-algorithms) were never vulnerable to this problem.) @@ -22,8 +22,8 @@ Before 2014, single-signed transactions could be malleable due to properties of In the XRP Ledger, a transaction cannot execute unless: -- All [fields of a transaction](transaction-common-fields.html) are signed, except the signature itself. -- The key pair(s) used to sign the transaction are [authorized to send transactions on behalf of that account](transactions.html#authorizing-transactions). +- All [fields of a transaction](../../../references/protocol/transactions/common-fields.md) are signed, except the signature itself. +- The key pair(s) used to sign the transaction are [authorized to send transactions on behalf of that account](../index.md#authorizing-transactions). - The signature is _canonical_ and matches the transaction instructions. Any change to the signed fields, no matter how small, would invalidate the signature, so no part of the transaction can be malleable except for the signature itself. In most cases, any change to a signature itself also invalidates the signature, but there are some specific exceptions, described below. @@ -46,7 +46,7 @@ Thus, to have _fully_ canonical signatures, one must choose which of the two pos With the [RequireFullyCanonicalSig amendment][] (enabled in 2020), all transactions must use _fully canonical_ signatures only. -Between 2014 and 2020, the XRP Ledger was compatible with legacy software that did not always generate fully canonical signatures, but used a flag on transactions called [**`tfFullyCanonicalSig`**](transaction-common-fields.html#global-flags) to protect compatible software from transaction malleability. This flag, which compatible signing software enables by default, required that the transaction use a _fully-canonical_ signature to be valid. Now that the [RequireFullyCanonicalSig amendment][] is enabled, the flag is no longer necessary, but there is no harm in enabling it anyway. +Between 2014 and 2020, the XRP Ledger was compatible with legacy software that did not always generate fully canonical signatures, but used a flag on transactions called [**`tfFullyCanonicalSig`**](../../../references/protocol/transactions/common-fields.md#global-flags) to protect compatible software from transaction malleability. This flag, which compatible signing software enables by default, required that the transaction use a _fully-canonical_ signature to be valid. Now that the [RequireFullyCanonicalSig amendment][] is enabled, the flag is no longer necessary, but there is no harm in enabling it anyway. ### Malleability with Multi-Signatures @@ -122,7 +122,7 @@ The process to exploit a vulnerable system follows a series of steps like the fo If the transaction included the `LastLedgerSequence` field, this would occur after the specified ledger index has passed. - If the transaction omitted the `LastLedgerSequence` field, this could be wrong in another way: if no other transaction from the same sender uses the same `Sequence` number, then the transaction could theoretically succeed later regardless of how much time has passed. (See [Reliable Transaction Submission](reliable-transaction-submission.html) for details.) + If the transaction omitted the `LastLedgerSequence` field, this could be wrong in another way: if no other transaction from the same sender uses the same `Sequence` number, then the transaction could theoretically succeed later regardless of how much time has passed. (See [Reliable Transaction Submission](../reliable-transaction-submission.md) for details.) 8. The vulnerable system takes action assuming that the transaction has failed. @@ -134,18 +134,15 @@ The process to exploit a vulnerable system follows a series of steps like the fo ## See Also - **Concepts:** - - [Transactions](transactions.html) - - [Finality of Results](finality-of-results.html) + - [Transactions](../index.md) + - [Finality of Results](index.md) - **Tutorials:** - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Look Up Transaction Results](look-up-transaction-results.md) + - [Reliable Transaction Submission](../reliable-transaction-submission.md) - **References:** - - [Basic Data Types - Hashes](basic-data-types.html#hashes) - - [Transaction Common Fields - Global Flags](transaction-common-fields.html#global-flags) - - [Transaction Results](transaction-results.html) - - [Serialization Format](serialization.html) + - [Basic Data Types - Hashes](../../../references/protocol/data-types/basic-data-types.md#hashes) + - [Transaction Common Fields - Global Flags](../../../references/protocol/transactions/common-fields.md#global-flags) + - [Transaction Results](../../../references/protocol/transactions/transaction-results/transaction-results.md) + - [Serialization Format](../../../references/protocol/binary-format.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/index.md b/content/concepts/transactions/index.md index 2e9ea6843b..6bd2ac94a0 100644 --- a/content/concepts/transactions/index.md +++ b/content/concepts/transactions/index.md @@ -8,24 +8,24 @@ labels: --- # Transactions -A _Transaction_ is the only way to modify the XRP Ledger. Transactions are only final if signed, submitted, and accepted into a validated ledger version following the [consensus process](consensus.html). Some ledger rules also generate _[pseudo-transactions](pseudo-transaction-types.html)_, which aren't signed or submitted, but still must be accepted by consensus. Transactions that fail are also included in ledgers because they modify balances of XRP to pay for the anti-spam [transaction cost][]. +A _Transaction_ is the only way to modify the XRP Ledger. Transactions are only final if signed, submitted, and accepted into a validated ledger version following the [consensus process](../consensus-protocol/index.md). Some ledger rules also generate _[pseudo-transactions](../../references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md)_, which aren't signed or submitted, but still must be accepted by consensus. Transactions that fail are also included in ledgers because they modify balances of XRP to pay for the anti-spam [transaction cost][]. -Transactions can do more than send money. In addition to supporting various [Payment Types](payment-types.html), transactions in the XRP Ledger are also used to rotate [cryptographic keys](cryptographic-keys.html), manage other settings, and trade in the XRP Ledger's [decentralized exchange](decentralized-exchange.html). The [`rippled` API reference](http-websocket-apis.html) has a complete [list of transaction types](transaction-types.html). +Transactions can do more than send money. In addition to supporting various [Payment Types](../payment-types/index.md), transactions in the XRP Ledger are also used to rotate [cryptographic keys](../accounts/cryptographic-keys.md), manage other settings, and trade in the XRP Ledger's [decentralized exchange](../tokens/decentralized-exchange/index.md). The [`rippled` API reference](../../references/http-websocket-apis/index.md) has a complete [list of transaction types](../../references/protocol/transactions/types/index.md). ### Identifying Transactions -Every signed transaction has a unique `"hash"` that identifies it. The server provides the hash in the response when you submit the transaction; you can also look up a transaction in an account's transaction history with the [account_tx command](account_tx.html). +Every signed transaction has a unique `"hash"` that identifies it. The server provides the hash in the response when you submit the transaction; you can also look up a transaction in an account's transaction history with the [account_tx command](../../references/http-websocket-apis/public-api-methods/account-methods/account_tx.md). -The transaction hash can be used as a "proof of payment" since anyone can [look up the transaction by its hash](look-up-transaction-results.html) to verify its final status. +The transaction hash can be used as a "proof of payment" since anyone can [look up the transaction by its hash](finality-of-results/look-up-transaction-results.md) to verify its final status. + +{% partial file="/_snippets/setfee_uniqueness_note.md" /%} -{% include '_snippets/setfee_uniqueness_note.md' %} - ## Claimed Cost Justification -Although it may seem unfair to charge a [transaction cost](transaction-cost.html) for a failed transaction, the `tec` class of errors exists for good reasons: +Although it may seem unfair to charge a [transaction cost](transaction-cost.md) for a failed transaction, the `tec` class of errors exists for good reasons: * Transactions submitted after the failed one do not have to have their Sequence values renumbered. Incorporating the failed transaction into a ledger uses up the transaction's sequence number, preserving the expected sequence. * Distributing the transaction throughout the network increases network load. Enforcing a cost makes it harder for attackers to abuse the network with failed transactions. @@ -40,15 +40,15 @@ A transaction can be authorized by any of the following types of signatures: * A single signature from the master private key that is mathematically associated with the sending address. You can disable or enable the master key pair using an [AccountSet transaction][]. * A single signature that matches the regular private key associated with the address. You can add, remove, or replace a regular key pair using a [SetRegularKey transaction][]. -* A [multi-signature](multi-signing.html) that matches a list of signers owned by the address. You can add, remove, or replace a list of signers using a [SignerListSet transaction][]. +* A [multi-signature](../accounts/multi-signing.md) that matches a list of signers owned by the address. You can add, remove, or replace a list of signers using a [SignerListSet transaction][]. Any signature type can authorize any type of transaction, with the following exceptions: -* Only the master private key can [disable the master public key](accountset.html). -* Only the master private key can [permanently give up the ability to freeze](freezes.html#no-freeze). +* Only the master private key can [disable the master public key](../../references/protocol/transactions/types/accountset.md). +* Only the master private key can [permanently give up the ability to freeze](../tokens/fungible-tokens/freezes.md#no-freeze). * You can never remove the last method of signing transactions from an address. -For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html). +For more information about master and regular key pairs, see [Cryptographic Keys](../accounts/cryptographic-keys.md). @@ -59,12 +59,12 @@ Sending a transaction to the XRP Ledger involves several steps: 1. Create an [unsigned transaction in JSON format](#example-unsigned-transaction). 2. Use one or more signatures to [authorize the transaction](#authorizing-transactions). -3. Submit a transaction to an XRP Ledger server (usually a [`rippled` instance](xrpl-servers.html)). If the transaction is properly formed, the server provisionally applies the transaction to its current version of the ledger and relays the transaction to other members of the peer-to-peer network. -4. The [consensus process](consensus.html) determines which provisional transactions get included in the next validated ledger. +3. Submit a transaction to an XRP Ledger server (usually a [`rippled` instance](../networks-and-servers/index.md)). If the transaction is properly formed, the server provisionally applies the transaction to its current version of the ledger and relays the transaction to other members of the peer-to-peer network. +4. The [consensus process](../consensus-protocol/index.md) determines which provisional transactions get included in the next validated ledger. 5. The servers apply those transactions to the previous ledger in a canonical order and share their results. -6. If enough [trusted validators](rippled-server-modes.html#validators) created the exact same ledger, that ledger is declared _validated_ and the [results of the transactions](transaction-results.html) in that ledger are immutable. +6. If enough [trusted validators](../networks-and-servers/rippled-server-modes.md#validators) created the exact same ledger, that ledger is declared _validated_ and the [results of the transactions](../../references/protocol/transactions/transaction-results/transaction-results.md) in that ledger are immutable. -See [Send XRP](send-xrp.html) for an interactive tutorial in sending XRP payments. +See [Send XRP](../../tutorials/get-started/send-xrp.md) for an interactive tutorial in sending XRP payments. ### Example Unsigned Transaction @@ -87,11 +87,11 @@ Here is an example of an unsigned [Payment transaction][] in JSON: } ``` -The XRP Ledger only relays and executes a transaction if the transaction object has been authorized by the sending address (in the `Account`) field. For instructions on how to do this securely, see [Set Up Secure Signing](secure-signing.html). +The XRP Ledger only relays and executes a transaction if the transaction object has been authorized by the sending address (in the `Account`) field. For instructions on how to do this securely, see [Set Up Secure Signing](secure-signing.md). ## Example Signed Transaction Blob -Signing a transaction results in a chunk of binary data, called a "blob", that can be submitted to the network. Here is an example of the same transaction, as a signed blob, being [submitted with the WebSocket API](submit.html): +Signing a transaction results in a chunk of binary data, called a "blob", that can be submitted to the network. Here is an example of the same transaction, as a signed blob, being [submitted with the WebSocket API](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md): ```json { @@ -103,11 +103,11 @@ Signing a transaction results in a chunk of binary data, called a "blob", that c ## Example Executed Transaction with Metadata -After a transaction has been executed, the XRP Ledger adds [metadata](transaction-metadata.html) to show the transaction's final outcome and all the changes that the transaction made to the shared state of the XRP Ledger. +After a transaction has been executed, the XRP Ledger adds [metadata](../../references/protocol/transactions/metadata.md) to show the transaction's final outcome and all the changes that the transaction made to the shared state of the XRP Ledger. -You can check a transaction's status using the API, for example using the [tx command](tx.html). +You can check a transaction's status using the API, for example using the [tx command](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md). -**Caution:** The results of a transaction, including all its metadata, are not final unless the transaction appears in a **validated** ledger. See also: [Finality of Results](finality-of-results.html). +**Caution:** The results of a transaction, including all its metadata, are not final unless the transaction appears in a **validated** ledger. See also: [Finality of Results](finality-of-results/index.md). Example response from the `tx` command: @@ -203,25 +203,21 @@ Example response from the `tx` command: ## See Also - **Concepts:** - - [Payment Types](payment-types.html) + - [Payment Types](../payment-types/index.md) - **Tutorials:** - - [Set Up Secure Signing](secure-signing.html) - - [Send XRP](send-xrp.html) - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Monitor Incoming Payments with WebSocket](monitor-incoming-payments-with-websocket.html) - - [Cancel or Skip a Transaction](cancel-or-skip-a-transaction.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Set Up Secure Signing](secure-signing.md) + - [Send XRP](../../tutorials/get-started/send-xrp.md) + - [Look Up Transaction Results](finality-of-results/look-up-transaction-results.md) + - [Monitor Incoming Payments with WebSocket](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) + - [Cancel or Skip a Transaction](finality-of-results/canceling-a-transaction.md) + - [Reliable Transaction Submission](reliable-transaction-submission.md) - **References:** - - [Transaction Common Fields](transaction-common-fields.html) - - [Transaction Types](transaction-types.html) - - [Transaction Metadata](transaction-metadata.html) + - [Transaction Common Fields](../../references/protocol/transactions/common-fields.md) + - [Transaction Types](../../references/protocol/transactions/types/index.md) + - [Transaction Metadata](../../references/protocol/transactions/metadata.md) - [account_tx method][] - [tx method][] - [submit method][] - [submit_multisigned method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/reliable-transaction-submission.md b/content/concepts/transactions/reliable-transaction-submission.md index 50adc86acd..0c4deda6c8 100644 --- a/content/concepts/transactions/reliable-transaction-submission.md +++ b/content/concepts/transactions/reliable-transaction-submission.md @@ -25,9 +25,9 @@ These types of errors can potentially lead to serious problems. For example, an ## Background -The XRP Ledger protocol provides a ledger shared across all servers in the network. Through a [process of consensus and validation](consensus.html), the network agrees on the order in which transactions are applied to (or omitted from) the ledger. +The XRP Ledger protocol provides a ledger shared across all servers in the network. Through a [process of consensus and validation](../consensus-protocol/index.md), the network agrees on the order in which transactions are applied to (or omitted from) the ledger. -Well-formed transactions submitted to trusted XRP Ledger servers are usually validated or rejected in a matter of seconds. There are cases, however, in which a well-formed transaction is neither validated nor rejected this quickly. One specific case can occur if the global [transaction cost](transaction-cost.html) increases after an application sends a transaction. If the transaction cost increases above what has been specified in the transaction, the transaction is not included in the next validated ledger. If at some later date the global transaction cost decreases, the transaction could be included in a later ledger. If the transaction does not specify an expiration, there is no limit to how much later this can occur. +Well-formed transactions submitted to trusted XRP Ledger servers are usually validated or rejected in a matter of seconds. There are cases, however, in which a well-formed transaction is neither validated nor rejected this quickly. One specific case can occur if the global [transaction cost](transaction-cost.md) increases after an application sends a transaction. If the transaction cost increases above what has been specified in the transaction, the transaction is not included in the next validated ledger. If at some later date the global transaction cost decreases, the transaction could be included in a later ledger. If the transaction does not specify an expiration, there is no limit to how much later this can occur. If a power or network outage occurs, applications face more challenges finding the status of submitted transactions. Applications must take care both to properly submit a transaction and later to properly get authoritative results. @@ -36,14 +36,14 @@ If a power or network outage occurs, applications face more challenges finding t ### Transaction Timeline -When you submit a transaction to the XRP Ledger, regardless of whether you used [HTTP API](http-websocket-apis.html), a [client library](client-libraries.html), or some other app, process of applying the transaction to the ledger is the same. That process goes like this: +When you submit a transaction to the XRP Ledger, regardless of whether you used [HTTP API](../../references/http-websocket-apis/index.md), a [client library](../../references/client-libraries.md), or some other app, process of applying the transaction to the ledger is the same. That process goes like this: 1. An account owner creates and signs a transaction. 2. The owner submits the transaction to the network as a candidate transaction. - Malformed or nonsensical transactions are rejected immediately. - Well-formed transactions may provisionally succeed, then later fail. - Well-formed transactions may provisionally fail, then later succeed. - - Well-formed transactions may provisionally succeed, and then later succeed in a slightly different way. (For example, the exchange rate when [trading currencies](decentralized-exchange.html) may vary.) + - Well-formed transactions may provisionally succeed, and then later succeed in a slightly different way. (For example, the exchange rate when [trading currencies](../tokens/decentralized-exchange/index.md) may vary.) 3. Through consensus and validation, the transaction is applied to the ledger. Even some failed transactions are applied, to enforce a cost for being propagated through the network. 4. The validated ledger includes the transaction, and its effects are reflected in the ledger state. - Transaction results are no longer provisional, success or failure is now final and immutable. @@ -64,11 +64,11 @@ Each validated ledger has a canonical order in which transactions apply. This or -`LastLedgerSequence` is an optional [parameter of all transactions](transaction-common-fields.html). This instructs the XRP Ledger that a transaction must be validated on or before a specific ledger version. The XRP Ledger never includes a transaction in a ledger version whose ledger index is higher than the transaction's `LastLedgerSequence` parameter. +`LastLedgerSequence` is an optional [parameter of all transactions](../../references/protocol/transactions/common-fields.md). This instructs the XRP Ledger that a transaction must be validated on or before a specific ledger version. The XRP Ledger never includes a transaction in a ledger version whose ledger index is higher than the transaction's `LastLedgerSequence` parameter. Use the `LastLedgerSequence` parameter to prevent undesirable cases where a transaction is not confirmed promptly but could be included in a future ledger. You should specify the `LastLedgerSequence` parameter on every transaction. Automated processes should use a value of 4 greater than the last validated ledger index to make sure that a transaction is validated or rejected in a predictable and prompt way. -Applications using the [HTTP / WebSocket APIs](http-websocket-apis.html) should explicitly specify a `LastLedgerSequence` when submitting transactions. Some [client libraries](client-libraries.html) can also [auto-fill](transaction-common-fields.html#auto-fillable-fields) a reasonable value for `LastLedgerSequence`; the details vary by library. +Applications using the [HTTP / WebSocket APIs](../../references/http-websocket-apis/index.md) should explicitly specify a `LastLedgerSequence` when submitting transactions. Some [client libraries](../../references/client-libraries.md) can also [auto-fill](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) a reasonable value for `LastLedgerSequence`; the details vary by library. @@ -76,7 +76,7 @@ Applications using the [HTTP / WebSocket APIs](http-websocket-apis.html) should The following diagram summarizes the recommended flow for submitting a transaction and determining its outcome: -{{ include_svg("img/reliable-tx-submission.svg", "Reliable transaction submission flowchart") }} +[{% inline-svg file="/img/reliable-tx-submission.svg" /%}](/img/reliable-tx-submission.svg "Reliable transaction submission flowchart") ### Reliable Transactions Submission @@ -151,32 +151,32 @@ For each persisted transaction without validated result: The difference between the two transaction failure cases (labeled (1) and (2) in the pseudo-code) is whether the transaction was included in a validated ledger. In both cases, you should decide carefully how to process the failure. -- In failure case (1), the transaction was included in a ledger and destroyed the [XRP transaction cost](transaction-cost.html), but did nothing else. This could be caused by a lack of liquidity, improperly specified [paths](paths.html), or other circumstances. For many such failures, immediately retrying with a similar transaction is likely to have the same result. You may get different results if you wait for circumstances to change. +- In failure case (1), the transaction was included in a ledger and destroyed the [XRP transaction cost](transaction-cost.md), but did nothing else. This could be caused by a lack of liquidity, improperly specified [paths](../tokens/fungible-tokens/paths.md), or other circumstances. For many such failures, immediately retrying with a similar transaction is likely to have the same result. You may get different results if you wait for circumstances to change. - In failure case (2), the transaction was not included in a validated ledger, so it did nothing at all, not even destroy the transaction cost. This could be the result of the transaction cost being too low for the current load on the XRP Ledger, the `LastLedgerSequence` being too soon, or it could be due to other conditions such as an unstable network connection. - In contrast to failure case (1), it is more likely that a new transaction is likely to succeed if you change only the `LastLedgerSequence` and possibly the `Fee` and submit again. Use the same `Sequence` number as the original transaction. - - It is also possible that the transaction could not succeed due to the state of the ledger, for example because the sending address disabled the key pair used to sign the transaction. If the transaction's provisional result was a [`tef`-class code](tef-codes.html), the transaction is less likely to succeed without further modification. + - It is also possible that the transaction could not succeed due to the state of the ledger, for example because the sending address disabled the key pair used to sign the transaction. If the transaction's provisional result was a [`tef`-class code](../../references/protocol/transactions/transaction-results/tef-codes.md), the transaction is less likely to succeed without further modification. - Failure case (3) represents an unexpected state. When a transaction is not processed, you should check the `Sequence` number of the sending account in the most recent validated ledger. (You can use the [account_info method][] to do so.) If the account's `Sequence` value in the latest validated ledger is higher than the transaction's `Sequence` value, then a different transaction with the same `Sequence` value has been included in a validated ledger. If your system is not aware of the other transaction, you are in an unexpected state and should stop processing until you have determined why that has happened; otherwise, your system might send multiple transactions trying to do the same thing. The steps you should take depend on specifically what caused it. Some possibilities include: - - The previously-sent transaction was [malleable](transaction-malleability.html) and it actually was included in a validated ledger, but with a different hash than you expected. This can happen if you specify a set of flags that do not include the `tfFullyCanonicalSig` flag or if the transaction is multi-signed by more signers than necessary. If this is the case, save the different hash and the final outcome of the transaction, then resume normal activities. + - The previously-sent transaction was [malleable](finality-of-results/transaction-malleability.md) and it actually was included in a validated ledger, but with a different hash than you expected. This can happen if you specify a set of flags that do not include the `tfFullyCanonicalSig` flag or if the transaction is multi-signed by more signers than necessary. If this is the case, save the different hash and the final outcome of the transaction, then resume normal activities. - - You [canceled](cancel-or-skip-a-transaction.html) and replaced the transaction, and the replacement transaction was processed instead. If you are recovering from an outage, it's possible you may have lost record of the replacement transaction. If this is the case, the transaction you were originally looking up has failed permanently, and the final outcome of the replacement transaction is recorded in a validated ledger version. Save both final outcomes, check for any other missing or replaced transactions, then resume normal activities. + - You [canceled](finality-of-results/canceling-a-transaction.md) and replaced the transaction, and the replacement transaction was processed instead. If you are recovering from an outage, it's possible you may have lost record of the replacement transaction. If this is the case, the transaction you were originally looking up has failed permanently, and the final outcome of the replacement transaction is recorded in a validated ledger version. Save both final outcomes, check for any other missing or replaced transactions, then resume normal activities. - If you have two or more transaction-sending systems in an active/passive failover configuration, it's possible that the passive system mistakenly believes the active system has failed, and has become active while the original active system is still also sending transactions. Check the connectivity between the systems and ensure that at most one of them is active. Check your account's transaction history (for example, with the [account_tx method][]) and record the final outcome of all transactions that were included in validated ledgers. Any different transactions with the same `Sequence` numbers have failed permanently; save those final outcomes as well. When you have finished reconciling the differences from all the systems and have resolved the issues that made the systems activate simultaneously, resume normal activities. - **Tip:** The [`AccountTxnID` field](transaction-common-fields.html#accounttxnid) can help prevent redundant transactions from succeeding in this situation. + **Tip:** The [`AccountTxnID` field](../../references/protocol/transactions/common-fields.md#accounttxnid) can help prevent redundant transactions from succeeding in this situation. - - A malicious actor may have used your secret key to send a transaction. If this is the case, [rotate your key pair](change-or-remove-a-regular-key-pair.html) if you can, and check for other transactions sent. You should also audit your network to determine if the secret key was part of a larger intrusion or security leak. When you successfully rotate your key pair and are certain that the malicious actor no longer has access to your accounts and systems, you can resume normal activities. + - A malicious actor may have used your secret key to send a transaction. If this is the case, [rotate your key pair](../../tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md) if you can, and check for other transactions sent. You should also audit your network to determine if the secret key was part of a larger intrusion or security leak. When you successfully rotate your key pair and are certain that the malicious actor no longer has access to your accounts and systems, you can resume normal activities. #### Ledger Gaps If your server does not have continuous ledger history from when the transaction was originally submitted up to and including the ledger identified by `LastLedgerSequence`, you may not know the final outcome of the transaction. (If it was included in one of the ledger versions your server is missing, you do not know whether it succeeded or failed.) -Your `rippled` server should automatically acquire the missing ledger versions when it has spare resources (CPU/RAM/disk IO) to do so, unless the ledgers are older than its [configured amount of history to store](ledger-history.html). Depending on the size of the gap and the resource usage of your server, acquiring missing ledgers should take a few minutes. You can request your server to acquire historical ledger versions using the [ledger_request method][], but even so you may not be able to look up transaction outcomes from ledger versions that are outside of your server's configured history range. +Your `rippled` server should automatically acquire the missing ledger versions when it has spare resources (CPU/RAM/disk IO) to do so, unless the ledgers are older than its [configured amount of history to store](../networks-and-servers/ledger-history.md). Depending on the size of the gap and the resource usage of your server, acquiring missing ledgers should take a few minutes. You can request your server to acquire historical ledger versions using the [ledger_request method][], but even so you may not be able to look up transaction outcomes from ledger versions that are outside of your server's configured history range. Alternatively, you can look up the status of the transaction using a different `rippled` server that already has the needed ledger history, such as Ripple's full-history servers at `s2.ripple.com`. Only use a server you trust for this purpose. A malicious server could be programmed to provide false information about the status and outcome of a transaction. @@ -186,7 +186,7 @@ Alternatively, you can look up the status of the transaction using a different ` To implement the transaction submission and verification best practices, applications need to do the following: 1. Determine the signing account's next sequence number - * Each transaction has an account-specific [sequence number](basic-data-types.html#account-sequence). This guarantees the order in which transactions signed by an account are executed and makes it safe to resubmit a transaction without danger of the transaction being applied to the ledger more than once. + * Each transaction has an account-specific [sequence number](../../references/protocol/data-types/basic-data-types.md#account-sequence). This guarantees the order in which transactions signed by an account are executed and makes it safe to resubmit a transaction without danger of the transaction being applied to the ledger more than once. 3. Decide on a `LastLedgerSequence` * A transaction's `LastLedgerSequence` is calculated from the last validated ledger index. 3. Construct and sign the transaction @@ -198,8 +198,8 @@ To implement the transaction submission and verification best practices, applica How the application does these actions depends on the API the application uses. An application may use any of the following interfaces: -- The [HTTP / WebSocket APIs](http-websocket-apis.html) provided directly by XRP Ledger servers -- A [client library](client-libraries.html) +- The [HTTP / WebSocket APIs](../../references/http-websocket-apis/index.md) provided directly by XRP Ledger servers +- A [client library](../../references/client-libraries.md) - Other middleware or APIs layered on top of the above APIs @@ -541,13 +541,10 @@ Finally the server may show one or more gaps in the transaction history. The `co ## See Also -- [Transaction Formats](transaction-formats.html) -- [Transaction Cost](transaction-cost.html) -- [Transaction Malleability](transaction-malleability.html) -- [Overview of XRP Ledger Consensus Process](consensus.html) -- [Consensus Principles and Rules](consensus-principles-and-rules.html) +- [Transaction Formats](../../references/protocol/transactions/index.md) +- [Transaction Cost](transaction-cost.md) +- [Transaction Malleability](finality-of-results/transaction-malleability.md) +- [Overview of XRP Ledger Consensus Process](../consensus-protocol/index.md) +- [Consensus Principles and Rules](../consensus-protocol/consensus-principles-and-rules.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/secure-signing.md b/content/concepts/transactions/secure-signing.md index e695b3998b..ac5dad441c 100644 --- a/content/concepts/transactions/secure-signing.md +++ b/content/concepts/transactions/secure-signing.md @@ -8,7 +8,7 @@ labels: --- # Secure Signing -To submit [transactions](transactions.html) to the XRP Ledger, you need a way to digitally sign them without compromising the security of your [secret keys](cryptographic-keys.html). (If others gain access to your secret keys, they have as much control over your accounts as you do, and can steal or destroy all your money.) This page summarizes how to set up such an environment so you can sign transactions securely. +To submit [transactions](index.md) to the XRP Ledger, you need a way to digitally sign them without compromising the security of your [secret keys](../accounts/cryptographic-keys.md). (If others gain access to your secret keys, they have as much control over your accounts as you do, and can steal or destroy all your money.) This page summarizes how to set up such an environment so you can sign transactions securely. **Tip:** If you are not submitting transactions to the network, you can safely use a trustworthy public server, such as the ones run by Ripple, to monitor for incoming transactions or read other network activity. All transactions, balances, and data in the XRP Ledger are public. @@ -23,7 +23,7 @@ There are several configurations with varying levels of security that may be acc ## Insecure Configurations -{{ include_svg("img/insecure-signing-options.svg", "Diagram of insecure configurations") }} +[{% inline-svg file="/img/insecure-signing-options.svg" /%}](/img/insecure-signing-options.svg "Diagram of insecure configurations") Any configuration in which outside sources may gain access to your secret key is dangerous, and is likely to result in a malicious user stealing all your XRP (and anything else your XRP Ledger address has). Examples of such configurations include ones where you use the [sign method][] of someone else's `rippled` server over the internet, or you send your secret key in plain text over the internet to your own server. @@ -34,19 +34,19 @@ You should maintain the secrecy of your secret keys at all times, which includes ## Run rippled Locally -{{ include_svg("img/secure-signing-local-rippled.svg", "Diagram of using a local rippled server for signing") }} +[{% inline-svg file="/img/secure-signing-local-rippled.svg" /%}](/img/secure-signing-local-rippled.svg "Diagram of using a local rippled server for signing") In this configuration, you run `rippled` on the machine that generates the transactions. Since the secret key never leaves your machine, no one without access to your machine can get access to the secret key. You should, of course, follow industry-standard practices for securing your machine. To use this configuration: -1. [Install `rippled`](install-rippled.html). +1. [Install `rippled`](../../infrastructure/installation/index.md). - Be sure that your local machine meets the minimum [system requirements for `rippled`](system-requirements.html). + Be sure that your local machine meets the minimum [system requirements for `rippled`](../../infrastructure/installation/system-requirements.md). 2. When you need to sign transactions, connect to your server on `localhost` or `127.0.0.1`. Use the [sign method][] (for single signatures) or [sign_for method][] (for multi-signatures). The [example config file](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073) listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin. - **Caution:** Using the [commandline API](request-formatting.html#commandline-format) for signatures is less secure than [using the Websocket or JSON-RPC APIs](get-started-using-http-websocket-apis.html) through non-commandline clients. When using the commandline syntax, your secret key may be visible to other users in the system's process listing, and your shell history may save the key in plain text. + **Caution:** Using the [commandline API](../../references/http-websocket-apis/api-conventions/request-formatting.md#commandline-format) for signatures is less secure than [using the Websocket or JSON-RPC APIs](../../tutorials/get-started/get-started-using-http-websocket-apis.md) through non-commandline clients. When using the commandline syntax, your secret key may be visible to other users in the system's process listing, and your shell history may save the key in plain text. 3. Maintain the server to keep it running, updated, and in sync with the network while you're using it. @@ -55,7 +55,7 @@ In this configuration, you run `rippled` on the machine that generates the trans ## Run rippled on the same LAN -{{ include_svg("img/secure-signing-lan-rippled.svg", "Diagram of using a rippled server over LAN for signing") }} +[{% inline-svg file="/img/secure-signing-lan-rippled.svg" /%}](/img/secure-signing-lan-rippled.svg "Diagram of using a rippled server over LAN for signing") In this configuration, you run a `rippled` server on a dedicated machine in the same private local area network (LAN) as the machine that generates the transactions to be signed. This configuration lets you assemble transaction instructions on one or more machines with very modest system specs, while using a single dedicated machine for running `rippled`. This may appeal to you if you run your own datacenter or server room. @@ -68,9 +68,9 @@ As always, follow industry-standard practices for securing your machines, such a ## Use a Client Library with Local Signing -{{ include_svg("img/secure-signing-client-library.svg", "Diagram of using a client library with local signing") }} +[{% inline-svg file="/img/secure-signing-client-library.svg" /%}](/img/secure-signing-client-library.svg "Diagram of using a client library with local signing") -This configuration uses a client library with built-in signing, in the programming language you use. For a list of libraries that can perform local signing, see [Client Libraries](client-libraries.html). +This configuration uses a client library with built-in signing, in the programming language you use. For a list of libraries that can perform local signing, see [Client Libraries](../../references/client-libraries.md). ### Security Best Practices for Signing Libraries @@ -97,31 +97,26 @@ Here are examples of how to sign transaction instructions locally using the foll * **Java** - [`xrpl4j`](https://github.com/XRPLF/xrpl4j) - +{% tabs %} -*JavaScript* +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/secure-signing/js/signPayment.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/secure-signing/js/signPayment.js' %} -``` +{% tab label="Python" %} +{% code-snippet file="/_code-samples/secure-signing/py/sign-payment.py" language="py" /%} +{% /tab %} -*Python* +{% tab label="Java" %} +{% code-snippet file="/_code-samples/secure-signing/java/SignPayment.java" language="java" /%} +{% /tab %} -```py -{% include '_code-samples/secure-signing/py/sign-payment.py' %} -``` - -*Java* - -```java -{% include '_code-samples/secure-signing/java/SignPayment.java' %} -``` - +{% /tabs %} ## Use a Dedicated Signing Device -{{ include_svg("img/secure-signing-dedicated-hardware.svg", "Diagram of using dedicated signing hardware") }} +[{% inline-svg file="/img/secure-signing-dedicated-hardware.svg" /%}](/img/secure-signing-dedicated-hardware.svg "Diagram of using dedicated signing hardware") Some companies sell dedicated signing devices, such as the [Ledger Nano S](https://www.ledger.com/products/ledger-nano-s), which are capable of signing XRP Ledger transactions using a secret key that never leaves the device. Some devices may not support all types of transactions. @@ -130,7 +125,7 @@ Setting up this configuration depends on the specific device. You may need to ru ## Use a Secure VPN with a Remote rippled Server -{{ include_svg("img/secure-signing-over-vpn.svg", "Diagram of connecting securely to a remote rippled over VPN") }} +[{% inline-svg file="/img/secure-signing-over-vpn.svg" /%}](/img/secure-signing-over-vpn.svg "Diagram of connecting securely to a remote rippled over VPN") This configuration uses a `rippled` server hosted remotely, such as in a colocation facility or a distant datacenter, but connects to it securely using an encrypted VPN. @@ -140,13 +135,13 @@ To use this configuration, follow the steps for [running `rippled` on a private ## See Also - **Concepts:** - - [Cryptographic Keys](cryptographic-keys.html) - - [Multi-Signing](multi-signing.html) + - [Cryptographic Keys](../accounts/cryptographic-keys.md) + - [Multi-Signing](../accounts/multi-signing.md) - **Tutorials:** - - [Install rippled](install-rippled.html) - - [Assign a Regular Key Pair](assign-a-regular-key-pair.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Enable Public Signing](enable-public-signing.html) + - [Install rippled](../../infrastructure/installation/index.md) + - [Assign a Regular Key Pair](../../tutorials/manage-account-settings/assign-a-regular-key-pair.md) + - [Reliable Transaction Submission](reliable-transaction-submission.md) + - [Enable Public Signing](../../infrastructure/configuration/enable-public-signing.md) - **References:** - [sign method][] - [submit method][] @@ -154,10 +149,4 @@ To use this configuration, follow the steps for [running `rippled` on a private - [`xrpl-py` Reference](https://xrpl-py.readthedocs.io/en/latest/index.html) - [`xrpl4j` Reference](https://javadoc.io/doc/org.xrpl/) - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/source-and-destination-tags.md b/content/concepts/transactions/source-and-destination-tags.md index 14f606ea06..48a50ebd8c 100644 --- a/content/concepts/transactions/source-and-destination-tags.md +++ b/content/concepts/transactions/source-and-destination-tags.md @@ -9,9 +9,9 @@ labels: --- # Source and Destination Tags -_Source tags_ and _destination tags_ are a feature of XRP Ledger [payments](payment-types.html) that can indicate specific purposes for payments from and to multi-purpose addresses. Source and destination tags do not have direct on-ledger functionality; source and destination tags merely provide information about how off-ledger systems should process a payment. In transactions, both source and destination tags are formatted as 32-bit unsigned integers. +_Source tags_ and _destination tags_ are a feature of XRP Ledger [payments](../payment-types/index.md) that can indicate specific purposes for payments from and to multi-purpose addresses. Source and destination tags do not have direct on-ledger functionality; source and destination tags merely provide information about how off-ledger systems should process a payment. In transactions, both source and destination tags are formatted as 32-bit unsigned integers. -Destination tags indicate the beneficiary or destination for a payment. For example, a payment to an [exchange](list-xrp-as-an-exchange.html) or [stablecoin issuer](stablecoin-issuer.html) address can use a destination tag to indicate which customer to credit for the amount of the payment in that business's own systems. A payment to a merchant could indicate what item or cart the payment is buying. +Destination tags indicate the beneficiary or destination for a payment. For example, a payment to an [exchange](../../use-cases/defi/list-xrp-as-an-exchange.md) or [stablecoin issuer](../../use-cases/tokenization/stablecoin-issuer.md) address can use a destination tag to indicate which customer to credit for the amount of the payment in that business's own systems. A payment to a merchant could indicate what item or cart the payment is buying. Source tags indicate the originator or source of a payment. Most commonly, a Source Tag is included so that the recipient of the payment knows where to send a return, or "bounced", payment. When returning an incoming payment, you should use the source tag from the incoming payment as the destination tag of the outgoing (return) payment. @@ -21,7 +21,7 @@ The practice of giving customers the ability to send and receive transactions fr ## Rationale -In other distributed ledgers, it is common to use different deposit addresses for each customer. In the XRP Ledger, an address must be a funded, permanent [account](accounts.html) to receive payments. Using this approach in the XRP Ledger wastefully consumes resources of all servers in the network, and is costly because the [reserve](reserves.html) amount must be set aside indefinitely for each address. +In other distributed ledgers, it is common to use different deposit addresses for each customer. In the XRP Ledger, an address must be a funded, permanent [account](../accounts/accounts.md) to receive payments. Using this approach in the XRP Ledger wastefully consumes resources of all servers in the network, and is costly because the [reserve](../accounts/reserves.md) amount must be set aside indefinitely for each address. Source and destination tags provide a more lightweight way to map deposits and payments to individual customers. @@ -41,16 +41,12 @@ Assigning tags in numerical order provides less privacy to customers. Since all ## Requiring Tags -For an XRP Ledger address that may receive payments intended for several customer accounts, receiving a payment _without_ a destination tag can be a problem: it is not immediately obvious which customer to credit, which can require a manual intervention and a discussion with the sender to figure out who was the intended recipient. To reduce cases like this, you can [enable the `RequireDest` setting](require-destination-tags.html). That way, if a user forgets to include a destination tag in a payment, the XRP Ledger rejects their payment instead of giving you money you don't know what to do with. The user can then send the payment again, using the tag as they should have. +For an XRP Ledger address that may receive payments intended for several customer accounts, receiving a payment _without_ a destination tag can be a problem: it is not immediately obvious which customer to credit, which can require a manual intervention and a discussion with the sender to figure out who was the intended recipient. To reduce cases like this, you can [enable the `RequireDest` setting](../../tutorials/manage-account-settings/require-destination-tags.md). That way, if a user forgets to include a destination tag in a payment, the XRP Ledger rejects their payment instead of giving you money you don't know what to do with. The user can then send the payment again, using the tag as they should have. ## See Also -- [Require Destination Tags](require-destination-tags.html) -- [Payment Types](payment-types.html) +- [Require Destination Tags](../../tutorials/manage-account-settings/require-destination-tags.md) +- [Payment Types](../payment-types/index.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/transaction-cost.md b/content/concepts/transactions/transaction-cost.md index d8da8161f4..1e340ce42d 100644 --- a/content/concepts/transactions/transaction-cost.md +++ b/content/concepts/transactions/transaction-cost.md @@ -8,7 +8,7 @@ labels: --- # Transaction Cost -To protect the XRP Ledger from being disrupted by spam and denial-of-service attacks, each transaction must destroy a small amount of [XRP](what-is-xrp.html). This _transaction cost_ is designed to increase along with the load on the network, making it very expensive to deliberately or inadvertently overload the network. +To protect the XRP Ledger from being disrupted by spam and denial-of-service attacks, each transaction must destroy a small amount of [XRP](../../introduction/what-is-xrp.md). This _transaction cost_ is designed to increase along with the load on the network, making it very expensive to deliberately or inadvertently overload the network. Every transaction must [specify how much XRP to destroy](#specifying-the-transaction-cost) to pay the transaction cost. @@ -27,9 +27,9 @@ Some transactions have different transaction costs: |-----------------------|--------------------------| | [Reference Transaction](#reference-transaction-cost) (Most transactions) | 10 drops | | [Key Reset Transaction](#key-reset-transaction) | 0 | -| [Multi-signed Transaction](multi-signing.html) | 10 drops × (1 + Number of Signatures Provided) | -| [EscrowFinish Transaction with Fulfillment](escrowfinish.html) | 10 drops × (33 + (Fulfillment size in bytes ÷ 16)) | -| [AccountDelete Transaction](deleting-accounts.html) | 2,000,000 drops | +| [Multi-signed Transaction](../accounts/multi-signing.md) | 10 drops × (1 + Number of Signatures Provided) | +| [EscrowFinish Transaction with Fulfillment](../../references/protocol/transactions/types/escrowfinish.md) | 10 drops × (33 + (Fulfillment size in bytes ÷ 16)) | +| [AccountDelete Transaction](../accounts/deleting-accounts.md) | 2,000,000 drops | ## Beneficiaries of the Transaction Cost @@ -52,7 +52,7 @@ This divides transactions into roughly three categories: ## Local Load Cost -Each `rippled` server maintains a cost threshold based on its current load. If you submit a transaction with a `Fee` value that is lower than current load-based transaction cost of the `rippled` server, that server neither applies nor relays the transaction. (**Note:** If you submit a transaction through an [admin connection](get-started-using-http-websocket-apis.html), the server applies and relays the transaction as long as the transaction meets the un-scaled minimum transaction cost.) A transaction is very unlikely to survive [the consensus process](consensus.html) unless its `Fee` value meets the requirements of a majority of servers. +Each `rippled` server maintains a cost threshold based on its current load. If you submit a transaction with a `Fee` value that is lower than current load-based transaction cost of the `rippled` server, that server neither applies nor relays the transaction. (**Note:** If you submit a transaction through an [admin connection](../../tutorials/get-started/get-started-using-http-websocket-apis.md), the server applies and relays the transaction as long as the transaction meets the un-scaled minimum transaction cost.) A transaction is very unlikely to survive [the consensus process](../consensus-protocol/index.md) unless its `Fee` value meets the requirements of a majority of servers. ## Open Ledger Cost @@ -60,7 +60,7 @@ The `rippled` server has a second mechanism for enforcing the transaction cost, For each new ledger version, the server picks a soft limit on the number of transactions to be included in the open ledger, based on the number of transactions in the previous ledger. The open ledger cost is equal to the minimum un-scaled transaction cost until the number of transactions in the open ledger is equal to the soft limit. After that, the open ledger cost increases exponentially for each transaction included in the open ledger. For the next ledger, the server increases the soft limit if the current ledger contained more transactions than the soft limit, and decreases the soft limit if the consensus process takes more than 5 seconds. -The open ledger cost requirement is [proportional to the normal cost of the transaction](#fee-levels), not the absolute transaction cost. Transaction types that have a higher-than-normal requirement, such as [multi-signed transactions](multi-signing.html) must pay more to meet the open ledger cost than transactions which have minimum transaction cost requirements. +The open ledger cost requirement is [proportional to the normal cost of the transaction](#fee-levels), not the absolute transaction cost. Transaction types that have a higher-than-normal requirement, such as [multi-signed transactions](../accounts/multi-signing.md) must pay more to meet the open ledger cost than transactions which have minimum transaction cost requirements. See also: [Fee Escalation explanation in `rippled` repository](https://github.com/XRPLF/rippled/blob/release/src/ripple/app/misc/FeeEscalation.md). @@ -68,11 +68,11 @@ See also: [Fee Escalation explanation in `rippled` repository](https://github.co When `rippled` receives a transaction that meets the server's local load cost but not the [open ledger cost](#open-ledger-cost), the server estimates whether the transaction is "likely to be included" in a later ledger. If so, the server adds the transaction to the transaction queue and relays the transaction to other members of the network. Otherwise, the server discards the transaction. The server tries to minimize the amount of network load caused by transactions that would not pay a transaction cost, since [the transaction cost only applies when a transaction is included in a validated ledger](#transaction-costs-and-failed-transactions). -For more information on queued transactions, see [Transaction Queue](transaction-queue.html). +For more information on queued transactions, see [Transaction Queue](transaction-queue.md). ## Reference Transaction Cost -The "Reference Transaction" is the cheapest (non-free) transaction, in terms of the necessary [transaction cost](transaction-cost.html) before load scaling. Most transactions have the same cost as the reference transaction. Some transactions, such as [multi-signed transactions](multi-signing.html), require a multiple of this cost instead. When the open ledger cost escalates, the requirement is proportional to the basic cost of the transaction. +The "Reference Transaction" is the cheapest (non-free) transaction, in terms of the necessary [transaction cost](transaction-cost.md) before load scaling. Most transactions have the same cost as the reference transaction. Some transactions, such as [multi-signed transactions](../accounts/multi-signing.md), require a multiple of this cost instead. When the open ledger cost escalates, the requirement is proportional to the basic cost of the transaction. ### Fee Levels @@ -81,9 +81,9 @@ _Fee levels_ represent the proportional difference between the minimum cost and | Transaction | Minimum cost in drops | Minimum cost in Fee levels | Double cost in drops | Double cost in fee levels | |-------------|-----------------------|----------------------------|----------------------|---------------------------| | Reference transaction (most transactions) | 10 | 256 | 20 | 512 | -| [Multi-signed transaction](multi-signing.html) with 4 signatures | 50 | 256 | 100 | 512 | -| [Key reset transaction](transaction-cost.html#key-reset-transaction) | 0 | (Effectively infinite) | N/A | (Effectively infinite) | -| [EscrowFinish transaction](escrowfinish.html) with 32-byte preimage. | 350 | 256 | 700 | 512 | +| [Multi-signed transaction](../accounts/multi-signing.md) with 4 signatures | 50 | 256 | 100 | 512 | +| [Key reset transaction](transaction-cost.md#key-reset-transaction) | 0 | (Effectively infinite) | N/A | (Effectively infinite) | +| [EscrowFinish transaction](../../references/protocol/transactions/types/escrowfinish.md) with 32-byte preimage. | 350 | 256 | 700 | 512 | ## Querying the Transaction Cost @@ -101,7 +101,7 @@ The [server_info method][] reports the unscaled minimum XRP cost, as of the prev ### server_state -The [server_state method][] returns a direct representation of `rippled`'s internal load calculations. In this case, the effective load rate is the ratio of the current `load_factor` to the `load_base`. The `validated_ledger.base_fee` parameter reports the minimum transaction cost in [drops of XRP](basic-data-types.html#specifying-currency-amounts). This design enables `rippled` to calculate the transaction cost using only integer math, while still allowing a reasonable amount of fine-tuning for server load. The actual calculation of the transaction cost is as follows: +The [server_state method][] returns a direct representation of `rippled`'s internal load calculations. In this case, the effective load rate is the ratio of the current `load_factor` to the `load_base`. The `validated_ledger.base_fee` parameter reports the minimum transaction cost in [drops of XRP](../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts). This design enables `rippled` to calculate the transaction cost using only integer math, while still allowing a reasonable amount of fine-tuning for server load. The actual calculation of the transaction cost is as follows: **Current Transaction Cost in Drops = (`base_fee` × `load_factor`) ÷ `load_base`** @@ -109,71 +109,68 @@ The [server_state method][] returns a direct representation of `rippled`'s inter ## Specifying the Transaction Cost -Every signed transaction must include the transaction cost in the [`Fee` field](transaction-common-fields.html). Like all fields of a signed transaction, this field cannot be changed without invalidating the signature. +Every signed transaction must include the transaction cost in the [`Fee` field](../../references/protocol/transactions/common-fields.md). Like all fields of a signed transaction, this field cannot be changed without invalidating the signature. -As a rule, the XRP Ledger executes transactions _exactly_ as they are signed. (To do anything else would be difficult to coordinate across a decentralized consensus network, at the least.) As a consequence of this, every transaction destroys the exact amount of XRP specified by the `Fee` field, even if the specified amount is much more than the current minimum transaction cost for any part of the network. The transaction cost can even destroy XRP that would otherwise be set aside for an account's [reserve requirement](reserves.html). +As a rule, the XRP Ledger executes transactions _exactly_ as they are signed. (To do anything else would be difficult to coordinate across a decentralized consensus network, at the least.) As a consequence of this, every transaction destroys the exact amount of XRP specified by the `Fee` field, even if the specified amount is much more than the current minimum transaction cost for any part of the network. The transaction cost can even destroy XRP that would otherwise be set aside for an account's [reserve requirement](../accounts/reserves.md). Before signing a transaction, we recommend [looking up the current load-based transaction cost](#querying-the-transaction-cost). If the transaction cost is high due to load scaling, you may want to wait for it to decrease. If you do not plan on submitting the transaction immediately, we recommend specifying a slightly higher transaction cost to account for future load-based fluctuations in the transaction cost. ### Automatically Specifying the Transaction Cost -The `Fee` field is one of the things that can be [auto-filled](transaction-common-fields.html#auto-fillable-fields) when creating a transaction. In this case, the auto-filling software provides a suitable `Fee` value based on the current load in the peer-to-peer network. However, there are several drawbacks and limitations to automatically filling in the transaction cost in this manner: +The `Fee` field is one of the things that can be [auto-filled](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when creating a transaction. In this case, the auto-filling software provides a suitable `Fee` value based on the current load in the peer-to-peer network. However, there are several drawbacks and limitations to automatically filling in the transaction cost in this manner: - If the network's transaction cost goes up between auto-filling and submitting the transaction, the transaction may not be confirmed. - - To prevent a transaction from getting stuck in a state of being neither definitively confirmed or rejected, be sure to provide a `LastLedgerSequence` parameter so it eventually expires. Alternatively, you can try to [cancel a stuck transaction](canceling-a-transaction.html) by reusing the same `Sequence` number. See [reliable transaction submission](reliable-transaction-submission.html) for best practices. + - To prevent a transaction from getting stuck in a state of being neither definitively confirmed or rejected, be sure to provide a `LastLedgerSequence` parameter so it eventually expires. Alternatively, you can try to [cancel a stuck transaction](finality-of-results/canceling-a-transaction.md) by reusing the same `Sequence` number. See [reliable transaction submission](reliable-transaction-submission.md) for best practices. - You have to be careful that the automatically provided value isn't too high. You don't want to burn a large fee to send a small transaction. - If you are using `rippled`, you can also use the `fee_mult_max` and `fee_div_max` parameters of the [sign method][] to set a limit to the load scaling you are willing to sign. - Some client libraries (like [xrpl.js](https://js.xrpl.org/) and [xrpl-py](https://xrpl-py.readthedocs.io/)) have configurable maximum `Fee` values, and raise an error instead of signing a transaction whose `Fee` value is higher than the maximum. -- You cannot auto-fill from an offline machine nor when [multi-signing](multi-signing.html). +- You cannot auto-fill from an offline machine nor when [multi-signing](../accounts/multi-signing.md). ## Transaction Costs and Failed Transactions -Since the purpose of the transaction cost is to protect the XRP Ledger peer-to-peer network from excessive load, it should apply to any transaction that gets distributed to the network, regardless of whether or not that transaction succeeds. However, to affect the shared global ledger, a transaction must be included in a validated ledger. Thus, `rippled` servers try to include failed transactions in ledgers, with [`tec` status codes](transaction-results.html) ("tec" stands for "Transaction Engine - Claimed fee only"). +Since the purpose of the transaction cost is to protect the XRP Ledger peer-to-peer network from excessive load, it should apply to any transaction that gets distributed to the network, regardless of whether or not that transaction succeeds. However, to affect the shared global ledger, a transaction must be included in a validated ledger. Thus, `rippled` servers try to include failed transactions in ledgers, with [`tec` status codes](../../references/protocol/transactions/transaction-results/transaction-results.md) ("tec" stands for "Transaction Engine - Claimed fee only"). The transaction cost is only debited from the sender's XRP balance when the transaction actually becomes included in a validated ledger. This is true whether the transaction is considered successful or fails with a `tec` code. -If a transaction's failure is [final](finality-of-results.html), the `rippled` server does not relay it to the network. The transaction does not get included in a validated ledger, so it cannot have any effect on anyone's XRP balance. +If a transaction's failure is [final](finality-of-results/index.md), the `rippled` server does not relay it to the network. The transaction does not get included in a validated ledger, so it cannot have any effect on anyone's XRP balance. ### Insufficient XRP -When a `rippled` server initially evaluates a transaction, it rejects the transaction with the error code `terINSUF_FEE_B` if the sending account does not have a high enough XRP balance to pay the XRP transaction cost. Since this is a `ter` (Retry) code, the `rippled` server retries the transaction without relaying it to the network, until the transaction's outcome is [final](finality-of-results.html). +When a `rippled` server initially evaluates a transaction, it rejects the transaction with the error code `terINSUF_FEE_B` if the sending account does not have a high enough XRP balance to pay the XRP transaction cost. Since this is a `ter` (Retry) code, the `rippled` server retries the transaction without relaying it to the network, until the transaction's outcome is [final](finality-of-results/index.md). When a transaction has already been distributed to the network, but the account does not have enough XRP to pay the transaction cost, the result code `tecINSUFF_FEE` occurs instead. In this case, the account pays all the XRP it can, ending with 0 XRP. This can occur because `rippled` decides whether to relay the transaction to the network based on its in-progress ledger, but transactions may be dropped or reordered when building the consensus ledger. ## Key Reset Transaction -As a special case, an account can send a [SetRegularKey](setregularkey.html) transaction with a transaction cost of `0`, as long as the account's [`lsfPasswordSpent` flag](accountroot.html) is disabled. This transaction must be signed by the account's _master key pair_. Sending this transaction enables the `lsfPasswordSpent` flag. +As a special case, an account can send a [SetRegularKey](../../references/protocol/transactions/types/setregularkey.md) transaction with a transaction cost of `0`, as long as the account's [`lsfPasswordSpent` flag](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) is disabled. This transaction must be signed by the account's _master key pair_. Sending this transaction enables the `lsfPasswordSpent` flag. This feature is designed to allow you to recover an account if the regular key is compromised, without worrying about whether the compromised account has any XRP available. This way, you can regain control of the account before you send more XRP to it. -The [`lsfPasswordSpent` flag](accountroot.html) starts out disabled. It gets enabled when you send a SetRegularKey transaction signed by the master key pair. It gets disabled again when the account receives a [Payment](payment.html) of XRP. +The [`lsfPasswordSpent` flag](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) starts out disabled. It gets enabled when you send a SetRegularKey transaction signed by the master key pair. It gets disabled again when the account receives a [Payment](../../references/protocol/transactions/types/payment.md) of XRP. `rippled` prioritizes key reset transactions above other transactions even though the nominal transaction cost of a key reset transaction is zero. ## Changing the Transaction Cost -The XRP Ledger has a mechanism for changing the minimum transaction cost to account for long-term changes in the value of XRP. Any changes have to be approved by the consensus process. See [Fee Voting](fee-voting.html) for more information. +The XRP Ledger has a mechanism for changing the minimum transaction cost to account for long-term changes in the value of XRP. Any changes have to be approved by the consensus process. See [Fee Voting](../consensus-protocol/fee-voting.md) for more information. ## See Also - **Concepts:** - - [Reserves](reserves.html) - - [Fee Voting](fee-voting.html) - - [Transaction Queue](transaction-queue.html) + - [Reserves](../accounts/reserves.md) + - [Fee Voting](../consensus-protocol/fee-voting.md) + - [Transaction Queue](transaction-queue.md) - **Tutorials:** - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Reliable Transaction Submission](reliable-transaction-submission.md) - **References:** - [fee method][] - [server_info method][] - - [FeeSettings object](feesettings.html) + - [FeeSettings object](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) - [SetFee pseudo-transaction][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/transactions/transaction-queue.md b/content/concepts/transactions/transaction-queue.md index 151b15109e..f6948070fc 100644 --- a/content/concepts/transactions/transaction-queue.md +++ b/content/concepts/transactions/transaction-queue.md @@ -7,13 +7,13 @@ labels: --- # Transaction Queue -The `rippled` server uses a transaction queue to help enforce the [open ledger cost](transaction-cost.html#open-ledger-cost). The open ledger cost sets a target number of transactions in a given ledger, and escalates the required transaction cost very quickly when the open ledger surpasses this size. Rather than discarding transactions that cannot pay the escalated transaction cost, `rippled` tries to put them in a transaction queue, which it uses to build the next ledger. +The `rippled` server uses a transaction queue to help enforce the [open ledger cost](transaction-cost.md#open-ledger-cost). The open ledger cost sets a target number of transactions in a given ledger, and escalates the required transaction cost very quickly when the open ledger surpasses this size. Rather than discarding transactions that cannot pay the escalated transaction cost, `rippled` tries to put them in a transaction queue, which it uses to build the next ledger. ## Transaction Queue and Consensus -The transaction queue plays an important role in selecting the transactions that are included or excluded from a given ledger version in the consensus process. The following steps describe how the transaction queue relates to the [consensus process](consensus.html). +The transaction queue plays an important role in selecting the transactions that are included or excluded from a given ledger version in the consensus process. The following steps describe how the transaction queue relates to the [consensus process](../consensus-protocol/index.md). -{{ include_svg("img/consensus-with-queue.svg", "Transaction queue and consensus diagram") }} +[{% inline-svg file="/img/consensus-with-queue.svg" /%}](/img/consensus-with-queue.svg "Transaction queue and consensus diagram") 1. **Consensus Round 1** - Each validator proposes a set of transactions to be included in the next ledger version. Each also keeps a queue of candidate transactions not currently proposed. @@ -25,7 +25,7 @@ The transaction queue plays an important role in selecting the transactions that 5. **Building the Next Proposal** - Each validator prepares its proposal for the next ledger version, starting with queued transactions. -6. **Adding to the Queue** - If the next proposed ledger is already full, incoming transactions are queued for a later ledger version. (Transactions that pay the [open ledger cost](transaction-cost.html#open-ledger-cost) can still get into the next proposed ledger even if it's "full", but the open ledger cost grows exponentially with each transaction added this way.) +6. **Adding to the Queue** - If the next proposed ledger is already full, incoming transactions are queued for a later ledger version. (Transactions that pay the [open ledger cost](transaction-cost.md#open-ledger-cost) can still get into the next proposed ledger even if it's "full", but the open ledger cost grows exponentially with each transaction added this way.) After this step, the process repeats from the beginning. @@ -35,44 +35,40 @@ The transaction queue plays an important role in selecting the transactions that The `rippled` server uses a variety of heuristics to estimate which transactions are "likely to be included in a ledger." The current implementation uses the following rules to decide which transactions to queue: -- Transactions must be properly-formed and [authorized](transactions.html#authorizing-transactions) with valid signatures. +- Transactions must be properly-formed and [authorized](index.md#authorizing-transactions) with valid signatures. - Transactions with an `AccountTxnID` field cannot be queued. - A single sending address can have at most 10 transactions queued at the same time. - To queue a transaction, the sender must have enough XRP for all of the following: - - Destroying the XRP [transaction cost](transaction-cost.html) as specified in the `Fee` fields of all the sender's queued transactions. The total amount among queued transactions cannot be more than the base account reserve (currently 10 XRP). (Transactions paying significantly more than the minimum transaction cost of 0.00001 XRP typically skip the queue and go straight into the open ledger.) + - Destroying the XRP [transaction cost](transaction-cost.md) as specified in the `Fee` fields of all the sender's queued transactions. The total amount among queued transactions cannot be more than the base account reserve (currently 10 XRP). (Transactions paying significantly more than the minimum transaction cost of 0.00001 XRP typically skip the queue and go straight into the open ledger.) - Sending the maximum sum of XRP that all the sender's queued transactions could send. - - Keeping enough XRP to meet the account's [reserve requirements](reserves.html). + - Keeping enough XRP to meet the account's [reserve requirements](../accounts/reserves.md). - If a transaction affects how the sending address authorizes transactions, no other transactions from the same address can be queued behind it. - If a transaction includes a `LastLedgerSequence` field, the value of that field must be at least **the current ledger index + 2**. ### Fee Averaging -If a sending address has one or more transactions queued, that sender can "push" the existing queued transactions into the open ledger by submitting a new transaction with a high enough transaction cost to pay for all of them. Specifically, the new transaction must pay a high enough transaction cost to cover the [open ledger cost](transaction-cost.html#open-ledger-cost) of itself and each other transaction from the same sender before it in the queue. (Keep in mind that the open ledger cost increases exponentially each time a transaction pays it.) The transactions must still follow the other queuing restrictions and the sending address must have enough XRP to pay the transaction costs of all the queued transactions. +If a sending address has one or more transactions queued, that sender can "push" the existing queued transactions into the open ledger by submitting a new transaction with a high enough transaction cost to pay for all of them. Specifically, the new transaction must pay a high enough transaction cost to cover the [open ledger cost](transaction-cost.md#open-ledger-cost) of itself and each other transaction from the same sender before it in the queue. (Keep in mind that the open ledger cost increases exponentially each time a transaction pays it.) The transactions must still follow the other queuing restrictions and the sending address must have enough XRP to pay the transaction costs of all the queued transactions. This feature helps you work around a particular situation. If you submitted one or more transactions with a low cost that were queued, you cannot send new transactions from the same address unless you do one of the following: * Wait for the queued transactions to be included in a validated ledger, _or_ -* Wait for the queued transactions to be permanently invalidated if the transactions have the [`LastLedgerSequence` field](reliable-transaction-submission.html#lastledgersequence) set, _or_ -* [Cancel the queued transactions](cancel-or-skip-a-transaction.html) by submitting a new transaction with the same sequence number and a higher transaction cost. +* Wait for the queued transactions to be permanently invalidated if the transactions have the [`LastLedgerSequence` field](reliable-transaction-submission.md#lastledgersequence) set, _or_ +* [Cancel the queued transactions](finality-of-results/canceling-a-transaction.md) by submitting a new transaction with the same sequence number and a higher transaction cost. If none of the above occur, transactions can stay in the queue for a theoretically unlimited amount of time, while other senders can "cut in line" by submitting transactions with higher transaction costs. Since signed transactions are immutable, you cannot increase the transaction cost of the queued transactions to increase their priority. If you do not want to invalidate the previously submitted transactions, fee averaging provides a workaround. If you increase the transaction cost of your new transaction to compensate, you can ensure the queued transactions are included in an open ledger right away. ## Order Within the Queue -Within the transaction queue, transactions are ranked so that transactions paying a higher transaction cost come first. This ranking is not by the transactions' _absolute_ XRP cost, but by costs _relative to the [minimum cost for that type of transaction](transaction-cost.html#special-transaction-costs)_. Transactions that pay the same transaction cost are ranked in the order the server received them. Other factors may also affect the order of transactions in the queue; for example, transactions from the same sender are sorted by their `Sequence` numbers so that they are submitted in order. +Within the transaction queue, transactions are ranked so that transactions paying a higher transaction cost come first. This ranking is not by the transactions' _absolute_ XRP cost, but by costs _relative to the [minimum cost for that type of transaction](transaction-cost.md#special-transaction-costs)_. Transactions that pay the same transaction cost are ranked in the order the server received them. Other factors may also affect the order of transactions in the queue; for example, transactions from the same sender are sorted by their `Sequence` numbers so that they are submitted in order. -The precise order of transactions in the queue decides which transactions get added to the next in-progress ledger version in cases where there are more transactions in the queue than the expected size of the next ledger version. The order of the transactions **does not affect the order the transactions are executed within a validated ledger**. In each validated ledger version, the transaction set for that version executes in [canonical order](consensus-structure.html#calculate-and-share-validations). +The precise order of transactions in the queue decides which transactions get added to the next in-progress ledger version in cases where there are more transactions in the queue than the expected size of the next ledger version. The order of the transactions **does not affect the order the transactions are executed within a validated ledger**. In each validated ledger version, the transaction set for that version executes in [canonical order](../consensus-protocol/consensus-structure.md#calculate-and-share-validations). -**Note:** When `rippled` queues a transaction, the provisional [transaction response code](transaction-results.html) is `terQUEUED`. This means that the transaction is likely to succeed in a future ledger version. As with all provisional response codes, the outcome of the transaction is not final until the transaction is either included in a validated ledger, or [rendered permanently invalid](finality-of-results.html). +**Note:** When `rippled` queues a transaction, the provisional [transaction response code](../../references/protocol/transactions/transaction-results/transaction-results.md) is `terQUEUED`. This means that the transaction is likely to succeed in a future ledger version. As with all provisional response codes, the outcome of the transaction is not final until the transaction is either included in a validated ledger, or [rendered permanently invalid](finality-of-results/index.md). ## See Also -- [Transaction Cost](transaction-cost.html) for information on why the transaction cost exists and how the XRP Ledger enforces it. -- [Consensus](consensus.html) for a detailed description of how the consensus process approves transactions. +- [Transaction Cost](transaction-cost.md) for information on why the transaction cost exists and how the XRP Ledger enforces it. +- [Consensus](../consensus-protocol/index.md) for a detailed description of how the consensus process approves transactions. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/xrpl-sidechains/cross-chain-bridges.md b/content/concepts/xrpl-sidechains/cross-chain-bridges.md index 7b5c9a8afe..ec8a8c59e8 100644 --- a/content/concepts/xrpl-sidechains/cross-chain-bridges.md +++ b/content/concepts/xrpl-sidechains/cross-chain-bridges.md @@ -9,7 +9,7 @@ labels: --- # Cross-Chain Bridges -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ Cross-chain bridges enable you to move XRP and tokens between the XRP Ledger and other blockchains. When referring to the blockchains connected by a bridge, one is the locking chain and the other the issuing chain. @@ -19,7 +19,7 @@ An issuing chain is an independent ledger with its own consensus algorithm and t **Note:** Bridges utilize special _door accounts_ when moving assets cross-chain. The door account on a locking chain is used to put assets into trust, and the door account on an issuing chain is used to issue wrapped assets. -Both the locking and issuing chains operate as parallel networks with independent nodes and validators. They rely on independent [witness servers](witness-servers.html) to watch transactions between the two chains and attest that assets have moved into specifically designated accounts. +Both the locking and issuing chains operate as parallel networks with independent nodes and validators. They rely on independent [witness servers](witness-servers.md) to watch transactions between the two chains and attest that assets have moved into specifically designated accounts. ## How Do Bridges Work? @@ -38,8 +38,4 @@ At a high-level, bridges enable cross-chain transactions through these steps: 5. Rewards are distributed to the witness servers' accounts on the issuing chain. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/xrpl-sidechains/index.md b/content/concepts/xrpl-sidechains/index.md index 5f8c98783f..4b3221fa73 100644 --- a/content/concepts/xrpl-sidechains/index.md +++ b/content/concepts/xrpl-sidechains/index.md @@ -8,7 +8,7 @@ labels: --- # XRPL Sidechains -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ A sidechain is an independent ledger with its own consensus algorithm, transaction types, rules, and nodes. It acts as its own blockchain, running parallel to the mainchain (XRP Ledger), enabling value to move between the two without compromising the speed, efficiency, and throughput of the mainchain. @@ -17,7 +17,7 @@ Sidechains can customize the XRP Ledger protocol to the needs of a specific use * Adding a smart contract layer. See: [Xahau](https://xahau.network/) * Adding Ethereum Virtual Machine (EVM) compatibility. See: [EVM Sidechain](https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/). * Building your own algorithmic stable coin with customised ledger types and transaction rules. -* Building permissioned or nearly permissionless, centralized or largely decentralized ledgers whose assets can be traded on the Mainnet [decentralized exchange](decentralized-exchange.html). +* Building permissioned or nearly permissionless, centralized or largely decentralized ledgers whose assets can be traded on the Mainnet [decentralized exchange](../tokens/decentralized-exchange/index.md). **Notes:** @@ -67,8 +67,4 @@ You should not run a Witness Server if you are not experienced (or do not have a No. These FAQs are intended to provide general guidance and do not constitute technical, financial, or legal advice. These FAQs should not be used as a substitute for professional advice tailored to one’s specific circumstances. The blockchain and digital asset landscape is complex and constantly changing, which necessitates staying updated and seeking expert advice. It is recommended that those engaging with a Sidechain regularly check official resources such as governmental and regulatory body websites. Nonetheless, consulting with legal professionals who specialize in blockchain, and cryptocurrency is the most reliable way to get accurate and personalized advice. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/concepts/xrpl-sidechains/witness-servers.md b/content/concepts/xrpl-sidechains/witness-servers.md index 0136af97c1..25b607f1c0 100644 --- a/content/concepts/xrpl-sidechains/witness-servers.md +++ b/content/concepts/xrpl-sidechains/witness-servers.md @@ -10,7 +10,7 @@ labels: # Witness Servers [[Source]](https://github.com/seelabs/xbridge_witness "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ A _witness server_ acts as a neutral witness for transactions between a locking chain and an issuing chain. It listens to the door accounts on both sides of a bridge and signs attestations that confirm a transaction occurred. They are essentially acting as an oracle to “prove” that value was locked or burned on a source account, which allows the recipient to then claim (via minting or unlocking) the equivalent funds on the destination account. @@ -145,7 +145,4 @@ The witness server takes a JSON configuration file, specified using the `--conf` | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/contributing/report-a-scam.md b/content/contributing/report-a-scam.md index 71df3b503c..c844867c6e 100644 --- a/content/contributing/report-a-scam.md +++ b/content/contributing/report-a-scam.md @@ -24,7 +24,7 @@ If you think you've been scammed, make sure to collect as much information as yo - [Uphold](https://support.uphold.com/hc/en-us/requests/new) - [Bitrue](https://www.bitrue.com/exchange-web/footer/contactus.html) -4. If the scammer exchanged XRP for another token on the XRP Ledger, contact the token's issuer. The issuer may be able to [freeze the scammer's trust line](freeze-a-trust-line.html) to prevent the scammer from sending those tokens to others. +4. If the scammer exchanged XRP for another token on the XRP Ledger, contact the token's issuer. The issuer may be able to [freeze the scammer's trust line](../tutorials/use-tokens/freeze-a-trust-line.md) to prevent the scammer from sending those tokens to others. For more details on reporting scammers, see [Xrplorer Forensics Help](https://xrplorer.com/forensics/help). diff --git a/content/faq.md b/content/faq.md index a83b2101ed..c07443880d 100644 --- a/content/faq.md +++ b/content/faq.md @@ -23,11 +23,11 @@ No, the XRP Ledger is a decentralized, public blockchain. Any changes that would #### Isn’t Proof of Work the best validation mechanism? -Proof of Work (PoW) was the first mechanism to solve the double spend problem without requiring a trusted 3rd party. [The XRP Ledger’s consensus mechanism](consensus.html) solves the same problem in a far faster, cheaper and more energy efficient way. +Proof of Work (PoW) was the first mechanism to solve the double spend problem without requiring a trusted 3rd party. [The XRP Ledger’s consensus mechanism](concepts/consensus-protocol/index.md) solves the same problem in a far faster, cheaper and more energy efficient way. #### How can a blockchain be sustainable? -It’s been widely reported that Bitcoin’s energy consumption, as of 2021, is equivalent to that used by Argentina, with much of the electricity Bitcoin miners use coming from polluting sources. The XRP Ledger confirms transactions through a “[consensus](consensus.html)” mechanism - which does not waste energy like proof of work does - and leverages carbon offsets to be [one of the first truly carbon neutral blockchains](https://ripple.com/ripple-press/ripple-leads-sustainability-agenda-to-achieve-carbon-neutrality-by-2030/). +It’s been widely reported that Bitcoin’s energy consumption, as of 2021, is equivalent to that used by Argentina, with much of the electricity Bitcoin miners use coming from polluting sources. The XRP Ledger confirms transactions through a “[consensus](concepts/consensus-protocol/index.md)” mechanism - which does not waste energy like proof of work does - and leverages carbon offsets to be [one of the first truly carbon neutral blockchains](https://ripple.com/ripple-press/ripple-leads-sustainability-agenda-to-achieve-carbon-neutrality-by-2030/). #### Can currencies other than XRP be traded through XRPL? @@ -43,7 +43,7 @@ Although XRPL was initially developed for payment use cases, both the ledger and All nodes ensure that transactions meet protocol requirements, and are therefore “valid.” The service that validators uniquely provide is administratively grouping transactions into ordered units, agreeing on one such ordering specifically to prevent double spending. -See [Consensus](consensus.html) for more information about the consensus process. +See [Consensus](concepts/consensus-protocol/index.md) for more information about the consensus process. #### How much does it cost to run a validator? @@ -88,7 +88,7 @@ In the process of determining the authoritative version of a ledger, there may b However, there can be only one latest _validated_ ledger version at any given time; other versions are irrelevant and harmless. -For more information about how the XRP Ledger's consensus mechanism behaves in adverse situations, see [Consensus Protections Against Attacks and Failure Modes](consensus-protections.html). +For more information about how the XRP Ledger's consensus mechanism behaves in adverse situations, see [Consensus Protections Against Attacks and Failure Modes](concepts/consensus-protocol/consensus-protections.md). #### Does the XRP Ledger have a formal process for adding validators? @@ -97,7 +97,7 @@ No, a formal process for adding validators is not compatible with the XRP Ledger Publishers of individual default UNLs set their own policies for when to add or remove validators from their lists of recommendations. -For recommendations and best practices, see [Run `rippled` as a Validator](run-rippled-as-a-validator.html). +For recommendations and best practices, see [Run `rippled` as a Validator](infrastructure/configuration/server-modes/run-rippled-as-a-validator.md). #### If the dUNL has the most influence on the network, then is the XRPL centralized? @@ -113,12 +113,12 @@ However, if your UNL does not have enough overlap with the UNLs used by others, #### What purpose does XRP serve? -XRP was created as the XRP Ledger's native asset to empower a new generation of digital payments—faster, greener, and cheaper than any previous digital asset. It also serves to protect the ledger from spam, and to [bridge currencies](autobridging.html) in the XRP Ledger's decentralized exchange, when doing so is beneficial to users. Over time, the XRP Ledger community has pioneered new [use cases](uses.html) for XRP as well was the XRP Ledger itself. +XRP was created as the XRP Ledger's native asset to empower a new generation of digital payments—faster, greener, and cheaper than any previous digital asset. It also serves to protect the ledger from spam, and to [bridge currencies](concepts/tokens/decentralized-exchange/autobridging.md) in the XRP Ledger's decentralized exchange, when doing so is beneficial to users. Over time, the XRP Ledger community has pioneered new [use cases](/about/uses) for XRP as well was the XRP Ledger itself. #### How does the XRP Ledger respond to transaction floods? -The XRP Ledger is designed to set the [transaction cost](transaction-cost.html) dynamically based on demand as an anti-spam measure. The impact of any potential XRP manipulation is minimized by increases in network size as the market cap and transaction volume increase. +The XRP Ledger is designed to set the [transaction cost](concepts/transactions/transaction-cost.md) dynamically based on demand as an anti-spam measure. The impact of any potential XRP manipulation is minimized by increases in network size as the market cap and transaction volume increase. #### What about money laundering and suspicious economic activity? @@ -148,11 +148,11 @@ Once the pull request passes automated tests and receives approvals from reviewe No, Ripple does not own or control the XRP Ledger or XRP Ledger network. -Ripple contributes to a reference implementation of the core XRP Ledger server ([`rippled`](https://github.com/xrplf/rippled)) and employs a team of engineers who contribute to the open-source codebase. Ripple periodically publishes pre-compiled binary packages of the software for convenience. Anyone can [download and compile the software from source](install-rippled.html). +Ripple contributes to a reference implementation of the core XRP Ledger server ([`rippled`](https://github.com/xrplf/rippled)) and employs a team of engineers who contribute to the open-source codebase. Ripple periodically publishes pre-compiled binary packages of the software for convenience. Anyone can [download and compile the software from source](infrastructure/installation/index.md). Several entities publish recommended validator lists (UNLs). As of July 2023, Ripple runs only 1 of the 35 validators in the default UNL. #### Does the XRP Ledger distinguish between the codebase for validation and the one for user software? -Yes. There are several [XRP Ledger client libraries](client-libraries.html) which are intended for user software developers. These libraries have different codebases and repositories from the [core XRP Ledger server](xrpl-servers.html) which powers the network and validates transactions. +Yes. There are several [XRP Ledger client libraries](references/client-libraries.md) which are intended for user software developers. These libraries have different codebases and repositories from the [core XRP Ledger server](concepts/networks-and-servers/index.md) which powers the network and validates transactions. diff --git a/content/infrastructure/commandline-usage.md b/content/infrastructure/commandline-usage.md index 7816d675f4..0e6cd6da26 100644 --- a/content/infrastructure/commandline-usage.md +++ b/content/infrastructure/commandline-usage.md @@ -65,10 +65,10 @@ Daemon mode is the default mode of operation for `rippled`. In addition to the [ | `--import` | Before fully starting, import ledger data from another `rippled` server's ledger store. Requires a valid `[import_db]` stanza in the config file. | | `--newnodeid` | Generate a random node identity for the server. | | `--nodeid {VALUE}` | Specify a node identity. `{VALUE}` can also be a parameter associated with the container or hardware running the server, such as `$HOSTNAME`. | -| `--nodetoshard` | Before fully starting, copy any complete [history shards](history-sharding.html) from the ledger store into the shard store, up to the shard store's configured maximum disk space. Uses large amounts of CPU and I/O. Caution: this command copies data (instead of moving it), so you must have enough disk space to store the data in both the shard store and the ledger store. | -| `--quorum {QUORUM}` | This option is intended for starting [test networks](parallel-networks.html). Override the minimum quorum for validation by requiring an agreement of `{QUORUM}` trusted validators. By default, the quorum for validation is automatically set to a safe number of trusted validators based on how many there are. If some validators are not online, this option can allow progress with a lower than normal quorum. **Warning:** If you set the quorum manually, it may be too low to prevent your server from diverging from the rest of the network. Only use this option if you have a deep understanding of consensus and have a need to use a non-standard configuration. | +| `--nodetoshard` | Before fully starting, copy any complete [history shards](configuration/data-retention/history-sharding.md) from the ledger store into the shard store, up to the shard store's configured maximum disk space. Uses large amounts of CPU and I/O. Caution: this command copies data (instead of moving it), so you must have enough disk space to store the data in both the shard store and the ledger store. | +| `--quorum {QUORUM}` | This option is intended for starting [test networks](../concepts/networks-and-servers/parallel-networks.md). Override the minimum quorum for validation by requiring an agreement of `{QUORUM}` trusted validators. By default, the quorum for validation is automatically set to a safe number of trusted validators based on how many there are. If some validators are not online, this option can allow progress with a lower than normal quorum. **Warning:** If you set the quorum manually, it may be too low to prevent your server from diverging from the rest of the network. Only use this option if you have a deep understanding of consensus and have a need to use a non-standard configuration. | -The following option has been removed: `--validateShards`. [Removed in: rippled 1.7.0][] +The following option has been removed: `--validateShards`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Removed in: rippled 1.7.0{% /badge %} ## Stand-Alone Mode Options @@ -76,7 +76,7 @@ The following option has been removed: `--validateShards`. [Removed in: rippled rippled --standalone [OPTIONS] rippled -a [OPTIONS] ``` -Run in [stand-alone mode](rippled-server-modes.html). In this mode, `rippled` does not connect to the network or perform consensus. (Otherwise, `rippled` runs in daemon mode.) +Run in [stand-alone mode](../concepts/networks-and-servers/rippled-server-modes.md). In this mode, `rippled` does not connect to the network or perform consensus. (Otherwise, `rippled` runs in daemon mode.) ## Initial Ledger Options @@ -85,11 +85,11 @@ The following options determine which ledger to load first when starting up. The | Option | Description | |:----------------------|:-----------------------------------------------------| | `--ledger {LEDGER}` | Load the ledger version identified by `{LEDGER}` (either a ledger hash or a ledger index) as the initial ledger. The specified ledger version must be in the server's ledger store. | -| `--ledgerfile {FILE}` | Load the ledger version from the specified `{FILE}`, which must contain a complete ledger in JSON format. For an example of such a file, see the provided [`ledger-file.json`]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_api-examples/rippled-cli/ledger-file.json). | +| `--ledgerfile {FILE}` | Load the ledger version from the specified `{FILE}`, which must contain a complete ledger in JSON format. For an example of such a file, see the provided {% repo-link path="content/_api-examples/rippled-cli/ledger-file.json" %}`ledger-file.json`{% /repo-link %}. | | `--load` | Use only the ledger store on disk when loading the initial ledger. | | `--net` | Use only data from the network when loading the initial ledger. | | `--replay` | Use with `--ledger` to replay a specific ledger. Your server must have the ledger in question and its direct ancestor already in the ledger store. Using the previous ledger as a base, the server processes all the transactions in the specified ledger, resulting in a re-creation of the specified ledger. With a debugger, you can add breakpoints to analyze specific transaction processing logic. | -| `--start` | Start with a new genesis ledger that has known amendments enabled, based on their default votes. This makes the functionality of those amendments available right away, instead of needing to wait two weeks for the [Amendment Process](amendments.html). See also: [Start a New Genesis Ledger in Stand-Alone Mode](start-a-new-genesis-ledger-in-stand-alone-mode.html). | +| `--start` | Start with a new genesis ledger that has known amendments enabled, based on their default votes. This makes the functionality of those amendments available right away, instead of needing to wait two weeks for the [Amendment Process](../concepts/networks-and-servers/amendments.md). See also: [Start a New Genesis Ledger in Stand-Alone Mode](testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md). | | `--valid` | Consider the initial ledger a valid network ledger even before fully syncing with the network. This can be used for starting networks or rolling back an entire network to a known previous state, as long as 80% of that network's validators load the same ledger at around the same time. | ## Client Mode Options @@ -100,7 +100,7 @@ rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} In client mode, the `rippled` executable acts as a client to another `rippled` service. (The service may be the same executable running in a separate process locally, or it could be a `rippled` server on another server.) -To run in client mode, provide the [commandline syntax](request-formatting.html#commandline-format) for one of the [`rippled` API](http-websocket-apis.html) methods. +To run in client mode, provide the [commandline syntax](../references/http-websocket-apis/api-conventions/request-formatting.md#commandline-format) for one of the [`rippled` API](../references/http-websocket-apis/index.md) methods. Besides the individual commands, client mode accepts the [Generic Options](#generic-options) and the following options: @@ -138,7 +138,7 @@ While running unit tests, you can specify the [Generic Options](#generic-options | Option | Short Version | Description | |:-----------------------------------|:--------------|:------------------------| -| `--unittest-ipv6` | | Use [IPv6](https://en.wikipedia.org/wiki/IPv6) to connect to the local server when running unit tests. If not provided, unit tests use IPv4 instead. [New in: rippled 1.1.0][] | +| `--unittest-ipv6` | | Use [IPv6](https://en.wikipedia.org/wiki/IPv6) to connect to the local server when running unit tests. If not provided, unit tests use IPv4 instead. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}New in: rippled 1.1.0{% /badge %} | | `--unittest-jobs {NUMBER_OF_JOBS}` | | Use the specified number of processes to run unit tests. This can finish running tests faster on multi-core systems. The `{NUMBER_OF_JOBS}` should be a positive integer indicating the number of processes to use. | | `--unittest-log` | | Allow unit tests to write to logs even if `--quiet` is specified. (No effect otherwise.) | | `--quiet` | `-q` | Print fewer diagnostic messages when running unit tests. | @@ -182,8 +182,4 @@ Certain manual unit tests accept an argument. You can provide the argument with |:------------------------|:---------------------------------------------------| | `--unittest-arg {ARG}` | Provide the argument `{ARG}` to the unit test(s) currently being run. Each unit test that accepts arguments defines its own argument format. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/configure-amendment-voting.md b/content/infrastructure/configuration/configure-amendment-voting.md index 4b8692d606..77e514c9cc 100644 --- a/content/infrastructure/configuration/configure-amendment-voting.md +++ b/content/infrastructure/configuration/configure-amendment-voting.md @@ -8,14 +8,13 @@ labels: --- # Configure Amendment Voting -Servers configured as validators can vote on [amendments](amendments.html) to the XRP Ledger protocol using the [feature method][]. (This method requires [admin access](get-started-using-http-websocket-apis.html#admin-access).) +Servers configured as validators can vote on [amendments](../../concepts/networks-and-servers/amendments.md) to the XRP Ledger protocol using the [feature method][]. (This method requires [admin access](../../tutorials/get-started/get-started-using-http-websocket-apis.md#admin-access).) For example, to vote against the "SHAMapV2" amendment, run the following command: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "any_id_here", @@ -24,9 +23,9 @@ For example, to vote against the "SHAMapV2" amendment, run the following command "vetoed": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "feature", @@ -38,14 +37,15 @@ For example, to vote against the "SHAMapV2" amendment, run the following command ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled feature SHAMapV2 reject ``` +{% /tab %} - +{% /tabs %} **Note:** The short name of the amendment is case-sensitive. You can also use an amendment's ID as hexadecimal, which is not case sensitive. @@ -64,11 +64,8 @@ Be sure to restart your server for changes to take effect. ## See Also -- [Amendments](amendments.html) - - [Known Amendments](known-amendments.html) +- [Amendments](../../concepts/networks-and-servers/amendments.md) + - [Known Amendments](../../resources/known-amendments.md) - [feature method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/configure-grpc.md b/content/infrastructure/configuration/configure-grpc.md index 2722ad8e2b..db5c716576 100644 --- a/content/infrastructure/configuration/configure-grpc.md +++ b/content/infrastructure/configuration/configure-grpc.md @@ -7,7 +7,7 @@ labels: --- # Configure gRPC -The `rippled` server has a limited [gRPC API](https://grpc.io/) which [P2P mode servers](rippled-server-modes.html) can provide. Reporting mode servers use this API to retrieve data about the latest validated ledgers and transactions. You can enable the gRPC API on your server with a new configuration stanza. +The `rippled` server has a limited [gRPC API](https://grpc.io/) which [P2P mode servers](../../concepts/networks-and-servers/rippled-server-modes.md) can provide. Reporting mode servers use this API to retrieve data about the latest validated ledgers and transactions. You can enable the gRPC API on your server with a new configuration stanza. **Caution:** gRPC support is intended specifically for providing data to reporting mode servers from P2P mode servers. Breaking changes to the gRPC API may occur without warning or it may be removed entirely in future versions of the server. @@ -15,7 +15,7 @@ The `rippled` server has a limited [gRPC API](https://grpc.io/) which [P2P mode To enable gRPC, you must meet the following prerequisites: -- You must have [installed rippled](install-rippled.html). +- You must have [installed rippled](../installation/index.md). - Your server must be able to bind to the port you choose. @@ -25,32 +25,33 @@ To enable gRPC on your server, complete the following steps: 1. Ensure the `[port_grpc]` stanza is in your `rippled` config file. - [port_grpc] - port = 50051 - ip = 127.0.0.1 + ``` + [port_grpc] + port = 50051 + ip = 127.0.0.1 + ``` - `port` defines the port the server listens on for gRPC connections from client applications. The recommended port is `50051`. - `ip` defines which interfaces the server listens on. `127.0.0.1` limits connections to the local loopback network (same machine) and is enabled by default. Changing the value to `0.0.0.0` listens on all available network interfaces. - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. Start (or restart) the `rippled` service. - sudo systemctl restart rippled + ``` + sudo systemctl restart rippled + ``` ## See Also - **Concepts:** - - [XRP Ledger Overview](xrp-ledger-overview.html) - - [`rippled` Server Modes](rippled-server-modes.html) + - [XRP Ledger Overview](/about/) + - [`rippled` Server Modes](../../concepts/networks-and-servers/rippled-server-modes.md) - **Tutorials:** - - [Get Started Using HTTP / WebSocket APIs](get-started-using-http-websocket-apis.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Manage the rippled Server](manage-the-rippled-server.html) + - [Get Started Using HTTP / WebSocket APIs](../../tutorials/get-started/get-started-using-http-websocket-apis.md) + - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) + - [Manage the rippled Server](../installation/install-rippled-on-ubuntu.md) - **References:** - - [HTTP / WebSocket API Reference](http-websocket-apis.html) + - [HTTP / WebSocket API Reference](../../references/http-websocket-apis/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/configure-statsd.md b/content/infrastructure/configuration/configure-statsd.md index 450787144c..a397956ef7 100644 --- a/content/infrastructure/configuration/configure-statsd.md +++ b/content/infrastructure/configuration/configure-statsd.md @@ -15,37 +15,47 @@ To enable StatsD on your `rippled` server, perform the following steps: 1. Set up a `rippledmon` instance on another machine to receive and aggregate stats. - $ git clone https://github.com/ripple/rippledmon.git - $ cd rippledmon - $ docker-compose up + ``` + $ git clone https://github.com/ripple/rippledmon.git + $ cd rippledmon + $ docker-compose up + ``` Make sure [Docker](https://docs.docker.com/) and [Docker Compose](https://docs.docker.com/compose/install/) are installed on your machine when performing the steps above. For more information about configuring `rippledmon`, see the [`rippledmon` repository](https://github.com/ripple/rippledmon). 0. Add the `[insight]` stanza to your `rippled`'s config file. - [insight] - server=statsd - address=192.0.2.0:8125 - prefix=my_rippled + ``` + [insight] + server=statsd + address=192.0.2.0:8125 + prefix=my_rippled + ``` - For the `address`, use the IP address and port where `rippledmon` is listening. By default, this port is 8125. - For the `prefix`, choose a name that identifies the `rippled` server you are configuring. The prefix must not include whitespace, colons ":", or the vertical bar "|". The prefix appears on all of the StatsD metrics exported from this server. - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 0. Restart the `rippled` service. - $ sudo systemctl restart rippled + ``` + $ sudo systemctl restart rippled + ``` 0. Check that the metrics are being exported: - $ tcpdump -i en0 | grep UDP + ``` + $ tcpdump -i en0 | grep UDP + ``` Replace `en0` with the appropriate network interface for your machine. For a complete list of the interfaces on your machine use `$ tcpdump -D`. Sample Output: - 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 + ``` + 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 + ``` You should periodically see messages indicating outbound traffic to the configured address and port of your `rippledmon` instance. @@ -56,11 +66,11 @@ For descriptions of each StatsD metric, see the [`rippledmon` repository](https: ## See Also - **Concepts:** - - [XRP Ledger Overview](xrp-ledger-overview.html) - - [The `rippled` Server](xrpl-servers.html) + - [XRP Ledger Overview](/about/) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Install `rippled`](install-rippled.html) - - [Capacity Planning](capacity-planning.html) + - [Install `rippled`](../installation/index.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [server_info method](server_info.html) - - [print method](print.html) + - [server_info method](../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) + - [print method](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md) diff --git a/content/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md b/content/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md index 957442a554..6cb8a2ef10 100644 --- a/content/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md +++ b/content/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md @@ -9,9 +9,9 @@ labels: --- # Connect Your rippled to a Parallel Network -Various [alternative test and development networks](parallel-networks.html) exist for developers to test their apps or experiment with features without risking real money. **The funds used on these networks are not real funds and are intended for testing only.** You can connect your [`rippled` server](xrpl-servers.html) to any of these test networks. +Various [alternative test and development networks](../../concepts/networks-and-servers/parallel-networks.md) exist for developers to test their apps or experiment with features without risking real money. **The funds used on these networks are not real funds and are intended for testing only.** You can connect your [`rippled` server](../../concepts/networks-and-servers/index.md) to any of these test networks. -**Caution:** On test networks with new and experimental features, you may need to run a pre-production release of the server to sync with the network. See the [Parallel Networks Page](parallel-networks.html) for information on what code version each network needs. +**Caution:** On test networks with new and experimental features, you may need to run a pre-production release of the server to sync with the network. See the [Parallel Networks Page](../../concepts/networks-and-servers/parallel-networks.md) for information on what code version each network needs. ## Steps @@ -21,66 +21,68 @@ To connect your `rippled` server to the XRP Testnet or Devnet, complete these st Edit your `rippled.cfg` file. -{% include '_snippets/conf-file-location.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} 1. Set an `[ips]` stanza with the hub for the network you want to connect to: - + {% tabs %} - *Testnet* + ```{% label="Testnet" %} + [ips] + s.altnet.rippletest.net 51235 + ``` - [ips] - s.altnet.rippletest.net 51235 + ```{% label="Devnet" %} + [ips] + s.devnet.rippletest.net 51235 + ``` - *Devnet* + ```{% label="Mainnet" %} + # No [ips] stanza. Use the default hubs to connect to Mainnet. + ``` - [ips] - s.devnet.rippletest.net 51235 + ```{% label="Sidechain-Devnet" %} + [ips] + sidechain-net2.devnet.rippletest.net 51235 + ``` - *Mainnet* - - # No [ips] stanza. Use the default hubs to connect to Mainnet. - - *Sidechain-Devnet* - - [ips] - sidechain-net2.devnet.rippletest.net 51235 - - + {% /tabs %} 2. Comment out the previous `[ips]` stanza, if there is one: - # [ips] - # r.ripple.com 51235 - # zaphod.alloy.ee 51235 - # sahyadri.isrdc.in 51235 + ``` + # [ips] + # r.ripple.com 51235 + # zaphod.alloy.ee 51235 + # sahyadri.isrdc.in 51235 + ``` 3. Add a `[network_id]` stanza with the appropriate value: - + {% tabs %} - *Testnet* + ```{% label="Testnet" %} + [network_id] + testnet + ``` - [network_id] - testnet + ```{% label="Devnet" %} + [network_id] + devnet + ``` - *Devnet* + ```{% label="Mainnet" %} + [network_id] + main + ``` - [network_id] - devnet + ```{% label="Sidechain-Devnet" %} + [network_id] + 262 + ``` - *Mainnet* - - [network_id] - main - - *Sidechain-Devnet* - - [network_id] - 262 - - + {% /tabs %} For custom networks, everyone who connects to the network should use a value unique to that network. When creating a new network, choose a network ID at random from the integers 11 to 4,294,967,295. @@ -92,42 +94,41 @@ Edit your `validators.txt` file. This file is located in the same folder as your 1. Uncomment or add the `[validator_list_sites]` and `[validator_list_keys]` stanzas for the network you want to connect to: - + {% tabs %} - *Testnet* + ```{% label="Testnet" %} + [validator_list_sites] + https://vl.altnet.rippletest.net - [validator_list_sites] - https://vl.altnet.rippletest.net + [validator_list_keys] + ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 + ``` - [validator_list_keys] - ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 + ```{% label="Devnet" %} + [validator_list_sites] + https://vl.devnet.rippletest.net - *Devnet* + [validator_list_keys] + EDDF2F53DFEC79358F7BE76BC884AC31048CFF6E2A00C628EAE06DB7750A247B12 + ``` - [validator_list_sites] - https://vl.devnet.rippletest.net + ```{% label="Mainnet" %} + [validator_list_sites] + https://vl.ripple.com - [validator_list_keys] - EDDF2F53DFEC79358F7BE76BC884AC31048CFF6E2A00C628EAE06DB7750A247B12 + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` + ```{% label="Sidechain-Devnet" %} + [validator_list_sites] + https://vlsidechain-net2.devnet.rippletest.net - *Mainnet* + [validator_list_keys] + EDA5504C7133743FADA46342229B4E9CBBE1CF9BCA19D16633574F7CBB72F79569 + ``` - [validator_list_sites] - https://vl.ripple.com - - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - - *Sidechain-Devnet* - - [validator_list_sites] - https://vlsidechain-net2.devnet.rippletest.net - - [validator_list_keys] - EDA5504C7133743FADA46342229B4E9CBBE1CF9BCA19D16633574F7CBB72F79569 - - + {% /tabs %} **Tip:** Preview packages might come with the necessary stanzas pre-configured, but check them just in case. @@ -135,57 +136,59 @@ Edit your `validators.txt` file. This file is located in the same folder as your For example: - # [validator_list_sites] - # https://vl.ripple.com - # - # [validator_list_keys] - # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` + # [validator_list_sites] + # https://vl.ripple.com + # + # [validator_list_keys] + # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - # Old hard-coded List of Devnet Validators - # [validators] - # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c - # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B - # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD - # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U - # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd - # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC - # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS + # Old hard-coded List of Devnet Validators + # [validators] + # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c + # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B + # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD + # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U + # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd + # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC + # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS + ``` ## 3. Enable (or Disable) Features For some test networks using experimental features, you must also forcefully enable the appropriate feature in the config file. For other networks, you should not use the `[features]` stanza. Add or modify the `[features]` stanza of your config file as follows: - - -_Testnet_ +{% tabs %} +{% tab label="Testnet" %} ``` # [features] # Delete or comment out. Don't force-enable features on Testnet. ``` +{% /tab %} -_Devnet_ - +{% tab label="Devnet" %} ``` # [features] # Delete or comment out. Don't force-enable features on Devnet. ``` +{% /tab %} -_Mainnet_ - +{% tab label="Mainnet" %} ``` # [features] # Delete or comment out. Don't force-enable features on Mainnet. ``` +{% /tab %} -_Sidechain-Devnet_ - +{% tab label="Sidechain-Devnet" %} ``` [features] XChainBridge ``` +{% /tab %} - +{% /tabs %} **Warning:** Do not use the `[features]` stanza when connecting to Mainnet or Testnet. Forcefully enabling different features than the rest of the network could cause your server to diverge from the network. @@ -207,28 +210,23 @@ The following example shows how to check your server's latest validated ledger f rippled server_info | grep seq ``` -You can use [server_info in the WebSocket Tool](websocket-api-tool.html#server_info) to look up the latest ledger index (`seq`) on the intended network. +You can use [server_info in the WebSocket Tool](/resources/dev-tools/websocket-api-tool#server_info) to look up the latest ledger index (`seq`) on the intended network. ## See Also - **Tools:** - - [XRP Faucets](xrp-testnet-faucet.html) - - [WebSocket API Tool](websocket-api-tool.html) - Select 'Testnet Public Server' or 'Devnet Public Server' in the connection options. + - [XRP Faucets](/resources/dev-tools/xrp-faucets) + - [WebSocket API Tool](/resources/dev-tools/websocket-api-tool) - Select 'Testnet Public Server' or 'Devnet Public Server' in the connection options. - **Concepts:** - - [Parallel Networks](parallel-networks.html) - - [Consensus](consensus.html) + - [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Run rippled as a Validator](run-rippled-as-a-validator.html) - - [Test `rippled` Offline in Stand-Alone Mode](use-stand-alone-mode.html) - - [Troubleshooting `rippled`](troubleshoot-the-rippled-server.html) + - [Run rippled as a Validator](server-modes/run-rippled-as-a-validator.md) + - [Test `rippled` Offline in Stand-Alone Mode](../testing-and-auditing/index.md) + - [Troubleshooting `rippled`](../troubleshooting/index.md) - **References:** - [server_info method][] - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/data-retention/configure-advisory-deletion.md b/content/infrastructure/configuration/data-retention/configure-advisory-deletion.md index e497e5c689..5a4dd12726 100644 --- a/content/infrastructure/configuration/data-retention/configure-advisory-deletion.md +++ b/content/infrastructure/configuration/data-retention/configure-advisory-deletion.md @@ -8,7 +8,7 @@ labels: --- # Configure Advisory Deletion -The default config file sets [`rippled`](xrpl-servers.html) to automatically delete outdated [history](ledger-history.html) of XRP Ledger state and transactions as new ledger versions become available. If your server uses most of its hardware resources during peak hours, you can configure the server to delete ledgers only when prompted by a command scheduled to run during off-peak hours, so that online deletion is less likely to impact [server performance](capacity-planning.html). +The default config file sets [`rippled`](../../../concepts/networks-and-servers/index.md) to automatically delete outdated [history](../../../concepts/networks-and-servers/ledger-history.md) of XRP Ledger state and transactions as new ledger versions become available. If your server uses most of its hardware resources during peak hours, you can configure the server to delete ledgers only when prompted by a command scheduled to run during off-peak hours, so that online deletion is less likely to impact [server performance](../../installation/capacity-planning.md). ## Prerequisites @@ -16,7 +16,7 @@ This tutorial assumes your server meets the following prerequisites: - You are on a supported operating system: Ubuntu Linux, Red Hat Enterprise Linux (RHEL), or CentOS. -- The `rippled` server is already [installed](install-rippled.html) and [online deletion](online-deletion.html) is enabled. +- The `rippled` server is already [installed](../../installation/index.md) and [online deletion](online-deletion.md) is enabled. The default config file enables online deletion after 2000 ledger versions. @@ -26,11 +26,13 @@ This tutorial assumes your server meets the following prerequisites: On RHEL or CentOS, you can install the `cronie` package: - $ sudo yum install cronie + ``` + $ sudo yum install cronie + ``` - Your server has enough disk space to store your chosen amount of history in its ledger store. - See [Capacity Planning](capacity-planning.html) for details of how much storage is required for different configurations. With advisory deletion enabled, the maximum history a server may accumulate before deletion is equal to the number of ledger versions configured in the `online_delete` setting **plus** the amount of time between online deletion prompts. + See [Capacity Planning](../../installation/capacity-planning.md) for details of how much storage is required for different configurations. With advisory deletion enabled, the maximum history a server may accumulate before deletion is equal to the number of ledger versions configured in the `online_delete` setting **plus** the amount of time between online deletion prompts. - You know which hours are least busy for your server. @@ -40,30 +42,36 @@ To configure advisory deletion with a daily schedule, perform the following step 1. Enable `advisory_delete` in the `[node_db]` stanza of your `rippled`'s config file. - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=1 + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=1 + ``` - Set `advisory_delete` to `1` to run online deletion only when prompted. (Set it to `0` to run online deletion automatically as new ledger versions become available.) - Set `online_delete` to the minimum number of ledger versions to keep after running online deletion. The server accumulates more history than this until online deletion runs. - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. Test running the [can_delete method][] to prompt the server to run online deletion. - You can use the [`rippled` commandline interface](get-started-using-http-websocket-apis.html#commandline) to run this command. For example: + You can use the [`rippled` commandline interface](../../../tutorials/get-started/get-started-using-http-websocket-apis.md#commandline) to run this command. For example: - $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now + ``` + $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now + ``` The response indicates the maximum ledger index that the server may delete from its ledger store. For example, the following message indicates that ledger versions up to and including ledger index 43633667 can be deleted: - { - "result": { - "can_delete": 43633667, - "status": "success" - } - } + ``` + { + "result": { + "can_delete": 43633667, + "status": "success" + } + } + ``` The server only deletes those ledger versions if the number of _newer_ validated ledger versions it has is equal to or greater than the `online_delete` setting. @@ -71,11 +79,15 @@ To configure advisory deletion with a daily schedule, perform the following step Edit your `cron` configuration: - $ crontab -e + ``` + $ crontab -e + ``` The following example sets the server to run deletion at 1:05 AM server time daily: - 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now + ``` + 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now + ``` Be sure that you schedule the command to run based on your server's configured time zone. @@ -83,7 +95,9 @@ To configure advisory deletion with a daily schedule, perform the following step 4. Start (or restart) the `rippled` service. - $ sudo systemctl restart rippled + ``` + $ sudo systemctl restart rippled + ``` 5. Periodically check your server's `complete_ledgers` range using the [server_info method][] to confirm that ledgers are being deleted as scheduled. @@ -98,24 +112,21 @@ If online deletion does not seem to be running after configuring it, try the fol - Check that the user who configured the `cron` job has permissions to run the `rippled` server as a commandline client. - Check the syntax of your `cron` job and the time when it is supposed to run. - Check that the `rippled` executable is available at the path specified in your `cron` configuration. If necessary, specify the absolute path to the executable, such as `/opt/ripple/bin/rippled`. -- Check your `rippled` logs for messages that begin with `SHAMapStore::WRN`. This can indicate that [online deletion is being interrupted](online-deletion.html#interrupting-online-deletion) because your server fell out of sync with the network. +- Check your `rippled` logs for messages that begin with `SHAMapStore::WRN`. This can indicate that [online deletion is being interrupted](online-deletion.md#interrupting-online-deletion) because your server fell out of sync with the network. ## See Also - **Concepts:** - - [Ledger History](ledger-history.html) - - [Online Deletion](online-deletion.html) + - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) + - [Online Deletion](online-deletion.md) - **Tutorials:** - - [Configure Online Deletion](configure-online-deletion.html) - - [Diagnosing Problems with rippled](diagnosing-problems.html) - - [Understanding Log Messages](understanding-log-messages.html) + - [Configure Online Deletion](configure-online-deletion.md) + - [Diagnosing Problems with rippled](../../troubleshooting/diagnosing-problems.md) + - [Understanding Log Messages](../../troubleshooting/understanding-log-messages.md) - **References:** - [server_info method][] - [can_delete method][] - [logrotate method][] - - [Ledger Data Formats](ledger-data-formats.html) + - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/data-retention/configure-full-history.md b/content/infrastructure/configuration/data-retention/configure-full-history.md index 729d53ac70..5b851bf762 100644 --- a/content/infrastructure/configuration/data-retention/configure-full-history.md +++ b/content/infrastructure/configuration/data-retention/configure-full-history.md @@ -20,7 +20,7 @@ Acquiring full history from the peer-to-peer network takes a long time (several You do not need a full history server to participate in the network, validate transactions, or know the current state of the network. Full history is only useful for knowing the outcome of transactions that occurred in the past, or the state of the ledger at a given time in the past. To get such information, you must rely on other servers having the history you need. -If you want to contribute to storing the history of the XRP Ledger network without storing the full history, you can [configure history sharding](configure-history-sharding.html) to store randomly-selected chunks of ledger history instead. +If you want to contribute to storing the history of the XRP Ledger network without storing the full history, you can [configure history sharding](configure-history-sharding.md) to store randomly-selected chunks of ledger history instead. ## Configuration Steps @@ -28,32 +28,40 @@ To configure your server to acquire and store full history, complete the followi 1. Stop the `rippled` server if it is running. - $ sudo systemctl stop rippled + ``` + $ sudo systemctl stop rippled + ``` 0. Remove (or comment out) the `online_delete` and `advisory_delete` settings from the `[node_db]` stanza of your server's config file, and change the type to `NuDB` if you haven't already: - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - #online_delete=300000 - #advisory_delete=0 + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + #online_delete=300000 + #advisory_delete=0 + ``` - On a full-history server, you should use NuDB for the ledger store, because RocksDB requires too much RAM when the database is that large. For more information, see [Capacity Planning](capacity-planning.html). You can remove the following performance-related configuration options from the default `[node_db]` stanza, because they only apply to RocksDB: `open_files`, `filter_bits`, `cache_mb`, `file_size_mb`, and `file_size_mult.` + On a full-history server, you should use NuDB for the ledger store, because RocksDB requires too much RAM when the database is that large. For more information, see [Capacity Planning](../../installation/capacity-planning.md). You can remove the following performance-related configuration options from the default `[node_db]` stanza, because they only apply to RocksDB: `open_files`, `filter_bits`, `cache_mb`, `file_size_mb`, and `file_size_mult.` - **Caution:** If you have any history already downloaded with RocksDB, you must either delete that data or change the paths to the databases in the config file when you switch to NuDB. You must change both the `path` field of the `[node_db]` stanza **and** the `[database_path]` (SQLite database) setting. Otherwise, the server may [fail to start](server-wont-start.html#state-db-error). + **Caution:** If you have any history already downloaded with RocksDB, you must either delete that data or change the paths to the databases in the config file when you switch to NuDB. You must change both the `path` field of the `[node_db]` stanza **and** the `[database_path]` (SQLite database) setting. Otherwise, the server may [fail to start](../../troubleshooting/server-wont-start.md#state-db-error). - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 0. Set the `[ledger_history]` stanza of your server's config file to `full`: - [ledger_history] - full + ``` + [ledger_history] + full + ``` 0. Set the `[ips_fixed]` stanza of your server's config file to explicitly peer with at least one server that has full history available. - [ips_fixed] - 169.55.164.20 51235 - 50.22.123.215 51235 + ``` + [ips_fixed] + 169.55.164.20 51235 + 50.22.123.215 51235 + ``` Your server can only download historical data from the peer-to-peer network if one its direct peers has the data available. The easiest way to ensure you can download full history is to peer with a server that already has full history. @@ -61,29 +69,37 @@ To configure your server to acquire and store full history, complete the followi 0. If you have a database dump from another full-history server to use as a basis, set the `[import_db]` stanza of your server's config file to point to the data to be imported. (Otherwise, skip this step.) - [import_db] - type=NuDB - path=/tmp/full_history_dump/ + ``` + [import_db] + type=NuDB + path=/tmp/full_history_dump/ + ``` 0. Remove your server's existing database files, if you have any from previously running `rippled`. After disabling online deletion, the server ignores any data that was downloaded while online deletion was enabled, so you may as well clear up the disk space. For example: - rm -r /var/lib/rippled/db/* + ``` + rm -r /var/lib/rippled/db/* + ``` **Warning:** Be sure that you have not put any files you want to keep in the folder before you delete it. It is generally safe to delete all of a `rippled` server's database files, but you should only do this if the configured database folder is not used for anything other than `rippled`'s databases. 0. Start the `rippled` server, importing the database dump if you have one available: - If you have a database dump to load configured in `[import_db]`, start the server explicitly and include the `--import` [commandline option](commandline-usage.html#daemon-mode-options): + If you have a database dump to load configured in `[import_db]`, start the server explicitly and include the `--import` [commandline option](../../commandline-usage.md#daemon-mode-options): - $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import + ``` + $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import + ``` Importing a large database dump may take several minutes or even hours. During this time, the server is not fully started and synced with the network. Watch the server logs to see the status of the import. If you are not importing a database dump, start the server normally: - $ sudo systemctl start rippled + ``` + $ sudo systemctl start rippled + ``` 0. If you added an `[import_db]` stanza to your server's config file, remove it after the import completes. @@ -93,25 +109,22 @@ To configure your server to acquire and store full history, complete the followi The range of available ledgers reported in the `complete_ledgers` field should increase over time. - The earliest available ledger version in the production XRP Ledger's history is ledger index **32570**. The first two weeks or so of ledger history was lost due to a bug in the server at the time. [Test nets and other chains](parallel-networks.html) generally have history going back to ledger index **1**. + The earliest available ledger version in the production XRP Ledger's history is ledger index **32570**. The first two weeks or so of ledger history was lost due to a bug in the server at the time. [Test nets and other chains](../../../concepts/networks-and-servers/parallel-networks.md) generally have history going back to ledger index **1**. ## See Also - **Concepts:** - - [Ledger History](ledger-history.html) - - [rippled Server Modes](rippled-server-modes.html) + - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) + - [rippled Server Modes](../../../concepts/networks-and-servers/rippled-server-modes.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html), particularly [Disk Space](capacity-planning.html#disk-space) - - [Configure Online Deletion](configure-online-deletion.html) - - [Diagnosing Problems with rippled](diagnosing-problems.html) - - [Understanding Log Messages](understanding-log-messages.html) + - [Capacity Planning](../../installation/capacity-planning.md), particularly [Disk Space](../../installation/capacity-planning.md#disk-space) + - [Configure Online Deletion](configure-online-deletion.md) + - [Diagnosing Problems with rippled](../../troubleshooting/diagnosing-problems.md) + - [Understanding Log Messages](../../troubleshooting/understanding-log-messages.md) - **References:** - [server_info method][] - [can_delete method][] - - [Ledger Data Formats](ledger-data-formats.html) - - [rippled Commandline Usage Reference](commandline-usage.html) + - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) + - [rippled Commandline Usage Reference](../../commandline-usage.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/data-retention/configure-history-sharding.md b/content/infrastructure/configuration/data-retention/configure-history-sharding.md index 0f53359c1f..4d6b0eb77f 100644 --- a/content/infrastructure/configuration/data-retention/configure-history-sharding.md +++ b/content/infrastructure/configuration/data-retention/configure-history-sharding.md @@ -8,7 +8,7 @@ labels: --- # Configure History Sharding -[History Sharding](history-sharding.html) lets servers contribute to preserving historical XRP Ledger data without each server needing to store the full history. By default, `rippled` servers do not store history shards. +[History Sharding](history-sharding.md) lets servers contribute to preserving historical XRP Ledger data without each server needing to store the full history. By default, `rippled` servers do not store history shards. **Tip:** While both validator and tracking (or stock) `rippled` servers can be configured to store history shards, Ripple recommends _not_ configuring validator `rippled` servers to store shards, to reduce overhead on those servers. If you run a validator and want to contribute to storing XRP Ledger history, Ripple recommends you run a separate `rippled` server with history sharding enabled. @@ -25,7 +25,7 @@ Before you configure your `rippled` server to store history shards, you must dec - The history shard store and the ledger store _MUST_ be stored at different file paths. You can configure the ledger store and history store to be on different disks or partitions if desired. - It is possible but redundant to hold full ledger history in both the ledger store and the history shard store. - The time to acquire a shard, number of file handles needed by the `rippled` server, and memory cache usage is directly affected by the size of the shard. -- You can specify additional paths to store older history shards by providing a `[historical_shard_paths]` stanza. These paths may be on different, slower disks because they hold data that is used less often. The most recent two shards (the ones with the largest ledger indexes) are always stored in the path specified in the `[shard_db]` stanza. [New in: rippled 1.7.0][] +- You can specify additional paths to store older history shards by providing a `[historical_shard_paths]` stanza. These paths may be on different, slower disks because they hold data that is used less often. The most recent two shards (the ones with the largest ledger indexes) are always stored in the path specified in the `[shard_db]` stanza. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}New in: rippled 1.7.0{% /badge %} ## 2. Edit rippled.cfg @@ -33,7 +33,7 @@ Before you configure your `rippled` server to store history shards, you must dec Edit your `rippled.cfg` file to add a `[shard_db]` stanza and optionally a `[historical_shard_paths]` stanza. -{% include '_snippets/conf-file-location.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} The following snippet shows an example of a `[shard_db]` stanza: @@ -48,9 +48,9 @@ max_historical_shards=12 /mnt/disk2 ``` -The `type` field of `[shard_db]` can be omitted. If present, it _MUST_ be `NuDB`. [New in: rippled 1.3.1][] +The `type` field of `[shard_db]` can be omitted. If present, it _MUST_ be `NuDB`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.3.1" %}New in: rippled 1.3.1{% /badge %} -**Caution:** If `rippled` detects the wrong type of data in the shard store path, it may [fail to start](server-wont-start.html). You should use a new folder for the shard store. If you previously used a RocksDB shard store (`rippled` 1.2.x and lower), use a different path or delete the RocksDB shard data. +**Caution:** If `rippled` detects the wrong type of data in the shard store path, it may [fail to start](../../troubleshooting/server-wont-start.md). You should use a new folder for the shard store. If you previously used a RocksDB shard store (`rippled` 1.2.x and lower), use a different path or delete the RocksDB shard data. For more information, reference the `[shard_db]` example in the [rippled.cfg configuration example](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg). @@ -68,24 +68,21 @@ This folder should contain a numbered folder for each shard your server has. At You can instruct your server to download and import a shard from an archive file using the [download_shard method][]. -To list the shards your server and its peers have available, you can use the [crawl_shards method][] or the [Peer Crawler](peer-crawler.html). +To list the shards your server and its peers have available, you can use the [crawl_shards method][] or the [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md). ## See Also - **Concepts:** - - [Ledger History](ledger-history.html) - - [Online Deletion](online-deletion.html) + - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) + - [Online Deletion](online-deletion.md) - **Tutorials:** - - [Configure Online Deletion](configure-online-deletion.html) - - [Configure the Peer Crawler](configure-the-peer-crawler.html) - - [Capacity Planning](capacity-planning.html) + - [Configure Online Deletion](configure-online-deletion.md) + - [Configure the Peer Crawler](../peering/configure-the-peer-crawler.md) + - [Capacity Planning](../../installation/capacity-planning.md) - **References:** - [download_shard method][] - [crawl_shards method][] - - [Ledger Data Formats](ledger-data-formats.html) + - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/data-retention/configure-online-deletion.md b/content/infrastructure/configuration/data-retention/configure-online-deletion.md index 18290d531c..9dce318445 100644 --- a/content/infrastructure/configuration/data-retention/configure-online-deletion.md +++ b/content/infrastructure/configuration/data-retention/configure-online-deletion.md @@ -8,7 +8,7 @@ labels: --- # Configure Online Deletion -In its default configuration, [the `rippled` server](xrpl-servers.html) [deletes history](online-deletion.html) older than the most recent 2000 [ledger versions](ledgers.html), keeping approximately 15 minutes of [ledger history](ledger-history.html) (based on the current rate between ledgers). This page describes how to configure the amount of history your `rippled` server stores before deleting. +In its default configuration, [the `rippled` server](../../../concepts/networks-and-servers/index.md) [deletes history](online-deletion.md) older than the most recent 2000 [ledger versions](../../../concepts/ledgers/index.md), keeping approximately 15 minutes of [ledger history](../../../concepts/networks-and-servers/ledger-history.md) (based on the current rate between ledgers). This page describes how to configure the amount of history your `rippled` server stores before deleting. ## Prerequisites @@ -16,11 +16,11 @@ This tutorial assumes your server meets the following prerequisites: - You are on a supported operating system: Ubuntu Linux, Red Hat Enterprise Linux (RHEL), or CentOS. -- The `rippled` server is already [installed](install-rippled.html) and [online deletion](online-deletion.html) is enabled. +- The `rippled` server is already [installed](../../installation/index.md) and [online deletion](online-deletion.md) is enabled. If you followed the installation instructions for a recommended platform, online deletion is enabled by default. -- Your server has [enough disk space](capacity-planning.html#disk-space) to store your chosen amount of history in its ledger store. +- Your server has [enough disk space](../../installation/capacity-planning.md#disk-space) to store your chosen amount of history in its ledger store. ## Configuration Steps @@ -29,24 +29,28 @@ To change the amount of history your server stores, perform the following steps: 1. Decide how many ledger versions' worth of history to store. - New ledger versions are usually validated 3 to 4 seconds apart, so the number of ledger versions corresponds roughly to the amount of time you want to store. See [Capacity Planning](capacity-planning.html) for details of how much storage is required for different configurations. + New ledger versions are usually validated 3 to 4 seconds apart, so the number of ledger versions corresponds roughly to the amount of time you want to store. See [Capacity Planning](../../installation/capacity-planning.md) for details of how much storage is required for different configurations. Online deletion is based on how many ledger versions to keep _after_ deleting history, so you should have enough disk space to store twice as many ledgers as you set it to keep. 0. In your `rippled`'s config file, edit the `online_delete` field of the `[node_db]` stanza. - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=0 + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=0 + ``` Set `online_delete` to the minimum number of ledger versions to keep after running online deletion. With automatic deletion (the default), the server typically runs deletion when it has accumulated about twice this many ledger versions. - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 0. Start (or restart) the `rippled` service. - $ sudo systemctl restart rippled + ``` + $ sudo systemctl restart rippled + ``` 0. Wait for your server to sync to the network. @@ -58,33 +62,28 @@ To change the amount of history your server stores, perform the following steps: After online deletion runs, the `complete_ledgers` range reflects that older ledgers are no longer available. As your server accumulates history, the total number of ledgers available should slowly increase to twice the `online_delete` value you configured, then decrease when online deletion runs. -0. Monitor your `rippled` logs for messages that begin with `SHAMapStore::WRN`. This can indicate that [online deletion is being interrupted](online-deletion.html#interrupting-online-deletion) because your server fell out of sync with the network. +0. Monitor your `rippled` logs for messages that begin with `SHAMapStore::WRN`. This can indicate that [online deletion is being interrupted](online-deletion.md#interrupting-online-deletion) because your server fell out of sync with the network. If this happens regularly, your server may not have sufficient specifications to keep up with the ledger while running online deletion. Check that other services on the same hardware (such as scheduled backups or security scans) aren't competing with the `rippled` server for resources. You may want to try any of the following: - - Increase your system specs. See [System Requirements](system-requirements.html) for recommendations. + - Increase your system specs. See [System Requirements](../../installation/system-requirements.md) for recommendations. - Change your configuration to store less history. (Step 2 of this tutorial) - - Change your server's [`node_size` parameter](capacity-planning.html). - - Use [NuDB instead of RocksDB](capacity-planning.html) for the ledger store. - - [Schedule online deletion using Advisory Deletion](configure-advisory-deletion.html). + - Change your server's [`node_size` parameter](../../installation/capacity-planning.md). + - Use [NuDB instead of RocksDB](../../installation/capacity-planning.md) for the ledger store. + - [Schedule online deletion using Advisory Deletion](configure-advisory-deletion.md). ## See Also - **Concepts:** - - [Ledger History](ledger-history.html) - - [Online Deletion](online-deletion.html) + - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) + - [Online Deletion](online-deletion.md) - **Tutorials:** - - [Configure Advisory Deletion](configure-advisory-deletion.html) - - [Configure History Sharding](configure-history-sharding.html) - - [Capacity Planning](capacity-planning.html) + - [Configure Advisory Deletion](configure-advisory-deletion.md) + - [Configure History Sharding](configure-history-sharding.md) + - [Capacity Planning](../../installation/capacity-planning.md) - **References:** - [server_info method][] - - [Ledger Data Formats](ledger-data-formats.html) + - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/data-retention/history-sharding.md b/content/infrastructure/configuration/data-retention/history-sharding.md index 0485b85c3a..a961da3a8f 100644 --- a/content/infrastructure/configuration/data-retention/history-sharding.md +++ b/content/infrastructure/configuration/data-retention/history-sharding.md @@ -8,13 +8,13 @@ labels: --- # History Sharding -[Introduced in: rippled 0.90.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}Introduced in: rippled 0.90.0{% /badge %} -As XRP Ledger servers run, they naturally produce a database containing data about the ledgers they built or acquired during network runtime. Each server stores that ledger data in its _ledger store_, but [online deletion](online-deletion.html) removes old ledgers' data automatically over time. History sharding provides a separate storage system for older ledger history so that the network can divide up the work of recording the entire (multiple terabyte) history of the XRP Ledger. +As XRP Ledger servers run, they naturally produce a database containing data about the ledgers they built or acquired during network runtime. Each server stores that ledger data in its _ledger store_, but [online deletion](online-deletion.md) removes old ledgers' data automatically over time. History sharding provides a separate storage system for older ledger history so that the network can divide up the work of recording the entire (multiple terabyte) history of the XRP Ledger. Historical sharding distributes the transaction history of the XRP Ledger into segments, called shards, across servers in the XRP Ledger network. A shard is a range of ledgers. A server uses mostly the same format for ledgers in both the ledger store and the shard store, but the two stores are separate. -[![XRP Ledger Network: Ledger Store and Shard Store Diagram](img/xrp-ledger-network-ledger-store-and-shard-store.png)](img/xrp-ledger-network-ledger-store-and-shard-store.png) +[![XRP Ledger Network: Ledger Store and Shard Store Diagram](/img/xrp-ledger-network-ledger-store-and-shard-store.png)](/img/xrp-ledger-network-ledger-store-and-shard-store.png) @@ -30,25 +30,21 @@ The server selects and downloads additional shards until it reaches the maximum The history of all ledgers is shared by servers agreeing to keep particular ranges of historical ledgers. This makes it possible for servers to confirm that they have all the data they agreed to maintain, and produce "proof trees" or "ledger deltas" which shows how each ledger in the blockchain's history was the result of applying transactions to the previous state. Since servers that are configured with history sharding randomly select the shards that they store, the entire history of all closed ledgers is stored in a normal distribution curve, increasing the probability that the XRP Ledger Network evenly maintains the history. -History shards are recorded in a deterministic format, so that any two servers assembling the same shard produce the exact same binary data no matter what order they acquired the data and where they got it from. This makes it possible to compare checksums or cryptographic hashes of the shard data to verify the integrity of the data, and it is possible to share and import history shards through other formats. (For example, you could download shard data using Bittorrent or acquire physical media with the shard data pre-loaded on it, and verify that it matches the data that can be downloaded from the network.) [New in: rippled 1.8.1][] +History shards are recorded in a deterministic format, so that any two servers assembling the same shard produce the exact same binary data no matter what order they acquired the data and where they got it from. This makes it possible to compare checksums or cryptographic hashes of the shard data to verify the integrity of the data, and it is possible to share and import history shards through other formats. (For example, you could download shard data using Bittorrent or acquire physical media with the shard data pre-loaded on it, and verify that it matches the data that can be downloaded from the network.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} ## See Also - **Concepts:** - - [Ledgers](ledgers.html) - - [Consensus](consensus.html) + - [Ledgers](../../../concepts/ledgers/index.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Configure `rippled`](configure-rippled.html) - - [Configure History Sharding](configure-history-sharding.html) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Configure `rippled`](../index.md) + - [Configure History Sharding](configure-history-sharding.md) - **References:** - [crawl_shards method][] - [download_shard method][] - - [Peer Crawler](peer-crawler.html) + - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/data-retention/index.md b/content/infrastructure/configuration/data-retention/index.md index 103cf6d772..766cb66c92 100644 --- a/content/infrastructure/configuration/data-retention/index.md +++ b/content/infrastructure/configuration/data-retention/index.md @@ -1,9 +1,13 @@ --- html: data-retention.html parent: configure-rippled.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Control how much data your server should keep and when it should remove old data. --- # Data Retention -Control how much data your server should keep and when it should remove old data, including old versions of the ledger state and past transactions. \ No newline at end of file +Control how much data your server should keep and when it should remove old data, including old versions of the ledger state and past transactions. + + +{% child-pages /%} diff --git a/content/infrastructure/configuration/data-retention/online-deletion.md b/content/infrastructure/configuration/data-retention/online-deletion.md index ad10f3fada..ce4166bd59 100644 --- a/content/infrastructure/configuration/data-retention/online-deletion.md +++ b/content/infrastructure/configuration/data-retention/online-deletion.md @@ -9,18 +9,18 @@ labels: # Online Deletion [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/misc/SHAMapStoreImp.cpp "Source") -The online deletion feature lets the `rippled` server delete the server's local copy of old ledger versions to keep disk usage from rapidly growing over time. The default config file sets online deletion to run automatically, but online deletion can also be configured to run only when prompted. [New in: rippled 0.27.0][] +The online deletion feature lets the `rippled` server delete the server's local copy of old ledger versions to keep disk usage from rapidly growing over time. The default config file sets online deletion to run automatically, but online deletion can also be configured to run only when prompted. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.27.0" %}New in: rippled 0.27.0{% /badge %} The server always keeps the complete _current_ state of the ledger, with all the balances and settings it contains. The deleted data includes older transactions and versions of the ledger state that are older than the stored history. The default config file sets the `rippled` server to keep the most recent 2000 ledger versions and automatically delete older data. -**Tip:** Even with online deletion, the amount of disk space required to store the same time span's worth of ledger data increases over time, because the size of individual ledger versions tends to grow over time. This growth is very slow in comparison to the accumulation of data that occurs without deleting old ledgers. For more information on disk space needs, see [Capacity Planning](capacity-planning.html). +**Tip:** Even with online deletion, the amount of disk space required to store the same time span's worth of ledger data increases over time, because the size of individual ledger versions tends to grow over time. This growth is very slow in comparison to the accumulation of data that occurs without deleting old ledgers. For more information on disk space needs, see [Capacity Planning](../../installation/capacity-planning.md). ## Background -The `rippled` server stores [ledger history](ledger-history.html) in its _ledger store_. This data accumulates over time. +The `rippled` server stores [ledger history](../../../concepts/networks-and-servers/ledger-history.md) in its _ledger store_. This data accumulates over time. Inside the ledger store, ledger data is "de-duplicated". In other words, data that doesn't change from version to version is only stored once. The records themselves in the ledger store do not indicate which ledger version(s) contain them; part of the work of online deletion is identifying which records are only used by outdated ledger versions. This process is time consuming and affects the disk I/O and application cache, so the server cannot delete old data every time it closes a new ledger. @@ -29,7 +29,7 @@ Inside the ledger store, ledger data is "de-duplicated". In other words, data th The online deletion settings configure how many ledger versions the `rippled` server should keep available in the ledger store at a time. However, the specified number is a guideline, not a hard rule: -- The server never deletes data more recent than the configured number of ledger versions, but it may have less than that amount available if it has not been running for long enough or if it lost sync with the network at any time. (The server attempts to backfill at least some history; see [fetching history](ledger-history.html#fetching-history) for details.) +- The server never deletes data more recent than the configured number of ledger versions, but it may have less than that amount available if it has not been running for long enough or if it lost sync with the network at any time. (The server attempts to backfill at least some history; see [fetching history](../../../concepts/networks-and-servers/ledger-history.md#fetching-history) for details.) - The server may store up to slightly over twice the configured number of ledger versions if online deletion is set to run automatically. (Each time it runs, it reduces the number of stored ledger versions to approximately the configured number.) If online deletion is delayed because the server is busy, ledger versions can continue to accumulate. When functioning normally, online deletion begins when the server has twice the configured number of ledger versions, but it may not complete until after several more ledger versions have accumulated. @@ -55,7 +55,7 @@ The server only counts validated ledger versions when deciding how far back it c ### Interrupting Online Deletion -Online deletion automatically stops if the [server state](rippled-server-states.html) becomes less than `full`. If this happens, the server writes a log message with the prefix `SHAMapStore::WRN`. The server attempts to start online deletion again after the next validated ledger version after becoming fully synced. +Online deletion automatically stops if the [server state](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md) becomes less than `full`. If this happens, the server writes a log message with the prefix `SHAMapStore::WRN`. The server attempts to start online deletion again after the next validated ledger version after becoming fully synced. If you stop the server or it crashes while online deletion is running, online deletion resumes after the server is restarted and the server becomes fully synced. @@ -68,7 +68,7 @@ The following settings relate to online deletion: - **`online_delete`** - Specify how many validated ledger versions to keep. The server periodically deletes any ledger versions that are older than this number. If not specified, no ledgers are deleted. - The default config file specifies 2000 for this value. This cannot be less than 256, because some events like [Fee Voting](fee-voting.html) and the [Amendment Process](amendments.html#amendment-process) update only every 256 ledgers. + The default config file specifies 2000 for this value. This cannot be less than 256, because some events like [Fee Voting](../../../concepts/consensus-protocol/fee-voting.md) and the [Amendment Process](../../../concepts/networks-and-servers/amendments.md#amendment-process) update only every 256 ledgers. **Caution:** If you run `rippled` with `online_delete` disabled, then later enable `online_delete` and restart the server, the server disregards but does not delete existing ledger history that your server already downloaded while `online_delete` was disabled. To save disk space, delete your existing history before re-starting the server after changing the `online_delete` setting. @@ -78,7 +78,7 @@ The following settings relate to online deletion: The following diagram shows the relationship between `online_delete` and `ledger_history` settings: - {{ include_svg("img/online_delete-vs-ledger_history.svg", "Ledgers older than `online_delete` are automatically deleted. Ledgers newer than `ledger_history` are backfilled. Ledgers in between are kept if available but not backfilled") }} + [{% inline-svg file="/img/online_delete-vs-ledger_history.svg" /%}](/img/online_delete-vs-ledger_history.svg "Ledgers older than `online_delete` are automatically deleted. Ledgers newer than `ledger_history` are backfilled. Ledgers in between are kept if available but not backfilled") - **`advisory_delete`** - If enabled, online deletion is not scheduled automatically. Instead, an administrator must manually trigger online deletion. Use the value `0` for disabled or `1` for enabled. @@ -92,9 +92,9 @@ The following settings relate to online deletion: The following diagram shows how `fetch_depth` works: - {{ include_svg("img/fetch_depth.svg", "Ledger versions older than fetch_depth are not served to peers") }} + [{% inline-svg file="/img/fetch_depth.svg" /%}](/img/fetch_depth.svg "Ledger versions older than fetch_depth are not served to peers") -For estimates of how much disk space is required to store different amounts of history, see [Capacity Planning](capacity-planning.html#disk-space). +For estimates of how much disk space is required to store different amounts of history, see [Capacity Planning](../../installation/capacity-planning.md#disk-space). ### Advisory Deletion @@ -118,15 +118,15 @@ When it comes time for online deletion, the server first walks through the oldes ## See Also - **Concepts:** - - [Ledgers](ledgers.html) - - [Consensus](consensus.html) + - [Ledgers](../../../concepts/ledgers/index.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Configure `rippled`](configure-rippled.html) - - [Configure Online Deletion](configure-online-deletion.html) - - [Configure Advisory Deletion](configure-advisory-deletion.html) - - [Configure History Sharding](configure-history-sharding.html) - - [Configure Full History](configure-full-history.html) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Configure `rippled`](../index.md) + - [Configure Online Deletion](configure-online-deletion.md) + - [Configure Advisory Deletion](configure-advisory-deletion.md) + - [Configure History Sharding](configure-history-sharding.md) + - [Configure Full History](configure-full-history.md) - **References:** - [ledger method][] - [server_info method][] @@ -134,8 +134,4 @@ When it comes time for online deletion, the server first walks through the oldes - [can_delete method][] - [ledger_cleaner method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/enable-public-signing.md b/content/infrastructure/configuration/enable-public-signing.md index eb4cbcf0d7..c6592320da 100644 --- a/content/infrastructure/configuration/enable-public-signing.md +++ b/content/infrastructure/configuration/enable-public-signing.md @@ -8,9 +8,9 @@ labels: --- # Enable Public Signing -By default, the signing methods for [`rippled`](xrpl-servers.html) are limited to [administrative connections](admin-api-methods.html). If you want to allow signing methods to be used as public API methods (like with versions of `rippled` before v1.1.0), you can enable it with a configuration change. [New in: rippled 1.1.0][] +By default, the signing methods for [`rippled`](../../concepts/networks-and-servers/index.md) are limited to [administrative connections](../../references/http-websocket-apis/admin-api-methods/index.md). If you want to allow signing methods to be used as public API methods (like with versions of `rippled` before v1.1.0), you can enable it with a configuration change. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}New in: rippled 1.1.0{% /badge %} -This enables the following methods to be used on "public" [JSON-RPC and WebSocket connections](get-started-using-http-websocket-apis.html), if your server accepts them: +This enables the following methods to be used on "public" [JSON-RPC and WebSocket connections](../../tutorials/get-started/get-started-using-http-websocket-apis.md), if your server accepts them: - [sign][sign method] - [sign_for][sign_for method] @@ -24,35 +24,37 @@ To enable public signing, perform the following steps: 1. Edit your `rippled`'s config file. - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. Add the following stanza to your config file, and save the changes: - [signing_support] - true + ``` + [signing_support] + true + ``` 3. Restart your `rippled` server: - systemctl restart rippled + ``` + systemctl restart rippled + ``` ## See Also - **Concepts:** - - [Transactions](transactions.html) - - [Cryptographic Keys](cryptographic-keys.html) + - [Transactions](../../concepts/transactions/index.md) + - [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md) - **Tutorials:** - - [Set Up Secure Signing](secure-signing.html) - - [Get Started Using HTTP / WebSocket APIs](get-started-using-http-websocket-apis.html) - - [Get Started Using JavaScript](get-started-using-javascript.html) + - [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) + - [Get Started Using HTTP / WebSocket APIs](../../tutorials/get-started/get-started-using-http-websocket-apis.md) + - [Get Started Using JavaScript](../../tutorials/get-started/get-started-using-javascript.md) - **References:** - [sign method][] - [sign_for method][] - [submit method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/index.md b/content/infrastructure/configuration/index.md index 181302690e..1339f5136a 100644 --- a/content/infrastructure/configuration/index.md +++ b/content/infrastructure/configuration/index.md @@ -1,9 +1,13 @@ --- html: configure-rippled.html parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Customize the configuration of an XRP Ledger server. --- # Configuration -Customize the configuration of an XRP Ledger server. \ No newline at end of file +Customize the configuration of an XRP Ledger server. + + +{% child-pages /%} diff --git a/content/infrastructure/configuration/peering/cluster-rippled-servers.md b/content/infrastructure/configuration/peering/cluster-rippled-servers.md index d278207090..003fdafcdf 100644 --- a/content/infrastructure/configuration/peering/cluster-rippled-servers.md +++ b/content/infrastructure/configuration/peering/cluster-rippled-servers.md @@ -7,7 +7,7 @@ labels: --- # Cluster rippled Servers -If you run multiple [`rippled` servers](xrpl-servers.html) in the same data center, you can configure them in a [cluster](clustering.html) to maximize efficiency. To configure clustering: +If you run multiple [`rippled` servers](../../../concepts/networks-and-servers/index.md) in the same data center, you can configure them in a [cluster](../../../concepts/networks-and-servers/clustering.md) to maximize efficiency. To configure clustering: 1. For each of your servers, note the IP address of the server. @@ -15,18 +15,20 @@ If you run multiple [`rippled` servers](xrpl-servers.html) in the same data cent For example, using the commandline interface: - $ rippled validation_create + ``` + $ rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` Save the `validation_seed` and `validation_public_key` parameters from each response somewhere secure. @@ -34,9 +36,11 @@ If you run multiple [`rippled` servers](xrpl-servers.html) in the same data cent 1. In the `[ips_fixed]` section, list the IP address and port of each _other_ member of the cluster. For each of those servers, the port number should match the `protocol = peer` port (usually 51235) from that server's `rippled.cfg`. For example: - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` This defines specific peer servers to which this server should always attempt to maintain a direct peer-to-peer connection. @@ -44,61 +48,66 @@ If you run multiple [`rippled` servers](xrpl-servers.html) in the same data cent 2. In the `[node_seed]` section, set the server's node seed to one of the `validation_seed` values you generated using the [validation_create method][] in step 2. Each server must use a unique node seed. For example: - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` This defines the key pair the server uses to sign peer-to-peer communications, excluding validation messages. 3. In the `[cluster_nodes]` section, set the members of the server's cluster, identified by their `validation_public_key` values. Each server should list the public keys of all _other_ members of the cluster here. Optionally, add a custom name for each server. For example: - [cluster_nodes] - n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes - n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman + ``` + [cluster_nodes] + n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes + n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman + ``` This defines the key pairs the server uses to recognize members of its cluster. 4. After saving the config file, restart `rippled` on each server. - # systemctl restart rippled + ``` + # systemctl restart rippled + ``` 5. To confirm that each server is now a member of the cluster, use the [peers method][]. The `cluster` field should list the public keys and (if configured) the custom names for each server. For example, using the commandline interface: - $ rippled peers + ``` + $ rippled peers - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "cluster" : { - "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { - "tag": "keynes", - "age": 1 - }, - "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { - "tag": "friedman", - "age": 1 - } + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "cluster" : { + "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { + "tag": "keynes", + "age": 1 }, - "peers" : [ - ... (omitted) ... - ], - "status" : "success" - } - } + "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { + "tag": "friedman", + "age": 1 + } + }, + "peers" : [ + ... (omitted) ... + ], + "status" : "success" + } + } + ``` ## See Also - **Concepts:** - - [Peer Protocol](peer-protocol.html) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - **Tutorials:** - - [Install rippled](install-rippled.html) + - [Install rippled](../../installation/index.md) - **References:** - [validation_create method][] - [peers method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/peering/configure-a-private-server.md b/content/infrastructure/configuration/peering/configure-a-private-server.md index 93c2fc048f..d7245c6923 100644 --- a/content/infrastructure/configuration/peering/configure-a-private-server.md +++ b/content/infrastructure/configuration/peering/configure-a-private-server.md @@ -8,14 +8,14 @@ labels: --- # Configure a Private Server -A [private server](peer-protocol.html#private-peers) is a `rippled` server that connects to the network only through specific, trusted peers instead of connecting directly to discovered peers in the open peer-to-peer network. This kind of configuration is an optional precaution most commonly recommended for [validators](run-rippled-as-a-validator.html), but it can be useful for other specific purposes. +A [private server](../../../concepts/networks-and-servers/peer-protocol.md#private-peers) is a `rippled` server that connects to the network only through specific, trusted peers instead of connecting directly to discovered peers in the open peer-to-peer network. This kind of configuration is an optional precaution most commonly recommended for [validators](../server-modes/run-rippled-as-a-validator.md), but it can be useful for other specific purposes. ## Prerequisites To use a private server, you must meet the following requirements: -- You must have [`rippled` installed](install-rippled.html) and updated to the latest version, but not running yet. -- You must decide whether to connect through **proxies** you run yourself, or through **public hubs**. For a comparison of these options, see [Pros and Cons of Peering Configurations](peer-protocol.html#pros-and-cons-of-peering-configurations). +- You must have [`rippled` installed](../../installation/index.md) and updated to the latest version, but not running yet. +- You must decide whether to connect through **proxies** you run yourself, or through **public hubs**. For a comparison of these options, see [Pros and Cons of Peering Configurations](../../../concepts/networks-and-servers/peer-protocol.md#pros-and-cons-of-peering-configurations). - If you are using proxies, you must have additional machines with `rippled` installed and running to use as the proxies. These servers must be able to connect to the outside network and to your private server. - For either configuration, you must know the IP addresses and ports of the peers you intend to connect to. @@ -25,16 +25,20 @@ To set up a specific server as a private peer, complete the following steps: 1. Edit your `rippled`'s config file. - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. Enable private peering. Add or uncomment the following stanza in your config file: - [peer_private] - 1 + ``` + [peer_private] + 1 + ``` 3. Add fixed peers. @@ -42,15 +46,19 @@ To set up a specific server as a private peer, complete the following steps: For example, to connect using **public hubs**, you could use the following stanza: - [ips_fixed] - r.ripple.com 51235 - zaphod.alloy.ee 51235 + ``` + [ips_fixed] + r.ripple.com 51235 + zaphod.alloy.ee 51235 + ``` If your server connects using **proxies**, the IP addresses and ports should match the configurations of the `rippled` servers you are using as proxies. For each of those servers, the port number should match the `protocol = peer` port in that server's config file (usually 51235). For example, your configuration might look like this: - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` **Note:** If you omit the port number, the server uses port 2459, the IANA-assigned port for the XRP Ledger protocol. @@ -58,15 +66,19 @@ To set up a specific server as a private peer, complete the following steps: If you are using public hubs, skip this step. - If you are using proxies, [configure the proxies as a cluster](cluster-rippled-servers.html) that includes your private peer. Each member of the cluster should have an `[ips_fixed]` stanza that lists each _other_ member of the cluster. However, **only the private server** should have a `[peer_private]` stanza. + If you are using proxies, [configure the proxies as a cluster](cluster-rippled-servers.md) that includes your private peer. Each member of the cluster should have an `[ips_fixed]` stanza that lists each _other_ member of the cluster. However, **only the private server** should have a `[peer_private]` stanza. Restart `rippled` on the proxies one-by-one. On each proxy server: - sudo service systemctl restart rippled + ``` + sudo service systemctl restart rippled + ``` 5. Start `rippled` on the private server. - sudo service systemctl start rippled + ``` + sudo service systemctl start rippled + ``` 6. Use the [peers method][] to confirm that your private server is connected _only_ to its peers. @@ -75,26 +87,22 @@ To set up a specific server as a private peer, complete the following steps: ## Next Steps -As an additional precaution, you should configure your firewall to block incoming connections to your private server from servers that are not your specific peers. If you are running proxy servers, [forward peer ports](forward-ports-for-peering.html) through your firewall to the proxies, but **not** to the private peer. The exact details of how to configure this depend on what firewall you use. +As an additional precaution, you should configure your firewall to block incoming connections to your private server from servers that are not your specific peers. If you are running proxy servers, [forward peer ports](forward-ports-for-peering.md) through your firewall to the proxies, but **not** to the private peer. The exact details of how to configure this depend on what firewall you use. Be sure the firewall **does not block** outgoing HTTP connections on port 80. The default configuration uses this port to download the latest recommended validator list from **vl.ripple.com**. Without a validator list, the server does not know which validators to trust and cannot recognize when the network reaches a consensus. ## See Also - **Concepts:** - - [Peer Protocol](peer-protocol.html) - - [Consensus](consensus.html) - - [Parallel Networks](parallel-networks.html) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) + - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) - **Tutorials:** - - [Configure the Peer Crawler](configure-the-peer-crawler.html) + - [Configure the Peer Crawler](configure-the-peer-crawler.md) - **References:** - [peers method][] - [connect method][] - [fetch_info method][] - - [Peer Crawler](peer-crawler.html) + - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/peering/configure-the-peer-crawler.md b/content/infrastructure/configuration/peering/configure-the-peer-crawler.md index bcdee104f7..34e575b46c 100644 --- a/content/infrastructure/configuration/peering/configure-the-peer-crawler.md +++ b/content/infrastructure/configuration/peering/configure-the-peer-crawler.md @@ -8,7 +8,7 @@ labels: --- # Configure the Peer Crawler -By default, [`rippled` servers](xrpl-servers.html) provide statistics publicly to anyone who asks using the [peer crawler API](peer-crawler.html), to make it easier to track the health and topology of [the XRP Ledger's peer-to-peer network](peer-protocol.html). You can configure your server to provide more or less information, or to reject peer crawler requests entirely. +By default, [`rippled` servers](../../../concepts/networks-and-servers/index.md) provide statistics publicly to anyone who asks using the [peer crawler API](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md), to make it easier to track the health and topology of [the XRP Ledger's peer-to-peer network](../../../concepts/networks-and-servers/peer-protocol.md). You can configure your server to provide more or less information, or to reject peer crawler requests entirely. This document contains steps for two options: @@ -21,23 +21,29 @@ To configure how much information your server provides in response to peer crawl 1. Edit your `rippled`'s config file. - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. Add or update the `[crawl]` stanza in your config file, and save the changes: - [crawl] - overlay = 1 - server = 1 - counts = 0 - unl = 1 + ``` + [crawl] + overlay = 1 + server = 1 + counts = 0 + unl = 1 + ``` - The fields in this stanza control which fields the server returns in the [peer crawler response](peer-crawler.html#response-format). The names of the config fields match the fields of the API response. A setting with a value of `1` means to include the field in the response. A value of `0` means to omit that field from the response. This example shows the default values for each setting. + The fields in this stanza control which fields the server returns in the [peer crawler response](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md#response-format). The names of the config fields match the fields of the API response. A setting with a value of `1` means to include the field in the response. A value of `0` means to omit that field from the response. This example shows the default values for each setting. 3. After saving the changes to the config file, restart your `rippled` server to apply the updated configuration: - systemctl restart rippled + ``` + systemctl restart rippled + ``` ## Disable the Peer Crawler @@ -46,34 +52,37 @@ To disable the peer crawler API on your server, so it does not respond to peer c 1. Edit your `rippled`'s config file. - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. Add or update the `[crawl]` stanza in your config file, and save the changes: - [crawl] - 0 + ``` + [crawl] + 0 + ``` Remove or comment out all other contents of the crawl stanza. 3. After saving the changes to the config file, restart your `rippled` server to apply the updated configuration: - systemctl restart rippled + ``` + systemctl restart rippled + ``` ## See Also - **Concepts:** - - [Peer Protocol](peer-protocol.html) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - **Tutorials:** - - [Manage the rippled Server](manage-the-rippled-server.html) + - [Manage the rippled Server](../../installation/install-rippled-on-ubuntu.md) - **References:** - [server_info method][] - [peers method][] - - [Peer Crawler](peer-crawler.html) + - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/peering/enable-link-compression.md b/content/infrastructure/configuration/peering/enable-link-compression.md index f7842ba92b..3b312528dc 100644 --- a/content/infrastructure/configuration/peering/enable-link-compression.md +++ b/content/infrastructure/configuration/peering/enable-link-compression.md @@ -7,7 +7,7 @@ labels: --- # Enable Link Compression -The `rippled` server can save bandwidth by compressing its [peer-to-peer communications](peer-protocol.html), at a cost of greater CPU usage. If you enable link compression, the server automatically compresses communications with peer servers that also have link compression enabled. +The `rippled` server can save bandwidth by compressing its [peer-to-peer communications](../../../concepts/networks-and-servers/peer-protocol.md), at a cost of greater CPU usage. If you enable link compression, the server automatically compresses communications with peer servers that also have link compression enabled. ## Steps @@ -19,7 +19,7 @@ To enable link compression on your server, complete the following steps: $ vim /etc/opt/ripple/rippled.cfg ``` -{% include '_snippets/conf-file-location.md' %} +{% partial file="/_snippets/conf-file-location.md" /%} ### 2. In the config file, add or uncomment the `[compression]` stanza. @@ -42,10 +42,7 @@ After the restart, your server automatically uses link compression with other pe ## See Also -- [Capacity Planning](capacity-planning.html) -- [Peer Protocol](peer-protocol.html) +- [Capacity Planning](../../installation/capacity-planning.md) +- [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/peering/forward-ports-for-peering.md b/content/infrastructure/configuration/peering/forward-ports-for-peering.md index 27e8b7c3c1..2bed567490 100644 --- a/content/infrastructure/configuration/peering/forward-ports-for-peering.md +++ b/content/infrastructure/configuration/peering/forward-ports-for-peering.md @@ -7,7 +7,7 @@ labels: --- # Forward Ports for Peering -Servers in the XRP Ledger peer-to-peer network communicate over the [peer protocol](peer-protocol.html). For the best combination of security and connectivity to the rest of the network, you should use a firewall to protect your server from most ports, but open or forward the peer protocol port. +Servers in the XRP Ledger peer-to-peer network communicate over the [peer protocol](../../../concepts/networks-and-servers/peer-protocol.md). For the best combination of security and connectivity to the rest of the network, you should use a firewall to protect your server from most ports, but open or forward the peer protocol port. While your `rippled` server is running, you can check to see how many peers you have by running the [server_info method][]. The `peers` field of the `info` object shows how many peers are currently connected to your server. If this number is exactly 10 or 11, that usually means your firewall is blocking incoming connections. @@ -67,18 +67,15 @@ If you are using a hosting service with a virtual firewall (for example, [AWS Se ## See Also - **Concepts:** - - [Peer Protocol](peer-protocol.html) - - [The `rippled` Server](xrpl-servers.html) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Troubleshoot the `rippled` Server](troubleshoot-the-rippled-server.html) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) - **References:** - [connect method][] - [peers method][] - [print method][] - [server_info method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/peering/index.md b/content/infrastructure/configuration/peering/index.md index dea021d96c..03a270a9ed 100644 --- a/content/infrastructure/configuration/peering/index.md +++ b/content/infrastructure/configuration/peering/index.md @@ -2,7 +2,8 @@ html: configure-peering.html name: Peering parent: configure-rippled.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Configure how your server connects to the peer-to-peer network. labels: - Core Server @@ -11,4 +12,7 @@ labels: The XRP Ledger's peer-to-peer protocol automatically manages peer connections in most cases. In some cases, you may want to manually adjust which peers your server connects to, to maximize your server's availability and connectivity with the rest of the network. -If you run multiple servers in the same datacenter, you may want [to cluster them](cluster-rippled-servers.html) to improve efficiency. You can use reserved peer slots for servers you don't run but want to stay connected to, such as important hubs in the topology of the peer-to-peer network. For other peers, the server can automatically find peers and manage its connections, although you may occasionally want to intervene to block a peer that's behaving undesirably. +If you run multiple servers in the same datacenter, you may want [to cluster them](cluster-rippled-servers.md) to improve efficiency. You can use reserved peer slots for servers you don't run but want to stay connected to, such as important hubs in the topology of the peer-to-peer network. For other peers, the server can automatically find peers and manage its connections, although you may occasionally want to intervene to block a peer that's behaving undesirably. + + +{% child-pages /%} diff --git a/content/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md b/content/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md index fad1577ec5..0def7262aa 100644 --- a/content/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md +++ b/content/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md @@ -7,26 +7,25 @@ labels: --- # Manually Connect to a Specific Peer -Use these steps to manually connect your server to a specific [peer](peer-protocol.html) in the XRP Ledger network. +Use these steps to manually connect your server to a specific [peer](../../../concepts/networks-and-servers/peer-protocol.md) in the XRP Ledger network. -**Tip:** If you want to make sure your server automatically connects to this server on startup and remains connected later, you may want to configure a [peer reservation](use-a-peer-reservation.html) for that peer. +**Tip:** If you want to make sure your server automatically connects to this server on startup and remains connected later, you may want to configure a [peer reservation](use-a-peer-reservation.md) for that peer. ## Prerequisites - You must know the IP address of the peer you want to connect to. -- You must know what port the peer you want to connect to uses for the XRP Ledger [peer protocol](peer-protocol.html). The default config file uses port 51235. -- You must have a network connection from your server to the peer. For example, the peer server must [forward the appropriate port through its firewall](forward-ports-for-peering.html). -- The peer server must have available peer slots. If the peer is already at its maximum number of peers, you can ask the peer server's operator to add a [peer reservation](use-a-peer-reservation.html) for your server. +- You must know what port the peer you want to connect to uses for the XRP Ledger [peer protocol](../../../concepts/networks-and-servers/peer-protocol.md). The default config file uses port 51235. +- You must have a network connection from your server to the peer. For example, the peer server must [forward the appropriate port through its firewall](forward-ports-for-peering.md). +- The peer server must have available peer slots. If the peer is already at its maximum number of peers, you can ask the peer server's operator to add a [peer reservation](use-a-peer-reservation.md) for your server. ## Steps To connect, use the [connect method][]. For example: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "command": "connect", @@ -34,9 +33,9 @@ To connect, use the [connect method][]. For example: "port": 51235 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` { "method": "connect", @@ -48,32 +47,29 @@ To connect, use the [connect method][]. For example: ] } ``` +{% /tab %} - -*Commandline* - +{% tab label="Commandline" %} ``` rippled connect 169.54.2.151 51235 ``` +{% /tab %} - +{% /tabs %} ## See Also - **Concepts:** - - [Peer Protocol](peer-protocol.html) - - [The `rippled` Server](xrpl-servers.html) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Troubleshoot the `rippled` Server](troubleshoot-the-rippled-server.html) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) - **References:** - [connect method][] - [peers method][] - [print method][] - [server_info method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/peering/set-max-number-of-peers.md b/content/infrastructure/configuration/peering/set-max-number-of-peers.md index dcab3ee367..98d2d01ef9 100644 --- a/content/infrastructure/configuration/peering/set-max-number-of-peers.md +++ b/content/infrastructure/configuration/peering/set-max-number-of-peers.md @@ -7,49 +7,52 @@ labels: --- # Set Maximum Number of Peers -The `rippled` server has a configurable soft maximum number of [peers](peer-protocol.html) to connect to. The default maximum number of peers is **21**. +The `rippled` server has a configurable soft maximum number of [peers](../../../concepts/networks-and-servers/peer-protocol.md) to connect to. The default maximum number of peers is **21**. -**Note:** Internally, the server generates approximate quotas of incoming and outgoing peers. You can potentially go over the soft maximum if you are using [fixed peers, peer reservations](peer-protocol.html#fixed-peers-and-peer-reservations), or if you manually connect to additional peers using the [connect method][]. +**Note:** Internally, the server generates approximate quotas of incoming and outgoing peers. You can potentially go over the soft maximum if you are using [fixed peers, peer reservations](../../../concepts/networks-and-servers/peer-protocol.md#fixed-peers-and-peer-reservations), or if you manually connect to additional peers using the [connect method][]. To change the maximum number of peers your server allows, complete the following steps: 1. Edit your `rippled`'s config file. - $ vim /etc/opt/ripple/rippled.cfg + ``` + $ vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 2. In the config file, uncomment and edit the `[peers_max]` stanza, or add one if you don't have one already: - [peers_max] - 30 + ``` + [peers_max] + 30 + ``` The only content of the stanza should be an integer indicating the total number of peers to allow. By default, the server attempts to maintain a ratio of about 85% incoming and 15% outgoing peers, but with a minimum of 10 outgoing peers, so any value less than 68 won't increase the number of outgoing peer connections your server makes. - If the `[peers_max]` value is less than 10, the server still allows a hardcoded minimum of 10 outgoing peers so that it can maintain connectivity with the network. To block all outgoing peer connections, [configure the server as a private peer](run-rippled-as-a-validator.html#connect-using-proxies) instead. + If the `[peers_max]` value is less than 10, the server still allows a hardcoded minimum of 10 outgoing peers so that it can maintain connectivity with the network. To block all outgoing peer connections, [configure the server as a private peer](../server-modes/run-rippled-as-a-validator.md#connect-using-proxies) instead. **Caution:** The more peer servers you are connected to, the more network bandwidth your `rippled` server uses. You should only configure large numbers of peer servers if your `rippled` server has a good network connection and you can afford the costs you may incur for the bandwidth it uses. 3. Restart the `rippled` server. - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` ## See Also - **Concepts:** - - [Peer Protocol](peer-protocol.html) - - [The `rippled` Server](xrpl-servers.html) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Troubleshoot the `rippled` Server](troubleshoot-the-rippled-server.html) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) - **References:** - [connect method][] - [peers method][] - [print method][] - [server_info method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/peering/use-a-peer-reservation.md b/content/infrastructure/configuration/peering/use-a-peer-reservation.md index a637eceb29..4b1436ba95 100644 --- a/content/infrastructure/configuration/peering/use-a-peer-reservation.md +++ b/content/infrastructure/configuration/peering/use-a-peer-reservation.md @@ -9,7 +9,7 @@ labels: A [peer reservation][] is a setting that makes a `rippled` server always accept connections from a peer matching the reservation. This page describes how to use peer reservations to keep a consistent peer-to-peer connection between two servers, with the cooperation of the administrators of both servers. -Peer reservations are most useful when the two servers are run by different parties, and the server that receives the incoming connection is a [hub server](rippled-server-modes.html#public-hubs) with many peers. For clarity, these instructions use the following terms: +Peer reservations are most useful when the two servers are run by different parties, and the server that receives the incoming connection is a [hub server](../../../concepts/networks-and-servers/rippled-server-modes.md#public-hubs) with many peers. For clarity, these instructions use the following terms: - The server making the outgoing connection is the **stock server**. This server _uses_ the peer reservation on the hub server. - The server receiving the incoming connection is the **hub server**. The administrator _adds_ the peer reservation to this server. @@ -20,10 +20,10 @@ However, you can use these instructions to set up a peer reservation regardless To complete these steps, you must meet the following prerequisites: -- The administrators both servers must have `rippled` [installed](install-rippled.html) and running. +- The administrators both servers must have `rippled` [installed](../../installation/index.md) and running. - The administrators of both servers must agree to cooperate and must be able to communicate. A public communications channel is fine because you don't need to share any secret information. -- The hub server must be able to receive incoming peer connections. For instructions on how to configure a firewall to allow this, see [Forward Ports for Peering](forward-ports-for-peering.html). -- Both servers must be configured to sync with the same [XRP Ledger network](parallel-networks.html), such as the production XRP Ledger, the Testnet, or the Devnet. +- The hub server must be able to receive incoming peer connections. For instructions on how to configure a firewall to allow this, see [Forward Ports for Peering](forward-ports-for-peering.md). +- Both servers must be configured to sync with the same [XRP Ledger network](../../../concepts/networks-and-servers/parallel-networks.md), such as the production XRP Ledger, the Testnet, or the Devnet. ## Steps @@ -33,7 +33,7 @@ To use a peer reservation, complete the following steps: The administrator of the stock server completes this step. -If you have already configured your server with a permanent node key pair value, you can skip ahead to [step 2: Communicate your node public key to the peer's admin](#2-communicate-the-stock-servers-node-public-key). (For example, setting up a permanent node key pair for each server is part of the process of [setting up a server cluster](cluster-rippled-servers.html).) +If you have already configured your server with a permanent node key pair value, you can skip ahead to [step 2: Communicate your node public key to the peer's admin](#2-communicate-the-stock-servers-node-public-key). (For example, setting up a permanent node key pair for each server is part of the process of [setting up a server cluster](cluster-rippled-servers.md).) **Tip:** Setting up a permanent node key pair is optional, but makes it easier to keep the peer reservation set up if you need to erase your server's databases or move to a new machine. If you don't want to set up a permanent node key pair, you can use your server's automatically-generated node public key as reported in the `pubkey_node` field of the [server_info method][] response. @@ -41,39 +41,47 @@ If you have already configured your server with a permanent node key pair value, For example: - rippled validation_create + ``` + rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` Save the `validation_seed` (your node seed value) and the `validation_public_key` value (your node public key ) 2. Edit your `rippled`'s config file. - vim /etc/opt/ripple/rippled.cfg + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 3. Add a `[node_seed]` stanza using the `validation_seed` value you generated earlier. For example: - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` **Warning:** All servers should have unique `[node_seed]` values. If you copy your config file to another server, be sure to remove or change the `[node_seed]` value. Keep your `[node_seed]` secret; if a malicious actor gains access to this value, they could use it to impersonate your server in XRP Ledger peer-to-peer communications. 4. Restart your `rippled` server: - systemctl restart rippled + ``` + systemctl restart rippled + ``` ### 2. Communicate the stock server's node public key @@ -110,10 +118,9 @@ The administrator of the stock server completes this step. Use the [connect method][] to connect your server to the hub server. For example: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ``` { "command": "connect", @@ -121,9 +128,9 @@ Use the [connect method][] to connect your server to the hub server. For example "port": 51235 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ``` { "method": "connect", @@ -135,15 +142,15 @@ Use the [connect method][] to connect your server to the hub server. For example ] } ``` +{% /tab %} - -*Commandline* - +{% tab label="Commandline" %} ``` rippled connect 169.54.2.151 51235 ``` +{% /tab %} - +{% /tabs %} If the hub server's administrator has set up the peer reservation as described in the previous steps, this should automatically connect and remain connected as long as possible. @@ -163,12 +170,12 @@ As a server administrator, you can manage the reservations your server has for o ## See Also - **Concepts:** - - [Peer Protocol](peer-protocol.html) - - [Consensus](consensus.html) - - [Parallel Networks](parallel-networks.html) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) + - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Troubleshooting `rippled`](troubleshoot-the-rippled-server.html) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshooting `rippled`](../../troubleshooting/index.md) - **References:** - [peers method][] - [peer_reservations_add method][] @@ -176,10 +183,6 @@ As a server administrator, you can manage the reservations your server has for o - [peer_reservations_list method][] - [connect method][] - [fetch_info method][] - - [Peer Crawler](peer-crawler.html) + - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/server-modes/index.md b/content/infrastructure/configuration/server-modes/index.md index 57d03d2921..ab00e65841 100644 --- a/content/infrastructure/configuration/server-modes/index.md +++ b/content/infrastructure/configuration/server-modes/index.md @@ -1,9 +1,13 @@ --- html: server-modes.html parent: configure-rippled.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Information on how to run a core server in different modes specialized for different purposes. --- # Server Modes -The core XRP Ledger server can run in different modes specialized for different purposes. \ No newline at end of file +The core XRP Ledger server can run in different modes specialized for different purposes. + + +{% child-pages /%} diff --git a/content/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md b/content/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md index faa270e13f..64c98d3748 100644 --- a/content/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md +++ b/content/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md @@ -7,49 +7,45 @@ labels: --- # Run rippled as a Stock Server -A stock server is a multipurpose configuration for `rippled`. With a stock server, you can submit transactions to the XRP Ledger, access ledger history, and use the latest [tools](software-ecosystem.html) to integrate with XRP and the XRP Ledger. You can connect client applications to the XRP Ledger using this server. +A stock server is a multipurpose configuration for `rippled`. With a stock server, you can submit transactions to the XRP Ledger, access ledger history, and use the latest [tools](../../../introduction/software-ecosystem.md) to integrate with XRP and the XRP Ledger. You can connect client applications to the XRP Ledger using this server. A stock server does all of the following: -- Connects to a [network of peers](peer-protocol.html) +- Connects to a [network of peers](../../../concepts/networks-and-servers/peer-protocol.md) -- Relays cryptographically signed [transactions](transactions.html) +- Relays cryptographically signed [transactions](../../../concepts/transactions/index.md) -- Maintains a local copy of the complete shared global [ledger](ledgers.html) +- Maintains a local copy of the complete shared global [ledger](../../../concepts/ledgers/index.md) -To participate in the [consensus process](consensus.html) as a validator, [run rippled as a validator](run-rippled-as-a-validator.html) instead. +To participate in the [consensus process](../../../concepts/consensus-protocol/index.md) as a validator, [run rippled as a validator](run-rippled-as-a-validator.md) instead. ## Install and run `rippled` -The default package installation installs a stock server with a small amount of transaction history. For installation steps, see [Install `rippled`](install-rippled.html). +The default package installation installs a stock server with a small amount of transaction history. For installation steps, see [Install `rippled`](../../installation/index.md). -After installation, you can adjust how much history your server stores at a time. For steps on how to do this, see [Configure Online Deletion](configure-online-deletion.html). +After installation, you can adjust how much history your server stores at a time. For steps on how to do this, see [Configure Online Deletion](../data-retention/configure-online-deletion.md). ## Troubleshooting -For more information, see [Troubleshooting `rippled`](troubleshoot-the-rippled-server.html) +For more information, see [Troubleshooting `rippled`](../../troubleshooting/index.md) ## See Also - **Concepts:** - - [XRP Ledger Overview](xrp-ledger-overview.html) - - [The `rippled` Server](xrpl-servers.html) + - [XRP Ledger Overview](/about/) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Cluster rippled Servers](cluster-rippled-servers.html) - - [Install `rippled`](install-rippled.html) - - [Capacity Planning](capacity-planning.html) + - [Cluster rippled Servers](../peering/cluster-rippled-servers.md) + - [Install `rippled`](../../installation/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) - **References:** - [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) - [consensus_info method][] - [validator_list_sites method][] - [validators method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md b/content/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md index 3d0881d61c..dd95dac3d1 100644 --- a/content/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md +++ b/content/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md @@ -10,15 +10,15 @@ top_nav_name: Join UNL --- # Run rippled as a Validator -A [`rippled` server](xrpl-servers.html) running in [validator mode](rippled-server-modes.html) does everything a stock server does: +A [`rippled` server](../../../concepts/networks-and-servers/index.md) running in [validator mode](../../../concepts/networks-and-servers/rippled-server-modes.md) does everything a stock server does: -- Connects to a [network of peers](peer-protocol.html) +- Connects to a [network of peers](../../../concepts/networks-and-servers/peer-protocol.md) -- Relays cryptographically signed [transactions](transactions.html) +- Relays cryptographically signed [transactions](../../../concepts/transactions/index.md) -- Maintains a local copy of the complete shared global [ledger](ledgers.html) +- Maintains a local copy of the complete shared global [ledger](../../../concepts/ledgers/index.md) -What makes a validator _different_ is that it also issues validation messages, which are sets of candidate transactions for evaluation by the XRP Ledger network during the [consensus process](consensus-principles-and-rules.html#how-consensus-works). +What makes a validator _different_ is that it also issues validation messages, which are sets of candidate transactions for evaluation by the XRP Ledger network during the [consensus process](../../../concepts/consensus-protocol/consensus-principles-and-rules.md#how-consensus-works). Issuing validation messages does not automatically give your validator a say in the consensus process, so the system is not vulnerable to a [Sybil attack](https://en.wikipedia.org/wiki/Sybil_attack). Other servers ignore your validation messages unless they add your validator to their Unique Node List (UNL). If your validator is included in a UNL, it is a _trusted_ validator and its proposals are considered in the consensus process by the servers that trust it. @@ -42,7 +42,7 @@ Strive to have your validator embody the following properties. Being a good vali - **Issuing prompt votes** - A good validator's votes arrive quickly and not after a consensus round has already finished. To keep your votes on time, make sure your validator meets the recommended [system requirements](system-requirements.html), which include a fast internet connection. + A good validator's votes arrive quickly and not after a consensus round has already finished. To keep your votes on time, make sure your validator meets the recommended [system requirements](../../installation/system-requirements.md), which include a fast internet connection. It is possible to submit new transactions and query data using a validator, but heavy loads of API queries may make the validator less reliable at keeping up with consensus. If your API needs are light enough, then you can use a server for both purposes. Ideally, a validator should be dedicated to participating in consensus. @@ -56,7 +56,7 @@ It is strongly recommended that operators use the list providers that are presen ## 2. Install a `rippled` server -For more information, see [Install `rippled`](install-rippled.html). +For more information, see [Install `rippled`](../../installation/index.md). @@ -72,19 +72,25 @@ In a secure location **not** on your validator: 2. Generate a validator key pair using the `create_keys` command. - $ validator-keys create_keys + ``` + $ validator-keys create_keys + ``` Sample output on Ubuntu: - Validator keys stored in /home/my-user/.ripple/validator-keys.json + ``` + Validator keys stored in /home/my-user/.ripple/validator-keys.json - This file should be stored securely and not shared. + This file should be stored securely and not shared. + ``` Sample output on macOS: - Validator keys stored in /Users/my-user/.ripple/validator-keys.json + ``` + Validator keys stored in /Users/my-user/.ripple/validator-keys.json - This file should be stored securely and not shared. + This file should be stored securely and not shared. + ``` **Warning:** Store the generated `validator-keys.json` key file in a secure, offline, and recoverable location, such as an encrypted USB flash drive. Do not store keys on the validator where you intend to use the keys. If your `secret_key` is compromised, [revoke the key](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#key-revocation) immediately. Do not modify the contents of `validator-keys.json`, except to update the backup after generating a new token. If you generate more than one token from the same backup without updating, the network ignores the later tokens because they use the same `token_sequence` number. @@ -92,23 +98,27 @@ In a secure location **not** on your validator: 3. Generate a validator token using the `create_token` command. - $ validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json + ``` + $ validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json + ``` Sample output: - Update rippled.cfg file with these values: + ``` + Update rippled.cfg file with these values: - # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr + # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` On your validator: @@ -118,11 +128,15 @@ On your validator: 2. Restart `rippled`. - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` 3. Use the `server_info` command to get information about your validator to verify that it is running as a validator. - $ rippled server_info + ``` + $ rippled server_info + ``` - The `pubkey_validator` value in the response should match the `public_key` in the `validator-keys.json` file that you generated for use with your validator. @@ -140,12 +154,12 @@ This section describes three different configurations you can use to connect you - [Public hubs](#connect-using-public-hubs): Connect only to specific public servers with a high reputation. -For a comparison of these approaches, see [Pros and Cons of Peering Configurations](peer-protocol.html#pros-and-cons-of-peering-configurations). +For a comparison of these approaches, see [Pros and Cons of Peering Configurations](../../../concepts/networks-and-servers/peer-protocol.md#pros-and-cons-of-peering-configurations). ### Connect using discovered peers -This configuration connects your validator to the XRP Ledger network using [discovered peers](peer-protocol.html#peer-discovery). This is the default behavior for `rippled` servers. +This configuration connects your validator to the XRP Ledger network using [discovered peers](../../../concepts/networks-and-servers/peer-protocol.md#peer-discovery). This is the default behavior for `rippled` servers. _**To connect your validator to the XRP Ledger network using discovered peers,**_ omit the `[peer_private]` stanza or set it to `0` in your validator's `rippled.cfg` file. The [example `rippled.cfg` file](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg) is delivered with this configuration. @@ -156,11 +170,11 @@ This configuration connects your validator to the network through stock `rippled _**To connect your validator to the XRP Ledger network using proxies:**_ -1. Set up stock `rippled` servers. For more information, see [Install rippled](install-rippled.html). +1. Set up stock `rippled` servers. For more information, see [Install rippled](../../installation/index.md). -2. Configure your validator and stock `rippled` servers to run in a [cluster](cluster-rippled-servers.html). +2. Configure your validator and stock `rippled` servers to run in a [cluster](../peering/cluster-rippled-servers.md). -3. In your validator's `rippled.cfg` file, set `[peer_private]` to `1`. This prevents your validator's IP address from being forwarded. For more information, see [Private Peers](peer-protocol.html#private-peers). It also prevents your validator from connecting to servers other than those defined in the `[ips_fixed]` stanza you defined to run your validator in a cluster. +3. In your validator's `rippled.cfg` file, set `[peer_private]` to `1`. This prevents your validator's IP address from being forwarded. For more information, see [Private Peers](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). It also prevents your validator from connecting to servers other than those defined in the `[ips_fixed]` stanza you defined to run your validator in a cluster. **Warning:** Be sure that you don't publish your validator's IP address in other ways. @@ -172,27 +186,33 @@ _**To connect your validator to the XRP Ledger network using proxies:**_ 5. Restart `rippled`. - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` -6. Use the [Peer Crawler](peer-crawler.html) endpoint on one of your stock `rippled` servers. The response should not include your validator. This verifies that your validator's `[peer_private]` configuration is working. One of the effects of enabling `[peer_private]` on your validator is that your validator's peers do not include it in their Peer Crawler results. +6. Use the [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) endpoint on one of your stock `rippled` servers. The response should not include your validator. This verifies that your validator's `[peer_private]` configuration is working. One of the effects of enabling `[peer_private]` on your validator is that your validator's peers do not include it in their Peer Crawler results. - $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool + ``` + $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool + ``` ### Connect using public hubs -This configuration connects your validator to the network using three [public hubs](rippled-server-modes.html#public-hubs). This configuration is similar to [connecting using proxies you run yourself](#connect-using-proxies), but instead you connect through public hubs. +This configuration connects your validator to the network using three [public hubs](../../../concepts/networks-and-servers/rippled-server-modes.md#public-hubs). This configuration is similar to [connecting using proxies you run yourself](#connect-using-proxies), but instead you connect through public hubs. _**To connect your validator to the network using public hubs:**_ 1. In your validator's `rippled.cfg` file, include the following `[ips_fixed]` stanza. The three values, `r.ripple.com 51235`, `zaphod.alloy.ee 51235` and `sahyadri.isrdc.in 51235`, are default public hubs. This stanza tells `rippled` to always attempt to maintain peer connections with these public hubs. - [ips_fixed] - r.ripple.com 51235 - zaphod.alloy.ee 51235 - sahyadri.isrdc.in 51235 + ``` + [ips_fixed] + r.ripple.com 51235 + zaphod.alloy.ee 51235 + sahyadri.isrdc.in 51235 + ``` **Caution:** This configuration connects your validator to the network using default public hubs. Because these are the _default_ public hubs, they may sometimes be too busy to provide your validator with a connection to the network. To help avoid this issue, connect to more public hubs and, even better, connect to non-default public hubs. @@ -206,8 +226,10 @@ _**To connect your validator to the network using public hubs:**_ 2. Also in your validator's `rippled.cfg` file, include the following `[peer_private]` stanza and set it to `1`. This instructs your validator’s peers not to broadcast your validator’s IP address. This setting also instructs your validator to connect to only the peers configured in your `[ips_fixed]` stanza. This ensures that your validator connects to and shares its IP with only peer `rippled` servers you know and trust. - [peer_private] - 1 + ``` + [peer_private] + 1 + ``` **Warning:** Be sure that you don't publish your validator's IP address in other ways. @@ -215,7 +237,9 @@ _**To connect your validator to the network using public hubs:**_ 3. Restart `rippled`. - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` @@ -223,17 +247,17 @@ _**To connect your validator to the network using public hubs:**_ Here are some methods you can use to verify that your validator has a healthy connection to the XRP Ledger network: -- Use the [`peers`](peers.html) command to return a list of all `rippled` servers currently connected to your validator. If the `peers` array is `null`, you don’t have a healthy connection to the network. If you've set up your validator using the instructions in this document, the `peers` array should include the same number of objects as the number of peers defined in your `[ips_fixed]` stanza. +- Use the [`peers`](../../../references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md) command to return a list of all `rippled` servers currently connected to your validator. If the `peers` array is `null`, you don’t have a healthy connection to the network. If you've set up your validator using the instructions in this document, the `peers` array should include the same number of objects as the number of peers defined in your `[ips_fixed]` stanza. If you listed a public hub in your `[ips_fixed]` stanza and it is busy, it may reject your validator's connection. In this case, you may end up with fewer connections than configured in your `[ips_fixed]` stanza. Your validator retries the connection if it's initially rejected. If you are having trouble maintaining a reliable and safe connection to the network and haven't set up connections using public hubs or proxies, see [4. Connect to the network](#4-connect-to-the-network). Using one of the methods described in the section may help your validator remain healthily connected to the network. -- Use the [`server_info`](server_info.html) command to return some basic information about your validator. The `server_state` should be set to `proposing`. It may also be set to `full` or `validating`, but only for a few minutes before moving into `proposing`. +- Use the [`server_info`](../../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) command to return some basic information about your validator. The `server_state` should be set to `proposing`. It may also be set to `full` or `validating`, but only for a few minutes before moving into `proposing`. - If the `server_state` does not spend the majority of its time set to `proposing`, it may be a sign that your validator is unable to fully participate in the XRP Ledger network. For more information about server states and using the `server_info` endpoint to diagnose issues with your validator, see [`rippled` Server States](rippled-server-states.html) and [Get the `server_info`](diagnosing-problems.html#get-the-server_info). + If the `server_state` does not spend the majority of its time set to `proposing`, it may be a sign that your validator is unable to fully participate in the XRP Ledger network. For more information about server states and using the `server_info` endpoint to diagnose issues with your validator, see [`rippled` Server States](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md) and [Get the `server_info`](../../troubleshooting/diagnosing-problems.md#get-the-server_info). -- Use the [`validators`](validators.html) command to return the current list of published and trusted validators used by the validator. Ensure that the `validator_list_expires` value is either `never` or not expired or about to expire. +- Use the [`validators`](../../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md) command to return the current list of published and trusted validators used by the validator. Ensure that the `validator_list_expires` value is either `never` or not expired or about to expire. @@ -251,7 +275,7 @@ To provide domain verification: 1. Choose a domain name you own that you want to be publicly associated with your validator. As a precaution against DDoS attempts, your domain name should not resolve to the ip address of your validator. -2. Serve an [`xrp-ledger.toml`](xrp-ledger-toml.html) file at your domain, and complete the [domain verification](xrp-ledger-toml.html#domain-verification) steps. Once you have completed these steps, your validator should be visible to the livenet [explorer](https://livenet.xrpl.org/network/validators) or any other site that monitors the validator network and supports decetralized domain verification. +2. Serve an [`xrp-ledger.toml`](../../../references/xrp-ledger-toml.md) file at your domain, and complete the [domain verification](../../../references/xrp-ledger-toml.md#domain-verification) steps. Once you have completed these steps, your validator should be visible to the livenet [explorer](https://livenet.xrpl.org/network/validators) or any other site that monitors the validator network and supports decetralized domain verification. 3. Share your validator's public key with the public, especially other `rippled` operators. For example, you can share your validator's public key on your website, on social media, in the [XRPChat community forum](https://www.xrpchat.com/), or in a press release. @@ -266,20 +290,16 @@ For information about how to revoke a master key pair you generated for your val ## See Also - **Concepts:** - - [XRP Ledger Overview](xrp-ledger-overview.html) - - [The `rippled` Server](xrpl-servers.html) + - [XRP Ledger Overview](/about/) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Cluster rippled Servers](cluster-rippled-servers.html) - - [Install `rippled`](install-rippled.html) - - [Capacity Planning](capacity-planning.html) + - [Cluster rippled Servers](../peering/cluster-rippled-servers.md) + - [Install `rippled`](../../installation/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) - **References:** - [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) - [consensus_info method][] - [validator_list_sites method][] - [validators method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/index.md b/content/infrastructure/index.md index e4bf13db71..ada50283c8 100644 --- a/content/infrastructure/index.md +++ b/content/infrastructure/index.md @@ -1,9 +1,13 @@ --- html: infrastructure.html parent: docs.html -template: pagetype-category.html.jinja +metadata: + indexPage: true top_nav_grouping: Article Types --- # Infrastructure -Install, configure, and manage the software that powers the XRP Ledger. \ No newline at end of file +Install, configure, and manage the software that powers the XRP Ledger. + + +{% child-pages /%} diff --git a/content/infrastructure/installation/build-on-linux-mac-windows.md b/content/infrastructure/installation/build-on-linux-mac-windows.md index 85a6e11721..7278be5e3c 100644 --- a/content/infrastructure/installation/build-on-linux-mac-windows.md +++ b/content/infrastructure/installation/build-on-linux-mac-windows.md @@ -13,7 +13,4 @@ Building `rippled` across various platforms such as Windows, Linux, or macOS req To continue, proceed to [the latest `rippled` build instructions on GitHub](https://github.com/XRPLF/rippled/blob/develop/BUILD.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/build-run-rippled-in-reporting-mode.md b/content/infrastructure/installation/build-run-rippled-in-reporting-mode.md index faa70c2ada..e0d0e6b7be 100644 --- a/content/infrastructure/installation/build-run-rippled-in-reporting-mode.md +++ b/content/infrastructure/installation/build-run-rippled-in-reporting-mode.md @@ -9,13 +9,13 @@ top_nav_grouping: Popular Pages --- # Build and Run `rippled` in Reporting Mode -[Reporting mode](rippled-server-modes.html) is a mode of the XRP Ledger core server specialized for serving [HTTP and WebSocket APIs](http-websocket-apis.html). +[Reporting mode](../../concepts/networks-and-servers/rippled-server-modes.md) is a mode of the XRP Ledger core server specialized for serving [HTTP and WebSocket APIs](../../references/http-websocket-apis/index.md). In reporting mode, the server does not connect to the peer-to-peer network. Instead, it uses gRPC to get validated data from one or more trusted servers that are connected to the P2P network. It can then efficiently handle API calls, reducing the load on `rippled` servers running in P2P mode. -{{ include_svg("img/reporting-mode-basic-architecture.svg", "Figure 1: Working of `rippled` in reporting mode") }} +[{% inline-svg file="/img/reporting-mode-basic-architecture.svg" /%}](/img/reporting-mode-basic-architecture.svg "Figure 1: Working of `rippled` in reporting mode") The reporting mode of `rippled` uses two datastores: @@ -31,7 +31,7 @@ Multiple reporting mode servers can share access to the same network accessible ### Prerequisites -1. Ensure that your system meets the [system requirements](system-requirements.html). +1. Ensure that your system meets the [system requirements](system-requirements.md). **Note:** If you choose to use Cassandra as the database, the disk requirements for `rippled` will be lower as the data will not be stored on your local disk. @@ -47,7 +47,9 @@ Multiple reporting mode servers can share access to the same network accessible 3. On macOS, you need to manually install the Cassandra cpp driver. On all other platforms, the Cassandra driver is built as part of the `rippled` build. - brew install cassandra-cpp-driver + ``` + brew install cassandra-cpp-driver + ``` #### Install PostgreSQL @@ -57,29 +59,35 @@ Multiple reporting mode servers can share access to the same network accessible 2. Connect to the PostgreSQL Database Server using `psql`, and create a user `newuser` and a database `reporting`. - psql postgres - CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; - ALTER ROLE newuser CREATEDB; - \q - psql postgres -U newuser - postgres=# create database reporting; + ``` + psql postgres + CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; + ALTER ROLE newuser CREATEDB; + \q + psql postgres -U newuser + postgres=# create database reporting; + ``` **Install PostgreSQL on macOS** 1. Download and install PostgreSQL on macOS. - brew install postgres - brew services start postgres + ``` + brew install postgres + brew services start postgres + ``` 2. Connect to the PostgreSQL Database Server using `psql` and create a user `newuser` and a database `reporting`. - psql postgres - CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; - ALTER ROLE newuser CREATEDB; - \q - psql postgres -U newuser - postgres=# create database reporting; + ``` + psql postgres + CREATE ROLE newuser WITH LOGIN PASSWORD ‘password’; + ALTER ROLE newuser CREATEDB; + \q + psql postgres -U newuser + postgres=# create database reporting; + ``` #### Install and Configure the Primary Persistent Datastore @@ -89,9 +97,11 @@ Install Cassandra and then create a keyspace for `rippled`, with replication. CREATE KEYSPACE `rippled` WITH REPLICATION = - {'class' : 'SimpleStrategy', 'replication_factor' : 1 }; +``` +$ cqlsh [host] [port] +> CREATE KEYSPACE `rippled` WITH REPLICATION = +{'class' : 'SimpleStrategy', 'replication_factor' : 1 }; +``` **NuDB** @@ -104,29 +114,30 @@ NuDB is installed as part of your `rippled` build setup and does not require any 1. Build `rippled` for reporting mode on [Ubuntu or macOS](https://github.com/XRPLF/rippled/blob/release/BUILD.md). - + {% tabs %} - *Linux* + ```{% label="Linux" %} + wget https://github.com/Kitware/CMake/releases/download/v3.16.3/cmake-3.16.3-Linux-x86_64.sh + sudo sh cmake-3.16.3-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir + cmake -B build -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug + cmake --build build --parallel $(nproc) + ``` - wget https://github.com/Kitware/CMake/releases/download/v3.16.3/cmake-3.16.3-Linux-x86_64.sh - sudo sh cmake-3.16.3-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir - cmake -B build -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug - cmake --build build --parallel $(nproc) + ```{% label="macOS" %} + cmake -B build -G "Unix Makefiles" -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug + cmake --build build --parallel $(nproc) + ``` - - *macOS* - - cmake -B build -G "Unix Makefiles" -Dreporting=ON -DCMAKE_BUILD_TYPE=Debug - cmake --build build --parallel $(nproc) - - + {% /tabs %} 2. Create a configuration file to run `rippled` in reporting mode. Make a copy of the example config file, `rippled-example.cfg`, and save it as `rippled-reporting-mode.cfg` in a location that enables you to run `rippled` as a non-root user. For example: - mkdir -p $HOME/.config/ripple - cp /cfg/rippled-example.cfg $HOME/.config/ripple/rippled-reporting-mode.cfg + ``` + mkdir -p $HOME/.config/ripple + cp /cfg/rippled-example.cfg $HOME/.config/ripple/rippled-reporting-mode.cfg + ``` 3. Edit rippled-reporting-mode.cfg to set necessary file paths. The user you plan to run `rippled` as must have write permissions to all of the paths you specify here. @@ -142,75 +153,89 @@ NuDB is installed as part of your `rippled` build setup and does not require any 1. Uncomment the `[reporting]` stanza or add a new one: - [reporting] - etl_source - read_only=0 + ``` + [reporting] + etl_source + read_only=0 + ``` 2. List the `rippled` sources (ETL sources) to extract data from. These `rippled` servers must have gRPC enabled. NOTE: Only include servers that you trust as reporting mode does not connect to the P2P network and hence cannot verify that the data actually matches the network consensus ledger. - [etl_source] - source_grpc_port=50051 - source_ws_port=6006 - source_ip=127.0.0.1 + ``` + [etl_source] + source_grpc_port=50051 + source_ws_port=6006 + source_ip=127.0.0.1 + ``` 5. Configure the databases 1. Specify the Postgres DB for `[ledger_tx_tables]`: - [ledger_tx_tables] - conninfo = postgres://newuser:password@127.0.0.1/reporting - use_tx_tables=1 + ``` + [ledger_tx_tables] + conninfo = postgres://newuser:password@127.0.0.1/reporting + use_tx_tables=1 + ``` 2. Specify the database for `[node_db]`. - + {% tabs %} - *NuDB* + ```{% label="NuDB" %} + [node_db] + type=NuDB + path=/home/ubuntu/ripple/ - [node_db] - type=NuDB - path=/home/ubuntu/ripple/ + [ledger_history] + 1000000 + ``` - [ledger_history] - 1000000 + ```{% label="Cassandra" %} + [node_db] + type=Cassandra - *Cassandra* + [ledger_history] + 1000000 + ``` - [node_db] - type=Cassandra - - [ledger_history] - 1000000 - - + {% /tabs %} 6. Modify the configuration for `rippled` to open up ports. 1. Open the public websocket port: - [port_ws_admin_local] - port = 6006 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = ws + ``` + [port_ws_admin_local] + port = 6006 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = ws + ``` 2. Open the gRPC port: - [port_grpc] - port = 60051 - ip = 0.0.0.0 + ``` + [port_grpc] + port = 60051 + ip = 0.0.0.0 + ``` 3. Add a secured gateway to the IP of your reporting system: - secure_gateway = 127.0.0.1 + ``` + secure_gateway = 127.0.0.1 + ``` 7. Run `rippled` in reporting mode: - ./rippled --conf /home/ubuntu/.config/ripple/rippled-reporting-example.cfg + ``` + ./rippled --conf /home/ubuntu/.config/ripple/rippled-reporting-example.cfg + ``` ### What to Expect @@ -280,22 +305,22 @@ Loading: "/home/ubuntu/.config/ripple/rippled-reporting-example.cfg" 2021-Dec-09 21:31:53.291048 UTC NetworkOPs:NFO STATE->full 2021-Dec-09 21:31:53.291192 UTC Application:FTL Startup RPC: { - "command" : "log_level", - "severity" : "debug" + "command" : "log_level", + "severity" : "debug" } 2021-Dec-09 21:31:53.291347 UTC RPCHandler:DBG RPC call log_level completed in 2.2e-08seconds 2021-Dec-09 21:31:53.291440 UTC Application:FTL Result: { - "warnings" : - [ - - { - "id" : 1004, - "message" : "This is a reporting server. The default behavior of a reporting server is to only return validated data. If you are looking for not yet validated data, include \"ledger_index : current\" in your request, which will cause this server to forward the request to a p2p node. If the forward is successful the response will include \"forwarded\" : \"true\"" - } - ] + "warnings" : + [ + + { + "id" : 1004, + "message" : "This is a reporting server. The default behavior of a reporting server is to only return validated data. If you are looking for not yet validated data, include \"ledger_index : current\" in your request, which will cause this server to forward the request to a p2p node. If the forward is successful the response will include \"forwarded\" : \"true\"" + } + ] } @@ -332,7 +357,7 @@ The answer depends on the location of your primary data store. If you use Cassan Lastly, the P2P mode server only needs to keep very recent history, while the reporting mode server keeps long term history. -For more information on system requirements to run `rippled`, see the [`rippled` system requirements](system-requirements.html). +For more information on system requirements to run `rippled`, see the [`rippled` system requirements](system-requirements.md). **How can I confirm the validity of the data that comes from the PostgreSQL or Cassandra database?** @@ -342,7 +367,4 @@ When `rippled` runs in reporting mode, it only serves validated data from the ET Technically, you *can* directly access the database if you want. However, the data is stored as binary blobs and you have to decode the blobs to access the data in them. This makes traditional SQL queries much less useful since they cannot find and filter the individual fields of the data. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/capacity-planning.md b/content/infrastructure/installation/capacity-planning.md index dbf5ad8985..692453e2b4 100644 --- a/content/infrastructure/installation/capacity-planning.md +++ b/content/infrastructure/installation/capacity-planning.md @@ -10,7 +10,7 @@ labels: This document describes configuration, network, and hardware recommendations that you can use to tune and optimize the performance of an XRP Ledger server. -The load on an XRP Ledger server varies based on multiple factors. One is the activity in the network. The total size of data in the shared ledger and the total volume of transactions being sent vary based on organic factors throughout the global XRP Ledger community. Another factor is API usage; different types of [API calls](http-websocket-apis.html) put different load on the server. The performance characteristics can be very different between servers that provide a public API, provide a private API to specific integration software, or provide no API at all. +The load on an XRP Ledger server varies based on multiple factors. One is the activity in the network. The total size of data in the shared ledger and the total volume of transactions being sent vary based on organic factors throughout the global XRP Ledger community. Another factor is API usage; different types of [API calls](../../references/http-websocket-apis/index.md) put different load on the server. The performance characteristics can be very different between servers that provide a public API, provide a private API to specific integration software, or provide no API at all. You should consider these factors to ensure that your server has the capacity to handle XRP Ledger network activity today and in the future. @@ -25,7 +25,7 @@ The settings in this section are parameters in the `rippled.cfg` file. You can a ### Node Size -The `[node_size]` parameter should match the overall hardware capacity of your server. You can omit this parameter to have the server automatically choose an appropriate setting based on the system's total RAM and number of CPU threads. You can set this value explicitly if the automatic setting is wrong for your system, for example if some of the system's RAM or threads need to be set aside for other software, or the amounts reported by the operating system are inaccurate. (This can occur in some containers.) [Updated in: rippled 1.8.1][] +The `[node_size]` parameter should match the overall hardware capacity of your server. You can omit this parameter to have the server automatically choose an appropriate setting based on the system's total RAM and number of CPU threads. You can set this value explicitly if the automatic setting is wrong for your system, for example if some of the system's RAM or threads need to be set aside for other software, or the amounts reported by the operating system are inaccurate. (This can occur in some containers.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}Updated in: rippled 1.8.1{% /badge %} As a general rule, you should always use the largest node size your available RAM can support. See the following table for recommended settings. @@ -43,7 +43,7 @@ To tune your server, it may be useful to start with `tiny` and increase the size | 32 GB | `large` | **Not recommended.** In practice, this setting performs worse than `huge` in most circumstances. Always use `huge` if you want stability. | | 64 GB | `huge` | Recommended for production servers. | -If you set the `[node_size]` parameter to an invalid value, the [server fails to start](server-wont-start.html#bad-node_size-value). +If you set the `[node_size]` parameter to an invalid value, the [server fails to start](../troubleshooting/server-wont-start.md#bad-node_size-value). ### Node DB Type @@ -97,7 +97,7 @@ online_delete=2000 advisory_delete=0 ``` -Adjust the `path` to the directory where you want to keep the ledger store on disk. Adjust the `online_delete` and `advisory_delete` settings as desired for your configuration. For more details about these settings, see [Configure Online Deletion](configure-online-deletion.html) and [Configure Advisory Deletion](configure-advisory-deletion.html). +Adjust the `path` to the directory where you want to keep the ledger store on disk. Adjust the `online_delete` and `advisory_delete` settings as desired for your configuration. For more details about these settings, see [Configure Online Deletion](../configuration/data-retention/configure-online-deletion.md) and [Configure Advisory Deletion](../configuration/data-retention/configure-advisory-deletion.md). ### Log Level @@ -113,7 +113,7 @@ Each server in the XRP Ledger network performs all of the transaction processing ### Recommendation -See [System Requirements](system-requirements.html) for a summary of the recommended hardware specs. +See [System Requirements](system-requirements.md) for a summary of the recommended hardware specs. #### CPU Utilization and Virtualization @@ -131,9 +131,9 @@ The speed of storage is one of the most important factors in a server's capacity #### Disk Space -The `[node_db]` stanza controls the server's _ledger store_, which holds [ledger history](ledger-history.html). The amount of disk space you need depends on how much history you plan to keep available locally. An XRP Ledger server does not need to store more than the most recent 256 ledger versions to follow the consensus process and report the complete state of the ledger, but you can only query your server for transactions that executed in ledger versions it has stored locally. Configure the `path` of the `[node_db]` to point to your chosen storage location for the ledger store. +The `[node_db]` stanza controls the server's _ledger store_, which holds [ledger history](../../concepts/networks-and-servers/ledger-history.md). The amount of disk space you need depends on how much history you plan to keep available locally. An XRP Ledger server does not need to store more than the most recent 256 ledger versions to follow the consensus process and report the complete state of the ledger, but you can only query your server for transactions that executed in ledger versions it has stored locally. Configure the `path` of the `[node_db]` to point to your chosen storage location for the ledger store. -You can control how much data you keep with [online deletion](online-deletion.html); the default config file has the server keep the latest 2000 ledger versions. Without online deletion, the server's disk requirements grow without bounds. +You can control how much data you keep with [online deletion](../configuration/data-retention/online-deletion.md); the default config file has the server keep the latest 2000 ledger versions. Without online deletion, the server's disk requirements grow without bounds. The following table approximates the requirements for different amounts of history, at the time of writing (2023-07-19): @@ -152,18 +152,18 @@ These numbers are estimates. They depend on several factors, most importantly th The `online_delete` setting tells the server how many ledger versions to keep after deleting old history. You should plan for enough disk space to store twice that many ledger versions at maximum (right before online deletion runs). -For instructions on how to change the amount of history you keep, see [Configure Online Deletion](configure-online-deletion.html). +For instructions on how to change the amount of history you keep, see [Configure Online Deletion](../configuration/data-retention/configure-online-deletion.md). The `[database_path]` configures separate bookkeeping databases: these include transaction data as well as some runtime configurations. -As a general rule, you can safely delete the database files (both the ledger store and the bookkeeping databases) for a `rippled` server when it isn't running; this clears any stored ledger history the server has, but it can re-acquire that data from the network. However, if you delete the `wallet.db` file in the `[database_path]`, you must manually reapply runtime configuration changes such as [amendment votes](configure-amendment-voting.html) and [peer reservations](use-a-peer-reservation.html). +As a general rule, you can safely delete the database files (both the ledger store and the bookkeeping databases) for a `rippled` server when it isn't running; this clears any stored ledger history the server has, but it can re-acquire that data from the network. However, if you delete the `wallet.db` file in the `[database_path]`, you must manually reapply runtime configuration changes such as [amendment votes](../configuration/configure-amendment-voting.md) and [peer reservations](../configuration/peering/use-a-peer-reservation.md). -If you want to contribute to storing ledger history but you do not have enough disk space to store full history, you can use the [History Sharding](history-sharding.html) feature to store a randomized range of ledgers in a separate shard store. History sharding is configured in the `[shard_db]` stanza. +If you want to contribute to storing ledger history but you do not have enough disk space to store full history, you can use the [History Sharding](../configuration/data-retention/history-sharding.md) feature to store a randomized range of ledgers in a separate shard store. History sharding is configured in the `[shard_db]` stanza. ##### Amazon Web Services -Amazon Web Services (AWS) is a popular virtualized hosting environment. You can run `rippled` in AWS, but do not use Elastic Block Storage (EBS). See [System Requirements](system-requirements.html). +Amazon Web Services (AWS) is a popular virtualized hosting environment. You can run `rippled` in AWS, but do not use Elastic Block Storage (EBS). See [System Requirements](system-requirements.md). AWS instance stores (`ephemeral` storage) provide suitable performance, but you may lose data in some circumstances, including when you start/stop an instance. This may be acceptable, since an individual XRP Ledger server can usually re-acquire lost ledger history from its peers. Configuration settings should be stored on more permanent storage. @@ -175,7 +175,7 @@ Memory requirements are mainly a function of the `node_size` configuration setti #### Network -Any enterprise or carrier-class data center should have enough network bandwidth to support running XRP Ledger servers. The actual bandwidth necessary varies significantly based on the current transaction volume in the network. Server behavior (such as backfilling [ledger history](ledger-history.html)) also affects network use. Consumer-grade home internet is generally not enough to run a reliable server. +Any enterprise or carrier-class data center should have enough network bandwidth to support running XRP Ledger servers. The actual bandwidth necessary varies significantly based on the current transaction volume in the network. Server behavior (such as backfilling [ledger history](../../concepts/networks-and-servers/ledger-history.md)) also affects network use. Consumer-grade home internet is generally not enough to run a reliable server. During exceptionally high periods of transaction volume, some operators have reported that their servers have completely saturated a 100 megabit/s network link, so a gigabit network interface is required for reliable performance. @@ -188,26 +188,23 @@ Here are examples of observed uncompressed network bandwidth use for common task | Serve historical ledger and transaction reports | 100 Mbps up | | Start up `rippled` | 20 Mbps down | -You can save bandwidth by [enabling compression on peer-to-peer communications](enable-link-compression.html), at a cost of higher CPU. Many hardware configurations have spare CPU capacity during normal use, so this can be an economical option if your network bandwidth is limited. +You can save bandwidth by [enabling compression on peer-to-peer communications](../configuration/peering/enable-link-compression.md), at a cost of higher CPU. Many hardware configurations have spare CPU capacity during normal use, so this can be an economical option if your network bandwidth is limited. ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Configure rippled](configure-rippled.html) - - [Configure Online Deletion](configure-online-deletion.html) - Adjust how many historical ledger versions your server should keep at a time. - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) + - [Configure rippled](../configuration/index.md) + - [Configure Online Deletion](../configuration/data-retention/configure-online-deletion.md) - Adjust how many historical ledger versions your server should keep at a time. + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [logrotate method][] - Closes and reopens the server's debug log so you can rotate it with standard tools. - [server_info method][] - General information about the server including sync status and how many historical ledger versions it has available on disk. - [get_counts method][] - Additional health information, especially how many objects of various types it holds in RAM. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/index.md b/content/infrastructure/installation/index.md index d0a1f12b23..25d8b0e91a 100644 --- a/content/infrastructure/installation/index.md +++ b/content/infrastructure/installation/index.md @@ -2,9 +2,13 @@ html: install-rippled.html parent: infrastructure.html top_nav_name: Install & Configure -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Install and update XRP Ledger servers including the core server, rippled, and API server, Clio. --- # Installation -Install and update XRP Ledger servers including the core server, rippled, and API server, Clio. \ No newline at end of file +Install and update XRP Ledger servers including the core server, rippled, and API server, Clio. + + +{% child-pages /%} diff --git a/content/infrastructure/installation/install-clio-on-ubuntu.md b/content/infrastructure/installation/install-clio-on-ubuntu.md index 38b48e5811..7b31846894 100644 --- a/content/infrastructure/installation/install-clio-on-ubuntu.md +++ b/content/infrastructure/installation/install-clio-on-ubuntu.md @@ -16,7 +16,7 @@ These instructions install a binary that has been compiled by Ripple. For instru Before you install Clio, you must meet the following requirements. -- Ensure that your system meets the [system requirements](system-requirements.html). +- Ensure that your system meets the [system requirements](system-requirements.md). **Note:** Clio has the same system requirements as the `rippled` server, except Clio needs less disk space to store the same amount of ledger history. @@ -26,69 +26,91 @@ Before you install Clio, you must meet the following requirements. - If you choose to persist Clio data, run Cassandra in a Docker container and specify an empty directory to store Clio data: - docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ - cassandra cassandra:4.0.4 + ``` + docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ + cassandra cassandra:4.0.4 + ``` - If you do not wish to persist Clio data, run the following command: - docker run --rm -it --network=host --name cassandra cassandra:4.0.4 + ``` + docker run --rm -it --network=host --name cassandra cassandra:4.0.4 + ``` -- You need gRPC access to one or more `rippled` servers in P2P mode. The `rippled` servers can either be local or remote, but you must trust them. The most reliable way to do this is to [install `rippled` yourself](install-rippled.html). +- You need gRPC access to one or more `rippled` servers in P2P mode. The `rippled` servers can either be local or remote, but you must trust them. The most reliable way to do this is to [install `rippled` yourself](index.md). ## Installation Steps 1. Update repositories: - sudo apt -y update + ``` + sudo apt -y update + ``` **Tip:** If you have already installed an up-to-date version of `rippled` on the same machine, you can skip the following steps for adding Ripple's package repository and signing key, which are the same as in the `rippled` install process. Resume from step 5, "Fetch the Ripple repository." 2. Install utilities: - sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` 3. Add Ripple's package-signing GPG key to your list of trusted keys: - sudo mkdir /usr/local/share/keyrings/ - wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg - sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` + sudo mkdir /usr/local/share/keyrings/ + wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg + sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` 4. Check the fingerprint of the newly-added key: - gpg /usr/local/share/keyrings/ripple-key.gpg + ``` + gpg /usr/local/share/keyrings/ripple-key.gpg + ``` The output should include an entry for Ripple such as the following: - gpg: WARNING: no command supplied. Trying to guess what you mean ... - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` + gpg: WARNING: no command supplied. Trying to guess what you mean ... + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the third line, starting with `C001`.) 4. Add the appropriate Ripple repository for your operating system version: - echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` + echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` The above example is appropriate for **Ubuntu 20.04 Focal Fossa**. 5. Fetch the Ripple repository. - sudo apt -y update + ``` + sudo apt -y update + ``` 6. Install the Clio software package. There are two options: - To run `rippled` on the same machine, install the `clio` package, which sets up both servers: - sudo apt -y install clio + ``` + sudo apt -y install clio + ``` - To run Clio on a separate machine from `rippled`, install the `clio-server` package, which sets up Clio only: - sudo apt -y install clio-server + ``` + sudo apt -y install clio-server + ``` 7. If you are running `rippled` on a separate machine, modify your Clio config file to point to it. You can skip this step if you used the `clio` package to install both on the same machine. @@ -96,14 +118,16 @@ Before you install Clio, you must meet the following requirements. 1. Edit the Clio server's config file to modify the connection information for the `rippled` server. The package installs this file at `/opt/clio/etc/config.json`. - "etl_sources": - [ - { - "ip":"127.0.0.1", - "ws_port":"6006", - "grpc_port":"50051" - } - ] + ``` + "etl_sources": + [ + { + "ip":"127.0.0.1", + "ws_port":"6006", + "grpc_port":"50051" + } + ] + ``` This includes: @@ -119,28 +143,36 @@ Before you install Clio, you must meet the following requirements. * Open a port to accept unencrypted WebSocket connections. - [port_ws_public] - port = 6005 - ip = 0.0.0.0 - protocol = ws + ``` + [port_ws_public] + port = 6005 + ip = 0.0.0.0 + protocol = ws + ``` * Open a port to handle gRPC requests and specify the IP(s) of Clio server(s) in the `secure_gateway` entry. - [port_grpc] - port = 50051 - ip = 0.0.0.0 - secure_gateway = 127.0.0.1 + ``` + [port_grpc] + port = 50051 + ip = 0.0.0.0 + secure_gateway = 127.0.0.1 + ``` **Tip:** If you are not running Clio on the same machine as `rippled`, change the `secure_gateway` in the example stanza to use the IP address of the Clio server. 8. Enable and start the Clio systemd service. - sudo systemctl enable clio + ``` + sudo systemctl enable clio + ``` 9. Start the `rippled` and Clio servers. - sudo systemctl start rippled - sudo systemctl start clio + ``` + sudo systemctl start rippled + sudo systemctl start clio + ``` If you are starting with a fresh database, Clio needs to download the full ledger. This can take some time. If you are starting both servers for the first time, it can take even longer because Clio waits for `rippled` to sync before extracting ledgers. @@ -151,4 +183,4 @@ Before you install Clio, you must meet the following requirements. ## See Also - **Concepts:** - - [The Clio Server](the-clio-server.html) + - [The Clio Server](../../concepts/networks-and-servers/the-clio-server.md) diff --git a/content/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md b/content/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md index 0260ce00b8..4a0cbb88a9 100644 --- a/content/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md +++ b/content/infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md @@ -14,7 +14,7 @@ These instructions install a binary that has been compiled by Ripple. ## Prerequisites -Before you install `rippled`, you must meet the [System Requirements](system-requirements.html). +Before you install `rippled`, you must meet the [System Requirements](system-requirements.md). ## Installation Steps @@ -27,88 +27,94 @@ Before you install `rippled`, you must meet the [System Requirements](system-req - `unstable` for pre-release builds (`release` branch) - `nightly` for experimental/development builds (`develop` branch) - + {% tabs %} - *Stable* + ```{% label="Stable" %} + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + REPOFILE + ``` - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - REPOFILE + ```{% label="Pre-release" %} + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-unstable] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/unstable/ + gpgkey=https://repos.ripple.com/repos/rippled-rpm/unstable/repodata/repomd.xml.key + REPOFILE + ``` - *Pre-release* + ```{% label="Development" %} + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-nightly] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/nightly/ + gpgkey=https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key + REPOFILE + ``` - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-unstable] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/unstable/ - gpgkey=https://repos.ripple.com/repos/rippled-rpm/unstable/repodata/repomd.xml.key - REPOFILE - - *Development* - - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-nightly] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/nightly/ - gpgkey=https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key - REPOFILE - - + {% /tabs %} 2. Fetch the latest repo updates: - sudo yum -y update + ``` + sudo yum -y update + ``` 3. Install the new `rippled` package: - sudo yum install rippled + ``` + sudo yum install rippled + ``` 4. Reload systemd unit files: - sudo systemctl daemon-reload + ``` + sudo systemctl daemon-reload + ``` 5. Configure the `rippled` service to start on boot: - sudo systemctl enable rippled.service + ``` + sudo systemctl enable rippled.service + ``` 6. Start the `rippled` service: - sudo systemctl start rippled.service + ``` + sudo systemctl start rippled.service + ``` ## Next Steps -{% include '_snippets/post-rippled-install.md' %} +{% partial file="/_snippets/post-rippled-install.md" /%} ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Configure rippled](configure-rippled.html) - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) - - [Get Started with the rippled API](get-started-using-http-websocket-apis.html) + - [Configure rippled](../configuration/index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) + - [Get Started with the rippled API](../../tutorials/get-started/get-started-using-http-websocket-apis.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/install-rippled-on-ubuntu.md b/content/infrastructure/installation/install-rippled-on-ubuntu.md index 19c54964b7..af926475eb 100644 --- a/content/infrastructure/installation/install-rippled-on-ubuntu.md +++ b/content/infrastructure/installation/install-rippled-on-ubuntu.md @@ -14,44 +14,56 @@ These instructions install a binary that has been compiled by Ripple. ## Prerequisites -Before you install `rippled`, you must meet the [System Requirements](system-requirements.html). +Before you install `rippled`, you must meet the [System Requirements](system-requirements.md). ## Installation Steps 1. Update repositories: - sudo apt -y update + ``` + sudo apt -y update + ``` 2. Install utilities: - sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` 3. Add Ripple's package-signing GPG key to your list of trusted keys: - sudo install -m 0755 -d /etc/apt/keyrings && \ - wget -qO- https://repos.ripple.com/repos/api/gpg/key/public | \ - sudo gpg --dearmor -o /etc/apt/keyrings/ripple.gpg + ``` + sudo install -m 0755 -d /etc/apt/keyrings && \ + wget -qO- https://repos.ripple.com/repos/api/gpg/key/public | \ + sudo gpg --dearmor -o /etc/apt/keyrings/ripple.gpg + ``` 4. Check the fingerprint of the newly-added key: - gpg --show-keys /etc/apt/keyrings/ripple.gpg + ``` + gpg --show-keys /etc/apt/keyrings/ripple.gpg + ``` The output should include an entry for Ripple such as the following: - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the second line, starting with `C001`.) 5. Add the appropriate Ripple repository for your operating system version: - echo "deb [signed-by=/etc/apt/keyrings/ripple.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` + echo "deb [signed-by=/etc/apt/keyrings/ripple.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` The above example is appropriate for **Ubuntu 20.04 Focal Fossa**. For other operating systems, replace the word `focal` with one of the following: @@ -70,23 +82,31 @@ Before you install `rippled`, you must meet the [System Requirements](system-req 6. Update the package index to include Ripple's repo and install `rippled`. - sudo apt -y update && sudo apt -y install rippled + ``` + sudo apt -y update && sudo apt -y install rippled + ``` 7. Check the status of the `rippled` service: - systemctl status rippled.service + ``` + systemctl status rippled.service + ``` The `rippled` service should start automatically. If not, you can start it manually: - sudo systemctl start rippled.service + ``` + sudo systemctl start rippled.service + ``` 8. Optional: allow `rippled` to bind to privileged ports. This allows you to serve incoming API requests on port 80 or 443. (If you want to do so, you must also update the config file's port settings.) - sudo setcap 'cap_net_bind_service=+ep' /opt/ripple/bin/rippled + ``` + sudo setcap 'cap_net_bind_service=+ep' /opt/ripple/bin/rippled + ``` 9. Optional: configure core dumps @@ -94,42 +114,44 @@ Before you install `rippled`, you must meet the [System Requirements](system-req By default Ubuntu is not configured to produce core files useful for debugging crashes. First run: - ulimit -c unlimited + ``` + ulimit -c unlimited + ``` Now run `sudo systemctl edit rippled`. The default editor should open and add - [Service] - LimitCORE=infinity + ``` + [Service] + LimitCORE=infinity + ``` This creates the file `/etc/systemd/system/rippled.service.d/override.conf` and configures the OS to save core dumps, without changing the service file provided by the `rippled` package. If your server crashes, you can find the core dump in `/var/lib/apport/coredump/`. To load the core dump for inspection, use a command such as the following: - gdb /opt/ripple/bin/rippled /var/lib/apport/coredump/core + ``` + gdb /opt/ripple/bin/rippled /var/lib/apport/coredump/core + ``` **Note:** To debug a core file this way, you must have the `rippled-dbgsym` package installed, and you need permission to read files in the core dump directory. ## Next Steps -{% include '_snippets/post-rippled-install.md' %} - +{% partial file="/_snippets/post-rippled-install.md" /%} + ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Configure rippled](configure-rippled.html) - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) - - [Get Started with the rippled API](get-started-using-http-websocket-apis.html) + - [Configure rippled](../configuration/index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) + - [Get Started with the rippled API](../../tutorials/get-started/get-started-using-http-websocket-apis.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/rippled-1-3-migration-instructions.md b/content/infrastructure/installation/rippled-1-3-migration-instructions.md index 0437319c40..47cfe0e234 100644 --- a/content/infrastructure/installation/rippled-1-3-migration-instructions.md +++ b/content/infrastructure/installation/rippled-1-3-migration-instructions.md @@ -13,56 +13,68 @@ This document provides migration steps for upgrading on supported platforms: - [CentOS or Red Hat Enterprise Linux (RHEL)](#migration-on-centos-or-red-hat-enterprise-linux-rhel) - [Ubuntu Linux](#migration-on-ubuntu-linux) -For other platforms, see the updated instructions for compiling from source. ([Ubuntu](build-run-rippled-ubuntu.html), [macOS](build-run-rippled-macos.html), or [Windows](https://github.com/XRPLF/rippled/tree/develop/Builds/VisualStudio2017)) +For other platforms, see the updated instructions for compiling from source. ([Ubuntu](build-on-linux-mac-windows.md), [macOS](build-on-linux-mac-windows.md), or [Windows](https://github.com/XRPLF/rippled/tree/develop/Builds/VisualStudio2017)) ## Migration on CentOS or Red Hat Enterprise Linux (RHEL) -Ripple's official RPM repository and instructions for using it have changed. If you have [automatic updates](update-rippled-automatically-on-linux.html) enabled, your system should perform the migration automatically. To migrate manually from the old repository to the new one, complete the following steps: +Ripple's official RPM repository and instructions for using it have changed. If you have [automatic updates](update-rippled-automatically-on-linux.md) enabled, your system should perform the migration automatically. To migrate manually from the old repository to the new one, complete the following steps: 1. Stop the `rippled` server. - $ sudo systemctl stop rippled.service + ``` + $ sudo systemctl stop rippled.service + ``` 2. Remove the old Ripple repository package. - $ sudo rpm -e ripple-repo + ``` + $ sudo rpm -e ripple-repo + ``` The `rippled-repo` package is now **DEPRECATED**. The package has been updated one last time for version 1.3.1. In the future, any changes to the repositories will require manual changes to the `ripple.repo` file. 3. Add Ripple's new yum repository: - $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ - enabled=1 - gpgcheck=0 - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - repo_gpgcheck=1 - REPOFILE + ``` + $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ + enabled=1 + gpgcheck=0 + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + repo_gpgcheck=1 + REPOFILE + ``` 4. Install the new `rippled` package: - $ sudo yum install rippled + ``` + $ sudo yum install rippled + ``` Version 1.3.1 does not require any changes to your config files (`rippled.cfg` and `validators.txt`). This update procedure leaves your existing config files in place. 5. Reload systemd unit files: - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 6. Start the `rippled` service: - $ sudo systemctl start rippled.service + ``` + $ sudo systemctl start rippled.service + ``` -**Warning:** If you use [automatic updates](update-rippled-automatically-on-linux.html), they should continue working after performing this migration process. However, **the `ripple-repo` package is now deprecated**. As a consequence, in the future, any changes to Ripple's repositories may require you to manually update your repos file. +**Warning:** If you use [automatic updates](update-rippled-automatically-on-linux.md), they should continue working after performing this migration process. However, **the `ripple-repo` package is now deprecated**. As a consequence, in the future, any changes to Ripple's repositories may require you to manually update your repos file. ## Migration on Ubuntu Linux -Prior to version 1.3, the supported way to install `rippled` on Ubuntu Linux was using Alien to install the RPM package. Starting with `rippled` v1.3.1, Ripple provides a native package for Ubuntu and Debian Linux, which is the recommended way of installing it. If you already have the RPM package installed, complete the [installation steps](install-rippled-on-ubuntu.html) to upgrade the package and switch over to the native APT (`.deb`) package. +Prior to version 1.3, the supported way to install `rippled` on Ubuntu Linux was using Alien to install the RPM package. Starting with `rippled` v1.3.1, Ripple provides a native package for Ubuntu and Debian Linux, which is the recommended way of installing it. If you already have the RPM package installed, complete the [installation steps](install-rippled-on-ubuntu.md) to upgrade the package and switch over to the native APT (`.deb`) package. If you have made any changes to your config files (`/opt/ripple/etc/rippled.cfg` and `/opt/ripple/etc/validators.txt`), `apt` may prompt you during installation asking if you want to overwrite your config files with the newest versions from the packages. Version 1.3 does not require any changes to the config file, so you can safely keep your existing config files unchanged. @@ -70,43 +82,47 @@ After installing the native APT package for 1.3, you need to reload/restart the 1. Reload systemd unit files: - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 2. Restart the `rippled` service: - $ sudo systemctl restart rippled.service + ``` + $ sudo systemctl restart rippled.service + ``` If you no longer need Alien for any other packages, you may optionally uninstall it and its dependencies using the following steps: 1. Uninstall Alien: - $ sudo apt -y remove alien + ``` + $ sudo apt -y remove alien + ``` 2. Uninstall unused dependencies: - $ sudo apt -y autoremove + ``` + $ sudo apt -y autoremove + ``` ### Automatic Updates -The `rippled` v1.3 package includes an updated auto-update script that works on Ubuntu and Debian Linux. For more information, see [Update `rippled` Automatically on Linux](update-rippled-automatically-on-linux.html). +The `rippled` v1.3 package includes an updated auto-update script that works on Ubuntu and Debian Linux. For more information, see [Update `rippled` Automatically on Linux](update-rippled-automatically-on-linux.md). ## See Also - **[`rippled` v1.3.1 Release Notes](https://github.com/XRPLF/rippled/releases/1.3.1)** - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Update Automatically on Linux](update-rippled-automatically-on-linux.html) - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) - - [Get Started with the rippled API](get-started-using-http-websocket-apis.html) + - [Update Automatically on Linux](update-rippled-automatically-on-linux.md) + - [Troubleshoot rippled](../troubleshooting/index.md) + - [Get Started with the rippled API](../../tutorials/get-started/get-started-using-http-websocket-apis.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/system-requirements.md b/content/infrastructure/installation/system-requirements.md index bd069a999a..c17f731ae2 100644 --- a/content/infrastructure/installation/system-requirements.md +++ b/content/infrastructure/installation/system-requirements.md @@ -21,7 +21,7 @@ For a validator in AWS, consider `z1d.2xlarge` with an extra 1 TB disk for loggi ## Minimum Specifications -**Caution:** These specifications are not enough to reliably [stay synced with Mainnet](server-doesnt-sync.html). For production use, follow the recommended specifications above. +**Caution:** These specifications are not enough to reliably [stay synced with Mainnet](../troubleshooting/server-doesnt-sync.md). For production use, follow the recommended specifications above. For testing purposes, you can run an XRP Ledger server on commodity hardware with the following minimum requirements: @@ -43,19 +43,15 @@ A `rippled` server relies on maintaining the correct time. It is recommended tha ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - More information on the recommended specifications and planning for production needs - - [Install `rippled`](install-rippled.html) - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) + - [Capacity Planning](capacity-planning.md) - More information on the recommended specifications and planning for production needs + - [Install `rippled`](index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/update-rippled-automatically-on-linux.md b/content/infrastructure/installation/update-rippled-automatically-on-linux.md index ad6e031be5..334faa8811 100644 --- a/content/infrastructure/installation/update-rippled-automatically-on-linux.md +++ b/content/infrastructure/installation/update-rippled-automatically-on-linux.md @@ -10,21 +10,25 @@ labels: On Linux, you can set up `rippled` to automatically upgrade to the latest version with a one-time `cron` configuration. Ripple recommends enabling automatic updates if possible. -These instructions assume you have already installed `rippled` [from the `yum` repository (CentOS/RedHat)](install-rippled-on-centos-rhel-with-yum.html) or [using `apt` (Ubuntu/Debian)](install-rippled-on-ubuntu.html). +These instructions assume you have already installed `rippled` [from the `yum` repository (CentOS/RedHat)](install-rippled-on-centos-rhel-with-yum.md) or [using `apt` (Ubuntu/Debian)](install-rippled-on-ubuntu.md). To set up automatic updates, complete the following steps: -1. Check that `/opt/ripple/etc/update-rippled-cron` exists. If it does not, update manually ([CentOS/Red Hat](update-rippled-manually-on-centos-rhel.html) or [Ubuntu/Debian](update-rippled-manually-on-ubuntu.html)). +1. Check that `/opt/ripple/etc/update-rippled-cron` exists. If it does not, update manually ([CentOS/Red Hat](update-rippled-manually-on-centos-rhel.md) or [Ubuntu/Debian](update-rippled-manually-on-ubuntu.md)). 2. Create a symlink in your `cron.d` folder to the `/opt/ripple/etc/update-rippled-cron` config file: - sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ + ``` + sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ + ``` - This configuration runs a script to update the installed `rippled` package within an hour of each new release. To avoid network instability from too many servers updating at the same time, this script does not automatically restart the server, so it continues to run the old version until it restarts. [Updated in: rippled 1.8.1][] + This configuration runs a script to update the installed `rippled` package within an hour of each new release. To avoid network instability from too many servers updating at the same time, this script does not automatically restart the server, so it continues to run the old version until it restarts. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}Updated in: rippled 1.8.1{% /badge %} 3. **Whenever a new release comes out,** you must manually restart the `rippled` service to switch to the updated software. - sudo systemctl restart rippled.service + ``` + sudo systemctl restart rippled.service + ``` **Caution:** In the future, it is possible that changes to Ripple's repositories may require manual intervention to update the URLs where your script searches for updates. Stay tuned to the [XRP Ledger Blog](/blog/) or the [ripple-server mailing list](https://groups.google.com/forum/#!forum/ripple-server) for announcements on any required changes. @@ -32,18 +36,14 @@ To set up automatic updates, complete the following steps: ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) + - [Capacity Planning](capacity-planning.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/update-rippled-manually-on-centos-rhel.md b/content/infrastructure/installation/update-rippled-manually-on-centos-rhel.md index 1436147d04..e9713f3f44 100644 --- a/content/infrastructure/installation/update-rippled-manually-on-centos-rhel.md +++ b/content/infrastructure/installation/update-rippled-manually-on-centos-rhel.md @@ -8,9 +8,9 @@ labels: --- # Update Manually on CentOS/Red Hat -This page describes how to update manually to the latest release of `rippled` on CentOS or Red Hat Enterprise Linux. Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.html) instead, where possible. +This page describes how to update manually to the latest release of `rippled` on CentOS or Red Hat Enterprise Linux. Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.md) instead, where possible. -These instructions assume you have already [installed `rippled` from the `yum` repository](install-rippled-on-centos-rhel-with-yum.html). +These instructions assume you have already [installed `rippled` from the `yum` repository](install-rippled-on-centos-rhel-with-yum.md). **Tip:** To perform these steps all at once, you can run the `/opt/ripple/bin/update-rippled.sh` script, which is included with the `rippled` package. This script should be run as a `sudo` user. @@ -18,46 +18,50 @@ To update manually, complete the following steps: 1. If you are upgrading to `rippled` 1.7.0 from an earlier version, re-add the repository to get Ripple's updated GPG key. Otherwise, skip this step: - $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - REPOFILE + ``` + $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + REPOFILE + ``` 1. Download and install the latest `rippled` package: - $ sudo yum update rippled + ``` + $ sudo yum update rippled + ``` This update procedure leaves your existing config files in place. 2. Reload the `systemd` unit files: - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 3. Restart the `rippled` service: - $ sudo service rippled restart + ``` + $ sudo service rippled restart + ``` ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [`rippled` v1.3.x Migration Instructions](rippled-1-3-migration-instructions.html) - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) + - [`rippled` v1.3.x Migration Instructions](rippled-1-3-migration-instructions.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/installation/update-rippled-manually-on-ubuntu.md b/content/infrastructure/installation/update-rippled-manually-on-ubuntu.md index a1d01f4094..6b71734a76 100644 --- a/content/infrastructure/installation/update-rippled-manually-on-ubuntu.md +++ b/content/infrastructure/installation/update-rippled-manually-on-ubuntu.md @@ -8,14 +8,18 @@ labels: --- # Update Manually on Ubuntu or Debian -This page describes how to update manually to the latest release of `rippled` on Ubuntu Linux. These instructions assume you have already [installed `rippled` using the native package](install-rippled-on-ubuntu.html). Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.html) instead, where possible. +This page describes how to update manually to the latest release of `rippled` on Ubuntu Linux. These instructions assume you have already [installed `rippled` using the native package](install-rippled-on-ubuntu.md). Ripple recommends setting up [automatic updates](update-rippled-automatically-on-linux.md) instead, where possible. -> **Caution:** Ripple renewed the GPG key used to sign binary packages shortly before the release of v1.7.0. If you are upgrading from a version earlier than 1.7.0, you must first download and manually trust the updated public key as follows: -> -> wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | \ -> sudo apt-key add - -> -> For more information, see the [`rippled` 1.7.0 release notes](https://xrpl.org/blog/2021/rippled-1.7.0.html#upgrading-special-action-required). +{% admonition type="warning" name="Caution" %} +Ripple renewed the GPG key used to sign binary packages shortly before the release of v1.7.0. If you are upgrading from a version earlier than 1.7.0, you must first download and manually trust the updated public key as follows: + +``` +wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | \ + sudo apt-key add - +``` + +For more information, see the [`rippled` 1.7.0 release notes](https://xrpl.org/blog/2021/rippled-1.7.0.html#upgrading-special-action-required). +{% /admonition %} **Tip:** To perform these steps all at once, you can run the `/opt/ripple/bin/update-rippled.sh` script, which is included with the `rippled` package and is compatible with Ubuntu and Debian. This script should be run as a `sudo` user. @@ -23,36 +27,40 @@ To update manually, complete the following steps: 1. Update repositories: - $ sudo apt -y update + ``` + $ sudo apt -y update + ``` 2. Upgrade the `rippled` package: - $ sudo apt -y upgrade rippled + ``` + $ sudo apt -y upgrade rippled + ``` 3. Reload the `systemd` unit files: - $ sudo systemctl daemon-reload + ``` + $ sudo systemctl daemon-reload + ``` 4. Restart the `rippled` service: - $ sudo service rippled restart + ``` + $ sudo service rippled restart + ``` ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [`rippled` v1.3.x Migration Instructions](rippled-1-3-migration-instructions.html) - - [Troubleshoot rippled](troubleshoot-the-rippled-server.html) + - [`rippled` v1.3.x Migration Instructions](rippled-1-3-migration-instructions.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md b/content/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md index a98db7a77a..c3ce6b8f8b 100644 --- a/content/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md +++ b/content/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md @@ -13,11 +13,11 @@ In [stand-alone mode][], `rippled` does not communicate to other members of the rippled ledger_accept --conf=/path/to/rippled.cfg ``` -In stand-alone mode, `rippled` makes no distinction between a "closed" ledger version and a "validated" ledger version. (For more information about the difference, see [The XRP Ledger Consensus Process](consensus.html).) +In stand-alone mode, `rippled` makes no distinction between a "closed" ledger version and a "validated" ledger version. (For more information about the difference, see [The XRP Ledger Consensus Process](../../concepts/consensus-protocol/index.md).) Whenever `rippled` closes a ledger, it reorders the transactions according to a deterministic but hard-to-game algorithm. (This is an important part of consensus, since transactions may arrive at different parts of the network in different order.) When using `rippled` in stand-alone mode, you should manually advance the ledger before submitting a transaction that depends on the result of a transaction from a different address. Otherwise, the two transactions might be executed in reverse order when the ledger is closed. -**Note:** You can safely submit multiple transactions from a single address to a single ledger, because `rippled` sorts transactions from the same address in ascending order by [`Sequence` number](transaction-common-fields.html). +**Note:** You can safely submit multiple transactions from a single address to a single ledger, because `rippled` sorts transactions from the same address in ascending order by [`Sequence` number](../../references/protocol/transactions/common-fields.md). ## See Also @@ -25,9 +25,6 @@ Whenever `rippled` closes a ledger, it reorders the transactions according to a - **References:** - [ledger_accept method][] - [server_info method][] - - [`rippled` Commandline Usage](commandline-usage.html) + - [`rippled` Commandline Usage](../commandline-usage.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/testing-and-auditing/index.md b/content/infrastructure/testing-and-auditing/index.md index 580db407b1..7abaf25f8f 100644 --- a/content/infrastructure/testing-and-auditing/index.md +++ b/content/infrastructure/testing-and-auditing/index.md @@ -1,9 +1,13 @@ --- html: use-stand-alone-mode.html parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: For new features and experiments, you can use Stand-Alone Mode to test features with a full network. --- # Testing and Auditing -For new features and experiments, you can use Stand-Alone Mode to test features with a full network. \ No newline at end of file +For new features and experiments, you can use Stand-Alone Mode to test features with a full network. + + +{% child-pages /%} diff --git a/content/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md b/content/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md index 5db215aa81..a0683805c7 100644 --- a/content/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md +++ b/content/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md @@ -7,9 +7,9 @@ labels: --- # Load a Saved Ledger in Stand-Alone Mode -You can start a `rippled` server in [Stand-Alone Mode](rippled-server-modes.html) using a [historical ledger version](ledgers.html) that was previously saved to disk. For example, if your `rippled` server was previously synced with any XRP Ledger peer-to-peer network including [the production Mainnet, the Testnet, or the Devnet](parallel-networks.html), you can load any ledger version your server had available. +You can start a `rippled` server in [Stand-Alone Mode](../../concepts/networks-and-servers/rippled-server-modes.md) using a [historical ledger version](../../concepts/ledgers/index.md) that was previously saved to disk. For example, if your `rippled` server was previously synced with any XRP Ledger peer-to-peer network including [the production Mainnet, the Testnet, or the Devnet](../../concepts/networks-and-servers/parallel-networks.md), you can load any ledger version your server had available. -Loading a historical ledger version is useful for "replaying" a ledger to verify that transactions were processed according to the rules of the network, or to compare the results of processing transaction sets with different [amendments](amendments.html) enabled. In the unlikely event that [an attack against the XRP Ledger's consensus mechanism](consensus-protections.html) caused unwanted effects to the shared ledger state, a consensus of validators could "roll back" to a known-good network state starting with this process. +Loading a historical ledger version is useful for "replaying" a ledger to verify that transactions were processed according to the rules of the network, or to compare the results of processing transaction sets with different [amendments](../../concepts/networks-and-servers/amendments.md) enabled. In the unlikely event that [an attack against the XRP Ledger's consensus mechanism](../../concepts/consensus-protocol/consensus-protections.md) caused unwanted effects to the shared ledger state, a consensus of validators could "roll back" to a known-good network state starting with this process. **Caution:** As `rippled` is updated to newer versions, amendments are retired and become core functions of the ledger, which can affect how transactions are processed. To produce historically accurate results, you need to replay ledgers using the version of `rippled` the transaction was processed in. @@ -29,7 +29,7 @@ Use the [server_info method][] to check the state of your server relative to the * `proposing` * `validating` -For more information, see [Possible Server States](rippled-server-states.html). +For more information, see [Possible Server States](../../references/http-websocket-apis/api-conventions/rippled-server-states.md). ## 3. (Optional) Retrieve specific ledger versions. @@ -63,7 +63,7 @@ rippled -a --load --ledger 19860944 --conf=/path/to/rippled.cfg This makes the saved ledger version the "current" (open) ledger for the server when it starts. -For more information on the options you can use when starting `rippled` in stand-alone mode, see [Commandline Usage: Stand-Alone Mode Options](commandline-usage.html#stand-alone-mode-options). +For more information on the options you can use when starting `rippled` in stand-alone mode, see [Commandline Usage: Stand-Alone Mode Options](../commandline-usage.md#stand-alone-mode-options). ## 6. Manually advance the ledger. @@ -81,11 +81,8 @@ This puts the transactions in canonical order and processes them to make a close - **References:** - [ledger_accept method][] - [server_info method][] - - [`rippled` Commandline Usage](commandline-usage.html) + - [`rippled` Commandline Usage](../commandline-usage.md) - **Use Cases:** - - [Contribute Code to the XRP Ledger](contribute-code.html) + - [Contribute Code to the XRP Ledger](../../resources/contribute-code/contribute-code.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/testing-and-auditing/run-private-network-with-docker.md b/content/infrastructure/testing-and-auditing/run-private-network-with-docker.md index 70bc4e7f44..9460c5cfdf 100644 --- a/content/infrastructure/testing-and-auditing/run-private-network-with-docker.md +++ b/content/infrastructure/testing-and-auditing/run-private-network-with-docker.md @@ -27,7 +27,7 @@ In this tutorial, you will learn: The following diagram shows a high-level overview of the containerized private network that you will set up. -{{ include_svg("img/xrp-ledger-private-network-docker.svg", "Figure 1: Diagram of a three node containerized private ledger network") }} +[{% inline-svg file="/img/xrp-ledger-private-network-docker.svg" /%}](/img/xrp-ledger-private-network-docker.svg "Figure 1: Diagram of a three node containerized private ledger network") ## Prerequisites @@ -39,56 +39,72 @@ Generate the keys for **each** of your validator nodes by using the `validator-k 1. In your terminal, run the following to execute commands within the `rippled` Docker container shell: - docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest + ``` + docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest + ``` **Note:** For Apple M1 or M2 chips, run `docker run -it --platform linux/amd64 --entrypoint /bin/bash xrpllabsofficial/xrpld:latest` instead. Sample output: - root@7732bd585b14:/# + ``` + root@7732bd585b14:/# + ``` 2. Generate a validator keypair using the `create_keys` command. - cd /opt/ripple/bin && - ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json + ``` + cd /opt/ripple/bin && + ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json + ``` Sample output: - Validator keys stored in /PATH/TO/YOUR/validator--keys.json + ``` + Validator keys stored in /PATH/TO/YOUR/validator--keys.json - This file should be stored securely and not shared. + This file should be stored securely and not shared. + ``` **Warning:** In a production or test environment you should follow best practices always and store the generated keys in a secure, offline, and recoverable location, such as an encrypted USB flash drive. However, as this tutorial is an example of a local development setup, storing the keys on your computer is sufficient. 3. Copy the **public_key** value from the JSON output, and store it in a text file on your computer. - cat /PATH/TO/YOUR/validator--keys.json + ``` + cat /PATH/TO/YOUR/validator--keys.json + ``` Sample output: - { - "key_type" : "ed25519", - "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", - "revoked" : false, - "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", - "token_sequence" : 0 - } + ``` + { + "key_type" : "ed25519", + "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", + "revoked" : false, + "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", + "token_sequence" : 0 + } + ``` 4. Create a validator token using the `create_token` command. - ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json + ``` + ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json + ``` Copy the token value from the output and save it in a text file on your computer. For example: - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` 5. Repeat steps **2-4** for the remaining validator nodes. Once you have generated the keys and tokens for _all_ validators, enter `exit` in your terminal to exit the Docker container. @@ -102,17 +118,21 @@ This section describes how to configure the validator nodes in your network. On your computer, create the directories for all nodes in the private network, and their respective configuration folders. - xrpl-private-network/ - ├── validator_1/ - │ └── config - ├── validator_2/ - │ └── config - └── validator_3/ - └── config +``` +xrpl-private-network/ + ├── validator_1/ + │ └── config + ├── validator_2/ + │ └── config + └── validator_3/ + └── config +``` In your terminal, run the following command to create the directories: - mkdir -p xrpl-private-network/{validator_1/config,validator_2/config,validator_3/config} +``` +mkdir -p xrpl-private-network/{validator_1/config,validator_2/config,validator_3/config} +``` ### Create the validator configuration files @@ -122,113 +142,117 @@ For each validator node, follow these steps: 2. Copy the information from the `rippled.cfg` template below into the file. - [server] - port_rpc_admin_local - port_rpc - port_ws_admin_local - port_ws_public - port_peer - # ssl_key = /etc/ssl/private/server.key - # ssl_cert = /etc/ssl/certs/server.crt + ``` + [server] + port_rpc_admin_local + port_rpc + port_ws_admin_local + port_ws_public + port_peer + # ssl_key = /etc/ssl/private/server.key + # ssl_cert = /etc/ssl/certs/server.crt - [port_rpc_admin_local] - port = 5005 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = http + [port_rpc_admin_local] + port = 5005 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = http - [port_ws_admin_local] - port = 6006 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = ws + [port_ws_admin_local] + port = 6006 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = ws - [port_ws_public] - port = 80 - ip = 0.0.0.0 - protocol = ws + [port_ws_public] + port = 80 + ip = 0.0.0.0 + protocol = ws - [port_peer] - port = 51235 - ip = 0.0.0.0 - protocol = peer + [port_peer] + port = 51235 + ip = 0.0.0.0 + protocol = peer - [port_rpc] - port = 51234 - ip = 0.0.0.0 - admin = 127.0.0.1 - protocol = https, http + [port_rpc] + port = 51234 + ip = 0.0.0.0 + admin = 127.0.0.1 + protocol = https, http - [node_size] - small - # tiny - # small - # medium - # large - # huge + [node_size] + small + # tiny + # small + # medium + # large + # huge - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - advisory_delete=0 + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + advisory_delete=0 - # How many ledgers do we want to keep (history)? - # Integer value that defines the number of ledgers - # between online deletion events - online_delete=256 + # How many ledgers do we want to keep (history)? + # Integer value that defines the number of ledgers + # between online deletion events + online_delete=256 - [ledger_history] - # How many ledgers do we want to keep (history)? - # Integer value (ledger count) - # or (if you have lots of TB SSD storage): 'full' - 256 + [ledger_history] + # How many ledgers do we want to keep (history)? + # Integer value (ledger count) + # or (if you have lots of TB SSD storage): 'full' + 256 - [database_path] - /var/lib/rippled/db + [database_path] + /var/lib/rippled/db - [debug_logfile] - /var/log/rippled/debug.log + [debug_logfile] + /var/log/rippled/debug.log - [sntp_servers] - time.windows.com - time.apple.com - time.nist.gov - pool.ntp.org + [sntp_servers] + time.windows.com + time.apple.com + time.nist.gov + pool.ntp.org - [ips_fixed] - validator_1 51235 - validator_2 51235 - validator_3 51235 + [ips_fixed] + validator_1 51235 + validator_2 51235 + validator_3 51235 - [validators_file] - validators.txt + [validators_file] + validators.txt - [rpc_startup] - { "command": "log_level", "severity": "warning" } - # severity (order: lots of information .. only errors) - # debug - # info - # warn - # error - # fatal + [rpc_startup] + { "command": "log_level", "severity": "warning" } + # severity (order: lots of information .. only errors) + # debug + # info + # warn + # error + # fatal - [ssl_verify] - 0 + [ssl_verify] + 0 - [validator_token] - + [validator_token] + + ``` 3. Add the generated validator token that you created at the [beginning](#generate-the-validator-keys) of the tutorial. For example: - [validator_token] - eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG - V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz - cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS - YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw - NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 - aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl - eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 - NUQzMUVBOTU1QjQyMTIifQ== + ``` + [validator_token] + eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG + V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz + cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS + YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw + NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 + aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl + eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 + NUQzMUVBOTU1QjQyMTIifQ== + ``` Each validator node must have its own unique token. @@ -242,10 +266,12 @@ For each node, follow these steps: 2. Copy the public keys from the `validator-keys.json` files that you generated at the [beginning](#generate-the-validator-keys) of the tutorial. 3. Add the public keys of _all_ the validators. For example: - [validators] - nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu - nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY - nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc + ``` + [validators] + nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu + nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY + nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc + ``` ## Start the Network @@ -257,51 +283,55 @@ To start running your private network, follow these steps: 1. Create a `docker-compose.yml` file in the root of the private network directory, `xrpl-private-network`, and add the following content: - version: "3.9" - services: - validator_1: - platform: linux/amd64 - container_name: validator_1 - image: "xrpllabsofficial/xrpld" - ports: - - "8001:80" - - "5006:5005" - - "4001:6006" - - "9001:51235" - volumes: - - ./validator_1/config:/config/ - validator_2: - platform: linux/amd64 - container_name: validator_2 - image: "xrpllabsofficial/xrpld" - ports: - - "8002:80" - - "5007:5005" - - "4002:6006" - - "9002:51235" - volumes: - - ./validator_2/config:/config/ - validator_3: - platform: linux/amd64 - container_name: validator_3 - image: "xrpllabsofficial/xrpld" - ports: - - "8003:80" - - "5008:5005" - - "4003:6006" - - "9003:51235" - volumes: - - ./validator_3/config:/config/ + ``` + version: "3.9" + services: + validator_1: + platform: linux/amd64 + container_name: validator_1 + image: "xrpllabsofficial/xrpld" + ports: + - "8001:80" + - "5006:5005" + - "4001:6006" + - "9001:51235" + volumes: + - ./validator_1/config:/config/ + validator_2: + platform: linux/amd64 + container_name: validator_2 + image: "xrpllabsofficial/xrpld" + ports: + - "8002:80" + - "5007:5005" + - "4002:6006" + - "9002:51235" + volumes: + - ./validator_2/config:/config/ + validator_3: + platform: linux/amd64 + container_name: validator_3 + image: "xrpllabsofficial/xrpld" + ports: + - "8003:80" + - "5008:5005" + - "4003:6006" + - "9003:51235" + volumes: + - ./validator_3/config:/config/ + ``` The `volumes` key in each `service` represents the location where your config files are stored. For example, `./validator_1/config:/config/` maps the `/validator_1/config` directory on your host computer to `/config/` in the Docker container. Any changes made in the host directory will be reflected in the container automatically. 2. From your terminal, in the location where you created the `docker-compose.yml` file, run `docker-compose up -d`. You should see a similar output to the one below: - [+] Running 4/4 - ✔ Network xrpl-private-network_default Created 0.0s - ✔ Container validator_3 Started 0.5s - ✔ Container validator_1 Started 0.5s - ✔ Container validator_2 Started 0.5s + ``` + [+] Running 4/4 + ✔ Network xrpl-private-network_default Created 0.0s + ✔ Container validator_3 Started 0.5s + ✔ Container validator_1 Started 0.5s + ✔ Container validator_2 Started 0.5s + ``` ## Verify the Network @@ -311,47 +341,59 @@ Now that the private ledger network is up, you need to verify that **each** vali 2. Run the `rippled server_info` command to check the state of the validator: - rippled server_info | grep server_state + ``` + rippled server_info | grep server_state + ``` Sample Output: - "server_state" : "proposing" + ``` + "server_state" : "proposing" + ``` **Note:** If the state is not updated to **proposing**, repeat step **2** after a few minutes as the ledger can take some time to update. 3. Verify the number of peers connected to the validator. - rippled server_info | grep peers + ``` + rippled server_info | grep peers + ``` Sample Output: - "peers" : 2 + ``` + "peers" : 2 + ``` 4. Run the following command to check the genesis account information: - rippled account_info rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh validated strict + ``` + rippled account_info rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh validated strict + ``` Sample Output: - { - "result" : { - "account_data" : { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Balance" : "100000000000000000", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "0000000000000000000000000000000000000000000000000000000000000000", - "PreviousTxnLgrSeq" : 0, - "Sequence" : 1, - "index" : "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" - }, - "ledger_hash" : "CFCEFB049A71E26DE812529ABB212F330FAF583A98FE073F14713B0644D7CEE9", - "ledger_index" : 10181, - "status" : "success", - "validated" : true - } + ``` + { + "result" : { + "account_data" : { + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Balance" : "100000000000000000", + "Flags" : 0, + "LedgerEntryType" : "AccountRoot", + "OwnerCount" : 0, + "PreviousTxnID" : "0000000000000000000000000000000000000000000000000000000000000000", + "PreviousTxnLgrSeq" : 0, + "Sequence" : 1, + "index" : "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" + }, + "ledger_hash" : "CFCEFB049A71E26DE812529ABB212F330FAF583A98FE073F14713B0644D7CEE9", + "ledger_index" : 10181, + "status" : "success", + "validated" : true } + } + ``` 5. To leave the Docker container shell, enter `exit` in the terminal. @@ -361,60 +403,68 @@ Perform a **test** transaction to ensure you can send money to an account. 1. In your terminal, run the the following command to submit a transaction: - docker exec -it validator_1 \ - rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' + ``` + docker exec -it validator_1 \ + rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' + ``` Sample Output: - { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", - "tx_json" : { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Amount" : "1000000000", - "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 1, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "Payment", - "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", - "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" - } + ``` + { + "result" : { + "engine_result" : "tesSUCCESS", + "engine_result_code" : 0, + "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", + "status" : "success", + "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", + "tx_json" : { + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Amount" : "1000000000", + "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Fee" : "10", + "Flags" : 2147483648, + "Sequence" : 1, + "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType" : "Payment", + "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", + "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" } - } + } + } + ``` 2. For each validator, verify that the destination account `r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs` has 1000000000 XRP. For example: - docker exec -it validator_1 \ - rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict + ``` + docker exec -it validator_1 \ + rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict + ``` Sample Output: - { - "result" : { - "account_data" : { - "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Balance" : "1000000000", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", - "PreviousTxnLgrSeq" : 36, - "Sequence" : 1, - "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" - }, - "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", - "ledger_index" : 51, - "status" : "success", - "validated" : true - } - } - + ``` + { + "result" : { + "account_data" : { + "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Balance" : "1000000000", + "Flags" : 0, + "LedgerEntryType" : "AccountRoot", + "OwnerCount" : 0, + "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", + "PreviousTxnLgrSeq" : 36, + "Sequence" : 1, + "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" + }, + "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", + "ledger_index" : 51, + "status" : "success", + "validated" : true + } + } + + ``` All validator nodes should respond with the same balance of 1000000000 XRP for the `r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs` account. ## Stop the Network @@ -424,20 +474,24 @@ If you wish to stop running the private network: 1. In your terminal, go to the `xrpl-private-network` directory. 2. Run the following command to shut down the network: - docker-compose down + ``` + docker-compose down + ``` Sample Output: - [+] Running 4/4 - ✔ Container validator_3 Removed 1.7s - ✔ Container validator_1 Removed 1.6s - ✔ Container validator_2 Removed 1.6s - ✔ Network xrpl-private-network_default Removed 0.0s + ``` + [+] Running 4/4 + ✔ Container validator_3 Removed 1.7s + ✔ Container validator_1 Removed 1.6s + ✔ Container validator_2 Removed 1.6s + ✔ Network xrpl-private-network_default Removed 0.0s + ``` ## See Also - **Networks and Servers:** - - [Peer Protocol](peer-protocol.html) + - [Peer Protocol](../../concepts/networks-and-servers/peer-protocol.md) - **References:** - [XRPL Testnet Setup Scripts for Docker](https://github.com/UNIC-IFF/xrpl-docker-testnet) diff --git a/content/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md b/content/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md index 1e4af3de29..b179c589d5 100644 --- a/content/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md +++ b/content/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md @@ -15,9 +15,9 @@ In stand-alone mode, you can have `rippled` create a new genesis ledger. This pr rippled -a --start --conf=/path/to/rippled.cfg ``` -For more information on the options you can use when starting `rippled` in stand-alone mode, see [Commandline Usage: Stand-Alone Mode Options](commandline-usage.html#stand-alone-mode-options). +For more information on the options you can use when starting `rippled` in stand-alone mode, see [Commandline Usage: Stand-Alone Mode Options](../commandline-usage.md#stand-alone-mode-options). -In a genesis ledger, the [genesis address](addresses.html#special-addresses) holds all 100 billion XRP. The keys of the genesis address are [hardcoded](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184) as follows: +In a genesis ledger, the [genesis address](../../concepts/accounts/addresses.md#special-addresses) holds all 100 billion XRP. The keys of the genesis address are [hardcoded](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184) as follows: **Address:** `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` @@ -25,26 +25,23 @@ In a genesis ledger, the [genesis address](addresses.html#special-addresses) hol ## Settings in New Genesis Ledgers -In a new genesis ledger, the hard-coded default [Reserve](reserves.html) is **200 XRP** minimum for funding a new address, with an increment of **50 XRP** per object in the ledger. These values are higher than the current reserve requirements of the production network. (See also: [Fee Voting](fee-voting.html)) +In a new genesis ledger, the hard-coded default [Reserve](../../concepts/accounts/reserves.md) is **200 XRP** minimum for funding a new address, with an increment of **50 XRP** per object in the ledger. These values are higher than the current reserve requirements of the production network. (See also: [Fee Voting](../../concepts/consensus-protocol/fee-voting.md)) -By default, a new genesis ledger has no [amendments](amendments.html) enabled. If you start a new genesis ledger with `--start`, the genesis ledger contains an [EnableAmendment pseudo-transaction](enableamendment.html) to turn on all amendments natively supported by the `rippled` server, except for amendments that you explicitly disable in the config file. The effects of those amendments are available starting from the very next ledger version. (Reminder: in stand-alone mode, you must [advance the ledger manually](advance-the-ledger-in-stand-alone-mode.html).) [New in: rippled 0.50.0][] +By default, a new genesis ledger has no [amendments](../../concepts/networks-and-servers/amendments.md) enabled. If you start a new genesis ledger with `--start`, the genesis ledger contains an [EnableAmendment pseudo-transaction](../../references/protocol/transactions/pseudo-transaction-types/enableamendment.md) to turn on all amendments natively supported by the `rippled` server, except for amendments that you explicitly disable in the config file. The effects of those amendments are available starting from the very next ledger version. (Reminder: in stand-alone mode, you must [advance the ledger manually](advance-the-ledger-in-stand-alone-mode.md).) {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.50.0" %}New in: rippled 0.50.0{% /badge %} ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [`rippled` Server Modes](rippled-server-modes.html) - - [Parallel Networks](parallel-networks.html) - - [Amendments](amendments.html) - - [Fee Voting](fee-voting.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [`rippled` Server Modes](../../concepts/networks-and-servers/rippled-server-modes.md) + - [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) + - [Amendments](../../concepts/networks-and-servers/amendments.md) + - [Fee Voting](../../concepts/consensus-protocol/fee-voting.md) - **References:** - [ledger_accept method][] - [server_info method][] - - [`rippled` Commandline Usage](commandline-usage.html) + - [`rippled` Commandline Usage](../commandline-usage.md) - **Use Cases:** - - [Contribute Code to the XRP Ledger](contribute-code-to-rippled.html) + - [Contribute Code to the XRP Ledger](../../resources/contribute-code/contribute-code.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/testing-and-auditing/test-amendments.md b/content/infrastructure/testing-and-auditing/test-amendments.md index e0d8d28520..fd4e4013aa 100644 --- a/content/infrastructure/testing-and-auditing/test-amendments.md +++ b/content/infrastructure/testing-and-auditing/test-amendments.md @@ -14,13 +14,14 @@ You can test how `rippled` behaves before proposed amendments are fully enabled To forcibly enable a feature, add a `[features]` stanza with amendment short names to your `rippled.cfg` file. Each amendment needs its own line. - -_Example_ +{% tabs %} +{% tab label="Example" %} ``` [features] MultiSign TrustSetAuth ``` +{% /tab %} - \ No newline at end of file +{% /tabs %} diff --git a/content/infrastructure/troubleshooting/diagnosing-problems.md b/content/infrastructure/troubleshooting/diagnosing-problems.md index be56e7c4d3..14f9fb77ac 100644 --- a/content/infrastructure/troubleshooting/diagnosing-problems.md +++ b/content/infrastructure/troubleshooting/diagnosing-problems.md @@ -11,8 +11,8 @@ If you are having problems with `rippled`, the first step is to collect more inf See the following pages for some common categories of problems, their causes, and fixes: -- If your server does not start (such as crashing or otherwise shutting down automatically), see **[rippled Server Won't Start](server-wont-start.html)**. -- If your server starts, but does not reliably sync or remain synced to the XRP Ledger network, see **[rippled Server Doesn't Sync](server-doesnt-sync.html)**. +- If your server does not start (such as crashing or otherwise shutting down automatically), see **[rippled Server Won't Start](server-wont-start.md)**. +- If your server starts, but does not reliably sync or remain synced to the XRP Ledger network, see **[rippled Server Doesn't Sync](server-doesnt-sync.md)**. The rest of this document suggests steps for diagnosing problems that happen while your server is up and running (including if the process is active but unable to sync with the network). @@ -27,63 +27,67 @@ rippled server_info The response to this command has a lot of information, which is documented along with the [server_info method][]. For troubleshooting purposes, the most important fields are (from most commonly used to least): -- **`server_state`** - Most of the time, this field should show `proposing` for a server that is [configured as a validator](run-rippled-as-a-validator.html), or `full` for a non-validating server. The value `connected` means that the server can communicate with the rest of the peer-to-peer network, but it does not yet have enough data to track progress of the shared ledger state. Normally, syncing to the state of the rest of the ledger takes about 5-15 minutes after starting. +- **`server_state`** - Most of the time, this field should show `proposing` for a server that is [configured as a validator](../configuration/server-modes/run-rippled-as-a-validator.md), or `full` for a non-validating server. The value `connected` means that the server can communicate with the rest of the peer-to-peer network, but it does not yet have enough data to track progress of the shared ledger state. Normally, syncing to the state of the rest of the ledger takes about 5-15 minutes after starting. - If your server remains in the `connected` state for hours, or returns to the `connected` state after being in the `full` or `proposing` states, that usually indicates that your server cannot keep up with the rest of the network. The most common bottlenecks are disk I/O, network bandwidth, and RAM. - For example, the following server state information shows a healthy server that took less than 3 minutes to sync (split between the `disconnected`, `connected`, and `syncing` states), and is currently in the fully-synced `proposing` state, where it has remained for approximately 90 minutes: - $ ./rippled server_info - Loading: "/etc/opt/ripple/rippled.cfg" - 2020-Jan-03 22:49:32.834134358 HTTPClient:NFO Connecting to 127.0.0.1:5005 + ``` + $ ./rippled server_info + Loading: "/etc/opt/ripple/rippled.cfg" + 2020-Jan-03 22:49:32.834134358 HTTPClient:NFO Connecting to 127.0.0.1:5005 - { - "result" : { - "info" : { - ... (trimmed) ... - "server_state" : "proposing", - "server_state_duration_us" : "5183282365", - "state_accounting" : { - "connected" : { - "duration_us" : "126164786", - "transitions" : 1 - }, - "disconnected" : { - "duration_us" : "2111321", - "transitions" : 1 - }, - "full" : { - "duration_us" : "5183282365", - "transitions" : 1 - }, - "syncing" : { - "duration_us" : "5545604", - "transitions" : 1 - }, - "tracking" : { - "duration_us" : "0", - "transitions" : 1 - } - }, - ... (trimmed) ... + { + "result" : { + "info" : { + ... (trimmed) ... + "server_state" : "proposing", + "server_state_duration_us" : "5183282365", + "state_accounting" : { + "connected" : { + "duration_us" : "126164786", + "transitions" : 1 + }, + "disconnected" : { + "duration_us" : "2111321", + "transitions" : 1 + }, + "full" : { + "duration_us" : "5183282365", + "transitions" : 1 + }, + "syncing" : { + "duration_us" : "5545604", + "transitions" : 1 + }, + "tracking" : { + "duration_us" : "0", + "transitions" : 1 } - } + }, + ... (trimmed) ... } + } + } + ``` If you do not have a `full` or `proposing` state, then your server has not yet synced to the network. If your server shows multiple transitions between the same states (`transitions` is 2 or more), that indicates that your server lost sync with the network. It's a problem if you have many transitions in a short period of time; it's OK if you have a few transitions over a long period of time, because some fluctuations in internet connectivity are unavoidable. The amount of time in individual states (`duration_us`) compared with total uptime (`server_state_duration_us`) can also tell you how well your server is staying synced. After about 24 hours of uptime, if less than 99% of your server's total runtime is spent in the `full` or `proposing` states, you may want to investigate possible sources of instability. - - For help debugging syncing issues, see [Server Doesn't Sync](server-doesnt-sync.html). + - For help debugging syncing issues, see [Server Doesn't Sync](server-doesnt-sync.md). -- **`complete_ledgers`** - This field shows which [ledger indexes](basic-data-types.html#ledger-index) your server has complete ledger data for. Healthy servers usually have a single range of recent ledgers, such as `"12133424-12133858"`. +- **`complete_ledgers`** - This field shows which [ledger indexes](../../references/protocol/data-types/basic-data-types.md#ledger-index) your server has complete ledger data for. Healthy servers usually have a single range of recent ledgers, such as `"12133424-12133858"`. - If you have a disjoint set of complete ledgers such as `"11845721-12133420,12133424-12133858"`, that could indicate that your server has had intermittent outages or has temporarily fallen out of sync with the rest of the network. The most common causes for this are insufficient disk I/O or network bandwidth. - Normally, a `rippled` server downloads recent ledger history from its peers. If gaps in your ledger history persist for more than a few hours, you may not be connected to any peers who have the missing data. If this occurs, you can force your server to try and peer with one of Ripple's full-history public servers by adding the following stanza to your config file and restarting: - [ips_fixed] - s2.ripple.com 51235 + ``` + [ips_fixed] + s2.ripple.com 51235 + ``` -- **`amendment_blocked`** - This field is normally omitted from the `server_info` response. If this field appears with the value `true`, then the network has approved an [amendment](amendments.html) for which your server doesn't have an implementation. Most likely, you can fix this by [updating rippled](install-rippled.html) to the latest version. You can also use the [feature method][] to see what amendment IDs are currently enabled and which one(s) your server does and does not support. +- **`amendment_blocked`** - This field is normally omitted from the `server_info` response. If this field appears with the value `true`, then the network has approved an [amendment](../../concepts/networks-and-servers/amendments.md) for which your server doesn't have an implementation. Most likely, you can fix this by [updating rippled](../installation/index.md) to the latest version. You can also use the [feature method][] to see what amendment IDs are currently enabled and which one(s) your server does and does not support. - **`peers`** - This field indicates how many other servers in the XRP Ledger peer-to-peer network your server is connected to. Healthy servers typically show between 5 and 50 peers, unless explicitly configured to connect only to certain peers. @@ -107,7 +111,7 @@ The `rippled` executable returns the following message if it wasn't able to conn This generally indicates one of several problems: - The `rippled` server is starting up, or is not running at all. Check the status of the service; if it is running, wait a few seconds and try again. -- You may need to pass different [parameters to the `rippled` commandline client](commandline-usage.html#client-mode-options) to connect to your server. +- You may need to pass different [parameters to the `rippled` commandline client](../commandline-usage.md#client-mode-options) to connect to your server. - The `rippled` server may be configured not to accept JSON-RPC connections. @@ -115,35 +119,37 @@ This generally indicates one of several problems: [By default,](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142) `rippled` writes the server's debug log to the file `/var/log/rippled/debug.log`. The location of the debug log can differ based on your server's config file. If you start the `rippled` service directly (instead of using `systemctl` or `service` to start it), it also prints log messages to the console by default. -The default config file sets the log level to severity "warning" for all categories of log messages by internally using the [log_level method][] during startup. You can control the verbosity of the debug log [using the `--silent` commandline option during startup](commandline-usage.html#verbosity-options) and with the [log_level method][] while the server is running. (See the `[rpc_startup]` stanza of the config file for settings.) +The default config file sets the log level to severity "warning" for all categories of log messages by internally using the [log_level method][] during startup. You can control the verbosity of the debug log [using the `--silent` commandline option during startup](../commandline-usage.md#verbosity-options) and with the [log_level method][] while the server is running. (See the `[rpc_startup]` stanza of the config file for settings.) It is normal for a `rippled` the server to print many warning-level (`WRN`) messages during startup and a few warning-level messages from time to time later on. You can **safely ignore** most warnings in the first 5 to 15 minutes of server startup. -For a more thorough explanation of various types of log messages, see [Understanding Log Messages](understanding-log-messages.html). +For a more thorough explanation of various types of log messages, see [Understanding Log Messages](understanding-log-messages.md). ## Info Collection Script If you have problems diagnosing the problem, or you are unable to resolve the problem with any of the common fixes, you may want to ask for help in a support forum or the [GitHub issues](https://github.com/XRPLF/rippled/issues). When asking for help, you can use an info collection script to gather information about your system to help others diagnose the issue. -The official package installation (for [Ubuntu/Debian](install-rippled-on-ubuntu.html) or [CentOS/RedHat](install-rippled-on-centos-rhel-with-yum.html)) installs such a script by default, to `/opt/ripple/bin/getRippledInfo`. [New in: rippled 1.5.0][] If you compiled `rippled` yourself, you can find the same script [in the `rippled` source code repository](https://github.com/XRPLF/rippled/blob/develop/bin/getRippledInfo). +The official package installation (for [Ubuntu/Debian](../installation/install-rippled-on-ubuntu.md) or [CentOS/RedHat](../installation/install-rippled-on-centos-rhel-with-yum.md)) installs such a script by default, to `/opt/ripple/bin/getRippledInfo`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} If you compiled `rippled` yourself, you can find the same script [in the `rippled` source code repository](https://github.com/XRPLF/rippled/blob/develop/bin/getRippledInfo). To use the script: 1. Run the script while `rippled` is running. - $ /opt/ripple/bin/getRippledInfo + ``` + $ /opt/ripple/bin/getRippledInfo - #################################################### - rippled info has been gathered. Please copy the - contents of /tmp/ripple_info.Xo8Xr/rippled_info.md - to a github gist at https://gist.github.com/ + #################################################### + rippled info has been gathered. Please copy the + contents of /tmp/ripple_info.Xo8Xr/rippled_info.md + to a github gist at https://gist.github.com/ - PLEASE REVIEW THIS FILE FOR ANY SENSITIVE DATA - BEFORE POSTING! We have tried our best to omit - any sensitive information from this file, but you - should verify before posting. - #################################################### + PLEASE REVIEW THIS FILE FOR ANY SENSITIVE DATA + BEFORE POSTING! We have tried our best to omit + any sensitive information from this file, but you + should verify before posting. + #################################################### + ``` The script collects the output of many commands and writes them to a temporary file. The filename is randomized with a string of letters and numbers (case-sensitive), for example: `/tmp/ripple_info.Xo8Xr/rippled_info.md` @@ -152,7 +158,9 @@ To use the script: The script attempts to scrub sensitive information from the output, such as validator keys or tokens. However, you should still check the output before posting publicly, as a precaution. For example, the script outputs detailed information about your server hardware, and you may want to remove some sections for privacy reasons. Use a text editor to read the output file and to remove anything you don't want to post. - nano /tmp/ripple_info.Xo8Xr/rippled_info.md + ``` + nano /tmp/ripple_info.Xo8Xr/rippled_info.md + ``` 3. Upload the output file where others can see it. @@ -162,19 +170,15 @@ To use the script: ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Amendments](amendments.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Amendments](../../concepts/networks-and-servers/amendments.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.html) - - [Configure rippled](configure-rippled.html) + - [Capacity Planning](../installation/capacity-planning.md) + - [Configure rippled](../configuration/index.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [log_level method][] - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md b/content/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md index 11015dc640..fa2db637f0 100644 --- a/content/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md +++ b/content/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md @@ -6,7 +6,7 @@ status: removed --- # Fix SQLite Transaction Database Page Size Issue -`rippled` servers with full [ledger history](ledger-history.html) (or a very large amount of transaction history) and a database that was initially created with a `rippled` version earlier than 0.40.0 (released January 2017) may encounter a problem with their SQLite database page size that stops the server from operating properly. Servers that store only recent transaction history (the default configuration) and servers whose database files were created with `rippled` version 0.40.0 and later are not likely to have this problem. +`rippled` servers with full [ledger history](../../concepts/networks-and-servers/ledger-history.md) (or a very large amount of transaction history) and a database that was initially created with a `rippled` version earlier than 0.40.0 (released January 2017) may encounter a problem with their SQLite database page size that stops the server from operating properly. Servers that store only recent transaction history (the default configuration) and servers whose database files were created with `rippled` version 0.40.0 and later are not likely to have this problem. This document describes steps to detect and correct this problem if it occurs. @@ -16,7 +16,7 @@ This document describes steps to detect and correct this problem if it occurs. The capacity of the SQLite database is a result of the database's _page size_ parameter, which cannot be easily changed after the database is created. (For more information on SQLite's internals, see [the official SQLite documentation](https://www.sqlite.org/fileformat.html).) The database can reach its capacity even if there is still free space on the disk and filesystem where it is stored. As described in the [Fix](#fix) below, reconfiguring the page size to avoid this problem requires a somewhat time-consuming migration process. -**Tip:** Full history is not necessary for most use cases. Servers with full transaction history may be useful for long-term analysis and archive purposes or as a precaution against disasters. For a less resource-intense way to contribute to the storage of transaction history, see [History Sharding](history-sharding.html). +**Tip:** Full history is not necessary for most use cases. Servers with full transaction history may be useful for long-term analysis and archive purposes or as a precaution against disasters. For a less resource-intense way to contribute to the storage of transaction history, see [History Sharding](../configuration/data-retention/history-sharding.md). ## Detection @@ -71,23 +71,27 @@ Terminating thread doJob: AcquisitionDone: unhandled ## Fix -You can fix this issue using `rippled` on supported Linux systems according to the steps described in this document. In the case of a full-history server with system specs approximately matching the [recommended hardware configuration](capacity-planning.html#recommendation-1), the process may take more than two full days. +You can fix this issue using `rippled` on supported Linux systems according to the steps described in this document. In the case of a full-history server with system specs approximately matching the [recommended hardware configuration](../installation/capacity-planning.md#recommendation-1), the process may take more than two full days. ### Prerequisites - You must be running **[rippled version 1.1.0][New in: rippled 1.1.0] or later**. - - [Upgrade rippled](install-rippled.html) to the latest stable version before starting this process. + - [Upgrade rippled](../installation/index.md) to the latest stable version before starting this process. - You can check what version of `rippled` you have installed locally by running the following command: - rippled --version + ``` + rippled --version + ``` - You must have enough free space to temporarily store a second copy of the transaction database, in a directory that is writable by the `rippled` user. This free space does not need to be in the same filesystem as the existing transaction database. The transaction database is stored in the `transaction.db` file in the folder specified by your configuration's `[database_path]` setting. You can check the size of this file to see how much free space you need. For example: - ls -l /var/lib/rippled/db/transaction.db + ``` + ls -l /var/lib/rippled/db/transaction.db + ``` ### Migration Process @@ -97,78 +101,108 @@ To migrate your transaction database to a larger page size, perform the followin 2. Create a folder to store temporary files during the migration process. - mkdir /tmp/rippled_txdb_migration + ``` + mkdir /tmp/rippled_txdb_migration + ``` 3. Grant the `rippled` user ownership of the temporary folder so it can write files there. (This is not necessary if your temporary folder is somewhere the `rippled` user already has write access to.) - chown rippled /tmp/rippled_txdb_migration + ``` + chown rippled /tmp/rippled_txdb_migration + ``` 4. Confirm that your temporary folder has enough free space to store a copy of the transaction database. For example, compare the `Avail` output from the `df` command to the [size of your `transaction.db` file](#prerequisites). - df -h /tmp/rippled_txdb_migration + ``` + df -h /tmp/rippled_txdb_migration - Filesystem Size Used Avail Use% Mounted on - /dev/sda2 5.4T 2.6T 2.6T 50% /tmp + Filesystem Size Used Avail Use% Mounted on + /dev/sda2 5.4T 2.6T 2.6T 50% /tmp + ``` 5. If `rippled` is still running, stop it: - sudo systemctl stop rippled + ``` + sudo systemctl stop rippled + ``` 6. Open a `screen` session (or other similar tool) so that the process does not stop when you log out: - screen + ``` + screen + ``` 7. Become the `rippled` user: - sudo su - rippled + ``` + sudo su - rippled + ``` 8. Run `rippled` executable directly, providing the `--vacuum` command with the path to the temporary directory: - /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration + ``` + /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration + ``` The `rippled` executable immediately displays the following message: - VACUUM beginning. page_size: 1024 + ``` + VACUUM beginning. page_size: 1024 + ``` 9. Wait for the process to complete. This can take more than two full days. When the process is complete, the `rippled` executable displays the following message, then exits: - VACUUM finished. page_size: 4096 + ``` + VACUUM finished. page_size: 4096 + ``` While you wait, you can detach your `screen` session by pressing **CTRL-A**, then **D**. Later, you can reattach your screen session with a command such as the following: - screen -x -r + ``` + screen -x -r + ``` When the process is over, exit the screen session: - exit + ``` + exit + ``` For more information on the `screen` command, see [the official Screen User's Manual](https://www.gnu.org/software/screen/manual/screen.html) or any of the other many resources available online. 10. Restart the `rippled` service. - sudo systemctl start rippled + ``` + sudo systemctl start rippled + ``` 11. Confirm that the `rippled` service started successfully. - You can use the [commandline interface](get-started-using-http-websocket-apis.html#commandline) to check the server status (unless you have configured your server not to accept JSON-RPC requests). For example: + You can use the [commandline interface](../../tutorials/get-started/get-started-using-http-websocket-apis.md#commandline) to check the server status (unless you have configured your server not to accept JSON-RPC requests). For example: - /opt/ripple/bin/rippled server_info + ``` + /opt/ripple/bin/rippled server_info + ``` For a description of the expected response from this command, see the [server_info method][] documentation. 12. Watch the server's debug log to confirm that the `SQLite page size` is now 4096: - tail -F /var/log/rippled/debug.log + ``` + tail -F /var/log/rippled/debug.log + ``` The [periodic log message](#proactive-detection) should also show significantly more free pages and free pages than it did before the migration. 13. Optionally, you may now remove the temporary folder you created for the migration process. - rm -r /tmp/rippled_txdb_migration + ``` + rm -r /tmp/rippled_txdb_migration + ``` If you mounted additional storage to hold the temporary copy of the transaction database, you can unmount and remove it now. @@ -176,18 +210,14 @@ To migrate your transaction database to a larger page size, perform the followin ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Ledger History](ledger-history.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Ledger History](../../concepts/networks-and-servers/ledger-history.md) - **Tutorials:** - - [Understanding Log Messages](understanding-log-messages.html) - - [Configure Full History](configure-full-history.html) + - [Understanding Log Messages](understanding-log-messages.md) + - [Configure Full History](../configuration/data-retention/configure-full-history.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/troubleshooting/health-check-interventions.md b/content/infrastructure/troubleshooting/health-check-interventions.md index 8e42b23563..9911b98639 100644 --- a/content/infrastructure/troubleshooting/health-check-interventions.md +++ b/content/infrastructure/troubleshooting/health-check-interventions.md @@ -7,7 +7,7 @@ labels: --- # Health Check Interventions -The [Health Check method](health-check.html) can be used by automated monitoring to recognize when a `rippled` server is not healthy and prompt interventions such as restarting the server or alerting a human administrator. +The [Health Check method](../../references/http-websocket-apis/peer-port-methods/health-check.md) can be used by automated monitoring to recognize when a `rippled` server is not healthy and prompt interventions such as restarting the server or alerting a human administrator. Infrastructure monitoring, and reliability engineering more generally, is an advanced discipline that involves using multiple sources of data to make decisions in context. This document provides some suggestions for how to use the health check most effectively, but these recommendations are only meant as guidelines as part of a larger strategy. @@ -25,8 +25,8 @@ Certain server configurations may always report a `warning` status even when ope Some examples of special cases that may occur include: -- A [private peer](peer-protocol.html#private-peers) typically has a very small number of peer-to-peer connections to known servers only, but the health check reports a warning on the `peers` metric if the server is connected to 7 or fewer peers. You should know the exact number of peers your server is configured to have and check for that value. -- On a [parallel or test network](parallel-networks.html) where new transactions are not being sent continuously, the network waits up to 20 seconds for new transactions before attempting to validate a new ledger version, but the health check reports a warning on the `validated_ledger` metric if the latest validated ledger is 7 or more seconds old. If you are running `rippled` on a non-production network, you may want to ignore `warning` messages for this metric unless you know that there should be transactions being regularly sent. You may still want to alert on the `critical` level of 20 seconds, because the XRP Ledger protocol is designed to validate new ledger versions at least once every 20 seconds even if there are no new transactions to process. +- A [private peer](../../concepts/networks-and-servers/peer-protocol.md#private-peers) typically has a very small number of peer-to-peer connections to known servers only, but the health check reports a warning on the `peers` metric if the server is connected to 7 or fewer peers. You should know the exact number of peers your server is configured to have and check for that value. +- On a [parallel or test network](../../concepts/networks-and-servers/parallel-networks.md) where new transactions are not being sent continuously, the network waits up to 20 seconds for new transactions before attempting to validate a new ledger version, but the health check reports a warning on the `validated_ledger` metric if the latest validated ledger is 7 or more seconds old. If you are running `rippled` on a non-production network, you may want to ignore `warning` messages for this metric unless you know that there should be transactions being regularly sent. You may still want to alert on the `critical` level of 20 seconds, because the XRP Ledger protocol is designed to validate new ledger versions at least once every 20 seconds even if there are no new transactions to process. ## Suggested Interventions @@ -43,7 +43,7 @@ The following sections suggest some common interventions you may want to attempt ### Redirect Traffic -A common reliability technique is to run a pool of redundant servers through one or more load-balancing proxies. You can do this with `rippled` servers, but should not do this with [validators](rippled-server-modes.html). In some cases, the load balancers can monitor the health of servers in their pools and direct traffic only to the servers that are currently reporting themselves as healthy. This allows servers to recover from being temporarily overloaded and automatically rejoin the pool of active servers. +A common reliability technique is to run a pool of redundant servers through one or more load-balancing proxies. You can do this with `rippled` servers, but should not do this with [validators](../../concepts/networks-and-servers/rippled-server-modes.md). In some cases, the load balancers can monitor the health of servers in their pools and direct traffic only to the servers that are currently reporting themselves as healthy. This allows servers to recover from being temporarily overloaded and automatically rejoin the pool of active servers. Redirecting traffic away from a server that is unhealthy is an appropriate response, especially for servers that report a `health` status of `warning`. Servers in the `critical` range may need more significant interventions. @@ -70,11 +70,11 @@ A stronger intervention is to restart the entire machine. ### Upgrade -If the server reports `"amendment_blocked": true` in the health check, this indicates that the XRP Ledger has enabled a [protocol amendment](amendments.html) that your server does not understand. As a precaution against misinterpreting the revised rules of the network in a way that causes you to lose money, such servers become "amendment blocked" instead of operating normally. +If the server reports `"amendment_blocked": true` in the health check, this indicates that the XRP Ledger has enabled a [protocol amendment](../../concepts/networks-and-servers/amendments.md) that your server does not understand. As a precaution against misinterpreting the revised rules of the network in a way that causes you to lose money, such servers become "amendment blocked" instead of operating normally. -To resolve being amendment blocked, [update your server](install-rippled.html) to a newer software version that understands the amendment. +To resolve being amendment blocked, [update your server](../installation/index.md) to a newer software version that understands the amendment. -Also, software bugs can cause a server to get [stuck not syncing](server-doesnt-sync.html). In this case, the `server_state` metric is likely to be in a warning or critical state. If you are not using the latest stable release, you should upgrade to get the latest fixes for any known issues that could cause this. +Also, software bugs can cause a server to get [stuck not syncing](server-doesnt-sync.md). In this case, the `server_state` metric is likely to be in a warning or critical state. If you are not using the latest stable release, you should upgrade to get the latest fixes for any known issues that could cause this. ### Investigate Network @@ -97,7 +97,7 @@ In this case, the necessary interventions may involve changes to other systems, If the outage is caused by a hardware failure or by higher load than the hardware is capable of handling, you may need to replace some components or even the entire server. -The amount of load on a server in the XRP Ledger depends in part on transaction volume in the network, which varies organically. Load also depends on your usage pattern. See [Capacity Planning](capacity-planning.html) for how to plan the appropriate hardware and settings for your situation. +The amount of load on a server in the XRP Ledger depends in part on transaction volume in the network, which varies organically. Load also depends on your usage pattern. See [Capacity Planning](../installation/capacity-planning.md) for how to plan the appropriate hardware and settings for your situation. Warning or critical values for the following [metrics][] may indicate insufficient hardware: @@ -110,8 +110,7 @@ Warning or critical values for the following [metrics][] may indicate insufficie - -[metrics]: health-check.html#response-format -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + +[metrics]: ../../references/http-websocket-apis/peer-port-methods/health-check.md#response-format + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/troubleshooting/index.md b/content/infrastructure/troubleshooting/index.md index 7e9febd22d..9648ffe7d1 100644 --- a/content/infrastructure/troubleshooting/index.md +++ b/content/infrastructure/troubleshooting/index.md @@ -1,9 +1,13 @@ --- html: troubleshoot-the-rippled-server.html parent: infrastructure.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Troubleshoot all kinds of problems with the rippled server. --- # Troubleshooting -Troubleshoot all kinds of problems with the rippled server. \ No newline at end of file +Troubleshoot all kinds of problems with the rippled server. + + +{% child-pages /%} diff --git a/content/infrastructure/troubleshooting/server-doesnt-sync.md b/content/infrastructure/troubleshooting/server-doesnt-sync.md index 948535904b..82a119c81f 100644 --- a/content/infrastructure/troubleshooting/server-doesnt-sync.md +++ b/content/infrastructure/troubleshooting/server-doesnt-sync.md @@ -7,9 +7,9 @@ labels: --- # rippled Server Doesn't Sync -This page explains possible reasons [a `rippled` server](xrpl-servers.html) may start successfully, but get stuck in a ["connected" state](rippled-server-states.html) without ever fully connecting to the network. (If the server crashes during or shortly after startup, see [Server Won't Start](server-wont-start.html) instead.) +This page explains possible reasons [a `rippled` server](../../concepts/networks-and-servers/index.md) may start successfully, but get stuck in a ["connected" state](../../references/http-websocket-apis/api-conventions/rippled-server-states.md) without ever fully connecting to the network. (If the server crashes during or shortly after startup, see [Server Won't Start](server-wont-start.md) instead.) -These instructions assume you have [installed `rippled`](install-rippled.html) on a supported platform. +These instructions assume you have [installed `rippled`](../installation/index.md) on a supported platform. ## Normal Syncing Behavior @@ -17,7 +17,7 @@ These instructions assume you have [installed `rippled`](install-rippled.html) o Syncing with the network normally takes about 5 to 15 minutes. During that time, the server does several things: - Loads a recommended validator list (for example, from `vl.ripple.com`) to determine which validators it trusts. -- [Discovers peer servers](peer-protocol.html#peer-discovery) and connects to them. +- [Discovers peer servers](../../concepts/networks-and-servers/peer-protocol.md#peer-discovery) and connects to them. - Listens to its trusted validators to find which ledger hashes have been recently validated. - Downloads the full latest ledger from its peers, and uses that to build its internal database of ledger data. - Collects newly-broadcast transactions and attempts to apply them to its in-progress ledger. @@ -29,14 +29,14 @@ If the server is unable to keep up with the network while doing these tasks, the Many syncing issues can be resolved by restarting the server. No matter why it didn't sync the first time, it may succeed on the second try. -If the [server_info method][] shows a [`server_state`](rippled-server-states.html) other than `proposing` or `full` and a `server_state_duration_us` of more than `900000000` (15 minutes in microseconds), then you should shut down the `rippled` service, wait a few seconds, and start it again. Optionally, restart the entire machine. +If the [server_info method][] shows a [`server_state`](../../references/http-websocket-apis/api-conventions/rippled-server-states.md) other than `proposing` or `full` and a `server_state_duration_us` of more than `900000000` (15 minutes in microseconds), then you should shut down the `rippled` service, wait a few seconds, and start it again. Optionally, restart the entire machine. If the problem persists, check the other possibilities listed on this page. If none of them seem to apply, [open an issue in the `rippled` repository](https://github.com/XRPLF/rippled/issues) and add the "Syncing issue" label. ## Usual Causes of Syncing Issues -The most common cause of syncing issues is not meeting the [system requirements](system-requirements.html). The three most common shortfalls are: +The most common cause of syncing issues is not meeting the [system requirements](../installation/system-requirements.md). The three most common shortfalls are: - **Slow disks.** You need a consistently fast solid state disk (SSD). Cloud providers like AWS usually don't guarantee disk performance, because it depends on hardware shared with other customers. - **Insufficient RAM.** The memory requirements vary depending on several factors including ones that are hard to predict like network load and how people use the XRP Ledger, so it's good to have more than the minimum system requirements. @@ -47,7 +47,7 @@ If you are having trouble remaining synced, double-check that your server meets ## Couldn't Load Validator List -The default configuration uses a recommended list of validators retrieved from `vl.ripple.com`. This list is signed by Ripple's cryptographic key pair and has a built-in expiration date. If your server cannot download the list from `vl.ripple.com` for some reason, your server does not choose a set of trusted validators and cannot determine which possible ledgers to declare as valid. (If you are connected to [the testnet or another parallel network](parallel-networks.html), your server uses a list of trusted validators for that network instead.) +The default configuration uses a recommended list of validators retrieved from `vl.ripple.com`. This list is signed by Ripple's cryptographic key pair and has a built-in expiration date. If your server cannot download the list from `vl.ripple.com` for some reason, your server does not choose a set of trusted validators and cannot determine which possible ledgers to declare as valid. (If you are connected to [the testnet or another parallel network](../../concepts/networks-and-servers/parallel-networks.md), your server uses a list of trusted validators for that network instead.) The `validator_list` block in the [server_info method][] response shows the status of your validator list including its expiration date. If you have a list, but it's expired, it's possible that your server had connectivity to the validator list site before but hasn't been able to connect lately, so your current list expired while your server was unable to download a more updated list. @@ -58,9 +58,9 @@ You can also use the [validator_list_sites method][] to get more detailed inform ## Not Enough Peers -If your server does not connect to enough [peer servers](peer-protocol.html), it may not be able to download enough data to remain synced with the network as the network continues processing new transactions. This can happen if your network connection is unreliable, or if you configure your server as a [private server](peer-protocol.html#private-peers) without adding enough reliable fixed peers. +If your server does not connect to enough [peer servers](../../concepts/networks-and-servers/peer-protocol.md), it may not be able to download enough data to remain synced with the network as the network continues processing new transactions. This can happen if your network connection is unreliable, or if you configure your server as a [private server](../../concepts/networks-and-servers/peer-protocol.md#private-peers) without adding enough reliable fixed peers. -Use the [peers method][] to get information about your server's current peers. If you have exactly 10 or 11 peers, that may indicate that your firewall is blocking incoming peer connections. [Set up port forwarding](forward-ports-for-peering.html) to allow more incoming connections. If your server is configured as a private server, double-check the contents and syntax of the `[ips_fixed]` stanza in your config file, and add more proxies or public hubs if possible. +Use the [peers method][] to get information about your server's current peers. If you have exactly 10 or 11 peers, that may indicate that your firewall is blocking incoming peer connections. [Set up port forwarding](../configuration/peering/forward-ports-for-peering.md) to allow more incoming connections. If your server is configured as a private server, double-check the contents and syntax of the `[ips_fixed]` stanza in your config file, and add more proxies or public hubs if possible. ## Corrupt Databases @@ -69,31 +69,39 @@ In rare cases, corrupt data saved in your `rippled` server's internal databases As a test, you can temporarily change the paths to your server's databases as long as you have enough free space to re-download the current ledger and store other settings. -**Note:** When you change the database paths, the server does not load some saved settings, such as the server's current [node key pair][] and [peer reservations](peer-protocol.html#fixed-peers-and-peer-reservations). If changing the database paths fixes your server' syncing problems, you may want to re-create some of these settings. +**Note:** When you change the database paths, the server does not load some saved settings, such as the server's current [node key pair][] and [peer reservations](../../concepts/networks-and-servers/peer-protocol.md#fixed-peers-and-peer-reservations). If changing the database paths fixes your server' syncing problems, you may want to re-create some of these settings. 1. Stop the `rippled` server if it is running. - $ sudo systemctl stop rippled + ``` + $ sudo systemctl stop rippled + ``` 2. Create new empty folders to hold the fresh databases. - $ mkdir /var/lib/rippled/db_new/ - $ mkdir /var/lib/rippled/db_new/nudb + ``` + $ mkdir /var/lib/rippled/db_new/ + $ mkdir /var/lib/rippled/db_new/nudb + ``` 3. Edit the config file to use the new paths. Be sure to change the `path` field of the `[node_db]` stanza **and** the value of the `[database_path]` stanza. - [node_db] - type=NuDB - path=/var/lib/rippled/db_new/nudb + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db_new/nudb - [database_path] - /var/lib/rippled/db_new + [database_path] + /var/lib/rippled/db_new + ``` - {% include '_snippets/conf-file-location.md' %} + {% partial file="/_snippets/conf-file-location.md" /%} 4. Start the `rippled` server again. - $ sudo systemctl start rippled + ``` + $ sudo systemctl start rippled + ``` If the server successfully syncs using the fresh databases, you can delete the folders that hold the old databases. You may also want to check for hardware failures, especially to your disk and RAM. @@ -101,20 +109,18 @@ As a test, you can temporarily change the paths to your server's databases as lo ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Peer Protocol](peer-protocol.html) - - [Technical FAQ](technical-faq.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Peer Protocol](../../concepts/networks-and-servers/peer-protocol.md) + - [Technical FAQ](../../faq.md) - **Tutorials:** - - [Understanding Log Messages](understanding-log-messages.html) - - [Capacity Planning](capacity-planning.html) + - [Understanding Log Messages](understanding-log-messages.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) - [peers method][] - [server_info method][] - [validator_list_sites method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/troubleshooting/server-is-amendment-blocked.md b/content/infrastructure/troubleshooting/server-is-amendment-blocked.md index ba63ba139e..e5a8ed3ba0 100644 --- a/content/infrastructure/troubleshooting/server-is-amendment-blocked.md +++ b/content/infrastructure/troubleshooting/server-is-amendment-blocked.md @@ -9,7 +9,7 @@ labels: Servers which are amendment blocked can't determine the validity of a ledger, submit or process transactions, or participate in the consensus process. -One of the first signs that your `rippled` server is [amendment blocked](amendments.html#amendment-blocked-servers) is an `amendmentBlocked` error that is returned when you submit a transaction. Here's an example `amendmentBlocked` error: +One of the first signs that your `rippled` server is [amendment blocked](../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers) is an `amendmentBlocked` error that is returned when you submit a transaction. Here's an example `amendmentBlocked` error: ```json { @@ -65,7 +65,7 @@ The easiest solution is to update to the latest version of `rippled`, but depend To determine if you can unblock your `rippled` server by upgrading to a version older than the newest version, find out which features are blocking your server and then look up the `rippled` version that supports the blocking features. -To find out which features are blocking your `rippled` server, use the [`feature`](feature.html) admin command. Look for features that have: +To find out which features are blocking your `rippled` server, use the [`feature`](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md) admin command. Look for features that have: ``` "enabled" : true @@ -129,4 +129,4 @@ In this example, conflicts with the following features are causing your `rippled * `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` -To look up which `rippled` version supports these features, see [Known Amendments](known-amendments.html). +To look up which `rippled` version supports these features, see [Known Amendments](../../resources/known-amendments.md). diff --git a/content/infrastructure/troubleshooting/server-wont-start.md b/content/infrastructure/troubleshooting/server-wont-start.md index 24992c1b7e..e7fd59f8d7 100644 --- a/content/infrastructure/troubleshooting/server-wont-start.md +++ b/content/infrastructure/troubleshooting/server-wont-start.md @@ -7,9 +7,9 @@ labels: --- # rippled Server Won't Start -This page explains possible reasons [the `rippled` server](xrpl-servers.html) does not start and how to fix them. +This page explains possible reasons [the `rippled` server](../../concepts/networks-and-servers/index.md) does not start and how to fix them. -These instructions assume you have [installed `rippled`](install-rippled.html) on a supported platform. +These instructions assume you have [installed `rippled`](../installation/index.md) on a supported platform. ## File Descriptors Limit @@ -25,22 +25,30 @@ This occurs because the system has a security limit on the number of files a sin 1. Add the following lines to the end of your `/etc/security/limits.conf` file: - * soft nofile 65536 - * hard nofile 65536 + ``` + * soft nofile 65536 + * hard nofile 65536 + ``` 2. Check that the [hard limit on number of files that can be opened](https://ss64.com/bash/ulimit.html) is now `65536`: - ulimit -Hn + ``` + ulimit -Hn + ``` The command should output `65536`. 3. Try starting `rippled` again. - systemctl start rippled + ``` + systemctl start rippled + ``` 4. If `rippled` still does not start, open `/etc/sysctl.conf` and append the following kernel-level setting: - fs.file-max = 65536 + ``` + fs.file-max = 65536 + ``` ## Failed to open /etc/opt/ripple/rippled.cfg @@ -62,7 +70,7 @@ Possible solutions: **Tip:** The `rippled` repository contains [an example `rippled.cfg` file](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg) which is provided as the default config when you do an RPM installation. If you do not have the file, you can copy it from there. -- Specify the path to your preferred config file using the `--conf` [commandline option](commandline-usage.html). +- Specify the path to your preferred config file using the `--conf` [commandline option](../commandline-usage.md). ## Failed to open validators file @@ -84,11 +92,13 @@ Possible solutions: - Edit your `rippled.cfg` file and remove the `[validators_file]` setting. Add validator settings directly to your `rippled.cfg` file. For example: - [validator_list_sites] - https://vl.ripple.com + ``` + [validator_list_sites] + https://vl.ripple.com - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` ## Cannot create database path @@ -173,22 +183,22 @@ An error such as the following indicates that the `rippled.cfg` file has an impr Terminating thread rippled: main: unhandled N5beast14BadLexicalCastE 'std::bad_cast' ``` -Valid parameters for the `node_size` field are `tiny`, `small`, `medium`, `large`, or `huge`. For more information see [Node Size](capacity-planning.html#node-size). +Valid parameters for the `node_size` field are `tiny`, `small`, `medium`, `large`, or `huge`. For more information see [Node Size](../installation/capacity-planning.md#node-size). ## Shard path missing -An error such as the following indicates that the `rippled.cfg` has an incomplete [history sharding](history-sharding.html) configuration: +An error such as the following indicates that the `rippled.cfg` has an incomplete [history sharding](../configuration/data-retention/history-sharding.md) configuration: ```text Terminating thread rippled: main: unhandled St13runtime_error 'shard path missing' ``` -If your config includes a `[shard_db]` stanza, it must contain a `path` field, which points to a directory where `rippled` can write the data for the shard store. This error means the `path` field is missing or located in the wrong place. Check for extra whitespace or typos in your config file, and compare against the [Shard Configuration Example](configure-history-sharding.html#2-edit-rippledcfg). +If your config includes a `[shard_db]` stanza, it must contain a `path` field, which points to a directory where `rippled` can write the data for the shard store. This error means the `path` field is missing or located in the wrong place. Check for extra whitespace or typos in your config file, and compare against the [Shard Configuration Example](../configuration/data-retention/configure-history-sharding.md#2-edit-rippledcfg). ## Unsupported shard store type: RocksDB -RocksDB is no longer supported as a backend for [history sharding](history-sharding.html). If you have an existing configuration that defines a RocksDB shard store, the server fails to start. [New in: rippled 1.3.1][] +RocksDB is no longer supported as a backend for [history sharding](../configuration/data-retention/history-sharding.md). If you have an existing configuration that defines a RocksDB shard store, the server fails to start. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.3.1" %}New in: rippled 1.3.1{% /badge %} In this case, the process dies shortly after the log startup command, with a message such as the following appearing earlier in the output log: @@ -206,18 +216,16 @@ To fix this problem, do one of the following, then restart the server: ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Technical FAQ](technical-faq.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Technical FAQ](../../faq.md) - **Tutorials:** - - [Understanding Log Messages](understanding-log-messages.html) - - [Capacity Planning](capacity-planning.html) + - [Understanding Log Messages](understanding-log-messages.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/infrastructure/troubleshooting/understanding-log-messages.md b/content/infrastructure/troubleshooting/understanding-log-messages.md index 54628b2093..169c261ad5 100644 --- a/content/infrastructure/troubleshooting/understanding-log-messages.md +++ b/content/infrastructure/troubleshooting/understanding-log-messages.md @@ -7,9 +7,9 @@ labels: --- # Understanding Log Messages -The following sections describe some of the most common types of log messages that can appear in a [`rippled` server's](xrpl-servers.html) debug log and how to interpret them. +The following sections describe some of the most common types of log messages that can appear in a [`rippled` server's](../../concepts/networks-and-servers/index.md) debug log and how to interpret them. -This is an important step in [Diagnosing Problems](diagnosing-problems.html) with `rippled`. +This is an important step in [Diagnosing Problems](diagnosing-problems.md) with `rippled`. ## Log Message Structure @@ -26,7 +26,7 @@ Each line represents one log entry, with the following parts in order, separated 1. The date the log entry was written, such as `2020-Jul-08`. 2. The time the log entry was written, such as `20:12:12.075081020`. -3. The time zone indicator `UTC`. (Log dates are always in UTC.) [New in: rippled 1.5.0][] +3. The time zone indicator `UTC`. (Log dates are always in UTC.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} 4. The log partition and severity, such as `LoadMonitor:WRN`. 5. The log message, such as `Job: sweep run: 1172ms wait: 0ms`. @@ -45,13 +45,13 @@ Throw Terminating thread rippled: main: unhandled St13runtime_error ``` -If your server always crashes on startup, see [Server Won't Start](server-wont-start.html) for possible cases. +If your server always crashes on startup, see [Server Won't Start](server-wont-start.md) for possible cases. -If your server crashes randomly during operation or as a result of particular commands, make sure you are [updated](install-rippled.html) to the latest `rippled` version. If you are on the latest version and your server is still crashing, check the following: +If your server crashes randomly during operation or as a result of particular commands, make sure you are [updated](../installation/index.md) to the latest `rippled` version. If you are on the latest version and your server is still crashing, check the following: - Is your server running out of memory? On some systems, `rippled` may be terminated by the Out Of Memory (OOM) Killer or another monitor process. - If your server is running in a shared environment, are other users or administrators causing the machine or service to be restarted? For example, some hosted providers automatically kill any service that uses a large amount of a shared machine's resources for an extended period of time. -- Does your server meet the [minimum requirements](system-requirements.html) to run `rippled`? What about the [recommendations for production servers](system-requirements.html#recommended-specifications)? +- Does your server meet the [minimum requirements](../installation/system-requirements.md) to run `rippled`? What about the [recommendations for production servers](../installation/system-requirements.md#recommended-specifications)? If none of the above apply, please report the issue to Ripple as a security-sensitive bug. If Ripple can reproduce the crash, you may be eligible for a bounty. See for details. @@ -73,7 +73,7 @@ Occasional messages of this type do not usually indicate a problem. If this type ## async_send failed -The following log message indicates that [StatsD export](configure-statsd.html) failed: +The following log message indicates that [StatsD export](../configuration/configure-statsd.md) failed: ```text Collector:ERR async_send failed: Connection refused @@ -97,7 +97,7 @@ The following message indicates that the server has detected that it is running LedgerMaster:ERR Check for upgrade: A majority of trusted validators are running a newer version. ``` -This is not strictly a problem, but an old server version is likely to become [amendment blocked](amendments.html#amendment-blocked-servers). You should [update `rippled`](install-rippled.html) to the latest stable version. (If you are connected to [devnet](parallel-networks.html), update to the latest nightly version instead.) +This is not strictly a problem, but an old server version is likely to become [amendment blocked](../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). You should [update `rippled`](../installation/index.md) to the latest stable version. (If you are connected to [devnet](../../concepts/networks-and-servers/parallel-networks.md), update to the latest nightly version instead.) ## Connection reset by peer @@ -118,7 +118,7 @@ A large number of these messages around the same time may indicate a problem, su ## Consumer entry dropped with balance at or above drop threshold -The following log message indicates that a client to the server's public API has been dropped as a result of [rate limiting](rate-limiting.html): +The following log message indicates that a client to the server's public API has been dropped as a result of [rate limiting](../../references/http-websocket-apis/api-conventions/rate-limiting.md): ```text Resource:WRN Consumer entry 169.55.164.21 dropped with balance 15970 at or above drop threshold 15000 @@ -128,7 +128,7 @@ The entry contains the IP address of the client that exceeded its rate limit, an If you see frequent messages from the same IP address, you may want to block those IP addresses from your network to reduce the load on your server's public API. (For example, you may be able to configure your firewall to block those IP addresses.) -To avoid being dropped by rate limiting on your own server, [connect as an admin](get-started-using-http-websocket-apis.html#admin-access). +To avoid being dropped by rate limiting on your own server, [connect as an admin](../../tutorials/get-started/get-started-using-http-websocket-apis.md#admin-access). ## InboundLedger 11 timeouts for ledger @@ -136,7 +136,7 @@ To avoid being dropped by rate limiting on your own server, [connect as an admin InboundLedger:WRN 11 timeouts for ledger 8265938 ``` -This indicates that your server is having trouble requesting specific ledger data from its peers. If the [ledger index](basic-data-types.html#ledger-index) is much lower than the most recent validated ledger's index as reported by the [server_info method][], this probably indicates that your server is downloading a [history shard](history-sharding.html). +This indicates that your server is having trouble requesting specific ledger data from its peers. If the [ledger index](../../references/protocol/data-types/basic-data-types.md#ledger-index) is much lower than the most recent validated ledger's index as reported by the [server_info method][], this probably indicates that your server is downloading a [history shard](../configuration/data-retention/history-sharding.md). This is not strictly a problem, but if you want to acquire ledger history faster, you can configure `rippled` to connect to peers with full history by adding or editing the `[ips_fixed]` config stanza and restarting the server. For example, to always try to connect to one of Ripple's full-history servers: @@ -154,7 +154,7 @@ Log messages such as the following indicate that the server is requesting ledger InboundLedger:WRN Want: 5AE53B5E39E6388DBACD0959E5F5A0FCAF0E0DCBA45D9AB15120E8CDD21E019B ``` -This is normal if your server is syncing, backfilling, or downloading [history shards](history-sharding.html). +This is normal if your server is syncing, backfilling, or downloading [history shards](../configuration/data-retention/history-sharding.md). ## LoadMonitor Job @@ -194,7 +194,7 @@ type=RocksDB ## No hash for fetch pack -Messages such as the following are caused by a bug in `rippled` v1.1.0 and earlier when downloading historical ledgers for [history sharding](history-sharding.html): +Messages such as the following are caused by a bug in `rippled` v1.1.0 and earlier when downloading historical ledgers for [history sharding](../configuration/data-retention/history-sharding.md): ```text 2018-Aug-28 22:56:21.397076850 LedgerMaster:ERR No hash for fetch pack. Missing Index 7159808 @@ -205,20 +205,20 @@ These can be safely ignored. ## Not deleting -Messages such as the following occur when [online deletion is interrupted](online-deletion.html#interrupting-online-deletion): +Messages such as the following occur when [online deletion is interrupted](../configuration/data-retention/online-deletion.md#interrupting-online-deletion): ```text SHAMapStore:WRN Not deleting. state: syncing. age 25s ``` -The `state` indicates the [server state](rippled-server-states.html). The `age` indicates how many seconds since the last validated ledger was closed. (A healthy age for the last validated ledger is 7 seconds or less.) +The `state` indicates the [server state](../../references/http-websocket-apis/api-conventions/rippled-server-states.md). The `age` indicates how many seconds since the last validated ledger was closed. (A healthy age for the last validated ledger is 7 seconds or less.) -During startup, these messages are normal and can be safely ignored. At other times, messages like this usually indicate that the server does not meet the [system requirements](system-requirements.html), especially disk I/O, to run online deletion at the same time as everything else the server is doing. +During startup, these messages are normal and can be safely ignored. At other times, messages like this usually indicate that the server does not meet the [system requirements](../installation/system-requirements.md), especially disk I/O, to run online deletion at the same time as everything else the server is doing. ## Potential Censorship -Log messages such as the following are issued when the XRP Ledger detects potential transaction censorship. For more information about these log messages and the transaction censorship detector, see [Transaction Censorship Detection](transaction-censorship-detection.html). +Log messages such as the following are issued when the XRP Ledger detects potential transaction censorship. For more information about these log messages and the transaction censorship detector, see [Transaction Censorship Detection](../../concepts/networks-and-servers/transaction-censorship-detection.md). **Warning Message** @@ -235,7 +235,7 @@ LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 ## rotating validatedSeq -This message indicates that [online deletion](online-deletion.html) has started running: +This message indicates that [online deletion](../configuration/data-retention/online-deletion.md) has started running: ```text SHAMapStore:WRN rotating validatedSeq 54635511 lastRotated 54635255 deleteInterval 256 canDelete_ 4294967295 @@ -248,9 +248,9 @@ The log message contains values describing the current online deletion run. Each | Keyword | Value | Description | |:-----------------|:-----------------|:---------------------------------------| | `validatedSeq` | [Ledger Index][] | The current validated ledger version. | -| `lastRotated` | [Ledger Index][] | The end of the ledger range in the ["old" (read-only) database](online-deletion.html#how-it-works). Online deletion deletes this ledger version and earlier. | -| `deleteInterval` | Number | How many ledger versions to keep after online deletion. The [`online_delete` setting](online-deletion.html#configuration) controls this value. | -| `canDelete_` | [Ledger Index][] | The newest ledger version that the server is allowed to delete, if using [advisory deletion](online-deletion.html#advisory-deletion). If not using advisory deletion, this value is ignored. | +| `lastRotated` | [Ledger Index][] | The end of the ledger range in the ["old" (read-only) database](../configuration/data-retention/online-deletion.md#how-it-works). Online deletion deletes this ledger version and earlier. | +| `deleteInterval` | Number | How many ledger versions to keep after online deletion. The [`online_delete` setting](../configuration/data-retention/online-deletion.md#configuration) controls this value. | +| `canDelete_` | [Ledger Index][] | The newest ledger version that the server is allowed to delete, if using [advisory deletion](../configuration/data-retention/online-deletion.md#advisory-deletion). If not using advisory deletion, this value is ignored. | When online deletion finishes, it writes the following log message: @@ -265,7 +265,7 @@ If the server falls out of sync while running online deletion, it interrupts onl ## Shard: No such file or directory -Log messages such as the following can occur when you have [history sharding](history-sharding.html) enabled: +Log messages such as the following can occur when you have [history sharding](../configuration/data-retention/history-sharding.md) enabled: ```text ShardStore:ERR shard 1804: No such file or directory @@ -288,8 +288,8 @@ Log messages such as the following occur when the server sees a validation messa Validations:WRN Unable to determine hash of ancestor seq=3 from ledger hash=00B1E512EF558F2FD9A0A6C263B3D922297F26A55AEB56A009341A22895B516E seq=12133675 ``` -{% include '_snippets/unsynced_warning_logs.md' %} - +{% partial file="/_snippets/unsynced_warning_logs.md" /%} + ## [veto_amendments] section in config file ignored @@ -301,7 +301,7 @@ Log messages such as the following occur when your `rippled.cfg` file contains Amendments:WRN [veto_amendments] section in config file ignored in favor of data in db/wallet.db. ``` -To resolve this error, remove the `[amendments]` and `[veto_amendments]` stanzas from your config file. For more information, see [Amendment Voting](amendments.html#amendment-voting). +To resolve this error, remove the `[amendments]` and `[veto_amendments]` stanzas from your config file. For more information, see [Amendment Voting](../../concepts/networks-and-servers/amendments.md#amendment-voting). ## View of consensus changed during open @@ -314,8 +314,8 @@ LedgerConsensus:WRN 96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC7 LedgerConsensus:WRN {"accepted":true,"account_hash":"89A821400087101F1BF2D2B912C6A9F2788CC715590E8FA5710F2D10BF5E3C03","close_flags":0,"close_time":588812130,"close_time_human":"2018-Aug-28 22:55:30.000000000","close_time_resolution":30,"closed":true,"hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_index":"3","parent_close_time":588812070,"parent_hash":"5F5CB224644F080BC8E1CC10E126D62E9D7F9BE1C64AD0565881E99E3F64688A","seqNum":"3","totalCoins":"100000000000000000","total_coins":"100000000000000000","transaction_hash":"0000000000000000000000000000000000000000000000000000000000000000"} ``` -{% include '_snippets/unsynced_warning_logs.md' %} - +{% partial file="/_snippets/unsynced_warning_logs.md" /%} + ## We are not running on the consensus ledger @@ -324,26 +324,23 @@ LedgerConsensus:WRN {"accepted":true,"account_hash":"89A821400087101F1BF2D2B912C NetworkOPs:WRN We are not running on the consensus ledger ``` -{% include '_snippets/unsynced_warning_logs.md' %} - +{% partial file="/_snippets/unsynced_warning_logs.md" /%} + ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Technical FAQ](technical-faq.html) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Technical FAQ](../../faq.md) - **Tutorials:** - - [Diagnosing Problems](diagnosing-problems.html) - - [Capacity Planning](capacity-planning.html) + - [Diagnosing Problems](diagnosing-problems.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [`rippled` Commandline Usage](commandline-usage.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) - [server_info method][] - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/introduction/crypto-wallets.md b/content/introduction/crypto-wallets.md index 6d0f608f68..5de7e39fd6 100644 --- a/content/introduction/crypto-wallets.md +++ b/content/introduction/crypto-wallets.md @@ -18,7 +18,7 @@ A custodial wallet means a third party holds your funds, typically on an account For day-to-day payments, this may be preferable, since these types of wallets are user-friendly: if you forget your password, you can typically have it reset. Also, if you don't have an individual XRP Ledger account, the ledger's reserve requirement doesn't apply to you. The custodian acts a buffer to any issues you run into on the XRP Ledger, and may offer support or assistance if you're not sure how to do something. -![Custodial vs. Non-custodial Wallets](img/introduction15-custodial-non-custodial.png) +![Custodial vs. Non-custodial Wallets](/img/introduction15-custodial-non-custodial.png) A non-custodial wallet, such as [XUMM](https://xumm.app/), is one where you have the secret keys to your account. This means you're ultimately responsible for managing the security of your account. @@ -35,7 +35,7 @@ Another deciding factor when choosing a wallet is picking between a hardware or Hardware wallets are physical devices that store your private/secret keys. The main benefit of using hardware wallets is that you can secure your information by disconnecting it from the internet when it's not in use; hardware wallets totally isolate your keys from easier-to-hack computers or smartphones. -![Hardware vs. Software Wallets](img/introduction16-hardware-software.png) +![Hardware vs. Software Wallets](/img/introduction16-hardware-software.png) Software wallets on the other hand, are entirely digital. While this makes them easier to use, it also makes them the less secure method of the two, but they usually come with additional features to enhance your experience. Ultimately, the decision between the two will come down to your comfort level and how important ease-of-use is to you. @@ -45,4 +45,4 @@ Software wallets on the other hand, are entirely digital. While this makes them The XRP Ledger is an opensource project with publicly available client libraries and API methods. While you can technically interact with the ledger using HTTP/WebSocket tools, it isn't practical for day-to-day use. You can create your own wallet to interact with the ledger, but you'll need to understand exactly how accounts, transactions, and the ledger work together before committing to this option. -Next: [Transactions and Requests](txn-and-requests.html) +Next: [Transactions and Requests](transactions-and-requests.md) diff --git a/content/introduction/index.md b/content/introduction/index.md index ed29f9d21a..406bca183f 100644 --- a/content/introduction/index.md +++ b/content/introduction/index.md @@ -1,9 +1,13 @@ --- html: introduction.html parent: docs.html -template: pagetype-category.html.jinja +metadata: + indexPage: true top_nav_grouping: Article Types --- # Introduction -This is a quick introduction to the principal features of the XRP Ledger (XRPL). Read this to get a high level understanding of the XRPL, then you can read more about areas of particular interest. The XRP Ledger is a blockchain that permanently records digital transactions of tokens between accounts. The sections below expand on the concepts introduced in that sentence. \ No newline at end of file +This is a quick introduction to the principal features of the XRP Ledger (XRPL). Read this to get a high level understanding of the XRPL, then you can read more about areas of particular interest. The XRP Ledger is a blockchain that permanently records digital transactions of tokens between accounts. The sections below expand on the concepts introduced in that sentence. + + +{% child-pages /%} diff --git a/content/introduction/software-ecosystem.md b/content/introduction/software-ecosystem.md index 5cdc3e2a27..f9582924a9 100644 --- a/content/introduction/software-ecosystem.md +++ b/content/introduction/software-ecosystem.md @@ -8,7 +8,7 @@ labels: # Software Ecosystem The XRP Ledger is home to a deep, layered ecosystem of software projects powering and enabling an Internet of Value. It's impossible to list every project, tool, and business that interacts with the XRP Ledger, so this page only lists a few categories and highlights some central projects that are documented on this website. -![The XRPL Ecosystem](img/ecosystem-apps-and-services.svg) +![The XRPL Ecosystem](/img/ecosystem-apps-and-services.svg) ## Stack Levels @@ -23,33 +23,33 @@ The XRP Ledger is home to a deep, layered ecosystem of software projects powerin ### Core Servers -The peer-to-peer network at the heart of the XRP Ledger requires a highly-reliable, efficient server to enforce the rules of consensus and transaction processing. The XRP Ledger Foundation publishes a reference implementation of this server software, called [**`rippled`**](xrpl-servers.html) (pronounced "ripple-dee"). The server is available under [a permissive open-source license](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md), so anyone can inspect and modify their own instance of the server, and re-publish with few restrictions. +The peer-to-peer network at the heart of the XRP Ledger requires a highly-reliable, efficient server to enforce the rules of consensus and transaction processing. The XRP Ledger Foundation publishes a reference implementation of this server software, called [**`rippled`**](../concepts/networks-and-servers/index.md) (pronounced "ripple-dee"). The server is available under [a permissive open-source license](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md), so anyone can inspect and modify their own instance of the server, and re-publish with few restrictions. -![Core Servers](img/ecosystem-peer-to-peer.svg) +![Core Servers](/img/ecosystem-peer-to-peer.svg) -Every core server syncs to the same network (unless it's configured to follow a [test network](parallel-networks.html)) and has access to all communications across the network. Every server on the network keeps a complete copy of the latest state data for the entire XRP Ledger, along with recent transactions and a record of the changes those transactions made, and every server processes every transaction independently while verifying that its outcome matches the rest of the network. Servers can be configured to keep more [ledger history](ledger-history.html) and to participate in the consensus process as a [validator](rippled-server-modes.html#validators). +Every core server syncs to the same network (unless it's configured to follow a [test network](../concepts/networks-and-servers/parallel-networks.md)) and has access to all communications across the network. Every server on the network keeps a complete copy of the latest state data for the entire XRP Ledger, along with recent transactions and a record of the changes those transactions made, and every server processes every transaction independently while verifying that its outcome matches the rest of the network. Servers can be configured to keep more [ledger history](../concepts/networks-and-servers/ledger-history.md) and to participate in the consensus process as a [validator](../concepts/networks-and-servers/rippled-server-modes.md#validators). -Core servers expose [HTTP / WebSocket APIs](http-websocket-apis.html) for users to look up data, administer the server, and submit transactions. Some servers also serve HTTP / WebSocket APIs but don't connect directly to the peer-to-peer network and don't process transactions or participate in consensus. These servers, such as `rippled` servers running in Reporting Mode and Clio servers, rely on a core server in P2P mode to process transactions. +Core servers expose [HTTP / WebSocket APIs](../references/http-websocket-apis/index.md) for users to look up data, administer the server, and submit transactions. Some servers also serve HTTP / WebSocket APIs but don't connect directly to the peer-to-peer network and don't process transactions or participate in consensus. These servers, such as `rippled` servers running in Reporting Mode and Clio servers, rely on a core server in P2P mode to process transactions. ### Client Libraries Libraries simplify some of the common work of accessing the XRP Ledger, usually through the HTTP / WebSocket APIs. They convert the data into forms that are more familiar and convenient for various programming languages, and include implementations of common operations. -![Client Libraries](img/ecosystem-client-libraries.svg) +![Client Libraries](/img/ecosystem-client-libraries.svg) One core feature of most client libraries is signing transactions locally, so users never have to send their private key across any network. Many middleware services use client libraries internally. -See [Client Libraries](client-libraries.html) for some information about currently available client libraries. +See [Client Libraries](../references/client-libraries.md) for some information about currently available client libraries. ### Middleware Middleware services are programs that consume the XRP Ledger APIs on one side and provide their own APIs on the other side. They provide a layer of abstraction to make it easier to build higher-level applications by providing some common functionality as a service. -![Middleware](img/ecosystem-middleware.svg) +![Middleware](/img/ecosystem-middleware.svg) Unlike client libraries, which are instantiated fresh and shut down with the program that imports them, middleware services typically stay running indefinitely, and may have their own databases (relational SQL databases or otherwise) and configuration files. Some are available as cloud services with various pricing or usage limitations. @@ -58,11 +58,8 @@ Unlike client libraries, which are instantiated fresh and shut down with the pro Atop the stack is where the truly exciting things happen. Apps and services provide a way for users and devices to connect to the XRP Ledger. Services like private exchanges, token issuers, marketplaces, interfaces to the decentralized exchange, and wallets provide user interfaces for buying, selling, and trading various assets including XRP and tokens of all kinds. Many other possibilities exist, including additional services layered even higher. -![Apps and Services](img/ecosystem-apps-and-services.svg) +![Apps and Services](/img/ecosystem-apps-and-services.svg) -See [Use Cases](use-cases.html) for some examples that can be built at or above this layer. +See [Use Cases](../use-cases/index.md) for some examples that can be built at or above this layer. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/introduction/transactions-and-requests.md b/content/introduction/transactions-and-requests.md index 326f99850e..6312f20a09 100644 --- a/content/introduction/transactions-and-requests.md +++ b/content/introduction/transactions-and-requests.md @@ -35,11 +35,11 @@ Optional fields are available for all transactions, with additional fields avail You send the transaction to the ledger as a command from JavaScript, Python, the command line, or any compatible service. The rippled servers propose transactions to the XRPL. -![Proposed Transacations](img/introduction17-gather-txns.png) +![Proposed Transacations](/img/introduction17-gather-txns.png) When 80% of the validators approve a current set of proposed transactions, they are recorded as part of the permanent ledger. The rippled server returns the results of the transaction you sent. -For more information on Transactions, see [Transactions](transactions.html). +For more information on Transactions, see [Transactions](../concepts/transactions/index.md). ## How Do Requests Work? @@ -49,7 +49,7 @@ The fields you send vary with the type of information you request. They typicall When you submit your request, it might be processed by a rippled server or by a Clio server, a server that is dedicated to responding to requests. -![Clio Server](img/introduction19-clio.png) +![Clio Server](/img/introduction19-clio.png) Clio servers take some of the load off the other rippled servers on the XRPL to improve processing speed and reliability. @@ -109,7 +109,6 @@ The request returns a wealth of information. Here is an example response for an } } ``` -For information on the fields in an Account record, see [Accounts](accounts.html). - -Next: [Software Ecosystem](software-ecosystem.html) +For information on the fields in an Account record, see [Accounts](../concepts/accounts/accounts.md). +Next: [Software Ecosystem](software-ecosystem.md) diff --git a/content/introduction/what-is-the-xrp-ledger.md b/content/introduction/what-is-the-xrp-ledger.md index b29ff97bbd..468598e552 100644 --- a/content/introduction/what-is-the-xrp-ledger.md +++ b/content/introduction/what-is-the-xrp-ledger.md @@ -14,35 +14,35 @@ The XRP Ledger is a decentralized blockchain that uses its own digital currency A blockchain is a continuously growing list of records. The blockchain starts with a block of data. -![A block of data](img/introduction2-data-block.png) +![A block of data](/img/introduction2-data-block.png) A group of trusted validator nodes reach consensus that the data is valid. -![Validator nodes](img/introduction3-validators.png) +![Validator nodes](/img/introduction3-validators.png) The block is uniquely identified with a very elaborate, complicated, computer-generated, cryptographic Hash number that is 64 hexadecimal characters long. -![Crypto hash](img/introduction4-hash.png) +![Crypto hash](/img/introduction4-hash.png) The block is also identified by a timestamp with its creation time. -![Timestamp](img/introduction5-time-stamp.png) +![Timestamp](/img/introduction5-time-stamp.png) Each validator node gets its own copy of the data block. There is no single central authority. All copies are equally valid. -![Validators with valid copies](img/introduction6-valid-copies.png) +![Validators with valid copies](/img/introduction6-valid-copies.png) Each block contains a hash pointer as a link to the previous block. It also has a timestamp, new data, and its own unique hash number. -![Hash pointer](img/introduction7-two-blocks.png) +![Hash pointer](/img/introduction7-two-blocks.png) Using this structure, each block has a clear position in the chain, linking back to the previous data block. This creates an immutable chain of blocks. You can always verify all current information on the chain by tracing back through the previous blocks. -![Three data blocks](img/introduction8-3-blocks.png) +![Three data blocks](/img/introduction8-3-blocks.png) By design, blockchains are resistant to modification of the data. Every ledger node gets an exact copy of the blockchain. -![Two validators with identical copies of the blockchain](img/introduction9-2-sets-of-3.png) +![Two validators with identical copies of the blockchain](/img/introduction9-2-sets-of-3.png) This creates an open, distributed ledger that records transactions between parties efficiently and in a verifiable and permanent way. @@ -52,11 +52,11 @@ Once recorded, the data in any given block cannot be altered retroactively, unle Most of the rippled servers in the XRPL monitor or propose transactions. An important subset of servers are run as validators. These trusted servers accumulate lists of new transactions into a new possible ledger instance (a new block in the block chain). -![Gathering Transactions](img/introduction17-gather-txns.png) +![Gathering Transactions](/img/introduction17-gather-txns.png) They share their lists with all of the other validators. The validators incorporate proposed changes from one another and distribute a new version of the ledger proposal. -![80% Consensus](img/introduction18-80-percent-consensus.png) +![80% Consensus](/img/introduction18-80-percent-consensus.png) When 80% of the validators agree on a set of transactions, they create a new ledger instance at the end of the chain and start the process again. This consensus process takes 4-6 seconds. You can monitor as ledger instances are created in real time by visiting [https://livenet.xrpl.org/](https://livenet.xrpl.org/). @@ -66,4 +66,4 @@ The XRPL is open to anyone who wants to set up their own instance of the rippled For developers or new users who want to try out the features of XRPL without investing their own funds, there are two developer environments, _Testnet_ and _Devnet_. Users can create an account funded with 1,000 (fake) XRP and connect to either environment to interact with the XRPL. -Next: [What is XRP?](what-is-xrp.html) +Next: [What is XRP?](what-is-xrp.md) diff --git a/content/introduction/what-is-xrp.md b/content/introduction/what-is-xrp.md index 8e19da4aad..f6fbb99108 100644 --- a/content/introduction/what-is-xrp.md +++ b/content/introduction/what-is-xrp.md @@ -13,7 +13,7 @@ XRP is the cryptocurrency supported by the XRP Ledger. A cryptocurrency is a digital or virtual currency that is secured by cryptography and tracked using a blockchain. The security and integrity of cryptocurrency makes it nearly impossible to counterfeit or double-spend. -![XRP on the blockchain](img/introduction10-xrp-on-chain.png) +![XRP on the blockchain](/img/introduction10-xrp-on-chain.png) Cryptocurrencies, digital currencies, and digital assets all fall into the same general category. Cryptocurrencies are: @@ -25,7 +25,7 @@ Cryptocurrencies, digital currencies, and digital assets all fall into the same - not subject to counterfeit - do not require a bank account or infrastructure to settle payments. -![Advantages of cryptocurrencies](img/introduction11-all-the-things.png) +![Advantages of cryptocurrencies](/img/introduction11-all-the-things.png) Cryptocurrencies are _fungible tokens_. _Fungible_ means that you can replace one token with other tokens of equal value. Postage is an example of a fungible token: if it costs 50 cents to mail a letter, you can use 2 25-cent stamps or 5 10-cent stamps for the postage, because postage stamps are fungible (consistent in relative value and interchangeable). @@ -35,7 +35,7 @@ Cryptocurrencies are compelling for investors and developers because no single e ## But Why Is It Valuable? -![Advantages of cryptocurrencies](img/introduction12-diamond.png) +![Advantages of cryptocurrencies](/img/introduction12-diamond.png) It might seem strange that cryptocurrency is based solely on computer data, and not on any sort of tangible commodity such as precious metal. Traditionally, currencies have been based on cattle, sea shells, rare metals, stones, or other physical objects. But these items have value only because there was agreement between people in a culture. @@ -48,20 +48,20 @@ The value of cryptocurrency comes from the faith that holders place in the curre The XRP Ledger was built over 2011 – early 2012 by Jed McCaleb, Arthur Britto and David Schwartz. At the time of its creation, there were 100 billion XRP. In September 2012, Jed and Arthur, along with Chris Larsen formed Ripple (the company, called OpenCoin Inc. at the time) and decided to gift 80 billion XRP to Ripple in exchange for Ripple developing on the XRP Ledger. -![One Hundred Billion with a "B"](img/introduction14-hundred-billion.png) +![One Hundred Billion with a "B"](/img/introduction14-hundred-billion.png) Since then, the company has regularly sold XRP, used it to strengthen XRP markets and improve network liquidity, and incentivized development of the greater ecosystem. In 2017, the company placed [55 billion XRP in escrow](https://ripple.com/insights/ripple-escrows-55-billion-xrp-for-supply-predictability/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) to ensure that the amount entering the general supply [grows predictably](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) for the foreseeable future. Ripple's [XRP Market Performance site](https://ripple.com/xrp/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) reports how much XRP the company has available and locked in escrow at present. -![Man with one XRP](img/introduction13-x-prefix.png) +![Man with one XRP](/img/introduction13-x-prefix.png) ### Naming -Originally, the XRP Ledger was called "Ripple" for the way the technology allowed payments [to ripple through multiple hops and currencies](rippling.html). For the native asset built into the ledger, the creators chose the ticker symbol "XRP" from the term "ripple credits" or "ripples" and the X prefix for non-national currencies in the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard. The company registered itself as "Ripple Labs". The name "XRP" came to be used to refer to the asset in all contexts, to avoid confusion with the similar names for the technology and company, and eventually the company shortened its own name to "Ripple". In May 2018, [the community selected a new "X" symbol](https://twitter.com/xrpsymbol/status/1006925937571713025) to represent XRP to differentiate it from the triskelion logo that had previously been used for both the company and the digital asset. +Originally, the XRP Ledger was called "Ripple" for the way the technology allowed payments [to ripple through multiple hops and currencies](../concepts/tokens/fungible-tokens/rippling.md). For the native asset built into the ledger, the creators chose the ticker symbol "XRP" from the term "ripple credits" or "ripples" and the X prefix for non-national currencies in the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard. The company registered itself as "Ripple Labs". The name "XRP" came to be used to refer to the asset in all contexts, to avoid confusion with the similar names for the technology and company, and eventually the company shortened its own name to "Ripple". In May 2018, [the community selected a new "X" symbol](https://twitter.com/xrpsymbol/status/1006925937571713025) to represent XRP to differentiate it from the triskelion logo that had previously been used for both the company and the digital asset. | XRP "X" Logo | Ripple triskelion | |:---------------------------------------|:------------------------------------| -| !["X" logo](assets/img/xrp-x-logo.png) | ![Triskelion](img/ripple-triskelion.png) | +| !["X" logo](assets/img/xrp-x-logo.png) | ![Triskelion](/img/ripple-triskelion.png) | ### Trademark @@ -70,4 +70,4 @@ Originally, the XRP Ledger was called "Ripple" for the way the technology allowe The trademark application was registered with the United States Patent and Trademark Office (USPTO) in 2013 with OpenCoin Inc and Ripple Labs Inc as assignees. In 2022, the trademark assignment was updated and is now assigned to the MITTETULUNDUSÜHING XRP LEDGER TRUST (“XRPLF”). -Next: [Crypto Wallets](crypto-wallets.html) \ No newline at end of file +Next: [Crypto Wallets](crypto-wallets.md) diff --git a/content/redirects.yaml b/content/redirects.yaml index 505a90fac1..180725c7f1 100644 --- a/content/redirects.yaml +++ b/content/redirects.yaml @@ -1,4 +1,1560 @@ -'/docs.html': - to: '/docs/' - type: 301 # optional -# more here +xrp-ledger-rpc-tool.html: + to: /resources/dev-tools/rpc-tool + type: 301 +xrp-ledger-toml-checker.html: + to: /resources/dev-tools/xrp-ledger-toml-checker + type: 301 +domain-verification-checker.html: + to: /resources/dev-tools/domain-verification-checker + type: 301 +websocket-api-tool.html: + to: /resources/dev-tools/websocket-api-tool + type: 301 +xrp-testnet-faucet.html: + to: /resources/dev-tools/xrp-faucets + type: 301 +xrp-test-net-faucet.html: + to: /resources/dev-tools/xrp-faucets + type: 301 +tx-sender.html: + to: /resources/dev-tools/tx-sender + type: 301 +uses.html: + to: /about/uses + type: 301 +docs.html: + to: /docs/ + type: 301 +xrp-ledger-overview.html: + to: /about/ + type: 301 +xrp-overview.html: + to: /about/xrp + type: 301 +overview.html: + to: /about/ + type: 301 +history.html: + to: /about/history + type: 301 +impact.html: + to: /about/impact + type: 301 +carbon-calculator.html: + to: /about/impact + type: 301 +contribute.html: + to: /community + type: 301 +events.html: + to: /community/events + type: 301 +ambassadors.html: + to: /community/ambassadors + type: 301 +developer-funding.html: + to: /community/developer-funding + type: 301 +code-samples.html: + to: /resources/code-samples + type: 301 +dev-tools.html: + to: /resources/dev-tools/ + type: 301 +dev-tools-dev-tools.html: + to: /resources/dev-tools/ + type: 301 +validator-domain-verifier.html: + to: /resources/dev-tools/domain-verifier/ + type: 301 +docs-index.html: + to: /docs/ + type: 301 +explore.html: + to: /about/ + type: 301 +wallet.html: + to: /about/xrp + type: 301 +exchanges.html: + to: /about/xrp + type: 301 +businesses.html: + to: /about/uses + type: 301 +ripple-txt-validator.html: + to: /resources/dev-tools/xrp-ledger-toml-checker + type: 301 +production-readiness.html: + to: /tutorials + type: 301 +get-started.html: + to: /tutorials + type: 301 +run-rippled-as-a-wallet-server.html: + to: /infrastructure/configuration/server-modes/run-rippled-as-a-stock-server + type: 301 +faq.html: + to: /faq + type: 301 +privacy-policy.html: + to: /privacy-policy + type: 301 +technical-faq.html: + to: /faq + type: 301 +introduction.html: + to: /introduction/ + type: 301 +what-is-the-xrp-ledger.html: + to: /introduction/what-is-the-xrp-ledger + type: 301 +what-is-xrp.html: + to: /introduction/what-is-xrp + type: 301 +xrp.html: + to: /introduction/what-is-xrp + type: 301 +crypto-wallets.html: + to: /introduction/crypto-wallets + type: 301 +txn-and-requests.html: + to: /introduction/transactions-and-requests + type: 301 +software-ecosystem.html: + to: /introduction/software-ecosystem + type: 301 +use-cases.html: + to: /use-cases/ + type: 301 +payments-uc.html: + to: /use-cases/payments/ + type: 301 +peer-to-peer-payments-uc.html: + to: /use-cases/payments/peer-to-peer-payments-uc + type: 301 +restricting-deposits-uc.html: + to: /use-cases/payments/restricting-deposits-uc + type: 301 +escrow-uc.html: + to: /use-cases/payments/smart-contracts-uc + type: 301 +tokenization.html: + to: /use-cases/tokenization/ + type: 301 +stablecoin-issuer.html: + to: /use-cases/tokenization/stablecoin-issuer + type: 301 +nft-mkt-overview.html: + to: /use-cases/tokenization/nft-mkt-overview + type: 301 +nftoken-marketplace.html: + to: /use-cases/tokenization/nftoken-marketplace + type: 301 +authorized-minter.html: + to: /use-cases/tokenization/authorized-minter + type: 301 +digital-artist.html: + to: /use-cases/tokenization/digital-artist + type: 301 +defi-uc.html: + to: /use-cases/defi/ + type: 301 +algorithmic-trading.html: + to: /use-cases/defi/algorithmic-trading + type: 301 +list-xrp-as-an-exchange.html: + to: /use-cases/defi/list-xrp-as-an-exchange + type: 301 +concepts.html: + to: /concepts/ + type: 301 +networks-and-servers.html: + to: /concepts/networks-and-servers/ + type: 301 +xrpl-servers.html: + to: /concepts/networks-and-servers/ + type: 301 +rippled-server-modes.html: + to: /concepts/networks-and-servers/rippled-server-modes + type: 301 +clustering.html: + to: /concepts/networks-and-servers/clustering + type: 301 +ledger-history.html: + to: /concepts/networks-and-servers/ledger-history + type: 301 +peer-protocol.html: + to: /concepts/networks-and-servers/peer-protocol + type: 301 +transaction-censorship-detection.html: + to: /concepts/networks-and-servers/transaction-censorship-detection + type: 301 +parallel-networks.html: + to: /concepts/networks-and-servers/parallel-networks + type: 301 +amendments.html: + to: /concepts/networks-and-servers/amendments + type: 301 +the-clio-server.html: + to: /concepts/networks-and-servers/the-clio-server + type: 301 +consensus.html: + to: /concepts/consensus-protocol/ + type: 301 +consensus-structure.html: + to: /concepts/consensus-protocol/consensus-structure + type: 301 +consensus-principles-and-rules.html: + to: /concepts/consensus-protocol/consensus-principles-and-rules + type: 301 +consensus-protections.html: + to: /concepts/consensus-protocol/consensus-protections + type: 301 +invariant-checking.html: + to: /concepts/consensus-protocol/invariant-checking + type: 301 +fee-voting.html: + to: /concepts/consensus-protocol/fee-voting + type: 301 +negative-unl.html: + to: /concepts/consensus-protocol/negative-unl + type: 301 +consensus-research.html: + to: /concepts/consensus-protocol/consensus-research + type: 301 +ledgers.html: + to: /concepts/ledgers/ + type: 301 +ledger-structure.html: + to: /concepts/ledgers/ledger-structure + type: 301 +open-closed-validated-ledgers.html: + to: /concepts/ledgers/open-closed-validated-ledgers + type: 301 +ledger-close-times.html: + to: /concepts/ledgers/ledger-close-times + type: 301 +transactions.html: + to: /concepts/transactions/ + type: 301 +fees.html: + to: /concepts/transactions/fees + type: 301 +reliable-transaction-submission.html: + to: /concepts/transactions/reliable-transaction-submission + type: 301 +secure-signing.html: + to: /concepts/transactions/secure-signing + type: 301 +source-and-destination-tags.html: + to: /concepts/transactions/source-and-destination-tags + type: 301 +transaction-cost.html: + to: /concepts/transactions/transaction-cost + type: 301 +transaction-queue.html: + to: /concepts/transactions/transaction-queue + type: 301 +finality-of-results.html: + to: /concepts/transactions/finality-of-results/ + type: 301 +look-up-transaction-results.html: + to: /concepts/transactions/finality-of-results/look-up-transaction-results + type: 301 +transaction-malleability.html: + to: /concepts/transactions/finality-of-results/transaction-malleability + type: 301 +canceling-a-transaction.html: + to: /concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 +payment-types.html: + to: /concepts/payment-types/ + type: 301 +direct-xrp-payments.html: + to: /concepts/payment-types/direct-xrp-payments + type: 301 +cross-currency-payments.html: + to: /concepts/payment-types/cross-currency-payments + type: 301 +checks.html: + to: /concepts/payment-types/checks + type: 301 +escrow.html: + to: /concepts/payment-types/escrow + type: 301 +partial-payments.html: + to: /concepts/payment-types/partial-payments + type: 301 +payment-channels.html: + to: /concepts/payment-types/payment-channels + type: 301 +robustly-monitoring-for-payments.html: + to: /concepts/payment-types/robustly-monitoring-for-payments + type: 301 +sending-payments-to-customers.html: + to: /concepts/payment-types/sending-payments-to-customers + type: 301 +bouncing-payments.html: + to: /concepts/payment-types/bouncing-payments + type: 301 +tokens.html: + to: /concepts/tokens/ + type: 301 +trust-lines-and-issuing.html: + to: /concepts/tokens/fungible-tokens/ + type: 301 +authorized-trust-lines.html: + to: /concepts/tokens/fungible-tokens/authorized-trust-lines + type: 301 +stablecoins.html: + to: /concepts/tokens/fungible-tokens/stablecoins/ + type: 301 +stablecoin-settings.html: + to: /concepts/tokens/fungible-tokens/stablecoins/settings + type: 301 +stablecoin-configuration.html: + to: /concepts/tokens/fungible-tokens/stablecoins/configuration + type: 301 +stablecoin-precautions.html: + to: /concepts/tokens/fungible-tokens/stablecoins/precautions + type: 301 +stablecoin-compliance-guidelines.html: + to: /concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines + type: 301 +clawing-back-tokens.html: + to: /concepts/tokens/fungible-tokens/clawing-back-tokens + type: 301 +freezes.html: + to: /concepts/tokens/fungible-tokens/freezes + type: 301 +common-misconceptions-about-freezes.html: + to: /concepts/tokens/fungible-tokens/common-misconceptions-about-freezes + type: 301 +paths.html: + to: /concepts/tokens/fungible-tokens/paths + type: 301 +rippling.html: + to: /concepts/tokens/fungible-tokens/rippling + type: 301 +non-fungible-tokens.html: + to: /concepts/tokens/nfts/ + type: 301 +nft-storage.html: + to: /concepts/tokens/nfts/payload-storage + type: 301 +non-fungible-token-transfers.html: + to: /concepts/tokens/nfts/trading + type: 301 +nft-reserve-requirements.html: + to: /concepts/tokens/nfts/reserve-requirements + type: 301 +nftoken-batch-minting.html: + to: /concepts/tokens/nfts/batch-minting + type: 301 +nftoken-authorized-minting.html: + to: /concepts/tokens/nfts/authorizing-another-minter + type: 301 +nftoken-auctions.html: + to: /concepts/tokens/nfts/running-an-nft-auction + type: 301 +nft-collections.html: + to: /concepts/tokens/nfts/collections + type: 301 +nft-fixed-supply.html: + to: /concepts/tokens/nfts/guaranteeing-a-fixed-supply + type: 301 +nft-apis.html: + to: /concepts/tokens/nfts/nft-apis + type: 301 +transfer-fees.html: + to: /concepts/tokens/transfer-fees + type: 301 +demurrage.html: + to: /concepts/tokens/fungible-tokens/demurrage + type: 301 +decentralized-exchange.html: + to: /concepts/tokens/decentralized-exchange/ + type: 301 +offers.html: + to: /concepts/tokens/decentralized-exchange/offers + type: 301 +autobridging.html: + to: /concepts/tokens/decentralized-exchange/autobridging + type: 301 +ticksize.html: + to: /concepts/tokens/decentralized-exchange/ticksize + type: 301 +automated-market-makers.html: + to: /concepts/tokens/decentralized-exchange/automated-market-makers + type: 301 +accounts.html: + to: /concepts/accounts/accounts + type: 301 +account-types.html: + to: /concepts/accounts/account-types + type: 301 +deleting-accounts.html: + to: /concepts/accounts/deleting-accounts + type: 301 +reserves.html: + to: /concepts/accounts/reserves + type: 301 +addresses.html: + to: /concepts/accounts/addresses + type: 301 +cryptographic-keys.html: + to: /concepts/accounts/cryptographic-keys + type: 301 +multi-signing.html: + to: /concepts/accounts/multi-signing + type: 301 +depositauth.html: + to: /concepts/accounts/depositauth + type: 301 +tickets.html: + to: /concepts/accounts/tickets + type: 301 +decentralized-identifiers.html: + to: /concepts/accounts/decentralized-identifiers + type: 301 +intro-to-consensus.html: + to: /concepts/consensus-protocol/ + type: 301 +set-up-secure-signing.html: + to: /concepts/transactions/secure-signing + type: 301 +transaction-basics.html: + to: /concepts/transactions/ + type: 301 +become-an-xrp-ledger-gateway.html: + to: /use-cases/tokenization/stablecoin-issuer + type: 301 +consensus-network.html: + to: /concepts/consensus-protocol/ + type: 301 +complex-payment-types.html: + to: /concepts/payment-types/ + type: 301 +about-canceling-a-transaction.html: + to: /concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 +issuing-and-operational-addresses.html: + to: /concepts/accounts/account-types + type: 301 +issued-currencies.html: + to: /concepts/tokens/ + type: 301 +issued-currencies-overview.html: + to: /concepts/tokens/ + type: 301 +federated-sidechains.html: + to: https://opensource.ripple.com/docs/xls-38d-cross-chain-bridge/cross-chain-bridges/ + type: 301 +xrpl-interoperability.html: + to: https://opensource.ripple.com/docs/xls-38d-cross-chain-bridge/cross-chain-bridges/ + type: 301 +intro-to-evm-sidechain.html: + to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ + type: 301 +the-rippled-server.html: + to: /concepts/networks-and-servers/ + type: 301 +nft-concepts.html: + to: /concepts/tokens/nfts/ + type: 301 +nft-conceptual-overview.html: + to: /concepts/tokens/nfts/ + type: 301 +xrpl-sidechains.html: + to: /concepts/xrpl-sidechains/ + type: 301 +cross-chain-bridges.html: + to: /concepts/xrpl-sidechains/cross-chain-bridges + type: 301 +witness-servers.html: + to: /concepts/xrpl-sidechains/witness-servers + type: 301 +public-servers.html: + to: /tutorials/get-started/public-servers + type: 301 +python.html: + to: /tutorials/python/ + type: 301 +get-started-using-python.html: + to: /tutorials/get-started/get-started-using-python + type: 301 +modular-tutorials-in-python.html: + to: /tutorials/python/modular-tutorials-in-python/ + type: 301 +send-payments-using-python.html: + to: /tutorials/quickstart/send-payments-using-python + type: 301 +py-create-accounts-send-xrp.html: + to: /tutorials/quickstart/py-create-accounts-send-xrp + type: 301 +py-create-trustline-send-currency.html: + to: /tutorials/quickstart/py-create-trustline-send-currency + type: 301 +py-create-time-based-escrows.html: + to: /tutorials/quickstart/py-create-time-based-escrows + type: 301 +py-mint-and-burn-nfts.html: + to: /tutorials/quickstart/py-mint-and-burn-nfts + type: 301 +py-transfer-nfts.html: + to: /tutorials/quickstart/py-transfer-nfts + type: 301 +py-broker-sale.html: + to: /tutorials/quickstart/py-broker-sale + type: 301 +py-authorize-minter.html: + to: /tutorials/quickstart/py-authorize-minter + type: 301 +py-batch-minting.html: + to: /tutorials/quickstart/py-batch-minting + type: 301 +build-a-desktop-wallet-in-python.html: + to: /tutorials/build-apps/build-a-desktop-wallet-in-python + type: 301 +javascript.html: + to: /tutorials/javascript/ + type: 301 +get-started-using-javascript.html: + to: /tutorials/get-started/get-started-using-javascript + type: 301 +get-started-using-node-js.html: + to: /tutorials/get-started/get-started-using-javascript + type: 301 +get-started-with-rippleapi-for-javascript.html: + to: /tutorials/get-started/get-started-using-javascript + type: 301 +modular-tutorials-in-javascript.html: + to: /tutorials/javascript/modular-tutorials-in-javascript/ + type: 301 +send-payments-using-javascript.html: + to: /tutorials/quickstart/send-payments-using-javascript + type: 301 +create-accounts-send-xrp-using-javascript.html: + to: /tutorials/quickstart/create-accounts-send-xrp-using-javascript + type: 301 +create-trustline-send-currency-using-javascript.html: + to: /tutorials/quickstart/create-trustline-send-currency-using-javascript + type: 301 +create-time-based-escrows-using-javascript.html: + to: /tutorials/quickstart/create-time-based-escrows-using-javascript + type: 301 +create-conditional-escrows-using-javascript.html: + to: /tutorials/quickstart/create-conditional-escrows-using-javascript + type: 301 +nfts-using-javascript.html: + to: /tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/ + type: 301 +mint-and-burn-nfts-using-javascript.html: + to: /tutorials/quickstart/mint-and-burn-nfts-using-javascript + type: 301 +transfer-nfts-using-javascript.html: + to: /tutorials/quickstart/transfer-nfts-using-javascript + type: 301 +broker-an-nft-sale-using-javascript.html: + to: /tutorials/quickstart/broker-an-nft-sale-using-javascript + type: 301 +assign-an-authorized-minter-using-javascript.html: + to: /tutorials/quickstart/assign-an-authorized-minter-using-javascript + type: 301 +batch-mint-nfts-using-javascript.html: + to: /tutorials/quickstart/batch-mint-nfts-using-javascript + type: 301 +build-a-browser-wallet-in-javascript.html: + to: /tutorials/build-apps/build-a-browser-wallet-in-javascript + type: 301 +build-a-browser-wallet-using-javascript.html: + to: /tutorials/build-apps/build-a-browser-wallet-in-javascript + type: 301 +build-a-desktop-wallet-in-javascript.html: + to: /tutorials/build-apps/build-a-desktop-wallet-in-javascript + type: 301 +java.html: + to: /tutorials/java/ + type: 301 +get-started-using-java.html: + to: /tutorials/get-started/get-started-using-java + type: 301 +get-started-using-php.html: + to: /tutorials/get-started/get-started-using-php + type: 301 +http-websocket-apis-tutorials.html: + to: /tutorials/http-websocket-apis/ + type: 301 +get-started-with-the-rippled-api.html: + to: /tutorials/get-started/get-started-using-http-websocket-apis + type: 301 +get-started-using-http-websocket-apis.html: + to: /tutorials/get-started/get-started-using-http-websocket-apis + type: 301 +monitor-incoming-payments-with-websocket.html: + to: /tutorials/get-started/monitor-incoming-payments-with-websocket + type: 301 +tasks.html: + to: /tutorials/tasks/ + type: 301 +manage-account-settings.html: + to: /tutorials/tasks/manage-account-settings/ + type: 301 +assign-a-regular-key-pair.html: + to: /tutorials/manage-account-settings/assign-a-regular-key-pair + type: 301 +change-or-remove-a-regular-key-pair.html: + to: /tutorials/manage-account-settings/change-or-remove-a-regular-key-pair + type: 301 +disable-master-key-pair.html: + to: /tutorials/manage-account-settings/disable-master-key-pair + type: 301 +set-up-multi-signing.html: + to: /tutorials/manage-account-settings/set-up-multi-signing + type: 301 +send-a-multi-signed-transaction.html: + to: /tutorials/manage-account-settings/send-a-multi-signed-transaction + type: 301 +require-destination-tags.html: + to: /tutorials/manage-account-settings/require-destination-tags + type: 301 +offline-account-setup.html: + to: /tutorials/manage-account-settings/offline-account-setup + type: 301 +use-tickets.html: + to: /tutorials/manage-account-settings/use-tickets + type: 301 +send-xrp.html: + to: /tutorials/get-started/send-xrp + type: 301 +use-specialized-payment-types.html: + to: /tutorials/tasks/use-specialized-payment-types/ + type: 301 +use-complex-payment-types.html: + to: /tutorials/tasks/use-specialized-payment-types/ + type: 301 +use-escrows.html: + to: /tutorials/tasks/use-specialized-payment-types/use-escrows/ + type: 301 +send-a-time-held-escrow.html: + to: /tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow + type: 301 +send-a-conditionally-held-escrow.html: + to: /tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow + type: 301 +cancel-an-expired-escrow.html: + to: /tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow + type: 301 +look-up-escrows.html: + to: /tutorials/use-specialized-payment-types/use-escrows/look-up-escrows + type: 301 +use-an-escrow-as-a-smart-contract.html: + to: /tutorials/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract + type: 301 +use-payment-channels.html: + to: /tutorials/use-specialized-payment-types/use-payment-channels + type: 301 +open-a-payment-channel-to-enable-an-inter-exchange-network.html: + to: /tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network + type: 301 +use-checks.html: + to: /tutorials/use-specialized-payment-types/use-checks/use-checks + type: 301 +send-a-check.html: + to: /tutorials/use-specialized-payment-types/use-checks/send-a-check + type: 301 +cash-a-check-for-an-exact-amount.html: + to: /tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount + type: 301 +cash-a-check-for-a-flexible-amount.html: + to: /tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount + type: 301 +cancel-a-check.html: + to: /tutorials/use-specialized-payment-types/use-checks/cancel-a-check + type: 301 +look-up-checks-by-sender.html: + to: /tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender + type: 301 +look-up-checks-by-recipient.html: + to: /tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient + type: 301 +use-tokens.html: + to: /tutorials/tasks/use-tokens/ + type: 301 +issue-a-fungible-token.html: + to: /tutorials/use-tokens/issue-a-fungible-token + type: 301 +trade-in-the-decentralized-exchange.html: + to: /tutorials/use-tokens/trade-in-the-decentralized-exchange + type: 301 +enable-no-freeze.html: + to: /tutorials/use-tokens/enable-no-freeze + type: 301 +enact-global-freeze.html: + to: /tutorials/use-tokens/enact-global-freeze + type: 301 +freeze-a-trust-line.html: + to: /tutorials/use-tokens/freeze-a-trust-line + type: 301 +create-an-automated-market-maker.html: + to: /tutorials/use-tokens/create-an-automated-market-maker + type: 301 +use-simple-xrp-payments.html: + to: /tutorials/get-started/send-xrp + type: 301 +cancel-or-skip-a-transaction.html: + to: /concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 +evm-sidechains.html: + to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ + type: 301 +get-started-evm-sidechain.html: + to: https://opensource.ripple.com/docs/evm-sidechain/get-started-evm-sidechain/ + type: 301 +connect-metamask-to-xrpl-evm-sidechain.html: + to: https://opensource.ripple.com/docs/evm-sidechain/connect-metamask-to-xrpl-evm-sidechain/ + type: 301 +join-evm-sidechain-devnet.html: + to: https://opensource.ripple.com/docs/evm-sidechain/join-evm-sidechain-devnet/ + type: 301 +evm-sidechain-validator-security.html: + to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-validator-security/ + type: 301 +evm-sidechain-run-a-validator-node.html: + to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-run-a-validator-node/ + type: 301 +use-xrpl-sidechains.html: + to: /tutorials/tasks/use-xrpl-sidechains/ + type: 301 +set-up-xrp-xrp-bridge.html: + to: /tutorials/tasks/use-xrpl-sidechains/set-up-xrp-xrp-bridge + type: 301 +set-up-iou-iou-bridge.html: + to: /tutorials/tasks/use-xrpl-sidechains/set-up-iou-iou-bridge + type: 301 +submit-cross-chain-transactions.html: + to: /tutorials/tasks/use-xrpl-sidechains/submit-cross-chain-transaction + type: 301 +protocol-reference.html: + to: /references/protocol/ + type: 301 +basic-data-types.html: + to: /references/protocol/data-types/basic-data-types + type: 301 +base58-encodings.html: + to: /references/protocol/data-types/base58-encodings + type: 301 +currency-formats.html: + to: /references/protocol/data-types/currency-formats + type: 301 +nftoken.html: + to: /references/protocol/data-types/nftoken + type: 301 +ledger-data-formats.html: + to: /references/protocol/ledger-data/ + type: 301 +ledger-header.html: + to: /references/protocol/ledger-data/ledger-header + type: 301 +ledger-entry-common-fields.html: + to: /references/protocol/ledger-data/common-fields + type: 301 +ledger-entry-types.html: + to: /references/protocol/ledger-data/ledger-entry-types/ + type: 301 +ledger-object-types.html: + to: /references/protocol/ledger-data/ledger-entry-types/ + type: 301 +ledger-object-ids.html: + to: /references/protocol/ledger-data/common-fields + type: 301 +accountroot.html: + to: /references/protocol/ledger-data/ledger-entry-types/accountroot + type: 301 +amendments-object.html: + to: /references/protocol/ledger-data/ledger-entry-types/amendments + type: 301 +amm.html: + to: /references/protocol/ledger-data/ledger-entry-types/amm + type: 301 +bridge.html: + to: /references/protocol/ledger-data/ledger-entry-types/bridge + type: 301 +check.html: + to: /references/protocol/ledger-data/ledger-entry-types/check + type: 301 +depositpreauth-object.html: + to: /references/protocol/ledger-data/ledger-entry-types/depositpreauth + type: 301 +did.html: + to: /references/protocol/ledger-data/ledger-entry-types/did + type: 301 +directorynode.html: + to: /references/protocol/ledger-data/ledger-entry-types/directorynode + type: 301 +escrow-object.html: + to: /references/protocol/ledger-data/ledger-entry-types/escrow + type: 301 +feesettings.html: + to: /references/protocol/ledger-data/ledger-entry-types/feesettings + type: 301 +ledgerhashes.html: + to: /references/protocol/ledger-data/ledger-entry-types/ledgerhashes + type: 301 +negativeunl.html: + to: /references/protocol/ledger-data/ledger-entry-types/negativeunl + type: 301 +nftokenoffer.html: + to: /references/protocol/ledger-data/ledger-entry-types/nftokenoffer + type: 301 +nftokenpage.html: + to: /references/protocol/ledger-data/ledger-entry-types/nftokenpage + type: 301 +offer.html: + to: /references/protocol/ledger-data/ledger-entry-types/offer + type: 301 +paychannel.html: + to: /references/protocol/ledger-data/ledger-entry-types/paychannel + type: 301 +ripplestate.html: + to: /references/protocol/ledger-data/ledger-entry-types/ripplestate + type: 301 +signerlist.html: + to: /references/protocol/ledger-data/ledger-entry-types/signerlist + type: 301 +ticket.html: + to: /references/protocol/ledger-data/ledger-entry-types/ticket + type: 301 +xchainownedclaimid.html: + to: /references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid + type: 301 +xchainownedcreateaccountclaimid.html: + to: /references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid + type: 301 +transaction-formats.html: + to: /references/protocol/transactions/ + type: 301 +transaction-common-fields.html: + to: /references/protocol/transactions/common-fields + type: 301 +transaction-types.html: + to: /references/protocol/transactions/types/ + type: 301 +accountset.html: + to: /references/protocol/transactions/types/accountset + type: 301 +accountdelete.html: + to: /references/protocol/transactions/types/accountdelete + type: 301 +ammbid.html: + to: /references/protocol/transactions/types/ammbid + type: 301 +ammcreate.html: + to: /references/protocol/transactions/types/ammcreate + type: 301 +ammdelete.html: + to: /references/protocol/transactions/types/ammdelete + type: 301 +ammdeposit.html: + to: /references/protocol/transactions/types/ammdeposit + type: 301 +ammvote.html: + to: /references/protocol/transactions/types/ammvote + type: 301 +ammwithdraw.html: + to: /references/protocol/transactions/types/ammwithdraw + type: 301 +checkcancel.html: + to: /references/protocol/transactions/types/checkcancel + type: 301 +checkcash.html: + to: /references/protocol/transactions/types/checkcash + type: 301 +checkcreate.html: + to: /references/protocol/transactions/types/checkcreate + type: 301 +clawback.html: + to: /references/protocol/transactions/types/clawback + type: 301 +depositpreauth.html: + to: /references/protocol/transactions/types/depositpreauth + type: 301 +diddelete.html: + to: /references/protocol/transactions/types/diddelete + type: 301 +didset.html: + to: /references/protocol/transactions/types/didset + type: 301 +escrowcancel.html: + to: /references/protocol/transactions/types/escrowcancel + type: 301 +escrowcreate.html: + to: /references/protocol/transactions/types/escrowcreate + type: 301 +escrowfinish.html: + to: /references/protocol/transactions/types/escrowfinish + type: 301 +nftokenacceptoffer.html: + to: /references/protocol/transactions/types/nftokenacceptoffer + type: 301 +nftokenburn.html: + to: /references/protocol/transactions/types/nftokenburn + type: 301 +nftokencanceloffer.html: + to: /references/protocol/transactions/types/nftokencanceloffer + type: 301 +nftokencreateoffer.html: + to: /references/protocol/transactions/types/nftokencreateoffer + type: 301 +nftokenmint.html: + to: /references/protocol/transactions/types/nftokenmint + type: 301 +offercancel.html: + to: /references/protocol/transactions/types/offercancel + type: 301 +offercreate.html: + to: /references/protocol/transactions/types/offercreate + type: 301 +payment.html: + to: /references/protocol/transactions/types/payment + type: 301 +paymentchannelclaim.html: + to: /references/protocol/transactions/types/paymentchannelclaim + type: 301 +paymentchannelcreate.html: + to: /references/protocol/transactions/types/paymentchannelcreate + type: 301 +paymentchannelfund.html: + to: /references/protocol/transactions/types/paymentchannelfund + type: 301 +setregularkey.html: + to: /references/protocol/transactions/types/setregularkey + type: 301 +signerlistset.html: + to: /references/protocol/transactions/types/signerlistset + type: 301 +ticketcreate.html: + to: /references/protocol/transactions/types/ticketcreate + type: 301 +trustset.html: + to: /references/protocol/transactions/types/trustset + type: 301 +xchainaccountcreatecommit.html: + to: /references/protocol/transactions/types/xchainaccountcreatecommit + type: 301 +xchainaddaccountcreateattestation.html: + to: /references/protocol/transactions/types/xchainaddaccountcreateattestation + type: 301 +xchainaddclaimattestation.html: + to: /references/protocol/transactions/types/xchainaddclaimattestation + type: 301 +xchainclaim.html: + to: /references/protocol/transactions/types/xchainclaim + type: 301 +xchaincommit.html: + to: /references/protocol/transactions/types/xchaincommit + type: 301 +xchaincreatebridge.html: + to: /references/protocol/transactions/types/xchaincreatebridge + type: 301 +xchaincreateclaimid.html: + to: /references/protocol/transactions/types/xchaincreateclaimid + type: 301 +xchainmodifybridge.html: + to: /references/protocol/transactions/types/xchainmodifybridge + type: 301 +pseudo-transaction-types.html: + to: /references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types + type: 301 +enableamendment.html: + to: /references/protocol/transactions/pseudo-transaction-types/enableamendment + type: 301 +setfee.html: + to: /references/protocol/transactions/pseudo-transaction-types/setfee + type: 301 +unlmodify.html: + to: /references/protocol/transactions/pseudo-transaction-types/unlmodify + type: 301 +transaction-results.html: + to: /references/protocol/transactions/transaction-results/transaction-results + type: 301 +tec-codes.html: + to: /references/protocol/transactions/transaction-results/tec-codes + type: 301 +tef-codes.html: + to: /references/protocol/transactions/transaction-results/tef-codes + type: 301 +tel-codes.html: + to: /references/protocol/transactions/transaction-results/tel-codes + type: 301 +tem-codes.html: + to: /references/protocol/transactions/transaction-results/tem-codes + type: 301 +ter-codes.html: + to: /references/protocol/transactions/transaction-results/ter-codes + type: 301 +tes-success.html: + to: /references/protocol/transactions/transaction-results/tes-success + type: 301 +transaction-metadata.html: + to: /references/protocol/transactions/metadata + type: 301 +modifying-the-ledger.html: + to: /references/protocol/transactions/ + type: 301 +serialization.html: + to: /references/protocol/binary-format + type: 301 +client-libraries.html: + to: /references/client-libraries + type: 301 +rippleapi-reference.html: + to: https://js.xrpl.org/ + type: 301 +xrpljs2-migration-guide.html: + to: /references/xrpljs2-migration-guide + type: 301 +http-websocket-apis.html: + to: /references/http-websocket-apis/ + type: 301 +rippled-api.html: + to: /references/http-websocket-apis/ + type: 301 +api-conventions.html: + to: /references/http-websocket-apis/api-conventions/ + type: 301 +request-formatting.html: + to: /references/http-websocket-apis/api-conventions/request-formatting + type: 301 +response-formatting.html: + to: /references/http-websocket-apis/api-conventions/response-formatting + type: 301 +error-formatting.html: + to: /references/http-websocket-apis/api-conventions/error-formatting + type: 301 +markers-and-pagination.html: + to: /references/http-websocket-apis/api-conventions/markers-and-pagination + type: 301 +rate-limiting.html: + to: /references/http-websocket-apis/api-conventions/rate-limiting + type: 301 +rippled-server-states.html: + to: /references/http-websocket-apis/api-conventions/rippled-server-states + type: 301 +ctid.html: + to: /references/http-websocket-apis/api-conventions/ctid + type: 301 +public-api-methods.html: + to: /references/http-websocket-apis/public-api-methods/ + type: 301 +public-rippled-methods.html: + to: /references/http-websocket-apis/public-api-methods/ + type: 301 +account-methods.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/ + type: 301 +account_channels.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_channels + type: 301 +account_currencies.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_currencies + type: 301 +account_info.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_info + type: 301 +account_lines.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_lines + type: 301 +account_nfts.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_nfts + type: 301 +account_objects.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_objects + type: 301 +account_offers.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_offers + type: 301 +account_tx.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/account_tx + type: 301 +gateway_balances.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/gateway_balances + type: 301 +noripple_check.html: + to: /references/http-websocket-apis/public-api-methods/account-methods/noripple_check + type: 301 +ledger-methods.html: + to: /references/http-websocket-apis/public-api-methods/ledger-methods/ + type: 301 +ledger.html: + to: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger + type: 301 +ledger_closed.html: + to: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed + type: 301 +ledger_current.html: + to: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current + type: 301 +ledger_data.html: + to: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data + type: 301 +ledger_entry.html: + to: /references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry + type: 301 +transaction-methods.html: + to: /references/http-websocket-apis/public-api-methods/transaction-methods/ + type: 301 +submit.html: + to: /references/http-websocket-apis/public-api-methods/transaction-methods/submit + type: 301 +submit_multisigned.html: + to: /references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned + type: 301 +transaction_entry.html: + to: /references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry + type: 301 +tx.html: + to: /references/http-websocket-apis/public-api-methods/transaction-methods/tx + type: 301 +tx_history.html: + to: /references/http-websocket-apis/public-api-methods/transaction-methods/tx_history + type: 301 +path-and-order-book-methods.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ + type: 301 +amm_info.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info + type: 301 +book_offers.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers + type: 301 +deposit_authorized.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized + type: 301 +nft_buy_offers.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers + type: 301 +nft_sell_offers.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers + type: 301 +path_find.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find + type: 301 +ripple_path_find.html: + to: /references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find + type: 301 +payment-channel-methods.html: + to: /references/http-websocket-apis/public-api-methods/payment-channel-methods/ + type: 301 +channel_authorize.html: + to: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize + type: 301 +channel_verify.html: + to: /references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify + type: 301 +subscription-methods.html: + to: /references/http-websocket-apis/public-api-methods/subscription-methods/ + type: 301 +subscribe.html: + to: /references/http-websocket-apis/public-api-methods/subscription-methods/subscribe + type: 301 +unsubscribe.html: + to: /references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe + type: 301 +server-info-methods.html: + to: /references/http-websocket-apis/public-api-methods/server-info-methods/ + type: 301 +fee.html: + to: /references/http-websocket-apis/public-api-methods/server-info-methods/fee + type: 301 +manifest.html: + to: /references/http-websocket-apis/public-api-methods/server-info-methods/manifest + type: 301 +server_definitions.html: + to: /references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions + type: 301 +server_info.html: + to: /references/http-websocket-apis/public-api-methods/server-info-methods/server_info + type: 301 +server_state.html: + to: /references/http-websocket-apis/public-api-methods/server-info-methods/server_state + type: 301 +clio-methods.html: + to: /references/http-websocket-apis/public-api-methods/clio-server/ + type: 301 +server_info-clio.html: + to: /references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio + type: 301 +ledger-clio.html: + to: /references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio + type: 301 +nft_history.html: + to: /references/http-websocket-apis/public-api-methods/clio-methods/nft_history + type: 301 +nft_info.html: + to: /references/http-websocket-apis/public-api-methods/clio-methods/nft_info + type: 301 +utility-methods.html: + to: /references/http-websocket-apis/public-api-methods/utility-methods/ + type: 301 +json.html: + to: /references/http-websocket-apis/public-api-methods/utility-methods/json + type: 301 +ping.html: + to: /references/http-websocket-apis/public-api-methods/utility-methods/ping + type: 301 +random.html: + to: /references/http-websocket-apis/public-api-methods/utility-methods/random + type: 301 +admin-api-methods.html: + to: /references/http-websocket-apis/admin-api-methods/ + type: 301 +admin-rippled-methods.html: + to: /references/http-websocket-apis/admin-api-methods/ + type: 301 +key-generation-methods.html: + to: /references/http-websocket-apis/admin-api-methods/key-generation-methods/ + type: 301 +validation_create.html: + to: /references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create + type: 301 +wallet_propose.html: + to: /references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose + type: 301 +logging-and-data-management-methods.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 +can_delete.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete + type: 301 +crawl_shards.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards + type: 301 +download_shard.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard + type: 301 +ledger_cleaner.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner + type: 301 +ledger_request.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request + type: 301 +log_level.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level + type: 301 +logrotate.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate + type: 301 +node_to_shard.html: + to: /references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard + type: 301 +server-control-methods.html: + to: /references/http-websocket-apis/admin-api-methods/server-control-methods/ + type: 301 +ledger_accept.html: + to: /references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept + type: 301 +stop.html: + to: /references/http-websocket-apis/admin-api-methods/server-control-methods/stop + type: 301 +validation_seed.html: + to: /references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed + type: 301 +signing-methods.html: + to: /references/http-websocket-apis/admin-api-methods/signing-methods/ + type: 301 +sign.html: + to: /references/http-websocket-apis/admin-api-methods/signing-methods/sign + type: 301 +sign_for.html: + to: /references/http-websocket-apis/admin-api-methods/signing-methods/sign_for + type: 301 +peer-management-methods.html: + to: /references/http-websocket-apis/admin-api-methods/peer-management-methods/ + type: 301 +connect.html: + to: /references/http-websocket-apis/admin-api-methods/peer-management-methods/connect + type: 301 +peer_reservations_add.html: + to: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add + type: 301 +peer_reservations_del.html: + to: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del + type: 301 +peer_reservations_list.html: + to: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list + type: 301 +peers.html: + to: /references/http-websocket-apis/admin-api-methods/peer-management-methods/peers + type: 301 +status-and-debugging-methods.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/ + type: 301 +consensus_info.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info + type: 301 +feature.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature + type: 301 +fetch_info.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info + type: 301 +get_counts.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts + type: 301 +print.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print + type: 301 +validator_info.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info + type: 301 +validator_list_sites.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites + type: 301 +validators.html: + to: /references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators + type: 301 +peer-port-methods.html: + to: /references/http-websocket-apis/peer-port-methods/ + type: 301 +health-check.html: + to: /references/http-websocket-apis/peer-port-methods/health-check + type: 301 +peer-crawler.html: + to: /references/http-websocket-apis/peer-port-methods/peer-crawler + type: 301 +validator-list.html: + to: /references/http-websocket-apis/peer-port-methods/validator-list + type: 301 +xrp-api.html: + to: https://xpring-eng.github.io/xrp-api/ + type: 301 +data-api.html: + to: /references/data-api + type: 301 +xrp-ledger-toml.html: + to: /references/xrp-ledger-toml + type: 301 +infrastructure.html: + to: /infrastructure/ + type: 301 +commandline-usage.html: + to: /infrastructure/commandline-usage + type: 301 +install-rippled.html: + to: /infrastructure/installation/ + type: 301 +system-requirements.html: + to: /infrastructure/installation/system-requirements + type: 301 +install-rippled-on-centos-rhel-with-yum.html: + to: /infrastructure/installation/install-rippled-on-centos-rhel-with-yum + type: 301 +install-rippled-on-ubuntu.html: + to: /infrastructure/installation/install-rippled-on-ubuntu + type: 301 +install-clio-on-ubuntu.html: + to: /infrastructure/installation/install-clio-on-ubuntu + type: 301 +update-rippled-automatically-on-linux.html: + to: /infrastructure/installation/update-rippled-automatically-on-linux + type: 301 +update-rippled-manually-on-centos-rhel.html: + to: /infrastructure/installation/update-rippled-manually-on-centos-rhel + type: 301 +update-rippled-manually-on-ubuntu.html: + to: /infrastructure/installation/update-rippled-manually-on-ubuntu + type: 301 +build-on-linux-mac-windows.html: + to: /infrastructure/installation/build-on-linux-mac-windows + type: 301 +build-run-rippled-in-reporting-mode.html: + to: /infrastructure/installation/build-run-rippled-in-reporting-mode + type: 301 +capacity-planning.html: + to: /infrastructure/installation/capacity-planning + type: 301 +rippled-1-3-migration-instructions.html: + to: /infrastructure/installation/rippled-1-3-migration-instructions + type: 301 +configure-rippled.html: + to: /infrastructure/configuration/ + type: 301 +server-modes.html: + to: /infrastructure/configuration/server-modes/ + type: 301 +run-rippled-as-a-validator.html: + to: /infrastructure/configuration/server-modes/run-rippled-as-a-validator + type: 301 +run-rippled-as-a-stock-server.html: + to: /infrastructure/configuration/server-modes/run-rippled-as-a-stock-server + type: 301 +data-retention.html: + to: /infrastructure/configuration/data-retention/ + type: 301 +configure-full-history.html: + to: /infrastructure/configuration/data-retention/configure-full-history + type: 301 +online-deletion.html: + to: /infrastructure/configuration/data-retention/online-deletion + type: 301 +configure-online-deletion.html: + to: /infrastructure/configuration/data-retention/configure-online-deletion + type: 301 +configure-advisory-deletion.html: + to: /infrastructure/configuration/data-retention/configure-advisory-deletion + type: 301 +history-sharding.html: + to: /infrastructure/configuration/data-retention/history-sharding + type: 301 +configure-history-sharding.html: + to: /infrastructure/configuration/data-retention/configure-history-sharding + type: 301 +configure-peering.html: + to: /infrastructure/configuration/peering/ + type: 301 +cluster-rippled-servers.html: + to: /infrastructure/configuration/peering/cluster-rippled-servers + type: 301 +configure-a-private-server.html: + to: /infrastructure/configuration/peering/configure-a-private-server + type: 301 +configure-the-peer-crawler.html: + to: /infrastructure/configuration/peering/configure-the-peer-crawler + type: 301 +enable-link-compression.html: + to: /infrastructure/configuration/peering/enable-link-compression + type: 301 +forward-ports-for-peering.html: + to: /infrastructure/configuration/peering/forward-ports-for-peering + type: 301 +manually-connect-to-a-specific-peer.html: + to: /infrastructure/configuration/peering/manually-connect-to-a-specific-peer + type: 301 +set-max-number-of-peers.html: + to: /infrastructure/configuration/peering/set-max-number-of-peers + type: 301 +use-a-peer-reservation.html: + to: /infrastructure/configuration/peering/use-a-peer-reservation + type: 301 +configure-amendment-voting.html: + to: /infrastructure/configuration/configure-amendment-voting + type: 301 +configure-statsd.html: + to: /infrastructure/configuration/configure-statsd + type: 301 +connect-your-rippled-to-the-xrp-test-net.html: + to: /infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net + type: 301 +configure-grpc.html: + to: /infrastructure/configuration/configure-grpc + type: 301 +enable-public-signing.html: + to: /infrastructure/configuration/enable-public-signing + type: 301 +use-stand-alone-mode.html: + to: /infrastructure/testing-and-auditing/ + type: 301 +start-a-new-genesis-ledger-in-stand-alone-mode.html: + to: /infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode + type: 301 +load-a-saved-ledger-in-stand-alone-mode.html: + to: /infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode + type: 301 +advance-the-ledger-in-stand-alone-mode.html: + to: /infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode + type: 301 +test-amendments.html: + to: /infrastructure/testing-and-auditing/test-amendments + type: 301 +private-network-with-docker.html: + to: /infrastructure/testing-and-auditing/run-private-network-with-docker + type: 301 +troubleshoot-the-rippled-server.html: + to: /infrastructure/troubleshooting/ + type: 301 +diagnosing-problems.html: + to: /infrastructure/troubleshooting/diagnosing-problems + type: 301 +health-check-interventions.html: + to: /infrastructure/troubleshooting/health-check-interventions + type: 301 +understanding-log-messages.html: + to: /infrastructure/troubleshooting/understanding-log-messages + type: 301 +server-doesnt-sync.html: + to: /infrastructure/troubleshooting/server-doesnt-sync + type: 301 +server-is-amendment-blocked.html: + to: /infrastructure/troubleshooting/server-is-amendment-blocked + type: 301 +server-wont-start.html: + to: /infrastructure/troubleshooting/server-wont-start + type: 301 +fix-sqlite-tx-db-page-size-issue.html: + to: /infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue + type: 301 +manage-the-rippled-server.html: + to: /infrastructure/installation/install-rippled-on-ubuntu + type: 301 +build-run-rippled-ubuntu.html: + to: /infrastructure/installation/build-on-linux-mac-windows + type: 301 +build-run-rippled-macos.html: + to: /infrastructure/installation/build-on-linux-mac-windows + type: 301 +update-rippled-automatically-on-centos-rhel.html: + to: /infrastructure/installation/update-rippled-automatically-on-linux + type: 301 +install-rippled-on-ubuntu-with-alien.html: + to: /infrastructure/installation/install-rippled-on-ubuntu + type: 301 +run-a-rippled-validator.html: + to: /infrastructure/configuration/server-modes/run-rippled-as-a-validator + type: 301 +list-xrp-in-your-exchange.html: + to: /use-cases/defi/list-xrp-as-an-exchange + type: 301 +contribute-code-to-rippled.html: + to: /resources/contribute-code/contribute-code + type: 301 +contribute-code-to-ripple-lib.html: + to: /resources/contribute-code/contribute-code + type: 301 +contribute-code-flow.html: + to: /resources/contribute-code/contribute-code + type: 301 +resources.html: + to: /resources/ + type: 301 +known-amendments.html: + to: /resources/known-amendments + type: 301 +contribute-code.html: + to: /resources/contribute-code/contribute-code + type: 301 +create-custom-transactors.html: + to: /resources/contribute-code/create-custom-transactors + type: 301 +contribute-documentation.html: + to: /resources/contribute-documentation/ + type: 301 +documentation-translations.html: + to: /resources/contribute-documentation/documentation-translations + type: 301 +creating-diagrams.html: + to: /resources/contribute-documentation/creating-diagrams + type: 301 +tutorial-guidelines.html: + to: /resources/contribute-documentation/tutorial-guidelines + type: 301 +tutorial-structure.html: + to: /resources/contribute-documentation/tutorial-structure + type: 301 +report-a-scam.html: + to: /contributing/report-a-scam + type: 301 +wallets.html: + to: /introduction/crypto-wallets + type: 301 diff --git a/content/references/client-libraries.md b/content/references/client-libraries.md index 7998b812b5..a499f6665a 100644 --- a/content/references/client-libraries.md +++ b/content/references/client-libraries.md @@ -7,14 +7,14 @@ blurb: Use these libraries to access the XRP Ledger from your programming langua These client libraries simplify some of the common work of accessing and processing XRP Ledger data, and present it in a form that matches with the native conventions of their respective programming languages. -For other programming languages, you can access the XRP Ledger through the [HTTP APIs](http-websocket-apis.html). +For other programming languages, you can access the XRP Ledger through the [HTTP APIs](http-websocket-apis/index.md). | Language | Library Name | Get Started | API Reference | Source Code | |---------------------------------|---------------------------|-------------|--------------|-------------| -| **Python** | `xrpl-py` | [Get Started Using Python](get-started-using-python.html) | [API Reference](https://xrpl-py.readthedocs.io/) | [Repo](https://github.com/XRPLF/xrpl-py) | -| **JavaScript** / **TypeScript** | `xrpl.js` | [Get Started](get-started-using-javascript.html) | [API Reference](https://js.xrpl.org/) | [Repo](https://github.com/XRPLF/xrpl.js) | +| **Python** | `xrpl-py` | [Get Started Using Python](../tutorials/get-started/get-started-using-python.md) | [API Reference](https://xrpl-py.readthedocs.io/) | [Repo](https://github.com/XRPLF/xrpl-py) | +| **JavaScript** / **TypeScript** | `xrpl.js` | [Get Started](../tutorials/get-started/get-started-using-javascript.md) | [API Reference](https://js.xrpl.org/) | [Repo](https://github.com/XRPLF/xrpl.js) | | **JavaScript** / **TypeScript** | `xrpl-client` | [Get Started](https://jsfiddle.net/WietseWind/35az6p1b/) | [NPM Reference](https://www.npmjs.com/package/xrpl-client) | [Repo](https://github.com/XRPL-Labs/xrpl-client) | | **JavaScript** / **TypeScript** | `xrpl-accountlib` | [Get Started](https://jsfiddle.net/WietseWind/gkefpnu0/) | [NPM Reference](https://www.npmjs.com/package/xrpl-accountlib) | [Repo](https://github.com/WietseWind/xrpl-accountlib) | | **C++** | `rippled` Signing Library | [Get Started](https://github.com/XRPLF/rippled/tree/develop/Builds/linux#signing-library) | | (Part of [`rippled`](https://github.com/XRPLF/rippled/)) | -| **Java** | `xrpl4j` | [Get Started Using Java](get-started-using-java.html) | [API Reference](https://javadoc.io/doc/org.xrpl/) | [Repo](https://github.com/XRPLF/xrpl4j) | -| **PHP** | `XRPL_PHP` | [Get Started Using PHP](get-started-using-php.html) | [XRPL_PHP Docs](https://alexanderbuzz.github.io/xrpl-php-docs/) | [Repo](https://github.com/AlexanderBuzz/xrpl-php) | +| **Java** | `xrpl4j` | [Get Started Using Java](../tutorials/get-started/get-started-using-java.md) | [API Reference](https://javadoc.io/doc/org.xrpl/) | [Repo](https://github.com/XRPLF/xrpl4j) | +| **PHP** | `XRPL_PHP` | [Get Started Using PHP](../tutorials/get-started/get-started-using-php.md) | [XRPL_PHP Docs](https://alexanderbuzz.github.io/xrpl-php-docs/) | [Repo](https://github.com/AlexanderBuzz/xrpl-php) | diff --git a/content/references/data-api.md b/content/references/data-api.md index cd1511903a..c76661acb7 100644 --- a/content/references/data-api.md +++ b/content/references/data-api.md @@ -7,12 +7,12 @@ nav_omit: true --- # Ripple Data API v2 -**Warning:** The Ripple Data API v2 is deprecated with no ongoing support. Please use the native [XRP Ledger HTTP APIs](http-websocket-apis.html) instead. +**Warning:** The Ripple Data API v2 is deprecated with no ongoing support. Please use the native [XRP Ledger HTTP APIs](http-websocket-apis/index.md) instead. For information on the old Data API, see the [rippled-historical-database repository](https://github.com/ripple/rippled-historical-database). ## Alternatives -For most common operations, like requesting account balances or transaction history, you can query a self-hosted or [public XRP Ledger server](public-servers.html) using a [WebSocket connection](get-started-using-http-websocket-apis.html#websocket-api) or [JSON-RPC (HTTP POST)](get-started-using-http-websocket-apis.html#json-rpc). +For most common operations, like requesting account balances or transaction history, you can query a self-hosted or [public XRP Ledger server](../tutorials/get-started/public-servers.md) using a [WebSocket connection](../tutorials/get-started/get-started-using-http-websocket-apis.md#websocket-api) or [JSON-RPC (HTTP POST)](../tutorials/get-started/get-started-using-http-websocket-apis.md#json-rpc). -See the [Get Started Using HTTP / WebSocket APIs](get-started-using-http-websocket-apis.html) page for more information. +See the [Get Started Using HTTP / WebSocket APIs](../tutorials/get-started/get-started-using-http-websocket-apis.md) page for more information. diff --git a/content/references/http-websocket-apis/admin-api-methods/index.md b/content/references/http-websocket-apis/admin-api-methods/index.md index d9177c285d..f12f1da1b1 100644 --- a/content/references/http-websocket-apis/admin-api-methods/index.md +++ b/content/references/http-websocket-apis/admin-api-methods/index.md @@ -9,69 +9,69 @@ labels: Administer a `rippled` server using these admin API methods. Admin methods are meant only for trusted personnel in charge of keeping the server operational. Admin methods include commands for managing, monitoring, and debugging the server. -Admin commands are available only if you connect to `rippled` on a host and port that the `rippled.cfg` file identifies as admin. By default, the commandline client uses an admin connection. For more information on connecting to `rippled`, see [Getting Started with the `rippled` API](get-started-using-http-websocket-apis.html). +Admin commands are available only if you connect to `rippled` on a host and port that the `rippled.cfg` file identifies as admin. By default, the commandline client uses an admin connection. For more information on connecting to `rippled`, see [Getting Started with the `rippled` API](../../../tutorials/get-started/get-started-using-http-websocket-apis.md). -## [Key Generation Methods](key-generation-methods.html) +## [Key Generation Methods](key-generation-methods/index.md) Use these methods to generate and manage keys. -* **[`validation_create`](validation_create.html)** - Generate formatted for `rippled` node key pair. (Validators should use [tokens](run-rippled-as-a-validator.html) instead of keys generated by this method.) -* **[`wallet_propose`](wallet_propose.html)** - Generate keys for a new account. +* **[`validation_create`](key-generation-methods/validation_create.md)** - Generate formatted for `rippled` node key pair. (Validators should use [tokens](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) instead of keys generated by this method.) +* **[`wallet_propose`](key-generation-methods/wallet_propose.md)** - Generate keys for a new account. -## [Logging and Data Management Methods](logging-and-data-management-methods.html) +## [Logging and Data Management Methods](logging-and-data-management-methods/index.md) Use these methods to manage log levels and other data, such as ledgers. -* **[`can_delete`](can_delete.html)** - Allow online deletion of ledgers up to a specific ledger. -* **[`download_shard`](download_shard.html)** - Download a specific shard of ledger history. -* **[`ledger_cleaner`](ledger_cleaner.html)** - Configure the ledger cleaner service to check for corrupted data. -* **[`ledger_request`](ledger_request.html)** - Query a peer server for a specific ledger version. -* **[`log_level`](log_level.html)** - Get or modify log verbosity. -* **[`logrotate`](logrotate.html)** - Reopen the log file. -* **[`node_to_shard`](node_to_shard.html)** - Copy data from the ledger store to the shard store. +* **[`can_delete`](logging-and-data-management-methods/can_delete.md)** - Allow online deletion of ledgers up to a specific ledger. +* **[`download_shard`](logging-and-data-management-methods/download_shard.md)** - Download a specific shard of ledger history. +* **[`ledger_cleaner`](logging-and-data-management-methods/ledger_cleaner.md)** - Configure the ledger cleaner service to check for corrupted data. +* **[`ledger_request`](logging-and-data-management-methods/ledger_request.md)** - Query a peer server for a specific ledger version. +* **[`log_level`](logging-and-data-management-methods/log_level.md)** - Get or modify log verbosity. +* **[`logrotate`](logging-and-data-management-methods/logrotate.md)** - Reopen the log file. +* **[`node_to_shard`](logging-and-data-management-methods/node_to_shard.md)** - Copy data from the ledger store to the shard store. -## [Server Control Methods](server-control-methods.html) +## [Server Control Methods](server-control-methods/index.md) Use these methods to manage the `rippled` server. -* **[`ledger_accept`](ledger_accept.html)** - Close and advance the ledger in stand-alone mode. -* **[`stop`](stop.html)** - Shut down the `rippled` server. +* **[`ledger_accept`](server-control-methods/ledger_accept.md)** - Close and advance the ledger in stand-alone mode. +* **[`stop`](server-control-methods/stop.md)** - Shut down the `rippled` server. -## [Signing Methods](signing-methods.html) +## [Signing Methods](signing-methods/index.md) Use these methods to sign transactions. -* **[`sign`](sign.html)** - Cryptographically sign a transaction. -* **[`sign_for`](sign_for.html)** - Contribute to a multi-signature. +* **[`sign`](signing-methods/sign.md)** - Cryptographically sign a transaction. +* **[`sign_for`](signing-methods/sign_for.md)** - Contribute to a multi-signature. -By default, these methods are [admin-only](get-started-using-http-websocket-apis.html#admin-access). They can be used as public methods if the server admin has [enabled public signing](enable-public-signing.html). +By default, these methods are [admin-only](../../../tutorials/get-started/get-started-using-http-websocket-apis.md#admin-access). They can be used as public methods if the server admin has [enabled public signing](../../../infrastructure/configuration/enable-public-signing.md). -## [Peer Management Methods](peer-management-methods.html) +## [Peer Management Methods](peer-management-methods/index.md) Use these methods to manage the server's connections in the peer-to-peer XRP Ledger network. -* **[`connect`](connect.html)** - Force the `rippled` server to connect to a specific peer. -* **[`peer_reservations_add`](peer_reservations_add.html)** - Add or update a reserved slot for a specific peer. -* **[`peer_reservations_del`](peer_reservations_del.html)** - Remove a reserved slot for a specific peer. -* **[`peer_reservations_list`](peer_reservations_list.html)** - List reserved slots for specific peers. -* **[`peers`](peers.html)** - Get information about the peer servers connected. +* **[`connect`](peer-management-methods/connect.md)** - Force the `rippled` server to connect to a specific peer. +* **[`peer_reservations_add`](peer-management-methods/peer_reservations_add.md)** - Add or update a reserved slot for a specific peer. +* **[`peer_reservations_del`](peer-management-methods/peer_reservations_del.md)** - Remove a reserved slot for a specific peer. +* **[`peer_reservations_list`](peer-management-methods/peer_reservations_list.md)** - List reserved slots for specific peers. +* **[`peers`](peer-management-methods/peers.md)** - Get information about the peer servers connected. -## [Status and Debugging Methods](status-and-debugging-methods.html) +## [Status and Debugging Methods](status-and-debugging-methods/index.md) Use these methods to check the status of the network and server. -* **[`consensus_info`](consensus_info.html)** - Get information about the state of consensus as it happens. -* **[`feature`](feature.html)** - Get information about protocol amendments. -* **[`fetch_info`](fetch_info.html)** - Get information about the server's sync with the network. -* **[`get_counts`](get_counts.html)** - Get statistics about the server's internals and memory usage. -* **[`manifest`](manifest.html)** - Get the latest public key information about a known validator. -* **[`print`](print.html)** - Get information about internal subsystems. -* **[`validator_info`](validator_info.html)** - Get information about the server's validator settings, if configured as a validator. -* **[`validator_list_sites`](validator_list_sites.html)** - Get information about sites that publish validator lists. -* **[`validators`](validators.html)** - Get information about the current validators. +* **[`consensus_info`](status-and-debugging-methods/consensus_info.md)** - Get information about the state of consensus as it happens. +* **[`feature`](status-and-debugging-methods/feature.md)** - Get information about protocol amendments. +* **[`fetch_info`](status-and-debugging-methods/fetch_info.md)** - Get information about the server's sync with the network. +* **[`get_counts`](status-and-debugging-methods/get_counts.md)** - Get statistics about the server's internals and memory usage. +* **[`manifest`](../public-api-methods/server-info-methods/manifest.md)** - Get the latest public key information about a known validator. +* **[`print`](status-and-debugging-methods/print.md)** - Get information about internal subsystems. +* **[`validator_info`](status-and-debugging-methods/validator_info.md)** - Get information about the server's validator settings, if configured as a validator. +* **[`validator_list_sites`](status-and-debugging-methods/validator_list_sites.md)** - Get information about sites that publish validator lists. +* **[`validators`](status-and-debugging-methods/validators.md)** - Get information about the current validators. ## Deprecated Methods @@ -84,8 +84,4 @@ The following admin commands are deprecated and may be removed without further n The [validation_seed method][] has been removed since `rippled` v0.29.1. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md b/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md index 20734bb92f..b18a22680c 100644 --- a/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md +++ b/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md @@ -1,8 +1,12 @@ --- html: key-generation-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Key Generation Methods -Use these methods to generate and manage keys. \ No newline at end of file +Use these methods to generate and manage keys. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md b/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md index 4e9a1012c5..5d3064b95c 100644 --- a/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +++ b/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md @@ -9,22 +9,21 @@ labels: # validation_create [[Source]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/ValidationCreate.cpp "Source") -Use the `validation_create` command to generate [cryptographic keys a `rippled` server can use to identify itself to the network](peer-protocol.html#node-key-pair). Similar to the [wallet_propose method][], this method only generates a set of keys in the proper format. It does not any makes changes to the XRP Ledger data or server configuration. +Use the `validation_create` command to generate [cryptographic keys a `rippled` server can use to identify itself to the network](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair). Similar to the [wallet_propose method][], this method only generates a set of keys in the proper format. It does not any makes changes to the XRP Ledger data or server configuration. -_The `validation_create` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `validation_create` method is an [admin method](../index.md) that cannot be run by unprivileged users._ -You can configure your server to use the generated key pair to sign validations (validation key pair) or regular peer-to-peer communications ([node key pair](peer-protocol.html#node-key-pair)). +You can configure your server to use the generated key pair to sign validations (validation key pair) or regular peer-to-peer communications ([node key pair](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair)). -**Tip:** For configuring a robust validator, you should use the `validator-keys` tool (included in the `rippled` RPM) to generate validator tokens (which can be rotated) with an offline master key. For more information, see [Validator Setup](run-rippled-as-a-validator.html#3-enable-validation-on-your-rippled-server). +**Tip:** For configuring a robust validator, you should use the `validator-keys` tool (included in the `rippled` RPM) to generate validator tokens (which can be rotated) with an offline master key. For more information, see [Validator Setup](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server). ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -32,9 +31,9 @@ An example of the request format: "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "validation_create", @@ -45,15 +44,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: validation_create [secret] rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -67,10 +67,9 @@ The request includes the following parameters: An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -81,9 +80,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -97,8 +96,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -113,7 +113,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. * `badSeed` - The request provided an invalid seed value. This usually means that the seed value appears to be a valid string of a different format, such as an account address or validation public key. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md b/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md index eb89d390a8..4197d37ecc 100644 --- a/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +++ b/content/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md @@ -9,20 +9,19 @@ labels: # wallet_propose [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/WalletPropose.cpp "Source") -Use the `wallet_propose` method to generate a key pair and XRP Ledger address. This command only generates key and address values, and does not affect the XRP Ledger itself in any way. To become a funded address stored in the ledger, the address must [receive a Payment transaction](accounts.html#creating-accounts) that provides enough XRP to meet the [reserve requirement](reserves.html). +Use the `wallet_propose` method to generate a key pair and XRP Ledger address. This command only generates key and address values, and does not affect the XRP Ledger itself in any way. To become a funded address stored in the ledger, the address must [receive a Payment transaction](../../../../concepts/accounts/accounts.md#creating-accounts) that provides enough XRP to meet the [reserve requirement](../../../../concepts/accounts/reserves.md). -*The `wallet_propose` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* (This command is restricted to protect against people sniffing network traffic for account secrets, since admin commands are not usually transmitted over the outside network.) +*The `wallet_propose` method is an [admin method](../index.md) that cannot be run by unprivileged users!* (This command is restricted to protect against people sniffing network traffic for account secrets, since admin commands are not usually transmitted over the outside network.) -[Updated in: rippled 0.31.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}Updated in: rippled 0.31.0{% /badge %} ### Request Format An example of the request format: - - -*WebSocket (with key type)* +{% tabs %} +{% tab label="WebSocket (with key type)" %} ```json { "command": "wallet_propose", @@ -30,18 +29,18 @@ An example of the request format: "key_type": "secp256k1" } ``` +{% /tab %} -*WebSocket (no key type)* - +{% tab label="WebSocket (no key type)" %} ```json { "command": "wallet_propose", "passphrase": "masterpassphrase" } ``` +{% /tab %} -*JSON-RPC (with key type)* - +{% tab label="JSON-RPC (with key type)" %} ```json { "method": "wallet_propose", @@ -53,9 +52,9 @@ An example of the request format: ] } ``` +{% /tab %} -*JSON-RPC (no key type)* - +{% tab label="JSON-RPC (no key type)" %} ```json { "method": "wallet_propose", @@ -66,21 +65,22 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: wallet_propose [passphrase] rippled wallet_propose masterpassphrase ``` +{% /tab %} - +{% /tabs %} The request can contain the following parameters: | `Field` | Type | Description | |:-------------|:-------|:-----------------------------------------------------| -| `key_type` | String |Which [signing algorithm](cryptographic-keys.html#signing-algorithms) to use to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). The default is `secp256k1`. | +| `key_type` | String |Which [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) to use to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). The default is `secp256k1`. | | `passphrase` | String | _(Optional)_ Generate a key pair and address from this seed value. This value can be formatted in [hexadecimal][], the XRP Ledger's [base58][] format, [RFC-1751][], or as an arbitrary string. Cannot be used with `seed` or `seed_hex`. | | `seed` | String | _(Optional)_ Generate the key pair and address from this seed value in the XRP Ledger's [base58][]-encoded format. Cannot be used with `passphrase` or `seed_hex`. | | `seed_hex` | String | _(Optional)_ Generate the key pair and address from this seed value in [hexadecimal][] format. Cannot be used with `passphrase` or `seed`. | @@ -91,7 +91,7 @@ You must provide **at most one** of the following fields: `passphrase`, `seed`, #### Specifying a Seed -For most cases, you should use a seed value generated from a strong source of randomness. Anyone who knows the seed value for an address has full power to [send transactions signed by that address](transactions.html#authorizing-transactions). Generally, running this command with no parameters is a good way to generate a random seed. +For most cases, you should use a seed value generated from a strong source of randomness. Anyone who knows the seed value for an address has full power to [send transactions signed by that address](../../../../concepts/transactions/index.md#authorizing-transactions). Generally, running this command with no parameters is a good way to generate a random seed. Cases where you would specify a known seed include: @@ -112,10 +112,9 @@ If you do specify a seed, you can specify it in any of the following formats: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -132,9 +131,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -149,9 +148,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -169,29 +168,30 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing various important information about the new (potential) account, including the following fields: | `Field` | Type | Description | |:------------------|:-------|:------------------------------------------------| -| `key_type` | String | Which [signing algorithm](cryptographic-keys.html#signing-algorithms) was used to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). | -| `master_seed` | String | The [master seed](cryptographic-keys.html#key-components), in the XRP Ledger's [base58][] encoded string format. Typically, you use the key in this format to sign transactions. | +| `key_type` | String | Which [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) was used to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). | +| `master_seed` | String | The [master seed](../../../../concepts/accounts/cryptographic-keys.md#key-components), in the XRP Ledger's [base58][] encoded string format. Typically, you use the key in this format to sign transactions. | | `master_seed_hex` | String | The master seed, in hex format. | | `master_key` | String | **DEPRECATED** The master seed, in [RFC-1751][] format. **Note:** The `rippled` implementation reverses the byte order of the key after decoding from RFC-1751 and before encoding to RFC-1751; if you read or write keys for use with the XRP Ledger using a different RFC-1751 implementation, you must do the same to be compatible with `rippled`'s RFC-1751 encoding. | -| `account_id` | String | The [Address][] of the account in the XRP Ledger's [base58][] format. This is not the public key, but a hash-of-a-hash of it. It also has a checksum so a typo almost certainly results in an invalid address rather than a valid, but different address. This is the primary identifier of an account in the XRP Ledger. You tell people this to get paid, and use it in transactions to indicate who you are and who you're paying, trusting, and so forth. [Multi-signing lists](multi-signing.html) also use these to identify other signers. | +| `account_id` | String | The [Address][] of the account in the XRP Ledger's [base58][] format. This is not the public key, but a hash-of-a-hash of it. It also has a checksum so a typo almost certainly results in an invalid address rather than a valid, but different address. This is the primary identifier of an account in the XRP Ledger. You tell people this to get paid, and use it in transactions to indicate who you are and who you're paying, trusting, and so forth. [Multi-signing lists](../../../../concepts/accounts/multi-signing.md) also use these to identify other signers. | | `public_key` | String | The public key of the key pair, in the XRP Ledger's [base58][] encoded string format. Derived from the `master_seed`. | | `public_key_hex` | String | This is the public key of the key pair, in hexadecimal. Derived from the `master_seed`. To validate the signature on a transaction, `rippled` needs this public key. That's why the format for a signed transaction includes the public key in the `SigningPubKey` field. | -| `warning` | String | (May be omitted) If the request specified a seed value, this field provides a warning that it may be insecure. [New in: rippled 0.32.0][] | +| `warning` | String | (May be omitted) If the request specified a seed value, this field provides a warning that it may be insecure. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | You can also use this method to generate a key pair to use as a regular key pair for an account. You assign a regular key pair to an account to be able to sign most transactions with it, while keeping your master key pair offline whenever possible. In addition to using it as a regular key pair, you can also use it as a member of a multi-signing list (SignerList). -For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html) +For more information about master and regular key pairs, see [Cryptographic Keys](../../../../concepts/accounts/cryptographic-keys.md) -For more information about multi-signing and signer lists, see [Multi-Signing](multi-signing.html). +For more information about multi-signing and signer lists, see [Multi-Signing](../../../../concepts/accounts/multi-signing.md). ### Possible Errors @@ -200,7 +200,4 @@ For more information about multi-signing and signer lists, see [Multi-Signing](m * `invalidParams` - One or more fields are specified incorrectly. * `badSeed` - The request specified a disallowed seed value (in the `passphrase`, `seed`, or `seed_hex` fields), such as an empty string, or a string resembling a XRP Ledger address. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md index af31748952..77520ff632 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md @@ -8,18 +8,17 @@ labels: # can_delete [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/CanDelete.cpp "Source") -The `can_delete` method informs the `rippled` server of the latest ledger version which may be deleted when using [online deletion with advisory deletion enabled](online-deletion.html#advisory-deletion). If advisory deletion is not enabled, this method does nothing. +The `can_delete` method informs the `rippled` server of the latest ledger version which may be deleted when using [online deletion with advisory deletion enabled](../../../../infrastructure/configuration/data-retention/online-deletion.md#advisory-deletion). If advisory deletion is not enabled, this method does nothing. -_The `can_delete` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `can_delete` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -27,9 +26,9 @@ An example of the request format: "can_delete": 11320417 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "can_delete", @@ -40,15 +39,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: can_delete [||now|always|never] rippled can_delete 11320417 ``` +{% /tab %} - +{% /tabs %} The request accepts the following parameter: @@ -77,10 +77,7 @@ Use this command with no parameter to query the existing `can_delete` setting. ## See Also -- [Online Deletion](online-deletion.html) -- [Configure Advisory Deletion](configure-advisory-deletion.html) +- [Online Deletion](../../../../infrastructure/configuration/data-retention/online-deletion.md) +- [Configure Advisory Deletion](../../../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md index 31faaac3dc..f1426842f9 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md @@ -8,18 +8,17 @@ labels: # crawl_shards [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/CrawlShards.cpp "Source") -Requests information from peer servers about which [shards of historical ledger data](history-sharding.html) they have available. [New in: rippled 1.2.0][] +Requests information from peer servers about which [shards of historical ledger data](../../../../infrastructure/configuration/data-retention/history-sharding.md) they have available. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}New in: rippled 1.2.0{% /badge %} -_The `crawl_shards` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `crawl_shards` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "crawl_shards", @@ -27,9 +26,9 @@ An example of the request format: "limit": 0 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "crawl_shards", @@ -41,8 +40,9 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} **Note:** There is no command-line syntax for this method. Use the [json method][] to access this from the command line. @@ -60,10 +60,9 @@ The request includes the following fields: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -84,10 +83,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} - -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -109,28 +107,28 @@ An example of a successful response: } } ``` +{% /tab %} - - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | |:------------------|:-------|:------------------------------------------------| -| `complete_shards` | String | _(May be omitted)_ The range of [history shards](history-sharding.html) that are available on the local server. This may be an empty string, or a disjointed range. For example, `1-2,5,7-9` indicates that shards 1, 2, 5, 7, 8, and 9 are available. Omitted if this server does not have history sharding enabled. | +| `complete_shards` | String | _(May be omitted)_ The range of [history shards](../../../../infrastructure/configuration/data-retention/history-sharding.md) that are available on the local server. This may be an empty string, or a disjointed range. For example, `1-2,5,7-9` indicates that shards 1, 2, 5, 7, 8, and 9 are available. Omitted if this server does not have history sharding enabled. | | `peers` | Array | _(May be omitted)_ List of **Peer Shard Objects** (see below) describing which history shards each peer has available. The response omits this field if no peers within the number of hops specified by `limit` have any shards. | #### Peer Shard Objects -Each member of the `peers` array of the response is an object that describes one server in the peer-to-peer network. The list only includes peers that have at least one complete [history shard](history-sharding.html) available. Each object in the array has the following fields: +Each member of the `peers` array of the response is an object that describes one server in the peer-to-peer network. The list only includes peers that have at least one complete [history shard](../../../../infrastructure/configuration/data-retention/history-sharding.md) available. Each object in the array has the following fields: | `Field` | Type | Description | |:----------|:-------|:--------------------------------------------------------| | `complete_shards` | String | The range of complete history shards this peer has available. This may be disjointed. For example, `1-2,5,7-9` indicates that shards 1, 2, 5, 7, 8, and 9 are available. | -| `incomplete_shards` | String | _(May be omitted)_ A comma-separated list of history shards this peer has partially downloaded, and percent completion for each. For example, `1:50,2:25` indicates that shard 1 is 50% downloaded and shard 2 is 25% downloaded. [New in: rippled 1.8.1][] | -| `public_key` | String | _(Omitted unless the request specified `"public_key": true`)_ The public key this peer uses for peer-to-peer communications, in the XRP Ledger's [base58 format](base58-encodings.html). | +| `incomplete_shards` | String | _(May be omitted)_ A comma-separated list of history shards this peer has partially downloaded, and percent completion for each. For example, `1:50,2:25` indicates that shard 1 is 50% downloaded and shard 2 is 25% downloaded. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | +| `public_key` | String | _(Omitted unless the request specified `"public_key": true`)_ The public key this peer uses for peer-to-peer communications, in the XRP Ledger's [base58 format](../../../protocol/data-types/base58-encodings.md). | -The `ip` field is no longer provided. [Removed in: rippled 1.8.1][] +The `ip` field is no longer provided. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}Removed in: rippled 1.8.1{% /badge %} ### Possible Errors @@ -139,8 +137,4 @@ The `ip` field is no longer provided. [Removed in: rippled 1.8.1][] - `invalidParams` - One or more required fields were omitted from the request, or a provided field was specified as the wrong data type. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md index 3fdf863a7a..de47d033ab 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md @@ -8,9 +8,9 @@ labels: # download_shard [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/DownloadShard.cpp "Source") -Instructs the server to download a specific [shard of historical ledger data](history-sharding.html) from an external source. Your `rippled` server must be [configured to store history shards](configure-history-sharding.html). [Updated in: rippled 1.6.0][] +Instructs the server to download a specific [shard of historical ledger data](../../../../infrastructure/configuration/data-retention/history-sharding.md) from an external source. Your `rippled` server must be [configured to store history shards](../../../../infrastructure/configuration/data-retention/configure-history-sharding.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}Updated in: rippled 1.6.0{% /badge %} -_The `download_shard` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `download_shard` method is an [admin method](../index.md) that cannot be run by unprivileged users._ The external source must provide the shard as an [lz4-compressed](https://lz4.github.io/lz4/) [tar archive](https://en.wikipedia.org/wiki/Tar_(computing)) served via HTTPS. The archive must contain the shard directory and data files in NuDB format. @@ -20,10 +20,9 @@ Downloading and importing shards using this method is usually faster than acquir An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "download_shard", @@ -34,9 +33,9 @@ An example of the request format: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "download_shard", @@ -51,15 +50,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh # Syntax: download_shard [[ ]] rippled download_shard 1 https://example.com/1.tar.lz4 2 https://example.com/2.tar.lz4 5 https://example.com/5.tar.lz4 ``` +{% /tab %} - +{% /tabs %} The request includes the following field: @@ -68,23 +68,22 @@ The request includes the following field: |:-----------|:--------|:------------------------------------------------------| | `shards` | Array | List of Shard Descriptor objects (see below) describing shards to download and where to download them from. | -The `validate` field is deprecated and may be removed in a future version. (The server always checks the integrity of shards when it imports them.) [Updated in: rippled 1.6.0][] +The `validate` field is deprecated and may be removed in a future version. (The server always checks the integrity of shards when it imports them.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}Updated in: rippled 1.6.0{% /badge %} Each **Shard Descriptor object** in the `shards` array has the following fields: | `Field` | Type | Description | |:--------|:-------|:----------------------------------------------------------| | `index` | Number | The index of the shard to retrieve. In the production XRP Ledger, the oldest shard has index 1 and contains ledgers 32750-32768. The next shard has index 2 and contains ledgers 32769-49152, and so on. | -| `url` | String | The URL where this shard can be downloaded. The URL must start with `http://` or `https://` and must end with `.tar.lz4` (not case-sensitive). The web server providing this download must use a valid TLS certificate signed by a trusted Certificate Authority (CA). (`rippled` uses the operating system's CA store.) [Updated in: rippled 1.7.0][] | +| `url` | String | The URL where this shard can be downloaded. The URL must start with `http://` or `https://` and must end with `.tar.lz4` (not case-sensitive). The web server providing this download must use a valid TLS certificate signed by a trusted Certificate Authority (CA). (`rippled` uses the operating system's CA store.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Updated in: rippled 1.7.0{% /badge %} | ### Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -94,10 +93,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} - -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -108,9 +106,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -122,8 +120,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -141,9 +140,4 @@ The response follows the [standard format][], with a successful result containin - `invalidParams` - One or more required fields were omitted from the request, or a provided field was specified as the wrong data type. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md index ef63931af6..895f2440fa 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md @@ -1,8 +1,12 @@ --- html: logging-and-data-management-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Logging and Data Management Methods -Use these methods to manage log levels and other data, such as ledgers. \ No newline at end of file +Use these methods to manage log levels and other data, such as ledgers. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md index fb4f8365fe..e898e4e37e 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md @@ -10,15 +10,14 @@ labels: The `ledger_cleaner` command controls the [Ledger Cleaner](https://github.com/XRPLF/rippled/blob/f313caaa73b0ac89e793195dcc2a5001786f916f/src/ripple/app/ledger/README.md#the-ledger-cleaner), an asynchronous maintenance process that can find and repair corruption in `rippled`'s database of ledgers. -_The `ledger_cleaner` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `ledger_cleaner` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "ledger_cleaner", @@ -27,8 +26,9 @@ An example of the request format: "stop": false } ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -46,10 +46,9 @@ The request includes the following parameters: An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json 200 OK @@ -61,8 +60,9 @@ An example of a successful response: } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -75,7 +75,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. * `internal` if one the parameters is specified incorrectly. (This is a bug; the intended error code is `invalidParams`.) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md index 6d85f7c94a..f5fe57bad4 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md @@ -10,15 +10,14 @@ labels: The `ledger_request` command tells server to fetch a specific ledger version from its connected peers. This only works if one of the server's immediately-connected peers has that ledger. You may need to run the command several times to completely fetch a ledger. -*The `ledger_request` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `ledger_request` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 102, @@ -26,14 +25,15 @@ An example of the request format: "ledger_index": 13800000 } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ``` rippled ledger_request 13800000 ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -52,10 +52,9 @@ The response follows the [standard format][]. However, the request returns a fai A failure response indicates the status of fetching the ledger. A successful response contains the information for the ledger in a similar format to the [ledger method][]. - - -*Commandline (failure)* +{% tabs %} +{% tab label="Commandline (failure)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -79,9 +78,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} -*Commandline (in-progress)* - +{% tab label="Commandline (in-progress)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -126,9 +125,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} -*Commandline (success)* - +{% tab label="Commandline (success)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -157,14 +156,15 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} The three possible response formats are as follows: 1. When returning a `lgrNotFound` error, the response has a field, `acquiring` with a [Ledger Request Object](#ledger-request-object) indicating the progress of fetching the ledger from the peer-to-peer network. 2. When the response shows the server is currently fetching the ledger, the body of the result is a [Ledger Request Object](#ledger-request-object) indicating the progress of fetching the ledger from the peer-to-peer network. -3. When the ledger is fully available, the response is a representation of the [ledger header](ledger-header.html). +3. When the ledger is fully available, the response is a representation of the [ledger header](../../../protocol/ledger-data/ledger-header.md). ### Ledger Request Object @@ -185,10 +185,7 @@ When the server is in the progress of fetching a ledger, but has not yet finishe - Any of the [universal error types][]. - `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. This error can also occur if you specify a ledger index equal or higher than the current in-progress ledger. -- `lgrNotFound` - If the ledger is not yet available. This indicates that the server has started fetching the ledger, although it may fail if none of its connected peers have the requested ledger. (Previously, this error used the code `ledgerNotFound` instead.) [Updated in: rippled 0.30.1][] +- `lgrNotFound` - If the ledger is not yet available. This indicates that the server has started fetching the ledger, although it may fail if none of its connected peers have the requested ledger. (Previously, this error used the code `ledgerNotFound` instead.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}Updated in: rippled 0.30.1{% /badge %} - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md index 3fb0dc86a9..8181e90099 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md @@ -10,15 +10,14 @@ labels: The `log_level` command changes the `rippled` server's logging verbosity, or returns the current logging level for each category (called a _partition_) of log messages. -_The `log_level` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `log_level` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "ll1", @@ -27,15 +26,16 @@ An example of the request format: "partition": "PathRequest" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: log_level [[partition] severity] rippled log_level PathRequest debug ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -48,10 +48,9 @@ The request includes the following parameters: Examples of successful responses: - - -*Commandline (set log level)* +{% tabs %} +{% tab label="Commandline (set log level)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -62,9 +61,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} -*Commandline (check log levels)* - +{% tab label="Commandline (check log levels)" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -127,8 +126,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][]. The response format depends on whether the request specified a `severity`. If it did, the log level is changed and a successful result contains no additional fields. @@ -143,7 +143,4 @@ Otherwise, the response contains the following field: * Any of the [universal error types][]. * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md index 9374065b02..e0eeb1edf4 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md @@ -34,34 +34,34 @@ The following script is a sample that can be created as `/etc/logrotate.d/ripple You can configure parameters such as `minsize` and `rotate` depending on the amount of logs you keep. Use the `log_level` setting in your `rippled.cfg` file to configure how verbose your server's logs are. This sample script is based on standard `log_level` and stores approximately 2 weeks worth of logs in a compressed format. -The official packages [for CentOS/Red Hat](install-rippled-on-centos-rhel-with-yum.html) and [Ubuntu or Debian](install-rippled-on-ubuntu.html) provide the script `/etc/logrotate.d/rippled` by default. You can make modifications to this as required. Your modifications will not be overwritten on package upgrades. +The official packages [for CentOS/Red Hat](../../../../infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md) and [Ubuntu or Debian](../../../../infrastructure/installation/install-rippled-on-ubuntu.md) provide the script `/etc/logrotate.d/rippled` by default. You can make modifications to this as required. Your modifications will not be overwritten on package upgrades. **Note:** You should have only one system log rotation script per application. Please ensure that you do not have any other log rotation that handles the same directory. -_The `logrotate` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `logrotate` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "lr1", "command": "logrotate" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: logrotate rippled logrotate ``` +{% /tab %} - +{% /tabs %} The request includes no parameters. @@ -69,10 +69,9 @@ The request includes no parameters. An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json 200 OK @@ -84,9 +83,9 @@ An example of a successful response: } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -99,8 +98,9 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -112,7 +112,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md index fd80518bde..78c0098d8e 100644 --- a/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md +++ b/content/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md @@ -8,45 +8,45 @@ labels: # node_to_shard [[Source]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/rpc/handlers/NodeToShard.cpp "Source") -The `{{currentpage.name}}` method manages copying data from the ledger store to the [shard store](history-sharding.html). It can start, stop, or check the status of copying the data. +The {% code-page-name /%} method manages copying data from the ledger store to the [shard store](../../../../infrastructure/configuration/data-retention/history-sharding.md). It can start, stop, or check the status of copying the data. -_The `{{currentpage.name}}` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "action": "start" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "action": "start" }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh -#Syntax: {{currentpage.name}} start|stop|status -rippled {{currentpage.name}} start +#Syntax: {% $frontmatter.seo.title %} start|stop|status +rippled {% $frontmatter.seo.title %} start ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -59,10 +59,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -72,9 +71,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -84,9 +83,9 @@ An example of a successful response: } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -99,8 +98,9 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -113,10 +113,7 @@ The response follows the [standard format][], with a successful result containin - Any of the [universal error types][]. - `internal` - If you attempt an invalid operation like checking the status of a copy when one isn't running. -- `notEnabled` - If the server is not configured to store [history shards](history-sharding.html). +- `notEnabled` - If the server is not configured to store [history shards](../../../../infrastructure/configuration/data-retention/history-sharding.md). - `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md index 50df98345b..094134e0cb 100644 --- a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +++ b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md @@ -10,15 +10,14 @@ labels: The `connect` command forces the `rippled` server to connect to a specific peer `rippled` server. -*The `connect` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `connect` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "connect", @@ -26,9 +25,9 @@ An example of the request format: "port": 51235 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "connect", @@ -40,32 +39,31 @@ An example of the request format: ] } ``` +{% /tab %} - -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: connect ip [port] rippled connect 192.170.145.88 51235 ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: | `Field` | Type | Description | |:--------|:-------|:----------------------------------------------------------| | `ip` | String | IP address of the server to connect to | -| `port` | Number | _(Optional)_ Port number to use when connecting. The default is **2459**. [Updated in: rippled 1.6.0][] | +| `port` | Number | _(Optional)_ Port number to use when connecting. The default is **2459**. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}Updated in: rippled 1.6.0{% /badge %} | ### Response Format An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -74,9 +72,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -88,8 +86,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -104,7 +103,4 @@ The response follows the [standard format][], with a successful result containin - Cannot connect in stand-alone mode - Network-related commands are disabled in stand-alone mode. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md index c1d6665db4..530b550e2c 100644 --- a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md +++ b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md @@ -1,8 +1,12 @@ --- html: peer-management-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Peer Management Methods -Use these methods to manage your server's peer-to-peer connections. \ No newline at end of file +Use these methods to manage your server's peer-to-peer connections. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md index ad53b5611b..34f6c122b9 100644 --- a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +++ b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md @@ -8,48 +8,48 @@ labels: # peer_reservations_add [[Source]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L36 "Source") -The `{{currentpage.name}}` method adds or updates a reserved slot for a specific peer server in the XRP Ledger [peer-to-peer network](peer-protocol.html). [New in: rippled 1.4.0][] +The {% code-page-name /%} method adds or updates a reserved slot for a specific peer server in the XRP Ledger [peer-to-peer network](../../../../concepts/networks-and-servers/peer-protocol.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} -_The `{{currentpage.name}}` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_add_example_1", - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", "description": "Ripple s1 server 'WOOL'" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", "description": "Ripple s1 server 'WOOL'" }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh -#Syntax: {{currentpage.name}} [] -rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 "Ripple s1 server 'WOOL'" +#Syntax: {% $frontmatter.seo.title %} [] +rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 "Ripple s1 server 'WOOL'" ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -64,10 +64,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_add_example_1", @@ -81,9 +80,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -95,9 +94,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -112,8 +111,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -127,8 +127,8 @@ If there was not a previous entry for the same [node public key][], the `result` If the `previous` field is provided, it shows the previous status of this peer reservation, with the following fields: -{% include '_snippets/peer_reservation_object.md' %} - +{% partial file="/_snippets/peer_reservation_object.md" /%} + ### Possible Errors @@ -138,7 +138,4 @@ If the `previous` field is provided, it shows the previous status of this peer r - `publicMalformed` - The `public_key` field of the request is not valid. It must be a valid node public key in [base58][] format. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md index 295ba73458..2083d6f538 100644 --- a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +++ b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md @@ -8,9 +8,9 @@ labels: # peer_reservations_del [[Source]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L89 "Source") -The `{{currentpage.name}}` method removes a specific [peer reservation][], if one exists. [New in: rippled 1.4.0][] +The {% code-page-name /%} method removes a specific [peer reservation][], if one exists. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} -_The `{{currentpage.name}}` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ **Note:** Removing a peer reservation does not automatically disconnect the corresponding peer, if that peer is connected. @@ -18,37 +18,37 @@ _The `{{currentpage.name}}` method is an [admin method](admin-api-methods.html) An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_del_example_1", - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh -#Syntax: {{currentpage.name}} -rippled {{currentpage.name}} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 +#Syntax: {% $frontmatter.seo.title %} +rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 ``` +{% /tab %} - +{% /tabs %} The request includes the following parameter: @@ -61,10 +61,9 @@ The request includes the following parameter: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_del_example_1", @@ -78,9 +77,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -92,9 +91,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -109,8 +108,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -124,8 +124,8 @@ The response follows the [standard format][], with a successful result containin If the `previous` field is provided, it shows the previous status of this peer reservation, with the following fields: -{% include '_snippets/peer_reservation_object.md' %} - +{% partial file="/_snippets/peer_reservation_object.md" /%} + ### Possible Errors @@ -134,7 +134,4 @@ If the `previous` field is provided, it shows the previous status of this peer r - `publicMalformed` - The `public_key` field of the request is not valid. It must be a valid node public key in [base58][] format. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md index 575b269a4d..33afc21e79 100644 --- a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +++ b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md @@ -8,42 +8,42 @@ labels: # peer_reservations_list [[Source]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L116 "Source") -The `{{currentpage.name}}` method lists [peer reservations][]. [New in: rippled 1.4.0][] +The {% code-page-name /%} method lists [peer reservations][]. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} -_The `{{currentpage.name}}` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_list_example_1", - "command": "{{currentpage.name}}" + "command": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}" + "method": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh -#Syntax: {{currentpage.name}} -rippled {{currentpage.name}} +#Syntax: {% $frontmatter.seo.title %} +rippled {% $frontmatter.seo.title %} ``` +{% /tab %} - +{% /tabs %} This request does not take any parameters. @@ -52,10 +52,9 @@ This request does not take any parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peer_reservations_list_example_1", @@ -74,9 +73,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -93,9 +92,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" 2019-Dec-27 21:56:07.253260422 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -115,8 +114,9 @@ Loading: "/etc/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -128,15 +128,12 @@ The response follows the [standard format][], with a successful result containin Each member of the `reservations` array is a JSON object describing one [peer reservation][]. This object has the following fields: -{% include '_snippets/peer_reservation_object.md' %} - +{% partial file="/_snippets/peer_reservation_object.md" /%} + ### Possible Errors - Any of the [universal error types][]. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md index 86d6d1c937..820e57da72 100644 --- a/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +++ b/content/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md @@ -8,31 +8,31 @@ labels: # peers [[Source]](https://github.com/XRPLF/rippled/blob/52f298f150fc1530d201d3140c80d3eaf781cb5f/src/ripple/rpc/handlers/Peers.cpp "Source") -The `peers` command returns a list of all other `rippled` servers currently connected to this one over the [Peer Protocol](peer-protocol.html), including information on their connection and sync status. +The `peers` command returns a list of all other `rippled` servers currently connected to this one over the [Peer Protocol](../../../../concepts/networks-and-servers/peer-protocol.md), including information on their connection and sync status. -*The `peers` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `peers` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, "command": "peers" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ``` rippled peers ``` +{% /tab %} - +{% /tabs %} The request includes no additional parameters. @@ -40,10 +40,9 @@ The request includes no additional parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "peers_example", @@ -178,9 +177,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -270,9 +269,9 @@ An example of a successful response: } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -364,14 +363,15 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing a JSON object with the following fields: | `Field` | Type | Description | |:----------|:-------|:--------------------------------------------------------| -| `cluster` | Object | Summary of other `rippled` servers in the same cluster, if [configured as a cluster](clustering.html). [New in: rippled 0.30.1][] | +| `cluster` | Object | Summary of other `rippled` servers in the same cluster, if [configured as a cluster](../../../../concepts/networks-and-servers/clustering.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}New in: rippled 0.30.1{% /badge %} | | `peers` | Array | Array of peer objects. | Each field of the `cluster` object is the public key of that `rippled` server's identifying key pair. (This is the same value that that server returns as `pubkey_node` in the [server_info method][].) The contents of that field are an object with the following fields: @@ -379,7 +379,7 @@ Each field of the `cluster` object is the public key of that `rippled` server's | `Field` | Type | Description | |:--------|:-------|:----------------------------------------------------------| | `tag` | String | The display name for this cluster member as defined in the config file. | -| `fee` | Number | _(May be omitted)_ The load multiplier this cluster member is applying to the [transaction cost](transaction-cost.html) | +| `fee` | Number | _(May be omitted)_ The load multiplier this cluster member is applying to the [transaction cost](../../../../concepts/transactions/transaction-cost.md) | | `age` | Number | The number of seconds since the last cluster report from this cluster member. | Each member of the `peers` array is a peer object with the following fields: @@ -395,11 +395,11 @@ Each member of the `peers` array is a peer object with the following fields: | `ledger` | String | The identifying [hash][Hash] of the peer's most recently closed ledger | | `load` | Number | A measure of the amount of load the peer server is putting on the local server. Larger numbers indicate more load. (The units by which load is measured are not formally defined.) | | `protocol` | String | _(May be omitted)_ The protocol version that the peer is using, if not the same as the local server. | -| `metrics` | Object | Details on the amount of data sent to and received from this peer. See the description of the `metrics` object below for details. [New in: rippled 1.4.0][] | +| `metrics` | Object | Details on the amount of data sent to and received from this peer. See the description of the `metrics` object below for details. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} | | `public_key` | String | _(May be omitted)_ A public key that can be used to verify the integrity of the peer's messages. This is not the same key that is used for validations, but it follows the same format. | -| `sanity` | String | _(May be omitted)_ Whether this peer is following the same rules and ledger history as the current server. A value of `insane` probably indicates that the peer is part of a [parallel network](parallel-networks.html). The value `unknown` indicates that the current server is unsure whether the peer is compatible. | +| `sanity` | String | _(May be omitted)_ Whether this peer is following the same rules and ledger history as the current server. A value of `insane` probably indicates that the peer is part of a [parallel network](../../../../concepts/networks-and-servers/parallel-networks.md). The value `unknown` indicates that the current server is unsure whether the peer is compatible. | | `status` | String | _(May be omitted)_ The most recent status message from the peer. Could be `connecting`, `connected`, `monitoring`, `validating`, or `shutting`. | -| `uptime` | Number | The number of seconds that your `rippled` server has been continuously connected to this peer. [New in: rippled 0.30.1][] | +| `uptime` | Number | The number of seconds that your `rippled` server has been continuously connected to this peer. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}New in: rippled 0.30.1{% /badge %} | | `version` | string | _(May be omitted)_ The `rippled` version number of the peer server | The `metrics` object contains the following fields: @@ -418,7 +418,4 @@ The `metrics` object contains the following fields: - Any of the [universal error types][]. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md index 6b506cab1d..bf6c4ddc4f 100644 --- a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md +++ b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md @@ -1,8 +1,12 @@ --- html: server-control-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Server Control Methods -Use these methods to manage the rippled server. \ No newline at end of file +Use these methods to manage the rippled server. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md index d7463bb7a1..38026659e6 100644 --- a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +++ b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md @@ -10,31 +10,31 @@ labels: The `ledger_accept` method forces the server to close the current-working ledger and move to the next ledger number. This method is intended for testing purposes only, and is only available when the `rippled` server is running stand-alone mode. -*The `ledger_accept` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `ledger_accept` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "Accept my ledger!", "command": "ledger_accept" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: ledger_accept rippled ledger_accept ``` +{% /tab %} - +{% /tabs %} The request accepts no parameters. @@ -65,7 +65,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. * `notStandAlone` - If the `rippled` server is not currently running in stand-alone mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md index 08f9bda0ee..e02e3380bd 100644 --- a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +++ b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md @@ -10,24 +10,23 @@ labels: Gracefully shuts down the server. -*The `stop` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `stop` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, "command": "stop" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "stop", @@ -36,15 +35,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: stop rippled stop ``` +{% /tab %} - +{% /tabs %} The request includes no parameters. @@ -52,10 +52,9 @@ The request includes no parameters. An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -64,9 +63,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -78,8 +77,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -91,7 +91,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md index 559ed7523d..6a9639f9ca 100644 --- a/content/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +++ b/content/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md @@ -10,17 +10,16 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ValidationSeed.cpp "Source") -The `validation_seed` command temporarily sets the secret value that rippled uses to sign validations. This value resets based on the config file when you restart the server. [Disabled since: rippled 0.29.1](https://github.com/XRPLF/rippled/releases/tag/0.29.1-rc1 "BADGE_RED") +The `validation_seed` command temporarily sets the secret value that rippled uses to sign validations. This value resets based on the config file when you restart the server. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.1-rc1" %}Disabled since: rippled 0.29.1{% /badge %} -*The `validation_seed` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `validation_seed` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "set_seed_1", @@ -28,15 +27,16 @@ An example of the request format: "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: validation_seed [secret] rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -48,10 +48,9 @@ The request includes the following parameters: An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json 200 OK @@ -64,9 +63,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -80,8 +79,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -96,7 +96,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. * `badSeed` - The request provided an invalid secret value. This usually means that the secret value appears to be a valid string of a different format, such as an account address or validation public key. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/signing-methods/index.md b/content/references/http-websocket-apis/admin-api-methods/signing-methods/index.md index a05d144c9d..5ec2501748 100644 --- a/content/references/http-websocket-apis/admin-api-methods/signing-methods/index.md +++ b/content/references/http-websocket-apis/admin-api-methods/signing-methods/index.md @@ -1,8 +1,12 @@ --- html: signing-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Signing Methods -Use these methods to work with transactions. \ No newline at end of file +Use these methods to work with transactions. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md b/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md index 067168d410..3d7627f9f7 100644 --- a/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +++ b/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md @@ -8,20 +8,19 @@ labels: # sign [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/SignHandler.cpp "Source") -The `sign` method takes a [transaction in JSON format](transaction-formats.html) and a [seed value](cryptographic-keys.html), and returns a signed binary representation of the transaction. To contribute one signature to a [multi-signed transaction](multi-signing.html), use the [sign_for method][] instead. +The `sign` method takes a [transaction in JSON format](../../../protocol/transactions/index.md) and a [seed value](../../../../concepts/accounts/cryptographic-keys.md), and returns a signed binary representation of the transaction. To contribute one signature to a [multi-signed transaction](../../../../concepts/accounts/multi-signing.md), use the [sign_for method][] instead. -{% include '_snippets/public-signing-note.md' %} - +{% partial file="/_snippets/public-signing-note.md" /%} -**Caution:** Unless you run the `rippled` server yourself, you should do local signing using a [client library](client-libraries.html) instead of using this command. For more information, see [Set Up Secure Signing](secure-signing.html). + +**Caution:** Unless you run the `rippled` server yourself, you should do local signing using a [client library](../../../client-libraries.md) instead of using this command. For more information, see [Set Up Secure Signing](../../../../concepts/transactions/secure-signing.md). ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -41,9 +40,9 @@ An example of the request format: "fee_mult_max": 1000 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign", @@ -66,17 +65,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: sign secret tx_json [offline] rippled sign s████████████████████████████ '{"TransactionType": "Payment", "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "Amount": { "currency": "USD", "value": "1", "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Sequence": 360, "Fee": "10000"}' offline ``` +{% /tab %} - +{% /tabs %} -To sign a transaction, you must provide a secret key that can [authorize the transaction](transactions.html#authorizing-transactions). Typically you provide a seed value that the server derives the secret key from. You can do this in a few ways: +To sign a transaction, you must provide a secret key that can [authorize the transaction](../../../../concepts/transactions/index.md#authorizing-transactions). Typically you provide a seed value that the server derives the secret key from. You can do this in a few ways: * Provide the seed in the `secret` field and omit the `key_type` field. This value can be formatted as an XRP Ledger [base58][] seed, RFC-1751, hexadecimal, or as a string passphrase. (secp256k1 keys only) * Provide a `key_type` value and exactly one of `seed`, `seed_hex`, or `passphrase`. Omit the `secret` field. (Not supported by the commandline syntax.) @@ -85,25 +85,25 @@ The request includes the following parameters: | `Field` | Type | Description | |:---------------|:--------|:--------------------------------------------------| -| `tx_json` | Object | [Transaction definition](transaction-formats.html) in JSON format | +| `tx_json` | Object | [Transaction definition](../../../protocol/transactions/index.md) in JSON format | | `secret` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | | `seed` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | | `seed_hex` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | | `passphrase` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | -| `key_type` | String | _(Optional)_ The [signing algorithm](cryptographic-keys.html#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. | +| `key_type` | String | _(Optional)_ The [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. | | `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to [automatically fill](#auto-fillable-fields) any transaction details. The default is `false`. | -| `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](transaction-common-fields.html#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](direct-xrp-payments.html) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/XRPLF/rippled/issues/3272)) | -| `fee_mult_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | -| `fee_div_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. [New in: rippled 0.30.1][] | +| `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](../../../protocol/transactions/common-fields.md#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](../../../../concepts/payment-types/direct-xrp-payments.md) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/XRPLF/rippled/issues/3272)) | +| `fee_mult_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | +| `fee_div_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}New in: rippled 0.30.1{% /badge %} | ### Auto-Fillable Fields -The server automatically tries to fill in certain fields in `tx_json` (the [Transaction object](transaction-formats.html)) automatically if you omit them. The server provides the following fields before signing, unless the request specified `offline` as `true`: +The server automatically tries to fill in certain fields in `tx_json` (the [Transaction object](../../../protocol/transactions/index.md)) automatically if you omit them. The server provides the following fields before signing, unless the request specified `offline` as `true`: * `Sequence` - The server automatically uses the next Sequence number from the sender's account information. * **Caution:** The next sequence number for the account is not incremented until this transaction is applied. If you sign multiple transactions without submitting and waiting for the response to each one, you must manually provide the correct sequence numbers for each transaction after the first. * `Fee` - If you omit the `Fee` parameter, the server tries to fill in an appropriate transaction cost automatically. On the production XRP Ledger, this fails with `rpcHIGH_FEE` unless you provide an appropriate `fee_mult_max` value. - * The `fee_mult_max` and `fee_div_max` parameters limit how high the automatically-provided transaction cost can be, in terms of the load-scaling multiplier that gets applied to the [reference transaction cost](transaction-cost.html#reference-transaction-cost). The default settings return an error if the automatically-provided value would use greater than a 10× multiplier. However, the production XRP Ledger [typically has a 1000× load multiplier](transaction-cost.html#current-transaction-cost). + * The `fee_mult_max` and `fee_div_max` parameters limit how high the automatically-provided transaction cost can be, in terms of the load-scaling multiplier that gets applied to the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost). The default settings return an error if the automatically-provided value would use greater than a 10× multiplier. However, the production XRP Ledger [typically has a 1000× load multiplier](../../../../concepts/transactions/transaction-cost.md#current-transaction-cost). * The commandline syntax does not support `fee_mult_max` and `fee_div_max`. For the production XRP Ledger, you must provide a `Fee` value. * **Caution:** A malicious server can specify an excessively high transaction cost, ignoring the values of `fee_mult_max` and `fee_div_max`. * `Paths` - For Payment-type transactions (excluding XRP-to-XRP transfers), the Paths field can be automatically filled, as if you used the [ripple_path_find method][]. Only filled if `build_path` is provided. @@ -112,10 +112,9 @@ The server automatically tries to fill in certain fields in `tx_json` (the [Tran An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -142,9 +141,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -171,9 +170,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -201,15 +200,16 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | |:----------|:-------|:--------------------------------------------------------| | `tx_blob` | String | Binary representation of the fully-qualified, signed transaction, as hex | -| `tx_json` | Object | JSON specification of the [complete transaction](transaction-formats.html) as signed, including any fields that were automatically filled in | +| `tx_json` | Object | JSON specification of the [complete transaction](../../../protocol/transactions/index.md) as signed, including any fields that were automatically filled in | **Caution:** If this command results in an error messages, the message can contain a secret value provided in the request. Make sure that these errors are not visible to others. @@ -225,8 +225,4 @@ The response follows the [standard format][], with a successful result containin * `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. * `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md b/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md index fd61d8cde4..47f502c521 100644 --- a/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +++ b/content/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md @@ -8,20 +8,19 @@ labels: # sign_for [[Source]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/SignFor.cpp "Source") -The `sign_for` command provides one signature for a [multi-signed transaction](multi-signing.html). +The `sign_for` command provides one signature for a [multi-signed transaction](../../../../concepts/accounts/multi-signing.md). -{% include '_snippets/public-signing-note.md' %} - +{% partial file="/_snippets/public-signing-note.md" /%} -This command requires the [MultiSign amendment][] to be enabled. [New in: rippled 0.31.0][] + +This command requires the [MultiSign amendment][] to be enabled. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}New in: rippled 0.31.0{% /badge %} ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "sign_for_example", @@ -44,9 +43,9 @@ An example of the request format: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign_for", @@ -70,9 +69,9 @@ An example of the request format: }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: rippled sign_for [offline] rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s████████████████████████████ '{ @@ -89,15 +88,16 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ "Fee": "30000" }' ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: | `Field` | Type | Description | |:-------------|:---------------------|:---------------------------------------| | `account` | String - [Address][] | The address which is providing the signature. | -| `tx_json` | Object | The [Transaction](transaction-formats.html) to sign. Unlike using the [sign method][], all fields of the transaction must be provided, including `Fee` and `Sequence`. The transaction must include the field `SigningPubKey` with an empty string as the value. The object may optionally contain a `Signers` array with previously-collected signatures. | +| `tx_json` | Object | The [Transaction](../../../protocol/transactions/index.md) to sign. Unlike using the [sign method][], all fields of the transaction must be provided, including `Fee` and `Sequence`. The transaction must include the field `SigningPubKey` with an empty string as the value. The object may optionally contain a `Signers` array with previously-collected signatures. | | `secret` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | | `seed` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | | `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | @@ -113,10 +113,9 @@ You must provide **exactly 1 field** with the secret key, which can be either of An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "sign_for_example", @@ -150,9 +149,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -186,9 +185,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -223,15 +222,16 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | |:----------|:-------|:--------------------------------------------------------| -| `tx_blob` | String | Hexadecimal representation of the signed transaction, including the newly-added signature. If it has enough signatures, you can [submit this string using the `submit` method](submit.html#submit-only-mode). | -| `tx_json` | Object | The [transaction specification](transaction-formats.html) in JSON format, with the newly-added signature in the `Signers` array. If it has enough signatures, you can submit this object using the [submit_multisigned method][]. | +| `tx_blob` | String | Hexadecimal representation of the signed transaction, including the newly-added signature. If it has enough signatures, you can [submit this string using the `submit` method](../../public-api-methods/transaction-methods/submit.md#submit-only-mode). | +| `tx_json` | Object | The [transaction specification](../../../protocol/transactions/index.md) in JSON format, with the newly-added signature in the `Signers` array. If it has enough signatures, you can submit this object using the [submit_multisigned method][]. | ## Possible Errors @@ -242,6 +242,4 @@ The response follows the [standard format][], with a successful result containin * `badSeed` - The seed value supplied was invalidly-formatted. * `badSecret` - The secret value supplied was invalidly-formatted. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md index 5cc88dcd53..5c0bd93bfa 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md @@ -9,26 +9,25 @@ labels: # consensus_info [[Source]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ConsensusInfo.cpp "Source") -The `consensus_info` command provides information about the [consensus process](consensus.html) for debugging purposes. +The `consensus_info` command provides information about the [consensus process](../../../../concepts/consensus-protocol/index.md) for debugging purposes. -_The `consensus_info` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `consensus_info` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 99, "command": "consensus_info" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "consensus_info", @@ -37,15 +36,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: consensus_info rippled consensus_info ``` +{% /tab %} - +{% /tabs %} The request has no parameters. @@ -53,10 +53,9 @@ The request has no parameters. An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -129,9 +128,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -207,8 +206,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -220,7 +220,7 @@ The following is an incomplete summary of fields that may be contained in the `i | `Field` | Type | Description | |:-----------------|:--------|:------------------------------------------------| -| `ledger_seq` | Number | The [ledger index][Ledger Index] of the [ledger](ledgers.html) currently in the consensus process | +| `ledger_seq` | Number | The [ledger index][Ledger Index] of the [ledger](../../../../concepts/ledgers/index.md) currently in the consensus process | | `our_position` | Object | This server's expectation for the ledger in the consensus process. | | `peer_positions` | Object | Map of peers and their proposed versions of the ledger in the consensus process. | | `proposers` | Number | The number of trusted validators participating in this consensus process. Which validators are trusted depends on this server's configuration. | @@ -237,7 +237,4 @@ The results of the `consensus_info` command can vary dramatically if you run it - Any of the [universal error types][]. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md index d04b73eacc..776f167254 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md @@ -9,28 +9,27 @@ labels: # feature [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Feature1.cpp "Source") -The `feature` command returns information about [amendments](amendments.html) this server knows about, including whether they are enabled and whether the server is voting in favor of those amendments in the [amendment process](amendments.html#amendment-process). [New in: rippled 0.31.0][] +The `feature` command returns information about [amendments](../../../../concepts/networks-and-servers/amendments.md) this server knows about, including whether they are enabled and whether the server is voting in favor of those amendments in the [amendment process](../../../../concepts/networks-and-servers/amendments.md#amendment-process). {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}New in: rippled 0.31.0{% /badge %} -You can use the `feature` command to configure the server to vote against or in favor of an amendment. This change persists even if you restart the server. [Updated in: rippled 1.7.0][] +You can use the `feature` command to configure the server to vote against or in favor of an amendment. This change persists even if you restart the server. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Updated in: rippled 1.7.0{% /badge %} -_The `feature` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `feature` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket - list all* +{% tabs %} +{% tab label="WebSocket - list all" %} ```json { "id": "list_all_features", "command": "feature" } ``` +{% /tab %} -*WebSocket - reject* - +{% tab label="WebSocket - reject" %} ```json { "id": "reject_multi_sign", @@ -39,9 +38,9 @@ An example of the request format: "vetoed": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "feature", @@ -53,22 +52,23 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: feature [ [accept|reject]] rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 accept ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: | `Field` | Type | Description | |:----------|:--------|:-------------------------------------------------------| | `feature` | String | _(Optional)_ The unique ID of an amendment, as hexadecimal; or the short name of the amendment. If provided, limits the response to one amendment. Otherwise, the response lists all amendments. | -| `vetoed` | Boolean | _(Optional; ignored unless `feature` also specified)_ If `true`, instructs the server to vote against the amendment specified by `feature`. If false, instructs the server to vote in favor of the amendment. On the commandline, use 'accept' or 'reject rather than 'true' or 'false'. You cannot vote in favor of an amendment that is marked as _obsolete_ in the server's source code. [Updated in: rippled 1.11.0][] | +| `vetoed` | Boolean | _(Optional; ignored unless `feature` also specified)_ If `true`, instructs the server to vote against the amendment specified by `feature`. If false, instructs the server to vote in favor of the amendment. On the commandline, use 'accept' or 'reject rather than 'true' or 'false'. You cannot vote in favor of an amendment that is marked as _obsolete_ in the server's source code. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | **Note:** You can configure your server to vote in favor of a new amendment, even if the server does not currently know how to apply that amendment, by specifying the amendment ID in the `feature` field. For example, you might want to do this if you plan to upgrade soon to a new `rippled` version that _does_ support the amendment. @@ -76,10 +76,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket - list all* +{% tabs %} +{% tab label="WebSocket - list all" %} ```json { "id": "list_all_features", @@ -121,9 +120,9 @@ An example of a successful response: } } ``` +{% /tab %} -*WebSocket - reject* - +{% tab label="WebSocket - reject" %} ```json { "id": "reject_multi_sign", @@ -141,9 +140,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -159,9 +158,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -178,8 +177,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing **a map of amendments** as a JSON object. The keys of the object are amendment IDs. The values for each key are _amendment objects_ that describe the status of the amendment with that ID. If the request specified a `feature`, the map contains only the requested amendment object, after applying any changes from the request. Each amendment object has the following fields: @@ -187,8 +187,8 @@ The response follows the [standard format][], with a successful result containin |:------------|:--------|:-----------------------------------------------------| | `enabled` | Boolean | Whether this amendment is currently enabled in the latest ledger. | | `name` | String | (May be omitted) The human-readable name for this amendment, if known. | -| `supported` | Boolean | Whether the server knows how to apply this amendment. If this field is set to `false` (the server does not know how to apply this amendment) and `enabled` is set to `true` (this amendment is enabled in the latest ledger), this amendment may cause your server to be [amendment blocked](amendments.html#amendment-blocked-servers). | -| `vetoed` | Boolean or String | For most amendments, this is a boolean value indicating whether the server has been instructed to vote against this amendment. For amendments that are marked as obsolete in the code, this is the string `Obsolete` instead. [Updated in: rippled 1.11.0][] | +| `supported` | Boolean | Whether the server knows how to apply this amendment. If this field is set to `false` (the server does not know how to apply this amendment) and `enabled` is set to `true` (this amendment is enabled in the latest ledger), this amendment may cause your server to be [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). | +| `vetoed` | Boolean or String | For most amendments, this is a boolean value indicating whether the server has been instructed to vote against this amendment. For amendments that are marked as obsolete in the code, this is the string `Obsolete` instead. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | **Caution:** The `name` for an amendment does not strictly indicate what that amendment does. The name is not guaranteed to be unique or consistent across servers. @@ -198,7 +198,4 @@ The response follows the [standard format][], with a successful result containin - `badFeature` - The `feature` specified was invalidly formatted, or the server does not know an amendment with that name. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md index e16bee3c20..23a23db479 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md @@ -10,15 +10,14 @@ labels: The `fetch_info` command returns information about objects that this server is currently fetching from the network, and how many peers have that information. It can also be used to reset current fetches. -_The `fetch_info` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `fetch_info` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 91, @@ -26,9 +25,9 @@ An example of the request format: "clear": false } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "fetch_info", @@ -39,15 +38,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: fetch_info [clear] rippled fetch_info ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -59,10 +59,9 @@ The request includes the following parameters: An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -98,9 +97,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -139,8 +138,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -164,7 +164,4 @@ The fields describing a fetch in progress are subject to change without notice. - Any of the [universal error types][]. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md index ce716449c0..7a761a8a0b 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md @@ -10,15 +10,14 @@ labels: The `get_counts` command provides various stats about the health of the server, mostly the number of objects of different types that it currently holds in memory. -_The `get_counts` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The `get_counts` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 90, @@ -26,9 +25,9 @@ An example of the request format: "min_count": 100 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "get_counts", @@ -39,15 +38,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: get_counts [min_count] rippled get_counts 100 ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -59,10 +59,9 @@ The request includes the following parameters: An example of a successful response: - - -*JSON-RPC* +{% tabs %} +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -97,9 +96,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -137,8 +136,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][]. The list of fields contained in the result is subject to change without notice, but it may contain any of the following (among others): @@ -155,7 +155,4 @@ For most other entries, the value indicates the number of objects of that type c * Any of the [universal error types][]. * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md index 00330a40a2..afebdfc473 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md @@ -1,8 +1,12 @@ --- html: status-and-debugging-methods.html parent: admin-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Status and Debugging Methods -Use these methods to check the status of the network and server. \ No newline at end of file +Use these methods to check the status of the network and server. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md index 5cf95820f6..076f314021 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md @@ -10,29 +10,29 @@ labels: The `print` command returns the current status of various internal subsystems, including peers, the ledger cleaner, and the resource manager. -*The `print` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `print` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "print_req_1", "command": "print" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ``` rippled print ``` +{% /tab %} - +{% /tabs %} The request includes no parameters. @@ -40,10 +40,9 @@ The request includes no parameters. An example of a successful response: - - -*Commandline* +{% tabs %} +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -229,8 +228,9 @@ Connecting to 127.0.0.1:5005 } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][]. Additional fields in the result depend on the internal state of the `rippled` server. The results of this command are subject to change without notice. @@ -238,7 +238,4 @@ The response follows the [standard format][]. Additional fields in the result de * Any of the [universal error types][]. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md index 1e3a9d2068..ab2d234f9b 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md @@ -9,41 +9,41 @@ labels: # validator_info [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ValidatorInfo.cpp "Source") -The `{{currentpage.name}}` method returns the current validator settings of the server, if it is configured as a validator. +The {% code-page-name /%} method returns the current validator settings of the server, if it is configured as a validator. -_The `{{currentpage.name}}` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ +_The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}" + "command": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}" + "method": "{% $frontmatter.seo.title %}" } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh -#Syntax: {{currentpage.name}} -rippled {{currentpage.name}} +#Syntax: {% $frontmatter.seo.title %} +rippled {% $frontmatter.seo.title %} ``` +{% /tab %} - +{% /tabs %} The request does not accept any parameters. @@ -52,10 +52,9 @@ The request does not accept any parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -69,9 +68,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -86,9 +85,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -104,8 +103,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -113,7 +113,7 @@ The response follows the [standard format][], with a successful result containin |:--------|:-------|:----------------------------------------------------------| | `domain` | String | _(May be omitted)_ The domain name associated with this validator, if one has been configured. | `ephemeral_key` | String | _(May be omitted)_ The public key of the ephemeral key pair this server uses to sign validation messages, in [base58][]. This key changes if the validator's configured token changes. | -| `manifest` | String | _(May be omitted)_ The public "manifest" corresponding to this validator's configured token, [serialized to binary](serialization.html) and then encoded in base64. This field does not contain any private information. | +| `manifest` | String | _(May be omitted)_ The public "manifest" corresponding to this validator's configured token, [serialized to binary](../../../protocol/binary-format.md) and then encoded in base64. This field does not contain any private information. | | `master_key` | String | The public key of this validator's master key pair, in [base58][]. This key uniquely identifies the validator and remains the same if the validator rotates ephemeral keys. If the server is configured using a `[validation_seed]` instead of a `[validator_token]`, this is the only field in the response. | | `seq` | Number | _(May be omitted)_ A sequence number for this validator's configured validation token and settings. This number increases whenever the validator operator updates the validator's token to rotate ephemeral keys or change settings. | @@ -123,9 +123,6 @@ For more information on validator tokens and key rotation, see the [validator-ke ### Possible Errors - Any of the [universal error types][]. -- `invalidParams` - The server returns this error with `"error_message" : "not a validator"` if the server is not [configured as a validator](run-rippled-as-a-validator.html). +- `invalidParams` - The server returns this error with `"error_message" : "not a validator"` if the server is not [configured as a validator](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md index e10c00b519..8c1736dffd 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md @@ -9,26 +9,25 @@ labels: # validator_list_sites [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ValidatorListSites.cpp "Source") -The `validator_list_sites` command returns status information of sites serving validator lists. [New in: rippled 0.80.1][] +The `validator_list_sites` command returns status information of sites serving validator lists. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.80.1" %}New in: rippled 0.80.1{% /badge %} -*The `validator_list_sites` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `validator_list_sites` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "validator_list_sites" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "validator_list_sites", @@ -37,15 +36,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: validator_list_sites rippled validator_list_sites ``` +{% /tab %} - +{% /tabs %} The request includes no parameters. @@ -53,10 +53,9 @@ The request includes no parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id":5, @@ -75,9 +74,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -95,9 +94,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -116,8 +115,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following field: @@ -142,7 +142,7 @@ The `last_refresh_status` field can have the following values: |:----------------------|:-----------------------------------------------------| | `accepted` | The site provided a valid list, which your server is now using. | | `same_sequence` | The site provided a list with the same sequence number as your existing list, so your server continued using its existing list. | -| `unsupported_version` | The site provided a list, but your server does not support the list format version number in the list. You might need to [update `rippled`](install-rippled.html) to a newer software version. | +| `unsupported_version` | The site provided a list, but your server does not support the list format version number in the list. You might need to [update `rippled`](../../../../infrastructure/installation/index.md) to a newer software version. | | `untrusted` | The site provided a list from the site that is signed by a cryptographic key pair your server is not configured to trust. You may want to check for typos in your `validators.txt` file and check to see if the list publisher changed their cryptographic keys. | | `stale` | The site provided a list with a lower sequence number than the list your server is already using. | | `invalid` | The site provided a list or signature that was not validly formed. | @@ -152,7 +152,4 @@ The `last_refresh_status` field can have the following values: - Any of the [universal error types][]. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md index feed1004b2..a025c864cc 100644 --- a/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +++ b/content/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md @@ -9,26 +9,25 @@ labels: # validators [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Validators.cpp "Source") -The `validators` command returns human readable information about the current list of published and [trusted validators](consensus.html#trust-based-validation) used by the server. +The `validators` command returns human readable information about the current list of published and [trusted validators](../../../../concepts/consensus-protocol/index.md#trust-based-validation) used by the server. -*The `validators` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users!* +*The `validators` method is an [admin method](../index.md) that cannot be run by unprivileged users!* ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "validators_example", "command": "validators" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "validators", @@ -37,15 +36,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: validators rippled validators ``` +{% /tab %} - +{% /tabs %} The request includes no parameters. @@ -53,10 +53,9 @@ The request includes no parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "validators_example", @@ -193,9 +192,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -332,9 +331,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -472,8 +471,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -502,7 +502,4 @@ Each member of the `publisher_lists` array is a **Publisher List** object with t - Any of the [universal error types][]. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/api-conventions/ctid.md b/content/references/http-websocket-apis/api-conventions/ctid.md index 43409d1706..235b3c43ab 100644 --- a/content/references/http-websocket-apis/api-conventions/ctid.md +++ b/content/references/http-websocket-apis/api-conventions/ctid.md @@ -7,9 +7,9 @@ labels: --- # Compact Transaction Identifier -A Compact Transaction Identifier (CTID) is a unique identifier for a validated transaction that applies across any [network](parallel-networks.html), not just the XRP Ledger Mainnet. +A Compact Transaction Identifier (CTID) is a unique identifier for a validated transaction that applies across any [network](../../../concepts/networks-and-servers/parallel-networks.md), not just the XRP Ledger Mainnet. -The differences between a CTID and a transaction's [identifying hash](transactions.html#identifying-transactions) are as follows: +The differences between a CTID and a transaction's [identifying hash](../../../concepts/transactions/index.md#identifying-transactions) are as follows: - A CTID identifies a validated transaction based on its network ID, ledger index, and position within the ledger. Since it specifies which network a transaction has been validated on, it can be used in contexts where you are interacting with more than one network, such as connecting to sidechains. A CTID is 64 bits, typically written as 16 characters of uppercase hexadecimal starting with `C`, for example `C005523E00000000`. - An transaction's identifying hash identifies a signed transaction based on its contents, regardless of if that transaction has been validated on any chains. Since it's a cryptographic hash, it can also be used to prove that the transaction contents are intact. A transaction hash is 256 bits, typically written as 64 characters of hexadecimal, for example `E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7`. @@ -22,8 +22,8 @@ A CTID contains the following parts, in order (big-endian): 1. 4 bits: The hex nibble `C` indicating that this is a CTID. 2. 28 bits: The ledger index of the ledger where the transaction was validated. -3. 16 bits: The transaction index, its place within the ledger's canonical order. This is provided as the field `TransactionIndex` in [transaction metadata](transaction-metadata.html). -4. 16 bits: The [network ID](transaction-common-fields.html#networkid-field) of the network that validated this transaction. +3. 16 bits: The transaction index, its place within the ledger's canonical order. This is provided as the field `TransactionIndex` in [transaction metadata](../../protocol/transactions/metadata.md). +4. 16 bits: The [network ID](../../protocol/transactions/common-fields.md#networkid-field) of the network that validated this transaction. **Note:** The ledger index is normally stored as a 32-bit unsigned integer which increases by 1 each time a new ledger is created. If a network's ledger index is greater than 268,435,455, it won't fit in 28 bits, so the leading `C` should be incremented to `D`, `E`, or `F` as necessary. This is not expected to be necessary until at least the year 2043. diff --git a/content/references/http-websocket-apis/api-conventions/error-formatting.md b/content/references/http-websocket-apis/api-conventions/error-formatting.md index 694559ac48..c2074a68fc 100644 --- a/content/references/http-websocket-apis/api-conventions/error-formatting.md +++ b/content/references/http-websocket-apis/api-conventions/error-formatting.md @@ -14,10 +14,9 @@ It is impossible to list all the possible ways an error can occur. Some may occu Some example errors: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -33,9 +32,9 @@ Some example errors: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json HTTP Status: 200 OK @@ -52,9 +51,9 @@ HTTP Status: 200 OK } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result": { @@ -69,8 +68,9 @@ HTTP Status: 200 OK } } ``` +{% /tab %} - +{% /tabs %} ## WebSocket Format @@ -108,9 +108,9 @@ For other errors that returned with HTTP status code 200 OK, the responses are f All methods can potentially return any of the following values for the `error` code: -- `amendmentBlocked` - The server is [amendment blocked](amendments.html#amendment-blocked-servers) and needs to be updated to the latest version to stay synced with the XRP Ledger network. +- `amendmentBlocked` - The server is [amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers) and needs to be updated to the latest version to stay synced with the XRP Ledger network. - `failedToForward` - ([Reporting Mode][] servers only) The server tried to forward this request to a P2P Mode server, but the connection failed. -- `invalid_API_version` - The server does not support the [API version number](request-formatting.html#api-versioning) from the request. +- `invalid_API_version` - The server does not support the [API version number](request-formatting.md#api-versioning) from the request. - `jsonInvalid` - (WebSocket only) The request is not a proper JSON object. - JSON-RPC returns a 400 Bad Request HTTP error in this case instead. - `missingCommand` - (WebSocket only) The request did not specify a `command` field. @@ -119,11 +119,7 @@ All methods can potentially return any of the following values for the `error` c - `noCurrent` - The server does not know what the current ledger is, due to high load, network problems, validator failures, incorrect configuration, or some other problem. - `noNetwork` - The server is having trouble connecting to the rest of the XRP Ledger peer-to-peer network (and is not running in stand-alone mode). - `tooBusy` - The server is under too much load to do this command right now. Generally not returned if you are connected as an admin. -- `unknownCmd` - The request does not contain a [command](http-websocket-apis.html) that the `rippled` server recognizes. +- `unknownCmd` - The request does not contain a [command](../index.md) that the `rippled` server recognizes. - `wsTextRequired` - (WebSocket only) The request's [opcode](https://tools.ietf.org/html/rfc6455#section-5.2) is not text. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/api-conventions/index.md b/content/references/http-websocket-apis/api-conventions/index.md index f3114a3c17..18ae295f00 100644 --- a/content/references/http-websocket-apis/api-conventions/index.md +++ b/content/references/http-websocket-apis/api-conventions/index.md @@ -2,10 +2,14 @@ html: api-conventions.html parent: http-websocket-apis.html blurb: Common conventions used across the XRP Ledger's HTTP APIs. -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # API Conventions -This section describes data types and formats of the HTTP APIs (JSON-RPC and WebSocket) as implemented in [the `rippled` server](xrpl-servers.html). +This section describes data types and formats of the HTTP APIs (JSON-RPC and WebSocket) as implemented in [the `rippled` server](../../../concepts/networks-and-servers/index.md). -For information on the XRP Ledger protocol that applies to all APIs, see [Protocol Reference](protocol-reference.html). +For information on the XRP Ledger protocol that applies to all APIs, see [Protocol Reference](../../protocol/index.md). + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/api-conventions/markers-and-pagination.md b/content/references/http-websocket-apis/api-conventions/markers-and-pagination.md index c73a4fe5f2..71b72e1119 100644 --- a/content/references/http-websocket-apis/api-conventions/markers-and-pagination.md +++ b/content/references/http-websocket-apis/api-conventions/markers-and-pagination.md @@ -9,14 +9,14 @@ Some methods return more data than can efficiently fit into one response. When t The format of the `marker` field is intentionally undefined. Each server can define a `marker` field as desired, so it may take the form of a string, a nested object, or another type. Different servers, and different methods provided by the same server, can have different `marker` definitions. Each `marker` is ephemeral, and may not work as expected after 10 minutes. - +{% tabs %} -_Python_ +{% tab label="Python" %} +{% code-snippet file="/_code-samples/markers-and-pagination/py/pagination-with-markers.py" language="py" /%} +{% /tab %} -{{ include_code("_code-samples/markers-and-pagination/py/pagination-with-markers.py", language="py") }} +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/markers-and-pagination/js/pagination-with-markers.js" language="js" /%} +{% /tab %} -_JavaScript_ - -{{ include_code("_code-samples/markers-and-pagination/js/pagination-with-markers.js", language="js") }} - - \ No newline at end of file +{% /tabs %} diff --git a/content/references/http-websocket-apis/api-conventions/rate-limiting.md b/content/references/http-websocket-apis/api-conventions/rate-limiting.md index d337d214ca..2fc801e7ee 100644 --- a/content/references/http-websocket-apis/api-conventions/rate-limiting.md +++ b/content/references/http-websocket-apis/api-conventions/rate-limiting.md @@ -9,9 +9,9 @@ labels: The `rippled` server limits the rate at which API clients can make requests on public APIs. Rate limiting is based on the IP address of the client, so clients behind [network address translation](https://en.wikipedia.org/wiki/Network_address_translation) share a limit based on their public IP address. -**Tip:** Rate limiting does not apply when the client is connected [as an admin](get-started-using-http-websocket-apis.html#admin-access). +**Tip:** Rate limiting does not apply when the client is connected [as an admin](../../../tutorials/get-started/get-started-using-http-websocket-apis.md#admin-access). -When a client is approaching the rate limit, the server adds the field `"warning": "load"` at the top level of an [API response](response-formatting.html). This warning is not added to every response, but the server may send several such warnings before it disconnects a client. +When a client is approaching the rate limit, the server adds the field `"warning": "load"` at the top level of an [API response](response-formatting.md). This warning is not added to every response, but the server may send several such warnings before it disconnects a client. If a client goes past the rate limit, the server disconnects that client and does not serve further requests from the client's API address for a while. The WebSocket and JSON-RPC APIs use different disconnect messages. @@ -54,16 +54,13 @@ The usage rate drops off exponentially over time, so a client that does not make ## See Also - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Software Ecosystem](software-ecosystem.html) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [Software Ecosystem](../../../introduction/software-ecosystem.md) - **Tutorials:** - - [Getting Started with XRP Ledger APIs](get-started-using-http-websocket-apis.html) - - [Troubleshooting rippled](troubleshoot-the-rippled-server.html) + - [Getting Started with XRP Ledger APIs](../../../tutorials/get-started/get-started-using-http-websocket-apis.md) + - [Troubleshooting rippled](../../../infrastructure/troubleshooting/index.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) - - [Error Formatting](error-formatting.html) + - [rippled API Reference](../index.md) + - [Error Formatting](error-formatting.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/api-conventions/request-formatting.md b/content/references/http-websocket-apis/api-conventions/request-formatting.md index efc7a0fef2..b9261d33ed 100644 --- a/content/references/http-websocket-apis/api-conventions/request-formatting.md +++ b/content/references/http-websocket-apis/api-conventions/request-formatting.md @@ -7,10 +7,9 @@ blurb: Standard request format, with examples, for the WebSocket, JSON-RPC, and ## Example Request - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -21,9 +20,9 @@ blurb: Standard request format, with examples, for the WebSocket, JSON-RPC, and "api_version": 1 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json POST http://s1.ripple.com:51234/ Content-Type: application/json @@ -40,14 +39,15 @@ Content-Type: application/json ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated strict ``` +{% /tab %} - +{% /tabs %} ## WebSocket Format @@ -56,12 +56,12 @@ After you open a WebSocket to the `rippled` server, you can send commands as a [ | Field | Type | Description | |:--------------------|:----------|:-------------------------------------------| -| `command` | String | The name of the [API method](public-api-methods.html). | +| `command` | String | The name of the [API method](../public-api-methods/index.md). | | `id` | (Various) | _(Optional)_ A unique value to identify this request. The response to this request uses the same `id` field. This way, even if responses arrive out of order, you know which request prompted which response. | -| `api_version` | Number | _(Optional)_ The API version to use. If omitted, use version 1. For details, see [API Versioning](#api-versioning). [New in: rippled 1.5.0][] | +| `api_version` | Number | _(Optional)_ The API version to use. If omitted, use version 1. For details, see [API Versioning](#api-versioning). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | | (Method Parameters) | (Various) | Provide any parameters to the method at the top level. | -See [Response Formatting](response-formatting.html) for the response from the server. +See [Response Formatting](response-formatting.md) for the response from the server. ## JSON-RPC Format @@ -76,7 +76,7 @@ Send request body as a [JSON](https://en.wikipedia.org/wiki/JSON) object with th | Field | Type | Description | |:--------------------|:----------|:-------------------------------------------| -| `method` | String | The name of the [API method](public-api-methods.html). | +| `method` | String | The name of the [API method](../public-api-methods/index.md). | | `params` | Array | _(Optional)_ A **one-item array** containing a nested JSON object with the parameters to this method. You may omit this field if the method does not require any parameters. | The object inside the `params` array can contain the following fields: @@ -86,13 +86,13 @@ The object inside the `params` array can contain the following fields: | `api_version` | Number | _(Optional)_ The API version to use. If omitted, uses version `1`. For details, see [API Versioning](#api-versioning). | | (Method Parameters) | (Various) | Provide any parameters to the method here. | -See [Response Formatting](response-formatting.html) for the response from the server. +See [Response Formatting](response-formatting.md) for the response from the server. ## Commandline Format -Put the API method name after any normal (dash-prefaced) commandline options, followed by a limited set of parameters, separated by spaces. For any parameter values that might contain spaces or other unusual characters, use single-quotes to encapsulate them. Not all methods have commandline API syntax. For more information, see [Commandline Usage](commandline-usage.html#client-mode-options). +Put the API method name after any normal (dash-prefaced) commandline options, followed by a limited set of parameters, separated by spaces. For any parameter values that might contain spaces or other unusual characters, use single-quotes to encapsulate them. Not all methods have commandline API syntax. For more information, see [Commandline Usage](../../../infrastructure/commandline-usage.md#client-mode-options). -The commandline calls JSON-RPC, so its responses always match the JSON-RPC [response format](response-formatting.html). +The commandline calls JSON-RPC, so its responses always match the JSON-RPC [response format](response-formatting.md). The commandline always uses the latest [API version](#api-versioning). @@ -101,7 +101,7 @@ The commandline always uses the latest [API version](#api-versioning). ## API Versioning -The `rippled` server uses a single integer to identify the API version to use. Currently, there are two API versions: `1` and `2` [New in: rippled 2.0.0][]. The server reports the range of supported API versions in the `version` API method. +The `rippled` server uses a single integer to identify the API version to use. Currently, there are two API versions: `1` and `2` {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.0.0" %}New in: rippled 2.0.0{% /badge %}. The server reports the range of supported API versions in the `version` API method. Separate API requests can use different API versions even on the same persistent connection. For example, if you connect WebSocket to a server that supports API versions 1 and 2, you can make an `account_tx` request using API version 2 and then make another `account_tx` request using API version 1 from the same connection. @@ -136,7 +136,4 @@ The following types of changes are **non-breaking changes** and may occur withou - Adding a new field to a request or response, not including positional parameters. - Adding a new API method. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/api-conventions/response-formatting.md b/content/references/http-websocket-apis/api-conventions/response-formatting.md index 4dcef6cf5c..3707d87ed1 100644 --- a/content/references/http-websocket-apis/api-conventions/response-formatting.md +++ b/content/references/http-websocket-apis/api-conventions/response-formatting.md @@ -12,21 +12,20 @@ The fields of a successful response include: | `Field` | Type | Description | |:----------------|:---------|:------------------------------------------------| | `id` | (Varies) | (WebSocket only) ID provided in the request that prompted this response | -| `status` | String | (WebSocket only) The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](client-libraries.html) omit this field on success. | -| `result.status` | String | (JSON-RPC and Commandline) The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](client-libraries.html) omit this field on success. | -| `type` | String | (WebSocket only) The value `response` indicates a direct response to an API request. [Asynchronous notifications](subscribe.html) use a different value such as `ledgerClosed` or `transaction`. | +| `status` | String | (WebSocket only) The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](../../client-libraries.md) omit this field on success. | +| `result.status` | String | (JSON-RPC and Commandline) The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](../../client-libraries.md) omit this field on success. | +| `type` | String | (WebSocket only) The value `response` indicates a direct response to an API request. [Asynchronous notifications](../public-api-methods/subscription-methods/subscribe.md) use a different value such as `ledgerClosed` or `transaction`. | | `result` | Object | The result of the query; contents vary depending on the command. | -| `warning` | String | _(May be omitted)_ If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.html) threshold where the server will disconnect this client. | -| `warnings` | Array | _(May be omitted)_ If this field is provided, it contains one or more **Warnings Objects** with important warnings. For details, see [API Warnings](#api-warnings). [New in: rippled 1.5.0][] | +| `warning` | String | _(May be omitted)_ If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.md) threshold where the server will disconnect this client. | +| `warnings` | Array | _(May be omitted)_ If this field is provided, it contains one or more **Warnings Objects** with important warnings. For details, see [API Warnings](#api-warnings). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | | `forwarded` | Boolean | _(May be omitted)_ If `true`, this request and response have been forwarded from a [Reporting Mode][] server to a P2P Mode server (and back) because the request requires data that is not available in Reporting Mode. The default is `false`. | ## Example Successful Response - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -48,9 +47,9 @@ The fields of a successful response include: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json HTTP Status: 200 OK @@ -72,8 +71,9 @@ HTTP Status: 200 OK } } ``` -*Commandline* +{% /tab %} +{% tab label="Commandline" %} ```json { "result": { @@ -93,8 +93,9 @@ HTTP Status: 200 OK } } ``` +{% /tab %} - +{% /tabs %} ## API Warnings @@ -126,9 +127,9 @@ Example warning: ] ``` -This warning indicates that the one or more [amendments](amendments.html) to the XRP Ledger protocol are scheduled to become enabled, but the current server does not have an implementation for those amendments. If those amendments become enabled, the current server will become [amendment blocked](amendments.html#amendment-blocked-servers), so you should [upgrade to the latest `rippled` version](install-rippled.html) as soon as possible. +This warning indicates that the one or more [amendments](../../../concepts/networks-and-servers/amendments.md) to the XRP Ledger protocol are scheduled to become enabled, but the current server does not have an implementation for those amendments. If those amendments become enabled, the current server will become [amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers), so you should [upgrade to the latest `rippled` version](../../../infrastructure/installation/index.md) as soon as possible. -The server only sends this warning if the client is [connected as an admin](get-started-using-http-websocket-apis.html#admin-access). +The server only sends this warning if the client is [connected as an admin](../../../tutorials/get-started/get-started-using-http-websocket-apis.md#admin-access). This warning includes a `details` field with the following fields: @@ -153,12 +154,12 @@ Example warning: ] ``` -This warning indicates that the server is [amendment blocked](amendments.html#amendment-blocked-servers) and can no longer remain synced with the XRP Ledger. +This warning indicates that the server is [amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers) and can no longer remain synced with the XRP Ledger. -The server administrator must [upgrade `rippled`](install-rippled.html) to a version that supports the activated amendments. +The server administrator must [upgrade `rippled`](../../../infrastructure/installation/index.md) to a version that supports the activated amendments. ### 1003. This is a reporting server -[New in: rippled 1.7.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}New in: rippled 1.7.0{% /badge %} Example warning: @@ -180,22 +181,18 @@ It is generally safe to ignore this warning. ## See Also -- [Request Formatting](request-formatting.html) -- [Error Formatting](error-formatting.html) for unsuccessful API responses. +- [Request Formatting](request-formatting.md) +- [Error Formatting](error-formatting.md) for unsuccessful API responses. - **Concepts:** - - [The `rippled` Server](xrpl-servers.html) - - [Consensus](consensus.html) - - [Amendments](amendments.html) - - [Known Amendments](known-amendments.html) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) + - [Amendments](../../../concepts/networks-and-servers/amendments.md) + - [Known Amendments](../../../resources/known-amendments.md) - **Tutorials:** - - [Get Started with XRP Ledger APIs](get-started-using-http-websocket-apis.html) - - [Install and Update `rippled`](install-rippled.html) + - [Get Started with XRP Ledger APIs](../../../tutorials/get-started/get-started-using-http-websocket-apis.md) + - [Install and Update `rippled`](../../../infrastructure/installation/index.md) - **References:** - [feature method][] - [server_info method][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/api-conventions/rippled-server-states.md b/content/references/http-websocket-apis/api-conventions/rippled-server-states.md index a3f3684a8f..ac204bd50f 100644 --- a/content/references/http-websocket-apis/api-conventions/rippled-server-states.md +++ b/content/references/http-websocket-apis/api-conventions/rippled-server-states.md @@ -21,7 +21,4 @@ Depending on how the `rippled` server is configured, how long it has been runnin **Note:** The distinction between `full`, `validating`, and `proposing` is based on synchronization with the rest of the global network, and it is normal for a server to fluctuate between these states as a course of general operation. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/index.md b/content/references/http-websocket-apis/index.md index b9be14e1ca..1bf27f4f2c 100644 --- a/content/references/http-websocket-apis/index.md +++ b/content/references/http-websocket-apis/index.md @@ -1,8 +1,12 @@ --- html: http-websocket-apis.html parent: references.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # HTTP / WebSocket APIs -Communicate directly with rippled, the core peer-to-peer server that manages the XRP Ledger. \ No newline at end of file +Communicate directly with rippled, the core peer-to-peer server that manages the XRP Ledger. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/peer-port-methods/health-check.md b/content/references/http-websocket-apis/peer-port-methods/health-check.md index 20714f554d..9b6c771416 100644 --- a/content/references/http-websocket-apis/peer-port-methods/health-check.md +++ b/content/references/http-websocket-apis/peer-port-methods/health-check.md @@ -8,11 +8,11 @@ labels: # Health Check [[Source]](https://github.com/XRPLF/rippled/blob/de0c52738785de8bf837f9124da65c7905e7bb5a/src/ripple/overlay/impl/OverlayImpl.cpp#L1084-L1168 "Source") -The Health Check is a special [peer port method](peer-port-methods.html) for reporting on the health of an individual `rippled` server. This method is intended for use in automated monitoring to recognize outages and prompt automated or manual interventions such as restarting the server. [New in: rippled 1.6.0][] +The Health Check is a special [peer port method](index.md) for reporting on the health of an individual `rippled` server. This method is intended for use in automated monitoring to recognize outages and prompt automated or manual interventions such as restarting the server. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}New in: rippled 1.6.0{% /badge %} This method checks several metrics to see if they are in ranges generally considered healthy. If all metrics are in normal ranges, this method reports that the server is healthy. If any metric is outside normal ranges, this method reports that the server is unhealthy and reports the metric(s) that are unhealthy. Since some metrics may rapidly fluctuate into and out of unhealthy ranges, you should not raise alerts unless the health check fails multiple times in a row. -**Note:** Since the health check is a [peer port method](peer-port-methods.html), it is not available when testing the server in [stand-alone mode][]. +**Note:** Since the health check is a [peer port method](index.md), it is not available when testing the server in [stand-alone mode][]. ## Request Format @@ -30,10 +30,9 @@ To request the Health Check information, make the following HTTP request: ## Example Response - - -*Healthy* +{% tabs %} +{% tab label="Healthy" %} ```json HTTP/1.1 200 OK Server: rippled-1.6.0-b8 @@ -45,9 +44,9 @@ Transfer-Encoding: chunked "info": {} } ``` +{% /tab %} -*Warning* - +{% tab label="Warning" %} ```json HTTP/1.1 503 Service Unavailable Server: rippled-1.6.0 @@ -62,9 +61,9 @@ Transfer-Encoding: chunked } } ``` +{% /tab %} -*Critical* - +{% tab label="Critical" %} ```json HTTP/1.1 500 Internal Server Error Server: rippled-1.6.0 @@ -80,8 +79,9 @@ Transfer-Encoding: chunked } } ``` +{% /tab %} - +{% /tabs %} ## Response Format @@ -99,18 +99,14 @@ The `info` object may contain the following fields: | `Field` | Value | Description | |:--------------------|:--------|:---------------------------------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, the server is [amendment blocked](amendments.html#amendment-blocked-servers) and must be upgraded to remain synced with the network; this state is critical. If the server is not amendment blocked, this field is omitted. | +| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, the server is [amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers) and must be upgraded to remain synced with the network; this state is critical. If the server is not amendment blocked, this field is omitted. | | `load_factor` | Number | _(May be omitted)_ A measure of the overall load the server is under. This reflects I/O, CPU, and memory limitations. This is a warning if the load factor is over 100, or critical if the load factor is 1000 or higher. | -| `peers` | Number | _(May be omitted)_ The number of [peer servers](peer-protocol.html) this server is connected to. This is a warning if connected to 7 or fewer peers, and critical if connected to zero peers. | -| `server_state` | String | _(May be omitted)_ The current [server state](rippled-server-states.html). This is a warning if the server is in the `tracking`, `syncing`, or `connected` states. This is critical if the server is in the `disconnected` state. | -| `validated_ledger` | Number | _(May be omitted)_ The number of seconds since the last time a ledger was validated by [consensus](consensus.html). If there is no validated ledger available ([as during the initial sync period when starting the server](server-doesnt-sync.html#normal-syncing-behavior)), this is the value `-1` and is considered a warning. This metric is also a warning if the last validated ledger was at least 7 seconds ago, or critical if the last validated ledger was at least 20 seconds ago. | +| `peers` | Number | _(May be omitted)_ The number of [peer servers](../../../concepts/networks-and-servers/peer-protocol.md) this server is connected to. This is a warning if connected to 7 or fewer peers, and critical if connected to zero peers. | +| `server_state` | String | _(May be omitted)_ The current [server state](../api-conventions/rippled-server-states.md). This is a warning if the server is in the `tracking`, `syncing`, or `connected` states. This is critical if the server is in the `disconnected` state. | +| `validated_ledger` | Number | _(May be omitted)_ The number of seconds since the last time a ledger was validated by [consensus](../../../concepts/consensus-protocol/index.md). If there is no validated ledger available ([as during the initial sync period when starting the server](../../../infrastructure/troubleshooting/server-doesnt-sync.md#normal-syncing-behavior)), this is the value `-1` and is considered a warning. This metric is also a warning if the last validated ledger was at least 7 seconds ago, or critical if the last validated ledger was at least 20 seconds ago. | ## See Also -For guidance interpreting the results of the health check, see [Health Check Interventions](health-check-interventions.html). +For guidance interpreting the results of the health check, see [Health Check Interventions](../../../infrastructure/troubleshooting/health-check-interventions.md). - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/peer-port-methods/index.md b/content/references/http-websocket-apis/peer-port-methods/index.md index b5701ffea3..9e254a1c5b 100644 --- a/content/references/http-websocket-apis/peer-port-methods/index.md +++ b/content/references/http-websocket-apis/peer-port-methods/index.md @@ -1,11 +1,15 @@ --- html: peer-port-methods.html parent: http-websocket-apis.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Special API methods for sharing network topology and status metrics, served on the XRPL Peer Protocol port. --- # Peer Port Methods -Separate from the [WebSocket / HTTP APIs](http-websocket-apis.html), `rippled` servers provide a few special API methods from the same port they use for XRP Ledger [peer protocol](peer-protocol.html) communications. These methods provide status information about the server itself and its connectivity to the peer-to-peer network, and are intended mainly for monitoring and administration. +Separate from the [WebSocket / HTTP APIs](../index.md), `rippled` servers provide a few special API methods from the same port they use for XRP Ledger [peer protocol](../../../concepts/networks-and-servers/peer-protocol.md) communications. These methods provide status information about the server itself and its connectivity to the peer-to-peer network, and are intended mainly for monitoring and administration. -**Security:** Most `rippled` servers use a self-signed TLS certificate to respond to peer port requests. By default, most tools (including web browsers) flag or block such responses for being untrusted. You must ignore the certificate checking (for example, if using cURL, add the `--insecure` flag) to display a response from those servers, or configure the server with a TLS certificate signed by a known Certificate Authority. \ No newline at end of file +**Security:** Most `rippled` servers use a self-signed TLS certificate to respond to peer port requests. By default, most tools (including web browsers) flag or block such responses for being untrusted. You must ignore the certificate checking (for example, if using cURL, add the `--insecure` flag) to display a response from those servers, or configure the server with a TLS certificate signed by a known Certificate Authority. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/peer-port-methods/peer-crawler.md b/content/references/http-websocket-apis/peer-port-methods/peer-crawler.md index 5896553c8d..730daeb7a1 100644 --- a/content/references/http-websocket-apis/peer-port-methods/peer-crawler.md +++ b/content/references/http-websocket-apis/peer-port-methods/peer-crawler.md @@ -8,7 +8,7 @@ labels: --- # Peer Crawler -The Peer Crawler is a special [peer port method](peer-port-methods.html) for reporting on the health and topology of the peer-to-peer network. This API method is available by default on a non-privileged basis through the [Peer Protocol](peer-protocol.html) port, which is also used for `rippled` servers' peer-to-peer communications about consensus, ledger history, and other necessary information. +The Peer Crawler is a special [peer port method](index.md) for reporting on the health and topology of the peer-to-peer network. This API method is available by default on a non-privileged basis through the [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) port, which is also used for `rippled` servers' peer-to-peer communications about consensus, ledger history, and other necessary information. The information reported by the peer crawler is effectively public, and can be used to report on the overall XRP Ledger network, its health, and topology. @@ -34,18 +34,18 @@ The JSON object has the following fields: |:-----------------|:-------|:-------------------------------------------------| | `counts` | Object | _(May be omitted)_ Stats about this server's health, similar to the response from the [get_counts method][]. The default configuration does not report this field. Information reported includes: how large the ledger and transaction databases are, the cache hit rate for the in-application caches, and how many objects of various types are cached in memory. Types of objects that may be stored in memory include ledgers (`Ledger`), transactions (`STTx`), validation messages (`STValidation`), and more. | | `overlay` | Object | _(May be omitted)_ Information about the peer servers currently connected to this one, similar to the response from the [peers method][]. Contains one field, `active`, which is an array of objects (see below). | -| `server` | Object | _(May be omitted)_ Information about this server. Contains public fields from the [server_state method][], including what `rippled` version you are running (`build_version`), which [ledger versions](ledger-history.html) your server has available (`complete_ledgers`), and the amount of load your server is experiencing. [Updated in: rippled 1.2.1][] | -| `unl` | Object | _(May be omitted)_ Information about the validators and validator list sites this server is configured to trust, similar to the response from the [validators method][] and [validator_list_sites method][]. [Updated in: rippled 1.2.1][] | -| `version` | Number | Indicates the version of this peer crawler response format. The current peer crawler version number is `2`. [Updated in: rippled 1.2.1][] | +| `server` | Object | _(May be omitted)_ Information about this server. Contains public fields from the [server_state method][], including what `rippled` version you are running (`build_version`), which [ledger versions](../../../concepts/networks-and-servers/ledger-history.md) your server has available (`complete_ledgers`), and the amount of load your server is experiencing. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `unl` | Object | _(May be omitted)_ Information about the validators and validator list sites this server is configured to trust, similar to the response from the [validators method][] and [validator_list_sites method][]. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `version` | Number | Indicates the version of this peer crawler response format. The current peer crawler version number is `2`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | Each member of the `overlay.active` array is an object with the following fields: | `Field` | Value | Description | |:-------------|:-------------------------|:-----------------------------------| -| `complete_ledgers` | String | The range of [ledger versions](ledger-history.html) this peer has available. | -| `complete_shards` | String | _(May be omitted)_ The range of [ledger history shards](history-sharding.html) this peer has available. | -| `ip` | String (IPv4 Address) | _(May be omitted)_ The IP address of this connected peer. Omitted if the peer is configured as a validator or a [private peer](peer-protocol.html#private-peers). [Updated in: rippled 1.2.1][] | -| `port` | String (Number) | _(May be omitted)_ The port number on the peer server that serves RTXP. Typically `51235`. Omitted if the peer is configured as a validator or a [private peer](peer-protocol.html#private-peers). [Updated in: rippled 1.2.1][] | +| `complete_ledgers` | String | The range of [ledger versions](../../../concepts/networks-and-servers/ledger-history.md) this peer has available. | +| `complete_shards` | String | _(May be omitted)_ The range of [ledger history shards](../../../infrastructure/configuration/data-retention/history-sharding.md) this peer has available. | +| `ip` | String (IPv4 Address) | _(May be omitted)_ The IP address of this connected peer. Omitted if the peer is configured as a validator or a [private peer](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `port` | String (Number) | _(May be omitted)_ The port number on the peer server that serves RTXP. Typically `51235`. Omitted if the peer is configured as a validator or a [private peer](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | | `public_key` | String (Base-64 Encoded) | The public key of the ECDSA key pair used by this peer to sign RTXP messages. (This is the same data as the `pubkey_node` reported by the peer server's [server_info method][].) | | `type` | String | The value `in` or `out`, indicating whether the TCP connection to the peer is incoming or outgoing. | | `uptime` | Number | The number of seconds the server has been connected to this peer. | @@ -55,39 +55,31 @@ Each member of the `overlay.active` array is an object with the following fields Request: - - -*HTTP* +{% tabs %} +{% tab label="HTTP" %} ``` GET https://localhost:51235/crawl ``` +{% /tab %} -*cURL* - +{% tab label="cURL" %} ``` curl --insecure https://localhost:51235/crawl ``` +{% /tab %} - +{% /tabs %} Response: -```json -200 OK - -{% include '_api-examples/peer-crawler/crawl.json' %} -``` +{% code-snippet file="/_api-examples/peer-crawler/crawl.json" language="json" prefix="200 OK\n\n" /%} ## See Also -- [Peer Protocol](peer-protocol.html) -- [Configure the Peer Crawler](configure-the-peer-crawler.html) +- [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) +- [Configure the Peer Crawler](../../../infrastructure/configuration/peering/configure-the-peer-crawler.md) - [Validator History Service](https://github.com/ripple/validator-history-service) is an example of a service that uses the peer crawler for ingesting, aggregating, storing, and disbursing validation related data. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/peer-port-methods/validator-list.md b/content/references/http-websocket-apis/peer-port-methods/validator-list.md index 55f6bc5275..5b11daacfa 100644 --- a/content/references/http-websocket-apis/peer-port-methods/validator-list.md +++ b/content/references/http-websocket-apis/peer-port-methods/validator-list.md @@ -8,9 +8,9 @@ labels: --- # Validator List Method -The validator list method is a special API endpoint that fetches a current, trusted validator list a `rippled` server is using. This often represents the exact list of validators a server trusts. [New in: rippled 1.5.0][] +The validator list method is a special API endpoint that fetches a current, trusted validator list a `rippled` server is using. This often represents the exact list of validators a server trusts. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} -Like the [Peer Crawler](peer-crawler.html), the validator list method is available by default on a non-privileged basis through the [Peer Protocol](peer-protocol.html) port, which is also used for `rippled` servers' peer-to-peer communications. +Like the [Peer Crawler](peer-crawler.md), the validator list method is available by default on a non-privileged basis through the [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) port, which is also used for `rippled` servers' peer-to-peer communications. ## Request Format @@ -41,14 +41,14 @@ The JSON object has the following fields: | `blob` | String | Base64-encoded JSON data representing the validator list. | | `signature` | String | The signature of the `blob` data, in hexadecimal. | | `version` | Number | The version of the validator list protocol this object uses. The current version is **1**. A higher version number indicates backwards-incompatible changes with a previous version of the validator list protocol. | -| `public_key` | String | The public key used to verify this validator list data, in hexadecimal. This is a 32-byte Ed25519 public key prefixed with the byte `0xED`. [New in: rippled 1.7.0][] | +| `public_key` | String | The public key used to verify this validator list data, in hexadecimal. This is a 32-byte Ed25519 public key prefixed with the byte `0xED`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}New in: rippled 1.7.0{% /badge %} | ### Manifest Data [[Source]](https://github.com/XRPLF/rippled/blob/97712107b71a8e2089d2e3fcef9ebf5362951110/src/ripple/app/misc/impl/Manifest.cpp#L43-L66 "Source") -A "manifest" contains information uniquely identifying a person or organization involved in the consensus process, either a **validator** or a **list publisher**. A validator's manifest contains the _public_ information from that [validator's token](run-rippled-as-a-validator.html#3-enable-validation-on-your-rippled-server). A list publisher's manifest provides information about the list publisher. Both are typically encoded to binary in the XRP Ledger's standard [binary serialization format](serialization.html). (There is no standard JSON representation of a manifest.) +A "manifest" contains information uniquely identifying a person or organization involved in the consensus process, either a **validator** or a **list publisher**. A validator's manifest contains the _public_ information from that [validator's token](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server). A list publisher's manifest provides information about the list publisher. Both are typically encoded to binary in the XRP Ledger's standard [binary serialization format](../../protocol/binary-format.md). (There is no standard JSON representation of a manifest.) -One of the main purposes of manifests relates to rotating validator keys. When a validator changes its ephemeral key pair, the validator publishes a new manifest to share its new ephemeral public key, using the validator's master key pair to sign the manifest to prove its authenticity. A validator uses its ephemeral key pair to sign validations as part of the [consensus process](consensus.html) and uses its master key pair only to sign new manifests. (The manifest is incorporated into a validator token, alongside private data, that [the validator administrator adds to the `rippled.cfg` config file](run-rippled-as-a-validator.html#3-enable-validation-on-your-rippled-server).) +One of the main purposes of manifests relates to rotating validator keys. When a validator changes its ephemeral key pair, the validator publishes a new manifest to share its new ephemeral public key, using the validator's master key pair to sign the manifest to prove its authenticity. A validator uses its ephemeral key pair to sign validations as part of the [consensus process](../../../concepts/consensus-protocol/index.md) and uses its master key pair only to sign new manifests. (The manifest is incorporated into a validator token, alongside private data, that [the validator administrator adds to the `rippled.cfg` config file](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server).) The data encoded in a manifest is as follows: @@ -62,7 +62,7 @@ The data encoded in a manifest is as follows: | `sfSigningPubKey` | Blob | _(Optional)_ The ephemeral public key of the key pair that this person or organization is currently using. This must be a 33-byte secp256k1 public key. | | `sfSignature` | Blob | _(Optional)_ A signature of this manifest data from the ephemeral key pair. | -The `sfMasterSignature` and `sfSignature` signatures are created from signing the [serialized](serialization.html) binary data of the manifest, excluding the signature fields (`sfMasterSignature` and `sfSignature`) themselves. +The `sfMasterSignature` and `sfSignature` signatures are created from signing the [serialized](../../protocol/binary-format.md) binary data of the manifest, excluding the signature fields (`sfMasterSignature` and `sfSignature`) themselves. ### Blob Data @@ -85,45 +85,36 @@ Each member of the `validators` array has the following fields: #### Example Decoded Blob -```json -{% include '_api-examples/vl/vl-blob.json' %} -``` +{% code-snippet file="/_api-examples/vl/vl-blob.json" language="json" /%} ## Example Request: - - -*HTTP* +{% tabs %} +{% tab label="HTTP" %} ``` GET https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` +{% /tab %} -*cURL* - +{% tab label="cURL" %} ``` curl --insecure https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` +{% /tab %} - +{% /tabs %} Response: -```json -200 OK - -{% include '_api-examples/vl/vl.json' %} -``` +{% code-snippet file="/_api-examples/vl/vl.json" language="json" prefix="200 OK\n\n" /%} ## See Also -- [Peer Protocol](peer-protocol.html) -- [Consensus](consensus.html) +- [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) +- [Consensus](../../../concepts/consensus-protocol/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md index 6bc730ef18..16f8180b07 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md @@ -8,17 +8,16 @@ labels: # account_channels [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AccountChannels.cpp "Source") -_(Added by the [PayChan amendment][]. [New in: rippled 0.33.0][])_ +_(Added by the [PayChan amendment][]. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}New in: rippled 0.33.0{% /badge %})_ The `account_channels` method returns information about an account's Payment Channels. This includes only channels where the specified account is the channel's source, not the destination. (A channel's "source" and "owner" are the same.) All information retrieved is relative to a particular version of the ledger. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -28,9 +27,9 @@ An example of the request format: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_channels", @@ -41,17 +40,16 @@ An example of the request format: }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```bash #Syntax: account_channels [] [] rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTKHSANinZseWnPcX validated ``` +{% /tab %} -[Try it! >](websocket-api-tool.html#account_channels) - - +{% /tabs %} The request includes the following parameters: @@ -68,10 +66,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -97,9 +94,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -125,9 +122,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json 200 OK @@ -153,18 +150,19 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: | Field | Type | Description | |:---------------|:-------------------------|:---------------------------------| | `account` | String | The address of the source/owner of the payment channels. This corresponds to the `account` field of the request. | -| `channels` | Array of Channel Objects | Payment channels owned by this `account`. [Updated in: rippled 1.5.0][] | -| `ledger_hash` | String | _(May be omitted)_ The identifying [Hash][] of the ledger version used to generate this response. [New in: rippled 0.90.0][] | -| `ledger_index` | Number | The [Ledger Index][] of the ledger version used to generate this response. [New in: rippled 0.90.0][] | -| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. [New in: rippled 0.90.0][] | +| `channels` | Array of Channel Objects | Payment channels owned by this `account`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}Updated in: rippled 1.5.0{% /badge %} | +| `ledger_hash` | String | _(May be omitted)_ The identifying [Hash][] of the ledger version used to generate this response. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}New in: rippled 0.90.0{% /badge %} | +| `ledger_index` | Number | The [Ledger Index][] of the ledger version used to generate this response. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}New in: rippled 0.90.0{% /badge %} | +| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}New in: rippled 0.90.0{% /badge %} | | `limit` | Number | _(May be omitted)_ The limit to how many channel objects were actually returned by this request. | | `marker` | [Marker][] | _(May be omitted)_ Server-defined value for pagination. Pass this to the next call to resume getting results where this call left off. Omitted when there are no additional pages after this one. | @@ -175,15 +173,15 @@ Each Channel Object has the following fields: | `account` | String | The owner of the channel, as an [Address][]. | | `amount` | String | The total amount of [XRP, in drops][] allocated to this channel. | | `balance` | String | The total amount of [XRP, in drops][], paid out from this channel, as of the ledger version used. (You can calculate the amount of XRP left in the channel by subtracting `balance` from `amount`.) | -| `channel_id` | String | A unique ID for this channel, as a 64-character hexadecimal string. This is also the [ID of the channel object](paychannel.html#paychannel-id-format) in the ledger's state data. | +| `channel_id` | String | A unique ID for this channel, as a 64-character hexadecimal string. This is also the [ID of the channel object](../../../protocol/ledger-data/ledger-entry-types/paychannel.md#paychannel-id-format) in the ledger's state data. | | `destination_account` | String | The destination account of the channel, as an [Address][]. Only this account can receive the XRP in the channel while it is open. | | `settle_delay` | Unsigned Integer | The number of seconds the payment channel must stay open after the owner of the channel requests to close it. | | `public_key` | String | _(May be omitted)_ The public key for the payment channel in the XRP Ledger's [base58][] format. Signed claims against this channel must be redeemed with the matching key pair. | | `public_key_hex` | String | _(May be omitted)_ The public key for the payment channel in hexadecimal format, if one was specified at channel creation. Signed claims against this channel must be redeemed with the matching key pair. | | `expiration` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], when this channel is set to expire. This expiration date is mutable. If this is before the close time of the most recent validated ledger, the channel is expired. | | `cancel_after` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], of this channel's immutable expiration, if one was specified at channel creation. If this is before the close time of the most recent validated ledger, the channel is expired. | -| `source_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [source tag](source-and-destination-tags.html) for payments through this payment channel, if one was specified at channel creation. This indicates the payment channel's originator or other purpose at the source account. Conventionally, if you bounce payments from this channel, you should specify this value in the `DestinationTag` of the return payment. | -| `destination_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [destination tag](source-and-destination-tags.html) for payments through this channel, if one was specified at channel creation. This indicates the payment channel's beneficiary or other purpose at the destination account. | +| `source_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [source tag](../../../../concepts/transactions/source-and-destination-tags.md) for payments through this payment channel, if one was specified at channel creation. This indicates the payment channel's originator or other purpose at the source account. Conventionally, if you bounce payments from this channel, you should specify this value in the `DestinationTag` of the return payment. | +| `destination_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md) for payments through this channel, if one was specified at channel creation. This indicates the payment channel's beneficiary or other purpose at the destination account. | ## Possible Errors @@ -192,6 +190,4 @@ Each Channel Object has the following fields: * `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md index 9b677d237e..61b3ee36d1 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md @@ -13,10 +13,9 @@ The `account_currencies` command retrieves a list of currencies that an account ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "account_currencies", @@ -24,9 +23,9 @@ An example of the request format: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_currencies", @@ -39,23 +38,24 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: account_currencies account [ledger_index|ledger_hash] rippled account_currencies rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#account_currencies) +[Try it! >](/resources/dev-tools/websocket-api-tool#account_currencies) The request includes the following parameters: | `Field` | Type | Required? | Description | |:---------------|:---------------------|:----------|-------------| -| `account` | String - [Address][] | Yes | Look up currencies this account can send or receive. [Updated in: rippled 1.11.0][] | +| `account` | String - [Address][] | Yes | Look up currencies this account can send or receive. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | | `ledger_hash` | String | No | A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | @@ -65,10 +65,9 @@ The following fields are deprecated and should not be provided: `account_index`, An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -101,9 +100,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -136,9 +135,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -151,8 +150,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -164,7 +164,7 @@ The response follows the [standard format][], with a successful result containin | `send_currencies` | Array of Strings | Array of [Currency Code][]s for currencies that this account can send. | | `validated` | Boolean | If `true`, this data comes from a validated ledger. | -**Note:** The currencies that an account can send or receive are defined based on a check of its trust lines. If an account has a trust line for a currency and enough room to increase its balance, it can receive that currency. If the trust line's balance can go down, the account can send that currency. This method _doesn't_ check whether the trust line is [frozen](freezes.html) or authorized. +**Note:** The currencies that an account can send or receive are defined based on a check of its trust lines. If an account has a trust line for a currency and enough room to increase its balance, it can receive that currency. If the trust line's balance can go down, the account can send that currency. This method _doesn't_ check whether the trust line is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) or authorized. ## Possible Errors @@ -173,6 +173,4 @@ The response follows the [standard format][], with a successful result containin * `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_info.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_info.md index a1a3f356e1..c71c2aa746 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_info.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_info.md @@ -15,10 +15,9 @@ The `account_info` command retrieves information about an account, its activity, An example of an account_info request: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -28,9 +27,9 @@ An example of an account_info request: "queue": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_info", @@ -43,27 +42,28 @@ An example of an account_info request: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: account_info account [ledger_index|ledger_hash] rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#account_info) +[Try it! >](/resources/dev-tools/websocket-api-tool#account_info) The request contains the following parameters: | `Field` | Type | Required? | Description | |:---------------|:---------------------|:----------|-------------| -| `account` | String - [Address][] | Yes | The account to look up. [Updated in: rippled 1.11.0][] | +| `account` | String - [Address][] | Yes | The account to look up. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | | `ledger_hash` | String | No | A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `queue` | Boolean | No | If `true`, return stats about [queued transactions](transaction-queue.html) sent by this account. Can only be used when querying for the data from the current open ledger. Not available from servers in [Reporting Mode][]. | -| `signer_lists` | Boolean | No | [API v1][]: If `true`, return any [SignerList objects](signerlist.html) associated with this account.
      [API v2][]: Identical to v1, but also returns an `invalidParams` error if you provide a non-boolean value. | +| `queue` | Boolean | No | If `true`, return stats about [queued transactions](../../../../concepts/transactions/transaction-queue.md) sent by this account. Can only be used when querying for the data from the current open ledger. Not available from servers in [Reporting Mode][]. | +| `signer_lists` | Boolean | No | [API v1][]: If `true`, return any [SignerList objects](../../../protocol/ledger-data/ledger-entry-types/signerlist.md) associated with this account.
      [API v2][]: Identical to v1, but also returns an `invalidParams` error if you provide a non-boolean value. | The following fields are deprecated and should not be provided: `ident`, `ledger`, `strict`. @@ -71,10 +71,9 @@ The following fields are deprecated and should not be provided: `ident`, `ledger An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 5, @@ -122,9 +121,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -170,9 +169,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -195,45 +194,46 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with the result containing the requested account, its data, and a ledger to which it applies, as the following fields: | `Field` | Type | Description | |:-----------------------|:--------|:------------------------------------------| -| `account_data` | Object | The [AccountRoot ledger object](accountroot.html) with this account's information, as stored in the ledger. | -| `account_flags` | Object | The account's flag statuses (see below), based on the `Flags` field of the account. [New in: rippled 1.11.0][] | -| `signer_lists` | Array | [API v1][]: _(Omitted unless the request specified `signer_lists` and at least one SignerList is associated with the account.)_ Array of [SignerList ledger objects](signerlist.html) associated with this account for [Multi-Signing](multi-signing.html). Since an account can own at most one SignerList, this array must have exactly one member if it is present. The field is nested under `account_data`.
      [API v2][]: Identical to API v1, but the field is returned in the root response instead. [Clio](https://github.com/XRPLF/clio) implements the API v2 behavior in all cases. | +| `account_data` | Object | The [AccountRoot ledger object](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) with this account's information, as stored in the ledger. | +| `account_flags` | Object | The account's flag statuses (see below), based on the `Flags` field of the account. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | +| `signer_lists` | Array | [API v1][]: _(Omitted unless the request specified `signer_lists` and at least one SignerList is associated with the account.)_ Array of [SignerList ledger objects](../../../protocol/ledger-data/ledger-entry-types/signerlist.md) associated with this account for [Multi-Signing](../../../../concepts/accounts/multi-signing.md). Since an account can own at most one SignerList, this array must have exactly one member if it is present. The field is nested under `account_data`.
      [API v2][]: Identical to API v1, but the field is returned in the root response instead. [Clio](https://github.com/XRPLF/clio) implements the API v2 behavior in all cases. | | `ledger_current_index` | Integer | _(Omitted if `ledger_index` is provided instead)_ The [ledger index][] of the current in-progress ledger, which was used when retrieving this information. | | `ledger_index` | Integer | _(Omitted if `ledger_current_index` is provided instead)_ The [ledger index][] of the ledger version used when retrieving this information. The information does not contain any changes from ledger versions newer than this one. | -| `queue_data` | Object | _(Omitted unless `queue` specified as `true` and querying the current open ledger.)_ Information about [queued transactions](transaction-cost.html#queued-transactions) sent by this account. This information describes the state of the local `rippled` server, which may be different from other servers in the [peer-to-peer XRP Ledger network](peer-protocol.html). Some fields may be omitted because the values are calculated "lazily" by the queuing mechanism. | -| `validated` | Boolean | True if this data is from a validated ledger version; if omitted or set to false, this data is not final. [New in: rippled 0.26.0][] | +| `queue_data` | Object | _(Omitted unless `queue` specified as `true` and querying the current open ledger.)_ Information about [queued transactions](../../../../concepts/transactions/transaction-cost.md#queued-transactions) sent by this account. This information describes the state of the local `rippled` server, which may be different from other servers in the [peer-to-peer XRP Ledger network](../../../../concepts/networks-and-servers/peer-protocol.md). Some fields may be omitted because the values are calculated "lazily" by the queuing mechanism. | +| `validated` | Boolean | True if this data is from a validated ledger version; if omitted or set to false, this data is not final. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.26.0" %}New in: rippled 0.26.0{% /badge %} | The `account_flags` field contains the following nested fields: | `Field` | Type | Description | |:-----------------------|:--------|:------------------------------------------| -| `defaultRipple` | Boolean | If `true`, the account allows [rippling](rippling.html) on its trust lines by default. | -| `depositAuth` | Boolean | If `true`, the account is using [Deposit Authorization](depositauth.html) and does not accept any payments from unknown parties. | -| `disableMasterKey` | Boolean | If `true`, the account's [master key pair](cryptographic-keys.html) is disabled. | -| `disallowIncomingCheck` | Boolean | If `true`, the account does not allow others to send [Checks](checks.html) to it. _(Requires the [DisallowIncoming amendment][])_ | -| `disallowIncomingNFTokenOffer` | Boolean | If `true`, the account does not allow others to make [NFT buy or sell offers](non-fungible-token-transfers.html) to it. _(Requires the [DisallowIncoming amendment][])_ | -| `disallowIncomingPayChan` | Boolean | If `true`, the account does not allow others to make [Payment Channels](payment-channels.html) to it. _(Requires the [DisallowIncoming amendment][])_ | -| `disallowIncomingTrustline` | Boolean | If `true`, the account does not allow others to make [trust lines](trust-lines-and-issuing.html) to it. _(Requires the [DisallowIncoming amendment][])_ | +| `defaultRipple` | Boolean | If `true`, the account allows [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on its trust lines by default. | +| `depositAuth` | Boolean | If `true`, the account is using [Deposit Authorization](../../../../concepts/accounts/depositauth.md) and does not accept any payments from unknown parties. | +| `disableMasterKey` | Boolean | If `true`, the account's [master key pair](../../../../concepts/accounts/cryptographic-keys.md) is disabled. | +| `disallowIncomingCheck` | Boolean | If `true`, the account does not allow others to send [Checks](../../../../concepts/payment-types/checks.md) to it. _(Requires the [DisallowIncoming amendment][])_ | +| `disallowIncomingNFTokenOffer` | Boolean | If `true`, the account does not allow others to make [NFT buy or sell offers](../../../../concepts/tokens/nfts/trading.md) to it. _(Requires the [DisallowIncoming amendment][])_ | +| `disallowIncomingPayChan` | Boolean | If `true`, the account does not allow others to make [Payment Channels](../../../../concepts/payment-types/payment-channels.md) to it. _(Requires the [DisallowIncoming amendment][])_ | +| `disallowIncomingTrustline` | Boolean | If `true`, the account does not allow others to make [trust lines](../../../../concepts/tokens/fungible-tokens/index.md) to it. _(Requires the [DisallowIncoming amendment][])_ | | `disallowIncomingXRP` | Boolean | If `true`, the account does not want to receive XRP from others. (This is advisory, and not enforced at a protocol level.) | | `globalFreeze` | Boolean | If `true`, all tokens issued by the account are currently frozen. | -| `noFreeze` | Boolean | If `true`, the account has permanently given up the abilities to freeze individual trust lines or end a global freeze. See [No Freeze](freezes.html#no-freeze) for details. | -| `passwordSpent` | Boolean | If `false`, the account can send a special [key reset transaction](transaction-cost.html#key-reset-transaction) with a transaction cost of 0. The protocol turns this flag on and off automatically; it is not controlled by a user-facing setting. | -| `requireAuthorization` | Boolean | If `true`, the account is using [Authorized Trust Lines](authorized-trust-lines.html) to limit who can hold the tokens it issues. | -| `requireDestinationTag` | Boolean | If `true`, the account [requires a destination tag](require-destination-tags.html) on all payments it receives. | +| `noFreeze` | Boolean | If `true`, the account has permanently given up the abilities to freeze individual trust lines or end a global freeze. See [No Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze) for details. | +| `passwordSpent` | Boolean | If `false`, the account can send a special [key reset transaction](../../../../concepts/transactions/transaction-cost.md#key-reset-transaction) with a transaction cost of 0. The protocol turns this flag on and off automatically; it is not controlled by a user-facing setting. | +| `requireAuthorization` | Boolean | If `true`, the account is using [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) to limit who can hold the tokens it issues. | +| `requireDestinationTag` | Boolean | If `true`, the account [requires a destination tag](../../../../tutorials/manage-account-settings/require-destination-tags.md) on all payments it receives. | The `queue_data` field, if present, contains the following nested fields: | `Field` | Type | Description | |:------------------------|:--------|:-----------------------------------------| | `txn_count` | Integer | Number of queued transactions from this address. | -| `auth_change_queued` | Boolean | (May be omitted) Whether a transaction in the queue changes this address's [ways of authorizing transactions](transactions.html#authorizing-transactions). If `true`, this address can queue no further transactions until that transaction has been executed or dropped from the queue. | +| `auth_change_queued` | Boolean | (May be omitted) Whether a transaction in the queue changes this address's [ways of authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). If `true`, this address can queue no further transactions until that transaction has been executed or dropped from the queue. | | `lowest_sequence` | Integer | (May be omitted) The lowest [Sequence Number][] among transactions queued by this address. | | `highest_sequence` | Integer | (May be omitted) The highest [Sequence Number][] among transactions queued by this address. | | `max_spend_drops_total` | String | (May be omitted) Integer amount of [drops of XRP][] that could be debited from this address if every transaction in the queue consumes the maximum amount of XRP possible. | @@ -243,8 +243,8 @@ Each object in the `transactions` array of `queue_data`, if present, may contain | `Field` | Type | Description | |:------------------|:--------|:-----------------------------------------------| -| `auth_change` | Boolean | Whether this transaction changes this address's [ways of authorizing transactions](transactions.html#authorizing-transactions). | -| `fee` | String | The [Transaction Cost](transaction-cost.html) of this transaction, in [drops of XRP][]. | +| `auth_change` | Boolean | Whether this transaction changes this address's [ways of authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). | +| `fee` | String | The [Transaction Cost](../../../../concepts/transactions/transaction-cost.md) of this transaction, in [drops of XRP][]. | | `fee_level` | String | The transaction cost of this transaction, relative to the minimum cost for this type of transaction, in [fee levels][]. | | `max_spend_drops` | String | The maximum amount of [XRP, in drops][], this transaction could send or destroy. | | `seq` | Integer | The [Sequence Number][] of this transaction. | @@ -256,6 +256,6 @@ Each object in the `transactions` array of `queue_data`, if present, may contain * `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -[fee levels]: transaction-cost.html#fee-levels -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +[fee levels]: ../../../../concepts/transactions/transaction-cost.md#fee-levels + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md index 4449a9be7c..baca45bb45 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md @@ -14,10 +14,9 @@ The `account_lines` method returns information about an account's trust lines, w An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -25,9 +24,9 @@ An example of the request format: "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_lines", @@ -38,17 +37,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: account_lines [] [|] rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#account_lines) +[Try it! >](/resources/dev-tools/websocket-api-tool#account_lines) The request accepts the following parameters: /Users/peterchen/xrpl-dev-portal/content/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md @@ -67,10 +67,9 @@ The following parameters are deprecated and may be removed without further notic An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -113,9 +112,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -158,8 +157,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* +{% tab label="Commandline" %} ```json { "result" : { @@ -404,8 +404,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the address of the account and an array of trust line objects. Specifically, the result object contains the following fields: @@ -429,12 +430,12 @@ Each trust line object has some combination of the following fields: | `limit_peer` | String | The maximum amount of currency that the counterparty account is willing to owe the perspective account | | `quality_in` | Unsigned Integer | Rate at which the account values incoming balances on this trust line, as a ratio of this value per 1 billion units. (For example, a value of 500 million represents a 0.5:1 ratio.) As a special case, 0 is treated as a 1:1 ratio. | | `quality_out` | Unsigned Integer | Rate at which the account values outgoing balances on this trust line, as a ratio of this value per 1 billion units. (For example, a value of 500 million represents a 0.5:1 ratio.) As a special case, 0 is treated as a 1:1 ratio. | -| `no_ripple` | Boolean | _(May be omitted)_ If `true`, this account has enabled the [No Ripple flag](rippling.html) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](ripplestate.html#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. [Updated in: rippled 1.7.0][] | -| `no_ripple_peer` | Boolean | _(May be omitted)_ If `true`, the peer account has enabled the [No Ripple flag](rippling.html) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](ripplestate.html#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. [Updated in: rippled 1.7.0][] | -| `authorized` | Boolean | _(May be omitted)_ If `true`, this account has [authorized this trust line](authorized-trust-lines.html). The default is `false`. | -| `peer_authorized`| Boolean | _(May be omitted)_ If `true`, the peer account has [authorized this trust line](authorized-trust-lines.html). The default is `false`. | -| `freeze` | Boolean | _(May be omitted)_ If `true`, this account has [frozen](freezes.html) this trust line. The default is `false`. | -| `freeze_peer` | Boolean | _(May be omitted)_ If `true`, the peer account has [frozen](freezes.html) this trust line. The default is `false`. | +| `no_ripple` | Boolean | _(May be omitted)_ If `true`, this account has enabled the [No Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Updated in: rippled 1.7.0{% /badge %} | +| `no_ripple_peer` | Boolean | _(May be omitted)_ If `true`, the peer account has enabled the [No Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Updated in: rippled 1.7.0{% /badge %} | +| `authorized` | Boolean | _(May be omitted)_ If `true`, this account has [authorized this trust line](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md). The default is `false`. | +| `peer_authorized`| Boolean | _(May be omitted)_ If `true`, the peer account has [authorized this trust line](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md). The default is `false`. | +| `freeze` | Boolean | _(May be omitted)_ If `true`, this account has [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) this trust line. The default is `false`. | +| `freeze_peer` | Boolean | _(May be omitted)_ If `true`, the peer account has [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) this trust line. The default is `false`. | ## Possible Errors @@ -444,6 +445,4 @@ Each trust line object has some combination of the following fields: * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. * `actMalformed` - If the `marker` field provided is not acceptable. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md index 4ec611ec93..2e9103f9e0 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md @@ -15,12 +15,11 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## Request Format An example of the request format: -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "account_nfts", @@ -28,9 +27,9 @@ An example of the request format: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_nfts", @@ -40,10 +39,11 @@ An example of the request format: }] } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#account_nfts) +[Try it! >](/resources/dev-tools/websocket-api-tool#account_nfts) The request includes the following parameters: @@ -59,10 +59,9 @@ The request includes the following parameters: ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -93,9 +92,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -125,8 +124,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -145,10 +145,10 @@ Each object in the `account_nfts` array represents one [NFToken][] and has the f | `Field` | Type | Description | |:---------------|:---------------------|:-------------------------------------| -| `Flags` | Number | A bit-map of boolean flags enabled for this NFToken. See [NFToken Flags](nftoken.html#nftoken-flags) for possible values. | +| `Flags` | Number | A bit-map of boolean flags enabled for this NFToken. See [NFToken Flags](../../../protocol/data-types/nftoken.md#nftoken-flags) for possible values. | | `Issuer` | String - [Address][] | The account that issued this NFToken. | | `NFTokenID` | String | The unique identifier of this NFToken, in hexadecimal. | -| `NFTokenTaxon` | Number | The unscrambled version of this token's [taxon](nftoken.html#nftokentaxon). Several tokens with the same taxon might represent instances of a limited series. | +| `NFTokenTaxon` | Number | The unscrambled version of this token's [taxon](../../../protocol/data-types/nftoken.md#nftokentaxon). Several tokens with the same taxon might represent instances of a limited series. | | `URI` | String | The URI data associated with this NFToken, in hexadecimal. | | `nft_serial` | Number | The token sequence number of this NFToken, which is unique for its issuer. | @@ -159,6 +159,4 @@ Each object in the `account_nfts` array represents one [NFToken][] and has the f * `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md index 1b1c574d04..9e9f0bb631 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md @@ -13,25 +13,24 @@ The `account_objects` command returns the raw [ledger format][] for all ledger e The types of objects that may appear in the `account_objects` response include: -- [Offer entries](offer.html) for orders that are currently live, unfunded, or expired but not yet removed. (See [Lifecycle of an Offer](offers.html#lifecycle-of-an-offer) for more information.) -- [RippleState entries](ripplestate.html) for trust lines where this account's side is not in the default state. -- The account's [SignerList](signerlist.html), if the account has [multi-signing](multi-signing.html) enabled. -- [Escrow entries](escrow.html) for held payments that have not yet been executed or canceled. -- [PayChannel entries](paychannel.html) for open payment channels. -- [Check entries](check.html) for pending Checks. -- [DepositPreauth entries](depositpreauth-object.html) for deposit preauthorizations. -- [Ticket entries](tickets.html) for Tickets. -- [NFTokenOffer entries](nftokenoffer.html) for offers to buy or sell an NFT. -- [NFTokenPage entries](nftokenpage.html) for collections of NFTs. [New in: rippled 1.11.0][] +- [Offer entries](../../../protocol/ledger-data/ledger-entry-types/offer.md) for orders that are currently live, unfunded, or expired but not yet removed. (See [Lifecycle of an Offer](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) for more information.) +- [RippleState entries](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md) for trust lines where this account's side is not in the default state. +- The account's [SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md), if the account has [multi-signing](../../../../concepts/accounts/multi-signing.md) enabled. +- [Escrow entries](../../../../concepts/payment-types/escrow.md) for held payments that have not yet been executed or canceled. +- [PayChannel entries](../../../protocol/ledger-data/ledger-entry-types/paychannel.md) for open payment channels. +- [Check entries](../../../protocol/ledger-data/ledger-entry-types/check.md) for pending Checks. +- [DepositPreauth entries](../../../protocol/ledger-data/ledger-entry-types/depositpreauth.md) for deposit preauthorizations. +- [Ticket entries](../../../../concepts/accounts/tickets.md) for Tickets. +- [NFTokenOffer entries](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md) for offers to buy or sell an NFT. +- [NFTokenPage entries](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md) for collections of NFTs. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 8, @@ -43,9 +42,9 @@ An example of the request format: "limit": 10 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_objects", @@ -60,23 +59,23 @@ An example of the request format: ] } ``` +{% /tab %} - -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: account_objects [] rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: | `Field` | Type | Required? | Description | |:-------------------------|:-----------------|:----------|-------------| | `account` | String | Yes | A unique identifier for the account, most commonly the account's [Address][]. | -| `deletion_blockers_only` | Boolean | No | If `true`, the response only includes objects that would block this account from [being deleted](deleting-accounts.html). The default is `false`. [New in: rippled 1.4.0][] | +| `deletion_blockers_only` | Boolean | No | If `true`, the response only includes objects that would block this account from [being deleted](../../../../concepts/accounts/deleting-accounts.md). The default is `false`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} | | `ledger_hash` | [Hash][] | No | A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `limit` | Number | No | The maximum number of objects to include in the results. Must be within the inclusive range `10` to `400` on non-admin connections. The default is `200`. | @@ -89,10 +88,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 8, @@ -350,9 +348,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -609,9 +607,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -1201,8 +1199,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -1224,8 +1223,4 @@ The response follows the [standard format][], with a successful result containin * `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md index 2aee1702bb..7dd8d8bbdf 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md @@ -8,16 +8,15 @@ labels: # account_offers [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AccountOffers.cpp "Source") -The `account_offers` method retrieves a list of [offers](offers.html) made by a given [account](accounts.html) that are outstanding as of a particular [ledger version](ledgers.html). +The `account_offers` method retrieves a list of [offers](../../../../concepts/tokens/decentralized-exchange/offers.md) made by a given [account](../../../../concepts/accounts/accounts.md) that are outstanding as of a particular [ledger version](../../../../concepts/ledgers/index.md). ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 9, @@ -25,9 +24,9 @@ An example of the request format: "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_offers", @@ -38,17 +37,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: account_offers account [ledger_index] rippled account_offers rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM current ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#account_offers) +[Try it! >](/resources/dev-tools/websocket-api-tool#account_offers) A request can include the following parameters: @@ -66,10 +66,9 @@ The following parameters are deprecated should not be provided: `ledger`, `stric An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 9, @@ -107,9 +106,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -157,9 +156,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -183,8 +182,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -203,11 +203,11 @@ Each offer object contains the following fields: | `Field` | Type | Description | |:-------------|:-----------------|:-------------------------------------------| | `flags` | Unsigned integer | Options set for this offer entry as bit-flags. | -| `seq` | Unsigned integer | Sequence number of the transaction that created this entry. (Transaction [sequence numbers](basic-data-types.html#account-sequence) are relative to accounts.) | +| `seq` | Unsigned integer | Sequence number of the transaction that created this entry. (Transaction [sequence numbers](../../../protocol/data-types/basic-data-types.md#account-sequence) are relative to accounts.) | | `taker_gets` | String or Object | The amount the account accepting the offer receives, as a String representing an amount in XRP, or a currency specification object. (See [Specifying Currency Amounts][Currency Amount]) | | `taker_pays` | String or Object | The amount the account accepting the offer provides, as a String representing an amount in XRP, or a currency specification object. (See [Specifying Currency Amounts][Currency Amount]) | -| `quality` | String | The exchange rate of the offer, as the ratio of the original `taker_pays` divided by the original `taker_gets`. When executing offers, the offer with the most favorable (lowest) quality is consumed first; offers with the same quality are executed from oldest to newest. [New in: rippled 0.29.0][] | -| `expiration` | Unsigned integer | (May be omitted) A time after which this offer is considered unfunded, as the number of [seconds since the Ripple Epoch][]. See also: [Offer Expiration](offers.html#offer-expiration). [New in: rippled 0.30.1][] | +| `quality` | String | The exchange rate of the offer, as the ratio of the original `taker_pays` divided by the original `taker_gets`. When executing offers, the offer with the most favorable (lowest) quality is consumed first; offers with the same quality are executed from oldest to newest. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}New in: rippled 0.29.0{% /badge %} | +| `expiration` | Unsigned integer | (May be omitted) A time after which this offer is considered unfunded, as the number of [seconds since the Ripple Epoch][]. See also: [Offer Expiration](../../../../concepts/tokens/decentralized-exchange/offers.md#offer-expiration). {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}New in: rippled 0.30.1{% /badge %} | ## Possible Errors @@ -217,6 +217,4 @@ Each offer object contains the following fields: * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. * `actMalformed` - The `marker` field provided is incorrect. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md b/content/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md index 28062c844a..3e8185323d 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md @@ -15,10 +15,9 @@ The `account_tx` method retrieves a list of validated transactions that involve An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -31,9 +30,9 @@ An example of the request format: "forward": false } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_tx", @@ -49,25 +48,26 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh # Syntax: account_tx account [ledger_index_min [ledger_index_max]] [limit] [offset] [binary] [count] [descending] # For binary/count/descending, use the parameter name for true and omit for false. rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descending ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#account_tx) +[Try it! >](/resources/dev-tools/websocket-api-tool#account_tx) The request includes the following parameters: | `Field` | Type | Description | |:-------------------|:-------------------------------------------|:-----------| | `account` | String | A unique identifier for the account, most commonly the account's address. | -| `tx_type` | String | _(Optional)_ **Clio Only** Return only transactions of a specific type, such as "Clawback", "AccountSet", "AccountDelete", et al. Case-insensitive. Supports any transaction type except `AMM*` (See [Transaction Types](transaction-types.html).) [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | +| `tx_type` | String | _(Optional)_ **Clio Only** Return only transactions of a specific type, such as "Clawback", "AccountSet", "AccountDelete", et al. Case-insensitive. Supports any transaction type except `AMM*` (See [Transaction Types](../../../protocol/transactions/types/index.md).) {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | | `ledger_index_min` | Integer | [API v1][]: _(Optional)_ Use to specify the earliest ledger to include transactions from. A value of `-1` instructs the server to use the earliest validated ledger version available.
      [API v2][]: Identical to v1, but also returns a `lgrIdxMalformed` error if a value is specified beyond the range of ledgers the server has. | | `ledger_index_max` | Integer | [API v1][]: _(Optional)_ Use to specify the most recent ledger to include transactions from. A value of `-1` instructs the server to use the most recent validated ledger version available.
      [API v2][]: Identical to v1, but also returns a `lgrIdxMalformed` error if a value is specified beyond the range of ledgers the server has. | | `ledger_hash` | String | _(Optional)_ Use to look for transactions from a single ledger only. (See [Specifying Ledgers][].) | @@ -91,10 +91,9 @@ In the time between requests, `"ledger_index_min": -1` and `"ledger_index_max": An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -242,9 +241,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -392,9 +391,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -425,8 +424,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -458,8 +458,6 @@ Each transaction object includes the following fields, depending on whether it w * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. * `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly. * `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist but the server does not have it. -* `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](server-doesnt-sync.html). +* `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](../../../../infrastructure/troubleshooting/server-doesnt-sync.md). - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md b/content/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md index 2945c9abc8..bcadae9284 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md @@ -9,19 +9,18 @@ labels: # gateway_balances [[Source]](https://github.com/XRPLF/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/GatewayBalances.cpp "Source") -The `gateway_balances` command calculates the total balances issued by a given account, optionally excluding amounts held by [operational addresses](account-types.html). [New in: rippled 0.28.2][] +The `gateway_balances` command calculates the total balances issued by a given account, optionally excluding amounts held by [operational addresses](../../../../concepts/accounts/account-types.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.2" %}New in: rippled 0.28.2{% /badge %} **Caution:** Some public servers disable this API method because it can require a large amount of processing. ## Request Format An example of the request format: -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_gateway_balances_1", @@ -32,9 +31,9 @@ An example of the request format: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "gateway_balances", @@ -51,21 +50,23 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* +{% tab label="Commandline" %} ```sh rippled json gateway_balances ' {"account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"],"ledger_index": "validated","strict": true} ' ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: | `Field` | Type | Description | |:---------------|:---------------------------|:-------------------------------| -| `account` | String | The [Address][] to check. This should be the [issuing address](account-types.html) | +| `account` | String | The [Address][] to check. This should be the [issuing address](../../../../concepts/accounts/account-types.md) | | `strict` | Boolean | _(Optional)_ If true, only accept an address or public key for the account parameter. Defaults to false. | -| `hotwallet` | String or Array | _(Optional)_ An [operational address](account-types.html) to exclude from the balances issued, or an array of such addresses. | +| `hotwallet` | String or Array | _(Optional)_ An [operational address](../../../../concepts/accounts/account-types.md) to exclude from the balances issued, or an array of such addresses. | | `ledger_hash` | String | _(Optional)_ A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger version to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | @@ -73,10 +74,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -142,9 +142,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK { @@ -209,8 +209,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* +{% tab label="Commandline" %} ```json { "result" : { @@ -276,8 +277,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -286,7 +288,7 @@ The response follows the [standard format][], with a successful result containin | `account` | String - [Address][] | The address of the account that issued the balances. | | `obligations` | Object | (Omitted if empty) Total amounts issued to addresses not excluded, as a map of currencies to the total value issued. | | `balances` | Object | _(Omitted if empty)_ Amounts issued to the `hotwallet` addresses from the request. The keys are addresses and the values are arrays of currency amounts they hold. | -| `assets` | Object | _(Omitted if empty)_ Total amounts held that are issued by others. In the recommended configuration, the [issuing address](account-types.html) should have none. | +| `assets` | Object | _(Omitted if empty)_ Total amounts held that are issued by others. In the recommended configuration, the [issuing address](../../../../concepts/accounts/account-types.md) should have none. | | `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used to generate this response. | | `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger version that was used to generate this response. | | `ledger_current_index` | Number - [Ledger Index][] | _(Omitted if `ledger_current_index` is provided)_ The [ledger index][] of the current in-progress ledger version, which was used to retrieve this information. | @@ -299,6 +301,4 @@ The response follows the [standard format][], with a successful result containin * `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/index.md b/content/references/http-websocket-apis/public-api-methods/account-methods/index.md index 4d061dad75..62028170ec 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/index.md @@ -1,8 +1,12 @@ --- html: account-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Account Methods -An account in the XRP Ledger represents a holder of XRP and a sender of transactions. Use these methods to work with account info. \ No newline at end of file +An account in the XRP Ledger represents a holder of XRP and a sender of transactions. Use these methods to work with account info. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md b/content/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md index beba491e7e..d97ae809bd 100644 --- a/content/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +++ b/content/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md @@ -8,18 +8,17 @@ labels: # noripple_check [[Source]](https://github.com/XRPLF/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/NoRippleCheck.cpp "Source") -The `noripple_check` command provides a quick way to check the status of [the Default Ripple field for an account and the No Ripple flag of its trust lines](rippling.html), compared with the recommended settings. +The `noripple_check` command provides a quick way to check the status of [the Default Ripple field for an account and the No Ripple flag of its trust lines](../../../../concepts/tokens/fungible-tokens/rippling.md), compared with the recommended settings. ## Request Format An example of the request format: -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -31,9 +30,9 @@ An example of the request format: "transactions": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "noripple_check", @@ -48,8 +47,9 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -58,7 +58,7 @@ The request includes the following parameters: |:---------------|:---------------------------|:-------------------------------| | `account` | String | A unique identifier for the account, most commonly the account's address. | | `role` | String | Whether the address refers to a `gateway` or `user`. Recommendations depend on the role of the account. Issuers must have Default Ripple enabled and must disable No Ripple on all trust lines. Users should have Default Ripple disabled, and should enable No Ripple on all trust lines. | -| `transactions` | Boolean | [API v1][]: _(Optional)_ If `true`, include an array of suggested [transactions](transaction-formats.html), as JSON objects, that you can sign and submit to fix the problems. The default is `false`.
      [API v2][]: Identical to v1, but also returns an `invalidParams` error if you use a non-boolean value. | +| `transactions` | Boolean | [API v1][]: _(Optional)_ If `true`, include an array of suggested [transactions](../../../protocol/transactions/index.md), as JSON objects, that you can sign and submit to fix the problems. The default is `false`.
      [API v2][]: Identical to v1, but also returns an `invalidParams` error if you use a non-boolean value. | | `limit` | Unsigned Integer | _(Optional)_ The maximum number of trust line problems to include in the results. Defaults to 300. | | `ledger_hash` | String | _(Optional)_ A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | @@ -67,10 +67,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -120,9 +119,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -172,8 +171,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -181,7 +181,7 @@ The response follows the [standard format][], with a successful result containin |:-----------------------|:-------|:-------------------------------------------| | `ledger_current_index` | Number | The [ledger index][] of the ledger used to calculate these results. | | `problems` | Array | Array of strings with human-readable descriptions of the problems. This includes up to one entry if the account's Default Ripple setting is not as recommended, plus up to `limit` entries for trust lines whose No Ripple setting is not as recommended. | -| `transactions` | Array | (May be omitted) If the request specified `transactions` as `true`, this is an array of JSON objects, each of which is the JSON form of a [transaction](transaction-formats.html) that should fix one of the described problems. The length of this array is the same as the `problems` array, and each entry is intended to fix the problem described at the same index into that array. | +| `transactions` | Array | (May be omitted) If the request specified `transactions` as `true`, this is an array of JSON objects, each of which is the JSON form of a [transaction](../../../protocol/transactions/index.md) that should fix one of the described problems. The length of this array is the same as the `problems` array, and each entry is intended to fix the problem described at the same index into that array. | ## Possible Errors @@ -190,6 +190,4 @@ The response follows the [standard format][], with a successful result containin * `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md b/content/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md index 36bc90de65..ad5ca90f6d 100644 --- a/content/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md +++ b/content/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md @@ -8,28 +8,24 @@ labels: # ledger [[Source]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/Ledger.cpp "Source") -The `ledger` command retrieves information about the public [ledger](ledgers.html). [New in: Clio v1.0.0](https://github.com/XRPLF/clio/releases/tag/1.0.0 "BADGE_BLUE") +The `ledger` command retrieves information about the public [ledger](../../../../concepts/ledgers/index.md). {% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}New in: Clio v1.0.0{% /badge %} Note that the Clio server returns validated ledger data by default. ## Request Format An example of the request format: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/ledger-clio/wsrpc-request.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/ledger-clio/wsrpc-request.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/ledger-clio/jsonrpc-request.json" language="json" /%} +{% /tab %} -*JSON-RPC* - -```json -{% include '_api-examples/ledger-clio/jsonrpc-request.json' %} -``` - - +{% /tabs %} @@ -47,35 +43,31 @@ The request can contain the following parameters: The `ledger` field is deprecated and may be removed without further notice. -> **Note:** The `ledger` command in Clio does not support the following fields that are supported by [ledger command in rippled](ledger.html): -> -> * `accounts` -> * `full` -> * `queue` -> -> Clio will **always** forward the request to `rippled` when any of the above fields is set to `true`. +{% admonition type="info" name="Note" %} +The `ledger` command in Clio does not support the following fields that are supported by [ledger command in rippled](../ledger-methods/ledger.md): + +* `accounts` +* `full` +* `queue` + +Clio will **always** forward the request to `rippled` when any of the above fields is set to `true`. +{% /admonition %} ## Response Format An example of a successful response: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/ledger-clio/wsrpc-response.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/ledger-clio/wsrpc-response.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/ledger-clio/jsonrpc-response.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* - -```json -200 OK - -{% include '_api-examples/ledger-clio/jsonrpc-response.json' %} -``` - - +{% /tabs %} The response follows the [standard format][], with a successful result containing information about the ledger, including the following fields: @@ -83,8 +75,8 @@ The response follows the [standard format][], with a successful result containin |:-------------------------------|:--------|:----------------------------------| | `ledger` | Object | The complete header data of this ledger. | | `ledger.account_hash` | String | Hash of all account state information in this ledger, as hex | -| `ledger.accountState` | Array | (Omitted unless requested) All the [account-state information](ledger-data-formats.html) in this ledger. | -| `ledger.close_flags` | Integer | A bit-map of [flags relating to the closing of this ledger](ledger-header.html#close-flags). | +| `ledger.accountState` | Array | (Omitted unless requested) All the [account-state information](../../../protocol/ledger-data/index.md) in this ledger. | +| `ledger.close_flags` | Integer | A bit-map of [flags relating to the closing of this ledger](../../../protocol/ledger-data/ledger-header.md#close-flags). | | `ledger.close_time` | Integer | The time this ledger was closed, in [seconds since the Ripple Epoch][]. | | `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format. Always uses the UTC time zone. | | `ledger.close_time_resolution` | Integer | Ledger close times are rounded to within this many seconds. | @@ -101,11 +93,11 @@ The response follows the [standard format][], with a successful result containin | `validated` | Boolean | _(May be omitted)_ If `true`, this is a validated ledger version. If omitted or set to `false`, this ledger's data is not final. | | `diff` | Object | _(Omitted unless requested with the `diff` parameter)_ Object containing an array of hashes that were added, modified, or deleted as part of applying transactions for the ledger. | -If the request specified `"owner_funds": true` and expanded transactions, the response has a field `owner_funds` in the `metaData` object of each [OfferCreate transaction][]. The purpose of this field is to make it easier to track the [funding status of offers](offers.html#lifecycle-of-an-offer) with each new validated ledger. This field is defined slightly differently than the version of this field in [Order Book subscription streams](subscribe.html#order-book-streams): +If the request specified `"owner_funds": true` and expanded transactions, the response has a field `owner_funds` in the `metaData` object of each [OfferCreate transaction][]. The purpose of this field is to make it easier to track the [funding status of offers](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) with each new validated ledger. This field is defined slightly differently than the version of this field in [Order Book subscription streams](../subscription-methods/subscribe.md#order-book-streams): | `Field` | Value | Description | |:--------------|:-------|:----------------------------------------------------| -| `owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after the execution of all transactions in this ledger. This does not check whether the currency amount is [frozen](freezes.html). | +| `owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after the execution of all transactions in this ledger. This does not check whether the currency amount is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | If the request specified `"diff": true`, the response has an object `diff`. The fields of this object are as follows: @@ -117,9 +109,7 @@ If the request specified `"diff": true`, the response has an object `diff`. The ### Response When `diff` is `true` -````json -{% include '_api-examples/ledger-clio/jsonrpc-diff-response.json' %} -```` +`{% code-snippet file="/_api-examples/ledger-clio/jsonrpc-diff-response.json" language="json" /%}` ## Possible Errors @@ -127,7 +117,4 @@ If the request specified `"diff": true`, the response has an object `diff`. The * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md b/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md index 121cbe6f74..92cf2ee09e 100644 --- a/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md +++ b/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md @@ -9,17 +9,16 @@ labels: [[Source]](https://github.com/XRPLF/clio/blob/4a5cb962b6971872d150777881801ce27ae9ed1a/src/rpc/handlers/NFTHistory.cpp "Source") -The `nft_history` command asks the Clio server for past transaction metadata for the [NFT](non-fungible-tokens.html) being queried. [New in: Clio v1.1.0](https://github.com/XRPLF/clio/releases/tag/1.1.0 "BADGE_BLUE") +The `nft_history` command asks the Clio server for past transaction metadata for the [NFT](../../../../concepts/tokens/nfts/index.md) being queried. {% badge href="https://github.com/XRPLF/clio/releases/tag/1.1.0" %}New in: Clio v1.1.0{% /badge %} **Note** `nft_history` returns only _successful_ transactions associated with the NFT. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -27,9 +26,9 @@ An example of the request format: "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_history", @@ -40,8 +39,9 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} @@ -66,10 +66,9 @@ The request contains the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -152,9 +151,9 @@ An example of a successful response: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -235,15 +234,15 @@ An example of a successful response: ] } ``` +{% /tab %} - +{% /tabs %} With the `binary` parameter set to _true_, you receive a compact response that uses hex strings. It's not human readable, but much more concise. - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 0, @@ -271,9 +270,9 @@ With the `binary` parameter set to _true_, you receive a compact response that u ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -300,7 +299,9 @@ With the `binary` parameter set to _true_, you receive a compact response that u } ``` - +{% /tab %} + +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -326,7 +327,7 @@ Each transaction object includes the following fields, depending on whether it w | `tx_blob` | String | (Binary mode only) Unique hashed String representing the transaction. | | `validated` | Boolean | Whether or not the transaction is included in a validated ledger. Any transaction not yet in a validated ledger is subject to change. | -For definitions of the fields returned in the `tx` object, see [Transaction Metadata](transaction-metadata.html). +For definitions of the fields returned in the `tx` object, see [Transaction Metadata](../../../protocol/transactions/metadata.md). ## Possible Errors @@ -334,8 +335,6 @@ For definitions of the fields returned in the `tx` object, see [Transaction Meta * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. * `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly. * `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist but the server does not have it. -* `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](server-doesnt-sync.html). - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +* `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](../../../../infrastructure/troubleshooting/server-doesnt-sync.md). +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md b/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md index 9ddf873cc7..ef3c7733a7 100644 --- a/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +++ b/content/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md @@ -8,15 +8,14 @@ labels: # nft_info [[Source]](https://github.com/XRPLF/clio/blob/4a5cb962b6971872d150777881801ce27ae9ed1a/src/rpc/handlers/NFTInfo.cpp "Source") -The `nft_info` command asks the Clio server for information about the [NFT](non-fungible-tokens.html) being queried. [New in: Clio v1.1.0](https://github.com/XRPLF/clio/releases/tag/1.1.0 "BADGE_BLUE") +The `nft_info` command asks the Clio server for information about the [NFT](../../../../concepts/tokens/nfts/index.md) being queried. {% badge href="https://github.com/XRPLF/clio/releases/tag/1.1.0" %}New in: Clio v1.1.0{% /badge %} ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -24,9 +23,9 @@ An example of the request format: "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_info", @@ -37,8 +36,9 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} @@ -57,10 +57,9 @@ If you do not specify a ledger version, Clio uses the latest validated ledger. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -90,9 +89,9 @@ An example of a successful response: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -121,8 +120,9 @@ An example of a successful response: ] } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing an `nft_info` response object with some arrangement of the following fields: @@ -133,7 +133,7 @@ The response follows the [standard format][], with a successful result containin | `owner` | String | The account ID of this NFT's owner at this ledger index. | | `is_burned` | Boolean | Returns `true` if the NFT is burned at this ledger, or `false` otherwise. | | `flags ` | Integer | The flag set of this NFT. | -| `transfer_fee` | Integer | The transfer fee of this NFT. See [NFTokenMint Fields](nftokenmint.html#nftokenmint-fields) for more information on transfer fees. | +| `transfer_fee` | Integer | The transfer fee of this NFT. See [NFTokenMint Fields](../../../protocol/transactions/types/nftokenmint.md#nftokenmint-fields) for more information on transfer fees. | | `issuer` | String | The account ID which denotes the issuer of this NFT. | | `nft_taxon` | Integer | The NFT’s taxon. | | `nft_sequence` | Integer | The NFT’s sequence number. | @@ -144,7 +144,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md b/content/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md index 53cbfec1a3..ba8d674d36 100644 --- a/content/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md +++ b/content/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md @@ -8,25 +8,24 @@ labels: # server_info [[Source]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/ServerInfo.cpp "Source") -The `server_info` command asks the [Clio server](the-clio-server.html) for a human-readable version of various information about the Clio server being queried. For `rippled` servers, see [`server_info` (`rippled`)](server_info.html) instead. [New in: Clio v1.0.0](https://github.com/XRPLF/clio/releases/tag/1.0.0 "BADGE_BLUE") +The `server_info` command asks the [Clio server](../../../../concepts/networks-and-servers/the-clio-server.md) for a human-readable version of various information about the Clio server being queried. For `rippled` servers, see [`server_info` (`rippled`)](../server-info-methods/server_info.md) instead. {% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}New in: Clio v1.0.0{% /badge %} ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "server_info" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "server_info", @@ -35,8 +34,9 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} @@ -48,10 +48,9 @@ When a client connects to the Clio server over `localhost`, the response include An example of a successful response when client connects over `localhost`: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -261,9 +260,9 @@ An example of a successful response when client connects over `localhost`: ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -474,15 +473,15 @@ An example of a successful response when client connects over `localhost`: ] } ``` +{% /tab %} - +{% /tabs %} An example of a successful response when client does not connect over `localhost`: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -518,9 +517,9 @@ An example of a successful response when client does not connect over `localhost ] } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -557,8 +556,9 @@ An example of a successful response when client does not connect over `localhost ] } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing an `info` object as its only field. @@ -583,15 +583,15 @@ The `info` object may have some arrangement of the following fields: | `subscriptions.account` | | | | `subscriptions.accounts_proposed` | | | | `subscriptions.books` | | | -| `time` | String | The current time in UTC, according to the server's clock. [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | -| `uptime` | Number | Number of consecutive seconds that the server has been operational. [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | -| `amendment_blocked` | Boolean | _(May be omitted)_ Whether the Clio server is [Amendment Blocked](amendments.html#amendment-blocked-clio-servers) [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | -| `load_factor` | Number | The load-scaled open ledger transaction cost the server is currently enforcing, as a multiplier on the base transaction cost. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the [individual server's load factor](transaction-cost.html#local-load-cost), the cluster's load factor, the [open ledger cost](transaction-cost.html#open-ledger-cost) and the overall network's load factor. | +| `time` | String | The current time in UTC, according to the server's clock. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `uptime` | Number | Number of consecutive seconds that the server has been operational. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `amendment_blocked` | Boolean | _(May be omitted)_ Whether the Clio server is [Amendment Blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-clio-servers) {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `load_factor` | Number | The load-scaled open ledger transaction cost the server is currently enforcing, as a multiplier on the base transaction cost. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the [individual server's load factor](../../../../concepts/transactions/transaction-cost.md#local-load-cost), the cluster's load factor, the [open ledger cost](../../../../concepts/transactions/transaction-cost.md#open-ledger-cost) and the overall network's load factor. | | `clio_version` | String | The version number of the running Clio server. | -| `libxrpl_version` | String | The version number of the `libxrpl` library this Clio server was built against. [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | +| `libxrpl_version` | String | The version number of the `libxrpl` library this Clio server was built against. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | | `validation_quorum` | Number | _(May be omitted)_ Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. This value is obtained from `rippled`. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. | | `rippled_version` | String | _(May be omitted)_ The version number of the running `rippled` server that the Clio server is connected to. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. | -| `network_id` | String | _(May be omitted)_ The network ID of the network that the `rippled` this Clio server is connected to is operating on. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") | +| `network_id` | String | _(May be omitted)_ The network ID of the network that the `rippled` this Clio server is connected to is operating on. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | | `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger. If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. | | `validated_ledger.age` | Number | The time since the ledger was closed, in seconds. | | `validated_ledger.base_fee_xrp` | Number | Base fee, in XRP. This may be represented in scientific notation such as `1e-05` for 0.00001. | @@ -623,8 +623,4 @@ The `info` object may have some arrangement of the following fields: * Any of the [universal error types][]. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/clio-server/index.md b/content/references/http-websocket-apis/public-api-methods/clio-server/index.md index 66c70a6695..ea1ad9a328 100644 --- a/content/references/http-websocket-apis/public-api-methods/clio-server/index.md +++ b/content/references/http-websocket-apis/public-api-methods/clio-server/index.md @@ -1,8 +1,12 @@ --- html: clio-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Clio Server -Use these methods to retrieve information using Clio server APIs. \ No newline at end of file +Use these methods to retrieve information using Clio server APIs. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/index.md b/content/references/http-websocket-apis/public-api-methods/index.md index 532c4f1c00..f0c8f296a9 100644 --- a/content/references/http-websocket-apis/public-api-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/index.md @@ -9,107 +9,107 @@ labels: --- # Public API Methods -Communicate directly with an [XRP Ledger server](xrpl-servers.html) using the public API methods. Public methods are not necessarily meant for the general public, but they are used by any client attached to the server. Think of public methods as being for members or customers of the organization running the server. +Communicate directly with an [XRP Ledger server](../../../concepts/networks-and-servers/index.md) using the public API methods. Public methods are not necessarily meant for the general public, but they are used by any client attached to the server. Think of public methods as being for members or customers of the organization running the server. -## [Account Methods](account-methods.html) +## [Account Methods](account-methods/index.md) An account in the XRP Ledger represents a holder of XRP and a sender of transactions. Use these methods to work with account info. -* **[`account_channels`](account_channels.html)** - Get a list of payment channels where the account is the source of the channel. -* **[`account_currencies`](account_currencies.html)** - Get a list of currencies an account can send or receive. -* **[`account_info`](account_info.html)** - Get basic data about an account. -* **[`account_lines`](account_lines.html)** - Get info about an account's trust lines. -* **[`account_nfts`](account_nfts.html)** - Get a list of non-fungible tokens owned by an account. -* **[`account_objects`](account_objects.html)** - Get all ledger objects owned by an account. -* **[`account_offers`](account_offers.html)** - Get info about an account's currency exchange offers. -* **[`account_tx`](account_tx.html)** - Get info about an account's transactions. -* **[`gateway_balances`](gateway_balances.html)** - Calculate total amounts issued by an account. -* **[`noripple_check`](noripple_check.html)** - Get recommended changes to an account's Default Ripple and No Ripple settings. +* **[`account_channels`](account-methods/account_channels.md)** - Get a list of payment channels where the account is the source of the channel. +* **[`account_currencies`](account-methods/account_currencies.md)** - Get a list of currencies an account can send or receive. +* **[`account_info`](account-methods/account_info.md)** - Get basic data about an account. +* **[`account_lines`](account-methods/account_lines.md)** - Get info about an account's trust lines. +* **[`account_nfts`](account-methods/account_nfts.md)** - Get a list of non-fungible tokens owned by an account. +* **[`account_objects`](account-methods/account_objects.md)** - Get all ledger objects owned by an account. +* **[`account_offers`](account-methods/account_offers.md)** - Get info about an account's currency exchange offers. +* **[`account_tx`](account-methods/account_tx.md)** - Get info about an account's transactions. +* **[`gateway_balances`](account-methods/gateway_balances.md)** - Calculate total amounts issued by an account. +* **[`noripple_check`](account-methods/noripple_check.md)** - Get recommended changes to an account's Default Ripple and No Ripple settings. -## [Ledger Methods](ledger-methods.html) +## [Ledger Methods](ledger-methods/index.md) A ledger version contains a header, a transaction tree, and a state tree, which contain account settings, trust lines, balances, transactions, and other data. Use these methods to retrieve ledger info. -* **[`ledger`](ledger.html)** - Get info about a ledger version. -* **[`ledger_closed`](ledger_closed.html)** - Get the latest closed ledger version. -* **[`ledger_current`](ledger_current.html)** - Get the current working ledger version. -* **[`ledger_data`](ledger_data.html)** - Get the raw contents of a ledger version. -* **[`ledger_entry`](ledger_entry.html)** - Get one element from a ledger version. +* **[`ledger`](ledger-methods/ledger.md)** - Get info about a ledger version. +* **[`ledger_closed`](ledger-methods/ledger_closed.md)** - Get the latest closed ledger version. +* **[`ledger_current`](ledger-methods/ledger_current.md)** - Get the current working ledger version. +* **[`ledger_data`](ledger-methods/ledger_data.md)** - Get the raw contents of a ledger version. +* **[`ledger_entry`](ledger-methods/ledger_entry.md)** - Get one element from a ledger version. -## [Transaction Methods](transaction-methods.html) +## [Transaction Methods](transaction-methods/index.md) Transactions are the only thing that can modify the shared state of the XRP Ledger. All business on the XRP Ledger takes the form of transactions. Use these methods to work with transactions. -* **[`submit`](submit.html)** - Send a transaction to the network. -* **[`submit_multisigned`](submit_multisigned.html)** - Send a multi-signed transaction to the network. -* **[`transaction_entry`](transaction_entry.html)** - Retrieve info about a transaction from a particular ledger version. -* **[`tx`](tx.html)** - Retrieve info about a transaction from all the ledgers on hand. -* **[`tx_history`](tx_history.html)** - Retrieve info about all recent transactions. +* **[`submit`](transaction-methods/submit.md)** - Send a transaction to the network. +* **[`submit_multisigned`](transaction-methods/submit_multisigned.md)** - Send a multi-signed transaction to the network. +* **[`transaction_entry`](transaction-methods/transaction_entry.md)** - Retrieve info about a transaction from a particular ledger version. +* **[`tx`](transaction-methods/tx.md)** - Retrieve info about a transaction from all the ledgers on hand. +* **[`tx_history`](transaction-methods/tx_history.md)** - Retrieve info about all recent transactions. -By default, the following methods are [admin-only](admin-api-methods.html). They can be used as public methods if the server admin has [enabled public signing](enable-public-signing.html). +By default, the following methods are [admin-only](../admin-api-methods/index.md). They can be used as public methods if the server admin has [enabled public signing](../../../infrastructure/configuration/enable-public-signing.md). -* **[`sign`](sign.html)** - Cryptographically sign a transaction. -* **[`sign_for`](sign_for.html)** - Contribute to a multi-signature. +* **[`sign`](../admin-api-methods/signing-methods/sign.md)** - Cryptographically sign a transaction. +* **[`sign_for`](../admin-api-methods/signing-methods/sign_for.md)** - Contribute to a multi-signature. -## [Path and Order Book Methods](path-and-order-book-methods.html) +## [Path and Order Book Methods](path-and-order-book-methods/index.md) Paths define a way for payments to flow through intermediary steps on their way from sender to receiver. Paths enable cross-currency payments by connecting sender and receiver through order books. Use these methods to work with paths and other books. -* **[`amm_info`](amm_info.html)** :not_enabled: - Get info about an Automated Market Maker (AMM). -* **[`book_offers`](book_offers.html)** - Get info about offers to exchange two currencies. -* **[`deposit_authorized`](deposit_authorized.html)** - Look up whether one account is authorized to send payments directly to another. -* **[`nft_buy_offers`](nft_buy_offers.html)** - Retrieve a list of buy offers for a specified NFToken object. -* **[`nft_sell_offers`](nft_sell_offers.html)** - Retrieve a list of sell offers for a specified NFToken object. -* **[`path_find`](path_find.html)** - Find a path for a payment between two accounts and receive updates. -* **[`ripple_path_find`](ripple_path_find.html)** - Find a path for payment between two accounts, once. +* **[`amm_info`](path-and-order-book-methods/amm_info.md)** {% not-enabled /%} - Get info about an Automated Market Maker (AMM). +* **[`book_offers`](path-and-order-book-methods/book_offers.md)** - Get info about offers to exchange two currencies. +* **[`deposit_authorized`](path-and-order-book-methods/deposit_authorized.md)** - Look up whether one account is authorized to send payments directly to another. +* **[`nft_buy_offers`](path-and-order-book-methods/nft_buy_offers.md)** - Retrieve a list of buy offers for a specified NFToken object. +* **[`nft_sell_offers`](path-and-order-book-methods/nft_sell_offers.md)** - Retrieve a list of sell offers for a specified NFToken object. +* **[`path_find`](path-and-order-book-methods/path_find.md)** - Find a path for a payment between two accounts and receive updates. +* **[`ripple_path_find`](path-and-order-book-methods/ripple_path_find.md)** - Find a path for payment between two accounts, once. -## [Payment Channel Methods](payment-channel-methods.html) +## [Payment Channel Methods](payment-channel-methods/index.md) Payment channels are a tool for facilitating repeated, unidirectional payments, or temporary credit between two parties. Use these methods to work with payment channels. -* **[`channel_authorize`](channel_authorize.html)** - Sign a claim for money from a payment channel. -* **[`channel_verify`](channel_verify.html)** - Check a payment channel claim's signature. +* **[`channel_authorize`](payment-channel-methods/channel_authorize.md)** - Sign a claim for money from a payment channel. +* **[`channel_verify`](payment-channel-methods/channel_verify.md)** - Check a payment channel claim's signature. -## [Subscription Methods](subscription-methods.html) +## [Subscription Methods](subscription-methods/index.md) Use these methods to enable the server to push updates to your client when various events happen, so that you can know and react right away. _WebSocket API only._ -* **[`subscribe`](subscribe.html)** - Listen for updates about a particular subject. -* **[`unsubscribe`](unsubscribe.html)** - Stop listening for updates about a particular subject. +* **[`subscribe`](subscription-methods/subscribe.md)** - Listen for updates about a particular subject. +* **[`unsubscribe`](subscription-methods/unsubscribe.md)** - Stop listening for updates about a particular subject. -## [Server Info Methods](server-info-methods.html) +## [Server Info Methods](server-info-methods/index.md) Use these methods to retrieve information about the current state of the `rippled` server. -* **[`fee`](fee.html)** - Get information about transaction cost. -* **[`server_info`](server_info.html)** - Retrieve status of the server in human-readable format. -* **[`server_state`](server_state.html)** - Retrieve status of the server in machine-readable format. -- **[`manifest`](manifest.html)** - Retrieve the latest ephemeral public key information about a known validator. +* **[`fee`](server-info-methods/fee.md)** - Get information about transaction cost. +* **[`server_info`](server-info-methods/server_info.md)** - Retrieve status of the server in human-readable format. +* **[`server_state`](server-info-methods/server_state.md)** - Retrieve status of the server in machine-readable format. +- **[`manifest`](server-info-methods/manifest.md)** - Retrieve the latest ephemeral public key information about a known validator. -## [Clio Methods](clio-methods.html) +## [Clio Methods](clio-server/index.md) Use these methods to retrieve information using Clio server APIs. -* **[`server_info`](server_info-clio.html)** - Retrieve status of the Clio server. -* **[`ledger`](ledger-clio.html)** - Get info about a ledger version using Clio server's `ledger` API. -* **[`nft_info`](nft_info.html)** - Retrieve information about the specified NFT using Clio server's `nft_info` API. +* **[`server_info`](clio-methods/server_info-clio.md)** - Retrieve status of the Clio server. +* **[`ledger`](clio-methods/ledger-clio.md)** - Get info about a ledger version using Clio server's `ledger` API. +* **[`nft_info`](clio-methods/nft_info.md)** - Retrieve information about the specified NFT using Clio server's `nft_info` API. -## [Utility Methods](utility-methods.html) +## [Utility Methods](utility-methods/index.md) Use these methods to perform convenient tasks, such as ping and random number generation. -* **[`json`](json.html)** - Use as a proxy to running other commands. Accepts the parameters for the command as a JSON value. _Commandline only._ -* **[`ping`](ping.html)** - Confirm connectivity with the server. -* **[`random`](random.html)** - Generate a random number. +* **[`json`](utility-methods/json.md)** - Use as a proxy to running other commands. Accepts the parameters for the command as a JSON value. _Commandline only._ +* **[`ping`](utility-methods/ping.md)** - Confirm connectivity with the server. +* **[`random`](utility-methods/random.md)** - Generate a random number. ## Deprecated Methods -The `owner_info` command is deprecated. Use [`account_objects`](account_objects.html) instead. +The `owner_info` command is deprecated. Use [`account_objects`](account-methods/account_objects.md) instead. diff --git a/content/references/http-websocket-apis/public-api-methods/ledger-methods/index.md b/content/references/http-websocket-apis/public-api-methods/ledger-methods/index.md index e29f3c2bab..ab87dc63fc 100644 --- a/content/references/http-websocket-apis/public-api-methods/ledger-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/ledger-methods/index.md @@ -1,8 +1,12 @@ --- html: ledger-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Ledger Methods -A ledger version contains a header, a transaction tree, and a state tree, which contain account settings, trustlines, balances, transactions, and other data. Use these methods to retrieve ledger info. \ No newline at end of file +A ledger version contains a header, a transaction tree, and a state tree, which contain account settings, trustlines, balances, transactions, and other data. Use these methods to retrieve ledger info. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md index a5059eef9a..d189b1a29f 100644 --- a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +++ b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md @@ -8,15 +8,14 @@ labels: # ledger [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/LedgerHandler.cpp "Source") -Retrieve information about the public [ledger](ledgers.html). +Retrieve information about the public [ledger](../../../../concepts/ledgers/index.md). ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_ledger_req", @@ -27,9 +26,9 @@ An example of the request format: "owner_funds": false } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger", @@ -43,19 +42,20 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: ledger ledger_index|ledger_hash [full|tx] # "full" is equivalent to "full": true # "tx" is equivalent to "transactions": true rippled ledger validated ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger) The request can contain the following parameters: @@ -67,7 +67,7 @@ The request can contain the following parameters: | `expand` | Boolean | No | Provide full JSON-formatted information for transaction/account information instead of only hashes. The default is `false`. Ignored unless you request transactions, accounts, or both. | | `owner_funds` | Boolean | No | If `true`, include `owner_funds` field in the metadata of OfferCreate transactions in the response. The default is `false`. Ignored unless transactions are included and `expand` is true. | | `binary` | Boolean | No | If `true`, and `transactions` and `expand` are both also `true`, return transaction information in binary format (hexadecimal string) instead of JSON format. | -| `queue` | Boolean | No | If `true`, and the command is requesting the `current` ledger, includes an array of [queued transactions](transaction-cost.html#queued-transactions) in the results. | +| `queue` | Boolean | No | If `true`, and the command is requesting the `current` ledger, includes an array of [queued transactions](../../../../concepts/transactions/transaction-cost.md#queued-transactions) in the results. | The `ledger` field is deprecated and may be removed without further notice. The `full`, `accounts`, and `type` fields (admin-only) are also deprecated; the Clio server does not implement these parameters. @@ -76,40 +76,29 @@ The `ledger` field is deprecated and may be removed without further notice. The An example of a successful response: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/ledger/ws-response.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/ledger/ws-response.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/ledger/jsonrpc-response.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* +{% tab label="Commandline" %} +{% code-snippet file="/_api-examples/ledger/jsonrpc-response.json" language="json" prefix="Loading: \"/etc/opt/ripple/rippled.cfg\"\n2023-Nov-01 21:38:14.638871262 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005\n\n" /%} +{% /tab %} -```json -200 OK - -{% include '_api-examples/ledger/jsonrpc-response.json' %} -``` - -*Commandline* - -```json -Loading: "/etc/opt/ripple/rippled.cfg" -2023-Nov-01 21:38:14.638871262 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 - -{% include '_api-examples/ledger/jsonrpc-response.json' %} -``` - - +{% /tabs %} The response follows the [standard format][], with a successful result containing information about the ledger, including the following fields: | `Field` | Type | Description | |:-------------------------------|:--------|:----------------------------------| -| `ledger` | Object | The complete [ledger header data](ledger-header.html) of this ledger, with some additional fields added for convenience. | -| `ledger.account_hash` | String | [Hash](basic-data-types.html#hashes) of all account state information in this ledger, as hexadecimal. | -| `ledger.close_flags` | Number | A bit-map of [flags relating to the closing of this ledger](ledger-header.html#close-flags). | +| `ledger` | Object | The complete [ledger header data](../../../protocol/ledger-data/ledger-header.md) of this ledger, with some additional fields added for convenience. | +| `ledger.account_hash` | String | [Hash](../../../protocol/data-types/basic-data-types.md#hashes) of all account state information in this ledger, as hexadecimal. | +| `ledger.close_flags` | Number | A bit-map of [flags relating to the closing of this ledger](../../../protocol/ledger-data/ledger-header.md#close-flags). | | `ledger.close_time` | Number | The time this ledger was closed, in [seconds since the Ripple Epoch][]. | | `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format. Always uses the UTC time zone. | | `ledger.close_time_resolution` | Number | Ledger close times are rounded to within this many seconds. | @@ -119,7 +108,7 @@ The response follows the [standard format][], with a successful result containin | `ledger.parent_close_time` | Number | The time at which the previous ledger was closed. | | `ledger.parent_hash` | String | The unique identifying hash of the ledger that came immediately before this one, as hexadecimal. | | `ledger.total_coins` | String | Total number of XRP drops in the network, as a quoted integer. (This decreases as transaction costs destroy XRP.) | -| `ledger.transaction_hash` | String | [Hash](basic-data-types.html#hashes) of the transaction information included in this ledger. | +| `ledger.transaction_hash` | String | [Hash](../../../protocol/data-types/basic-data-types.md#hashes) of the transaction information included in this ledger. | | `ledger.transactions` | Array | _(Omitted unless requested)_ Transactions applied in this ledger version. By default, members are the transactions' identifying [Hash][] strings. If the request specified `expand` as true, members are full representations of the transactions instead, in either JSON or binary depending on whether the request specified `binary` as true. | | `ledger_hash` | String | The unique identifying hash of the entire ledger, as hexadecimal. | | `ledger_index` | Number | The [Ledger Index][] of this ledger. | @@ -128,27 +117,27 @@ The response follows the [standard format][], with a successful result containin The `ledger.accountState` field (omitted unless requested with `"full": true` or `"accounts": true`) is deprecated. -The following deprecated fields have been removed: `accepted`, `hash` (use `ledger_hash` instead), `seqNum` (use `ledger_index` instead), `totalCoins` (use `total_coins` instead). [Updated in: rippled 1.12.0][] +The following deprecated fields have been removed: `accepted`, `hash` (use `ledger_hash` instead), `seqNum` (use `ledger_index` instead), `totalCoins` (use `total_coins` instead). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}Updated in: rippled 1.12.0{% /badge %} Each member of the `queue_data` array represents one transaction in the queue. Some fields of this object may be omitted because they have not yet been calculated. The fields of this object are as follows: | Field | Value | Description | |:--------------------|:-----------------|:------------------------------------| | `account` | String | The [Address][] of the sender for this queued transaction. | -| `tx` | String or Object | By default, this is a String containing the [identifying hash](basic-data-types.html#hashes) of the transaction. If transactions are expanded in binary format, this is an object whose only field is `tx_blob`, containing the binary form of the transaction as a decimal string. If transactions are expanded in JSON format, this is an object containing the [transaction object](transaction-formats.html) including the transaction's identifying hash in the `hash` field. | +| `tx` | String or Object | By default, this is a String containing the [identifying hash](../../../protocol/data-types/basic-data-types.md#hashes) of the transaction. If transactions are expanded in binary format, this is an object whose only field is `tx_blob`, containing the binary form of the transaction as a decimal string. If transactions are expanded in JSON format, this is an object containing the [transaction object](../../../protocol/transactions/index.md) including the transaction's identifying hash in the `hash` field. | | `retries_remaining` | Number | How many times this transaction can be retried before being dropped. | | `preflight_result` | String | The tentative result from preliminary transaction checking. This is always `tesSUCCESS`. | -| `last_result` | String | _(May be omitted)_ If this transaction was left in the queue after getting a [retriable (`ter`) result](ter-codes.html), this is the exact `ter` result code it got. | -| `auth_change` | Boolean | _(May be omitted)_ Whether this transaction changes this address's [ways of authorizing transactions](transactions.html#authorizing-transactions). | -| `fee` | String | _(May be omitted)_ The [Transaction Cost](transaction-cost.html) of this transaction, in [drops of XRP][]. | +| `last_result` | String | _(May be omitted)_ If this transaction was left in the queue after getting a [retriable (`ter`) result](../../../protocol/transactions/transaction-results/ter-codes.md), this is the exact `ter` result code it got. | +| `auth_change` | Boolean | _(May be omitted)_ Whether this transaction changes this address's [ways of authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). | +| `fee` | String | _(May be omitted)_ The [Transaction Cost](../../../../concepts/transactions/transaction-cost.md) of this transaction, in [drops of XRP][]. | | `fee_level` | String | _(May be omitted)_ The transaction cost of this transaction, relative to the minimum cost for this type of transaction, in [fee levels][]. | | `max_spend_drops` | String | _(May be omitted)_ The maximum amount of [XRP, in drops][], this transaction could potentially send or destroy. | -If the request specified `"owner_funds": true` and expanded transactions, the response has a field `owner_funds` in the `metaData` object of each [OfferCreate transaction][]. The purpose of this field is to make it easier to track the [funding status of offers](offers.html#lifecycle-of-an-offer) with each new validated ledger. This field is defined slightly differently than the version of this field in [Order Book subscription streams](subscribe.html#order-book-streams): +If the request specified `"owner_funds": true` and expanded transactions, the response has a field `owner_funds` in the `metaData` object of each [OfferCreate transaction][]. The purpose of this field is to make it easier to track the [funding status of offers](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) with each new validated ledger. This field is defined slightly differently than the version of this field in [Order Book subscription streams](../subscription-methods/subscribe.md#order-book-streams): | `Field` | Value | Description | |:--------------|:-------|:----------------------------------------------------| -| `owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after the execution of all transactions in this ledger. This does not check whether the currency amount is [frozen](freezes.html). | +| `owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after the execution of all transactions in this ledger. This does not check whether the currency amount is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | ## Possible Errors @@ -157,8 +146,4 @@ If the request specified `"owner_funds": true` and expanded transactions, the re * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. * `noPermission` - If you specified `full` or `accounts` as true, but are not connected to the server as an admin (usually, admin requires connecting on localhost). - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md index ec536f0286..004c28f064 100644 --- a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +++ b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md @@ -13,19 +13,18 @@ The `ledger_closed` method returns the unique identifiers of the most recently c ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, "command": "ledger_closed" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_closed", @@ -34,27 +33,27 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: ledger_closed rippled ledger_closed ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_closed) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_closed) This method accepts no parameters. ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -66,9 +65,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -80,9 +79,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -92,8 +91,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -106,6 +106,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md index 8c7adca2ac..c1e4b63a83 100644 --- a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +++ b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md @@ -8,25 +8,24 @@ labels: # ledger_current [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/LedgerCurrent.cpp "Source") -The `ledger_current` method returns the unique identifiers of the current in-progress [ledger](ledgers.html). This command is mostly useful for testing, because the ledger returned is still in flux. +The `ledger_current` method returns the unique identifiers of the current in-progress [ledger](../../../../concepts/ledgers/index.md). This command is mostly useful for testing, because the ledger returned is still in flux. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, "command": "ledger_current" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_current", @@ -35,17 +34,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: ledger_current rippled ledger_current ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_current) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_current) The request contains no parameters. @@ -53,10 +53,9 @@ The request contains no parameters. ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -67,9 +66,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -80,9 +79,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -91,8 +90,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following field: @@ -106,6 +106,4 @@ A `ledger_hash` field is not provided, because the hash of the current ledger is * Any of the [universal error types][]. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md index c13039c28d..59853b1ea4 100644 --- a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +++ b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md @@ -14,12 +14,11 @@ The `ledger_data` method retrieves contents of the specified ledger. You can ite ## Request Format An example of the request format: -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -29,9 +28,9 @@ An example of the request format: "binary": true } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_data", @@ -44,8 +43,9 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} A request can include the following fields: @@ -57,7 +57,7 @@ A request can include the following fields: | `binary` | Boolean | No | If `true`, return ledger entries as hexadecimal strings instead of JSON. The default is `false`. | | `limit` | Number | No | Limit the number of ledger entries to retrieve. The server may return fewer than this number of entries. Cannot be more than 2048 (when requesting binary) or 256 (when requesting JSON). Positive values outside this range are replaced with the closest valid option. The default is the maximum. | | `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | -| `type` | String | No | Filter results to a specific type of ledger entry. {% include '_snippets/lowercase-types.md' %} | +| `type` | String | No | Filter results to a specific type of ledger entry. {% partial file="/_snippets/lowercase-types.md" /%} | The `ledger` field is deprecated and may be removed without further notice. @@ -65,10 +65,9 @@ The `ledger` field is deprecated and may be removed without further notice. An example of a successful response: - - -*WebSocket (binary:true)* +{% tabs %} +{% tab label="WebSocket (binary:true)" %} ```json { "id": 2, @@ -103,9 +102,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*WebSocket (binary:false)* - +{% tab label="WebSocket (binary:false)" %} ```json { "id": 2, @@ -202,9 +201,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC (binary:true)* - +{% tab label="JSON-RPC (binary:true)" %} ```json 200 OK @@ -239,8 +238,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -258,8 +258,8 @@ The format of each object in the `state` array depends on whether `binary` was s | `Field` | Type | Description | |:--------------------|:----------|:-------------------------------------------| | `data` | String | _(Only included if `"binary":true`)_ Hex representation of the requested data | -| `LedgerEntryType` | String | _(Only included if `"binary":false`)_ String indicating what type of ledger object this object represents. See [ledger object types](ledger-object-types.html) for the full list. | -| (Additional fields) | (Various) | _(Only included if `"binary":false`)_ Additional fields describing this object, depending on which [ledger object type](ledger-object-types.html) it is. | +| `LedgerEntryType` | String | _(Only included if `"binary":false`)_ String indicating what type of ledger object this object represents. See [ledger object types](../../../protocol/ledger-data/ledger-entry-types/index.md) for the full list. | +| (Additional fields) | (Various) | _(Only included if `"binary":false`)_ Additional fields describing this object, depending on which [ledger object type](../../../protocol/ledger-data/ledger-entry-types/index.md) it is. | | `index` | String | Unique identifier for this ledger entry, as hex. | ## Possible Errors @@ -268,6 +268,4 @@ The format of each object in the `state` array depends on whether `binary` was s * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md index 4bf6464565..3bd35a5e20 100644 --- a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +++ b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md @@ -13,15 +13,15 @@ The `ledger_entry` method returns a single ledger entry from the XRP Ledger in i ## Request Format -This method can retrieve several different types of data. You can select which type of item to retrieve by passing the appropriate parameters, comprised of the general and type-specific fields listed below, and following the standard [request formatting](request-formatting.html). (For example, a WebSocket request always has the `command` field and optionally an `id` field, and a JSON-RPC request uses the `method` and `params` fields.) +This method can retrieve several different types of data. You can select which type of item to retrieve by passing the appropriate parameters, comprised of the general and type-specific fields listed below, and following the standard [request formatting](../../api-conventions/request-formatting.md). (For example, a WebSocket request always has the `command` field and optionally an `id` field, and a JSON-RPC request uses the `method` and `params` fields.) -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} ### General Fields | Field | Type | Description | |:------------------------|:---------------------------|:----------------------| -| `binary` | Boolean | _(Optional)_ If `true`, return the requested ledger entry's contents as a hex string in the XRP Ledger's [binary format](serialization.html). Otherwise, return data in JSON format. The default is `false`. [Updated in: rippled 1.2.0][] | +| `binary` | Boolean | _(Optional)_ If `true`, return the requested ledger entry's contents as a hex string in the XRP Ledger's [binary format](../../../protocol/binary-format.md). Otherwise, return data in JSON format. The default is `false`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}Updated in: rippled 1.2.0{% /badge %} | | `ledger_hash` | String | _(Optional)_ A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string (e.g. "validated" or "closed" or "current") to choose a ledger automatically. (See [Specifying Ledgers][]) | @@ -31,7 +31,7 @@ In addition to the general fields above, you must specify *exactly 1* of the fol - [`index`](#get-ledger-object-by-id) - [`account_root`](#get-accountroot-object) -- [`amm`](#get-amm-object) :not_enabled: +- [`amm`](#get-amm-object) {% not-enabled /%} - [`directory`](#get-directorynode-object) - [`offer`](#get-offer-object) - [`ripple_state`](#get-ripplestate-object) @@ -51,12 +51,11 @@ Retrieve any type of ledger object by its unique ID. | Field | Type | Description | |:--------|:-------|:----------------------------------------------------------| -| `index` | String | The [ledger entry ID](ledger-object-ids.html) of a single entry to retrieve from the ledger, as a 64-character (256-bit) hexadecimal string. | +| `index` | String | The [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of a single entry to retrieve from the ledger, as a 64-character (256-bit) hexadecimal string. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "ledger_entry", @@ -64,9 +63,9 @@ Retrieve any type of ledger object by its unique ID. "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -78,38 +77,40 @@ Retrieve any type of ledger object by its unique ID. ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-by-object-id) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-by-object-id) -> **Tip:** You can use this type of request to get any singleton ledger entry, if it exists in the ledger data, because its ID is always the same. For example: -> -> - [`Amendments`](amendments-object.html) - `7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4` -> - [`FeeSettings`](feesettings.html) - `4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651` -> - [Recent History `LedgerHashes`](ledgerhashes.html) - `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B` -> - [`NegativeUNL`](negativeunl.html) - `2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244` +{% admonition type="success" name="Tip" %} +You can use this type of request to get any singleton ledger entry, if it exists in the ledger data, because its ID is always the same. For example: + +- [`Amendments`](../../../protocol/ledger-data/ledger-entry-types/amendments.md) - `7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4` +- [`FeeSettings`](../../../protocol/ledger-data/ledger-entry-types/feesettings.md) - `4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651` +- [Recent History `LedgerHashes`](../../../protocol/ledger-data/ledger-entry-types/ledgerhashes.md) - `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B` +- [`NegativeUNL`](../../../protocol/ledger-data/ledger-entry-types/negativeunl.md) - `2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244` +{% /admonition %} ### Get AccountRoot Object -Retrieve an [AccountRoot entry](accountroot.html) by its address. This is roughly equivalent to the [account_info method][]. +Retrieve an [AccountRoot entry](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) by its address. This is roughly equivalent to the [account_info method][]. | Field | Type | Description | |:------------------------|:---------------------------|:----------------------| -| `account_root` | String - [Address][] | The classic address of the [AccountRoot entry](accountroot.html) to retrieve. | +| `account_root` | String - [Address][] | The classic address of the [AccountRoot entry](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) to retrieve. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_accountroot", @@ -118,9 +119,9 @@ Retrieve an [AccountRoot entry](accountroot.html) by its address. This is roughl "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -132,35 +133,35 @@ Retrieve an [AccountRoot entry](accountroot.html) by its address. This is roughl ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "account_root": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-accountroot) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-accountroot) ### Get AMM Object -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ Retrieve an Automated Market-Maker (AMM) object from the ledger. This is similar to [amm_info method][], but the `ledger_entry` version returns only the ledger entry as stored. | Field | Type | Description | |:-------------|:-----------------|:----------------------| -| `amm` | Object or String | The [AMM](amm.html) to retrieve. If you specify a string, it must be the [object ID](ledger-object-ids.html) of the AMM, as hexadecimal. If you specify an object, it must contain `asset` and `asset2` sub-fields. | -| `amm.asset` | Object | One of the two assets in this AMM's pool, as a [currency object without an amount](currency-formats.html#specifying-without-amounts). | -| `amm.asset2` | Object | The other of the two assets in this AMM's pool, as a [currency object without an amount](currency-formats.html#specifying-without-amounts). | +| `amm` | Object or String | The [AMM](../../../protocol/ledger-data/ledger-entry-types/amm.md) to retrieve. If you specify a string, it must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the AMM, as hexadecimal. If you specify an object, it must contain `asset` and `asset2` sub-fields. | +| `amm.asset` | Object | One of the two assets in this AMM's pool, as a [currency object without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `amm.asset2` | Object | The other of the two assets in this AMM's pool, as a [currency object without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -177,9 +178,9 @@ Retrieve an Automated Market-Maker (AMM) object from the ledger. This is similar "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -199,34 +200,34 @@ Retrieve an Automated Market-Maker (AMM) object from the ledger. This is similar ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "amm": { "asset": { "currency": "XRP" }, "asset2": { "currency" : "TST", "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#ledger_entry-amm) +[Try it! >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#ledger_entry-amm) ### Get DirectoryNode Object -Retrieve a [DirectoryNode](directorynode.html), which contains a list of other ledger objects. Can be provided as string (object ID of the Directory) or as an object. +Retrieve a [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md), which contains a list of other ledger objects. Can be provided as string (object ID of the Directory) or as an object. | Field | Type | Description | |:------------------------|:---------------------------|:----------------------| -| `directory` | Object or String | The [DirectoryNode](directorynode.html) to retrieve. If a string, must be the [object ID](ledger-object-ids.html) of the directory, as hexadecimal. If an object, requires either `dir_root` or `owner` as a sub-field, plus optionally a `sub_index` sub-field. | -| `directory.sub_index` | Unsigned Integer | _(Optional)_ If provided, jumps to a later "page" of the [DirectoryNode](directorynode.html). | +| `directory` | Object or String | The [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md) to retrieve. If a string, must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the directory, as hexadecimal. If an object, requires either `dir_root` or `owner` as a sub-field, plus optionally a `sub_index` sub-field. | +| `directory.sub_index` | Unsigned Integer | _(Optional)_ If provided, jumps to a later "page" of the [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md). | | `directory.dir_root` | String | _(Optional)_ Unique index identifying the directory to retrieve, as a hex string. | | `directory.owner` | String | _(Optional)_ Unique address of the account associated with this directory. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -238,9 +239,9 @@ Retrieve a [DirectoryNode](directorynode.html), which contains a list of other l "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -255,33 +256,33 @@ Retrieve a [DirectoryNode](directorynode.html), which contains a list of other l ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "sub_index": 0 }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-directorynode) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-directorynode) ### Get Offer Object -Retrieve an [Offer entry](offer.html), which defines an offer to exchange currency. Can be provided as string (unique index of the Offer) or as an object. +Retrieve an [Offer entry](../../../protocol/ledger-data/ledger-entry-types/offer.md), which defines an offer to exchange currency. Can be provided as string (unique index of the Offer) or as an object. | Field | Type | Description | |:------------------------|:---------------------------|:----------------------| -| `offer` | Object or String | If a string, interpret as [ledger entry ID](ledger-object-ids.html) of the Offer to retrieve. If an object, requires the sub-fields `account` and `seq` to uniquely identify the offer. | +| `offer` | Object or String | If a string, interpret as [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of the Offer to retrieve. If an object, requires the sub-fields `account` and `seq` to uniquely identify the offer. | | `offer.account` | String - [Address][] | _(Required if `offer` is specified as an object)_ The account that placed the offer. | | `offer.seq` | Unsigned Integer | _(Required if `offer` is specified as an object)_ The [Sequence Number][] of the transaction that created the Offer entry. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_offer", @@ -293,9 +294,9 @@ Retrieve an [Offer entry](offer.html), which defines an offer to exchange curren "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -310,16 +311,17 @@ Retrieve an [Offer entry](offer.html), which defines an offer to exchange curren ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "offer": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "seq": 359}, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-offer) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-offer) @@ -333,10 +335,9 @@ Retrieve a [RippleState entry][], which tracks a (non-XRP) currency balance betw | `ripple_state.accounts` | Array | _(Required if `ripple_state` is specified)_ 2-length array of account [Address][]es, defining the two accounts linked by this RippleState entry. | | `ripple_state.currency` | String | _(Required if `ripple_state` is specified)_ [Currency Code][] of the RippleState entry to retrieve. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_ripplestate", @@ -351,9 +352,9 @@ Retrieve a [RippleState entry][], which tracks a (non-XRP) currency balance betw "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -369,31 +370,31 @@ Retrieve a [RippleState entry][], which tracks a (non-XRP) currency balance betw }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "ripple_state": { "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], "currency": "USD"}, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-ripplestate) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-ripplestate) ### Get Check Object -Retrieve a [Check entry](check.html), which is a potential payment that can be cashed by its recipient. [New in: rippled 1.0.0][] +Retrieve a [Check entry](../../../protocol/ledger-data/ledger-entry-types/check.md), which is a potential payment that can be cashed by its recipient. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}New in: rippled 1.0.0{% /badge %} | Field | Type | Description | |:--------|:-------|:----------------------------------------------------------| -| `check` | String | The [object ID](ledger-object-ids.html) of a [Check entry](check.html) to retrieve. | +| `check` | String | The [object ID](../../../protocol/ledger-data/common-fields.md) of a [Check entry](../../../protocol/ledger-data/ledger-entry-types/check.md) to retrieve. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_check", @@ -402,9 +403,9 @@ Retrieve a [Check entry](check.html), which is a potential payment that can be c "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -414,33 +415,33 @@ Retrieve a [Check entry](check.html), which is a potential payment that can be c }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-check) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-check) ### Get Escrow Object -Retrieve an [Escrow entry](escrow-object.html), which holds XRP until a specific time or condition is met. Can be provided as string (object ID of the Escrow) or as an object. [New in: rippled 1.0.0][] +Retrieve an [Escrow entry](../../../protocol/ledger-data/ledger-entry-types/escrow.md), which holds XRP until a specific time or condition is met. Can be provided as string (object ID of the Escrow) or as an object. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}New in: rippled 1.0.0{% /badge %} | Field | Type | Description | |:------------------------|:---------------------------|:----------------------| -| `escrow` | Object or String | The Escrow to retrieve. If a string, must be the [object ID](ledger-object-ids.html) of the Escrow, as hexadecimal. If an object, requires `owner` and `seq` sub-fields. | +| `escrow` | Object or String | The Escrow to retrieve. If a string, must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the Escrow, as hexadecimal. If an object, requires `owner` and `seq` sub-fields. | | `escrow.owner` | String - [Address][] | _(Required if `escrow` is specified as an object)_ The owner (sender) of the Escrow object. | | `escrow.seq` | Unsigned Integer | _(Required if `escrow` is specified as an object)_ The [Sequence Number][] of the transaction that created the Escrow object. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_escrow", @@ -452,9 +453,9 @@ Retrieve an [Escrow entry](escrow-object.html), which holds XRP until a specific "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -467,31 +468,31 @@ Retrieve an [Escrow entry](escrow-object.html), which holds XRP until a specific }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "escrow": { "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", "seq": 126 }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-escrow) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-escrow) ### Get PayChannel Object -Retrieve a [PayChannel entry](paychannel.html), which holds XRP for asynchronous payments. [New in: rippled 1.0.0][] +Retrieve a [PayChannel entry](../../../protocol/ledger-data/ledger-entry-types/paychannel.md), which holds XRP for asynchronous payments. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}New in: rippled 1.0.0{% /badge %} | Field | Type | Description | |:------------------|:-------|:------------------------------------------------| -| `payment_channel` | String | The [object ID](ledger-object-ids.html) of the PayChannel to retrieve. | +| `payment_channel` | String | The [object ID](../../../protocol/ledger-data/common-fields.md) of the PayChannel to retrieve. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_paychannel", @@ -500,9 +501,9 @@ Retrieve a [PayChannel entry](paychannel.html), which holds XRP for asynchronous "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -512,32 +513,32 @@ Retrieve a [PayChannel entry](paychannel.html), which holds XRP for asynchronous }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-paychannel) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-paychannel) ### Get DepositPreauth Object -Retrieve a [DepositPreauth entry](depositpreauth-object.html), which tracks preauthorization for payments to accounts requiring [Deposit Authorization](depositauth.html). [New in: rippled 1.1.0][] +Retrieve a [DepositPreauth entry](../../../protocol/ledger-data/ledger-entry-types/depositpreauth.md), which tracks preauthorization for payments to accounts requiring [Deposit Authorization](../../../../concepts/accounts/depositauth.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}New in: rippled 1.1.0{% /badge %} | Field | Type | Description | |:-----------------------------|:---------------------|:-----------------------| -| `deposit_preauth` | Object or String | Specify the DepositPreauth to retrieve. If a string, must be the [ledger entry ID](ledger-object-ids.html) of the DepositPreauth entry, as hexadecimal. If an object, requires `owner` and `authorized` sub-fields. | +| `deposit_preauth` | Object or String | Specify the DepositPreauth to retrieve. If a string, must be the [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of the DepositPreauth entry, as hexadecimal. If an object, requires `owner` and `authorized` sub-fields. | | `deposit_preauth.owner` | String - [Address][] | _(Required if `deposit_preauth` is specified as an object)_ The account that provided the preauthorization. | | `deposit_preauth.authorized` | String - [Address][] | _(Required if `deposit_preauth` is specified as an object)_ The account that received the preauthorization. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_deposit_preauth", @@ -549,9 +550,9 @@ Retrieve a [DepositPreauth entry](depositpreauth-object.html), which tracks prea "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -564,32 +565,32 @@ Retrieve a [DepositPreauth entry](depositpreauth-object.html), which tracks prea }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "deposit_preauth": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-depositpreauth) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-depositpreauth) ### Get Ticket Object -Retrieve a [Ticket entry](ticket.html), which represents a [sequence number][] set aside for future use. _(Added by the [TicketBatch amendment][])_ +Retrieve a [Ticket entry](../../../protocol/ledger-data/ledger-entry-types/ticket.md), which represents a [sequence number][] set aside for future use. _(Added by the [TicketBatch amendment][])_ | Field | Type | Description | |:--------------------|:---------------------|:----------------------| -| `ticket` | Object or String | The Ticket to retrieve. If a string, must be the [ledger entry ID](ledger-object-ids.html) of the Ticket, as hexadecimal. If an object, the `account` and `ticket_seq` sub-fields are required to uniquely specify the Ticket entry. | +| `ticket` | Object or String | The Ticket to retrieve. If a string, must be the [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of the Ticket, as hexadecimal. If an object, the `account` and `ticket_seq` sub-fields are required to uniquely specify the Ticket entry. | | `ticket.account` | String - [Address][] | _(Required if `ticket` is specified as an object)_ The owner of the Ticket. | | `ticket.ticket_seq` | Number | _(Required if `ticket` is specified as an object)_ The Ticket Sequence number of the Ticket to retrieve. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_ticket", @@ -601,9 +602,9 @@ Retrieve a [Ticket entry](ticket.html), which represents a [sequence number][] s "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -616,16 +617,17 @@ Retrieve a [Ticket entry](ticket.html), which represents a [sequence number][] s }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "ticket": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "ticket_seq: 389 }, "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-ticket) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-ticket) ### Get NFT Page @@ -634,12 +636,11 @@ Return an NFT Page in its raw ledger format. | Field | Type | Description | |:------------------------|:---------------------------|:----------------------| -| `nft_page` | String | The [ledger entry ID](ledger-object-ids.html) of an [NFT Page](nftokenpage.html) to retrieve. | +| `nft_page` | String | The [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of an [NFT Page](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md) to retrieve. | - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_nft_page", @@ -648,9 +649,9 @@ Return an NFT Page in its raw ledger format. "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ledger_entry", @@ -660,16 +661,17 @@ Return an NFT Page in its raw ledger format. }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", "ledger_index": "validated" }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ledger_entry-nft-page) +[Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-nft-page) ## Response Format @@ -677,17 +679,16 @@ The response follows the [standard format][], with a successful result containin | Field | Type | Description | |:---------------|:-----------------|:-----------------------------------------| -| `index` | String | The unique ID of this [ledger entry](ledger-object-types.html). | +| `index` | String | The unique ID of this [ledger entry](../../../protocol/ledger-data/ledger-entry-types/index.md). | | `ledger_index` | Unsigned Integer | The [ledger index][] of the ledger that was used when retrieving this data. | | `node` | Object | _(Omitted if `"binary": true` specified.)_ Object containing the data of this ledger entry, according to the [ledger format][]. | -| `node_binary` | String | _(Omitted unless `"binary":true` specified)_ The [binary representation](serialization.html) of the ledger object, as hexadecimal. | +| `node_binary` | String | _(Omitted unless `"binary":true` specified)_ The [binary representation](../../../protocol/binary-format.md) of the ledger object, as hexadecimal. | An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "example_get_accountroot", @@ -718,9 +719,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -751,9 +752,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result": { @@ -782,8 +783,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} ## Possible Errors @@ -799,9 +801,4 @@ An example of a successful response: * `malformedRequest` - The request provided an invalid combination of fields, or provided the wrong type for one or more fields. * `unknownOption` - The fields provided in the request did not match any of the expected request formats. - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md index 9d969e4695..73d682248f 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md @@ -11,24 +11,23 @@ labels: # amm_info [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AMMInfo.cpp "Source") -The `{{currentpage.name}}` method gets information about an Automated Market Maker (AMM) instance. +The {% code-page-name /%} method gets information about an Automated Market Maker (AMM) instance. -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ ### Request Format An example of the request format: -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "asset": { "currency": "XRP" }, @@ -38,12 +37,12 @@ An example of the request format: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "asset": { "currency": "XRP" @@ -55,10 +54,11 @@ An example of the request format: }] } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#amm_info) +[Try it! >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Famm.devnet.rippletest.net%3A51233%2F#amm_info) The request includes the following parameters: @@ -75,10 +75,9 @@ You must specify _either_ `amm_account` or both `asset` and `asset2`. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -131,9 +130,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -187,8 +186,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -210,8 +210,8 @@ The `amm` field is an object describing the current status of an Automated Marke | `account` | String | The [Address][] of the AMM Account. | | `amount` | [Currency Amount][] | The total amount of one asset in the AMM's pool. (Note: This could be `asset` _or_ `asset2` from the request.) | | `amount2` | [Currency Amount][] | The total amount of the other asset in the AMM's pool. (Note: This could be `asset` _or_ `asset2` from the request.) | -| `asset_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount` currency is currently [frozen](freezes.html). | -| `asset2_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount2` currency is currently [frozen](freezes.html). | +| `asset_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount` currency is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `asset2_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount2` currency is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | | `auction_slot` | Object | _(May be omitted)_ An [Auction Slot Object](#auction-slot-object) describing the current auction slot holder, if there is one. | | `lp_token` | [Currency Amount][] | The total amount of this AMM's LP Tokens outstanding. If the request specified a liquidity provider in the `account` field, instead, this is the amount of this AMM's LP Tokens held by that liquidity provider. | | `trading_fee` | Number | The AMM's current trading fee, in units of 1/100,000; a value of 1 is equivalent to a 0.001% fee. | @@ -252,11 +252,8 @@ Each entry in the `vote_slots` array represents one liquidity provider's vote to ## See Also - - [AMM object](amm.html) - The canonical storage format of the AMM object + - [AMM object](../../../protocol/ledger-data/ledger-entry-types/amm.md) - The canonical storage format of the AMM object - [AMMBid][] - More info on the auction slot and bidding mechanism - [AMMVote][] - More info on the trading fee voting mechanism - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md index a690561894..fcb55fc95f 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md @@ -9,15 +9,14 @@ labels: # book_offers [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/BookOffers.cpp "Source") -The `book_offers` method retrieves a list of [Offers](offers.html) between two currencies, also known as an _order book_. The response omits [unfunded Offers](offers.html#lifecycle-of-an-offer) and reports how much of each remaining Offer's total is currently funded. +The `book_offers` method retrieves a list of [Offers](../../../../concepts/tokens/decentralized-exchange/offers.md) between two currencies, also known as an _order book_. The response omits [unfunded Offers](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) and reports how much of each remaining Offer's total is currently funded. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 4, @@ -33,9 +32,9 @@ An example of the request format: "limit": 10 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "book_offers", @@ -54,24 +53,25 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: book_offers taker_pays taker_gets [taker [ledger [limit] ] ] rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#book_offers) +[Try it! >](/resources/dev-tools/websocket-api-tool#book_offers) The request includes the following parameters: | `Field` | Type | Required? | Description | |:---------------|:-----------------|:----------|-------------| -| `taker_gets` | Object | Yes | The asset the account taking the Offer would receive, as a [currency without an amount](currency-formats.html#specifying-without-amounts). | -| `taker_pays` | Object | Yes | The asset the account taking the Offer would pay, as a [currency without an amount](currency-formats.html#specifying-without-amounts). | +| `taker_gets` | Object | Yes | The asset the account taking the Offer would receive, as a [currency without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `taker_pays` | Object | Yes | The asset the account taking the Offer would pay, as a [currency without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | | `ledger_hash` | [Hash][] | No | A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `limit` | Number | No | The maximum number of Offers to return. The response may include fewer results. | @@ -82,10 +82,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 11, @@ -144,9 +143,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -159,9 +158,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -231,8 +230,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -241,7 +241,7 @@ The response follows the [standard format][], with a successful result containin | `ledger_current_index` | [Ledger Index][] | _(Omitted if `ledger_current_index` is provided)_ The [ledger index][] of the current in-progress ledger version, which was used to retrieve this information. | | `ledger_index` | [Ledger Index][] | _(Omitted if `ledger_current_index` provided)_ The ledger index of the ledger version that was used when retrieving this data, as requested. | | `ledger_hash` | [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used when retrieving this data, as requested. | -| `offers` | Array | Array of offer objects, each of which has the fields of an [Offer object](offer.html) | +| `offers` | Array | Array of offer objects, each of which has the fields of an [Offer object](../../../protocol/ledger-data/ledger-entry-types/offer.md) | In addition to the standard Offer fields, the following fields may be included in members of the `offers` array: @@ -263,8 +263,4 @@ In addition to the standard Offer fields, the following fields may be included i * `dstIsrMalformed` - The `issuer` field of the `taker_gets` field in the request is not valid. * `badMarket` - The desired order book does not exist; for example, offers to exchange a currency for itself. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md index 7059725eb0..7860e779ac 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md @@ -9,15 +9,14 @@ labels: # deposit_authorized [[Source]](https://github.com/XRPLF/rippled/blob/817d2339b8632cb2f97d3edd6f7af33aa7631744/src/ripple/rpc/handlers/DepositAuthorized.cpp "Source") -The `deposit_authorized` command indicates whether one account is authorized to send payments directly to another. See [Deposit Authorization](depositauth.html) for information on how to require authorization to deliver money to your account. +The `deposit_authorized` command indicates whether one account is authorized to send payments directly to another. See [Deposit Authorization](../../../../concepts/accounts/depositauth.md) for information on how to require authorization to deliver money to your account. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -27,9 +26,9 @@ An example of the request format: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "deposit_authorized", @@ -42,15 +41,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```bash #Syntax: deposit_authorized [] rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8 validated ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -66,10 +66,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -85,9 +84,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -101,9 +100,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" 2018-Jul-30 20:07:38.771658157 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -120,14 +119,15 @@ Loading: "/etc/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | |:-----------------------|:--------------------------|:------------------------| -| `deposit_authorized` | Boolean | Whether the specified source account is authorized to send payments directly to the destination account. If `true`, either the destination account does not require [Deposit Authorization](depositauth.html) or the source account is preauthorized. | +| `deposit_authorized` | Boolean | Whether the specified source account is authorized to send payments directly to the destination account. If `true`, either the destination account does not require [Deposit Authorization](../../../../concepts/accounts/depositauth.md) or the source account is preauthorized. | | `destination_account` | String - [Address][] | The destination account specified in the request. | | `ledger_hash` | String | _(May be omitted)_ The identifying hash of the ledger that was used to generate this response. | | `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger version that was used to generate this response. | @@ -135,7 +135,7 @@ The response follows the [standard format][], with a successful result containin | `source_account` | String - [Address][] | The source account specified in the request. | | `validated` | Boolean | _(May be omitted)_ If `true`, the information comes from a validated ledger version. | -**Note:** A `deposit_authorized` status of `true` does not guarantee that a payment can be sent from the specified source to the specified destination. For example, the destination account may not have a [trust line](trust-lines-and-issuing.html) for the specified currency, or there may not be enough liquidity to deliver a payment. +**Note:** A `deposit_authorized` status of `true` does not guarantee that a payment can be sent from the specified source to the specified destination. For example, the destination account may not have a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) for the specified currency, or there may not be enough liquidity to deliver a payment. ## Possible Errors @@ -146,6 +146,4 @@ The response follows the [standard format][], with a successful result containin * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. * `srcActNotFound` - The `source_account` field of the request does not correspond to an account in the ledger. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md index 8c1d80857f..78387a1674 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md @@ -1,8 +1,12 @@ --- html: path-and-order-book-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Path and Order Book Methods -Paths define a way for payments to flow through intermediary steps on their way from sender to receiver. Paths enable cross-currency payments by connecting sender and receiver through order books. Use these methods to work with paths and other books. \ No newline at end of file +Paths define a way for payments to flow through intermediary steps on their way from sender to receiver. Paths enable cross-currency payments by connecting sender and receiver through order books. Use these methods to work with paths and other books. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md index 3d59c37a49..59a92a1f9c 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md @@ -15,12 +15,11 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## Request Format An example of the request format: -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "nft_buy_offers", @@ -28,9 +27,9 @@ An example of the request format: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_buy_offers", @@ -40,10 +39,11 @@ An example of the request format: }] } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#nft_buy_offers) +[Try it! >](/resources/dev-tools/websocket-api-tool#nft_buy_offers) The request includes the following parameters: @@ -59,10 +59,9 @@ The request includes the following parameters: ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -80,9 +79,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -99,8 +98,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -118,8 +118,8 @@ Each member of the `offers` array represents one [NFTokenOffer object][] to buy | `Field` | Type | Description | |:------------------|:-----------------|:--------------------------------------| | `amount` | String or Object | The amount offered to buy the NFT for, as a String representing an amount in drops of XRP, or an object representing an amount of a fungible token. (See [Specifying Currency Amounts][Currency Amount]) | -| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](nftokenoffer.html#nftokenoffer-flags) for possible values. | -| `nft_offer_index` | String | The [ledger object ID](ledger-object-ids.html) of this offer. | +| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenoffer-flags) for possible values. | +| `nft_offer_index` | String | The [ledger object ID](../../../protocol/ledger-data/common-fields.md) of this offer. | | `owner` | String | The account that placed this offer. | ## Possible Errors @@ -129,6 +129,4 @@ Each member of the `offers` array represents one [NFTokenOffer object][] to buy * `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md index cd2bcb669e..f9b99a6359 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md @@ -15,12 +15,11 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## Request Format An example of the request format: -{% include '_snippets/no-cli-syntax.md' %} +{% partial file="/_snippets/no-cli-syntax.md" /%} - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "nft_sell_offers", @@ -28,9 +27,9 @@ An example of the request format: "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "nft_sell_offers", @@ -41,10 +40,11 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#nft_sell_offers) +[Try it! >](/resources/dev-tools/websocket-api-tool#nft_sell_offers) The request includes the following parameters: @@ -59,10 +59,9 @@ The request includes the following parameters: ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -80,9 +79,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -99,8 +98,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -119,8 +119,8 @@ Each member of the `offers` array represents one [NFTokenOffer object][] to buy | `Field` | Type | Description | |:------------------|:-----------------|:--------------------------------------| | `amount` | String or Object | The amount offered to sell the NFT for, as a String representing an amount in drops of XRP, or an object representing an amount of a fungible token. (See [Specifying Currency Amounts][Currency Amount]) | -| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](nftokenoffer.html#nftokenoffer-flags) for possible values. | -| `nft_offer_index` | String | The [ledger object ID](ledger-object-ids.html) of this offer. | +| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenoffer-flags) for possible values. | +| `nft_offer_index` | String | The [ledger object ID](../../../protocol/ledger-data/common-fields.md) of this offer. | | `owner` | String | The account that placed this offer. | ## Possible Errors @@ -130,6 +130,4 @@ Each member of the `offers` array represents one [NFTokenOffer object][] to buy * `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md index d987bcbbab..f93ef50b2c 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md @@ -9,7 +9,7 @@ labels: # path_find [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp "Source") -*WebSocket API only!* The `path_find` method searches for a [path](paths.html) along which a transaction can possibly be made, and periodically sends updates when the path changes over time. For a simpler version that is supported by JSON-RPC, see the [ripple_path_find method][]. For payments occurring strictly in XRP, it is not necessary to find a path, because XRP can be sent directly to any account. +*WebSocket API only!* The `path_find` method searches for a [path](../../../../concepts/tokens/fungible-tokens/paths.md) along which a transaction can possibly be made, and periodically sends updates when the path changes over time. For a simpler version that is supported by JSON-RPC, see the [ripple_path_find method][]. For payments occurring strictly in XRP, it is not necessary to find a path, because XRP can be sent directly to any account. There are three different modes, or sub-commands, of the path_find command. Specify which one you want with the `subcommand` parameter: @@ -29,10 +29,9 @@ A client can only have one pathfinding request open at a time. If another pathfi ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 8, @@ -47,10 +46,11 @@ An example of the request format: } } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#path_find) +[Try it! >](/resources/dev-tools/websocket-api-tool#path_find) The request includes the following parameters: @@ -59,9 +59,9 @@ The request includes the following parameters: | `subcommand` | String | Use `"create"` to send the create sub-command | | `source_account` | String | Unique address of the account to find a path from. (In other words, the account that would be sending a payment.) | | `destination_account` | String | Unique address of the account to find a path to. (In other words, the account that would receive a payment.) | -| `destination_amount` | String or Object | [Currency Amount][] that the destination account would receive in a transaction. **Special case:** [New in: rippled 0.30.0][] You can specify `"-1"` (for XRP) or provide -1 as the contents of the `value` field (for non-XRP currencies). This requests a path to deliver as much as possible, while spending no more than the amount specified in `send_max` (if provided). | -| `send_max` | String or Object | _(Optional)_ [Currency Amount][] that would be spent in the transaction. Not compatible with `source_currencies`. [New in: rippled 0.30.0][] | -| `paths` | Array | _(Optional)_ Array of arrays of objects, representing [payment paths](paths.html) to check. You can use this to keep updated on changes to particular paths you already know about, or to check the overall cost to make a payment along a certain path. | +| `destination_amount` | String or Object | [Currency Amount][] that the destination account would receive in a transaction. **Special case:** {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}New in: rippled 0.30.0{% /badge %} You can specify `"-1"` (for XRP) or provide -1 as the contents of the `value` field (for non-XRP currencies). This requests a path to deliver as much as possible, while spending no more than the amount specified in `send_max` (if provided). | +| `send_max` | String or Object | _(Optional)_ [Currency Amount][] that would be spent in the transaction. Not compatible with `source_currencies`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}New in: rippled 0.30.0{% /badge %} | +| `paths` | Array | _(Optional)_ Array of arrays of objects, representing [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) to check. You can use this to keep updated on changes to particular paths you already know about, or to check the overall cost to make a payment along a certain path. | The server also recognizes the following fields, but the results of using them are not guaranteed: `source_currencies`, `bridges`. These fields should be considered reserved for future use. @@ -69,10 +69,9 @@ The server also recognizes the following fields, but the results of using them a An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -438,24 +437,25 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} -The initial response follows the [standard format](response-formatting.html), with a successful result containing the following fields: +The initial response follows the [standard format](../../api-conventions/response-formatting.md), with a successful result containing the following fields: | Field | Type | Description | |:----------------------|:-----------------|:----------------------------------| -| `alternatives` | Array | Array of objects with suggested [paths](paths.html) to take, as described below. If empty, then no paths were found connecting the source and destination accounts. | +| `alternatives` | Array | Array of objects with suggested [paths](../../../../concepts/tokens/fungible-tokens/paths.md) to take, as described below. If empty, then no paths were found connecting the source and destination accounts. | | `destination_account` | String | Unique address of the account that would receive a transaction. | | `destination_amount` | String or Object | [Currency Amount][] that the destination would receive in a transaction. | | `source_account` | String | Unique address that would send a transaction. | -| `full_reply` | Boolean | If `false`, this is the result of an incomplete search. A later reply may have a better path. If `true`, then this is the best path found. (It is still theoretically possible that a better path could exist, but `rippled` won't find it.) Until you close the pathfinding request, `rippled` continues to send updates each time a new ledger closes. [New in: rippled 0.29.0][] | +| `full_reply` | Boolean | If `false`, this is the result of an incomplete search. A later reply may have a better path. If `true`, then this is the best path found. (It is still theoretically possible that a better path could exist, but `rippled` won't find it.) Until you close the pathfinding request, `rippled` continues to send updates each time a new ledger closes. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}New in: rippled 0.29.0{% /badge %} | Each element in the `alternatives` array is an object that represents a path from one possible source currency (held by the initiating account) to the destination account and currency. This object has the following fields: | Field | Type | Description | |:---------------------|:-----------------|:---------------------------------------| -| `paths_computed` | Array | Array of arrays of objects defining [payment paths](paths.html) | +| `paths_computed` | Array | Array of arrays of objects defining [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) | | `source_amount` | String or Object | [Currency Amount][] that the source would have to send along this path for the destination to receive the desired amount. | | `destination_amount` | String or Object | _(May be omitted)_ [Currency Amount][] that the destination would receive along this path. Only included if the `destination_amount` from the request was the "-1" special case. | @@ -467,16 +467,15 @@ Each element in the `alternatives` array is an object that represents a path fro ### Asynchronous Follow-ups -In addition to the initial response, the server sends more messages in a similar format to update on the status of [payment paths](paths.html) over time. These messages include the `id` of the original WebSocket request so you can tell which request prompted them, and the field `"type": "path_find"` at the top level to indicate that they are additional responses. The other fields are defined in the same way as the initial response. +In addition to the initial response, the server sends more messages in a similar format to update on the status of [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) over time. These messages include the `id` of the original WebSocket request so you can tell which request prompted them, and the field `"type": "path_find"` at the top level to indicate that they are additional responses. The other fields are defined in the same way as the initial response. If the follow-up includes `"full_reply": true`, then this is the best path that rippled can find as of the current ledger. Here is an example of an asynchronous follow-up from a path_find create request: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -493,8 +492,9 @@ Here is an example of an asynchronous follow-up from a path_find create request: "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` +{% /tab %} - +{% /tabs %} ## path_find close [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L58-L67 "Source") @@ -504,10 +504,9 @@ The `close` sub-command of `path_find` instructs the server to stop sending info ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 57, @@ -515,8 +514,9 @@ An example of the request format: "subcommand": "close" } ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -549,10 +549,9 @@ The `status` sub-command of `path_find` requests an immediate update about the c ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 58, @@ -560,8 +559,9 @@ An example of the request format: "subcommand": "status" } ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -586,6 +586,4 @@ If there was no outstanding pathfinding request, an error is returned instead. * `noEvents` - You are using a protocol that does not support asynchronous callbacks, for example JSON-RPC. (See the [ripple_path_find method][] for a pathfinding method that _is_ compatible with JSON-RPC.) * `noPathRequest` - You tried to check the status of a pathfinding request when there is not an open one. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md index 9dcb524127..279993b884 100644 --- a/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +++ b/content/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md @@ -9,7 +9,7 @@ labels: # ripple_path_find [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/RipplePathFind.cpp "Source") -The `ripple_path_find` method is a simplified version of the [path_find method][] that provides a single response with a [payment path](paths.html) you can use right away. It is available in both the WebSocket and JSON-RPC APIs. However, the results tend to become outdated as time passes. Instead of making multiple calls to stay updated, you should instead use the [path_find method][] to subscribe to continued updates where possible. +The `ripple_path_find` method is a simplified version of the [path_find method][] that provides a single response with a [payment path](../../../../concepts/tokens/fungible-tokens/paths.md) you can use right away. It is available in both the WebSocket and JSON-RPC APIs. However, the results tend to become outdated as time passes. Instead of making multiple calls to stay updated, you should instead use the [path_find method][] to subscribe to continued updates where possible. Although the `rippled` server tries to find the cheapest path or combination of paths for making a payment, it is not guaranteed that the paths returned by this method are, in fact, the best paths. @@ -18,10 +18,9 @@ Although the `rippled` server tries to find the cheapest path or combination of ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 8, @@ -43,9 +42,9 @@ An example of the request format: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ripple_path_find", @@ -70,17 +69,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax ripple_path_find json ledger_index|ledger_hash rippled ripple_path_find '{"source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "source_currencies": [ { "currency": "XRP" }, { "currency": "USD" } ], "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "destination_amount": { "value": "0.001", "currency": "USD", "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" } }' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ripple_path_find) +[Try it! >](/resources/dev-tools/websocket-api-tool#ripple_path_find) The request includes the following parameters: @@ -88,8 +88,8 @@ The request includes the following parameters: |:----------------------|:---------------------------|:------------------------| | `source_account` | String | Unique address of the account that would send funds in a transaction | | `destination_account` | String | Unique address of the account that would receive funds in a transaction | -| `destination_amount` | String or Object | [Currency Amount][] that the destination account would receive in a transaction. **Special case:** [New in: rippled 0.30.0][] You can specify `"-1"` (for XRP) or provide -1 as the contents of the `value` field (for non-XRP currencies). This requests a path to deliver as much as possible, while spending no more than the amount specified in `send_max` (if provided). | -| `send_max` | String or Object | _(Optional)_ [Currency Amount][] that would be spent in the transaction. Cannot be used with `source_currencies`. [New in: rippled 0.30.0][] | +| `destination_amount` | String or Object | [Currency Amount][] that the destination account would receive in a transaction. **Special case:** {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}New in: rippled 0.30.0{% /badge %} You can specify `"-1"` (for XRP) or provide -1 as the contents of the `value` field (for non-XRP currencies). This requests a path to deliver as much as possible, while spending no more than the amount specified in `send_max` (if provided). | +| `send_max` | String or Object | _(Optional)_ [Currency Amount][] that would be spent in the transaction. Cannot be used with `source_currencies`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.0" %}New in: rippled 0.30.0{% /badge %} | | `source_currencies` | Array | _(Optional)_ Array of currencies that the source account might want to spend. Each entry in the array should be a JSON object with a mandatory `currency` field and optional `issuer` field, like how [currency amounts][Currency Amount] are specified. Cannot contain more than **18** source currencies. By default, uses all source currencies available up to a maximum of **88** different currency/issuer pairs. | | `ledger_hash` | String | _(Optional)_ A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | @@ -98,10 +98,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 8, @@ -208,9 +207,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -317,8 +316,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* +{% tab label="Commandline" %} ```json { "result" : { @@ -419,8 +419,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -434,7 +435,7 @@ Each element in the `alternatives` array is an object that represents a path fro | `Field` | Type | Description | |:-----------------|:-----------------|:---------------------------------------| -| `paths_computed` | Array | Array of arrays of objects defining [payment paths](paths.html) | +| `paths_computed` | Array | Array of arrays of objects defining [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) | | `source_amount` | String or Object | [Currency Amount][] that the source would have to send along this path for the destination to receive the desired amount | The following fields are deprecated, and may be omitted: `paths_canonical`, and `paths_expanded`. If they appear, you should disregard them. @@ -451,6 +452,4 @@ The following fields are deprecated, and may be omitted: `paths_canonical`, and * `srcCurMalformed` - The `source_currencies` field is not formatted properly. * `srcIsrMalformed` - The `issuer` field of one or more of the currency objects in the request is not valid. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md b/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md index f303b38ca8..c398b98c29 100644 --- a/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +++ b/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md @@ -8,17 +8,16 @@ labels: # channel_authorize [[Source]](https://github.com/XRPLF/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L41 "Source") -_(Added by the [PayChan amendment][] to be enabled. [New in: rippled 0.33.0][])_ +_(Added by the [PayChan amendment][] to be enabled. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}New in: rippled 0.33.0{% /badge %})_ The `channel_authorize` method creates a signature that can be used to redeem a specific amount of XRP from a payment channel. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "channel_authorize_example_id1", @@ -29,9 +28,9 @@ An example of the request format: "amount": "1000000", } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json POST http://localhost:5005/ Content-Type: application/json @@ -46,40 +45,40 @@ Content-Type: application/json }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: channel_authorize [] rippled channel_authorize s████████████████████████████ secp256k1 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: | Field | Type | Description | |-------|------|-------------| | `channel_id` | String | The unique ID of the payment channel to use. -| `secret` | String | _(Optional)_ The secret key to use to sign the claim. This must be the same key pair as the public key specified in the channel. Cannot be used with `seed`, `seed_hex`, or `passphrase`. [Updated in: rippled 1.4.0][] | -| `seed` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. [New in: rippled 1.4.0][] | -| `seed_hex` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. [New in: rippled 1.4.0][] | -| `passphrase` | String | _(Optional)_ A string passphrase to use to sign the claim. This must be the same key pair as the public key specified in the channel. The [key derived from this passphrase](cryptographic-keys.html#key-derivation) must match the public key specified in the channel. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. [New in: rippled 1.4.0][] | -| `key_type` | String | _(Optional)_ The [signing algorithm](cryptographic-keys.html#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. The default is `secp256k1`. [New in: rippled 1.4.0][] | +| `secret` | String | _(Optional)_ The secret key to use to sign the claim. This must be the same key pair as the public key specified in the channel. Cannot be used with `seed`, `seed_hex`, or `passphrase`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}Updated in: rippled 1.4.0{% /badge %} | +| `seed` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} | +| `seed_hex` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} | +| `passphrase` | String | _(Optional)_ A string passphrase to use to sign the claim. This must be the same key pair as the public key specified in the channel. The [key derived from this passphrase](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) must match the public key specified in the channel. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} | +| `key_type` | String | _(Optional)_ The [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. The default is `secp256k1`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} | | `amount` | String | Cumulative amount of XRP, in drops, to authorize. If the destination has already received a lesser amount of XRP from this channel, the signature created by this method can be redeemed for the difference. | The request **must** specify exactly one of `secret`, `seed`, `seed_hex`, or `passphrase`. -**Warning:** Do not send secret keys to untrusted servers or through unsecured network connections. (This includes the `secret`, `seed`, `seed_hex`, or `passphrase` fields of this request.) You should only use this method on a secure, encrypted network connection to a server you run or fully trust with your funds. Otherwise, eavesdroppers could use your secret key to sign claims and take all the money from this payment channel and anything else using the same key pair. See [Set Up Secure Signing](secure-signing.html) for instructions. +**Warning:** Do not send secret keys to untrusted servers or through unsecured network connections. (This includes the `secret`, `seed`, `seed_hex`, or `passphrase` fields of this request.) You should only use this method on a secure, encrypted network connection to a server you run or fully trust with your funds. Otherwise, eavesdroppers could use your secret key to sign claims and take all the money from this payment channel and anything else using the same key pair. See [Set Up Secure Signing](../../../../concepts/transactions/secure-signing.md) for instructions. ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "channel_authorize_example_id1", @@ -89,9 +88,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -102,9 +101,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result": { @@ -113,8 +112,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -125,12 +125,9 @@ The response follows the [standard format][], with a successful result containin ## Possible Errors * Any of the [universal error types][]. -* `badKeyType` - The `key_type` parameter in the request is not a valid key type. (Valid types are `secp256k1` or `ed25519`.) [New in: rippled 1.4.0][] +* `badKeyType` - The `key_type` parameter in the request is not a valid key type. (Valid types are `secp256k1` or `ed25519`.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} * `badSeed` - The `secret` in the request is not a valid secret key. * `channelAmtMalformed` - The `amount` in the request is not a valid [XRP amount][XRP, in drops]. * `channelMalformed` - The `channel_id` in the request is not a valid Channel ID. The Channel ID should be a 256-bit (64-character) hexadecimal string. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md b/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md index 32c2bbffb9..f5d8f9c136 100644 --- a/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +++ b/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md @@ -8,17 +8,16 @@ labels: # channel_verify [[Source]](https://github.com/XRPLF/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L89 "Source") -_(Added by the [PayChan amendment][] to be enabled. [New in: rippled 0.33.0][])_ +_(Added by the [PayChan amendment][] to be enabled. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}New in: rippled 0.33.0{% /badge %})_ The `channel_verify` method checks the validity of a signature that can be used to redeem a specific amount of XRP from a payment channel. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -29,9 +28,9 @@ An example of the request format: "amount": "1000000" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "channel_verify", @@ -43,15 +42,16 @@ An example of the request format: }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: channel_verify rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064 ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -59,17 +59,16 @@ The request includes the following parameters: |-------|------|-------------| | `amount` | String | The amount of [XRP, in drops][], the provided `signature` authorizes. | | `channel_id` | String | The Channel ID of the channel that provides the XRP. This is a 64-character hexadecimal string. | -| `public_key` | String | The public key of the channel and the key pair that was used to create the signature, in hexadecimal or the XRP Ledger's [base58][] format. [Updated in: rippled 0.90.0][] | +| `public_key` | String | The public key of the channel and the key pair that was used to create the signature, in hexadecimal or the XRP Ledger's [base58][] format. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}Updated in: rippled 0.90.0{% /badge %} | | `signature` | String | The signature to verify, in hexadecimal. | ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -80,9 +79,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -93,9 +92,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result": { @@ -104,8 +103,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -119,10 +119,8 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `publicMalformed` - The `public_key` field of the request is not a valid public key in the correct format. Public keys are 33 bytes and must be represented in base58 or hexadecimal. The [base58 representation of account public keys starts with the letter `a`](base58-encodings.html). The hexadecimal representation is 66 characters long. +* `publicMalformed` - The `public_key` field of the request is not a valid public key in the correct format. Public keys are 33 bytes and must be represented in base58 or hexadecimal. The [base58 representation of account public keys starts with the letter `a`](../../../protocol/data-types/base58-encodings.md). The hexadecimal representation is 66 characters long. * `channelMalformed` - The `channel_id` field of the request is not a valid Channel ID. The Channel ID must be a 256-bit (64-character) hexadecimal string. * `channelAmtMalformed` - The value specified in the `amount` field was not a valid [XRP amount][XRP, in drops]. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md b/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md index 235302472c..ef52fd3a16 100644 --- a/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md @@ -1,8 +1,12 @@ --- html: payment-channel-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Payment Channel Methods -Payment channels are a tool for facilitating repeated, unidirectional payments, or temporary credit between two parties. Use these methods to work with payment channels. \ No newline at end of file +Payment channels are a tool for facilitating repeated, unidirectional payments, or temporary credit between two parties. Use these methods to work with payment channels. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md index 1ae40ae18a..6419a016dd 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md @@ -8,41 +8,41 @@ labels: # fee [[Source]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/Fee1.cpp "Source") -The `fee` command reports the current state of the open-ledger requirements for the [transaction cost](transaction-cost.html). This requires the [FeeEscalation amendment][] to be enabled. [New in: rippled 0.31.0][] +The `fee` command reports the current state of the open-ledger requirements for the [transaction cost](../../../../concepts/transactions/transaction-cost.md). This requires the [FeeEscalation amendment][] to be enabled. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}New in: rippled 0.31.0{% /badge %} -This is a public command available to unprivileged users. [Updated in: rippled 0.32.0][] +This is a public command available to unprivileged users. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}Updated in: rippled 0.32.0{% /badge %} ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "fee_websocket_example", "command": "fee" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "fee", "params": [{}] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: fee rippled fee ``` +{% /tab %} - +{% /tabs %} The request does not include any parameters. @@ -50,10 +50,9 @@ The request does not include any parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "fee_websocket_example", @@ -80,9 +79,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -109,9 +108,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -139,8 +138,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -149,25 +149,21 @@ The response follows the [standard format][], with a successful result containin | `current_ledger_size` | String (Integer) | Number of transactions provisionally included in the in-progress ledger. | | `current_queue_size` | String (Integer) | Number of transactions currently queued for the next ledger. | | `drops` | Object | Various information about the transaction cost (the `Fee` field of a transaction), in [drops of XRP][]. | -| `drops.base_fee` | String (Integer) | The transaction cost required for a [reference transaction](transaction-cost.html#reference-transaction-cost) to be included in a ledger under minimum load, represented in drops of XRP. | +| `drops.base_fee` | String (Integer) | The transaction cost required for a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) to be included in a ledger under minimum load, represented in drops of XRP. | | `drops.median_fee` | String (Integer) | An approximation of the median transaction cost among transactions included in the previous validated ledger, represented in drops of XRP. | -| `drops.minimum_fee` | String (Integer) | The minimum transaction cost for a [reference transaction](transaction-cost.html#reference-transaction-cost) to be queued for a later ledger, represented in drops of XRP. If greater than `base_fee`, the transaction queue is full. | -| `drops.open_ledger_fee` | String (Integer) | The minimum transaction cost that a [reference transaction](transaction-cost.html#reference-transaction-cost) must pay to be included in the current open ledger, represented in drops of XRP. | +| `drops.minimum_fee` | String (Integer) | The minimum transaction cost for a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) to be queued for a later ledger, represented in drops of XRP. If greater than `base_fee`, the transaction queue is full. | +| `drops.open_ledger_fee` | String (Integer) | The minimum transaction cost that a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) must pay to be included in the current open ledger, represented in drops of XRP. | | `expected_ledger_size` | String (Integer) | The approximate number of transactions expected to be included in the current ledger. This is based on the number of transactions in the previous ledger. | -| `ledger_current_index` | Number | The [Ledger Index][] of the current open ledger these stats describe. [New in: rippled 0.50.0][] | +| `ledger_current_index` | Number | The [Ledger Index][] of the current open ledger these stats describe. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.50.0" %}New in: rippled 0.50.0{% /badge %} | | `levels` | Object | Various information about the transaction cost, in [fee levels][]. The ratio in fee levels applies to any transaction relative to the minimum cost of that particular transaction. | | `levels.median_level` | String (Integer) | The median transaction cost among transactions in the previous validated ledger, represented in [fee levels][]. | | `levels.minimum_level` | String (Integer) | The minimum transaction cost required to be queued for a future ledger, represented in [fee levels][]. | | `levels.open_ledger_level` | String (Integer) | The minimum transaction cost required to be included in the current open ledger, represented in [fee levels][]. | | `levels.reference_level` | String (Integer) | The equivalent of the minimum transaction cost, represented in [fee levels][]. | -| `max_queue_size` | String (Integer) | The maximum number of transactions that the [transaction queue](transaction-cost.html#queued-transactions) can currently hold. | +| `max_queue_size` | String (Integer) | The maximum number of transactions that the [transaction queue](../../../../concepts/transactions/transaction-cost.md#queued-transactions) can currently hold. | ## Possible Errors - Any of the [universal error types][]. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/index.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/index.md index 1d4469d0d6..d055714300 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/index.md @@ -1,8 +1,12 @@ --- html: server-info-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Server Info Methods -Use these methods to retrieve information about the current state of the rippled server. \ No newline at end of file +Use these methods to retrieve information about the current state of the rippled server. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md index a60426de21..e3a01824f1 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md @@ -8,43 +8,43 @@ labels: # manifest [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Manifest.cpp "Source") -The `{{currentpage.name}}` method reports the current "manifest" information for a given validator public key. The "manifest" is a block of data that authorizes an ephemeral signing key with a signature from the validator's master key pair. [Updated in: rippled 1.7.0][] +The {% code-page-name /%} method reports the current "manifest" information for a given validator public key. The "manifest" is a block of data that authorizes an ephemeral signing key with a signature from the validator's master key pair. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Updated in: rippled 1.7.0{% /badge %} ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { - "command": "{{currentpage.name}}", + "command": "{% $frontmatter.seo.title %}", "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { - "method": "{{currentpage.name}}", + "method": "{% $frontmatter.seo.title %}", "params": [{ "public_key":"nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh -#Syntax: {{currentpage.name}} public_key -rippled {{currentpage.name}} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p +#Syntax: {% $frontmatter.seo.title %} public_key +rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -57,10 +57,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -77,9 +76,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -97,9 +96,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -118,8 +117,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} @@ -128,7 +128,7 @@ The response follows the [standard format][], with a successful result containin | `Field` | Type | Description | |:------------|:-------|:------------------------------------------------------| | `details` | Object | _(May be omitted)_ The data contained in this manifest. Omitted if the server does not have a manifest for the `public_key` from the request. See **Details Object** below for a full description of its contents. | -| `manifest` | String | _(May be omitted)_ The full manifest data in base64 format. This data is [serialized](serialization.html) to binary before being base64-encoded. Omitted if the server does not have a manifest for the `public_key` from the request. | +| `manifest` | String | _(May be omitted)_ The full manifest data in base64 format. This data is [serialized](../../../protocol/binary-format.md) to binary before being base64-encoded. Omitted if the server does not have a manifest for the `public_key` from the request. | | `requested` | String | The `public_key` from the request. | #### Details Object @@ -149,7 +149,4 @@ If provided, the `details` object contains the following fields: - `invalidParams` - The `public_key` field was missing or specified incorrectly. - `reportingUnsupported` - ([Reporting Mode][] servers only) This method is not available in Reporting Mode. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md index 80efb87a04..5a2ac83708 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md @@ -15,20 +15,20 @@ The `server_definitions` command returns an SDK-compatible `definitions.json`, g ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, "command": "server_definitions" } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#server_definitions) +[Try it! >](/resources/dev-tools/websocket-api-tool#server_definitions) The request does not take any parameters. @@ -37,10 +37,9 @@ The request does not take any parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -91,18 +90,15 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} -To see a full `definitions.json` file and descriptions of the top-level fields, see: [Definitions File](serialization.html#definitions-file). +To see a full `definitions.json` file and descriptions of the top-level fields, see: [Definitions File](../../../protocol/binary-format.md#definitions-file). ## Possible Errors Any of the [universal error types][]. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md index 6b65ba8d73..19a249c432 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md @@ -8,24 +8,23 @@ labels: # server_info (rippled) [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ServerInfo.cpp "Source") -The `server_info` command asks the server for a human-readable version of various information about [the `rippled` server](xrpl-servers.html) being queried. For [Clio servers](the-clio-server.html), see [`server_info` (Clio)](server_info-clio.html) instead. +The `server_info` command asks the server for a human-readable version of various information about [the `rippled` server](../../../../concepts/networks-and-servers/index.md) being queried. For [Clio servers](../../../../concepts/networks-and-servers/the-clio-server.md), see [`server_info` (Clio)](../clio-methods/server_info-clio.md) instead. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "server_info" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "server_info", @@ -34,17 +33,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: server_info rippled server_info ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#server_info) +[Try it! >](/resources/dev-tools/websocket-api-tool#server_info) The request does not take any parameters. @@ -52,32 +52,21 @@ The request does not take any parameters. An example of a successful response: - +{% tabs %} -*WebSocket* +{% tab label="WebSocket" %} +{% code-snippet file="/_api-examples/server_info/ws-response.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/server_info/ws-response.json' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_api-examples/server_info/jsonrpc-response.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* +{% tab label="Commandline" %} +{% code-snippet file="/_api-examples/server_info/jsonrpc-response.json" language="json" prefix="Loading: \"/etc/opt/ripple/rippled.cfg\"\n2023-Sep-13 22:19:39.404596100 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005\n\n" /%} +{% /tab %} -```json -200 OK - -{% include '_api-examples/server_info/jsonrpc-response.json' %} -``` - -*Commandline* - -```json -Loading: "/etc/opt/ripple/rippled.cfg" -2023-Sep-13 22:19:39.404596100 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 - -{% include '_api-examples/server_info/jsonrpc-response.json' %} -``` - - +{% /tabs %} The response follows the [standard format][], with a successful result containing an `info` object as its only field. @@ -85,13 +74,13 @@ The `info` object may have some arrangement of the following fields: | `Field` | Type | Description | |:------------------------------------|:----------------|:---------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | +| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | | `build_version` | String | The version number of the running `rippled` server. | | `closed_ledger` | Object | _(May be omitted)_ Information on the most recently closed ledger that has not been validated by consensus. If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. The member fields are the same as the `validated_ledger` field. | | `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | -| `hostid` | String | On an admin request, returns the hostname of the server running the `rippled` instance; otherwise, returns a single [RFC-1751][] word based on the [node public key](peer-protocol.html#node-key-pair). | +| `hostid` | String | On an admin request, returns the hostname of the server running the `rippled` instance; otherwise, returns a single [RFC-1751][] word based on the [node public key](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair). | | `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. | -| `jq_trans_overflow` | String - Number | The number of times (since starting up) that this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](capacity-planning.html). | +| `jq_trans_overflow` | String - Number | The number of times (since starting up) that this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](../../../../infrastructure/installation/capacity-planning.md). | | `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. | | `last_close.converge_time_s` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in seconds. | | `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | @@ -101,21 +90,21 @@ The `info` object may have some arrangement of the following fields: | `load_factor` | Number | The multiplier to the [transaction cost][] the server is currently enforcing. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the individual server's load factor, the cluster's load factor, the open ledger cost, and the overall network's load factor. | | `load_factor_local` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to this server. | | `load_factor_net` | Number | _(May be omitted)_ The current multiplier to the transaction cost being used by the rest of the network (estimated from other servers' reported load values). | -| `load_factor_cluster` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to servers in this [cluster](clustering.html). | +| `load_factor_cluster` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to servers in this [cluster](../../../../concepts/networks-and-servers/clustering.md). | | `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the transaction cost that a transaction must pay to get into the open ledger. | | `load_factor_fee_queue` | Number | _(May be omitted)_ The current multiplier to the transaction cost that a transaction must pay to get into the queue, if the queue is full. | | `load_factor_server` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to the server, cluster, and network, but not factoring in the open ledger cost. | | `peers` | Number | _(Omitted by [reporting mode][Reporting mode] servers)_ How many other `rippled` servers this one is currently connected to. | -| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). [New in: rippled 1.12.0][] | -| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This [_node key pair_](peer-protocol.html#node-key-pair) is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](clustering.html). | +| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} | +| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This [_node key pair_](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair) is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](../../../../concepts/networks-and-servers/clustering.md). | | `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. | -| `reporting` | Object | _([Reporting mode](rippled-server-modes.html) servers only)_ Information about this server's reporting-mode specific configurations. | -| `reporting.etl_sources` | Array | _([Reporting mode](rippled-server-modes.html) servers only)_ A list of P2P-mode servers this reporting mode is retrieving data from. Each entry in this array is an [ETL Source object](#etl-source-object). | -| `reporting.is_writer` | Boolean | _([Reporting mode](rippled-server-modes.html) servers only)_ If `true`, this server is writing to the external database with ledger data. If `false`, it is not currently writing, possibly because another reporting mode server is currently populating a shared database, or because it's configured as read-only. | -| `reporting.last_publish_time` | String | _([Reporting mode](rippled-server-modes.html) servers only)_ An ISO 8601 timestamp indicating when this server last published a validated ledger to its [subscription streams](subscribe.html). | -| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](rippled-server-states.html) for more details. | +| `reporting` | Object | _([Reporting mode](../../../../concepts/networks-and-servers/rippled-server-modes.md) servers only)_ Information about this server's reporting-mode specific configurations. | +| `reporting.etl_sources` | Array | _([Reporting mode](../../../../concepts/networks-and-servers/rippled-server-modes.md) servers only)_ A list of P2P-mode servers this reporting mode is retrieving data from. Each entry in this array is an [ETL Source object](#etl-source-object). | +| `reporting.is_writer` | Boolean | _([Reporting mode](../../../../concepts/networks-and-servers/rippled-server-modes.md) servers only)_ If `true`, this server is writing to the external database with ledger data. If `false`, it is not currently writing, possibly because another reporting mode server is currently populating a shared database, or because it's configured as read-only. | +| `reporting.last_publish_time` | String | _([Reporting mode](../../../../concepts/networks-and-servers/rippled-server-modes.md) servers only)_ An ISO 8601 timestamp indicating when this server last published a validated ledger to its [subscription streams](../subscription-methods/subscribe.md). | +| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](../../api-conventions/rippled-server-states.md) for more details. | | `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | -| `state_accounting` | Object | A map of various [server states](rippled-server-states.html) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. | +| `state_accounting` | Object | A map of various [server states](../../api-conventions/rippled-server-states.md) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. | | `state_accounting.*.duration_us` | String | The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.) | | `state_accounting.*.transitions` | String | The number of times the server has changed into this state. | | `time` | String | The current time in UTC, according to the server's clock. | @@ -132,16 +121,12 @@ The `info` object may have some arrangement of the following fields: **Note:** If the `closed_ledger` field is present and has a small `seq` value (less than 8 digits), that indicates `rippled` does not currently have a copy of the validated ledger from the peer-to-peer network. This could mean your server is still syncing. Typically, it takes about 5 minutes to sync with the network, depending on your connection speed and hardware specs. -{% include '_snippets/etl-source-object.md' %} +{% partial file="/_snippets/etl-source-object.md" /%} -{% include '_snippets/port-descriptor-object.md' %} +{% partial file="/_snippets/port-descriptor-object.md" /%} ## Possible Errors * Any of the [universal error types][]. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md index 3eafd8efbe..8823df041c 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md @@ -11,15 +11,14 @@ labels: The `server_state` command asks the server for various machine-readable information about the `rippled` server's current state. The response is almost the same as the [server_info method][], but uses units that are easier to process instead of easier to read. (For example, XRP values are given in integer drops instead of scientific notation or decimal values, and time is given in milliseconds instead of seconds.) -The [Clio server](the-clio-server.html) does not support `server_state` directly, but you can ask for the `server_state` of the `rippled` server that Clio is connected to. Specify `"ledger_index": "current"` (WebSocket) or `"params": [{"ledger_index": "current"}]` (JSON-RPC). +The [Clio server](../../../../concepts/networks-and-servers/the-clio-server.md) does not support `server_state` directly, but you can ask for the `server_state` of the `rippled` server that Clio is connected to. Specify `"ledger_index": "current"` (WebSocket) or `"params": [{"ledger_index": "current"}]` (JSON-RPC). ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -27,9 +26,9 @@ An example of the request format: "ledger_index": "current" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "server_state", @@ -38,17 +37,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: server_state rippled server_state ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#server_state) +[Try it! >](/resources/dev-tools/websocket-api-tool#server_state) The request does not takes any parameters. @@ -56,10 +56,9 @@ The request does not takes any parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -124,9 +123,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -193,9 +192,9 @@ Headers } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/opt/ripple/rippled.cfg" 2020-Mar-24 01:30:08.646201720 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -263,8 +262,9 @@ Headers } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing a `state` object as its only field. @@ -272,12 +272,12 @@ The `state` object may have some arrangement of the following fields: | `Field` | Type | Description | |:---------------------------------|:----------------|:------------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | +| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | | `build_version` | String | The version number of the running `rippled` version. | | `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. It is possible to be a disjoint sequence, e.g. "2500-5000,32570-7695432". If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | | `closed_ledger` | Object | _(May be omitted)_ Information on the most recently closed ledger that has not been validated by consensus. If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. The member fields are the same as the `validated_ledger` field. | | `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. | -| `jq_trans_overflow` | String - Number | The number of times this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](capacity-planning.html). | +| `jq_trans_overflow` | String - Number | The number of times this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](../../../../infrastructure/installation/capacity-planning.md). | | `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. | | `last_close.converge_time` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in milliseconds. | | `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | @@ -291,16 +291,16 @@ The `state` object may have some arrangement of the following fields: | `load_factor_fee_reference` | Number | _(May be omitted)_ The transaction cost with no load scaling, in fee levels. | | `load_factor_server` | Number | _(May be omitted)_ The load factor the server is enforcing, based on load to the server, cluster, and network, but not factoring in the open ledger cost. | | `peers` | Number | _(Omitted by [reporting mode][Reporting mode] servers)_ How many other `rippled` servers this one is currently connected to. | -| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). [New in: rippled 1.12.0][] | -| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](clustering.html). | +| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} | +| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](../../../../concepts/networks-and-servers/clustering.md). | | `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. | | `reporting` | Object | _([Reporting mode][] servers only)_ Information about this server's reporting-mode specific configurations. | | `reporting.etl_sources` | Array | _([Reporting mode][] servers only)_ A list of P2P-mode servers this reporting mode is retrieving data from. Each entry in this array is an [ETL Source object](#etl-source-object). | | `reporting.is_writer` | Boolean | _([Reporting mode][] servers only)_ If `true`, this server is writing to the external database with ledger data. If `false`, it is not currently writing, possibly because another reporting mode server is currently populating a shared database, or because it's configured as read-only. | | `reporting.last_publish_time` | String | _([Reporting mode][] servers only)_ An ISO 8601 timestamp indicating when this server last saw a new validated ledger from any of its P2P mode sources. | -| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](rippled-server-states.html) for more details. | +| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](../../api-conventions/rippled-server-states.md) for more details. | | `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | -| `state_accounting` | Object | A map of various [server states](rippled-server-states.html) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. | +| `state_accounting` | Object | A map of various [server states](../../api-conventions/rippled-server-states.md) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. | | `state_accounting.*.duration_us` | String | The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.) | | `state_accounting.*.transitions` | String | The number of times the server has changed into this state. | | `time` | String | The current time in UTC, according to the server's clock. | @@ -309,24 +309,20 @@ The `state` object may have some arrangement of the following fields: | `validated_ledger.base_fee` | Number | Base fee, in drops of XRP, for propagating a transaction to the network. | | `validated_ledger.close_time` | Number | Time this ledger was closed, in [seconds since the Ripple Epoch][]. | | `validated_ledger.hash` | String | Unique hash of this ledger version, as hexadecimal. | -| `validated_ledger.reserve_base` | Number | The minimum [account reserve](reserves.html), as of the most recent validated ledger version. | -| `validated_ledger.reserve_inc` | Number | The [owner reserve](reserves.html) for each item an account owns, as of the most recent validated ledger version. | +| `validated_ledger.reserve_base` | Number | The minimum [account reserve](../../../../concepts/accounts/reserves.md), as of the most recent validated ledger version. | +| `validated_ledger.reserve_inc` | Number | The [owner reserve](../../../../concepts/accounts/reserves.md) for each item an account owns, as of the most recent validated ledger version. | | `validated_ledger.seq` | Number | The [ledger index][] of the most recently validated ledger version. | | `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. | | `validator_list_expires` | Number | _(Admin only)_ When the current validator list expires, in [seconds since the Ripple Epoch][], or 0 if the server has yet to load a published validator list. | -[Reporting mode]: rippled-server-modes.html +[Reporting mode]: ../../../../concepts/networks-and-servers/rippled-server-modes.md -{% include '_snippets/etl-source-object.md' %} +{% partial file="/_snippets/etl-source-object.md" /%} -{% include '_snippets/port-descriptor-object.md' %} +{% partial file="/_snippets/port-descriptor-object.md" /%} ## Possible Errors * Any of the [universal error types][]. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/subscription-methods/index.md b/content/references/http-websocket-apis/public-api-methods/subscription-methods/index.md index 014b536df0..463f414939 100644 --- a/content/references/http-websocket-apis/public-api-methods/subscription-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/subscription-methods/index.md @@ -1,8 +1,12 @@ --- html: subscription-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Subscription Methods -Use these methods to enable the server to push updates to your client when various events happen, so that you can know and react right away. WebSocket API only. \ No newline at end of file +Use these methods to enable the server to push updates to your client when various events happen, so that you can know and react right away. WebSocket API only. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md b/content/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md index c61cabf66d..c7850c1334 100644 --- a/content/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +++ b/content/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md @@ -16,10 +16,9 @@ The `subscribe` method requests periodic notifications from the server when cert ## Request Format An example of the request format: - - -*Subscribe to accounts* +{% tabs %} +{% tab label="Subscribe to accounts" %} ```json { "id": "Example watch Bitstamp's hot wallet", @@ -27,9 +26,9 @@ An example of the request format: "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] } ``` +{% /tab %} -*Subscribe to order book* - +{% tab label="Subscribe to order book" %} ```json { "id": "Example subscribe to XRP/GateHub USD order book", @@ -48,9 +47,9 @@ An example of the request format: ] } ``` +{% /tab %} -*Subscribe to ledger stream* - +{% tab label="Subscribe to ledger stream" %} ```json { "id": "Example watch for new validated ledgers", @@ -58,10 +57,11 @@ An example of the request format: "streams": ["ledger"] } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#subscribe) +[Try it! >](/resources/dev-tools/websocket-api-tool#subscribe) The request includes the following parameters: @@ -85,19 +85,19 @@ The `streams` parameter provides access to the following default streams of info - `peer_status` - **(Admin only)** Information about connected peer `rippled` servers, especially with regards to the consensus process. - `transactions` - Sends a message whenever a transaction is included in a closed ledger. - `transactions_proposed` - Sends a message whenever a transaction is included in a closed ledger, as well as some transactions that have not yet been included in a validated ledger and may never be. Not all proposed transactions appear before validation. - **Note:** [Even some transactions that don't succeed are included](transaction-results.html) in validated ledgers, because they take the anti-spam transaction fee. + **Note:** [Even some transactions that don't succeed are included](../../../protocol/transactions/transaction-results/transaction-results.md) in validated ledgers, because they take the anti-spam transaction fee. - `server` - Sends a message whenever the status of the `rippled` server (for example, network connectivity) changes. - `validations` - Sends a message whenever the server receives a validation message, regardless of if the server trusts the validator. (An individual `rippled` declares a ledger validated when the server receives validation messages from at least a quorum of trusted validators.) -**Note:** The following streams are not available from Clio and `rippled` servers in [Reporting Mode][]: `server`, `peer_status`, `consensus`. Both will return the `reportingUnsupported` error if you request one of these streams. [Updated in: rippled 1.8.1][] [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") +**Note:** The following streams are not available from Clio and `rippled` servers in [Reporting Mode][]: `server`, `peer_status`, `consensus`. Both will return the `reportingUnsupported` error if you request one of these streams. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}Updated in: rippled 1.8.1{% /badge %} {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} Each member of the `books` array, if provided, is an object with the following fields: | `Field` | Type | Description | |:-------------|:--------|:----------------------------------------------------| -| `taker_gets` | Object | Specification of which currency the account taking the Offer would receive, as a [currency object with no amount](currency-formats.html#specifying-without-amounts). | -| `taker_pays` | Object | Specification of which currency the account taking the Offer would pay, as a [currency object with no amount](currency-formats.html#specifying-without-amounts). | -| `taker` | String | Unique [account address](accounts.html) to use as a perspective for viewing offers, in the XRP Ledger's [base58][] format. (This affects the funding status and fees of [Offers](offers.html).) | +| `taker_gets` | Object | Specification of which currency the account taking the Offer would receive, as a [currency object with no amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `taker_pays` | Object | Specification of which currency the account taking the Offer would pay, as a [currency object with no amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `taker` | String | Unique [account address](../../../../concepts/accounts/accounts.md) to use as a perspective for viewing offers, in the XRP Ledger's [base58][] format. (This affects the funding status and fees of [Offers](../../../../concepts/tokens/decentralized-exchange/offers.md).) | | `snapshot` | Boolean | _(Optional)_ If `true`, return the current state of the order book once when you subscribe before sending updates. The default is `false`. | | `both` | Boolean | _(Optional)_ If `true`, return both sides of the order book. The default is `false`. | @@ -105,10 +105,9 @@ Each member of the `books` array, if provided, is an object with the following f An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "Example watch Bitstamp's hot wallet", @@ -117,8 +116,9 @@ An example of a successful response: "result": {} } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][]. The fields contained in the response vary depending on what subscriptions were included in the request. @@ -146,7 +146,7 @@ When you subscribe to a particular stream, you receive periodic responses on tha ## Ledger Stream -The `ledger` stream only sends `ledgerClosed` messages when [the consensus process](consensus.html) declares a new validated ledger. The message identifies the ledger and provides some information about its contents. +The `ledger` stream only sends `ledgerClosed` messages when [the consensus process](../../../../concepts/consensus-protocol/index.md) declares a new validated ledger. The message identifies the ledger and provides some information about its contents. ```json { @@ -168,20 +168,20 @@ The fields from a ledger stream message are as follows: | `Field` | Type | Description | |:--------------------|:--------------------------|:---------------------------| | `type` | String | `ledgerClosed` indicates this is from the ledger stream | -| `fee_base` | Number | The [reference transaction cost](transaction-cost.html#reference-transaction-cost) as of this ledger version, in [drops of XRP][]. If this ledger version includes a [SetFee pseudo-transaction](setfee.html) the new transaction cost applies starting with the following ledger version. | -| `fee_ref` | Number | _(May be omitted)_ The [reference transaction cost](transaction-cost.html#reference-transaction-cost) in "fee units". If the _[XRPFees amendment][]_ is enabled, this field is permanently omitted as it will no longer be relevant. | +| `fee_base` | Number | The [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) as of this ledger version, in [drops of XRP][]. If this ledger version includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new transaction cost applies starting with the following ledger version. | +| `fee_ref` | Number | _(May be omitted)_ The [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) in "fee units". If the _[XRPFees amendment][]_ is enabled, this field is permanently omitted as it will no longer be relevant. | | `ledger_hash` | String - [Hash][] | The identifying hash of the ledger version that was closed. | | `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger that was closed. | | `ledger_time` | Number | The time this ledger was closed, in [seconds since the Ripple Epoch][] | -| `reserve_base` | Number | The minimum [reserve](reserves.html), in [drops of XRP][], that is required for an account. If this ledger version includes a [SetFee pseudo-transaction](setfee.html) the new base reserve applies starting with the following ledger version. | -| `reserve_inc` | Number | The [owner reserve](reserves.html#owner-reserves) for each object an account owns in the ledger, in [drops of XRP][]. If the ledger includes a [SetFee pseudo-transaction](setfee.html) the new owner reserve applies after this ledger. | +| `reserve_base` | Number | The minimum [reserve](../../../../concepts/accounts/reserves.md), in [drops of XRP][], that is required for an account. If this ledger version includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new base reserve applies starting with the following ledger version. | +| `reserve_inc` | Number | The [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) for each object an account owns in the ledger, in [drops of XRP][]. If the ledger includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new owner reserve applies after this ledger. | | `txn_count` | Number | Number of new transactions included in this ledger version. | | `validated_ledgers` | String | _(May be omitted)_ Range of ledgers that the server has available. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. This field is not returned if the server is not connected to the network, or if it is connected but has not yet obtained a ledger from the network. | ## Validations Stream -[New in: rippled 0.29.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}New in: rippled 0.29.0{% /badge %} The validations stream sends messages whenever it receives validation messages, also called validation votes, regardless of whether or not the validation message is from a trusted validator. The message looks like the following: @@ -215,21 +215,21 @@ The fields from a validations stream message are as follows: | `Field` | Type | Description | |:------------------------|:-----------------|:--------------------------------| | `type` | String | The value `validationReceived` indicates this is from the validations stream. | -| `amendments` | Array of Strings | _(May be omitted)_ The [amendments](amendments.html) this server wants to be added to the protocol. [New in: rippled 0.32.0][] | -| `base_fee` | Integer | _(May be omitted)_ The unscaled transaction cost (`reference_fee` value) this server wants to set by [Fee Voting](fee-voting.html). [New in: rippled 0.32.0][] | -| `cookie` | String - Number | _(May be omitted)_ An arbitrary value chosen by the server at startup. If the same validation key pair signs validations with different cookies concurrently, that usually indicates that multiple servers are incorrectly configured to use the same validation key pair. [New in: rippled 1.8.1][] | -| `flags` | Number | Bit-mask of flags added to this validation message. The flag `0x80000000` indicates that the validation signature is fully-canonical. The flag `0x00000001` indicates that this is a full validation; otherwise it's a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus. [New in: rippled 0.32.0][] | -| `full` | Boolean | If `true`, this is a full validation. Otherwise, this is a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus. [New in: rippled 0.32.0][] | +| `amendments` | Array of Strings | _(May be omitted)_ The [amendments](../../../../concepts/networks-and-servers/amendments.md) this server wants to be added to the protocol. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | +| `base_fee` | Integer | _(May be omitted)_ The unscaled transaction cost (`reference_fee` value) this server wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | +| `cookie` | String - Number | _(May be omitted)_ An arbitrary value chosen by the server at startup. If the same validation key pair signs validations with different cookies concurrently, that usually indicates that multiple servers are incorrectly configured to use the same validation key pair. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | +| `flags` | Number | Bit-mask of flags added to this validation message. The flag `0x80000000` indicates that the validation signature is fully-canonical. The flag `0x00000001` indicates that this is a full validation; otherwise it's a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | +| `full` | Boolean | If `true`, this is a full validation. Otherwise, this is a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | | `ledger_hash` | String | The identifying hash of the proposed ledger is being validated. | -| `ledger_index` | String - Number | The [Ledger Index][] of the proposed ledger. [New in: rippled 0.31.0][] | -| `load_fee` | Integer | _(May be omitted)_ The local load-scaled transaction cost this validator is currently enforcing, in fee units. [New in: rippled 0.32.0][] | -| `master_key` | String | _(May be omitted)_ The validator's master public key, if the validator is using a validator token, in the XRP Ledger's [base58][] format. (See also: [Enable Validation on your `rippled` Server](run-rippled-as-a-validator.html#3-enable-validation-on-your-rippled-server).) [New in: rippled 1.4.0][] | -| `reserve_base` | Integer | _(May be omitted)_ The minimum reserve requirement (`account_reserve` value) this validator wants to set by [Fee Voting](fee-voting.html). [New in: rippled 0.32.0][] | -| `reserve_inc` | Integer | _(May be omitted)_ The increment in the reserve requirement (`owner_reserve` value) this validator wants to set by [Fee Voting](fee-voting.html). [New in: rippled 0.32.0][] | -| `server_version` | String - Number | _(May be omitted)_ An 64-bit integer that encodes the version number of the validating server. For example, `"1745990410175512576"`. Only provided once every 256 ledgers. [New in: rippled 1.8.1][] | +| `ledger_index` | String - Number | The [Ledger Index][] of the proposed ledger. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}New in: rippled 0.31.0{% /badge %} | +| `load_fee` | Integer | _(May be omitted)_ The local load-scaled transaction cost this validator is currently enforcing, in fee units. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | +| `master_key` | String | _(May be omitted)_ The validator's master public key, if the validator is using a validator token, in the XRP Ledger's [base58][] format. (See also: [Enable Validation on your `rippled` Server](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server).) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} | +| `reserve_base` | Integer | _(May be omitted)_ The minimum reserve requirement (`account_reserve` value) this validator wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | +| `reserve_inc` | Integer | _(May be omitted)_ The increment in the reserve requirement (`owner_reserve` value) this validator wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | +| `server_version` | String - Number | _(May be omitted)_ An 64-bit integer that encodes the version number of the validating server. For example, `"1745990410175512576"`. Only provided once every 256 ledgers. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | | `signature` | String | The signature that the validator used to sign its vote for this ledger. | -| `signing_time` | Number | When this validation vote was signed, in [seconds since the Ripple Epoch][]. [New in: rippled 0.32.0][] | -| `validated_hash` | String | The unique hash of the proposed ledger this validation applies to. [New in: rippled 1.8.1][] | +| `signing_time` | Number | When this validation vote was signed, in [seconds since the Ripple Epoch][]. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}New in: rippled 0.32.0{% /badge %} | +| `validated_hash` | String | The unique hash of the proposed ledger this validation applies to. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | | `validation_public_key` | String | The public key from the key-pair that the validator used to sign the message, in the XRP Ledger's [base58][] format. This identifies the validator sending the message and can also be used to verify the `signature`. If the validator is using a token, this is an ephemeral public key. | @@ -360,14 +360,14 @@ Transaction stream messages have the following fields: | `Field` | Type | Description | |:------------------------|:--------------------------|:-----------------------| | `type` | String | `transaction` indicates this is the notification of a transaction, which could come from several possible streams. | -| `engine_result` | String | String [Transaction result code](transaction-results.html) | -| `engine_result_code` | Number | Numeric [transaction response code](transaction-results.html), if applicable. | +| `engine_result` | String | String [Transaction result code](../../../protocol/transactions/transaction-results/transaction-results.md) | +| `engine_result_code` | Number | Numeric [transaction response code](../../../protocol/transactions/transaction-results/transaction-results.md), if applicable. | | `engine_result_message` | String | Human-readable explanation for the transaction response | -| `ledger_current_index` | Number - [Ledger Index][] | _(Unvalidated transactions only)_ The ledger index of the current in-progress [ledger version](ledgers.html) for which this transaction is currently proposed. | +| `ledger_current_index` | Number - [Ledger Index][] | _(Unvalidated transactions only)_ The ledger index of the current in-progress [ledger version](../../../../concepts/ledgers/index.md) for which this transaction is currently proposed. | | `ledger_hash` | String - [Hash][] | _(Validated transactions only)_ The identifying hash of the ledger version that includes this transaction | | `ledger_index` | Number - [Ledger Index][] | _(Validated transactions only)_ The ledger index of the ledger version that includes this transaction. | -| `meta` | Object | _(Validated transactions only)_ The [transaction metadata](transaction-metadata.html), which shows the exact outcome of the transaction in detail. | -| `transaction` | Object | The [definition of the transaction](transaction-formats.html) in JSON format | +| `meta` | Object | _(Validated transactions only)_ The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact outcome of the transaction in detail. | +| `transaction` | Object | The [definition of the transaction](../../../protocol/transactions/index.md) in JSON format | | `validated` | Boolean | If `true`, this transaction is included in a validated ledger and its outcome is final. Responses from the `transaction` stream should always be validated. | @@ -548,14 +548,14 @@ The format of an order book stream message is the same as that of [transaction s | `Field` | Value | Description | |:--------------------------|:-------|:----------------------------------------| -| `transaction.owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after executing this transaction. This does not check whether the currency amount is [frozen](freezes.html). | +| `transaction.owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after executing this transaction. This does not check whether the currency amount is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | ## Consensus Stream -[New in: rippled 1.4.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}New in: rippled 1.4.0{% /badge %} -The `consensus` stream sends `consensusPhase` messages when [the consensus process](consensus.html) changes phase. The message contains the new phase of consensus the server is in. +The `consensus` stream sends `consensusPhase` messages when [the consensus process](../../../../concepts/consensus-protocol/index.md) changes phase. The message contains the new phase of consensus the server is in. ```json { @@ -571,6 +571,4 @@ The fields from a consensus stream message are as follows: | `type` | String | `consensusPhase` indicates this is from the consensus stream | | `consensus` | String | The new consensus phase the server is in. Possible values are `open`, `establish`, and `accepted`. | - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md b/content/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md index f614d51d72..8e6fad301b 100644 --- a/content/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +++ b/content/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md @@ -17,10 +17,9 @@ The `unsubscribe` command tells the server to stop sending messages for a partic ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "Unsubscribe a lot of stuff", @@ -42,10 +41,11 @@ An example of the request format: ] } ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#unsubscribe) +[Try it! >](/resources/dev-tools/websocket-api-tool#unsubscribe) The parameters in the request are specified almost exactly like the parameters to the [subscribe method][], except that they are used to define which subscriptions to end instead. The parameters are: @@ -70,10 +70,9 @@ The objects in the `books` array are defined almost like the ones from subscribe An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "Unsubscribe a lot of stuff", @@ -82,8 +81,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing no fields. @@ -101,6 +101,4 @@ The response follows the [standard format][], with a successful result containin * `dstIsrMalformed` - The `issuer` field of one or more `taker_gets` sub-fields of the `books` field in the request is not valid. * `badMarket` - One or more desired order books in the `books` field does not exist; for example, offers to exchange a currency for itself. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/transaction-methods/index.md b/content/references/http-websocket-apis/public-api-methods/transaction-methods/index.md index 8d0da9e1f3..89e248b65b 100644 --- a/content/references/http-websocket-apis/public-api-methods/transaction-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/transaction-methods/index.md @@ -1,8 +1,12 @@ --- html: transaction-methods.html # watch for clashes w/ this filename parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Transaction Methods -Transactions are the only thing that can modify the shared state of the XRP Ledger. All business on the XRP Ledger takes the form of transactions. Use these methods to work with transactions. \ No newline at end of file +Transactions are the only thing that can modify the shared state of the XRP Ledger. All business on the XRP Ledger takes the form of transactions. Use these methods to work with transactions. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md b/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md index 8ef80aa356..37fc51a405 100644 --- a/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +++ b/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md @@ -9,7 +9,7 @@ labels: # submit [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Submit.cpp "Source") -The `submit` method applies a [transaction](transaction-formats.html) and sends it to the network to be confirmed and included in future ledgers. +The `submit` method applies a [transaction](../../../protocol/transactions/index.md) and sends it to the network to be confirmed and included in future ledgers. This command has two modes: @@ -24,15 +24,14 @@ A submit-only request includes the following parameters: | `Field` | Type | Required? | Description | |:------------|:--------|:----------|:-----------------------------------------------------| -| `tx_blob` | String | Yes | Hex representation of the signed transaction to submit. This can be a [multi-signed transaction](multi-signing.html). | +| `tx_blob` | String | Yes | Hex representation of the signed transaction to submit. This can be a [multi-signed transaction](../../../../concepts/accounts/multi-signing.md). | | `fail_hard` | Boolean | No | If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. | ### Request Format - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 3, @@ -40,9 +39,9 @@ A submit-only request includes the following parameters: "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "submit", @@ -53,24 +52,25 @@ A submit-only request includes the following parameters: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: submit tx_blob submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754 ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#submit) +[Try it! >](/resources/dev-tools/websocket-api-tool#submit) ## Sign-and-Submit Mode -This mode signs a transaction and immediately submits it. This mode is intended to be used for testing. You cannot use this mode for [multi-signed transactions](multi-signing.html). +This mode signs a transaction and immediately submits it. This mode is intended to be used for testing. You cannot use this mode for [multi-signed transactions](../../../../concepts/accounts/multi-signing.md). -_By default, sign-and-submit mode is [admin-only](admin-api-methods.html)._ It can be used as a public method if the server has [enabled public signing](enable-public-signing.html). +_By default, sign-and-submit mode is [admin-only](../../admin-api-methods/index.md)._ It can be used as a public method if the server has [enabled public signing](../../../../infrastructure/configuration/enable-public-signing.md). You can provide the secret key used to sign the transaction in the following ways: @@ -81,27 +81,26 @@ The request includes the following parameters: | `Field` | Type | Description | |:---------------|:--------|:--------------------------------------------------| -| `tx_json` | Object | [Transaction definition](transaction-formats.html) in JSON format, optionally omitting any auto-fillable fields. | +| `tx_json` | Object | [Transaction definition](../../../protocol/transactions/index.md) in JSON format, optionally omitting any auto-fillable fields. | | `secret` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | | `seed` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | | `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | | `passphrase` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | | `key_type` | String | _(Optional)_ Type of cryptographic key provided in this request. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. **Caution:** Ed25519 support is experimental. | -| `fail_hard` | Boolean | _(Optional)_ If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. [Updated in: rippled 1.5.0][] | +| `fail_hard` | Boolean | _(Optional)_ If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}Updated in: rippled 1.5.0{% /badge %} | | `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to automatically fill in or validate values. The default is `false`. | -| `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](transaction-common-fields.html#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](direct-xrp-payments.html) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/XRPLF/rippled/issues/3272)) | -| `fee_mult_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | -| `fee_div_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. [New in: rippled 0.30.1][] | +| `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](../../../protocol/transactions/common-fields.md#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](../../../../concepts/payment-types/direct-xrp-payments.md) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/XRPLF/rippled/issues/3272)) | +| `fee_mult_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | +| `fee_div_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}New in: rippled 0.30.1{% /badge %} | See the [sign method][] for detailed information on how the server automatically fills in certain fields. ### Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -121,9 +120,9 @@ An example of the request format: "fee_mult_max": 1000 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "submit", @@ -146,26 +145,26 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: submit secret json [offline] rippled submit s████████████████████████████ '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Amount": { "currency": "USD", "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "value": "1" }, "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "TransactionType": "Payment", "Fee": "10000"}' ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#submit) +[Try it! >](/resources/dev-tools/websocket-api-tool#submit) ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -204,9 +203,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -243,9 +242,9 @@ An example of a successful response: "validated_ledger_index" : 21184416 } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -285,29 +284,30 @@ Connecting to 127.0.0.1:5005 "validated_ledger_index" : 21184416 } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | |:------------------------|:--------|:-----------------------------------------| -| `engine_result` | String | Text [result code](transaction-results.html) indicating the preliminary result of the transaction, for example `tesSUCCESS` | -| `engine_result_code` | Integer | Numeric version of the [result code](transaction-results.html). **Not recommended.** | +| `engine_result` | String | Text [result code](../../../protocol/transactions/transaction-results/transaction-results.md) indicating the preliminary result of the transaction, for example `tesSUCCESS` | +| `engine_result_code` | Integer | Numeric version of the [result code](../../../protocol/transactions/transaction-results/transaction-results.md). **Not recommended.** | | `engine_result_message` | String | Human-readable explanation of the transaction's preliminary result | | `tx_blob` | String | The complete transaction in hex string format | | `tx_json` | Object | The complete transaction in JSON format | -| `accepted` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was applied, queued, broadcast, or kept for later. The value `false` indicates that none of those happened, so the transaction cannot possibly succeed as long as you do not submit it again and have not already submitted it another time. [New in: rippled 1.5.0][] | -| `account_sequence_available` | Number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] available for the sending account after all pending and [queued](transaction-queue.html) transactions. [New in: rippled 1.5.0][] | -| `account_sequence_next` | number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] for the sending account after all transactions that have been provisionally applied, but not transactions in the [queue](transaction-queue.html). [New in: rippled 1.5.0][] | -| `applied` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that this transaction was applied to the open ledger. In this case, the transaction is likely, but not guaranteed, to be validated in the next ledger version. [New in: rippled 1.5.0][] | -| `broadcast` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates this transaction was broadcast to peer servers in the peer-to-peer XRP Ledger network. (Note: if the server has no peers, such as in [stand-alone mode][], the server uses the value `true` for cases where it _would_ have broadcast the transaction.) The value `false` indicates the transaction was not broadcast to any other servers. [New in: rippled 1.5.0][] | -| `kept` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was kept to be retried later. [New in: rippled 1.5.0][] | -| `queued` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates the transaction was put in the [Transaction Queue](transaction-queue.html), which means it is likely to be included in a future ledger version. [New in: rippled 1.5.0][] | -| `open_ledger_cost` | String | _(Omitted in sign-and-submit mode)_ The current [open ledger cost](transaction-cost.html#open-ledger-cost) before processing this transaction. Transactions with a lower cost are likely to be [queued](transaction-queue.html). [New in: rippled 1.5.0][] | +| `accepted` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was applied, queued, broadcast, or kept for later. The value `false` indicates that none of those happened, so the transaction cannot possibly succeed as long as you do not submit it again and have not already submitted it another time. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | +| `account_sequence_available` | Number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] available for the sending account after all pending and [queued](../../../../concepts/transactions/transaction-queue.md) transactions. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | +| `account_sequence_next` | number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] for the sending account after all transactions that have been provisionally applied, but not transactions in the [queue](../../../../concepts/transactions/transaction-queue.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | +| `applied` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that this transaction was applied to the open ledger. In this case, the transaction is likely, but not guaranteed, to be validated in the next ledger version. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | +| `broadcast` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates this transaction was broadcast to peer servers in the peer-to-peer XRP Ledger network. (Note: if the server has no peers, such as in [stand-alone mode][], the server uses the value `true` for cases where it _would_ have broadcast the transaction.) The value `false` indicates the transaction was not broadcast to any other servers. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | +| `kept` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was kept to be retried later. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | +| `queued` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates the transaction was put in the [Transaction Queue](../../../../concepts/transactions/transaction-queue.md), which means it is likely to be included in a future ledger version. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | +| `open_ledger_cost` | String | _(Omitted in sign-and-submit mode)_ The current [open ledger cost](../../../../concepts/transactions/transaction-cost.md#open-ledger-cost) before processing this transaction. Transactions with a lower cost are likely to be [queued](../../../../concepts/transactions/transaction-queue.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}New in: rippled 1.5.0{% /badge %} | | `validated_ledger_index` | Integer | _(Omitted in sign-and-submit mode)_ The [ledger index][] of the newest validated ledger at the time of submission. This provides a lower bound on the ledger versions that the transaction can appear in as a result of this request. (The transaction could only have been validated in this ledger version or earlier if it had already been submitted before.) | -**Warning:** Even if the WebSocket response has `"status":"success"`, indicating that the command was successfully received, that does _not_ indicate that the transaction executed successfully. Many situations can prevent a transaction from processing successfully, such as a lack of trust lines connecting the two accounts in a payment, or changes in the state of the ledger since the time the transaction was constructed. Even if nothing is wrong, it may take several seconds to close and validate the ledger version that includes the transaction. See the [full list of transaction responses](transaction-results.html) for details, and do not consider the transaction's results final until they appear in a validated ledger version. +**Warning:** Even if the WebSocket response has `"status":"success"`, indicating that the command was successfully received, that does _not_ indicate that the transaction executed successfully. Many situations can prevent a transaction from processing successfully, such as a lack of trust lines connecting the two accounts in a payment, or changes in the state of the ledger since the time the transaction was constructed. Even if nothing is wrong, it may take several seconds to close and validate the ledger version that includes the transaction. See the [full list of transaction responses](../../../protocol/transactions/transaction-results/transaction-results.md) for details, and do not consider the transaction's results final until they appear in a validated ledger version. **Caution:** If this command results in an error message, the message can contain the secret key from the request. (This can only happen in sign-and-submit mode.) Make sure that these errors are not visible to others. @@ -319,7 +319,7 @@ The response follows the [standard format][], with a successful result containin ## Possible Errors * Any of the [universal error types][]. -* `amendmentBlocked` - The transaction cannot be submitted to the network because the `rippled` server is [amendment blocked](amendments.html#amendment-blocked-servers). +* `amendmentBlocked` - The transaction cannot be submitted to the network because the `rippled` server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). * `highFee` - The `fee_mult_max` parameter was specified, but the server's current fee multiplier exceeds the specified one. (Sign-and-Submit mode only) * `internalJson` - An internal error occurred when serializing the transaction to JSON. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. * `internalSubmit` - An internal error occurred when submitting the transaction. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. @@ -328,10 +328,6 @@ The response follows the [standard format][], with a successful result containin * `invalidTransaction` - The transaction is malformed or otherwise invalid. * `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur. (Sign-and-Submit mode only) * `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. (Sign-and-Submit mode only) -* `notSupported` - Signing is not supported by this server (Sign-and-Submit mode only.) If you are the server admin, you can still access signing when connected [as an admin](admin-api-methods.html), or you could [enable public signing](enable-public-signing.html). [New in: rippled 1.1.0][] +* `notSupported` - Signing is not supported by this server (Sign-and-Submit mode only.) If you are the server admin, you can still access signing when connected [as an admin](../../admin-api-methods/index.md), or you could [enable public signing](../../../../infrastructure/configuration/enable-public-signing.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}New in: rippled 1.1.0{% /badge %} - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md b/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md index 931690a529..fe9920d7da 100644 --- a/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +++ b/content/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md @@ -8,17 +8,16 @@ labels: # submit_multisigned [[Source]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/SubmitMultiSigned.cpp "Source") -The `submit_multisigned` command applies a [multi-signed](multi-signing.html) transaction and sends it to the network to be included in future ledgers. (You can also submit multi-signed transactions in binary form using the [`submit` command in submit-only mode](submit.html#submit-only-mode).) +The `submit_multisigned` command applies a [multi-signed](../../../../concepts/accounts/multi-signing.md) transaction and sends it to the network to be included in future ledgers. (You can also submit multi-signed transactions in binary form using the [`submit` command in submit-only mode](submit.md#submit-only-mode).) -This command requires the [MultiSign amendment][] to be enabled. [New in: rippled 0.31.0][] +This command requires the [MultiSign amendment][] to be enabled. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}New in: rippled 0.31.0{% /badge %} ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "submit_multisigned_example", @@ -52,9 +51,9 @@ An example of the request format: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "submit_multisigned", @@ -94,9 +93,9 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: submit_multisigned rippled submit_multisigned '{ @@ -130,24 +129,24 @@ rippled submit_multisigned '{ "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" }' ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: | `Field` | Type | Required? | Description | |:------------|:--------|:----------|:-----------------------------------------------------| -| `tx_json` | Object | Yes | [Transaction in JSON format](transaction-formats.html) with an array of `Signers`. To be successful, the weights of the signatures must be equal or higher than the quorum of the [SignerList](signerlist.html). | +| `tx_json` | Object | Yes | [Transaction in JSON format](../../../protocol/transactions/index.md) with an array of `Signers`. To be successful, the weights of the signatures must be equal or higher than the quorum of the [SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md). | | `fail_hard` | Boolean | No | If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. | ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": "submit_multisigned_example", @@ -191,9 +190,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -237,9 +236,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ``` Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -284,8 +283,9 @@ Connecting to 127.0.0.1:5005 } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -294,8 +294,8 @@ The response follows the [standard format][], with a successful result containin | `engine_result` | String | Code indicating the preliminary result of the transaction, for example `tesSUCCESS` | | `engine_result_code` | Integer | Numeric code indicating the preliminary result of the transaction, directly correlated to `engine_result` | | `engine_result_message` | String | Human-readable explanation of the preliminary transaction result | -| `tx_blob` | String | The complete [transaction](transaction-formats.html) in hex string format | -| `tx_json` | Object | The complete [transaction](transaction-formats.html) in JSON format | +| `tx_blob` | String | The complete [transaction](../../../protocol/transactions/index.md) in hex string format | +| `tx_json` | Object | The complete [transaction](../../../protocol/transactions/index.md) in JSON format | ## Possible Errors @@ -304,6 +304,4 @@ The response follows the [standard format][], with a successful result containin * `srcActMalformed` - The `Account` field from the `tx_json` was invalid or missing. * `internal` - An internal error occurred. This includes the case where a signature is not valid for the transaction JSON provided. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md b/content/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md index 99d77ad583..bf2dc8a487 100644 --- a/content/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +++ b/content/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md @@ -14,10 +14,9 @@ The `transaction_entry` method retrieves information on a single transaction fro An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 4, @@ -26,9 +25,9 @@ An example of the request format: "ledger_index": 56865245 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "transaction_entry", @@ -40,17 +39,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: transaction_entry transaction_hash ledger_index|ledger_hash rippled transaction_entry C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 56865245 ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#transaction_entry) +[Try it! >](/resources/dev-tools/websocket-api-tool#transaction_entry) The request includes the following parameters: @@ -66,10 +66,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 4, @@ -192,9 +191,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -315,9 +314,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -438,8 +437,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -447,8 +447,8 @@ The response follows the [standard format][], with a successful result containin |:---------------|:--------------------------|:--------------------------------| | `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger version the transaction was found in; this is the same as the one from the request. | | `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version the transaction was found in; this is the same as the one from the request. | -| `metadata` | Object | The [transaction metadata](transaction-metadata.html), which shows the exact results of the transaction in detail. | -| `tx_json` | Object | JSON representation of the [Transaction object](transaction-formats.html) | +| `metadata` | Object | The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact results of the transaction in detail. | +| `tx_json` | Object | JSON representation of the [Transaction object](../../../protocol/transactions/index.md) | There are a couple possible reasons the server may fail to find the transaction: @@ -464,7 +464,4 @@ There are a couple possible reasons the server may fail to find the transaction: * `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. * `transactionNotFound` - The transaction specified in the request could not be found in the specified ledger. (It might be in a different ledger version, or it might not be available at all.) - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md b/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md index c927ecf99b..208e77b982 100644 --- a/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +++ b/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md @@ -10,16 +10,15 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Tx.cpp "Source") -The `tx` method retrieves information on a single [transaction](transaction-formats.html), by its [identifying hash][] or its [CTID](ctid.html). +The `tx` method retrieves information on a single [transaction](../../../protocol/transactions/index.md), by its [identifying hash][] or its [CTID](../../api-conventions/ctid.md). ## Request Format An example of the request format: - - -*WebSocket (Hash)* +{% tabs %} +{% tab label="WebSocket (Hash)" %} ```json { "id": 1, @@ -28,10 +27,9 @@ An example of the request format: "binary": false } ``` +{% /tab %} - -*WebSocket (CTID)* - +{% tab label="WebSocket (CTID)" %} ```json { "id": "CTID example", @@ -40,10 +38,9 @@ An example of the request format: "binary": false } ``` +{% /tab %} - -*JSON-RPC (Hash)* - +{% tab label="JSON-RPC (Hash)" %} ```json { "method": "tx", @@ -55,9 +52,9 @@ An example of the request format: ] } ``` +{% /tab %} -*JSON-RPC (CTID)* - +{% tab label="JSON-RPC (CTID)" %} ```json { "method": "tx", @@ -69,25 +66,26 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: tx transaction [binary] rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 false ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#tx) +[Try it! >](/resources/dev-tools/websocket-api-tool#tx) The request includes the following parameters: | Field | Type | Required? | Description | |:--------------|:--------|:----------|----------------------------------------| -| `ctid` | String | No | The [compact transaction identifier](ctid.html) of the transaction to look up. Must use uppercase hexadecimal only. [New in: rippled 1.12.0][] _(Not supported in Clio v2.0 and earlier)_ | +| `ctid` | String | No | The [compact transaction identifier](../../api-conventions/ctid.md) of the transaction to look up. Must use uppercase hexadecimal only. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} _(Not supported in Clio v2.0 and earlier)_ | | `transaction` | String | No | The 256-bit hash of the transaction to look up, as hexadecimal. | -| `binary` | Boolean | No | If `true`, return transaction data and metadata as binary [serialized](serialization.html) to hexadecimal strings. If `false`, return transaction data and metadata as JSON. The default is `false`. | +| `binary` | Boolean | No | If `true`, return transaction data and metadata as binary [serialized](../../../protocol/binary-format.md) to hexadecimal strings. If `false`, return transaction data and metadata as JSON. The default is `false`. | | `min_ledger` | Number | No | Use this with `max_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], starting with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in this range. | | `max_ledger` | Number | No | Use this with `min_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], ending with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in the requested range. | @@ -99,34 +97,25 @@ You must provide _either_ `ctid` or `transaction`, but not both. An example of a successful response: - +{% tabs %} -*WebSocket (Hash)* +{% tab label="WebSocket (Hash)" %} +{% code-snippet file="/_api-examples/tx/ws-response-hash.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/tx/ws-response-hash.json' %} -``` +{% tab label="WebSocket (CTID)" %} +{% code-snippet file="/_api-examples/tx/ws-response-ctid.json" language="json" /%} +{% /tab %} -*WebSocket (CTID)* +{% tab label="JSON-RPC (Hash)" %} +{% code-snippet file="/_api-examples/tx/jsonrpc-response-hash.json" language="json" /%} +{% /tab %} -```json -{% include '_api-examples/tx/ws-response-ctid.json' %} -``` - -*JSON-RPC (Hash)* - -```json -{% include '_api-examples/tx/jsonrpc-response-hash.json' %} -``` - -*JSON-RPC (CTID)* - -```json -{% include '_api-examples/tx/jsonrpc-response-ctid.json' %} -``` - -*Commandline* +{% tab label="JSON-RPC (CTID)" %} +{% code-snippet file="/_api-examples/tx/jsonrpc-response-ctid.json" language="json" /%} +{% /tab %} +{% tab label="Commandline" %} ```json { "result" : { @@ -246,21 +235,22 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} -The response follows the [standard format][], with a successful result containing the fields of the [Transaction object](transaction-formats.html) as well as the following additional fields: +The response follows the [standard format][], with a successful result containing the fields of the [Transaction object](../../../protocol/transactions/index.md) as well as the following additional fields: | `Field` | Type | Description | |:---------------|:---------------------------------|:-------------------------| -| `ctid` | String | The transaction's [compact transaction identifier](ctid.html). [New in: rippled 1.12.0][] _(Not supported in Clio v2.0 and earlier.)_ | -| `date` | Number | The [close time](ledger-close-times.html) of the ledger in which the transaction was applied, in [seconds since the Ripple Epoch][]. | +| `ctid` | String | The transaction's [compact transaction identifier](../../api-conventions/ctid.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} _(Not supported in Clio v2.0 and earlier.)_ | +| `date` | Number | The [close time](../../../../concepts/ledgers/ledger-close-times.md) of the ledger in which the transaction was applied, in [seconds since the Ripple Epoch][]. | | `hash` | String | The unique [identifying hash][] of the transaction | | `inLedger` | Number | _(Deprecated)_ Alias for `ledger_index`. | | `ledger_index` | Number | The [ledger index][] of the ledger that includes this transaction. | -| `meta` | Object (JSON) or String (binary) | [Transaction metadata](transaction-metadata.html), which describes the results of the transaction. | +| `meta` | Object (JSON) or String (binary) | [Transaction metadata](../../../protocol/transactions/metadata.md), which describes the results of the transaction. | | `validated` | Boolean | If `true`, this data comes from a validated ledger version; if omitted or set to `false`, this data is not final. | -| (Various) | (Various) | Other fields from the [Transaction object](transaction-formats.html) | +| (Various) | (Various) | Other fields from the [Transaction object](../../../protocol/transactions/index.md) | ### Not Found Response @@ -270,7 +260,7 @@ If the server does not find the transaction, it returns a `txnNotFound` error, w - The transaction has not been included in any ledger version, and has not been executed. - The transaction was included in a ledger version that the server does not have available. -This means that a `txnNotFound` on its own is not enough to know the [final outcome of a transaction](finality-of-results.html). +This means that a `txnNotFound` on its own is not enough to know the [final outcome of a transaction](../../../../concepts/transactions/finality-of-results/index.md). To further narrow down the possibilities, you can provide a range of ledgers to search using the `min_ledger` and `max_ledger` fields in the request. If you provide **both** of those fields, the `txnNotFound` response includes the following field: @@ -280,10 +270,9 @@ To further narrow down the possibilities, you can provide a range of ledgers to An example of a `txnNotFound` response that fully searched a requested range of ledgers: - - -_WebSocket_ +{% tabs %} +{% tab label="WebSocket" %} ```json { "error": "txnNotFound", @@ -303,9 +292,9 @@ _WebSocket_ "type": "response" } ``` +{% /tab %} -_JSON-RPC_ - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -326,8 +315,9 @@ _JSON-RPC_ } } ``` +{% /tab %} - +{% /tabs %} ## Possible Errors @@ -337,6 +327,4 @@ _JSON-RPC_ * `excessiveLgrRange` - The `min_ledger` and `max_ledger` fields of the request are more than 1000 apart. * `invalidLgrRange` - The specified `min_ledger` is larger than the `max_ledger`, or one of those parameters is not a valid ledger index. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md b/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md index 3d7b774d91..90c74cc201 100644 --- a/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +++ b/content/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md @@ -13,10 +13,9 @@ The `tx_history` method retrieves some of the most recent transactions made. ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 5, @@ -24,9 +23,9 @@ An example of the request format: "start": 0 } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "tx_history", @@ -37,15 +36,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: tx_history [start] rippled tx_history 0 ``` +{% /tab %} - +{% /tabs %} The request includes the following parameters: @@ -57,10 +57,9 @@ The request includes the following parameters: An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 2, @@ -511,9 +510,9 @@ An example of a successful response: } } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -879,9 +878,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -1431,8 +1430,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: @@ -1441,7 +1441,7 @@ The response follows the [standard format][], with a successful result containin | `index` | Unsigned Integer | The value of `start` used in the request. | | `txs` | Array | Array of transaction objects. | -The fields included in each transaction object vary slightly depending on the type of transaction. See [Transaction Format](transaction-formats.html) for details. +The fields included in each transaction object vary slightly depending on the type of transaction. See [Transaction Format](../../../protocol/transactions/index.md) for details. ## Possible Errors @@ -1449,6 +1449,4 @@ The fields included in each transaction object vary slightly depending on the ty * `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. * `noPermission` - The `start` field specified was greater than 10000, but you are not connected to the server as an admin. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/utility-methods/index.md b/content/references/http-websocket-apis/public-api-methods/utility-methods/index.md index 4a794687e0..eb5095d255 100644 --- a/content/references/http-websocket-apis/public-api-methods/utility-methods/index.md +++ b/content/references/http-websocket-apis/public-api-methods/utility-methods/index.md @@ -1,8 +1,12 @@ --- html: utility-methods.html parent: public-api-methods.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Utility Methods -Use these methods to perform convenient tasks, such as ping and random number generation. \ No newline at end of file +Use these methods to perform convenient tasks, such as ping and random number generation. + + +{% child-pages /%} diff --git a/content/references/http-websocket-apis/public-api-methods/utility-methods/json.md b/content/references/http-websocket-apis/public-api-methods/utility-methods/json.md index bf5668b0e1..c0b413e92d 100644 --- a/content/references/http-websocket-apis/public-api-methods/utility-methods/json.md +++ b/content/references/http-websocket-apis/public-api-methods/utility-methods/json.md @@ -12,25 +12,24 @@ The `json` method is a proxy to running other commands, and accepts the paramete ## Request Format An example of the request format: - - -*Commandline* +{% tabs %} +{% tab label="Commandline" %} ```sh # Syntax: json method json_stanza rippled -q json ledger_closed '{}' ``` +{% /tab %} - +{% /tabs %} ## Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result" : { @@ -40,11 +39,10 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with whichever fields are appropriate to the type of command made. - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/utility-methods/ping.md b/content/references/http-websocket-apis/public-api-methods/utility-methods/ping.md index ee75ba06c0..f76163fa3e 100644 --- a/content/references/http-websocket-apis/public-api-methods/utility-methods/ping.md +++ b/content/references/http-websocket-apis/public-api-methods/utility-methods/ping.md @@ -13,19 +13,18 @@ The `ping` command returns an acknowledgement, so that clients can test the conn ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "ping" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "ping", @@ -34,17 +33,18 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: ping rippled ping ``` +{% /tab %} - +{% /tabs %} -[Try it! >](websocket-api-tool.html#ping) +[Try it! >](/resources/dev-tools/websocket-api-tool#ping) The request includes no parameters. @@ -52,10 +52,9 @@ The request includes no parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -64,9 +63,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -76,8 +75,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing no fields. The client can measure the round-trip time from request to response as latency. @@ -85,7 +85,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/http-websocket-apis/public-api-methods/utility-methods/random.md b/content/references/http-websocket-apis/public-api-methods/utility-methods/random.md index 5f4bbc023c..2faeaebeec 100644 --- a/content/references/http-websocket-apis/public-api-methods/utility-methods/random.md +++ b/content/references/http-websocket-apis/public-api-methods/utility-methods/random.md @@ -14,19 +14,18 @@ The `random` command provides a random number to be used as a source of entropy ## Request Format An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, "command": "random" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "random", @@ -35,15 +34,16 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: random rippled random ``` +{% /tab %} - +{% /tabs %} The request includes no parameters. @@ -51,10 +51,9 @@ The request includes no parameters. An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "id": 1, @@ -65,9 +64,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json 200 OK @@ -78,9 +77,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -89,8 +88,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The response follows the [standard format][], with a successful result containing the following field: @@ -103,7 +103,4 @@ The response follows the [standard format][], with a successful result containin * Any of the [universal error types][]. * `internal` - Some internal error occurred, possibly relating to the random number generator. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/binary-format.md b/content/references/protocol/binary-format.md index 9a97aabd40..2a602478a9 100644 --- a/content/references/protocol/binary-format.md +++ b/content/references/protocol/binary-format.md @@ -16,15 +16,15 @@ curated_anchors: # Binary Format [[Source]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source") -This page describes the XRP Ledger's canonical binary format for transactions and other data. This binary format is necessary to create and verify digital signatures of those transactions' contents, and is also used in other places including in the [peer-to-peer communications between servers](peer-protocol.html). The [`rippled` APIs](http-websocket-apis.html) typically use JSON to communicate with client applications. However, JSON is unsuitable as a format for serializing transactions for being digitally signed, because JSON can represent the same data in many different but equivalent ways. +This page describes the XRP Ledger's canonical binary format for transactions and other data. This binary format is necessary to create and verify digital signatures of those transactions' contents, and is also used in other places including in the [peer-to-peer communications between servers](../../concepts/networks-and-servers/peer-protocol.md). The [`rippled` APIs](../http-websocket-apis/index.md) typically use JSON to communicate with client applications. However, JSON is unsuitable as a format for serializing transactions for being digitally signed, because JSON can represent the same data in many different but equivalent ways. The process of serializing a transaction from JSON or any other representation into their canonical binary format can be summarized with these steps: -1. Make sure all required fields are provided, including any required but ["auto-fillable" fields](transaction-common-fields.html#auto-fillable-fields). +1. Make sure all required fields are provided, including any required but ["auto-fillable" fields](transactions/common-fields.md#auto-fillable-fields). - The [Transaction Formats Reference](transaction-formats.html) defines the required and optional fields for XRP Ledger transactions. + The [Transaction Formats Reference](transactions/index.md) defines the required and optional fields for XRP Ledger transactions. - **Note:** The `SigningPubKey` must also be provided at this step. When signing, you can [derive this key](cryptographic-keys.html#key-derivation) from the secret key that is provided for signing. + **Note:** The `SigningPubKey` must also be provided at this step. When signing, you can [derive this key](../../concepts/accounts/cryptographic-keys.md#key-derivation) from the secret key that is provided for signing. 2. Convert each field's data into its ["internal" binary format](#internal-format). @@ -36,7 +36,7 @@ The process of serializing a transaction from JSON or any other representation i The result is a single binary blob that can be signed using well-known signature algorithms such as ECDSA (with the secp256k1 elliptic curve) and Ed25519. For purposes of the XRP Ledger, you must also [hash][Hash] the data with the appropriate prefix (`0x53545800` if single-signing, or `0x534D5400` if multi-signing). After signing, you must re-serialize the transaction with the `TxnSignature` field included. -**Note:** The XRP Ledger uses the same serialization format to represent other types of data, such as [ledger objects](ledger-object-types.html) and processed transactions. However, only certain fields are appropriate for including in a transaction that gets signed. (For example, the `TxnSignature` field, containing the signature itself, should not be present in the binary blob that you sign.) Thus, some fields are designated as "Signing" fields, which are included in objects when those objects are signed, and "non-signing" fields, which are not. +**Note:** The XRP Ledger uses the same serialization format to represent other types of data, such as [ledger objects](ledger-data/ledger-entry-types/index.md) and processed transactions. However, only certain fields are appropriate for including in a transaction that gets signed. (For example, the `TxnSignature` field, containing the signature itself, should not be present in the binary blob that you sign.) Thus, some fields are designated as "Signing" fields, which are included in objects when those objects are signed, and "non-signing" fields, which are not. ### Examples @@ -44,33 +44,29 @@ Both signed and unsigned transactions can be represented in both JSON and binary **JSON:** -```json -{% include '_code-samples/tx-serialization/py/test-cases/tx1.json' %} -``` +{% code-snippet file="/_code-samples/tx-serialization/py/test-cases/tx1.json" language="json" /%} **Binary (represented as hexadecimal):** -```text -{% include '_code-samples/tx-serialization/py/test-cases/tx1-binary.txt' %} -``` +{% code-snippet file="/_code-samples/tx-serialization/py/test-cases/tx1-binary.txt" language="text" /%} ## Sample Code The serialization processes described here are implemented in multiple places and programming languages: - In C++ [in the `rippled` code base](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp). -- In JavaScript in [this repository's code samples section]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/tx-serialization/). -- In Python 3 in [this repository's code samples section]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/tx-serialization/). +- In JavaScript in {% repo-link path="content/_code-samples/tx-serialization/" %}this repository's code samples section{% /repo-link %}. +- In Python 3 in {% repo-link path="content/_code-samples/tx-serialization/" %}this repository's code samples section{% /repo-link %}. -Additionally, many [client libraries](client-libraries.html) provide serialization support under permissive open-source licenses, so you can import, use, or adapt the code for your needs. +Additionally, many [client libraries](../client-libraries.md) provide serialization support under permissive open-source licenses, so you can import, use, or adapt the code for your needs. ## Internal Format -Each field has an "internal" binary format used in the `rippled` source code to represent that field when signing (and in most other cases). The internal formats for all fields are defined in the source code of [`SField.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/SField.cpp). (This file also includes fields other than transaction fields.) The [Transaction Format Reference](transaction-formats.html) also lists the internal formats for all transaction fields. +Each field has an "internal" binary format used in the `rippled` source code to represent that field when signing (and in most other cases). The internal formats for all fields are defined in the source code of [`SField.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/SField.cpp). (This file also includes fields other than transaction fields.) The [Transaction Format Reference](transactions/index.md) also lists the internal formats for all transaction fields. -For example, the `Flags` [common transaction field](transaction-common-fields.html) becomes a UInt32 (32-bit unsigned integer). +For example, the `Flags` [common transaction field](transactions/common-fields.md) becomes a UInt32 (32-bit unsigned integer). ### Definitions File @@ -83,10 +79,10 @@ The following table defines the top-level fields from the definitions file: | Field | Contents | |:----------------------|:-----------------------------------------------------| | `TYPES` | Map of data types to their ["type code"](#type-codes) for constructing field IDs and sorting fields in canonical order. Codes below 1 should not appear in actual data; codes above 10000 represent special "high-level" object types such as "Transaction" that cannot be serialized inside other objects. See the [Type List](#type-list) for details of how to serialize each type. | -| `LEDGER_ENTRY_TYPES` | Map of [ledger objects](ledger-object-types.html) to their data type. These appear in ledger state data, and in the "affected nodes" section of processed transactions' [metadata](transaction-metadata.html). | +| `LEDGER_ENTRY_TYPES` | Map of [ledger objects](ledger-data/ledger-entry-types/index.md) to their data type. These appear in ledger state data, and in the "affected nodes" section of processed transactions' [metadata](transactions/metadata.md). | | `FIELDS` | A sorted array of tuples representing all fields that may appear in transactions, ledger objects, or other data. The first member of each tuple is the string name of the field and the second member is an object with that field's properties. (See the "Field properties" table below for definitions of those fields.) | -| `TRANSACTION_RESULTS` | Map of [transaction result codes](transaction-results.html) to their numeric values. Result types not included in ledgers have negative values; `tesSUCCESS` has numeric value 0; [`tec`-class codes](tec-codes.html) represent failures that are included in ledgers. | -| `TRANSACTION_TYPES` | Map of all [transaction types](transaction-types.html) to their numeric values. | +| `TRANSACTION_RESULTS` | Map of [transaction result codes](transactions/transaction-results/transaction-results.md) to their numeric values. Result types not included in ledgers have negative values; `tesSUCCESS` has numeric value 0; [`tec`-class codes](transactions/transaction-results/tec-codes.md) represent failures that are included in ledgers. | +| `TRANSACTION_TYPES` | Map of all [transaction types](transactions/types/index.md) to their numeric values. | For purposes of serializing transactions for signing and submitting, the `FIELDS`, `TYPES`, and `TRANSACTION_TYPES` fields are necessary. @@ -109,8 +105,8 @@ When you combine a field's type code and field code, you get the field's unique | | Type Code < 16 | Type Code >= 16 | |:-----------------|:------------------------------------------------------------------------------|:--| -| **Field Code < 16** | ![1 byte: high 4 bits define type; low 4 bits define field.](img/field-id-common-type-common-field.png) | ![2 bytes: low 4 bits of the first byte define field; next byte defines type.](img/field-id-uncommon-type-common-field.png) | -| **Field Code >= 16** | ![2 bytes: high 4 bits of the first byte define type; low 4 bits of first byte are 0; next byte defines field](img/field-id-common-type-uncommon-field.png) | ![3 bytes: first byte is `0x00`, second byte defines type; third byte defines field](img/field-id-uncommon-type-uncommon-field.png) | +| **Field Code < 16** | ![1 byte: high 4 bits define type; low 4 bits define field.](/img/field-id-common-type-common-field.png) | ![2 bytes: low 4 bits of the first byte define field; next byte defines type.](/img/field-id-uncommon-type-common-field.png) | +| **Field Code >= 16** | ![2 bytes: high 4 bits of the first byte define type; low 4 bits of first byte are 0; next byte defines field](/img/field-id-common-type-uncommon-field.png) | ![3 bytes: first byte is `0x00`, second byte defines type; third byte defines field](/img/field-id-uncommon-type-uncommon-field.png) | When decoding, you can tell how many bytes the field ID is by which bits **of the first byte** are zeroes. This corresponds to the cases in the above table: @@ -133,11 +129,15 @@ The length prefix consists of one to three bytes indicating the length of the fi - If the field contains 193 to 12480 bytes of data, the first two bytes indicate the length of the field with the following formula: - 193 + ((byte1 - 193) * 256) + byte2 + ``` + 193 + ((byte1 - 193) * 256) + byte2 + ``` - If the field contains 12481 to 918744 bytes of data, the first three bytes indicate the length of the field with the following formula: - 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 + ``` + 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 + ``` - A length-prefixed field cannot contain more than 918744 bytes of data. @@ -176,14 +176,14 @@ Transaction instructions may contain fields of any of the following types: | Type Name | Type Code | Bit Length | [Length-prefixed][]? | Description | |:--------------|:----------|:-----------|:---------------------|----------------| -| [AccountID][] | 8 | 160 | Yes | The unique identifier for an [account](accounts.html). | +| [AccountID][] | 8 | 160 | Yes | The unique identifier for an [account](../../concepts/accounts/accounts.md). | | [Amount][] | 6 | 64 or 384 | No | An amount of XRP or tokens. The length of the field is 64 bits for XRP or 384 bits (64+160+160) for tokens. | | [Blob][] | 7 | Variable | Yes | Arbitrary binary data. One important such field is `TxnSignature`, the signature that authorizes a transaction. | | [Hash128][] | 4 | 128 | No | A 128-bit arbitrary binary value. The only such field is `EmailHash`, which is intended to store the MD-5 hash of an account owner's email for purposes of fetching a [Gravatar](https://www.gravatar.com/). | | [Hash160][] | 17 | 160 | No | A 160-bit arbitrary binary value. This may define a currency code or issuer. | | [Hash256][] | 5 | 256 | No | A 256-bit arbitrary binary value. This usually represents the "SHA-512Half" hash of a transaction, ledger version, or ledger data object. | -| [PathSet][] | 18 | Variable | No | A set of possible [payment paths](paths.html) for a [cross-currency payment](cross-currency-payments.html). | -| [STArray][] | 15 | Variable | No | An array containing a variable number of members, which can be different types depending on the field. Two cases of this include [memos](transaction-common-fields.html#memos-field) and lists of signers used in [multi-signing](multi-signing.html). | +| [PathSet][] | 18 | Variable | No | A set of possible [payment paths](../../concepts/tokens/fungible-tokens/paths.md) for a [cross-currency payment](../../concepts/payment-types/cross-currency-payments.md). | +| [STArray][] | 15 | Variable | No | An array containing a variable number of members, which can be different types depending on the field. Two cases of this include [memos](transactions/common-fields.md#memos-field) and lists of signers used in [multi-signing](../../concepts/accounts/multi-signing.md). | | [STIssue][] | 24 | 160 or 320 | No | An asset definition, XRP or a token, with no quantity. | | [STObject][] | 14 | Variable | No | An object containing one or more nested fields. | | [UInt8][] | 16 | 8 | No | An 8-bit unsigned integer. | @@ -194,22 +194,22 @@ Transaction instructions may contain fields of any of the following types: [Length-prefixed]: #length-prefixing -In addition to all of the above field types, the following types may appear in other contexts, such as [ledger objects](ledger-object-types.html) and [transaction metadata](transaction-metadata.html): +In addition to all of the above field types, the following types may appear in other contexts, such as [ledger objects](ledger-data/ledger-entry-types/index.md) and [transaction metadata](transactions/metadata.md): | Type Name | Type Code | [Length-prefixed]? | Description | |:------------|:----------|:-------------------|:------------------------------| -| Transaction | 10001 | No | A "high-level" type containing an entire [transaction](transaction-formats.html). | -| LedgerEntry | 10002 | No | A "high-level" type containing an entire [ledger object](ledger-object-types.html). | -| Validation | 10003 | No | A "high-level" type used in peer-to-peer communications to represent a validation vote in the [consensus process](consensus.html). | -| Metadata | 10004 | No | A "high-level" type containing [metadata for one transaction](transaction-metadata.html). | +| Transaction | 10001 | No | A "high-level" type containing an entire [transaction](transactions/index.md). | +| LedgerEntry | 10002 | No | A "high-level" type containing an entire [ledger object](ledger-data/ledger-entry-types/index.md). | +| Validation | 10003 | No | A "high-level" type used in peer-to-peer communications to represent a validation vote in the [consensus process](../../concepts/consensus-protocol/index.md). | +| Metadata | 10004 | No | A "high-level" type containing [metadata for one transaction](transactions/metadata.md). | | [UInt64][] | 3 | No | A 64-bit unsigned integer. This type does not appear in transaction instructions, but several ledger objects use fields of this type. | -| Vector256 | 19 | Yes | This type does not appear in transaction instructions, but the [Amendments ledger object](amendments-object.html)'s `Amendments` field uses this to represent which [amendments](amendments.html) are currently enabled. | +| Vector256 | 19 | Yes | This type does not appear in transaction instructions, but the [Amendments ledger object](ledger-data/ledger-entry-types/amendments.md)'s `Amendments` field uses this to represent which [amendments](../../concepts/networks-and-servers/amendments.md) are currently enabled. | ### AccountID Fields [AccountID]: #accountid-fields -Fields of this type contain the 160-bit identifier for an XRP Ledger [account](accounts.html). In JSON, these fields are represented as [base58][] XRP Ledger "addresses", with additional checksum data so that typos are unlikely to result in valid addresses. (This encoding, sometimes called "Base58Check", prevents accidentally sending money to the wrong address.) The binary format for these fields does not contain any checksum data nor does it include the `0x00` "type prefix" used in [address base58 encoding](addresses.html#address-encoding). (However, since the binary format is used mostly for signed transactions, a typo or other error in transcribing a signed transaction would invalidate the signature, preventing it from sending money.) +Fields of this type contain the 160-bit identifier for an XRP Ledger [account](../../concepts/accounts/accounts.md). In JSON, these fields are represented as [base58][] XRP Ledger "addresses", with additional checksum data so that typos are unlikely to result in valid addresses. (This encoding, sometimes called "Base58Check", prevents accidentally sending money to the wrong address.) The binary format for these fields does not contain any checksum data nor does it include the `0x00` "type prefix" used in [address base58 encoding](../../concepts/accounts/addresses.md#address-encoding). (However, since the binary format is used mostly for signed transactions, a typo or other error in transcribing a signed transaction would invalidate the signature, preventing it from sending money.) AccountIDs that appear as stand-alone fields (such as `Account` and `Destination`) are [length-prefixed](#length-prefixing) despite being a fixed 160 bits in length. As a result, the length indicator for these fields is always the byte `0x14`. AccountIDs that appear as children of special fields ([Amount `issuer`][Amount] and [PathSet `account`][PathSet]) are _not_ length-prefixed. @@ -228,8 +228,8 @@ The "Amount" type is a special field type that represents an amount of currency, Tokens consist of three segments in order: 1. 64 bits indicating the amount in the [token amount format](#token-amount-format). The first bit is `1` to indicate that this is not XRP. - 2. 160 bits indicating the [currency code](currency-formats.html#currency-codes). The standard API converts 3-character codes such as "USD" into 160-bit codes using the [standard currency code format](currency-formats.html#standard-currency-codes), but custom 160-bit codes are also possible. - 3. 160 bits indicating the issuer's Account ID. (See also: [Account Address Encoding](addresses.html#address-encoding)) + 2. 160 bits indicating the [currency code](data-types/currency-formats.md#currency-codes). The standard API converts 3-character codes such as "USD" into 160-bit codes using the [standard currency code format](data-types/currency-formats.md#standard-currency-codes), but custom 160-bit codes are also possible. + 3. 160 bits indicating the issuer's Account ID. (See also: [Account Address Encoding](../../concepts/accounts/addresses.md#address-encoding)) You can tell which of the two sub-types it is based on the first bit: `0` for XRP; `1` for tokens. @@ -240,7 +240,7 @@ The following diagram shows the serialization formats for both XRP amounts and t #### Token Amount Format [[Source]](https://github.com/XRPLF/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/STAmount.cpp "Source") -{{ include_svg("img/currency-number-format.svg", "Token Amount Format diagram") }} +[{% inline-svg file="/img/currency-number-format.svg" /%}](/img/currency-number-format.svg "Token Amount Format diagram") The XRP Ledger uses 64 bits to serialize the numeric amount of a (fungible) token. (In JSON format, the numeric amount is the `value` field of a currency amount object.) In binary format, the numeric amount consists of a "not XRP" bit, a sign bit, significant digits, and an exponent, in order: @@ -258,9 +258,9 @@ At a protocol level, currency codes in the XRP Ledger are arbitrary 160-bit valu - The currency code `0x0000000000000000000000005852500000000000` is **always disallowed**. (This is the code "XRP" in the "standard format".) - The currency code `0x0000000000000000000000000000000000000000` (all zeroes) is **generally disallowed**. Usually, XRP amounts are not specified with currency codes. However, this code is used to indicate XRP in rare cases where a field must specify a currency code for XRP. -The [`rippled` APIs](http-websocket-apis.html) support a **standard format** for translating three-character ASCII codes to 160-bit hex values as follows: +The [`rippled` APIs](../http-websocket-apis/index.md) support a **standard format** for translating three-character ASCII codes to 160-bit hex values as follows: -{{ include_svg("img/currency-code-format.svg", "Standard Currency Code Format") }} +[{% inline-svg file="/img/currency-code-format.svg" /%}](/img/currency-code-format.svg "Standard Currency Code Format") 1. The first 8 bits must be `0x00`. 2. The next 88 bits are reserved, and should be all `0`'s. @@ -274,7 +274,7 @@ The **nonstandard format** is any 160 bits of data as long as the first 8 bits a ### Array Fields [STArray]: #array-fields -Some transaction fields, such as `SignerEntries` (in [SignerListSet transactions][]) and [`Memos`](transaction-common-fields.html#memos-field), are arrays of objects (called the "STArray" type). +Some transaction fields, such as `SignerEntries` (in [SignerListSet transactions][]) and [`Memos`](transactions/common-fields.md#memos-field), are arrays of objects (called the "STArray" type). Arrays contain several [object fields](#object-fields) in their native binary format in a specific order. In JSON, each array member is a JSON "wrapper" object with a single field, which is the name of the member object field. The value of that field is the ("inner") object itself. @@ -306,7 +306,7 @@ All such fields are serialized as the specific number of bits, with no length in ### Issue Fields [STIssue]: #issue-fields -Some fields specify a _type_ of asset, which could be XRP or a fungible [token](tokens.html), without an amount. These fields have consist of one or two 160-bit segments in order: +Some fields specify a _type_ of asset, which could be XRP or a fungible [token](../../concepts/tokens/index.md), without an amount. These fields have consist of one or two 160-bit segments in order: 1. The first 160 bits are the [currency code](#currency-codes) of the asset. For XRP, this is all 0's. 2. If the first 160 bits are all 0's (the asset is XRP), the field ends there. Otherwise, the asset is a token and the next 160 bits are the [AccountID of the token issuer](#accountid-fields). @@ -327,7 +327,7 @@ The following example shows the serialization format for an object (a single `Me ### PathSet Fields [PathSet]: #pathset-fields -The `Paths` field of a cross-currency [Payment transaction][] is a "PathSet", represented in JSON as an array of arrays. For more information on what paths are used for, see [Paths](paths.html). +The `Paths` field of a cross-currency [Payment transaction][] is a "PathSet", represented in JSON as an array of arrays. For more information on what paths are used for, see [Paths](../../concepts/tokens/fungible-tokens/paths.md). A PathSet is serialized as **1 to 6** individual paths in sequence[[Source]](https://github.com/XRPLF/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L35-L36 "Source"). Each complete path is followed by a byte that indicates what comes next: @@ -344,9 +344,9 @@ The following table describes the possible fields and the bitwise flags to set i | `0x10` | `currency` | [Currency Code][] | 160 bits | 2nd | | `0x20` | `issuer` | [AccountID][] | 160 bits | 3rd | -[Currency Code]: currency-formats.html#standard-currency-codes +[Currency Code]: data-types/currency-formats.md#standard-currency-codes -Some combinations are invalid; see [Path Specifications](paths.html#path-specifications) for details. +Some combinations are invalid; see [Path Specifications](../../concepts/tokens/fungible-tokens/paths.md#path-specifications) for details. The AccountIDs in the `account` and `issuer` fields are presented _without_ a length prefix. When the `currency` is XRP, the currency code is represented as 160 bits of zeroes. @@ -354,7 +354,7 @@ Each step is followed directly by the next step of the path. As described above, The following example shows the serialization format for a PathSet: -{{ include_svg("img/serialization-pathset.svg", "PathSet is several paths each followed by a continue or end byte; each path is several path steps consisting of a type byte and one or more 160-bit fields based on the type byte") }} +[{% inline-svg file="/img/serialization-pathset.svg" /%}](/img/serialization-pathset.svg "PathSet is several paths each followed by a continue or end byte; each path is several path steps consisting of a type byte and one or more 160-bit fields based on the type byte") ### UInt Fields @@ -373,9 +373,9 @@ Another special case is the `TransactionType` field. In JSON, this field is conv ### XChainBridge Fields [XChainBridge]: #xchainbridge-fields -{{ include_svg("img/serialization-xchainbridge.svg", "XChainBridge format diagram") }} +[{% inline-svg file="/img/serialization-xchainbridge.svg" /%}](/img/serialization-xchainbridge.svg "XChainBridge format diagram") -The `XChainBridge` field, used in transactions and ledger entries related to [cross-chain bridges](cross-chain-bridges.html), is the only field of the XChainBridge type. It consists of 4 parts which together define a bridge between blockchains: +The `XChainBridge` field, used in transactions and ledger entries related to [cross-chain bridges](../../concepts/xrpl-sidechains/cross-chain-bridges.md), is the only field of the XChainBridge type. It consists of 4 parts which together define a bridge between blockchains: - The locking chain door account, a length-prefixed [AccountID][]. - The locking chain asset type, an [STIssue][]. @@ -389,7 +389,5 @@ The two nested [STIssue][] types are each either 160 or 320 bits. The STIssue fi In total, an XChainBridge field is always either 656, 816, or 976 bits (82, 102, or 122 bytes) depending on whether zero, one, or both of the assets are the native asset on their respective chain. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/data-types/base58-encodings.md b/content/references/protocol/data-types/base58-encodings.md index f01ab201b2..b398676384 100644 --- a/content/references/protocol/data-types/base58-encodings.md +++ b/content/references/protocol/data-types/base58-encodings.md @@ -5,7 +5,7 @@ blurb: Formats for representing cryptographic keys and related data in base58 fo --- # base58 Encodings -XRP Ledger APIs often use a "base58" encoding with a checksum (sometimes called "Base58Check") to represent [account addresses](addresses.html) and other types of values related to cryptographic keys. This encoding is the same as [the one used for Bitcoin addresses](https://en.bitcoin.it/wiki/Base58Check_encoding), except that the XRP Ledger uses the following dictionary: `rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`. +XRP Ledger APIs often use a "base58" encoding with a checksum (sometimes called "Base58Check") to represent [account addresses](../../../concepts/accounts/addresses.md) and other types of values related to cryptographic keys. This encoding is the same as [the one used for Bitcoin addresses](https://en.bitcoin.it/wiki/Base58Check_encoding), except that the XRP Ledger uses the following dictionary: `rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`. The XRP Ledger prefixes different types of values with a specific 8-bit number before encoding them to distinguish between different data types. With the arrangement of characters in the XRP Ledger's base58 dictionary, the result is that the base58 representations for different types of encoded values start with specific letters by type. @@ -20,17 +20,13 @@ The following table lists all the encodings the XRP Ledger uses: ¹ Content size excludes the 1-byte type prefix. -[Account]: accounts.html +[Account]: ../../../concepts/accounts/accounts.md ## See Also -- [Address Encoding](addresses.html#address-encoding) - detailed information on address encoding -- [Cryptographic Keys](cryptographic-keys.html) - types of cryptographic keys in the XRP Ledger and how they're used +- [Address Encoding](../../../concepts/accounts/addresses.md#address-encoding) - detailed information on address encoding +- [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) - types of cryptographic keys in the XRP Ledger and how they're used - [wallet_propose Reference][wallet_propose method] - API method for generating account keys - [validation_create Reference][validation_create method] - API method for generating validator keys - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/data-types/basic-data-types.md b/content/references/protocol/data-types/basic-data-types.md index 79c3e30176..740ba9e58b 100644 --- a/content/references/protocol/data-types/basic-data-types.md +++ b/content/references/protocol/data-types/basic-data-types.md @@ -7,24 +7,24 @@ blurb: Format and meaning of fundamental data types like addresses, ledger index Different types of objects are uniquely identified in different ways: -[Accounts](accounts.html) are identified by their [Address][], for example `"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"`. Addresses always start with "r". Many `rippled` methods also accept a hexadecimal representation. +[Accounts](../../../concepts/accounts/accounts.md) are identified by their [Address][], for example `"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"`. Addresses always start with "r". Many `rippled` methods also accept a hexadecimal representation. -[Transactions](transaction-formats.html) are identified by a [Hash][] of the transaction's binary format. You can also identify a transaction by its sending account and [Sequence Number][]. +[Transactions](../transactions/index.md) are identified by a [Hash][] of the transaction's binary format. You can also identify a transaction by its sending account and [Sequence Number][]. -Each closed [Ledger](ledger-data-formats.html) has a [Ledger Index][] and a [Hash][] value. When [Specifying Ledgers][] you can use either one. +Each closed [Ledger](../ledger-data/index.md) has a [Ledger Index][] and a [Hash][] value. When [Specifying Ledgers][] you can use either one. ## Addresses [Address]: #addresses -{% include '_snippets/data_types/address.md' %} - +{% partial file="/_snippets/data_types/address.md" /%} + ## Hashes [Hash]: #hashes -{% include '_snippets/data_types/hash.md' %} - +{% partial file="/_snippets/data_types/hash.md" /%} + ### Hash Prefixes [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/HashPrefix.h "Source") @@ -48,24 +48,24 @@ Some types of hash appear in API requests and responses. Others are only calcula | Validation vote | N/A | `0x56414C00` | `VAL\0` | | Validator manifest | N/A | `0x4D414E00` | `MAN\0` | -[ledger header]: ledger-header.html -[SHAMapv2]: known-amendments.html#shamapv2 +[ledger header]: ../ledger-data/ledger-header.md +[SHAMapv2]: ../../../resources/known-amendments.md#shamapv2 -[Ledger objects IDs](ledger-object-ids.html) are calculated in a similar way, but they use a 2-byte prefix called a "space key" instead of a prefix in the form described here. +[Ledger objects IDs](../ledger-data/common-fields.md) are calculated in a similar way, but they use a 2-byte prefix called a "space key" instead of a prefix in the form described here. ## Account Sequence [Sequence Number]: #account-sequence -{% include '_snippets/data_types/account_sequence.md' %} - +{% partial file="/_snippets/data_types/account_sequence.md" /%} + ## Ledger Index [Ledger Index]: #ledger-index -{% include '_snippets/data_types/ledger_index.md' %} - +{% partial file="/_snippets/data_types/ledger_index.md" /%} + ### Specifying Ledgers @@ -74,17 +74,23 @@ Many API methods require you to specify an instance of the ledger, with the data 1. Specify a ledger by its [Ledger Index][] in the `ledger_index` parameter. Each closed ledger has a ledger index that is 1 higher than the previous ledger. (The very first ledger had ledger index 1.) - "ledger_index": 61546724 + ``` + "ledger_index": 61546724 + ``` 2. Specify a ledger by its [Hash][] value in the `ledger_hash` parameter. - "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" + ``` + "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" + ``` 3. Specify a ledger by one of the following shortcuts, in the `ledger_index` parameter: - * `validated` for the most recent ledger that has been [validated by consensus](consensus-structure.html#validation) + * `validated` for the most recent ledger that has been [validated by consensus](../../../concepts/consensus-protocol/consensus-structure.md#validation) - "ledger_index": "validated" + ``` + "ledger_index": "validated" + ``` * `closed` for the most recent ledger that has been closed for modifications and proposed for validation @@ -92,7 +98,7 @@ Many API methods require you to specify an instance of the ledger, with the data There is also a deprecated `ledger` parameter which accepts any of the above three formats. *Do not* use this parameter; it may be removed without further notice. -If you do not specify a ledger, the server decides which ledger to use to serve the request. By default, the server chooses the `current` (in-progress) ledger. In [Reporting Mode](rippled-server-modes.html#reporting-mode), the server uses the most recent validated ledger instead. Do not provide more than one field specifying ledgers. +If you do not specify a ledger, the server decides which ledger to use to serve the request. By default, the server chooses the `current` (in-progress) ledger. In [Reporting Mode](../../../concepts/networks-and-servers/rippled-server-modes.md#reporting-mode), the server uses the most recent validated ledger instead. Do not provide more than one field specifying ledgers. **Note:** Do not rely on the default behavior for specifying a ledger; it is subject to change. Always specify a ledger version in the request if you can. @@ -103,23 +109,27 @@ Reporting Mode does not record ledger data until it has been validated. If you m There are two kinds of currencies in the XRP Ledger: XRP and tokens. These two types of currencies are specified in different formats, with different precision and rounding behavior. -Some fields, such as the destination `Amount` of a [Payment transaction][], can be either type. Some fields only accept XRP specifically, such as the `Fee` field ([transaction cost](transaction-cost.html)). +Some fields, such as the destination `Amount` of a [Payment transaction][], can be either type. Some fields only accept XRP specifically, such as the `Fee` field ([transaction cost](../../../concepts/transactions/transaction-cost.md)). XRP is specified as a string containing an integer number of "drops" of XRP, where 1 million drops equals 1 XRP. Tokens are instead specified as an object with fields for the decimal amount, currency code, and issuer. For example: - **XRP** - To specify an `Amount` field with a value of 13.1 XRP: - "Amount": "13100000" + ``` + "Amount": "13100000" + ``` - **Token** - To specify an `Amount` field with a value of 13.1 FOO issued by or to `rf1B...`: - "Amount": { - "value": "13.1", - "currency": "FOO", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } + ``` + "Amount": { + "value": "13.1", + "currency": "FOO", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + ``` -For more information, see [Currency Formats](currency-formats.html). +For more information, see [Currency Formats](currency-formats.md). ## Specifying Time @@ -128,7 +138,4 @@ The `rippled` server and its APIs represent time as an unsigned integer. This nu Don't convert Ripple Epoch times to UNIX Epoch times in 32-bit variables: this could lead to integer overflows. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/data-types/currency-formats.md b/content/references/protocol/data-types/currency-formats.md index bad73a3ef8..2afe883000 100644 --- a/content/references/protocol/data-types/currency-formats.md +++ b/content/references/protocol/data-types/currency-formats.md @@ -8,7 +8,7 @@ label: --- # Currency Formats -The XRP Ledger has two kinds of digital asset: XRP and [tokens](tokens.html). Both types have high precision, although their formats are different. +The XRP Ledger has two kinds of digital asset: XRP and [tokens](../../../concepts/tokens/index.md). Both types have high precision, although their formats are different. ## Comparison @@ -18,16 +18,16 @@ The following table summarizes some of the differences between XRP and tokens in |:---------------------------------------------------------|:------------------| | Has no issuer. | Always issued by an XRP Ledger account. | | Specified as a string. | Specified as an object. | -| Tracked in [accounts](accountroot.html). | Tracked in [trust lines](ripplestate.html). | +| Tracked in [accounts](../ledger-data/ledger-entry-types/accountroot.md). | Tracked in [trust lines](../ledger-data/ledger-entry-types/ripplestate.md). | | Can never be created; can only be destroyed. | Can be issued or redeemed freely. | | Minimum value: `0`. (Cannot be negative.) | Minimum value: `-9999999999999999e80`. Minimum nonzero absolute value: `1000000000000000e-96`. | Maximum value `100000000000` (1011) XRP. That's `100000000000000000` (1017) "drops". | Maximum value `9999999999999999e80`. | | Precise to the nearest "drop" (0.000001 XRP) | 15 decimal digits of precision. | -| Can't be [frozen](freezes.html). | The issuer can [freeze](freezes.html) balances. | -| No transfer fees; XRP-to-XRP payments are always direct. | Can take indirect [paths](paths.html) with each issuer charging a percentage [transfer fee](transfer-fees.html). | -| Can be used in [Payment Channels](payment-channels.html) and [Escrow](escrow.html). | Not compatible with Payment Channels or Escrow. | +| Can't be [frozen](../../../concepts/tokens/fungible-tokens/freezes.md). | The issuer can [freeze](../../../concepts/tokens/fungible-tokens/freezes.md) balances. | +| No transfer fees; XRP-to-XRP payments are always direct. | Can take indirect [paths](../../../concepts/tokens/fungible-tokens/paths.md) with each issuer charging a percentage [transfer fee](../../../concepts/tokens/transfer-fees.md). | +| Can be used in [Payment Channels](../../../concepts/payment-types/payment-channels.md) and [Escrow](../../../concepts/payment-types/escrow.md). | Not compatible with Payment Channels or Escrow. | -For more information, see [What is XRP?](what-is-xrp.html) and [Tokens](tokens.html). +For more information, see [What is XRP?](../../../introduction/what-is-xrp.md) and [Tokens](../../../concepts/tokens/index.md). ## Specifying Currency Amounts @@ -50,13 +50,13 @@ XRP amounts cannot be negative. ### Token Amounts -To specify an amount of a [(fungible) token](tokens.html), use an Amount object. This is a JSON object with three fields: +To specify an amount of a [(fungible) token](../../../concepts/tokens/index.md), use an Amount object. This is a JSON object with three fields: | `Field` | Type | Description | |:-----------|:---------------------------|:-----------------------------------| | `currency` | String - [Currency Code][] | Arbitrary currency code for the token. Cannot be `XRP`. | | `value` | [String Number][] | Quoted decimal representation of the amount of the token. This can include scientific notation, such as `1.23e11` meaning 123,000,000,000. Both `e` and `E` may be used. This can be negative when displaying balances, but negative values are disallowed in other contexts such as specifying how much to send. | -| `issuer` | String | Generally, the [account](accounts.html) that issues this token. In special cases, this can refer to the account that holds the token instead (for example, in a [Clawback](clawback.html) transaction). | +| `issuer` | String | Generally, the [account](../../../concepts/accounts/accounts.md) that issues this token. In special cases, this can refer to the account that holds the token instead (for example, in a [Clawback](../transactions/types/clawback.md) transaction). | [String Number]: #string-numbers @@ -74,7 +74,7 @@ For example, to represent $153.75 US dollars issued by account `r9cZA1mLK5R5Am25 ### Specifying Without Amounts -In some cases, you need to define an asset (which could be XRP or a token) without a specific amount, such as when defining an order book in the [decentralized exchange](decentralized-exchange.html). +In some cases, you need to define an asset (which could be XRP or a token) without a specific amount, such as when defining an order book in the [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md). To describe a token without an amount, specify it as a currency object, but omit the `value` field. For example: @@ -96,7 +96,7 @@ To describe XRP without an amount, specify it as a JSON object with _only_ a `cu ## String Numbers -{% include '_snippets/string-number-formatting.md' %} +{% partial file="/_snippets/string-number-formatting.md" /%} ## XRP Precision @@ -106,15 +106,15 @@ XRP has the same precision as a 64-bit unsigned integer where each unit is equiv Tokens can represent a wide variety of assets, including those typically measured in very small or very large denominations. This format uses significant digits and a power-of-ten exponent in a similar way to scientific notation. The format supports positive and negative significant digits and exponents within the specified range. Unlike typical floating-point representations of non-whole numbers, this format uses integer math for all calculations, so it always maintains 15 decimal digits of precision. Multiplication and division have adjustments to compensate for over-rounding in the least significant digits. -When sending token amounts in the XRP Ledger's peer-to-peer network, servers [serialize](serialization.html) the amount to a 64-bit binary value. +When sending token amounts in the XRP Ledger's peer-to-peer network, servers [serialize](../binary-format.md) the amount to a 64-bit binary value. -**Tip:** For tokens that should not be divisible at all, see [Non-Fungible Tokens (NFTs)](non-fungible-tokens.html). +**Tip:** For tokens that should not be divisible at all, see [Non-Fungible Tokens (NFTs)](../../../concepts/tokens/nfts/index.md). ## Currency Codes [Currency Code]: #currency-codes -{% include '_snippets/data_types/currency_code.md' %} - +{% partial file="/_snippets/data_types/currency_code.md" /%} + ### Standard Currency Codes @@ -125,10 +125,10 @@ The standard format for currency codes is a three-character string such as `USD` - Currency codes are case-sensitive. - The currency code `XRP` (all-uppercase) is disallowed. Real XRP typically does not use a currency code in the XRP Ledger protocol. -At the protocol level, this format is [serialized](serialization.html#currency-codes) into a 160-bit binary value starting with `0x00`. +At the protocol level, this format is [serialized](../binary-format.md#currency-codes) into a 160-bit binary value starting with `0x00`. ### Nonstandard Currency Codes You can also use a 160-bit (40-character) hexadecimal string such as `015841551A748AD2C1F76FF6ECB0CCCD00000000` as the currency code. To prevent this from being treated as a "standard" currency code, the first 8 bits MUST NOT be `0x00`. -**Deprecated:** Some previous versions of [ripple-lib](https://github.com/XRPLF/xrpl.js) supported an "interest-bearing" or "demurraging" currency code type. These codes have the first 8 bits `0x01`. Demurraging / interest-bearing currencies are no longer supported, but you may find them in ledger data. For more information, see [Demurrage](demurrage.html). +**Deprecated:** Some previous versions of [ripple-lib](https://github.com/XRPLF/xrpl.js) supported an "interest-bearing" or "demurraging" currency code type. These codes have the first 8 bits `0x01`. Demurraging / interest-bearing currencies are no longer supported, but you may find them in ledger data. For more information, see [Demurrage](../../../concepts/tokens/fungible-tokens/demurrage.md). diff --git a/content/references/protocol/data-types/nftoken.md b/content/references/protocol/data-types/nftoken.md index fa8903dec8..0c5f544d00 100644 --- a/content/references/protocol/data-types/nftoken.md +++ b/content/references/protocol/data-types/nftoken.md @@ -11,7 +11,7 @@ The `NFToken` object represents a single non-fungible token (NFT). It is not sto _(Added by the [NonFungibleTokensV1_1 amendment][].)_ -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -20,7 +20,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ } ``` -Unlike full-fledged [ledger entries](ledger-object-types.html), `NFToken` has no field to identify the object type or current owner of the object. `NFToken` objects are grouped into pages that implicitly define the object type and identify the owner. +Unlike full-fledged [ledger entries](../ledger-data/ledger-entry-types/index.md), `NFToken` has no field to identify the object type or current owner of the object. `NFToken` objects are grouped into pages that implicitly define the object type and identify the owner. ## NFTokenID @@ -40,7 +40,7 @@ D) A 32-bit issuer-specified [`NFTokenTaxon`](https://www.merriam-webster.com/di E) An (automatically generated) monotonically increasing 32-bit sequence number. -![Token ID Breakdown](img/nftoken1.png "Token ID Breakdown") +![Token ID Breakdown](/img/nftoken1.png "Token ID Breakdown") The 16-bit flags, transfer fee fields, the 32-bit `NFTokenTaxon`, and the sequence number fields are stored in big-endian format. @@ -53,7 +53,7 @@ Flags are properties or other options associated with the `NFToken` object. |:------------------|:-----------|:--------------------------------------------| | `lsfBurnable` | `0x0001` | If enabled, the issuer (or an entity authorized by the issuer) can destroy this `NFToken`. The object's owner can always do so. | | `lsfOnlyXRP` | `0x0002` | If enabled, this `NFToken` can only be offered or sold for XRP. | -| `lsfTrustLine` | `0x0004` | **DEPRECATED** If enabled, automatically create [trust lines](trust-lines-and-issuing.html) to hold transfer fees. Otherwise, buying or selling this `NFToken` for a fungible token amount fails if the issuer does not have a trust line for that token. The [fixRemoveNFTokenAutoTrustLine amendment][] makes it invalid to enable this flag. | +| `lsfTrustLine` | `0x0004` | **DEPRECATED** If enabled, automatically create [trust lines](../../../concepts/tokens/fungible-tokens/index.md) to hold transfer fees. Otherwise, buying or selling this `NFToken` for a fungible token amount fails if the issuer does not have a trust line for that token. The [fixRemoveNFTokenAutoTrustLine amendment][] makes it invalid to enable this flag. | | `lsfTransferable` | `0x0008` | If enabled, this `NFToken` can be transferred from one holder to another. Otherwise, it can only be transferred to or from the issuer. | | `lsfReservedFlag` | `0x8000` | This flag is reserved for future use. Attempts to set this flag fail. | @@ -63,7 +63,7 @@ Flags are properties or other options associated with the `NFToken` object. The example sets three flags: `lsfBurnable` (`0x0001`), `lsfOnlyXRP` (`0x0002`), `lsfTransferable` (`0x0008`). 1+2+8 = 11, or `0x000B` in big endian format. -![Flags](img/nftokena.png "Flags") +![Flags](/img/nftokena.png "Flags") ### TransferFee @@ -74,20 +74,20 @@ The `TransferFee` value specifies the percentage fee, in units of 1/100,000, cha This value sets the transfer fee to 314, or 0.314%. -![Transfer Fee](img/nftokenb.png "Transfer Fee") +![Transfer Fee](/img/nftokenb.png "Transfer Fee") ### Issuer Identification The third section of the `NFTokenID` is a big endian representation of the issuer’s public address. -![Issuer Address](img/nftokenc.png "Issuer Address") +![Issuer Address](/img/nftokenc.png "Issuer Address") ### NFTokenTaxon The fourth section is a `NFTokenTaxon` created by the issuer. -![Diagram of `NFTokenTaxon` bits](img/nftokend.png) +![Diagram of `NFTokenTaxon` bits](/img/nftokend.png) An issuer might issue several `NFToken` objects with the same `NFTokenTaxon`; to ensure that `NFToken` objects are spread across multiple pages, the `NFTokenTaxon` is scrambled using the fifth section, a sequential number, as the seed for a random number generator. The scrambled value is stored with the `NFToken`, but the unscrambled value is the actual `NFTokenTaxon`. @@ -97,7 +97,7 @@ Notice that the scrambled version of the `NFTokenTaxon` is `0xBC8B858E`, the scr The fifth section is a sequence number that increases with each `NFToken` the issuer creates. -![Sequence Number](img/nftokene.png "Sequence Number") +![Sequence Number](/img/nftokene.png "Sequence Number") The [NFTokenMint transaction][] sets this part of the `NFTokenID` automatically based on the `MintedNFTokens` field of the `Issuer` account. If the issuer's [AccountRoot object][] does not have a `MintedNFTokens` field, the field is assumed to have the value 0; the value of the field is then incremented by exactly 1. @@ -131,7 +131,4 @@ https://example.com/.well-known/xrpl-nft/{nftokenid} You create `NFToken` objects using the `NFTokenMint` transaction. You can optionally destroy `NFToken` objects using the `NFTokenBurn` transaction. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/index.md b/content/references/protocol/index.md index 62e30424ba..c0d250ab9d 100644 --- a/content/references/protocol/index.md +++ b/content/references/protocol/index.md @@ -1,10 +1,14 @@ --- html: protocol-reference.html parent: references.html -template: pagetype-category.html.jinja +metadata: + indexPage: true eyebrow_text: Features and Rules blurb: Features and rules of the XRP Ledger protocol, regardless of how you access it. --- # XRP Ledger Protocol Reference -Features and rules of the XRP Ledger protocol, regardless of how you access it. \ No newline at end of file +Features and rules of the XRP Ledger protocol, regardless of how you access it. + + +{% child-pages /%} diff --git a/content/references/protocol/ledger-data/common-fields.md b/content/references/protocol/ledger-data/common-fields.md index 3d24e106e7..ad38b06e5e 100644 --- a/content/references/protocol/ledger-data/common-fields.md +++ b/content/references/protocol/ledger-data/common-fields.md @@ -5,12 +5,12 @@ blurb: These common fields are part of every ledger entry. # Ledger Entry Common Fields [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp) -Every entry in a [ledger](ledgers.html)'s state data has the same set of common fields, plus additional fields based on the [ledger entry type](ledger-entry-types.html). Field names are case-sensitive. The common fields for all ledger entries are: +Every entry in a [ledger](../../../concepts/ledgers/index.md)'s state data has the same set of common fields, plus additional fields based on the [ledger entry type](ledger-entry-types/index.md). Field names are case-sensitive. The common fields for all ledger entries are: | Field | JSON Type | [Internal Type][] | Required? | Description | |:-------------------------|:----------|:------------------|:----------|:------------| | `index` or `LedgerIndex` | String | Hash256 | No | The unique ID for this ledger entry. In JSON, this field is represented with different names depending on the context and API method. (Note, even though this is specified as "optional" in the code, every ledger entry should have one unless it's legacy data from very early in the XRP Ledger's history.) | -| `LedgerEntryType` | String | UInt16 | Yes | The type of ledger entry. Valid [ledger entry types](ledger-entry-types.html) include `AccountRoot`, `Offer`, `RippleState`, and others. | +| `LedgerEntryType` | String | UInt16 | Yes | The type of ledger entry. Valid [ledger entry types](ledger-entry-types/index.md) include `AccountRoot`, `Offer`, `RippleState`, and others. | | `Flags` | Number | UInt32 | Yes | Set of bit-flags for this ledger entry. | **Caution:** In JSON, the ledger entry ID is in the `index` or `LedgerIndex` field. This is not the same as a [ledger index][] in the `ledger_index` field. @@ -20,13 +20,13 @@ Every entry in a [ledger](ledgers.html)'s state data has the same set of common [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp) -Each ledger entry has a unique ID. The ID is derived by hashing important contents of the entry, along with a [namespace identifier](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/LedgerFormats.h). The [ledger entry type](ledger-entry-types.html) determines the namespace identifier to use and which contents to include in the hash. This ensures every ID is unique. The hash function is [SHA-512Half][]. +Each ledger entry has a unique ID. The ID is derived by hashing important contents of the entry, along with a [namespace identifier](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/LedgerFormats.h). The [ledger entry type](ledger-entry-types/index.md) determines the namespace identifier to use and which contents to include in the hash. This ensures every ID is unique. The hash function is [SHA-512Half][]. -Generally, a ledger entry's ID is returned as the `index` field in JSON, at the same level as the object's contents. In [transaction metadata](transaction-metadata.html), the ledger object's ID in JSON is `LedgerIndex`. +Generally, a ledger entry's ID is returned as the `index` field in JSON, at the same level as the object's contents. In [transaction metadata](../transactions/metadata.md), the ledger object's ID in JSON is `LedgerIndex`. Offer directories have special IDs, where part of the hash is replaced with the exchange rate of Offers in that directory. -{{ include_svg("img/ledger-object-ids.svg", "Diagram: ID calculations for different types of ledger entries. The space key prevents IDs for different types from colliding.") }} +[{% inline-svg file="/img/ledger-object-ids.svg" /%}](/img/ledger-object-ids.svg "Diagram: ID calculations for different types of ledger entries. The space key prevents IDs for different types from colliding.") ## Flags @@ -35,5 +35,4 @@ Flags are on/off settings, which are represented as binary values that are combi The possible values for the flags field vary based on the ledger entry type. Some ledger entry types have no flags defined. In these cases, the `Flags` field always has the value `0`. - -{% include '_snippets/rippled-api-links.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/index.md b/content/references/protocol/ledger-data/index.md index 5576e36365..ccabef3a01 100644 --- a/content/references/protocol/ledger-data/index.md +++ b/content/references/protocol/ledger-data/index.md @@ -5,15 +5,15 @@ blurb: Learn about individual entries that comprise the XRP Ledger's shared stat --- # Ledger Data Formats -Each [ledger version](ledgers.html) in the XRP Ledger is made up of three parts: +Each [ledger version](../../../concepts/ledgers/index.md) in the XRP Ledger is made up of three parts: -- **[Ledger Header](ledger-header.html)**: Data about this ledger version itself. -- **[Transaction Set](transaction-formats.html)**: The transactions that were executed to create this ledger version. -- **[State Data](ledger-entry-types.html)**: A list of ledger entries, representing all accounts, settings, and balances as of this ledger version. (This is also called the "account state".) +- **[Ledger Header](ledger-header.md)**: Data about this ledger version itself. +- **[Transaction Set](../transactions/index.md)**: The transactions that were executed to create this ledger version. +- **[State Data](ledger-entry-types/index.md)**: A list of ledger entries, representing all accounts, settings, and balances as of this ledger version. (This is also called the "account state".) ## State Data -{% include '_snippets/ledger-objects-intro.md' %} +{% partial file="/_snippets/ledger-objects-intro.md" /%} {% from '_snippets/macros/page-children.md' import page_children with context %} {{ page_children(pages|selectattr("html", "eq", "ledger-object-types.html")|first, 1, 1, True) }} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/accountroot.md b/content/references/protocol/ledger-data/ledger-entry-types/accountroot.md index 214149cafd..83dc2eccc0 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/accountroot.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/accountroot.md @@ -9,9 +9,9 @@ labels: # AccountRoot [[Source]](https://github.com/XRPLF/rippled/blob/264280edd79b7f764536e02459f33f66a59c0531/src/ripple/protocol/impl/LedgerFormats.cpp#L36-L60 "Source") -An `AccountRoot` ledger entry type describes a single [account](accounts.html), its settings, and XRP balance. +An `AccountRoot` ledger entry type describes a single [account](../../../../concepts/accounts/accounts.md), its settings, and XRP balance. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -32,40 +32,40 @@ An `AccountRoot` ledger entry type describes a single [account](accounts.html), } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Field | JSON Type | [Internal Type][] | Required? | Description | |:------------------------------|:----------|:------------------|:----------|:-------------| -| `Account` | String | AccountID | Yes | The identifying (classic) address of this [account](accounts.html). | -| `AccountTxnID` | String | Hash256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](transaction-common-fields.html#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](accountset.html#accountset-flags). | -| `AMMID` | String | Hash256 | No | _(Requires the [AMM amendment][] :not_enabled:)_ The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. | +| `Account` | String | AccountID | Yes | The identifying (classic) address of this [account](../../../../concepts/accounts/accounts.md). | +| `AccountTxnID` | String | Hash256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](../../transactions/common-fields.md#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](../../transactions/types/accountset.md#accountset-flags). | +| `AMMID` | String | Hash256 | No | _(Requires the [AMM amendment][] {% not-enabled /%})_ The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. | | `Balance` | String | Amount | No | The account's current [XRP balance in drops][XRP, in drops], represented as a string. | -| `BurnedNFTokens` | Number | UInt32 | No | How many total of this account's issued [non-fungible tokens](non-fungible-tokens.html) have been burned. This number is always equal or less than `MintedNFTokens`. | +| `BurnedNFTokens` | Number | UInt32 | No | How many total of this account's issued [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been burned. This number is always equal or less than `MintedNFTokens`. | | `Domain` | String | Blob | No | A domain associated with this account. In JSON, this is the hexadecimal for the ASCII representation of the domain. [Cannot be more than 256 bytes in length.](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | | `EmailHash` | String | Hash128 | No | The md5 hash of an email address. Clients can use this to look up an avatar through services such as [Gravatar](https://en.gravatar.com/). | -| `FirstNFTokenSequence` | Number | UInt32 | No | The account's [Sequence Number][] at the time it minted its first [non-fungible-token](non-fungible-tokens.html). _(Added by the [fixNFTokenRemint amendment][] :not_enabled:)_ | +| `FirstNFTokenSequence` | Number | UInt32 | No | The account's [Sequence Number][] at the time it minted its first [non-fungible-token](../../../../concepts/tokens/nfts/index.md). _(Added by the [fixNFTokenRemint amendment][] {% not-enabled /%})_ | | `LedgerEntryType` | String | UInt16 | Yes | The value `0x0061`, mapped to the string `AccountRoot`, indicates that this is an AccountRoot object. | | `MessageKey` | String | Blob | No | A public key that may be used to send encrypted messages to this account. In JSON, uses hexadecimal. Must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. | -| `MintedNFTokens` | Number | UInt32 | No | How many total [non-fungible tokens](non-fungible-tokens.html) have been minted by and on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ | -| `NFTokenMinter` | String | AccountID | No | Another account that can mint [non-fungible tokens](non-fungible-tokens.html) on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ | +| `MintedNFTokens` | Number | UInt32 | No | How many total [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been minted by and on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ | +| `NFTokenMinter` | String | AccountID | No | Another account that can mint [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) on behalf of this account. _(Added by the [NonFungibleTokensV1_1 amendment][])_ | | `OwnerCount` | Number | UInt32 | Yes | The number of objects this account owns in the ledger, which contributes to its owner reserve. | | `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | | `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | -| `RegularKey` | String | AccountID | No | The address of a [key pair](cryptographic-keys.html) that can be used to sign transactions for this account instead of the master key. Use a [SetRegularKey transaction][] to change this value. | -| `Sequence` | Number | UInt32 | Yes | The [sequence number](basic-data-types.html#account-sequence) of the next valid transaction for this account. | -| `TicketCount` | Number | UInt32 | No | How many [Tickets](tickets.html) this account owns in the ledger. This is updated automatically to ensure that the account stays within the hard limit of 250 Tickets at a time. This field is omitted if the account has zero Tickets. _(Added by the [TicketBatch amendment][].)_ | +| `RegularKey` | String | AccountID | No | The address of a [key pair](../../../../concepts/accounts/cryptographic-keys.md) that can be used to sign transactions for this account instead of the master key. Use a [SetRegularKey transaction][] to change this value. | +| `Sequence` | Number | UInt32 | Yes | The [sequence number](../../data-types/basic-data-types.md#account-sequence) of the next valid transaction for this account. | +| `TicketCount` | Number | UInt32 | No | How many [Tickets](../../../../concepts/accounts/tickets.md) this account owns in the ledger. This is updated automatically to ensure that the account stays within the hard limit of 250 Tickets at a time. This field is omitted if the account has zero Tickets. _(Added by the [TicketBatch amendment][].)_ | | `TickSize` | Number | UInt8 | No | How many significant digits to use for exchange rates of Offers involving currencies issued by this address. Valid values are `3` to `15`, inclusive. _(Added by the [TickSize amendment][].)_ | -| `TransferRate` | Number | UInt32 | No | A [transfer fee](transfer-fees.html) to charge other users for sending currency issued by this account to each other. | +| `TransferRate` | Number | UInt32 | No | A [transfer fee](../../../../concepts/tokens/transfer-fees.md) to charge other users for sending currency issued by this account to each other. | | `WalletLocator` | String | Hash256 | No | An arbitrary 256-bit value that users can set. | | `WalletSize` | Number | UInt32 | No | Unused. (The code supports this field but there is no way to set it.) | ## Special AMM AccountRoot Entries -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -Automated Market Makers use an AccountRoot ledger entry to issue their LP Tokens and hold the assets in the AMM pool, and an [AMM ledger entry](amm.html) for tracking some of the details of the AMM. The address of an AMM's AccountRoot is randomized so that users cannot identify and fund the address in advance of the AMM being created. Unlike normal accounts, AMM AccountRoot objects are created with the following settings: +Automated Market Makers use an AccountRoot ledger entry to issue their LP Tokens and hold the assets in the AMM pool, and an [AMM ledger entry](amm.md) for tracking some of the details of the AMM. The address of an AMM's AccountRoot is randomized so that users cannot identify and fund the address in advance of the AMM being created. Unlike normal accounts, AMM AccountRoot objects are created with the following settings: - `lsfDisableMaster` **enabled** and no means of authorizing transactions. This ensures no one can control the account directly, and it cannot send transactions. - `lsfDepositAuth` **enabled** and no accounts preauthorized. This ensures that the only way to add money to the AMM Account is using the [AMMDeposit transaction][]. @@ -73,7 +73,7 @@ Automated Market Makers use an AccountRoot ledger entry to issue their LP Tokens In addition, the following special rules apply to an AMM's AccountRoot entry: -- It is not subject to the [reserve requirement](reserves.html). It can hold XRP only if XRP is one of the two assets in the AMM's pool. +- It is not subject to the [reserve requirement](../../../../concepts/accounts/reserves.md). It can hold XRP only if XRP is one of the two assets in the AMM's pool. - It cannot be the destination of Checks, Escrows, or Payment Channels. Any transactions that would create such entries instead fail with the result code `tecNO_PERMISSION`. - Users cannot create trust lines to it for anything other than the AMM's LP Tokens. Transactions that would create such trust lines instead fail with result code `tecNO_PERMISSION`. (The AMM does have two trust lines to hold the tokens in its pool, or one trust line if the other asset in its pool is XRP.) - If the [Clawback amendment][] is also enabled, the issuer cannot clawback funds from an AMM. @@ -86,11 +86,11 @@ Many AccountRoot flags correspond to options you can change with an [AccountSet AccountRoot objects can have the following flags combined in the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Corresponding [AccountSet Flag](accountset.html#accountset-flags) | Description | +| Flag Name | Hex Value | Decimal Value | Corresponding [AccountSet Flag](../../transactions/types/accountset.md#accountset-flags) | Description | |-----------------------------------|--------------|-------------------|-----------------------------------|----| -| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | Enable [Clawback](clawing-back-tokens.html) for this account. _(Requires the [Clawback amendment][].)_ | -| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | Enable [rippling](rippling.html) on this addresses's trust lines by default. Required for issuing addresses; discouraged for others. | -| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | This account has [DepositAuth](depositauth.html) enabled, meaning it can only receive funds from transactions it sends, and from [preauthorized](depositauth.html#preauthorization) accounts. _(Added by the [DepositAuth amendment][])_ | +| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | Enable [Clawback](../../../../concepts/tokens/fungible-tokens/clawing-back-tokens.md) for this account. _(Requires the [Clawback amendment][].)_ | +| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | Enable [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this addresses's trust lines by default. Required for issuing addresses; discouraged for others. | +| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | This account has [DepositAuth](../../../../concepts/accounts/depositauth.md) enabled, meaning it can only receive funds from transactions it sends, and from [preauthorized](../../../../concepts/accounts/depositauth.md#preauthorization) accounts. _(Added by the [DepositAuth amendment][])_ | | `lsfDisableMaster` | `0x00100000` | 1048576 | `asfDisableMaster` | Disallows use of the master key to sign transactions for this account. | | `lsfDisallowIncomingCheck` | `0x08000000` | 134217728 | `asfDisallowIncomingCheck` | This account blocks incoming Checks. _(Added by the [DisallowIncoming amendment][].)_ | | `lsfDisallowIncomingNFTokenOffer` | `0x04000000` | 67108864 | `asfDisallowIncomingNFTokenOffer` | This account blocks incoming NFTokenOffers. _(Added by the [DisallowIncoming amendment][].)_ | @@ -103,21 +103,17 @@ AccountRoot objects can have the following flags combined in the `Flags` field: | `lsfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` | This account must individually approve other users for those users to hold this account's tokens. | | `lsfRequireDestTag` | `0x00020000` | 131072 | `asfRequireDest` | Requires incoming payments to specify a Destination Tag. | -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -The [reserve](reserves.html) for an AccountRoot entry is the base reserve, currently {{target.base_reserve}}, except in the case of a special AMM AccountRoot. +The [reserve](../../../../concepts/accounts/reserves.md) for an AccountRoot entry is the base reserve, currently {% $env.PUBLIC_BASE_RESERVE %}, except in the case of a special AMM AccountRoot. This XRP cannot be sent to others but it can be burned as part of the [transaction cost][]. -## {{currentpage.name}} ID Format +## {% $frontmatter.seo.title %} ID Format The ID of an AccountRoot entry is the [SHA-512Half][] of the following values, concatenated in order: * The Account space key (`0x0061`) * The AccountID of the account - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} - +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/amendments.md b/content/references/protocol/ledger-data/ledger-entry-types/amendments.md index fdee287596..cfd1ca6287 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/amendments.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/amendments.md @@ -8,9 +8,9 @@ labels: # Amendments [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L138-L144 "Source") -The `Amendments` ledger entry type contains a list of [Amendments](amendments.html) that are currently active. Each ledger version contains **at most one** `Amendments` entry. +The `Amendments` ledger entry type contains a list of [Amendments](../../../../concepts/networks-and-servers/amendments.md) that are currently active. Each ledger version contains **at most one** `Amendments` entry. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -34,13 +34,13 @@ The `Amendments` ledger entry type contains a list of [Amendments](amendments.ht } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), the `{{currentpage.name}}` ledger entry has the following fields: +In addition to the [common fields](../common-fields.md), the {% code-page-name /%} ledger entry has the following fields: | Name | JSON Type | [Internal Type][] | Required? | Description | |-------------------|-----------|-------------------|-----------|-------------| -| `Amendments` | Array | Vector256 | No | Array of 256-bit [amendment IDs](amendments.html) for all currently enabled amendments. If omitted, there are no enabled amendments. | +| `Amendments` | Array | Vector256 | No | Array of 256-bit [amendment IDs](../../../../concepts/networks-and-servers/amendments.md) for all currently enabled amendments. If omitted, there are no enabled amendments. | | `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `Amendments` objects. The value is always `0`. | | `LedgerEntryType` | String | UInt16 | Yes | The value `0x0066`, mapped to the string `Amendments`, indicates that this object describes the status of amendments to the XRP Ledger. | | `Majorities` | Array | STArray | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. | @@ -50,23 +50,23 @@ Each member of the `Majorities` field, if it is present, is an object with one f | Name | JSON Type | [Internal Type][] | Description | |-------------------|-----------|-------------------|-------------| | `Amendment` | String | Hash256 | The Amendment ID of the pending amendment. | -| `CloseTime` | Number | UInt32 | The [`close_time` field](ledger-header.html) of the ledger version where this amendment most recently gained a majority. | +| `CloseTime` | Number | UInt32 | The [`close_time` field](../ledger-header.md) of the ledger version where this amendment most recently gained a majority. | -In the [amendment process](amendments.html#amendment-process), a consensus of validators adds a new amendment to the `Majorities` field using an [EnableAmendment][] pseudo-transaction with the `tfGotMajority` flag when 80% or more of validators support it. If support for a pending amendment goes below 80%, an [EnableAmendment][] pseudo-transaction with the `tfLostMajority` flag removes the amendment from the `Majorities` array. If an amendment remains in the `Majorities` field for at least 2 weeks, an [EnableAmendment][] pseudo-transaction with no flags removes it from `Majorities` and permanently adds it to the `Amendments` field. +In the [amendment process](../../../../concepts/networks-and-servers/amendments.md#amendment-process), a consensus of validators adds a new amendment to the `Majorities` field using an [EnableAmendment][] pseudo-transaction with the `tfGotMajority` flag when 80% or more of validators support it. If support for a pending amendment goes below 80%, an [EnableAmendment][] pseudo-transaction with the `tfLostMajority` flag removes the amendment from the `Majorities` array. If an amendment remains in the `Majorities` field for at least 2 weeks, an [EnableAmendment][] pseudo-transaction with no flags removes it from `Majorities` and permanently adds it to the `Amendments` field. **Note:** Technically, all transactions in a ledger are processed based on which amendments are enabled in the ledger version immediately before it. While applying transactions to a ledger version where an amendment becomes enabled, the rules don't change mid-ledger. After the ledger is closed, the next ledger uses the new rules as defined by any new amendments that applied. -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for the `{{currentpage.name}}` entry. +There are no flags defined for the {% code-page-name /%} entry. -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -The `{{currentpage.name}}` entry does not require a reserve. +The {% code-page-name /%} entry does not require a reserve. -## {{currentpage.name}} ID Format +## {% $frontmatter.seo.title %} ID Format The ID of the `Amendments` entry is the hash of the `Amendments` space key (`0x0066`) only. This means that the ID is always: @@ -76,7 +76,4 @@ The ID of the `Amendments` entry is the hash of the `Amendments` space key (`0x0 (Don't mix up the ID of the `Amendments` ledger entry type with the Amendment ID of an individual amendment.) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/amm.md b/content/references/protocol/ledger-data/ledger-entry-types/amm.md index f8a20337c5..f5873c7983 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/amm.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/amm.md @@ -9,9 +9,9 @@ status: not_enabled # AMM [[Source]](https://github.com/XRPLF/rippled/blob/89780c8e4fd4d140fcb912cf2d0c01c1b260539e/src/ripple/protocol/impl/LedgerFormats.cpp#L272-L284 "Source") -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -An `AMM` ledger entry describes a single [Automated Market Maker](automated-market-makers.html) (AMM) instance. This is always paired with a [special AccountRoot entry](accountroot.html#special-amm-accountroot-entries). +An `AMM` ledger entry describes a single [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance. This is always paired with a [special AccountRoot entry](accountroot.md#special-amm-accountroot-entries). ## Example AMM JSON @@ -69,13 +69,13 @@ An `AMM` ledger entry describes a single [Automated Market Maker](automated-mark ## AMM Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Field | JSON Type | [Internal Type][] | Required? | Description | |:-----------------|:--------------------|:------------------|:----------|--------------| | `Asset` | Object | STIssue | Yes | The definition for one of the two assets this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. | | `Asset2` | Object | STIssue | Yes | The definition for the other asset this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. | -| `Account` | String | AccountID | Yes | The address of the [special account](accountroot.html#special-amm-accountroot-entries) that holds this AMM's assets. | +| `Account` | String | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. | | `AuctionSlot` | Object | STObject | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). | | `LPTokenBalance` | [Currency Amount][] | Amount | Yes | The total outstanding balance of liquidity provider tokens from this AMM instance. The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected. | | `TradingFee` | Number | UInt16 | Yes | The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. The maximum value is 1000, for a 1% fee. | @@ -104,14 +104,14 @@ The `VoteSlots` field contains an array of `VoteEntry` objects with the followin | `VoteWeight` | Number | UInt32 | Yes | The weight of the vote, in units of 1/100,000. For example, a value of 1234 means this vote counts as 1.234% of the weighted total vote. The weight is determined by the percentage of this AMM's LP Tokens the account owns. The maximum value is 100000. | -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries do not require a reserve. +{% code-page-name /%} entries do not require a reserve. -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. ## AMM ID Format @@ -126,7 +126,4 @@ The ID of an `AMM` entry is the [SHA-512Half][] of the following values, concate For XRP, use all 0's for both the token and the issuer. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/bridge.md b/content/references/protocol/ledger-data/ledger-entry-types/bridge.md index 83fa8807d3..5c2a29a953 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/bridge.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/bridge.md @@ -7,7 +7,7 @@ labels: status: not_enabled --- # Bridge -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L286-L300 "Source") @@ -46,7 +46,7 @@ The `Bridge` ledger entry represents a single cross-chain bridge that connects t ## Bridge Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Field | JSON Type | Internal Type | Required? | Description | |:---------------------------|:--------------------|:------------------|:----------|:------------| @@ -68,8 +68,4 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/check.md b/content/references/protocol/ledger-data/ledger-entry-types/check.md index dd9a8ccd8f..c41168a175 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/check.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/check.md @@ -10,9 +10,9 @@ labels: _(Added by the [Checks amendment][].)_ -A `Check` entry describes a [check](checks.html), similar to a paper personal check, which can be cashed by its destination to get money from its sender. +A `Check` entry describes a [check](../../../../concepts/payment-types/checks.md), similar to a paper personal check, which can be cashed by its destination to get money from its sender. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -33,9 +33,9 @@ A `Check` entry describes a [check](checks.html), similar to a paper personal ch } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Field | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:-----------------|:------------------|:----------|:----------------| @@ -54,14 +54,14 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp | `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this Check, such as a hosted recipient at the sender's address. | -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries count as one item towards the owner reserve of the sender of the Check as long as the entry is in the ledger. This reserve is freed up when the check is cashed or canceled. +{% code-page-name /%} entries count as one item towards the owner reserve of the sender of the Check as long as the entry is in the ledger. This reserve is freed up when the check is cashed or canceled. ## Check ID Format @@ -72,11 +72,8 @@ The ID of a `Check` entry is the [SHA-512Half][] of the following values, concat * The Check space key (`0x0043`) * The AccountID of the sender of the [CheckCreate transaction][] that created the `Check` * The `Sequence` number of the [CheckCreate transaction][] that created the `Check`. - If the CheckCreate transaction used a [Ticket](tickets.html), use the `TicketSequence` value instead. + If the CheckCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. -See the tutorial showing how to [Send a Check](send-a-check.html). +See the tutorial showing how to [Send a Check](../../../../tutorials/use-specialized-payment-types/use-checks/send-a-check.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md b/content/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md index 2fbb0dedeb..38eeb9c7bc 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md @@ -10,9 +10,9 @@ labels: A `DepositPreauth` entry tracks a preauthorization from one account to another. [DepositPreauth transactions][] create these entries. -This has no effect on processing of transactions unless the account that provided the preauthorization requires [Deposit Authorization](depositauth.html). In that case, the account that was preauthorized can send payments and other transactions directly to the account that provided the preauthorization. Preauthorizations are one-directional, and have no effect on payments going the opposite direction. +This has no effect on processing of transactions unless the account that provided the preauthorization requires [Deposit Authorization](../../../../concepts/accounts/depositauth.md). In that case, the account that was preauthorized can send payments and other transactions directly to the account that provided the preauthorization. Preauthorizations are one-directional, and have no effect on payments going the opposite direction. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -27,9 +27,9 @@ This has no effect on processing of transactions unless the account that provide } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Field | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:-----------------|:------------------|:----------|:----------------| @@ -41,13 +41,13 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp | `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries count as one item towards the owner reserve of the account that granted preauthorization, as long as the entry is in the ledger. Unauthorizing the counterparty frees up the reserve. +{% code-page-name /%} entries count as one item towards the owner reserve of the account that granted preauthorization, as long as the entry is in the ledger. Unauthorizing the counterparty frees up the reserve. ## DepositPreauth ID Format @@ -57,7 +57,4 @@ The ID of a `DepositPreauth` object is the [SHA-512Half][] of the following valu * The AccountID of the owner of this object (the sender of the [DepositPreauth transaction][] that created this object; in other words, the one that granted the preauthorization) * The AccountID of the preauthorized account (the `Authorized` field of the [DepositPreauth transaction][] that created this object; in other words, the one that received the preauthorization) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/did.md b/content/references/protocol/ledger-data/ledger-entry-types/did.md index 0aa0f2286c..a05e8c8e7b 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/did.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/did.md @@ -9,9 +9,9 @@ status: not_enabled # DID [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L330-L341 "Source") -_(Requires the [DID amendment][] :not_enabled:)_ +_(Requires the [DID amendment][] {% not-enabled /%})_ -A `DID` ledger entry holds references to, or data associated with, a single [DID](decentralized-identifiers.html). +A `DID` ledger entry holds references to, or data associated with, a single [DID](../../../../concepts/accounts/decentralized-identifiers.md). ## Example DID JSON @@ -33,7 +33,7 @@ A `DID` ledger entry holds references to, or data associated with, a single [DID ## DID Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Field | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:----------|:------------------|:----------|--------------| @@ -47,14 +47,14 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp | `URI` | String | Blob | No | The Universal Resource Identifier that points to the corresponding DID document or the data associated with the DID. This field can be an HTTP(S) URL or IPFS URI. This field isn't checked for validity and is limited to a maximum length of 256 bytes. | -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -The account that creates the `{{currentpage.name}}` object incurs one owner reserve. +The account that creates the {% code-page-name /%} object incurs one owner reserve. -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. ## DID ID Format @@ -64,8 +64,4 @@ The ID of a `DID` entry is the [SHA-512Half][] of the following values, concaten 1. The `DID` space key (`0x0049`). 2. The AccountID that controls the DID. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/directorynode.md b/content/references/protocol/ledger-data/ledger-entry-types/directorynode.md index 800f7807d4..79459bf325 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/directorynode.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/directorynode.md @@ -9,19 +9,18 @@ labels: # DirectoryNode [[Source]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L44 "Source") -The `DirectoryNode` ledger entry type provides a list of links to other entries in the ledger's state data. A single conceptual _Directory_ takes the form of a doubly linked list, with one or more DirectoryNode entries each containing up to 32 [IDs of other entries](ledger-object-ids.html). The first DirectoryNode entry is called the root of the directory, and all entries other than the root can be added or deleted as necessary. +The `DirectoryNode` ledger entry type provides a list of links to other entries in the ledger's state data. A single conceptual _Directory_ takes the form of a doubly linked list, with one or more DirectoryNode entries each containing up to 32 [IDs of other entries](../common-fields.md). The first DirectoryNode entry is called the root of the directory, and all entries other than the root can be added or deleted as necessary. There are two kinds of Directories: -* **Owner directories** list other entries owned by an account, such as [`RippleState` (trust line)](ripplestate.html) or [`Offer`](offer.html) entries. -* **Offer directories** list the offers available in the [decentralized exchange](decentralized-exchange.html). A single Offer directory contains all the offers that have the same exchange rate for the same token (currency code and issuer). +* **Owner directories** list other entries owned by an account, such as [`RippleState` (trust line)](ripplestate.md) or [`Offer`](offer.md) entries. +* **Offer directories** list the offers available in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md). A single Offer directory contains all the offers that have the same exchange rate for the same token (currency code and issuer). -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON - - -*Offer Directory* +{% tabs %} +{% tab label="Offer Directory" %} ```json { "ExchangeRate": "4F069BA8FF484000", @@ -38,9 +37,9 @@ There are two kinds of Directories: "index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000" } ``` +{% /tab %} -*Owner Directory* - +{% tab label="Owner Directory" %} ```json { "Flags": 0, @@ -54,10 +53,11 @@ There are two kinds of Directories: "index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94" } ``` +{% /tab %} - +{% /tabs %} -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields | Name | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:----------|:------------------|:----------|:------------| @@ -75,14 +75,14 @@ There are two kinds of Directories: | `TakerPaysIssuer` | String | Hash160 | No | (Offer Directories only) The issuer of the `TakerPays` amount from the offers in this directory. | -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries do not require a reserve. +{% code-page-name /%} entries do not require a reserve. ## Directory ID Formats @@ -114,7 +114,4 @@ The lower 64 bits of an Offer Directory's ID represent the `TakerPays` amount di * The ID of the root DirectoryNode * The page number of this object. (Since 0 is the root DirectoryNode, this value is an integer 1 or higher.) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/escrow.md b/content/references/protocol/ledger-data/ledger-entry-types/escrow.md index 65c055f529..ca2959186e 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/escrow.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/escrow.md @@ -10,9 +10,9 @@ labels: _(Added by the [Escrow amendment][].)_ -An `Escrow` ledger entry represents an [escrow](escrow.html), which holds XRP until specific conditions are met. +An `Escrow` ledger entry represents an [escrow](../../../../concepts/payment-types/escrow.md), which holds XRP until specific conditions are met. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -34,9 +34,9 @@ An `Escrow` ledger entry represents an [escrow](escrow.html), which holds XRP un } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Name | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:----------|:------------------|:----------|:-----------------------| @@ -55,14 +55,14 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp | `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this escrow, such as a hosted recipient at the owner's address. | -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries count as one item towards the sender's owner reserve as long as the entry is in the ledger. Finishing or canceling the escrow frees up this reserve. +{% code-page-name /%} entries count as one item towards the sender's owner reserve as long as the entry is in the ledger. Finishing or canceling the escrow frees up this reserve. ## Escrow ID Format @@ -72,9 +72,6 @@ The ID of an `Escrow` entry is the [SHA-512Half][] of the following values, conc * The Escrow space key (`0x0075`) * The AccountID of the sender of the [EscrowCreate transaction][] that created the `Escrow` entry * The Sequence number of the [EscrowCreate transaction][] that created the `Escrow` entry - If the EscrowCreate transaction used a [Ticket](tickets.html), use the `TicketSequence` value instead. + If the EscrowCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/feesettings.md b/content/references/protocol/ledger-data/ledger-entry-types/feesettings.md index 372345b63e..0d36e2ff26 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/feesettings.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/feesettings.md @@ -8,9 +8,9 @@ labels: # FeeSettings [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120 "Source") -The `FeeSettings` entry contains the current base [transaction cost](transaction-cost.html) and [reserve amounts](reserves.html) as determined by [fee voting](fee-voting.html). Each ledger version contains **at most one** `FeeSettings` entry. +The `FeeSettings` entry contains the current base [transaction cost](../../../../concepts/transactions/transaction-cost.md) and [reserve amounts](../../../../concepts/accounts/reserves.md) as determined by [fee voting](../../../../concepts/consensus-protocol/fee-voting.md). Each ledger version contains **at most one** `FeeSettings` entry. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -24,18 +24,18 @@ The `FeeSettings` entry contains the current base [transaction cost](transaction } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), the `{{currentpage.name}}` ledger entry has the following fields: +In addition to the [common fields](../common-fields.md), the {% code-page-name /%} ledger entry has the following fields: | Name | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:----------|:------------------|:----------|:-----------------------| -| `BaseFee` | String | UInt64 | Yes | The [transaction cost](transaction-cost.html) of the "reference transaction" in drops of XRP as hexadecimal. | +| `BaseFee` | String | UInt64 | Yes | The [transaction cost](../../../../concepts/transactions/transaction-cost.md) of the "reference transaction" in drops of XRP as hexadecimal. | | `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `FeeSettings` objects. The value is always `0`. | | `LedgerEntryType` | String | UInt16 | Yes | The value `0x0073`, mapped to the string `FeeSettings`, indicates that this object contains the ledger's fee settings. | | `ReferenceFeeUnits` | Number | UInt32 | Yes | The `BaseFee` translated into "fee units". | -| `ReserveBase` | Number | UInt32 | Yes | The [base reserve](reserves.html#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | -| `ReserveIncrement` | Number | UInt32 | Yes | The incremental [owner reserve](reserves.html#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | +| `ReserveBase` | Number | UInt32 | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | +| `ReserveIncrement` | Number | UInt32 | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | **Warning:** The JSON format for this ledger entry type is unusual. The `BaseFee`, `ReserveBase`, and `ReserveIncrement` indicate drops of XRP but ***not*** in the usual format for [specifying XRP][Currency Amount]. @@ -44,16 +44,16 @@ If the _[XRPFees amendment][]_ is enabled, the `FeeSettings` object has these fi | Name | JSON Type | [Internal Type][] | Required? | Description | |:------------------------|:----------|:------------------|:----------|:-----------------------| -| `BaseFeeDrops` | String | Amount | Yes | The [transaction cost](transaction-cost.html) of the "reference transaction" in drops of XRP. | +| `BaseFeeDrops` | String | Amount | Yes | The [transaction cost](../../../../concepts/transactions/transaction-cost.md) of the "reference transaction" in drops of XRP. | | `Flags` | Number | UInt32 | Yes | A bitmap of boolean flags enabled for this object. Currently, the protocol defines no flags for `FeeSettings` objects. The value is always `0`. | | `LedgerEntryType` | String | UInt16 | Yes | The value `0x0073`, mapped to the string `FeeSettings`, indicates that this object contains the ledger's fee settings. | -| `ReserveBaseDrops` | String | Amount | Yes | The [base reserve](reserves.html#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | -| `ReserveIncrementDrops` | String | Amount | Yes | The incremental [owner reserve](reserves.html#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | +| `ReserveBaseDrops` | String | Amount | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | +| `ReserveIncrementDrops` | String | Amount | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for the `{{currentpage.name}}` entry. +There are no flags defined for the {% code-page-name /%} entry. ## FeeSettings ID Format @@ -64,8 +64,4 @@ The ID of the `FeeSettings` entry is the hash of the `FeeSettings` space key (`0 4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651 ``` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/index.md b/content/references/protocol/ledger-data/ledger-entry-types/index.md index 77ee20efc9..8049e0bcb2 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/index.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/index.md @@ -1,8 +1,12 @@ --- html: ledger-entry-types.html parent: ledger-data-formats.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Ledger Entry Types -{% include '_snippets/ledger-objects-intro.md' %} +{% partial file="/_snippets/ledger-objects-intro.md" /%} + + +{% child-pages /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md b/content/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md index c910f926d6..66497a584d 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md @@ -10,7 +10,7 @@ labels: (Not to be confused with the ["ledger hash" string data type][Hash], which uniquely identifies a ledger version. This section describes the `LedgerHashes` ledger object type.) -The `LedgerHashes` object type contains a history of prior ledgers that led up to this ledger version, in the form of their hashes. Objects of this ledger type are modified automatically when closing a ledger. (This is one of the only times a ledger's state data is modified without a [transaction](transactions.html) or [pseudo-transaction](pseudo-transaction-types.html).) The `LedgerHashes` objects exist to make it possible to look up a previous ledger's hash with only the current ledger version and at most one lookup of a previous ledger version. +The `LedgerHashes` object type contains a history of prior ledgers that led up to this ledger version, in the form of their hashes. Objects of this ledger type are modified automatically when closing a ledger. (This is one of the only times a ledger's state data is modified without a [transaction](../../../../concepts/transactions/index.md) or [pseudo-transaction](../../transactions/pseudo-transaction-types/pseudo-transaction-types.md).) The `LedgerHashes` objects exist to make it possible to look up a previous ledger's hash with only the current ledger version and at most one lookup of a previous ledger version. There are two kinds of `LedgerHashes` object. Both types have the same fields. Each ledger version contains: @@ -39,13 +39,13 @@ Example `LedgerHashes` object (trimmed for length): } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Name | JSON Type | [Internal Type][] | Required? | Description | |:----------------------|:-----------------|:------------------|:----------|:------------| -| `FirstLedgerSequence` | Number | UInt32 | No | **DEPRECATED** Do not use. (The "recent hashes" object on Mainnet has the value `2` in this field as a result of an old software bug. That value gets carried forward as the "recent hashes" object is updated. New "previous history" objects do not have this field, nor do "recent hashes" objects in [parallel networks](parallel-networks.html) started with more recent versions of `rippled`.) | +| `FirstLedgerSequence` | Number | UInt32 | No | **DEPRECATED** Do not use. (The "recent hashes" object on Mainnet has the value `2` in this field as a result of an old software bug. That value gets carried forward as the "recent hashes" object is updated. New "previous history" objects do not have this field, nor do "recent hashes" objects in [parallel networks](../../../../concepts/networks-and-servers/parallel-networks.md) started with more recent versions of `rippled`.) | | `Hashes` | Array of Strings | Vector256 | Yes | An array of up to 256 ledger hashes. The contents depend on which sub-type of `LedgerHashes` object this is. | | `LastLedgerSequence` | Number | UInt32 | No | The [Ledger Index][] of the last entry in this object's `Hashes` array. | | `LedgerEntryType` | String | UInt16 | Yes | The value `0x0068`, mapped to the string `LedgerHashes`, indicates that this object is a list of ledger hashes. | @@ -67,9 +67,9 @@ The "previous history" `LedgerHashes` entries collectively contain the hash of e The "previous history" `LedgerHashes` objects act as a [skip list](https://en.wikipedia.org/wiki/Skip_list) so you can get the hash of any historical flag ledger from its index. From there, you can use that flag ledger's "recent history" object to get the hash of any other ledger. -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. ## LedgerHashes ID Formats @@ -86,7 +86,4 @@ The **"previous history"** `LedgerHashes` objects have an ID that is the [SHA-51 **Tip:** Dividing by 65536 keeps the most significant 16 bits, which are the same for all the flag ledgers listed in a "previous history" object, and only those ledgers. You can use this fact to look up the `LedgerHashes` object that contains the hash of any flag ledger. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/negativeunl.md b/content/references/protocol/ledger-data/ledger-entry-types/negativeunl.md index c8698fd53b..b499e61f05 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/negativeunl.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/negativeunl.md @@ -9,11 +9,11 @@ labels: _(Added by the [NegativeUNL amendment][].)_ -The `NegativeUNL` ledger entry type contains the current status of the [Negative UNL](negative-unl.html), a list of trusted validators currently believed to be offline. +The `NegativeUNL` ledger entry type contains the current status of the [Negative UNL](../../../../concepts/consensus-protocol/negative-unl.md), a list of trusted validators currently believed to be offline. Each ledger version contains **at most one** `NegativeUNL` entry. If no validators are currently disabled or scheduled to be disabled, there is no `NegativeUNL` entry. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -31,9 +31,9 @@ Each ledger version contains **at most one** `NegativeUNL` entry. If no validato } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), the `{{currentpage.name}}` ledger entry has the following fields: +In addition to the [common fields](../common-fields.md), the {% code-page-name /%} ledger entry has the following fields: | Name | JSON Type | [Internal Type][] | Required? | Description | |:----------------------|:----------|:------------------|:----------|:---------------------| @@ -53,9 +53,9 @@ Each `DisabledValidator` object represents one disabled validator. In JSON, a `D | `PublicKey` | String | Blob | The master public key of the validator, in hexadecimal. | -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for the `{{currentpage.name}}` entry. +There are no flags defined for the {% code-page-name /%} entry. ## NegativeUNL ID Format @@ -66,7 +66,4 @@ The ID of the `NegativeUNL` entry is the hash of the `NegativeUNL` space key (`0 2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244 ``` - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md b/content/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md index f6154e3bf8..91cd1ee37b 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md @@ -7,11 +7,11 @@ labels: --- # NFTokenOffer -An `NFTokenOffer` entry represents an offer to buy, sell or transfer an [NFT](non-fungible-tokens.html). +An `NFTokenOffer` entry represents an offer to buy, sell or transfer an [NFT](../../../../concepts/tokens/nfts/index.md). _(Added by the [NonFungibleTokensV1_1 amendment][].)_ -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -29,7 +29,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ``` -### {{currentpage.name}} Fields +### {% $frontmatter.seo.title %} Fields | Name |JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:-----------------|:------------------|:------------|:-----------| @@ -45,9 +45,9 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | `PreviousTxnLgrSeq` | number | UInt32 | Yes | Index of the ledger that contains the transaction that most recently modified this object. | -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -{{currentpage.name}} entries can have the following flags combined in the `Flags` field: +{% $frontmatter.seo.title %} entries can have the following flags combined in the `Flags` field: | Flag Name | Hex Value | Decimal Value | Description | |------------------|--------------|---------------|-------------| @@ -56,7 +56,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## NFTokenOffer Transactions -Unlike [Offers for fungible tokens](offers.html), a `NFTokenOffer` is not stored in an order book and is never automatically matched or executed. A buyer must _explicitly_ choose to accept an `NFTokenOffer` that offers to sell a `NFToken`. Similarly, a seller must _explicitly_ choose to accept a specific `NFTokenOffer` that offers to buy a `NFToken` object that they own. +Unlike [Offers for fungible tokens](../../../../concepts/tokens/decentralized-exchange/offers.md), a `NFTokenOffer` is not stored in an order book and is never automatically matched or executed. A buyer must _explicitly_ choose to accept an `NFTokenOffer` that offers to sell a `NFToken`. Similarly, a seller must _explicitly_ choose to accept a specific `NFTokenOffer` that offers to buy a `NFToken` object that they own. The transactions for `NFToken` trading are: @@ -67,12 +67,12 @@ The transactions for `NFToken` trading are: ## Locating NFTokenOffer entries -Each unique NFT has up to two [directories](directorynode.html): one contains offers to buy the token and the other contains offers to sell the token. (These two directories are created as necessary and deleted if empty.) Marketplaces or other client applications can use these directories to find and display offers to trade `NFToken` objects to users or even automatically match them and accept them. +Each unique NFT has up to two [directories](directorynode.md): one contains offers to buy the token and the other contains offers to sell the token. (These two directories are created as necessary and deleted if empty.) Marketplaces or other client applications can use these directories to find and display offers to trade `NFToken` objects to users or even automatically match them and accept them. ### NFTokenOffer Reserve -`{{currentpage.name}}` entries each count as one item towards the owner reserve of the account placing the offer, as long as the entry is in the ledger. Accepting or canceling the offer frees up the reserve. +{% code-page-name /%} entries each count as one item towards the owner reserve of the account placing the offer, as long as the entry is in the ledger. Accepting or canceling the offer frees up the reserve. ### NFTokenOffer ID Format @@ -83,8 +83,4 @@ The unique ID (`NFTokenOfferID`) of a `NFTokenOffer` object is the result of the * The `AccountID` of the account placing the offer; and * The `Sequence` (or `Ticket`) of the `NFTokenCreateOffer` transaction that created the `NFTokenOffer`. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md b/content/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md index 3d534fd864..4c12e9861a 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md @@ -7,12 +7,12 @@ labels: --- # NFTokenPage -The `NFTokenPage` object represents a collection of [NFTs](non-fungible-tokens.html) owned by the same account. An account can have multiple `NFTokenPage` entries, which form a doubly linked list. +The `NFTokenPage` object represents a collection of [NFTs](../../../../concepts/tokens/nfts/index.md) owned by the same account. An account can have multiple `NFTokenPage` entries, which form a doubly linked list. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -39,9 +39,9 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Field Name | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:----------|:------------------|:----------|:------------| @@ -81,9 +81,9 @@ To add an `NFToken`, find the `NFTokenPage` it should be in (using the same tech Removing `NFToken` objects works like adding them. If the number of `NFToken` objects in the page goes below a certain threshold, the ledger combines the page with a previous or next page if possible. -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -Each `NFTokenPage` counts as one item towards its owner's [owner reserve](reserves.html#owner-reserves). Burning or trading away enough NFTs to remove the page frees up the reserve. +Each `NFTokenPage` counts as one item towards its owner's [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves). Burning or trading away enough NFTs to remove the page frees up the reserve. Since each page can hold up to 32 entries, the _effective_ reserve cost per NFT can be as low as _R_/32 where _R_ is the incremental owner reserve for one item. @@ -102,7 +102,4 @@ Currently, the reserve per item is 2 XRP. The table below shows how much the **t These numbers are estimates; the actual numbers may vary. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/offer.md b/content/references/protocol/ledger-data/ledger-entry-types/offer.md index 2fba80b339..842d01e9e7 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/offer.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/offer.md @@ -8,12 +8,12 @@ labels: # Offer [[Source]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L57 "Source") -The `Offer` ledger entry describes an [Offer](offers.html) to exchange currencies in the XRP Ledger's [decentralized exchange](decentralized-exchange.html). (In finance, this is more traditionally known as an _order_.) An [OfferCreate transaction][] only creates an `Offer` entry in the ledger when the Offer cannot be fully executed immediately by consuming other Offers already in the ledger. +The `Offer` ledger entry describes an [Offer](../../../../concepts/tokens/decentralized-exchange/offers.md) to exchange currencies in the XRP Ledger's [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md). (In finance, this is more traditionally known as an _order_.) An [OfferCreate transaction][] only creates an `Offer` entry in the ledger when the Offer cannot be fully executed immediately by consuming other Offers already in the ledger. An Offer can become unfunded through other activities in the network, while remaining in the ledger. When processing transactions, the network automatically removes any unfunded Offers that those transactions come across. (Otherwise, unfunded Offers remain, because _only_ transactions can change the ledger state.) -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -36,14 +36,14 @@ An Offer can become unfunded through other activities in the network, while rema } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Name | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:-----------------|:------------------|:----------|:------------| | `Account` | String | AccountID | Yes | The address of the account that owns this Offer. | -| `BookDirectory` | String | Hash256 | Yes | The ID of the [Offer Directory](directorynode.html) that links to this Offer. | +| `BookDirectory` | String | Hash256 | Yes | The ID of the [Offer Directory](directorynode.md) that links to this Offer. | | `BookNode` | String | UInt64 | Yes | A hint indicating which page of the offer directory links to this entry, in case the directory consists of multiple pages. | | `Expiration` | Number | UInt32 | No | Indicates the time after which this Offer is considered unfunded. See [Specifying Time][] for details. | | `LedgerEntryType` | String | UInt16 | Yes | The value `0x006F`, mapped to the string `Offer`, indicates that this is an Offer entry. | @@ -58,15 +58,15 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp `Offer` entries can have the following flags combined into the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Corresponding [OfferCreate Flag](offercreate.html#offercreate-flags) | Description | +| Flag Name | Hex Value | Decimal Value | Corresponding [OfferCreate Flag](../../transactions/types/offercreate.md#offercreate-flags) | Description | |--------------|--------------|---------------|-------------|------------------------| | `lsfPassive` | `0x00010000` | 65536 | `tfPassive` | The offer was placed as "passive". This has no effect after the offer is placed into the ledger. | | `lsfSell` | `0x00020000` | 131072 | `tfSell` | The offer was placed as a "Sell" offer. This has no effect after the offer is placed in the ledger, because `tfSell` only matters if you get a better rate than you asked for, which can only happen when the offer is initially placed. | -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries count as one item towards the owner reserve of the account that placed the offer, as long as the entry is in the ledger. Canceling or consuming the offer frees up the reserve. The reserve is also freed up if the offer is removed because it was found unfunded. +{% code-page-name /%} entries count as one item towards the owner reserve of the account that placed the offer, as long as the entry is in the ledger. Canceling or consuming the offer frees up the reserve. The reserve is also freed up if the offer is removed because it was found unfunded. ## Offer ID Format @@ -77,9 +77,6 @@ The ID of an `Offer` entry is the [SHA-512Half][] of the following values, conca * The AccountID of the account placing the Offer * The Sequence number of the [OfferCreate transaction][] that created the Offer. - If the OfferCreate transaction used a [Ticket](tickets.html), use the `TicketSequence` value instead. + If the OfferCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/paychannel.md b/content/references/protocol/ledger-data/ledger-entry-types/paychannel.md index 7095cca7f7..29133194b8 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/paychannel.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/paychannel.md @@ -10,10 +10,10 @@ labels: _(Added by the [PayChan amendment][].)_ -A `PayChannel` entry represents a [payment channel](payment-channels.html). +A `PayChannel` entry represents a [payment channel](../../../../concepts/payment-types/payment-channels.md). -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -37,20 +37,20 @@ A `PayChannel` entry represents a [payment channel](payment-channels.html). } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Name | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:----------|:------------------|:----------|:-----------------------| | `Account` | String | AccountID | Yes | The source address that owns this payment channel. This comes from the sending address of the transaction that created the channel. | | `Amount` | String | Amount | Yes | Total [XRP, in drops][], that has been allocated to this channel. This includes XRP that has been paid to the destination address. This is initially set by the transaction that created the channel and can be increased if the source address sends a PaymentChannelFund transaction. | | `Balance` | String | Amount | Yes | Total [XRP, in drops][], already paid out by the channel. The difference between this value and the `Amount` field is how much XRP can still be paid to the destination address with PaymentChannelClaim transactions. If the channel closes, the remaining difference is returned to the source address. | -| `CancelAfter` | Number | UInt32 | No | The immutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. This channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](ledger-header.html). This is optionally set by the transaction that created the channel, and cannot be changed. | +| `CancelAfter` | Number | UInt32 | No | The immutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. This channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](../ledger-header.md). This is optionally set by the transaction that created the channel, and cannot be changed. | | `Destination` | String | AccountID | Yes | The destination address for this payment channel. While the payment channel is open, this address is the only one that can receive XRP from the channel. This comes from the `Destination` field of the transaction that created the channel. | | `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | | `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this entry, in case the directory consists of multiple pages. Omitted on payment channels created before enabling the [fixPayChanRecipientOwnerDir amendment][]. | -| `Expiration` | Number | UInt32 | No | The mutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. The channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](ledger-header.html). See [Channel Expiration](#channel-expiration) for more details. | +| `Expiration` | Number | UInt32 | No | The mutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. The channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](../ledger-header.md). See [Channel Expiration](#channel-expiration) for more details. | | `LedgerEntryType` | String | UInt16 | Yes | The value `0x0078`, mapped to the string `PayChannel`, indicates that this is a payment channel entry. | | `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the source address's owner directory links to this entry, in case the directory consists of multiple pages. | | `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this entry. | @@ -61,7 +61,7 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp ## Channel Expiration -The `Expiration` field of a payment channel is the mutable expiration time, in contrast to the immutable expiration time represented by the `CancelAfter` field. The expiration of a channel is always considered relative to the [`close_time` field](ledger-header.html) of the previous ledger. The `Expiration` field is omitted when a `PayChannel` entry is created. There are several ways the `Expiration` field of a `PayChannel` entry can be updated, which can be summarized as follows: a channel's source address can set the `Expiration` of the channel freely as long as the channel always remains open at least `SettleDelay` seconds after the first attempt to close it. +The `Expiration` field of a payment channel is the mutable expiration time, in contrast to the immutable expiration time represented by the `CancelAfter` field. The expiration of a channel is always considered relative to the [`close_time` field](../ledger-header.md) of the previous ledger. The `Expiration` field is omitted when a `PayChannel` entry is created. There are several ways the `Expiration` field of a `PayChannel` entry can be updated, which can be summarized as follows: a channel's source address can set the `Expiration` of the channel freely as long as the channel always remains open at least `SettleDelay` seconds after the first attempt to close it. When a payment channel expires, at first it remains on the ledger, because only new transactions can modify ledger contents. Transaction processing automatically closes a payment channel when any transaction accesses it after the expiration. To close an expired channel and return the unspent XRP to the owner, some address must send a new PaymentChannelClaim or PaymentChannelFund transaction accessing the channel. @@ -92,9 +92,9 @@ If any other address attempts to set an `Expiration` field, the transaction fail -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries count as one item towards the owner reserve of the account that created the payment channel, as long as the entry is in the ledger. Removing the channel frees up the reserve; this can only be done after the channel expires (including as a result of being explicitly closed). +{% code-page-name /%} entries count as one item towards the owner reserve of the account that created the payment channel, as long as the entry is in the ledger. Removing the channel frees up the reserve; this can only be done after the channel expires (including as a result of being explicitly closed). ## PayChannel ID Format @@ -105,9 +105,6 @@ The ID of a `PayChannel` entry is the [SHA-512Half][] of the following values, c * The AccountID of the source account * The AccountID of the destination account * The Sequence number of the [PaymentChannelCreate transaction][] that created the channel - If the PaymentChannelCreate transaction used a [Ticket](tickets.html), use the `TicketSequence` value instead. + If the PaymentChannelCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/ripplestate.md b/content/references/protocol/ledger-data/ledger-entry-types/ripplestate.md index c08b41753f..0a04b8a64a 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/ripplestate.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/ripplestate.md @@ -8,16 +8,16 @@ labels: # RippleState [[Source]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L70 "Source") -A `RippleState` ledger entry represents a [trust line](trust-lines-and-issuing.html) between two accounts. Each account can change its own limit and other settings, but the balance is a single shared value. A trust line that is entirely in its default state is considered the same as a trust line that does not exist and is automatically deleted. +A `RippleState` ledger entry represents a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) between two accounts. Each account can change its own limit and other settings, but the balance is a single shared value. A trust line that is entirely in its default state is considered the same as a trust line that does not exist and is automatically deleted. ## High vs. Low Account -There can only be one `RippleState` entry per currency for any given pair of accounts. Since no account is privileged in the XRP Ledger, a `RippleState` entry sorts account addresses numerically, to ensure a canonical form. Whichever address is numerically lower when [decoded](addresses.html#address-encoding) is deemed the "low account" and the other is the "high account". The net balance of the trust line is stored from the low account's perspective. +There can only be one `RippleState` entry per currency for any given pair of accounts. Since no account is privileged in the XRP Ledger, a `RippleState` entry sorts account addresses numerically, to ensure a canonical form. Whichever address is numerically lower when [decoded](../../../../concepts/accounts/addresses.md#address-encoding) is deemed the "low account" and the other is the "high account". The net balance of the trust line is stored from the low account's perspective. -The ["issuer"](trust-lines-and-issuing.html) for the balance in a trust line depends on whether the balance is positive or negative. If a `RippleState` entry shows a positive balance, the high account is the issuer. If the balance is negative, the low account is the issuer. Often, the issuer has its limit set to 0 and the other account has a positive limit, but this is not reliable because limits can change without affecting an existing balance. +The ["issuer"](../../../../concepts/tokens/fungible-tokens/index.md) for the balance in a trust line depends on whether the balance is positive or negative. If a `RippleState` entry shows a positive balance, the high account is the issuer. If the balance is negative, the low account is the issuer. Often, the issuer has its limit set to 0 and the other account has a positive limit, but this is not reliable because limits can change without affecting an existing balance. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -46,13 +46,13 @@ The ["issuer"](trust-lines-and-issuing.html) for the balance in a trust line dep } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Name | JSON Type | Internal Type | Required? | Description | |:--------------------|:----------|:--------------|:----------|:------------| -| `Balance` | Object | Amount | Yes | The balance of the trust line, from the perspective of the low account. A negative balance indicates that the high account holds tokens issued by the low account. The issuer in this is always set to the neutral value [ACCOUNT_ONE](addresses.html#special-addresses). | +| `Balance` | Object | Amount | Yes | The balance of the trust line, from the perspective of the low account. A negative balance indicates that the high account holds tokens issued by the low account. The issuer in this is always set to the neutral value [ACCOUNT_ONE](../../../../concepts/accounts/addresses.md#special-addresses). | | `Flags` | Number | UInt32 | Yes | A bit-map of boolean options enabled for this entry. | | `HighLimit` | Object | Amount | Yes | The limit that the high account has set on the trust line. The `issuer` is the address of the high account that set this limit. | | `HighNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the high account's owner directory links to this entry, in case the directory consists of multiple pages. | @@ -70,24 +70,24 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp `RippleState` entries can have the following flags combined into the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Corresponding [TrustSet Flag](trustset.html#trustset-flags) | Description | +| Flag Name | Hex Value | Decimal Value | Corresponding [TrustSet Flag](../../transactions/types/trustset.md#trustset-flags) | Description | |-------------------|--------------|---------------|-----------------|---------| | `lsfLowReserve` | `0x00010000` | 65536 | (None) | This entry [contributes to the low account's owner reserve](#ripplestate-reserve). | | `lsfHighReserve` | `0x00020000` | 131072 | (None) | This entry [contributes to the high account's owner reserve](#ripplestate-reserve). | | `lsfLowAuth` | `0x00040000` | 262144 | `tfSetAuth` | The low account has authorized the high account to hold tokens issued by the low account. | | `lsfHighAuth` | `0x00080000` | 524288 | `tfSetAuth` | The high account has authorized the low account to hold tokens issued by the high account. | -| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | The low account [has disabled rippling](rippling.html) from this trust line. | -| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | The high account [has disabled rippling](rippling.html) from this trust line. | +| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | The low account [has disabled rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) from this trust line. | +| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | The high account [has disabled rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) from this trust line. | | `lsfLowFreeze` | `0x00400000` | 4194304 | `tfSetFreeze` | The low account has frozen the trust line, preventing the high account from transferring the asset. | | `lsfHighFreeze` | `0x00800000` | 8388608 | `tfSetFreeze` | The high account has frozen the trust line, preventing the low account from transferring the asset. | The two accounts connected by the trust line can each change their own settings with a [TrustSet transaction][]. -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -A `RippleState` entry counts as one item towards the [owner reserve](reserves.html#owner-reserves) of _one or both_ of the accounts it connects. In typical cases, the holder of a token owes a reserve and the issuer of the token does not. +A `RippleState` entry counts as one item towards the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) of _one or both_ of the accounts it connects. In typical cases, the holder of a token owes a reserve and the issuer of the token does not. Specifically, the entry counts towards an account's reserve if that account modifies a trust line to put it in a non-default state. The `lsfLowReserve` and `lsfHighReserve` flags indicate which account(s) are responsible for the owner reserve. The protocol automatically sets these flags when it modifies a trust line. @@ -104,7 +104,7 @@ The values that count towards a trust line's non-default state are as follows: The **`lsfLowAuth`** and **`lsfHighAuth`** flags do not count against the default state, because they cannot be disabled. -The default state of the two No Ripple flags depends on the state of the [`lsfDefaultRipple` flag](accountroot.html#accountroot-flags) in their corresponding AccountRoot entries. If Default Ripple is disabled (the default), then the default state of the `lsfNoRipple` flag is _enabled_ for all of an account's trust lines. If an account enables Default Ripple, then the `lsfNoRipple` flag is _disabled_ (rippling is enabled) for an account's trust lines by default. +The default state of the two No Ripple flags depends on the state of the [`lsfDefaultRipple` flag](accountroot.md#accountroot-flags) in their corresponding AccountRoot entries. If Default Ripple is disabled (the default), then the default state of the `lsfNoRipple` flag is _enabled_ for all of an account's trust lines. If an account enables Default Ripple, then the `lsfNoRipple` flag is _disabled_ (rippling is enabled) for an account's trust lines by default. **Note:** Prior to the introduction of the Default Ripple flag in `rippled` version 0.27.3 (March 10, 2015), the default state for all trust lines was with both No Ripple flags disabled (rippling enabled). @@ -120,7 +120,4 @@ The ID of a RippleState entry is the [SHA-512Half][] of the following values, co * The AccountID of the high account * The 160-bit currency code of the trust line(s) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/signerlist.md b/content/references/protocol/ledger-data/ledger-entry-types/signerlist.md index c8a1575d63..9b12bfcd58 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/signerlist.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/signerlist.md @@ -13,7 +13,7 @@ _(Added by the [MultiSign amendment][].)_ A `SignerList` entry represents a list of parties that, as a group, are authorized to sign a transaction in place of an individual account. You can create, replace, or remove a signer list using a [SignerListSet transaction][]. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -48,9 +48,9 @@ A `SignerList` entry represents a list of parties that, as a group, are authoriz } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Name | JSON Type | Internal Type | Required? | Description | |:--------------------|:----------|:--------------|:----------|:---------------------------| @@ -59,7 +59,7 @@ In addition to the [common fields](ledger-entry-common-fields.html), `{{currentp | `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the transaction that most recently modified this object. | | `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | | `SignerEntries` | Array | Array | Yes | An array of Signer Entry objects representing the parties who are part of this signer list. | -| `SignerListID` | Number | UInt32 | Yes | An ID for this signer list. Currently always set to `0`. If a future [amendment](amendments.html) allows multiple signer lists for an account, this may change. | +| `SignerListID` | Number | UInt32 | Yes | An ID for this signer list. Currently always set to `0`. If a future [amendment](../../../../concepts/networks-and-servers/amendments.md) allows multiple signer lists for an account, this may change. | | `SignerQuorum` | Number | UInt32 | Yes | A target number for signer weights. To produce a valid signature for the owner of this SignerList, the signers must provide valid signatures whose weights sum to this value or more. | The `SignerEntries` may be any combination of funded and unfunded addresses that use either secp256k1 or ed25519 keys. @@ -74,9 +74,9 @@ Each member of the `SignerEntries` field is an object that describes that signer | `SignerWeight` | Number | UInt16 | The weight of a signature from this signer. A multi-signature is only valid if the sum weight of the signatures provided meets or exceeds the signer list's `SignerQuorum` value. | | `WalletLocator` | String | Hash256 | _(Optional)_ Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. _(Added by the [ExpandedSignerList amendment][].)_ | -When processing a multi-signed transaction, the server looks up the `Account` values with respect to the ledger at the time of transaction execution. If the address _does not_ correspond to a funded [AccountRoot ledger entry](accountroot.html), then only the [master private key](cryptographic-keys.html) associated with that address can be used to produce a valid signature. If the account _does_ exist in the ledger, then it depends on the state of that account. If the account has a Regular Key configured, the Regular Key can be used. The account's master key can only be used if it is not disabled. A multi-signature cannot be used as part of another multi-signature. +When processing a multi-signed transaction, the server looks up the `Account` values with respect to the ledger at the time of transaction execution. If the address _does not_ correspond to a funded [AccountRoot ledger entry](accountroot.md), then only the [master private key](../../../../concepts/accounts/cryptographic-keys.md) associated with that address can be used to produce a valid signature. If the account _does_ exist in the ledger, then it depends on the state of that account. If the account has a Regular Key configured, the Regular Key can be used. The account's master key can only be used if it is not disabled. A multi-signature cannot be used as part of another multi-signature. -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags _(Added by the [MultiSignReserve amendment][].)_ @@ -84,14 +84,14 @@ SignerList entries can have the following value in the `Flags` field: | Flag Name | Hex Value | Decimal Value | Description | |:-------------------|:-------------|:--------------|:-------------------------| -| `lsfOneOwnerCount` | `0x00010000` | 65536 | If this flag is enabled, this SignerList counts as one item for purposes of the [owner reserve](reserves.html#owner-reserves). Otherwise, this list counts as N+2 items, where N is the number of signers it contains. This flag is automatically enabled if you add or update a signer list after the [MultiSignReserve amendment][] is enabled. | +| `lsfOneOwnerCount` | `0x00010000` | 65536 | If this flag is enabled, this SignerList counts as one item for purposes of the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves). Otherwise, this list counts as N+2 items, where N is the number of signers it contains. This flag is automatically enabled if you add or update a signer list after the [MultiSignReserve amendment][] is enabled. | ## Signer Lists and Reserves -A signer list contributes to its owner's [reserve requirement](reserves.html). Removing the signer list frees up the reserve. +A signer list contributes to its owner's [reserve requirement](../../../../concepts/accounts/reserves.md). Removing the signer list frees up the reserve. -The [MultiSignReserve amendment][] (enabled 2019-04-17) made it so each signer list counts as one item, regardless of how many members it has. As a result, the owner reserve for any signer list added or updated after this time is {{target.owner_reserve}}. +The [MultiSignReserve amendment][] (enabled 2019-04-17) made it so each signer list counts as one item, regardless of how many members it has. As a result, the owner reserve for any signer list added or updated after this time is {% $env.PUBLIC_OWNER_RESERVE %}. A signer list created before the [MultiSignReserve amendment][] itself counts as two items towards the owner reserve, and each member of the list counts as one. As a result, the total owner reserve associated with an old signer list is anywhere from 3 times to 10 times as much as a new signer list. To update a signer list to use the new, reduced reserve, update the signer list by sending a [SignerListSet transaction][]. @@ -104,7 +104,4 @@ The ID of a `SignerList` entry is the SHA-512Half of the following values, conca * The AccountID of the owner of the signer list * The `SignerListID` (currently always `0`) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/ticket.md b/content/references/protocol/ledger-data/ledger-entry-types/ticket.md index a9ba3da939..f25d1483b8 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/ticket.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/ticket.md @@ -11,9 +11,9 @@ labels: _(Added by the [TicketBatch amendment][].)_ -A `Ticket` entry type represents a [Ticket](tickets.html), which tracks an account [sequence number][Sequence Number] that has been set aside for future use. You can create new tickets with a [TicketCreate transaction][]. +A `Ticket` entry type represents a [Ticket](../../../../concepts/accounts/tickets.md), which tracks an account [sequence number][Sequence Number] that has been set aside for future use. You can create new tickets with a [TicketCreate transaction][]. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -27,31 +27,31 @@ A `Ticket` entry type represents a [Ticket](tickets.html), which tracks an accou } ``` -## {{currentpage.name}} Fields +## {% $frontmatter.seo.title %} Fields -In addition to the [common fields](ledger-entry-common-fields.html), `{{currentpage.name}}` entries have the following fields: +In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: | Name | JSON Type | Internal Type | Required? | Description | |:--------------------|:----------|:--------------|:----------|:---------------------------| -| `Account` | String | AccountID | Yes | The [account](accounts.html) that owns this Ticket. | -| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0054`, mapped to the string `Ticket`, indicates that this is a {{currentpage.name}} entry. | +| `Account` | String | AccountID | Yes | The [account](../../../../concepts/accounts/accounts.md) that owns this Ticket. | +| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0054`, mapped to the string `Ticket`, indicates that this is a {% $frontmatter.seo.title %} entry. | | `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the [transaction](transactions.html) that most recently modified this entry. | +| `PreviousTxnID` | String | Hash256 | Yes | The identifying hash of the [transaction](../../../../concepts/transactions/index.md) that most recently modified this entry. | | `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | | `TicketSequence` | Number | UInt32 | Yes | The [Sequence Number][] this Ticket sets aside. | -## {{currentpage.name}} Reserve +## {% $frontmatter.seo.title %} Reserve -`{{currentpage.name}}` entries count as one item towards the owner reserve of the account that placed the created it, as long as the entry is in the ledger. Using the ticket frees up the reserve. +{% code-page-name /%} entries count as one item towards the owner reserve of the account that placed the created it, as long as the entry is in the ledger. Using the ticket frees up the reserve. -## {{currentpage.name}} Flags +## {% $frontmatter.seo.title %} Flags -There are no flags defined for `{{currentpage.name}}` entries. +There are no flags defined for {% code-page-name /%} entries. -## {{currentpage.name}} ID Format +## {% $frontmatter.seo.title %} ID Format The ID of a Ticket object is the SHA-512Half of the following values, concatenated in order: @@ -59,7 +59,4 @@ The ID of a Ticket object is the SHA-512Half of the following values, concatenat * The AccountID of the owner of the Ticket * The `TicketSequence` number of the Ticket - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md b/content/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md index adb92e2ca4..3491be1ad7 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md @@ -7,7 +7,7 @@ labels: status: not_enabled --- # XChainOwnedClaimID -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ [[Source]](https://github.com/seelabs/rippled/blob/xbridge/src/ripple/protocol/impl/LedgerFormats.cpp#L281-L293 "Source") @@ -103,7 +103,4 @@ An `XChainCreateClaimID` transaction is used to create a new `XChainOwnedClaimID | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md b/content/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md index 9040810713..29e62072cf 100644 --- a/content/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md +++ b/content/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md @@ -7,7 +7,7 @@ labels: status: not_enabled --- # XChainOwnedCreateAccountClaimID -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ [[Source]](https://github.com/seelabs/rippled/blob/xbridge/src/ripple/protocol/impl/LedgerFormats.cpp#L296-L306 "Source") @@ -86,8 +86,4 @@ The ledger object is destroyed when all the attestations have been received and | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/ledger-data/ledger-header.md b/content/references/protocol/ledger-data/ledger-header.md index eb4c3f7e59..b9ed4d531a 100644 --- a/content/references/protocol/ledger-data/ledger-header.md +++ b/content/references/protocol/ledger-data/ledger-header.md @@ -9,7 +9,7 @@ labels: # Ledger Header [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/ledger/ReadView.h#L71 "Source") -Every [ledger version](ledgers.html) has a unique header that describes the contents. You can look up a ledger's header information with the [ledger method][]. The contents of the ledger header are as follows: +Every [ledger version](../../../concepts/ledgers/index.md) has a unique header that describes the contents. You can look up a ledger's header information with the [ledger method][]. The contents of the ledger header are as follows: | Field | JSON Type | [Internal Type][] | Description | |:------------------------------|:----------|:------------------|:--------------| @@ -17,7 +17,7 @@ Every [ledger version](ledgers.html) has a unique header that describes the cont | `ledger_hash` | String | Hash256 | The [SHA-512Half][] of this ledger version. This serves as a unique identifier for this ledger and all its contents. | | `account_hash` | String | Hash256 | The [SHA-512Half][] of this ledger's state tree information. | | [`close_flags`](#close-flags) | Number | UInt8 | A bit-map of flags relating to the closing of this ledger. | -| `close_time` | Number | UInt32 | The [approximate time this ledger version closed](ledger-close-times.html), as the number of seconds since the Ripple Epoch of 2000-01-01 00:00:00 UTC. This value is rounded based on the `close_time_resolution`. | +| `close_time` | Number | UInt32 | The [approximate time this ledger version closed](../../../concepts/ledgers/ledger-close-times.md), as the number of seconds since the Ripple Epoch of 2000-01-01 00:00:00 UTC. This value is rounded based on the `close_time_resolution`. | | `close_time_resolution` | Number | Uint8 | An integer in the range \[2,120\] indicating the maximum number of seconds by which the `close_time` could be rounded. | | `closed` | Boolean | Boolean | If `true`, this ledger version is no longer accepting new transactions. (However, unless this ledger version is validated, it might be replaced by a different ledger version with a different set of transactions.) | | `parent_hash` | String | Hash256 | The `ledger_hash` value of the previous ledger version that is the direct predecessor of this one. If there are different versions of the previous ledger index, this indicates from which one the ledger was derived. | @@ -26,21 +26,17 @@ Every [ledger version](ledgers.html) has a unique header that describes the cont ## Ledger Index -{% include '_snippets/data_types/ledger_index.md' %} - +{% partial file="/_snippets/data_types/ledger_index.md" /%} + ## Close Flags -The ledger has only one flag defined for `closeFlags`: **`sLCF_NoConsensusTime`** (value `1`). If this flag is enabled, it means that validators had different [close times for the ledger](ledger-close-times.html), but built otherwise the same ledger, so they declared consensus while "agreeing to disagree" on the close time. In this case, official `close_time` value of the ledger is 1 second after that of the parent ledger. +The ledger has only one flag defined for `closeFlags`: **`sLCF_NoConsensusTime`** (value `1`). If this flag is enabled, it means that validators had different [close times for the ledger](../../../concepts/ledgers/ledger-close-times.md), but built otherwise the same ledger, so they declared consensus while "agreeing to disagree" on the close time. In this case, official `close_time` value of the ledger is 1 second after that of the parent ledger. ## See Also -For ledger basics, see [Ledgers](ledgers.html). +For ledger basics, see [Ledgers](../../../concepts/ledgers/index.md). - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/common-fields.md b/content/references/protocol/transactions/common-fields.md index 1428c7ff53..9728bb2e10 100644 --- a/content/references/protocol/transactions/common-fields.md +++ b/content/references/protocol/transactions/common-fields.md @@ -7,28 +7,28 @@ labels: --- # Transaction Common Fields -Every transaction has the same set of common fields, plus additional fields based on the [transaction type](transaction-types.html). Field names are case-sensitive. The common fields for all transactions are: +Every transaction has the same set of common fields, plus additional fields based on the [transaction type](types/index.md). Field names are case-sensitive. The common fields for all transactions are: | Field | JSON Type | [Internal Type][] | Description | |:---------------------|:-----------------|:------------------|:-----------------| -| `Account` | String | AccountID | _(Required)_ The unique address of the [account](accounts.html) that initiated the transaction. | -| `TransactionType` | String | UInt16 | _(Required)_ The type of transaction. Valid [transaction types](transaction-types.html) include: `Payment`, `OfferCreate`, `TrustSet`, and many others. | +| `Account` | String | AccountID | _(Required)_ The unique address of the [account](../../../concepts/accounts/accounts.md) that initiated the transaction. | +| `TransactionType` | String | UInt16 | _(Required)_ The type of transaction. Valid [transaction types](types/index.md) include: `Payment`, `OfferCreate`, `TrustSet`, and many others. | | `Fee` | String | Amount | _(Required; [auto-fillable][])_ Integer amount of XRP, in drops, to be destroyed as a cost for distributing this transaction to the network. Some transaction types have different minimum requirements. See [Transaction Cost][] for details. | -| `Sequence` | Number | UInt32 | _(Required; [auto-fillable][])_ The [sequence number](basic-data-types.html#account-sequence) of the account sending the transaction. A transaction is only valid if the `Sequence` number is exactly 1 greater than the previous transaction from the same account. The special case `0` means the transaction is using a [Ticket](tickets.html) instead _(Added by the [TicketBatch amendment][].)_. | +| `Sequence` | Number | UInt32 | _(Required; [auto-fillable][])_ The [sequence number](../data-types/basic-data-types.md#account-sequence) of the account sending the transaction. A transaction is only valid if the `Sequence` number is exactly 1 greater than the previous transaction from the same account. The special case `0` means the transaction is using a [Ticket](../../../concepts/accounts/tickets.md) instead _(Added by the [TicketBatch amendment][].)_. | | [`AccountTxnID`](#accounttxnid) | String | Hash256 | _(Optional)_ Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash. | | [`Flags`](#flags-field) | Number | UInt32 | _(Optional)_ Set of bit-flags for this transaction. | -| `LastLedgerSequence` | Number | UInt32 | _(Optional; strongly recommended)_ Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected. See [Reliable Transaction Submission](reliable-transaction-submission.html) for more details. | +| `LastLedgerSequence` | Number | UInt32 | _(Optional; strongly recommended)_ Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected. See [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) for more details. | | [`Memos`](#memos-field) | Array of Objects | Array | _(Optional)_ Additional arbitrary information used to identify this transaction. | | [`NetworkID`](#networkid-field) | Number | UInt32 | _(Network-specific)_ The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. | -| [`Signers`](#signers-field) | Array | Array | _(Optional)_ Array of objects that represent a [multi-signature](multi-signing.html) which authorizes this transaction. | +| [`Signers`](#signers-field) | Array | Array | _(Optional)_ Array of objects that represent a [multi-signature](../../../concepts/accounts/multi-signing.md) which authorizes this transaction. | | `SourceTag` | Number | UInt32 | _(Optional)_ Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's `SourceTag` as the refund payment's `DestinationTag`. | | `SigningPubKey` | String | Blob | _(Automatically added when signing)_ Hex representation of the public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the `Signers` field instead. | -| `TicketSequence` | Number | UInt32 | _(Optional)_ The sequence number of the [ticket](tickets.html) to use in place of a `Sequence` number. If this is provided, `Sequence` must be `0`. Cannot be used with `AccountTxnID`. | +| `TicketSequence` | Number | UInt32 | _(Optional)_ The sequence number of the [ticket](../../../concepts/accounts/tickets.md) to use in place of a `Sequence` number. If this is provided, `Sequence` must be `0`. Cannot be used with `AccountTxnID`. | | `TxnSignature` | String | Blob | _(Automatically added when signing)_ The signature that verifies this transaction as originating from the account it says it is from. | [auto-fillable]: #auto-fillable-fields -[Removed in: rippled 0.28.0][]: The `PreviousTxnID` field of transactions was replaced by the [`AccountTxnID`](#accounttxnid) field. This String / Hash256 field is present in some historical transactions. This is unrelated to the field also named `PreviousTxnID` in some [ledger objects](ledger-data-formats.html). +{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}Removed in: rippled 0.28.0{% /badge %}: The `PreviousTxnID` field of transactions was replaced by the [`AccountTxnID`](#accounttxnid) field. This String / Hash256 field is present in some historical transactions. This is unrelated to the field also named `PreviousTxnID` in some [ledger objects](../ledger-data/index.md). ## AccountTxnID @@ -37,17 +37,17 @@ Every transaction has the same set of common fields, plus additional fields base The `AccountTxnID` field lets you chain your transactions together, so that a current transaction is not valid unless the previous transaction sent from the same account has a specific [transaction hash][identifying hash]. -Unlike the `PreviousTxnID` field, which tracks the last transaction to _modify_ an account (regardless of sender), the `AccountTxnID` tracks the last transaction _sent by_ an account. To use `AccountTxnID`, you must first enable the [`asfAccountTxnID`](accountset.html#accountset-flags) flag, so that the ledger keeps track of the ID for the account's previous transaction. (`PreviousTxnID`, by comparison, is always tracked.) +Unlike the `PreviousTxnID` field, which tracks the last transaction to _modify_ an account (regardless of sender), the `AccountTxnID` tracks the last transaction _sent by_ an account. To use `AccountTxnID`, you must first enable the [`asfAccountTxnID`](types/accountset.md#accountset-flags) flag, so that the ledger keeps track of the ID for the account's previous transaction. (`PreviousTxnID`, by comparison, is always tracked.) One situation in which this is useful is if you have a primary system for submitting transactions and a passive backup system. If the passive backup system becomes disconnected from the primary, but the primary is not fully dead, and they both begin operating at the same time, you could potentially have serious problems like some transactions sending twice and others not at all. Chaining your transactions together with `AccountTxnID` ensures that, even if both systems are active, only one of them can submit valid transactions at a time. -The `AccountTxnID` field cannot be used on transactions that use [Tickets](tickets.html). Transactions that use `AccountTxnID` cannot be placed in the [transaction queue](transaction-queue.html). +The `AccountTxnID` field cannot be used on transactions that use [Tickets](../../../concepts/accounts/tickets.md). Transactions that use `AccountTxnID` cannot be placed in the [transaction queue](../../../concepts/transactions/transaction-queue.md). ## Auto-fillable Fields -Some fields can be automatically filled in before a transaction is signed, either by a `rippled` server or by a [client library](client-libraries.html). Auto-filling values requires an active connection to the XRP Ledger to get the latest state, so it cannot be done offline. The details can vary by library, but auto-filling always provides suitable values for at least the following fields: +Some fields can be automatically filled in before a transaction is signed, either by a `rippled` server or by a [client library](../../client-libraries.md). Auto-filling values requires an active connection to the XRP Ledger to get the latest state, so it cannot be done offline. The details can vary by library, but auto-filling always provides suitable values for at least the following fields: * `Fee` - Automatically fill in the [Transaction Cost][] based on the network. @@ -57,7 +57,7 @@ Some fields can be automatically filled in before a transaction is signed, eithe For a production system, we recommend _not_ leaving these fields to be filled by the server. For example, if transaction costs become high due to a temporary spike in network load, you may want to wait for the cost to decrease before sending some transactions, instead of paying the temporarily-high cost. -The [`Paths` field](payment.html#paths) of the [Payment transaction][] type can also be automatically filled in. +The [`Paths` field](types/payment.md#paths) of the [Payment transaction][] type can also be automatically filled in. ## Flags Field @@ -76,11 +76,11 @@ The only flag that applies globally to all transactions is as follows: | Flag Name | Hex Value | Decimal Value | Description | |:----------------------|:-----------|:--------------|:--------------------------| -| `tfFullyCanonicalSig` | `0x80000000` | 2147483648 | **DEPRECATED** No effect. (If the [RequireFullyCanonicalSig amendment][] is not enabled, this flag enforces a [fully-canonical signature](transaction-malleability.html#alternate-secp256k1-signatures).) | +| `tfFullyCanonicalSig` | `0x80000000` | 2147483648 | **DEPRECATED** No effect. (If the [RequireFullyCanonicalSig amendment][] is not enabled, this flag enforces a [fully-canonical signature](../../../concepts/transactions/finality-of-results/transaction-malleability.md#alternate-secp256k1-signatures).) | When using the [sign method][] (or [submit method][] in "sign-and-submit" mode), `rippled` adds a `Flags` field with `tfFullyCanonicalSig` enabled unless the `Flags` field is already present. The `tfFullyCanonicalSig` flag is not automatically enabled if `Flags` is explicitly specified. The flag is not automatically enabled when using the [sign_for method][] to add a signature to a multi-signed transaction. -**Note:** The `tfFullyCanonicalSig` flag was used from 2014 until 2020 to protect against [transaction malleability](transaction-malleability.html) while maintaining compatibility with legacy signing software. The [RequireFullyCanonicalSig amendment][] ended compatibility with such legacy software and made the protections the default for all transactions. If you are using a [parallel network](parallel-networks.html) that does not have RequireFullyCanonicalSig enabled, you should always enable the `tfFullyCanonicalSig` flag to protect against transaction malleability. +**Note:** The `tfFullyCanonicalSig` flag was used from 2014 until 2020 to protect against [transaction malleability](../../../concepts/transactions/finality-of-results/transaction-malleability.md) while maintaining compatibility with legacy signing software. The [RequireFullyCanonicalSig amendment][] ended compatibility with such legacy software and made the protections the default for all transactions. If you are using a [parallel network](../../../concepts/networks-and-servers/parallel-networks.md) that does not have RequireFullyCanonicalSig enabled, you should always enable the `tfFullyCanonicalSig` flag to protect against transaction malleability. ### Flag Ranges @@ -89,10 +89,10 @@ A transaction's `Flags` field can contain flags that apply at different levels o | Range Name | Bit Mask | Description | |:-----------------|:-------------|:-------------------------------------------| | Universal Flags | `0xff000000` | Flags that apply equally to all transaction types. | -| Type-based Flags | `0x00ff0000` | Flags with different meanings depending on the [transaction type](transaction-types.html) that uses them. | +| Type-based Flags | `0x00ff0000` | Flags with different meanings depending on the [transaction type](types/index.md) that uses them. | | Reserved Flags | `0x0000ffff` | Flags that are not currently defined. A transaction is only valid if these flags are disabled. | -**Note:** The [AccountSet transaction][] type has [its own non-bitwise flags](accountset.html#accountset-flags), which serve a similar purpose to type-based flags. [Ledger objects](ledger-object-types.html) also have a `Flags` field with different bitwise flag definitions. +**Note:** The [AccountSet transaction][] type has [its own non-bitwise flags](types/accountset.md#accountset-flags), which serve a similar purpose to type-based flags. [Ledger objects](../ledger-data/ledger-entry-types/index.md) also have a `Flags` field with different bitwise flag definitions. ## Memos Field @@ -129,9 +129,9 @@ Example of a transaction with a Memos field: ``` ## NetworkID Field -[New in: rippled 1.11.0][] +{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} -The `NetworkID` field is a protection against "cross-chain" transaction replay attacks, preventing the same transaction from being copied over and executing on a [parallel network](parallel-networks.html) that it wasn't intended for. For compatibility with existing chains, the `NetworkID` field must be omitted on any network with a Network ID of 1024 or less, but must be included on any network with a Network ID of 1025 or greater. The following table shows the status and values for various known networks: +The `NetworkID` field is a protection against "cross-chain" transaction replay attacks, preventing the same transaction from being copied over and executing on a [parallel network](../../../concepts/networks-and-servers/parallel-networks.md) that it wasn't intended for. For compatibility with existing chains, the `NetworkID` field must be omitted on any network with a Network ID of 1024 or less, but must be included on any network with a Network ID of 1025 or greater. The following table shows the status and values for various known networks: | Network | ID | `NetworkID` Field | |---------------|----|-------------------| @@ -146,7 +146,7 @@ The `NetworkID` field is a protection against "cross-chain" transaction replay a Transaction replay attacks are theoretically possible, but require specific conditions on the second network. All of the following must be true: - The transaction's sender is a funded account on the second network. -- The sender's `Sequence` number on the second network matches the transaction's `Sequence`, or the transaction uses a [Ticket](tickets.html) that's available on the second network. +- The sender's `Sequence` number on the second network matches the transaction's `Sequence`, or the transaction uses a [Ticket](../../../concepts/accounts/tickets.md) that's available on the second network. - Either the transaction does not have a `LastLedgerSequence` field, or it specifies a value that is higher than the current ledger index on the second ledger. - Mainnet generally has a higher ledger index than test networks or sidechains, so it is easier to replay Mainnet transactions on a sidechain or test network than the other way around, when transactions use `LastLedgerSequence` as intended. - Either the networks both have IDs of 1024 or less, both networks use the same ID, or the second network does not require the `NetworkID` field. @@ -154,7 +154,7 @@ Transaction replay attacks are theoretically possible, but require specific cond ## Signers Field -The `Signers` field contains a [multi-signature](multi-signing.html), which has signatures from up to 32 key pairs, that together should authorize the transaction. The `Signers` list is an array of objects, each with one field, `Signer`. The `Signer` field has the following nested fields: +The `Signers` field contains a [multi-signature](../../../concepts/accounts/multi-signing.md), which has signatures from up to 32 key pairs, that together should authorize the transaction. The `Signers` list is an array of objects, each with one field, `Signer`. The `Signer` field has the following nested fields: | Field | Type | [Internal Type][] | Description | |:----------------|:-------|:------------------|:--------------------------------| @@ -162,13 +162,8 @@ The `Signers` field contains a [multi-signature](multi-signing.html), which has | `TxnSignature` | String | Blob | A signature for this transaction, verifiable using the `SigningPubKey`. | | `SigningPubKey` | String | Blob | The public key used to create this signature. | -The `SigningPubKey` must be a key that is associated with the `Account` address. If the referenced `Account` is a funded account in the ledger, then the `SigningPubKey` can be that account's current Regular Key if one is set. It could also be that account's Master Key, unless the [`lsfDisableMaster`](accountroot.html#accountroot-flags) flag is enabled. If the referenced `Account` address is not a funded account in the ledger, then the `SigningPubKey` must be the master key associated with that address. +The `SigningPubKey` must be a key that is associated with the `Account` address. If the referenced `Account` is a funded account in the ledger, then the `SigningPubKey` can be that account's current Regular Key if one is set. It could also be that account's Master Key, unless the [`lsfDisableMaster`](../ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) flag is enabled. If the referenced `Account` address is not a funded account in the ledger, then the `SigningPubKey` must be the master key associated with that address. Because signature verification is a compute-intensive task, multi-signed transactions cost additional XRP to relay to the network. Each signature included in the multi-signature increases the [transaction cost][] required for the transaction. For example, if the current minimum transaction cost to relay a transaction to the network is `10000` drops, then a multi-signed transaction with 3 entries in the `Signers` array would need a `Fee` value of at least `40000` drops to relay. - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/index.md b/content/references/protocol/transactions/index.md index aba7375ae1..19a5135e8d 100644 --- a/content/references/protocol/transactions/index.md +++ b/content/references/protocol/transactions/index.md @@ -2,14 +2,14 @@ html: transaction-formats.html parent: protocol-reference.html blurb: Definitions for all the protocol's transaction types and their results. -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Transaction Reference -A _Transaction_ is the only way to cause changes in the XRP Ledger. Transactions' outcomes are only [final](finality-of-results.html) if signed, submitted, and accepted into a validated ledger version following the [consensus process](consensus.html). Some ledger rules also generate _[pseudo-transactions](pseudo-transaction-types.html)_, which aren't signed or submitted, but still must be accepted by consensus. Transactions that fail are also included in ledgers because they modify balances of XRP to pay for the anti-spam [transaction cost][]. +A _Transaction_ is the only way to cause changes in the XRP Ledger. Transactions' outcomes are only [final](../../../concepts/transactions/finality-of-results/index.md) if signed, submitted, and accepted into a validated ledger version following the [consensus process](../../../concepts/consensus-protocol/index.md). Some ledger rules also generate _[pseudo-transactions](pseudo-transaction-types/pseudo-transaction-types.md)_, which aren't signed or submitted, but still must be accepted by consensus. Transactions that fail are also included in ledgers because they modify balances of XRP to pay for the anti-spam [transaction cost][]. + +{% raw-partial file="/_snippets/common-links.md" /%} - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% child-pages /%} diff --git a/content/references/protocol/transactions/metadata.md b/content/references/protocol/transactions/metadata.md index 45437af526..ef59d6ec48 100644 --- a/content/references/protocol/transactions/metadata.md +++ b/content/references/protocol/transactions/metadata.md @@ -13,19 +13,17 @@ Transaction metadata is a section of data that gets added to a transaction after Some fields that may appear in transaction metadata include: -{% include '_snippets/tx-metadata-field-table.md' %} +{% partial file="/_snippets/tx-metadata-field-table.md" /%} ## Example Metadata The following JSON object shows the metadata for [a complex cross-currency payment](https://livenet.xrpl.org/transactions/8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B): -```json -{% include '_api-examples/metadata/cross-currency-payment.json' %} -``` +{% code-snippet file="/_api-examples/metadata/cross-currency-payment.json" language="json" /%} ## AffectedNodes -The `AffectedNodes` array contains a complete list of the [ledger entries](ledger-object-types.html) that this transaction modified in some way. Each item in this array is an object with one top-level field indicating what happened: +The `AffectedNodes` array contains a complete list of the [ledger entries](../ledger-data/ledger-entry-types/index.md) that this transaction modified in some way. Each item in this array is an object with one top-level field indicating what happened: - `CreatedNode` indicates that the transaction created a new ledger entry. - `DeletedNode` indicates that the transaction removed a ledger entry @@ -39,8 +37,8 @@ A `CreatedNode` object contains the following fields: | Field | Value | Description | |:------------------|:------------------|:-------------------------------------| -| `LedgerEntryType` | String | The [type of ledger entry](ledger-object-types.html) that was created. | -| `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](ledger-object-ids.html) in the ledger's [state tree](ledgers.html). **Note:** This is **not the same** as a [ledger index](basic-data-types.html#ledger-index), even though the field name is very similar. | +| `LedgerEntryType` | String | The [type of ledger entry](../ledger-data/ledger-entry-types/index.md) that was created. | +| `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](../ledger-data/common-fields.md) in the ledger's [state tree](../../../concepts/ledgers/index.md). **Note:** This is **not the same** as a [ledger index](../data-types/basic-data-types.md#ledger-index), even though the field name is very similar. | | `NewFields` | Object | The content fields of the newly-created ledger entry. Which fields are present depends on what type of ledger entry was created. | ### DeletedNode Fields @@ -49,8 +47,8 @@ A `DeletedNode` object contains the following fields: | Field | Value | Description | |:------------------|:------------------|:-------------------------------------| -| `LedgerEntryType` | String | The [type of ledger entry](ledger-object-types.html) that was deleted. | -| `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](ledger-object-ids.html) in the ledger's [state tree](ledgers.html). **Note:** This is **not the same** as a [ledger index](basic-data-types.html#ledger-index), even though the field name is very similar. | +| `LedgerEntryType` | String | The [type of ledger entry](../ledger-data/ledger-entry-types/index.md) that was deleted. | +| `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](../ledger-data/common-fields.md) in the ledger's [state tree](../../../concepts/ledgers/index.md). **Note:** This is **not the same** as a [ledger index](../data-types/basic-data-types.md#ledger-index), even though the field name is very similar. | | `FinalFields` | Object | The content fields of the ledger entry immediately before it was deleted. Which fields are present depends on what type of ledger entry was created. | ### ModifiedNode Fields @@ -59,8 +57,8 @@ A `ModifiedNode` object contains the following fields: | Field | Value | Description | |:--------------------|:--------------------------|:---------------------------| -| `LedgerEntryType` | String | The [type of ledger entry](ledger-object-types.html) that was modified. | -| `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](ledger-object-ids.html) in the ledger's [state tree](ledgers.html). **Note:** This is **not the same** as a [ledger index](basic-data-types.html#ledger-index), even though the field name is very similar. | +| `LedgerEntryType` | String | The [type of ledger entry](../ledger-data/ledger-entry-types/index.md) that was modified. | +| `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](../ledger-data/common-fields.md) in the ledger's [state tree](../../../concepts/ledgers/index.md). **Note:** This is **not the same** as a [ledger index](../data-types/basic-data-types.md#ledger-index), even though the field name is very similar. | | `FinalFields` | Object | The content fields of the ledger entry after applying any changes from this transaction. Which fields are present depends on what type of ledger entry was created. This omits the `PreviousTxnID` and `PreviousTxnLgrSeq` fields, even though most types of ledger entries have them. | | `PreviousFields` | Object | The previous values for all fields of the object that were changed as a result of this transaction. If the transaction _only added_ fields to the object, this field is an empty object. | | `PreviousTxnID` | String - [Hash][] | _(May be omitted)_ The [identifying hash][] of the previous transaction to modify this ledger entry. Omitted for ledger entry types that do not have a `PreviousTxnID` field. | @@ -74,13 +72,13 @@ Transactions (`tx` and `account_tx`) involving NFTs can contain the following fi | Field | Value | Description | |:--------------------|:--------------------------|:---------------------------| -| `nftoken_id` | String | Shows the `NFTokenID` for the `NFToken` that changed on the ledger as a result of the transaction. Only present if the transaction is `NFTokenMint` or `NFTokenAcceptOffer`. See [NFTokenID](nftoken.html#nftokenid). | +| `nftoken_id` | String | Shows the `NFTokenID` for the `NFToken` that changed on the ledger as a result of the transaction. Only present if the transaction is `NFTokenMint` or `NFTokenAcceptOffer`. See [NFTokenID](../data-types/nftoken.md#nftokenid). | | `nftoken_ids` | Array | Shows all the `NFTokenIDs` for the `NFTokens` that changed on the ledger as a result of the transaction. Only present if the transaction is `NFTokenCancelOffer`. | | `offer_id` | String | Shows the `OfferID`of a new `NFTokenOffer` in a response from a `NFTokenCreateOffer` transaction. | ## delivered_amount -The `Amount` of a [Payment transaction][] indicates the amount to deliver to the `Destination`, so if the transaction was successful, then the destination received that much -- **except if the transaction was a [partial payment](partial-payments.html)**. (In that case, any positive amount up to `Amount` might have arrived.) Rather than choosing whether or not to trust the `Amount` field, you should use the `delivered_amount` field of the metadata to see how much actually reached its destination. +The `Amount` of a [Payment transaction][] indicates the amount to deliver to the `Destination`, so if the transaction was successful, then the destination received that much -- **except if the transaction was a [partial payment](../../../concepts/payment-types/partial-payments.md)**. (In that case, any positive amount up to `Amount` might have arrived.) Rather than choosing whether or not to trust the `Amount` field, you should use the `delivered_amount` field of the metadata to see how much actually reached its destination. The `rippled` server provides a `delivered_amount` field in JSON transaction metadata for all successful Payment transactions. This field is formatted like a normal currency amount. However, the delivered amount is not available for transactions that meet both of the following criteria: @@ -89,14 +87,11 @@ The `rippled` server provides a `delivered_amount` field in JSON transaction met If both conditions are true, then `delivered_amount` contains the string value `unavailable` instead of an actual amount. If this happens, you can only figure out the actual delivered amount by reading the `AffectedNodes` in the transaction's metadata. -**Note:** The `delivered_amount` field is generated on-demand for the request, and is not included in the binary format for transaction metadata, nor is it used when calculating the [hash](basic-data-types.html#hashes) of the transaction metadata. In contrast, the `DeliveredAmount` field _is_ included in the binary format for partial payment transactions after 2014-01-20. +**Note:** The `delivered_amount` field is generated on-demand for the request, and is not included in the binary format for transaction metadata, nor is it used when calculating the [hash](../data-types/basic-data-types.md#hashes) of the transaction metadata. In contrast, the `DeliveredAmount` field _is_ included in the binary format for partial payment transactions after 2014-01-20. -See also: [Partial Payments](partial-payments.html) +See also: [Partial Payments](../../../concepts/payment-types/partial-payments.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/pseudo-transaction-types/enableamendment.md b/content/references/protocol/transactions/pseudo-transaction-types/enableamendment.md index d699826991..5474a31f42 100644 --- a/content/references/protocol/transactions/pseudo-transaction-types/enableamendment.md +++ b/content/references/protocol/transactions/pseudo-transaction-types/enableamendment.md @@ -24,7 +24,7 @@ A server only enables amendments when these conditions are met: --> -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -39,12 +39,12 @@ A server only enables amendments when these conditions are met: ``` -{% include '_snippets/pseudo-tx-fields-intro.md' %} +{% partial file="/_snippets/pseudo-tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-----------------|:----------|:------------------|:--------------------------| -| `Amendment` | String | Hash256 | A unique identifier for the amendment. This is not intended to be a human-readable name. See [Amendments](amendments.html) for a list of known amendments. | +| `Amendment` | String | Hash256 | A unique identifier for the amendment. This is not intended to be a human-readable name. See [Amendments](../../../../concepts/networks-and-servers/amendments.md) for a list of known amendments. | | `LedgerSequence` | Number | UInt32 | The [ledger index][] where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | ## EnableAmendment Flags @@ -58,7 +58,4 @@ A `Flags` value of `0` (no flags) or an omitted `Flags` field indicates that the | `tfGotMajority` | `0x00010000` | 65536 | Support for this amendment increased to at least 80% of trusted validators starting with this ledger version. | | `tfLostMajority` | `0x00020000` | 131072 | Support for this amendment decreased to less than 80% of trusted validators starting with this ledger version. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md b/content/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md index 51013248ca..d3a2d13e92 100644 --- a/content/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md +++ b/content/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md @@ -2,13 +2,14 @@ html: pseudo-transaction-types.html parent: transaction-formats.html blurb: Formats of pseudo-transactions that validators sometimes apply to the XRP Ledger. -template: pagetype-category.html.jinja +metadata: + indexPage: true labels: - Blockchain --- # Pseudo-Transactions -Pseudo-transactions are never submitted by users, nor [propagated through the network](peer-protocol.html). Instead, a server may choose to inject pseudo-transactions in a proposed ledger directly according to specific protocol rules. If enough servers propose the exact same pseudo-transaction, the [consensus process](consensus.html) approves it, and the pseudo-transaction is included in that ledger's transaction data. +Pseudo-transactions are never submitted by users, nor [propagated through the network](../../../../concepts/networks-and-servers/peer-protocol.md). Instead, a server may choose to inject pseudo-transactions in a proposed ledger directly according to specific protocol rules. If enough servers propose the exact same pseudo-transaction, the [consensus process](../../../../concepts/consensus-protocol/index.md) approves it, and the pseudo-transaction is included in that ledger's transaction data. ## Special Values for Common Fields @@ -16,7 +17,7 @@ Some of the required [common fields][] for normal transactions do not make sense | Field | JSON Type | [Internal Type][] | Value | |:----------------|:----------|:------------------|:---------------------------| -| `Account` | String | AccountID | [ACCOUNT_ZERO](addresses.html#special-addresses) | +| `Account` | String | AccountID | [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses) | | `Fee` | String | Amount | `0` | | `Sequence` | Number | UInt32 | `0` | | `SigningPubKey` | String | Blob | `""` (Empty string) | @@ -32,7 +33,7 @@ Pseudo-transactions use the following common fields as normal: | `TransactionType` | String | UInt16 | _(Required)_ The type of transaction. | | `Flags` | Number | UInt32 | _(Optional)_ A set of bit-flags for this transaction. The meaning of specific flags varies based on the transaction type. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} + + +{% child-pages /%} diff --git a/content/references/protocol/transactions/pseudo-transaction-types/setfee.md b/content/references/protocol/transactions/pseudo-transaction-types/setfee.md index ad979346c5..1cdba8367b 100644 --- a/content/references/protocol/transactions/pseudo-transaction-types/setfee.md +++ b/content/references/protocol/transactions/pseudo-transaction-types/setfee.md @@ -7,11 +7,11 @@ labels: --- # SetFee -A `SetFee` [pseudo-transaction](pseudo-transaction-types.html) marks a change in [transaction cost](transaction-cost.html) or [reserve requirements](reserves.html) as a result of [Fee Voting](fee-voting.html). +A `SetFee` [pseudo-transaction](pseudo-transaction-types.md) marks a change in [transaction cost](../../../../concepts/transactions/transaction-cost.md) or [reserve requirements](../../../../concepts/accounts/reserves.md) as a result of [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). **Note:** You cannot send a pseudo-transaction, but you may find one when processing ledgers. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -30,12 +30,12 @@ A `SetFee` [pseudo-transaction](pseudo-transaction-types.html) marks a change in } ``` -{% include '_snippets/pseudo-tx-fields-intro.md' %} +{% partial file="/_snippets/pseudo-tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:--------------------|:-----------------|:------------------|:----------------| -| `BaseFee` | String | UInt64 | The charge, in drops of XRP, for the reference transaction, as hex. (This is the [transaction cost](transaction-cost.html) before scaling for load.) | +| `BaseFee` | String | UInt64 | The charge, in drops of XRP, for the reference transaction, as hex. (This is the [transaction cost](../../../../concepts/transactions/transaction-cost.md) before scaling for load.) | | `ReferenceFeeUnits` | Unsigned Integer | UInt32 | The cost, in fee units, of the reference transaction | | `ReserveBase` | Unsigned Integer | UInt32 | The base reserve, in drops | | `ReserveIncrement` | Unsigned Integer | UInt32 | The incremental reserve, in drops | @@ -46,15 +46,12 @@ If the _[XRPFees amendment][]_ is enabled, `SetFee` pseudo-transactions use thes | Field | JSON Type | [Internal Type][] | Description | |:------------------------|:----------|:------------------|:----------------| -| `BaseFeeDrops` | String | Amount | The charge, in drops of XRP, for the reference transaction. (This is the [transaction cost](transaction-cost.html) before scaling for load.) | +| `BaseFeeDrops` | String | Amount | The charge, in drops of XRP, for the reference transaction. (This is the [transaction cost](../../../../concepts/transactions/transaction-cost.md) before scaling for load.) | | `ReserveBaseDrops` | String | Amount | The base reserve, in drops | | `ReserveIncrementDrops` | String | Amount | The incremental reserve, in drops | | `LedgerSequence` | Number | UInt32 | _(Omitted for some historical `SetFee` pseudo-transactions)_ The index of the ledger version where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | -{% include '_snippets/setfee_uniqueness_note.md' %} +{% partial file="/_snippets/setfee_uniqueness_note.md" /%} - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/pseudo-transaction-types/unlmodify.md b/content/references/protocol/transactions/pseudo-transaction-types/unlmodify.md index 71eefbd6db..4d91b2a259 100644 --- a/content/references/protocol/transactions/pseudo-transaction-types/unlmodify.md +++ b/content/references/protocol/transactions/pseudo-transaction-types/unlmodify.md @@ -9,11 +9,11 @@ labels: _(Added by the [NegativeUNL amendment][].)_ -A `UNLModify` [pseudo-transaction](pseudo-transaction-types.html) marks a change to the [Negative UNL](negative-unl.html), indicating that a trusted validator has gone offline or come back online. +A `UNLModify` [pseudo-transaction](pseudo-transaction-types.md) marks a change to the [Negative UNL](../../../../concepts/consensus-protocol/negative-unl.md), indicating that a trusted validator has gone offline or come back online. **Note:** You cannot send a pseudo-transaction, but you may find one when processing ledgers. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -28,7 +28,7 @@ A `UNLModify` [pseudo-transaction](pseudo-transaction-types.html) marks a change } ``` -{% include '_snippets/pseudo-tx-fields-intro.md' %} +{% partial file="/_snippets/pseudo-tx-fields-intro.md" /%} | Name | JSON Type | [Internal Type][] | Description | @@ -38,8 +38,4 @@ A `UNLModify` [pseudo-transaction](pseudo-transaction-types.html) marks a change | `UNLModifyDisabling` | Number | UInt8 | If `1`, this change represents adding a validator to the Negative UNL. If `0`, this change represents removing a validator from the Negative UNL. (No other values are allowed.) | | `UNLModifyValidator` | String | Blob | The validator to add or remove, as identified by its master public key. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/transaction-results/tec-codes.md b/content/references/protocol/transactions/transaction-results/tec-codes.md index 3d22fe70ff..c3b35941d5 100644 --- a/content/references/protocol/transactions/transaction-results/tec-codes.md +++ b/content/references/protocol/transactions/transaction-results/tec-codes.md @@ -7,69 +7,66 @@ labels: --- # tec Codes -These codes indicate that the transaction failed, but it was applied to a ledger to apply the [transaction cost](transaction-cost.html). They have numerical values in the range 100 to 199. It is recommended to use the text code, not the numeric value. +These codes indicate that the transaction failed, but it was applied to a ledger to apply the [transaction cost](../../../../concepts/transactions/transaction-cost.md). They have numerical values in the range 100 to 199. It is recommended to use the text code, not the numeric value. -Transactions with `tec` codes destroy the XRP paid as a [transaction cost](transaction-cost.html), and consume a [sequence number](basic-data-types.html#account-sequence). For the most part, the transactions take no other action, but there are some exceptions. For example, a transaction that results in `tecOVERSIZE` still cleans up some [unfunded offers](offers.html#lifecycle-of-an-offer). Always look at the [transaction metadata](transaction-metadata.html) to see precisely what a transaction did. +Transactions with `tec` codes destroy the XRP paid as a [transaction cost](../../../../concepts/transactions/transaction-cost.md), and consume a [sequence number](../../data-types/basic-data-types.md#account-sequence). For the most part, the transactions take no other action, but there are some exceptions. For example, a transaction that results in `tecOVERSIZE` still cleans up some [unfunded offers](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer). Always look at the [transaction metadata](../metadata.md) to see precisely what a transaction did. -**Caution:** A transaction that provisionally failed with a `tec` code may still succeed or fail with a different code after being reapplied. The result is final when it appears in a validated ledger version. For more information, see [Finality of Results](finality-of-results.html) and [Reliable Transaction Submission](reliable-transaction-submission.html). +**Caution:** A transaction that provisionally failed with a `tec` code may still succeed or fail with a different code after being reapplied. The result is final when it appears in a validated ledger version. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md). | Code | Value | Explanation | |:---------------------------|:------|:----------------------------------------| -| `tecAMM_ACCOUNT` | 168 | The transaction failed because the operation is not allowed on Automated Market Maker (AMM) accounts. _(Requires the [AMM amendment][] :not_enabled:)_ | -| `tecAMM_UNFUNDED` | 162 | The [AMMCreate transaction][] failed because the sender does not have enough of the specified assets to fund it. _(Requires the [AMM amendment][] :not_enabled:)_ | -| `tecAMM_BALANCE` | 163 | The [AMMDeposit][] or [AMMWithdraw][] transaction failed because either the AMM or the user does not hold enough of one of the specified assets. (For example, you tried to withdraw more than the AMM holds.) _(Requires the [AMM amendment][] :not_enabled:)_ | -| `tecAMM_EMPTY` | 166 | The AMM-related transaction failed because the AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. _(Requires the [AMM amendment][] :not_enabled:)_ | -| `tecAMM_FAILED` | 164 | The AMM-related transaction failed. For [AMMDeposit][] or [AMMWithdraw][] this could be because the sender does not have enough of the specified assets, or the transaction requested an effective price that isn't possible with the available amounts. For [AMMBid][] this could be because the account does not have enough to win the bid or needs more than their specified maximum bid. For [AMMVote][], this could be because there are already too many votes from other accounts that hold more of this AMM's LP Tokens. _(Requires the [AMM amendment][] :not_enabled:)_ | -| `tecAMM_INVALID_TOKENS` | 165 | The AMM-related transaction failed due to insufficient LP Tokens or problems with rounding; for example, depositing a very small amount of assets could fail if the amount of LP Tokens to be returned rounds down to zero. _(Requires the [AMM amendment][] :not_enabled:)_ | -| `tecAMM_NOT_EMPTY` | 167 | The transaction was meant to operate on an AMM with empty asset pools, but the specified AMM currently holds assets. _(Requires the [AMM amendment][] :not_enabled:)_ | -| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 157 | The transaction tried to accept an offer that was placed by the same account to buy or sell a [non-fungible token](non-fungible-tokens.html). _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | +| `tecAMM_ACCOUNT` | 168 | The transaction failed because the operation is not allowed on Automated Market Maker (AMM) accounts. _(Requires the [AMM amendment][] {% not-enabled /%})_ | +| `tecAMM_UNFUNDED` | 162 | The [AMMCreate transaction][] failed because the sender does not have enough of the specified assets to fund it. _(Requires the [AMM amendment][] {% not-enabled /%})_ | +| `tecAMM_BALANCE` | 163 | The [AMMDeposit][] or [AMMWithdraw][] transaction failed because either the AMM or the user does not hold enough of one of the specified assets. (For example, you tried to withdraw more than the AMM holds.) _(Requires the [AMM amendment][] {% not-enabled /%})_ | +| `tecAMM_EMPTY` | 166 | The AMM-related transaction failed because the AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. _(Requires the [AMM amendment][] {% not-enabled /%})_ | +| `tecAMM_FAILED` | 164 | The AMM-related transaction failed. For [AMMDeposit][] or [AMMWithdraw][] this could be because the sender does not have enough of the specified assets, or the transaction requested an effective price that isn't possible with the available amounts. For [AMMBid][] this could be because the account does not have enough to win the bid or needs more than their specified maximum bid. For [AMMVote][], this could be because there are already too many votes from other accounts that hold more of this AMM's LP Tokens. _(Requires the [AMM amendment][] {% not-enabled /%})_ | +| `tecAMM_INVALID_TOKENS` | 165 | The AMM-related transaction failed due to insufficient LP Tokens or problems with rounding; for example, depositing a very small amount of assets could fail if the amount of LP Tokens to be returned rounds down to zero. _(Requires the [AMM amendment][] {% not-enabled /%})_ | +| `tecAMM_NOT_EMPTY` | 167 | The transaction was meant to operate on an AMM with empty asset pools, but the specified AMM currently holds assets. _(Requires the [AMM amendment][] {% not-enabled /%})_ | +| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 157 | The transaction tried to accept an offer that was placed by the same account to buy or sell a [non-fungible token](../../../../concepts/tokens/nfts/index.md). _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | | `tecCLAIM` | 100 | Unspecified failure, with transaction cost destroyed. | | `tecCRYPTOCONDITION_ERROR` | 146 | This [EscrowCreate][] or [EscrowFinish][] transaction contained a malformed or mismatched crypto-condition. | | `tecDIR_FULL` | 121 | The transaction tried to add an object (such as a trust line, Check, Escrow, or Payment Channel) to an account's owner directory, but that account cannot own any more objects in the ledger. | | `tecDUPLICATE` | 149 | The transaction tried to create an object (such as a [DepositPreauth][] authorization) that already exists. | -| `tecDST_TAG_NEEDED` | 143 | The [Payment transaction][] omitted a [destination tag](source-and-destination-tags.html), but the destination account has the `lsfRequireDestTag` flag enabled. | +| `tecDST_TAG_NEEDED` | 143 | The [Payment transaction][] omitted a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md), but the destination account has the `lsfRequireDestTag` flag enabled. | | `tecEXPIRED` | 148 | The transaction tried to create an object (such as an Offer or a Check) whose provided Expiration time has already passed. | | `tecFAILED_PROCESSING` | 105 | An unspecified error occurred when processing the transaction. | -| `tecFROZEN` | 137 | The [OfferCreate transaction][] failed because one or both of the assets involved are subject to a [global freeze](freezes.html). | -| `tecHAS_OBLIGATIONS` | 151 | The [AccountDelete transaction][] failed because the account to be deleted owns objects that cannot be deleted. See [Deleting Accounts](deleting-accounts.html) for details. | -| `tecINSUF_RESERVE_LINE` | 122 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](reserves.html)) This error occurs when the counterparty already has a trust line in a non-default state to the sending account for the same currency. (See `tecNO_LINE_INSUF_RESERVE` for the other case.) | -| `tecINSUF_RESERVE_OFFER` | 123 | The transaction failed because the sending account does not have enough XRP to create a new Offer. (See: [Reserves](reserves.html)) | -| `tecINSUFF_FEE` | 136 | The transaction failed because the sending account does not have enough XRP to pay the [transaction cost](transaction-cost.html) that it specified. (In this case, the transaction processing destroys all of the sender's XRP even though that amount is lower than the specified transaction cost.) This result only occurs if the account's balance decreases _after_ this transaction has been distributed to enough of the network to be included in a consensus set. Otherwise, the transaction fails with [`terINSUF_FEE_B`](ter-codes.html) before being distributed. | +| `tecFROZEN` | 137 | The [OfferCreate transaction][] failed because one or both of the assets involved are subject to a [global freeze](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `tecHAS_OBLIGATIONS` | 151 | The [AccountDelete transaction][] failed because the account to be deleted owns objects that cannot be deleted. See [Deleting Accounts](../../../../concepts/accounts/deleting-accounts.md) for details. | +| `tecINSUF_RESERVE_LINE` | 122 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](../../../../concepts/accounts/reserves.md)) This error occurs when the counterparty already has a trust line in a non-default state to the sending account for the same currency. (See `tecNO_LINE_INSUF_RESERVE` for the other case.) | +| `tecINSUF_RESERVE_OFFER` | 123 | The transaction failed because the sending account does not have enough XRP to create a new Offer. (See: [Reserves](../../../../concepts/accounts/reserves.md)) | +| `tecINSUFF_FEE` | 136 | The transaction failed because the sending account does not have enough XRP to pay the [transaction cost](../../../../concepts/transactions/transaction-cost.md) that it specified. (In this case, the transaction processing destroys all of the sender's XRP even though that amount is lower than the specified transaction cost.) This result only occurs if the account's balance decreases _after_ this transaction has been distributed to enough of the network to be included in a consensus set. Otherwise, the transaction fails with [`terINSUF_FEE_B`](ter-codes.md) before being distributed. | | `tecINSUFFICIENT_FUNDS` | 158 | One of the accounts involved does not hold enough of a necessary asset. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | | `tecINSUFFICIENT_PAYMENT` | 161 | The amount specified is not enough to pay all fees involved in the transaction. For example, when trading a non-fungible token, the buy amount may not be enough to pay both the broker fee and the sell amount. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | -| `tecINSUFFICIENT_RESERVE` | 141 | The transaction would increase the [reserve requirement](reserves.html) higher than the sending account's balance. [SignerListSet][], [PaymentChannelCreate][], [PaymentChannelFund][], and [EscrowCreate][] can return this error code. See [Signer Lists and Reserves](signerlist.html#signer-lists-and-reserves) for more information. | +| `tecINSUFFICIENT_RESERVE` | 141 | The transaction would increase the [reserve requirement](../../../../concepts/accounts/reserves.md) higher than the sending account's balance. [SignerListSet][], [PaymentChannelCreate][], [PaymentChannelFund][], and [EscrowCreate][] can return this error code. See [Signer Lists and Reserves](../../ledger-data/ledger-entry-types/signerlist.md#signer-lists-and-reserves) for more information. | | `tecINTERNAL` | 144 | Unspecified internal error, with transaction cost applied. This error code should not normally be returned. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). | | `tecINVARIANT_FAILED` | 147 | An invariant check failed when trying to execute this transaction. Added by the [EnforceInvariants amendment][]. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). | | `tecKILLED` | 150 | The [OfferCreate transaction][] specified the `tfFillOrKill` flag and could not be filled, so it was killed. _(Added by the [fix1578 amendment][].)_ | | `tecMAX_SEQUENCE_REACHED` | 153 | A sequence number field is already at its maximum. This includes the `MintedNFTokens` field. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | -| `tecNEED_MASTER_KEY` | 142 | This transaction tried to cause changes that require the master key, such as [disabling the master key or giving up the ability to freeze balances](accountset.html#accountset-flags). | +| `tecNEED_MASTER_KEY` | 142 | This transaction tried to cause changes that require the master key, such as [disabling the master key or giving up the ability to freeze balances](../types/accountset.md#accountset-flags). | | `tecNFTOKEN_BUY_SELL_MISMATCH` | 155 | The [NFTokenAcceptOffer transaction][] attempted to match incompatible offers to buy and sell a non-fungible token. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | | `tecNFTOKEN_OFFER_TYPE_MISMATCH` | 156 | One or more of the offers specified in the transaction was not the right type of offer. (For example, a buy offer was specified in the `NFTokenSellOffer` field.) _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | -| `tecNO_ALTERNATIVE_KEY` | 130 | The transaction tried to remove the only available method of [authorizing transactions](transactions.html#authorizing-transactions). This could be a [SetRegularKey transaction][] to remove the regular key, a [SignerListSet transaction][] to delete a SignerList, or an [AccountSet transaction][] to disable the master key. (Prior to `rippled` 0.30.0, this was called `tecMASTER_DISABLED`.) | +| `tecNO_ALTERNATIVE_KEY` | 130 | The transaction tried to remove the only available method of [authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). This could be a [SetRegularKey transaction][] to remove the regular key, a [SignerListSet transaction][] to delete a SignerList, or an [AccountSet transaction][] to disable the master key. (Prior to `rippled` 0.30.0, this was called `tecMASTER_DISABLED`.) | | `tecNO_AUTH` | 134 | The transaction failed because it needs to add a balance on a trust line to an account with the `lsfRequireAuth` flag enabled, and that trust line has not been authorized. If the trust line does not exist at all, `tecNO_LINE` occurs instead. | | `tecNO_DST` | 124 | The account on the receiving end of the transaction does not exist. This includes Payment and TrustSet transaction types. (It could be created if it received enough XRP.) | | `tecNO_DST_INSUF_XRP` | 125 | The account on the receiving end of the transaction does not exist, and the transaction is not sending enough XRP to create it. | -| `tecNO_ENTRY` | 140 | The transaction tried to modify a [ledger object](ledger-object-types.html), such as a [Check](checks.html), [Payment Channel](payment-channels.html), or [Deposit Preauthorization](depositpreauth-object.html), but the specified object does not exist. It may have already been deleted by a previous transaction or the transaction may have an incorrect value in an ID field such as `CheckID`, `Channel`, `Unauthorize`. | +| `tecNO_ENTRY` | 140 | The transaction tried to modify a [ledger object](../../ledger-data/ledger-entry-types/index.md), such as a [Check](../../../../concepts/payment-types/checks.md), [Payment Channel](../../../../concepts/payment-types/payment-channels.md), or [Deposit Preauthorization](../../ledger-data/ledger-entry-types/depositpreauth.md), but the specified object does not exist. It may have already been deleted by a previous transaction or the transaction may have an incorrect value in an ID field such as `CheckID`, `Channel`, `Unauthorize`. | | `tecNO_ISSUER` | 133 | The account specified in the `issuer` field of a currency amount does not exist. | | `tecNO_LINE` | 135 | The `TakerPays` field of the [OfferCreate transaction][] specifies an asset whose issuer has `lsfRequireAuth` enabled, and the account making the offer does not have a trust line for that asset. (Normally, making an offer implicitly creates a trust line if necessary, but in this case it does not bother because you cannot hold the asset without authorization.) If the trust line exists, but is not authorized, `tecNO_AUTH` occurs instead. | -| `tecNO_LINE_INSUF_RESERVE` | 126 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](reserves.html)) This error occurs when the counterparty does not have a trust line to this account for the same currency. (See `tecINSUF_RESERVE_LINE` for the other case.) | +| `tecNO_LINE_INSUF_RESERVE` | 126 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](../../../../concepts/accounts/reserves.md)) This error occurs when the counterparty does not have a trust line to this account for the same currency. (See `tecINSUF_RESERVE_LINE` for the other case.) | | `tecNO_LINE_REDUNDANT` | 127 | The transaction failed because it tried to set a trust line to its default state, but the trust line did not exist. | | `tecNO_PERMISSION` | 139 | The sender does not have permission to do this operation. For example, the [EscrowFinish transaction][] tried to release a held payment before its `FinishAfter` time, someone tried to use [PaymentChannelFund][] on a channel the sender does not own, or a [Payment][] tried to deliver funds to an account with the "DepositAuth" flag enabled. | -| `tecNO_REGULAR_KEY` | 131 | The [AccountSet transaction][] tried to disable the master key, but the account does not have another way to [authorize transactions](transactions.html#authorizing-transactions). If [multi-signing](multi-signing.html) is enabled, this code is deprecated and `tecNO_ALTERNATIVE_KEY` is used instead. | +| `tecNO_REGULAR_KEY` | 131 | The [AccountSet transaction][] tried to disable the master key, but the account does not have another way to [authorize transactions](../../../../concepts/transactions/index.md#authorizing-transactions). If [multi-signing](../../../../concepts/accounts/multi-signing.md) is enabled, this code is deprecated and `tecNO_ALTERNATIVE_KEY` is used instead. | | `tecNO_SUITABLE_NFTOKEN_PAGE` | 154 | The transaction tried to mint or acquire a non-fungible token but the account receiving the `NFToken` does not have a directory page that can hold it. This situation is rare. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | | `tecNO_TARGET` | 138 | The transaction referenced an Escrow or PayChannel ledger object that doesn't exist, either because it never existed or it has already been deleted. (For example, another [EscrowFinish transaction][] has already executed the held payment.) Alternatively, the destination account has `asfDisallowXRP` set so it cannot be the destination of this [PaymentChannelCreate][] or [EscrowCreate][] transaction. | | `tecOBJECT_NOT_FOUND` | 160 | One of the objects specified by this transaction did not exist in the ledger. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | -| `tecOVERSIZE` | 145 | This transaction could not be processed, because the server created an excessively large amount of [metadata](transaction-metadata.html) when it tried to apply the transaction. | -| `tecOWNERS` | 132 | The transaction cannot succeed because the sender already owns objects in the ledger. For example, an account cannot enable the [`lsfRequireAuth`](accountset.html#accountset-flags) flag if it has any trust lines or available offers. | -| `tecPATH_DRY` | 128 | The transaction failed because the provided [paths](paths.html) did not have enough liquidity to send anything at all. This could mean that the source and destination accounts are not linked by [trust lines](trust-lines-and-issuing.html). | -| `tecPATH_PARTIAL` | 101 | The transaction failed because the provided [paths](paths.html) did not have enough liquidity to send the full amount. | +| `tecOVERSIZE` | 145 | This transaction could not be processed, because the server created an excessively large amount of [metadata](../metadata.md) when it tried to apply the transaction. | +| `tecOWNERS` | 132 | The transaction cannot succeed because the sender already owns objects in the ledger. For example, an account cannot enable the [`lsfRequireAuth`](../types/accountset.md#accountset-flags) flag if it has any trust lines or available offers. | +| `tecPATH_DRY` | 128 | The transaction failed because the provided [paths](../../../../concepts/tokens/fungible-tokens/paths.md) did not have enough liquidity to send anything at all. This could mean that the source and destination accounts are not linked by [trust lines](../../../../concepts/tokens/fungible-tokens/index.md). | +| `tecPATH_PARTIAL` | 101 | The transaction failed because the provided [paths](../../../../concepts/tokens/fungible-tokens/paths.md) did not have enough liquidity to send the full amount. | | `tecTOO_SOON` | 152 | The [AccountDelete transaction][] failed because the account to be deleted had a `Sequence` number that is too high. The current ledger index must be at least 256 higher than the account's sequence number. | -| `tecUNFUNDED` | 129 | The transaction failed because the account does not hold enough XRP to pay the amount in the transaction _and_ satisfy the additional [reserve](reserves.html) necessary to execute this transaction. | +| `tecUNFUNDED` | 129 | The transaction failed because the account does not hold enough XRP to pay the amount in the transaction _and_ satisfy the additional [reserve](../../../../concepts/accounts/reserves.md) necessary to execute this transaction. | | `tecUNFUNDED_ADD` | 102 | **DEPRECATED.** | -| `tecUNFUNDED_PAYMENT` | 104 | The transaction failed because the sending account is trying to send more XRP than it holds, not counting the [reserve](reserves.html). | +| `tecUNFUNDED_PAYMENT` | 104 | The transaction failed because the sending account is trying to send more XRP than it holds, not counting the [reserve](../../../../concepts/accounts/reserves.md). | | `tecUNFUNDED_OFFER` | 103 | The [OfferCreate transaction][] failed because the account creating the offer does not have any of the `TakerGets` currency. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/transaction-results/tef-codes.md b/content/references/protocol/transactions/transaction-results/tef-codes.md index 1ff7eb84eb..23fa91384f 100644 --- a/content/references/protocol/transactions/transaction-results/tef-codes.md +++ b/content/references/protocol/transactions/transaction-results/tef-codes.md @@ -10,33 +10,30 @@ labels: These codes indicate that the transaction failed and was not included in a ledger, but the transaction could have succeeded in some theoretical ledger. Typically this means that the transaction can no longer succeed in any future ledger. They have numerical values in the range -199 to -100. The exact code for any given error is subject to change, so don't rely on it. -**Caution:** Transactions with `tef` codes are not applied to ledgers and cannot cause any changes to the XRP Ledger state. However, a transaction that provisionally failed may still succeed or fail with a different code after being reapplied. For more information, see [Finality of Results](finality-of-results.html) and [Reliable Transaction Submission](reliable-transaction-submission.html). +**Caution:** Transactions with `tef` codes are not applied to ledgers and cannot cause any changes to the XRP Ledger state. However, a transaction that provisionally failed may still succeed or fail with a different code after being reapplied. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md). | Code | Explanation | |:-----------------------|:----------------------------------------------------| | `tefALREADY` | The same exact transaction has already been applied. | | `tefBAD_ADD_AUTH` | **DEPRECATED.** | -| `tefBAD_AUTH` | The key used to sign this account is not authorized to modify this account. (It could be authorized if the account had the same key set as the [Regular Key](cryptographic-keys.html).) | +| `tefBAD_AUTH` | The key used to sign this account is not authorized to modify this account. (It could be authorized if the account had the same key set as the [Regular Key](../../../../concepts/accounts/cryptographic-keys.md).) | | `tefBAD_AUTH_MASTER` | The single signature provided to authorize this transaction does not match the master key, but no regular key is associated with this address. | | `tefBAD_LEDGER` | While processing the transaction, the ledger was discovered in an unexpected state. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | -| `tefBAD_QUORUM` | The transaction was [multi-signed](multi-signing.html), but the total weights of all included signatures did not meet the quorum. | -| `tefBAD_SIGNATURE` | The transaction was [multi-signed](multi-signing.html), but contained a signature for an address not part of a SignerList associated with the sending account. | +| `tefBAD_QUORUM` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but the total weights of all included signatures did not meet the quorum. | +| `tefBAD_SIGNATURE` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but contained a signature for an address not part of a SignerList associated with the sending account. | | `tefCREATED` | **DEPRECATED.** | | `tefEXCEPTION` | While processing the transaction, the server entered an unexpected state. This may be caused by unexpected inputs, for example if the binary data for the transaction is grossly malformed. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | | `tefFAILURE` | Unspecified failure in applying the transaction. | | `tefINTERNAL` | When trying to apply the transaction, the server entered an unexpected state. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | -| `tefINVARIANT_FAILED` | An invariant check failed when trying to claim the [transaction cost](transaction-cost.html). Added by the [EnforceInvariants amendment][]. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). | +| `tefINVARIANT_FAILED` | An invariant check failed when trying to claim the [transaction cost](../../../../concepts/transactions/transaction-cost.md). Added by the [EnforceInvariants amendment][]. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). | | `tefMASTER_DISABLED` | The transaction was signed with the account's master key, but the account has the `lsfDisableMaster` field set. | -| `tefMAX_LEDGER` | The transaction included a [`LastLedgerSequence`](reliable-transaction-submission.html#lastledgersequence) parameter, but the current ledger's sequence number is already higher than the specified value. | -| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The transaction attempted to send a [non-fungible token](non-fungible-tokens.html) to another account, but the `NFToken` has the `lsfTransferable` flag disabled and the transfer would not be to or from the issuer. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | +| `tefMAX_LEDGER` | The transaction included a [`LastLedgerSequence`](../../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence) parameter, but the current ledger's sequence number is already higher than the specified value. | +| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The transaction attempted to send a [non-fungible token](../../../../concepts/tokens/nfts/index.md) to another account, but the `NFToken` has the `lsfTransferable` flag disabled and the transfer would not be to or from the issuer. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | | `tefNO_AUTH_REQUIRED` | The [TrustSet transaction][] tried to mark a trust line as authorized, but the `lsfRequireAuth` flag is not enabled for the corresponding account, so authorization is not necessary. | -| `tefNO_TICKET` | The transaction attempted to use a [Ticket](tickets.html), but the specified `TicketSequence` number does not exist in the ledger, and cannot be created in the future because it is earlier than the sender's current sequence number. | -| `tefNOT_MULTI_SIGNING` | The transaction was [multi-signed](multi-signing.html), but the sending account has no SignerList defined. | +| `tefNO_TICKET` | The transaction attempted to use a [Ticket](../../../../concepts/accounts/tickets.md), but the specified `TicketSequence` number does not exist in the ledger, and cannot be created in the future because it is earlier than the sender's current sequence number. | +| `tefNOT_MULTI_SIGNING` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but the sending account has no SignerList defined. | | `tefPAST_SEQ` | The sequence number of the transaction is lower than the current sequence number of the account sending the transaction. | | `tefTOO_BIG` | The transaction would affect too many objects in the ledger. For example, this was an [AccountDelete transaction][] but the account to be deleted owns over 1000 objects in the ledger. | | `tefWRONG_PRIOR` | The transaction contained an `AccountTxnID` field (or the deprecated `PreviousTxnID` field), but the transaction specified there does not match the account's previous transaction. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/transaction-results/tel-codes.md b/content/references/protocol/transactions/transaction-results/tel-codes.md index 701f18bb09..cec4d5aa5a 100644 --- a/content/references/protocol/transactions/transaction-results/tel-codes.md +++ b/content/references/protocol/transactions/transaction-results/tel-codes.md @@ -9,28 +9,25 @@ labels: These codes indicate an error in the local server processing the transaction; it is possible that another server with a different configuration or load level could process the transaction successfully. They have numerical values in the range -399 to -300. The exact code for any given error is subject to change, so don't rely on it. -**Caution:** Transactions with `tel` codes are not applied to ledgers and cannot cause any changes to the XRP Ledger state. However, these transactions may be automatically cached and retried later. Transactions that provisionally failed may still succeed or fail with a different code after being reapplied. For more information, see [Finality of Results](finality-of-results.html) and [Reliable Transaction Submission](reliable-transaction-submission.html). +**Caution:** Transactions with `tel` codes are not applied to ledgers and cannot cause any changes to the XRP Ledger state. However, these transactions may be automatically cached and retried later. Transactions that provisionally failed may still succeed or fail with a different code after being reapplied. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md). | Code | Explanation | |:----------------|:------------| | `telBAD_DOMAIN` | The transaction specified a domain value (for example, the `Domain` field of an [AccountSet transaction][]) that cannot be used, probably because it is too long to store in the ledger. | | `telBAD_PATH_COUNT` | The transaction contains too many paths for the local server to process. | | `telBAD_PUBLIC_KEY` | The transaction specified a public key value (for example, as the `MessageKey` field of an [AccountSet transaction][]) that cannot be used, probably because it is not the right length. | -| `telCAN_NOT_QUEUE` | The transaction did not meet the [open ledger cost](transaction-cost.html), but this server did not queue this transaction because it did not meet the [queuing restrictions](transaction-queue.html#queuing-restrictions). For example, a transaction returns this code when the sender already has 10 other transactions in the queue. You can try again later or sign and submit a replacement transaction with a higher transaction cost in the `Fee` field. | -| `telCAN_NOT_QUEUE_BALANCE` | The transaction did not meet the [open ledger cost](transaction-cost.html) and also was not added to the transaction queue because the sum of potential XRP costs of already-queued transactions is greater than the expected balance of the account. You can try again later, or try submitting to a different server. | -| `telCAN_NOT_QUEUE_BLOCKS` | The transaction did not meet the [open ledger cost](transaction-cost.html) and also was not added to the transaction queue. This transaction could not replace an existing transaction in the queue because it would block already-queued transactions from the same sender. (For details, see [Queuing Restrictions](transaction-queue.html#queuing-restrictions).) You can try again later, or try submitting to a different server. | -| `telCAN_NOT_QUEUE_BLOCKED` | The transaction did not meet the [open ledger cost](transaction-cost.html) and also was not added to the transaction queue because a transaction queued ahead of it from the same sender blocks it. (For details, see [Queuing Restrictions](transaction-queue.html#queuing-restrictions).) You can try again later, or try submitting to a different server. | -| `telCAN_NOT_QUEUE_FEE` | The transaction did not meet the [open ledger cost](transaction-cost.html) and also was not added to the transaction queue. This code occurs when a transaction with the same sender and sequence number already exists in the queue and the new one does not pay a large enough transaction cost to replace the existing transaction. To replace a transaction in the queue, the new transaction must have a `Fee` value that is at least 25% more, as measured in [fee levels](transaction-cost.html#fee-levels). You can increase the `Fee` and try again, send this with a higher `Sequence` number so it doesn't replace an existing transaction, or try sending to another server. | -| `telCAN_NOT_QUEUE_FULL` | The transaction did not meet the [open ledger cost](transaction-cost.html) and the server did not queue this transaction because this server's transaction queue is full. You could increase the `Fee` and try again, try again later, or try submitting to a different server. The new transaction must have a higher transaction cost, as measured in [fee levels](transaction-cost.html#fee-levels), than the transaction in the queue with the smallest transaction cost. | +| `telCAN_NOT_QUEUE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md), but this server did not queue this transaction because it did not meet the [queuing restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions). For example, a transaction returns this code when the sender already has 10 other transactions in the queue. You can try again later or sign and submit a replacement transaction with a higher transaction cost in the `Fee` field. | +| `telCAN_NOT_QUEUE_BALANCE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue because the sum of potential XRP costs of already-queued transactions is greater than the expected balance of the account. You can try again later, or try submitting to a different server. | +| `telCAN_NOT_QUEUE_BLOCKS` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue. This transaction could not replace an existing transaction in the queue because it would block already-queued transactions from the same sender. (For details, see [Queuing Restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions).) You can try again later, or try submitting to a different server. | +| `telCAN_NOT_QUEUE_BLOCKED` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue because a transaction queued ahead of it from the same sender blocks it. (For details, see [Queuing Restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions).) You can try again later, or try submitting to a different server. | +| `telCAN_NOT_QUEUE_FEE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue. This code occurs when a transaction with the same sender and sequence number already exists in the queue and the new one does not pay a large enough transaction cost to replace the existing transaction. To replace a transaction in the queue, the new transaction must have a `Fee` value that is at least 25% more, as measured in [fee levels](../../../../concepts/transactions/transaction-cost.md#fee-levels). You can increase the `Fee` and try again, send this with a higher `Sequence` number so it doesn't replace an existing transaction, or try sending to another server. | +| `telCAN_NOT_QUEUE_FULL` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and the server did not queue this transaction because this server's transaction queue is full. You could increase the `Fee` and try again, try again later, or try submitting to a different server. The new transaction must have a higher transaction cost, as measured in [fee levels](../../../../concepts/transactions/transaction-cost.md#fee-levels), than the transaction in the queue with the smallest transaction cost. | | `telFAILED_PROCESSING` | An unspecified error occurred when processing the transaction. | -| `telINSUF_FEE_P` | The `Fee` from the transaction is not high enough to meet the server's current [transaction cost](transaction-cost.html) requirement, which is derived from its load level and network-level requirements. If the individual server is too busy to process your transaction right now, it may cache the transaction and automatically retry later. | +| `telINSUF_FEE_P` | The `Fee` from the transaction is not high enough to meet the server's current [transaction cost](../../../../concepts/transactions/transaction-cost.md) requirement, which is derived from its load level and network-level requirements. If the individual server is too busy to process your transaction right now, it may cache the transaction and automatically retry later. | | `telLOCAL_ERROR` | Unspecified local error. The transaction may be able to succeed if you submit it to a different server. | -| `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | The transaction specifies the [`NetworkID` field](transaction-common-fields.html#networkid-field), but the current network rules require that the `NetworkID` field be omitted. (Mainnet and other networks with a chain ID of 1024 or less do not use this field.) If the transaction was intended for a network that does not use `NetworkID`, remove the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. [New in: rippled 1.11.0][] | -| `telNO_DST`_`PARTIAL` | The transaction is an XRP payment that would fund a new account, but the [`tfPartialPayment` flag](partial-payments.html) was enabled. This is disallowed. | -| `telREQUIRES_NETWORK_ID` | The transaction does not specify a [`NetworkID` field](transaction-common-fields.html#networkid-field), but the current network requires one. If the transaction was intended for a network that requires `NetworkID`, add the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. [New in: rippled 1.11.0][] | -| `telWRONG_NETWORK` | The transaction specifies the wrong [`NetworkID` value](transaction-common-fields.html#networkid-field) for the current network. Either specify the correct the `NetworkID` value for the intended network, or submit the transaction to a server that is connected to the correct network. [New in: rippled 1.11.0][] | +| `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | The transaction specifies the [`NetworkID` field](../common-fields.md#networkid-field), but the current network rules require that the `NetworkID` field be omitted. (Mainnet and other networks with a chain ID of 1024 or less do not use this field.) If the transaction was intended for a network that does not use `NetworkID`, remove the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | +| `telNO_DST`_`PARTIAL` | The transaction is an XRP payment that would fund a new account, but the [`tfPartialPayment` flag](../../../../concepts/payment-types/partial-payments.md) was enabled. This is disallowed. | +| `telREQUIRES_NETWORK_ID` | The transaction does not specify a [`NetworkID` field](../common-fields.md#networkid-field), but the current network requires one. If the transaction was intended for a network that requires `NetworkID`, add the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | +| `telWRONG_NETWORK` | The transaction specifies the wrong [`NetworkID` value](../common-fields.md#networkid-field) for the current network. Either specify the correct the `NetworkID` value for the intended network, or submit the transaction to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/transaction-results/tem-codes.md b/content/references/protocol/transactions/transaction-results/tem-codes.md index 5591227541..5413ce4f8f 100644 --- a/content/references/protocol/transactions/transaction-results/tem-codes.md +++ b/content/references/protocol/transactions/transaction-results/tem-codes.md @@ -9,13 +9,13 @@ labels: These codes indicate that the transaction was malformed, and cannot succeed according to the XRP Ledger protocol. They have numerical values in the range -299 to -200. The exact code for any given error is subject to change, so don't rely on it. -**Tip:** Transactions with `tem` codes are not applied to ledgers, and cannot cause any changes to XRP Ledger state. A `tem` result is final unless the rules for a valid transaction change. (For example, using functionality from an [Amendment](amendments.html) before that amendment is enabled results in `temDISABLED`; such a transaction could succeed later if it becomes valid when the amendment is enabled.) +**Tip:** Transactions with `tem` codes are not applied to ledgers, and cannot cause any changes to XRP Ledger state. A `tem` result is final unless the rules for a valid transaction change. (For example, using functionality from an [Amendment](../../../../concepts/networks-and-servers/amendments.md) before that amendment is enabled results in `temDISABLED`; such a transaction could succeed later if it becomes valid when the amendment is enabled.) | Code | Explanation | |:------------------------------|:----------------------------------------------| -| `temBAD_AMM_TOKENS` | The transaction incorrectly specified one or more assets. For example, the asset's issuer does not match the corresponding asset in the AMM's pool, or the transaction specified the same asset twice. _(Requires the [AMM amendment][] :not_enabled:)_ | +| `temBAD_AMM_TOKENS` | The transaction incorrectly specified one or more assets. For example, the asset's issuer does not match the corresponding asset in the AMM's pool, or the transaction specified the same asset twice. _(Requires the [AMM amendment][] {% not-enabled /%})_ | | `temBAD_AMOUNT` | An amount specified by the transaction (for example the destination `Amount` or `SendMax` values of a [Payment][]) was invalid, possibly because it was a negative number. | -| `temBAD_AUTH_MASTER` | The key used to sign this transaction does not match the master key for the account sending it, and the account does not have a [Regular Key](cryptographic-keys.html) set. | +| `temBAD_AUTH_MASTER` | The key used to sign this transaction does not match the master key for the account sending it, and the account does not have a [Regular Key](../../../../concepts/accounts/cryptographic-keys.md) set. | | `temBAD_CURRENCY` | The transaction improperly specified a currency field. See [Specifying Currency Amounts][Currency Amount] for the correct format. | | `temBAD_EXPIRATION` | The transaction improperly specified an expiration value, for example as part of an [OfferCreate transaction][]. Alternatively, the transaction did not specify a required expiration value, for example as part of an [EscrowCreate transaction][]. | | `temBAD_FEE` | The transaction improperly specified its `Fee` value, for example by listing a non-XRP currency or some negative amount of XRP. | @@ -23,35 +23,32 @@ These codes indicate that the transaction was malformed, and cannot succeed acco | `temBAD_LIMIT` | The [TrustSet transaction][] improperly specified the `LimitAmount` value of a trust line. | | `temBAD_NFTOKEN_TRANSFER_FEE` | The [NFTokenMint transaction][] improperly specified the `TransferFee` field of the transaction. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | | `temBAD_OFFER` | The [OfferCreate transaction][] specifies an invalid offer, such as offering to trade XRP for itself, or offering a negative amount. | -| `temBAD_PATH` | The [Payment transaction][] specifies one or more [Paths](paths.html) improperly, for example including an issuer for XRP, or specifying an account differently. | -| `temBAD_PATH_LOOP` | One of the [Paths](paths.html) in the [Payment transaction][] was flagged as a loop, so it cannot be processed in a bounded amount of time. | -| `temBAD_SEND_XRP_LIMIT` | The [Payment transaction][] used the [`tfLimitQuality` flag](payment.html#limit-quality) in a direct XRP-to-XRP payment, even though XRP-to-XRP payments do not involve any conversions. | +| `temBAD_PATH` | The [Payment transaction][] specifies one or more [Paths](../../../../concepts/tokens/fungible-tokens/paths.md) improperly, for example including an issuer for XRP, or specifying an account differently. | +| `temBAD_PATH_LOOP` | One of the [Paths](../../../../concepts/tokens/fungible-tokens/paths.md) in the [Payment transaction][] was flagged as a loop, so it cannot be processed in a bounded amount of time. | +| `temBAD_SEND_XRP_LIMIT` | The [Payment transaction][] used the [`tfLimitQuality` flag](../types/payment.md#limit-quality) in a direct XRP-to-XRP payment, even though XRP-to-XRP payments do not involve any conversions. | | `temBAD_SEND_XRP_MAX` | The [Payment transaction][] included a `SendMax` field in a direct XRP-to-XRP payment, even though sending XRP should never require `SendMax`. (XRP is only valid in `SendMax` if the destination `Amount` is not XRP.) | -| `temBAD_SEND_XRP_NO_DIRECT` | The [Payment transaction][] used the [`tfNoDirectRipple` flag](payment.html#payment-flags) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments are always direct. | -| `temBAD_SEND_XRP_PARTIAL` | The [Payment transaction][] used the [`tfPartialPayment` flag](partial-payments.html) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments should always deliver the full amount. | +| `temBAD_SEND_XRP_NO_DIRECT` | The [Payment transaction][] used the [`tfNoDirectRipple` flag](../types/payment.md#payment-flags) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments are always direct. | +| `temBAD_SEND_XRP_PARTIAL` | The [Payment transaction][] used the [`tfPartialPayment` flag](../../../../concepts/payment-types/partial-payments.md) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments should always deliver the full amount. | | `temBAD_SEND_XRP_PATHS` | The [Payment transaction][] included `Paths` while sending XRP, even though XRP-to-XRP payments should always be direct. | | `temBAD_SEQUENCE` | The transaction is references a sequence number that is higher than its own `Sequence` number, for example trying to cancel an offer that would have to be placed after the transaction that cancels it. | -| `temBAD_SIGNATURE` | The signature to authorize this transaction is either missing, or formed in a way that is not a properly-formed signature. (See [`tecNO_PERMISSION`](tec-codes.html) for the case where the signature is properly formed, but not authorized for this account.) | -| `temBAD_SRC_ACCOUNT` | The `Account` on whose behalf this transaction is being sent (the "source account") is not a properly-formed [account](accounts.html) address. | -| `temBAD_TRANSFER_RATE` | The [`TransferRate` field of an AccountSet transaction](accountset.html#transferrate) is not properly formatted or out of the acceptable range. | +| `temBAD_SIGNATURE` | The signature to authorize this transaction is either missing, or formed in a way that is not a properly-formed signature. (See [`tecNO_PERMISSION`](tec-codes.md) for the case where the signature is properly formed, but not authorized for this account.) | +| `temBAD_SRC_ACCOUNT` | The `Account` on whose behalf this transaction is being sent (the "source account") is not a properly-formed [account](../../../../concepts/accounts/accounts.md) address. | +| `temBAD_TRANSFER_RATE` | The [`TransferRate` field of an AccountSet transaction](../types/accountset.md#transferrate) is not properly formatted or out of the acceptable range. | | `temCANNOT_PREAUTH_SELF` | The sender of the [DepositPreauth transaction][] was also specified as the account to preauthorize. You cannot preauthorize yourself. | | `temDST_IS_SRC` | The transaction improperly specified a destination address as the `Account` sending the transaction. This includes trust lines (where the destination address is the `issuer` field of `LimitAmount`) and payment channels (where the destination address is the `Destination` field). | | `temDST_NEEDED` | The transaction improperly omitted a destination. This could be the `Destination` field of a [Payment transaction][], or the `issuer` sub-field of the `LimitAmount` field fo a `TrustSet` transaction. | | `temINVALID` | The transaction is otherwise invalid. For example, the transaction ID may not be the right format, the signature may not be formed properly, or something else went wrong in understanding the transaction. | | `temINVALID_COUNT` | The transaction includes a `TicketCount` field, but the number of Tickets specified is invalid. | -| `temINVALID_FLAG` | The transaction includes a [Flag](transaction-common-fields.html#flags-field) that does not exist, or includes a contradictory combination of flags. | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. | | `temMALFORMED` | Unspecified problem with the format of the transaction. | | `temREDUNDANT` | The transaction would do nothing; for example, it is sending a payment directly to the sending account, or creating an offer to buy and sell the same currency from the same issuer. | -| `temREDUNDANT_SEND_MAX` | [Removed in: rippled 0.28.0][] | +| `temREDUNDANT_SEND_MAX` | {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}Removed in: rippled 0.28.0{% /badge %} | | `temRIPPLE_EMPTY` | The [Payment transaction][] includes an empty `Paths` field, but paths are necessary to complete this payment. | | `temBAD_WEIGHT` | The [SignerListSet transaction][] includes a `SignerWeight` that is invalid, for example a zero or negative value. | | `temBAD_SIGNER` | The [SignerListSet transaction][] includes a signer who is invalid. For example, there may be duplicate entries, or the owner of the SignerList may also be a member. | | `temBAD_QUORUM` | The [SignerListSet transaction][] has an invalid `SignerQuorum` value. Either the value is not greater than zero, or it is more than the sum of all signers in the list. | | `temUNCERTAIN` | Used internally only. This code should never be returned. | | `temUNKNOWN` | Used internally only. This code should never be returned. | -| `temDISABLED` | The transaction requires logic that is disabled. Typically this means you are trying to use an [amendment](amendments.html) that is not enabled for the current ledger. | +| `temDISABLED` | The transaction requires logic that is disabled. Typically this means you are trying to use an [amendment](../../../../concepts/networks-and-servers/amendments.md) that is not enabled for the current ledger. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/transaction-results/ter-codes.md b/content/references/protocol/transactions/transaction-results/ter-codes.md index 24fb14bcc0..7e0c4a7061 100644 --- a/content/references/protocol/transactions/transaction-results/ter-codes.md +++ b/content/references/protocol/transactions/transaction-results/ter-codes.md @@ -7,9 +7,9 @@ labels: --- # ter Codes -These codes indicate that the transaction has not been [applied](consensus.html) yet, and generally will be automatically retried by the server that returned the result code. The transaction could apply successfully in the future; for example, if a certain other transaction applies first. These codes have numerical values in the range -99 to -1, but the exact code for any given error is subject to change, so don't rely on it. +These codes indicate that the transaction has not been [applied](../../../../concepts/consensus-protocol/index.md) yet, and generally will be automatically retried by the server that returned the result code. The transaction could apply successfully in the future; for example, if a certain other transaction applies first. These codes have numerical values in the range -99 to -1, but the exact code for any given error is subject to change, so don't rely on it. -**Note:** Transactions with `ter` codes have not been applied to the current ledger and have not yet changed the XRP Ledger state. A transaction that provisionally got a `ter` result may still succeed or fail with a different code after being automatically applied later. For more information, see [Finality of Results](finality-of-results.html) and [Reliable Transaction Submission](reliable-transaction-submission.html). +**Note:** Transactions with `ter` codes have not been applied to the current ledger and have not yet changed the XRP Ledger state. A transaction that provisionally got a `ter` result may still succeed or fail with a different code after being automatically applied later. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md). | Code | Explanation | |:-----------------|:----------------------------------------------------------| @@ -17,18 +17,15 @@ These codes indicate that the transaction has not been [applied](consensus.html) | `terINSUF_FEE_B` | The account sending the transaction does not have enough XRP to pay the `Fee` specified in the transaction. | | `terLAST` | Used internally only. This code should never be returned. | | `terNO_ACCOUNT` | The address sending the transaction is not funded in the ledger (yet). | -| `terNO_AMM` | The AMM-related transaction specifies an asset pair that does not currently have an AMM instance. _(Requires the [AMM amendment][] :not_enabled:)_ | +| `terNO_AMM` | The AMM-related transaction specifies an asset pair that does not currently have an AMM instance. _(Requires the [AMM amendment][] {% not-enabled /%})_ | | `terNO_AUTH` | The transaction would involve adding currency issued by an account with `lsfRequireAuth` enabled to a trust line that is not authorized. For example, you placed an offer to buy a currency you aren't authorized to hold. | | `terNO_LINE` | Used internally only. This code should never be returned. | | `terNO_RIPPLE` | Used internally only. This code should never be returned. | -| `terOWNERS` | The transaction requires that account sending it has a nonzero "owners count", so the transaction cannot succeed. For example, an account cannot enable the [`lsfRequireAuth`](accountset.html#accountset-flags) flag if it has any trust lines or available offers. | +| `terOWNERS` | The transaction requires that account sending it has a nonzero "owners count", so the transaction cannot succeed. For example, an account cannot enable the [`lsfRequireAuth`](../types/accountset.md#accountset-flags) flag if it has any trust lines or available offers. | | `terPRE_SEQ` | The `Sequence` number of the current transaction is higher than the current sequence number of the account sending the transaction. | -| `terPRE_TICKET` | The transaction attempted to use a [Ticket](tickets.html), but the specified `TicketSequence` number does not exist in the ledger. However, the Ticket could still be created by another transaction. | -| `terQUEUED` | The transaction met the load-scaled [transaction cost](transaction-cost.html) but did not meet the open ledger requirement, so the transaction has been queued for a future ledger. | +| `terPRE_TICKET` | The transaction attempted to use a [Ticket](../../../../concepts/accounts/tickets.md), but the specified `TicketSequence` number does not exist in the ledger. However, the Ticket could still be created by another transaction. | +| `terQUEUED` | The transaction met the load-scaled [transaction cost](../../../../concepts/transactions/transaction-cost.md) but did not meet the open ledger requirement, so the transaction has been queued for a future ledger. | | `terRETRY` | Unspecified retriable error. | | `terSUBMITTED` | Transaction has been submitted, but not yet applied. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/transaction-results/tes-success.md b/content/references/protocol/transactions/transaction-results/tes-success.md index c9ad551f93..2a5549f90d 100644 --- a/content/references/protocol/transactions/transaction-results/tes-success.md +++ b/content/references/protocol/transactions/transaction-results/tes-success.md @@ -13,7 +13,4 @@ The code `tesSUCCESS` is the only code that indicates a transaction succeeded. T |:-----------|:----------------------------------------------------------------| | `tesSUCCESS` | The transaction was applied and forwarded to other servers. If this appears in a validated ledger, then the transaction's success is final. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/transaction-results/transaction-results.md b/content/references/protocol/transactions/transaction-results/transaction-results.md index 73359af9bb..64e008afbb 100644 --- a/content/references/protocol/transactions/transaction-results/transaction-results.md +++ b/content/references/protocol/transactions/transaction-results/transaction-results.md @@ -13,16 +13,16 @@ The `rippled` server summarizes transaction results with result codes, which app | Category | Prefix | Description | |:----------------------|:--------------------------|:-------------------------| -| Claimed cost only | [`tec`](tec-codes.html) | The transaction did not achieve its intended purpose, but the [transaction cost](transaction-cost.html) was destroyed. This result is only final in a validated ledger. | -| Failure | [`tef`](tef-codes.html) | The transaction cannot be applied to the server's current (in-progress) ledger or any later one. It may have already been applied, or the condition of the ledger makes it impossible to apply in the future. | -| Local error | [`tel`](tel-codes.html) | The `rippled` server had an error due to local conditions, such as high load. You may get a different response if you resubmit to a different server or at a different time. | -| Malformed transaction | [`tem`](tem-codes.html) | The transaction was not valid, due to improper syntax, conflicting options, a bad signature, or something else. | -| Retry | [`ter`](ter-codes.html) | The transaction could not be applied, but it could apply successfully in a future ledger. | -| Success | [`tes`](tes-success.html) | (Not an error) The transaction succeeded. This result only final in a validated ledger. | +| Claimed cost only | [`tec`](tec-codes.md) | The transaction did not achieve its intended purpose, but the [transaction cost](../../../../concepts/transactions/transaction-cost.md) was destroyed. This result is only final in a validated ledger. | +| Failure | [`tef`](tef-codes.md) | The transaction cannot be applied to the server's current (in-progress) ledger or any later one. It may have already been applied, or the condition of the ledger makes it impossible to apply in the future. | +| Local error | [`tel`](tel-codes.md) | The `rippled` server had an error due to local conditions, such as high load. You may get a different response if you resubmit to a different server or at a different time. | +| Malformed transaction | [`tem`](tem-codes.md) | The transaction was not valid, due to improper syntax, conflicting options, a bad signature, or something else. | +| Retry | [`ter`](ter-codes.md) | The transaction could not be applied, but it could apply successfully in a future ledger. | +| Success | [`tes`](tes-success.md) | (Not an error) The transaction succeeded. This result only final in a validated ledger. | -The `rippled` server automatically retries failed transactions. It is important not to assume that a transaction has completely failed based on a tentative failure result. A transaction may later succeed unless its success or failure is [final](finality-of-results.html). +The `rippled` server automatically retries failed transactions. It is important not to assume that a transaction has completely failed based on a tentative failure result. A transaction may later succeed unless its success or failure is [final](../../../../concepts/transactions/finality-of-results/index.md). -**Warning:** Transactions' provisional result codes may differ than their final result. Transactions that provisionally succeeded may eventually fail and transactions that provisionally failed may eventually succeed. Transactions that provisionally failed may also eventually fail with a different code. See [finality of results](finality-of-results.html) for how to know when a transaction's result is final. +**Warning:** Transactions' provisional result codes may differ than their final result. Transactions that provisionally succeeded may eventually fail and transactions that provisionally failed may eventually succeed. Transactions that provisionally failed may also eventually fail with a different code. See [finality of results](../../../../concepts/transactions/finality-of-results/index.md) for how to know when a transaction's result is final. The distinction between a local error (`tel`) and a malformed transaction (`tem`) is a matter of protocol-level rules. For example, the protocol sets no limit on the maximum number of paths that can be included in a transaction. However, a server may define a finite limit of paths it can process. If two different servers are configured differently, then one of them may return a `tel` error for a transaction with many paths, while the other server could successfully process the transaction. If enough servers are able to process the transaction that it survives consensus, then it can still be included in a validated ledger. @@ -49,9 +49,6 @@ If nothing went wrong when submitting and applying the transaction locally, the "engine_result_message": "The transaction was applied. Only final in a validated ledger." ``` -**Note:** A successful result at this stage does not indicate that the transaction has completely succeeded; only that it was successfully applied to the provisional version of the ledger kept by the local server. Failed results at this stage are also provisional and may change. See [Finality of Results](finality-of-results.html) for details. +**Note:** A successful result at this stage does not indicate that the transaction has completely succeeded; only that it was successfully applied to the provisional version of the ledger kept by the local server. Failed results at this stage are also provisional and may change. See [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) for details. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/accountdelete.md b/content/references/protocol/transactions/types/accountdelete.md index 3a130c46d7..81524e40ac 100644 --- a/content/references/protocol/transactions/types/accountdelete.md +++ b/content/references/protocol/transactions/types/accountdelete.md @@ -9,11 +9,11 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/DeleteAccount.cpp "Source") -_Added by the [DeletableAccounts amendment](known-amendments.html#deletableaccounts)_ +_Added by the [DeletableAccounts amendment](../../../../resources/known-amendments.md#deletableaccounts)_ -An AccountDelete transaction deletes an [account](accountroot.html) and any objects it owns in the XRP Ledger, if possible, sending the account's remaining XRP to a specified destination account. See [Deleting Accounts](deleting-accounts.html) for the requirements to delete an account. +An AccountDelete transaction deletes an [account](../../ledger-data/ledger-entry-types/accountroot.md) and any objects it owns in the XRP Ledger, if possible, sending the account's remaining XRP to a specified destination account. See [Deleting Accounts](../../../../concepts/accounts/deleting-accounts.md) for the requirements to delete an account. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -27,40 +27,36 @@ An AccountDelete transaction deletes an [account](accountroot.html) and any obje } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_AccountDelete%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%221AF19BF9717DA0B05A3BFC5007873E7743BA54C0311CCCCC60776AAEAC5C4635%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_AccountDelete%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%221AF19BF9717DA0B05A3BFC5007873E7743BA54C0311CCCCC60776AAEAC5C4635%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-----------------|:-----------------|:------------------|:-------------------| | `Destination` | String - [Address][] | AccountID | The address of an account to receive any leftover XRP after deleting the sending account. Must be a funded account in the ledger, and must not be the sending account. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary [destination tag](source-and-destination-tags.html) that identifies a hosted recipient or other information for the recipient of the deleted account's leftover XRP. | +| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary [destination tag](../../../../concepts/transactions/source-and-destination-tags.md) that identifies a hosted recipient or other information for the recipient of the deleted account's leftover XRP. | ## Special Transaction Cost -As an additional deterrent against ledger spam, the AccountDelete transaction requires a much higher than usual [transaction cost](transaction-cost.html): instead of the standard minimum of 0.00001 XRP, AccountDelete must destroy at least the owner reserve amount, currently 2 XRP. This discourages excessive creation of new accounts because the [reserve requirement](reserves.html) cannot be fully recouped by deleting the account. +As an additional deterrent against ledger spam, the AccountDelete transaction requires a much higher than usual [transaction cost](../../../../concepts/transactions/transaction-cost.md): instead of the standard minimum of 0.00001 XRP, AccountDelete must destroy at least the owner reserve amount, currently 2 XRP. This discourages excessive creation of new accounts because the [reserve requirement](../../../../concepts/accounts/reserves.md) cannot be fully recouped by deleting the account. -The transaction cost always applies when a transaction is included in a validated ledger, even if the transaction fails to delete the account. (See [Error Cases](#error-cases).) To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, [submit the transaction](submit.html) with `fail_hard` enabled. +The transaction cost always applies when a transaction is included in a validated ledger, even if the transaction fails to delete the account. (See [Error Cases](#error-cases).) To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, [submit the transaction](../../../http-websocket-apis/public-api-methods/transaction-methods/submit.md) with `fail_hard` enabled. ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:-----------|:------------| -| `temDISABLED` | Occurs if the [DeletableAccounts amendment](known-amendments.html#deletableaccounts) is not enabled. | +| `temDISABLED` | Occurs if the [DeletableAccounts amendment](../../../../resources/known-amendments.md#deletableaccounts) is not enabled. | | `temDST_IS_SRC` | Occurs if the `Destination` matches the sender of the transaction (`Account` field). | -| `tecDST_TAG_NEEDED` | Occurs if the `Destination` account requires a [destination tag](source-and-destination-tags.html), but the `DestinationTag` field was not provided. | +| `tecDST_TAG_NEEDED` | Occurs if the `Destination` account requires a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md), but the `DestinationTag` field was not provided. | | `tecNO_DST` | Occurs if the `Destination` account is not a funded account in the ledger. | -| `tecNO_PERMISSION` | Occurs if the `Destination` account requires [deposit authorization](depositauth.html) and the sender is not preauthorized. | +| `tecNO_PERMISSION` | Occurs if the `Destination` account requires [deposit authorization](../../../../concepts/accounts/depositauth.md) and the sender is not preauthorized. | | `tecTOO_SOON` | Occurs if the sender's `Sequence` number is too high. The transaction's `Sequence` number plus 256 must be less than the current [Ledger Index][]. This prevents replay of old transactions if this account is resurrected after it is deleted. | -| `tecHAS_OBLIGATIONS` | Occurs if the account to be deleted is connected to objects that cannot be deleted in the ledger. (This includes objects created by other accounts, such as [escrows](escrow.html) and for example [NFT's minted](nftokenmint.html), [even if owned by another account](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/DeleteAccount.cpp#L197).) | +| `tecHAS_OBLIGATIONS` | Occurs if the account to be deleted is connected to objects that cannot be deleted in the ledger. (This includes objects created by other accounts, such as [escrows](../../../../concepts/payment-types/escrow.md) and for example [NFT's minted](nftokenmint.md), [even if owned by another account](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/DeleteAccount.cpp#L197).) | | `tefTOO_BIG` | Occurs if the sending account is linked to more than 1000 objects in the ledger. The transaction could succeed on retry if some of those objects were deleted separately first. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/accountset.md b/content/references/protocol/transactions/types/accountset.md index 1e13354159..b7ab75f3e2 100644 --- a/content/references/protocol/transactions/types/accountset.md +++ b/content/references/protocol/transactions/types/accountset.md @@ -9,9 +9,9 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/SetAccount.cpp "Source") -An AccountSet transaction modifies the properties of an [account in the XRP Ledger](accountroot.html). +An AccountSet transaction modifies the properties of an [account in the XRP Ledger](../../ledger-data/ledger-entry-types/accountroot.md). -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -25,9 +25,9 @@ An AccountSet transaction modifies the properties of an [account in the XRP Ledg } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_AccountSet%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_AccountSet%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -37,14 +37,14 @@ An AccountSet transaction modifies the properties of an [account in the XRP Ledg | [`Domain`](#domain) | String | Blob | _(Optional)_ The domain that owns this account, as a string of hex representing the ASCII for the domain in lowercase. [Cannot be more than 256 bytes in length.](https://github.com/XRPLF/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | | `EmailHash` | String | Hash128 | _(Optional)_ An arbitrary 128-bit value. Conventionally, clients treat this as the md5 hash of an email address to use for displaying a [Gravatar](http://en.gravatar.com/site/implement/hash/) image. | | `MessageKey` | String | Blob | _(Optional)_ Public key for sending encrypted messages to this account. To set the key, it must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. To remove the key, use an empty value. | -| `NFTokenMinter` | String | Blob | _(Optional)_ Another account that can [mint NFTokens for you](assign-an-authorized-minter-using-javascript.html). _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | +| `NFTokenMinter` | String | Blob | _(Optional)_ Another account that can [mint NFTokens for you](../../../../tutorials/quickstart/assign-an-authorized-minter-using-javascript.md). _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | | [`SetFlag`](#accountset-flags) | Number | UInt32 | _(Optional)_ Integer flag to enable for this account. | | [`TransferRate`](#transferrate) | Number | UInt32 | _(Optional)_ The fee to charge when users transfer this account's tokens, represented as billionths of a unit. Cannot be more than `2000000000` or less than `1000000000`, except for the special case `0` meaning no fee. | -| [`TickSize`](ticksize.html) | Number | UInt8 | _(Optional)_ Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are `3` to `15` inclusive, or `0` to disable. _(Added by the [TickSize amendment][])_ | +| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | Number | UInt8 | _(Optional)_ Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are `3` to `15` inclusive, or `0` to disable. _(Added by the [TickSize amendment][])_ | | `WalletLocator` | String | Hash256 | _(Optional)_ An arbitrary 256-bit value. If specified, the value is stored as part of the account but has no inherent meaning or requirements. | | `WalletSize` | Number | UInt32 | _(Optional)_ Not used. This field is valid in AccountSet transactions but does nothing. | -If none of these options are provided, then the AccountSet transaction has no effect (beyond destroying the transaction cost). See [Cancel or Skip a Transaction](cancel-or-skip-a-transaction.html) for more details. +If none of these options are provided, then the AccountSet transaction has no effect (beyond destroying the transaction cost). See [Cancel or Skip a Transaction](../../../../concepts/transactions/finality-of-results/canceling-a-transaction.md) for more details. ## Domain @@ -55,7 +55,7 @@ To remove the `Domain` field from an account, send an AccountSet with the Domain You can put any domain in your account's `Domain` field. To prove that an account and domain belong to the same person or business, you need a "two-way link": - Accounts you own should have a domain you own in the `Domain` field. -- At that domain, host an [xrp-ledger.toml file](xrp-ledger-toml.html) listing accounts you own, and optionally other information about how you use the XRP Ledger. +- At that domain, host an [xrp-ledger.toml file](../../../xrp-ledger-toml.md) listing accounts you own, and optionally other information about how you use the XRP Ledger. ## AccountSet Flags @@ -73,25 +73,25 @@ The available AccountSet flags are: | Flag Name | Decimal Value | Corresponding Ledger Flag | Description | |:----------------------------------|:--------------|:----------------------------------|:--------------| -| `asfAccountTxnID` | 5 | (None) | Track the ID of this account's most recent transaction. Required for [`AccountTxnID`](transaction-common-fields.html#accounttxnid) | -| `asfAllowTrustLineClawback` | 16 | `lsfAllowTrustlineClawback` | Allow account to claw back tokens it has issued. _(Requires the Clawback amendment :not_enabled:)_ Can only be set if the account has an empty owner directory (no trust lines, offers, escrows, payment channels, checks, or signer lists). After you set this flag, it cannot be reverted. The account permanently gains the ability to claw back issued assets on trust lines. | -| `asfAuthorizedNFTokenMinter` | 10 | (None) | Enable to allow another account to mint non-fungible tokens (NFTokens) on this account's behalf. Specify the authorized account in the `NFTokenMinter` field of the [AccountRoot](accountroot.html) object. To remove an authorized minter, enable this flag and omit the `NFTokenMinter` field. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | -| `asfDefaultRipple` | 8 | `lsfDefaultRipple` | Enable [rippling](rippling.html) on this account's trust lines by default. | -| `asfDepositAuth` | 9 | `lsfDepositAuth` | Enable [Deposit Authorization](depositauth.html) on this account. _(Added by the [DepositAuth amendment][].)_ | -| `asfDisableMaster` | 4 | `lsfDisableMaster` | Disallow use of the master key pair. Can only be enabled if the account has configured another way to sign transactions, such as a [Regular Key](cryptographic-keys.html) or a [Signer List](multi-signing.html). | -| `asfDisallowIncomingCheck` | 13 | `lsfDisallowIncomingCheck` | Block incoming Checks. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ | -| `asfDisallowIncomingNFTokenOffer` | 12 | `lsfDisallowIncomingNFTokenOffer` | Block incoming NFTokenOffers. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ | -| `asfDisallowIncomingPayChan` | 14 | `lsfDisallowIncomingPayChan` | Block incoming Payment Channels. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ | -| `asfDisallowIncomingTrustline` | 15 | `lsfDisallowIncomingTrustline` | Block incoming trust lines. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ | +| `asfAccountTxnID` | 5 | (None) | Track the ID of this account's most recent transaction. Required for [`AccountTxnID`](../common-fields.md#accounttxnid) | +| `asfAllowTrustLineClawback` | 16 | `lsfAllowTrustlineClawback` | Allow account to claw back tokens it has issued. _(Requires the Clawback amendment {% not-enabled /%})_ Can only be set if the account has an empty owner directory (no trust lines, offers, escrows, payment channels, checks, or signer lists). After you set this flag, it cannot be reverted. The account permanently gains the ability to claw back issued assets on trust lines. | +| `asfAuthorizedNFTokenMinter` | 10 | (None) | Enable to allow another account to mint non-fungible tokens (NFTokens) on this account's behalf. Specify the authorized account in the `NFTokenMinter` field of the [AccountRoot](../../ledger-data/ledger-entry-types/accountroot.md) object. To remove an authorized minter, enable this flag and omit the `NFTokenMinter` field. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ | +| `asfDefaultRipple` | 8 | `lsfDefaultRipple` | Enable [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this account's trust lines by default. | +| `asfDepositAuth` | 9 | `lsfDepositAuth` | Enable [Deposit Authorization](../../../../concepts/accounts/depositauth.md) on this account. _(Added by the [DepositAuth amendment][].)_ | +| `asfDisableMaster` | 4 | `lsfDisableMaster` | Disallow use of the master key pair. Can only be enabled if the account has configured another way to sign transactions, such as a [Regular Key](../../../../concepts/accounts/cryptographic-keys.md) or a [Signer List](../../../../concepts/accounts/multi-signing.md). | +| `asfDisallowIncomingCheck` | 13 | `lsfDisallowIncomingCheck` | Block incoming Checks. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ | +| `asfDisallowIncomingNFTokenOffer` | 12 | `lsfDisallowIncomingNFTokenOffer` | Block incoming NFTokenOffers. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ | +| `asfDisallowIncomingPayChan` | 14 | `lsfDisallowIncomingPayChan` | Block incoming Payment Channels. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ | +| `asfDisallowIncomingTrustline` | 15 | `lsfDisallowIncomingTrustline` | Block incoming trust lines. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ | | `asfDisallowXRP` | 3 | `lsfDisallowXRP` | XRP should not be sent to this account. (Advisory; not enforced by the XRP Ledger protocol.) | -| `asfGlobalFreeze` | 7 | `lsfGlobalFreeze` | [Freeze](freezes.html) all assets issued by this account. | -| `asfNoFreeze` | 6 | `lsfNoFreeze` | Permanently give up the ability to [freeze individual trust lines or disable Global Freeze](freezes.html). This flag can never be disabled after being enabled. | +| `asfGlobalFreeze` | 7 | `lsfGlobalFreeze` | [Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md) all assets issued by this account. | +| `asfNoFreeze` | 6 | `lsfNoFreeze` | Permanently give up the ability to [freeze individual trust lines or disable Global Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md). This flag can never be disabled after being enabled. | | `asfRequireAuth` | 2 | `lsfRequireAuth` | Require authorization for users to hold balances issued by this address. Can only be enabled if the address has no trust lines connected to it. | | `asfRequireDest` | 1 | `lsfRequireDestTag` | Require a destination tag to send transactions to this account. | -To enable the `asfDisableMaster` or `asfNoFreeze` flags, you must [authorize the transaction](transactions.html#authorizing-transactions) by signing it with the master key pair. You cannot use a regular key pair or a multi-signature. You can disable `asfDisableMaster` (that is, re-enable the master key pair) using a regular key pair or multi-signature. +To enable the `asfDisableMaster` or `asfNoFreeze` flags, you must [authorize the transaction](../../../../concepts/transactions/index.md#authorizing-transactions) by signing it with the master key pair. You cannot use a regular key pair or a multi-signature. You can disable `asfDisableMaster` (that is, re-enable the master key pair) using a regular key pair or multi-signature. -The following [Transaction flags](transaction-common-fields.html#flags-field) (`tf` flags), specific to the AccountSet transaction type, serve the same purpose. Due to limited space, some settings do not have associated `tf` flags, and new `tf` flags are not being added to the `AccountSet` transaction type. You can use a combination of `tf` and `asf` flags to enable multiple settings with a single transaction. +The following [Transaction flags](../common-fields.md#flags-field) (`tf` flags), specific to the AccountSet transaction type, serve the same purpose. Due to limited space, some settings do not have associated `tf` flags, and new `tf` flags are not being added to the `AccountSet` transaction type. You can use a combination of `tf` and `asf` flags to enable multiple settings with a single transaction. | Flag Name | Hex Value | Decimal Value | Replaced by AccountSet Flag | |:--------------------|:-------------|:--------------|:----------------------------| @@ -102,7 +102,7 @@ The following [Transaction flags](transaction-common-fields.html#flags-field) (` | `tfDisallowXRP` | `0x00100000` | 1048576 | `asfDisallowXRP` (`SetFlag`) | | `tfAllowXRP` | `0x00200000` | 2097152 | `asfDisallowXRP` (`ClearFlag`) | -**Caution:** The numeric values of `tf` and `asf` flags in transactions do not match up with the values they set in the accounts "at rest" in the ledger. To read the flags of an account in the ledger, see [`AccountRoot` flags](accountroot.html#accountroot-flags). +**Caution:** The numeric values of `tf` and `asf` flags in transactions do not match up with the values they set in the accounts "at rest" in the ledger. To read the flags of an account in the ledger, see [`AccountRoot` flags](../../ledger-data/ledger-entry-types/accountroot.md#accountroot-flags). ### Blocking Incoming Transactions @@ -115,9 +115,9 @@ For example, a destination tag is typically used to identify which hosted balanc You can protect against unwanted incoming payments for non-XRP currencies by not creating trust lines in those currencies. Since XRP does not require trust, the `asfDisallowXRP` flag is used to discourage users from sending XRP to an account. However, this flag is not enforced in the XRP Ledger protocol because it could potentially cause accounts to become unusable if they run out of XRP. Instead, client applications should disallow or discourage XRP payments to accounts with the `asfDisallowXRP` flag enabled. -If you want to block _all_ incoming payments, you can enable [Deposit Authorization](depositauth.html). This prevents any transaction from sending money to you, even XRP, unless your account is below the [reserve requirement](reserves.html). +If you want to block _all_ incoming payments, you can enable [Deposit Authorization](../../../../concepts/accounts/depositauth.md). This prevents any transaction from sending money to you, even XRP, unless your account is below the [reserve requirement](../../../../concepts/accounts/reserves.md). -If the [DisallowIncoming amendment][] :not_enabled: is enabled, you also have the option to block all incoming Checks, NFTokenOffers, Payment Channels, and trust lines. It is generally harmless to be on the receiving end of these objects, but they can block you from deleting your account and it can be confusing to have objects you didn't expect mixed in with the list of objects you created. To block incoming objects, use one or more of these account flags: +If the [DisallowIncoming amendment][] {% not-enabled /%} is enabled, you also have the option to block all incoming Checks, NFTokenOffers, Payment Channels, and trust lines. It is generally harmless to be on the receiving end of these objects, but they can block you from deleting your account and it can be confusing to have objects you didn't expect mixed in with the list of objects you created. To block incoming objects, use one or more of these account flags: - `asfDisallowIncomingCheck` - for Check objects - `asfDisallowIncomingNFTOffer` - for NFTokenOffer objects @@ -133,7 +133,7 @@ The `TransferRate` field specifies a fee to charge whenever counterparties trans In the HTTP and WebSocket APIs, the transfer fee is represented as an integer, the amount that must be sent for 1 billion units to arrive. For example, a 20% transfer fee is represented as the value `1200000000`. The value cannot be less than 1000000000. (Less than that would indicate giving away money for sending transactions, which is exploitable.) You can specify `0` as a shortcut for `1000000000`, meaning no fee. -See [Transfer Fees](transfer-fees.html) for more information. +See [Transfer Fees](../../../../concepts/tokens/transfer-fees.md) for more information. ## NFTokenMinter @@ -141,7 +141,4 @@ To remove an authorized minter, set `ClearFlag` to 10 (`asfAuthorizedNFTokenMint - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/ammbid.md b/content/references/protocol/transactions/types/ammbid.md index 9c1f41e23e..5494f0b82c 100644 --- a/content/references/protocol/transactions/types/ammbid.md +++ b/content/references/protocol/transactions/types/ammbid.md @@ -9,14 +9,14 @@ status: not_enabled # AMMBid [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMBid.cpp "Source") -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -Bid on an [Automated Market Maker](automated-market-makers.html)'s (AMM's) auction slot. If you win, you can trade against the AMM at a discounted fee until you are outbid or 24 hours have passed. If you are outbid before 24 hours have passed, you are refunded part of the cost of your bid based on how much time remains. +Bid on an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)'s (AMM's) auction slot. If you win, you can trade against the AMM at a discounted fee until you are outbid or 24 hours have passed. If you are outbid before 24 hours have passed, you are refunded part of the cost of your bid based on how much time remains. You bid using the AMM's LP Tokens; the amount of a winning bid is returned to the AMM, decreasing the outstanding balance of LP Tokens. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -52,7 +52,7 @@ You bid using the AMM's LP Tokens; the amount of a winning bid is returned to th } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Required? | Description | |:---------------|:--------------------|:------------------|:----------|:------------| @@ -84,7 +84,9 @@ If successful, the transaction automatically outbids the previous slot owner and - Otherwise, the price to outbid the current holder is calculated using the following formula: - P = B × 1.05 × (1 - t⁶⁰) + M + ``` + P = B × 1.05 × (1 - t⁶⁰) + M + ``` - `P` is the price to outbid, in LP Tokens. - `B` is the price of the current bid, in LP Tokens. @@ -93,13 +95,17 @@ If successful, the transaction automatically outbids the previous slot owner and There are two special cases for the cost to outbid someone. In the **first interval** after someone wins the bid, the price to outbid them is the minimum bid plus 5% more than the existing bid: - P = B × 1.05 + M + ``` + P = B × 1.05 + M + ``` In the **last interval** of someone's slot, the cost to outbid someone is only the minimum bid: - P = M + ``` + P = M + ``` -**Note:** To make sure all servers in the network reach the same results when building a ledger, time measurements are based on the [official close time](ledger-close-times.html) of the previous ledger, which is approximate. +**Note:** To make sure all servers in the network reach the same results when building a ledger, time measurements are based on the [official close time](../../../../concepts/ledgers/ledger-close-times.md) of the previous ledger, which is approximate. ## Bid Refunds @@ -115,11 +121,11 @@ R = B × (1 - t) As a special case, during the final (20th) interval of the auction slot, the refunded amount is zero. -**Note:** As with all XRP Ledger times, transaction processing uses the [official close time](ledger-close-times.html) of the _previous_ ledger, which can result in a difference of up to about 10 seconds from real time. +**Note:** As with all XRP Ledger times, transaction processing uses the [official close time](../../../../concepts/ledgers/ledger-close-times.md) of the _previous_ ledger, which can result in a difference of up to about 10 seconds from real time. ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:------------------------|:---------------------------------------------| @@ -132,8 +138,4 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `terNO_ACCOUNT` | One of the accounts specified in this request do not exist. | | `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/ammcreate.md b/content/references/protocol/transactions/types/ammcreate.md index 98aee59a37..0c6fcf3b0e 100644 --- a/content/references/protocol/transactions/types/ammcreate.md +++ b/content/references/protocol/transactions/types/ammcreate.md @@ -9,15 +9,15 @@ status: not_enabled # AMMCreate [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMCreate.cpp "Source") -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -Create a new [Automated Market Maker](automated-market-makers.html) (AMM) instance for trading a pair of assets ([fungible tokens](tokens.html) or [XRP](xrp.html)). +Create a new [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance for trading a pair of assets ([fungible tokens](../../../../concepts/tokens/index.md) or [XRP](../../../../introduction/what-is-xrp.md)). -Creates both an [AMM entry][] and a [special AccountRoot entry](accountroot.html#special-amm-accountroot-entries) to represent the AMM. Also transfers ownership of the starting balance of both assets from the sender to the created `AccountRoot` and issues an initial balance of liquidity provider tokens (LP Tokens) from the AMM account to the sender. +Creates both an [AMM entry][] and a [special AccountRoot entry](../../ledger-data/ledger-entry-types/accountroot.md#special-amm-accountroot-entries) to represent the AMM. Also transfers ownership of the starting balance of both assets from the sender to the created `AccountRoot` and issues an initial balance of liquidity provider tokens (LP Tokens) from the AMM account to the sender. **Caution:** When you create the AMM, you should fund it with (approximately) equal-value amounts of each asset. Otherwise, other users can profit at your expense by trading with this AMM ([performing arbitrage](https://www.machow.ski/posts/an_introduction_to_automated_market_makers/#price-arbitrage)). The currency risk that liquidity providers take on increases with the volatility (potential for imbalance) of the asset pair. The higher the trading fee, the more it offsets this risk, so it's best to set the trading fee based on the volatility of the asset pair. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -36,7 +36,7 @@ Creates both an [AMM entry][] and a [special AccountRoot entry](accountroot.html } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Required? | Description | |:-------------|:--------------------|:------------------|:----------|:------------| @@ -44,7 +44,7 @@ Creates both an [AMM entry][] and a [special AccountRoot entry](accountroot.html | `Amount2` | [Currency Amount][] | Amount | Yes | The second of the two assets to fund this AMM with. This must be a positive amount. | | `TradingFee` | Number | UInt16 | Yes | The fee to charge for trades against this AMM instance, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is `1000`, indicating a 1% fee. The minimum value is `0`. | -One or both of `Amount` and `Amount2` can be [tokens](tokens.html); at most one of them can be [XRP](xrp.html). They cannot both have the same currency code and issuer. The tokens' issuers must have [Default Ripple](rippling.html#the-default-ripple-flag) enabled. If the [Clawback amendment][] :not_enabled: is enabled, those issuers must not have enabled the Allow Clawback flag. The assets _cannot_ be LP tokens for another AMM. +One or both of `Amount` and `Amount2` can be [tokens](../../../../concepts/tokens/index.md); at most one of them can be [XRP](../../../../introduction/what-is-xrp.md). They cannot both have the same currency code and issuer. The tokens' issuers must have [Default Ripple](../../../../concepts/tokens/fungible-tokens/rippling.md#the-default-ripple-flag) enabled. If the [Clawback amendment][] {% not-enabled /%} is enabled, those issuers must not have enabled the Allow Clawback flag. The assets _cannot_ be LP tokens for another AMM. ## Special Transaction Cost @@ -52,24 +52,21 @@ Since each AMM instance involves an AccountRoot ledger entry, an AMM ledger entr ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:--------------------|:---------------------------------------------| | `tecAMM_INVALID_TOKENS` | Either `Amount` or `Amount2` has a currency code that is the same as this AMM's LP Tokens would use. (This is very unlikely to occur.) | | `tecDUPLICATE` | There is already another AMM for this currency pair. | -| `tecFROZEN` | At least one of the deposit assets (`Amount` or `Amount2`) is currently [frozen](freezes.html). | -| `tecINSUF_RESERVE_LINE` | The sender of this transaction does meet the increased [reserve requirement](reserves.html) of processing this transaction, probably because they need a new trust line to hold the LP Tokens, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | -| `tecNO_AUTH` | At least one of the deposit assets uses [authorized trust lines](authorized-trust-lines.html) and the sender does not have authorization to hold that asset. | +| `tecFROZEN` | At least one of the deposit assets (`Amount` or `Amount2`) is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `tecINSUF_RESERVE_LINE` | The sender of this transaction does meet the increased [reserve requirement](../../../../concepts/accounts/reserves.md) of processing this transaction, probably because they need a new trust line to hold the LP Tokens, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | +| `tecNO_AUTH` | At least one of the deposit assets uses [authorized trust lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the sender does not have authorization to hold that asset. | | `tecNO_LINE` | The sender does not have a trust line for at least one of the deposit assets. | | `tecNO_PERMISSION` | At least one of the deposit assets cannot be used in an AMM. For example, the issuer has enabled Clawback support. | | `tecUNFUNDED_AMM` | The sender does not hold enough of the assets specified in `Amount` and `Amount2` to fund the AMM. | -| `terNO_RIPPLE` | The issuer of at least one of the assets has not enabled the [Default Ripple flag](rippling.html#the-default-ripple-flag). | +| `terNO_RIPPLE` | The issuer of at least one of the assets has not enabled the [Default Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md#the-default-ripple-flag). | | `temAMM_BAD_TOKENS` | The values of `Amount` and `Amount2` are not valid: for example, both refer to the same token. | | `temBAD_FEE` | The `TradingFee` value is invalid. It must be zero or a positive integer and cannot be over 1000. | | `temDISABLED` | The AMM feature is not enabled on this network. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/ammdelete.md b/content/references/protocol/transactions/types/ammdelete.md index e2834e6507..63af99a6ed 100644 --- a/content/references/protocol/transactions/types/ammdelete.md +++ b/content/references/protocol/transactions/types/ammdelete.md @@ -9,14 +9,14 @@ status: not_enabled # AMMDelete [[Source]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/AMMDelete.cpp "Source") -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -Delete an empty [Automated Market Maker](automated-market-makers.html) (AMM) instance that could not be fully deleted automatically. +Delete an empty [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance that could not be fully deleted automatically. Normally, an [AMMWithdraw transaction][] automatically deletes an AMM and all associated ledger entries when it withdraws all the assets from the AMM's pool. However, if there are too many trust lines to the AMM account to remove in one transaction, it may stop before fully removing the AMM. Similarly, an AMMDelete transaction removes up to a maximum of 512 trust lines; it may take several AMMDelete transactions to delete all the trust lines and the associated AMM. In all cases, only the last such transaction deletes the AMM and AccountRoot ledger entries. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -35,7 +35,7 @@ Normally, an [AMMWithdraw transaction][] automatically deletes an AMM and all as } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Required? | Description | |:---------------|:--------------------|:------------------|:----------|:------------| @@ -45,7 +45,7 @@ Normally, an [AMMWithdraw transaction][] automatically deletes an AMM and all as ## Error Cases -Besides errors that can occur for all transactions, AMMCreate transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, AMMCreate transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:--------------------|:---------------------------------------------| @@ -53,7 +53,4 @@ Besides errors that can occur for all transactions, AMMCreate transactions can r | `tecINCOMPLETE` | There were too many associated ledger entries to fully delete, so the transaction removed as many as it could, but the AMM has not been fully deleted. You can send another AMMDelete transaction to continue and possibly finish the job. | | `terNO_AMM` | The specified AMM does not exist. (It may have been deleted already, or you may have specified a wrong asset for the AMM you intended.) | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/ammdeposit.md b/content/references/protocol/transactions/types/ammdeposit.md index 6270c72b2b..1e1f195445 100644 --- a/content/references/protocol/transactions/types/ammdeposit.md +++ b/content/references/protocol/transactions/types/ammdeposit.md @@ -9,13 +9,13 @@ status: not_enabled # AMMDeposit [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMDeposit.cpp "Source") -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -Deposit funds into an [Automated Market Maker](automated-market-makers.html) (AMM) instance and receive the AMM's liquidity provider tokens (_LP Tokens_) in exchange. You can deposit one or both of the assets in the AMM's pool. +Deposit funds into an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance and receive the AMM's liquidity provider tokens (_LP Tokens_) in exchange. You can deposit one or both of the assets in the AMM's pool. -If successful, this transaction creates a [trust line](trust-lines-and-issuing.html) to the AMM Account (limit 0) to hold the LP Tokens. +If successful, this transaction creates a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) to the AMM Account (limit 0) to hold the LP Tokens. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -40,7 +40,7 @@ If successful, this transaction creates a [trust line](trust-lines-and-issuing.h } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Required? | Description | |:--------------|:--------------------|:------------------|:----------|:------------| @@ -84,7 +84,7 @@ Any other combination of these fields and flags is invalid. The formula for how many LP Tokens you receive for a double-asset deposit is: -{{ include_svg("img/amm-single-asset-deposit-formula.svg", "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") }} +[{% inline-svg file="/img/amm-single-asset-deposit-formula.svg" /%}](/img/amm-single-asset-deposit-formula.svg "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") Where: @@ -105,7 +105,7 @@ You can only do a special "Empty AMM" deposit if the AMM is empty. ### AMMDeposit Flags -Transactions of the AMMDeposit type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the AMMDeposit type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:--------------------|:-------------|:--------------|:----------------------| @@ -116,20 +116,20 @@ Transactions of the AMMDeposit type support additional values in the [`Flags` fi | `tfLimitLPToken` | `0x00400000` | 4194304 | Perform a single-asset deposit with a specified effective price. | | `tfTwoAssetIfEmpty` | `0x00800000` | 8388608 | Perform a special double-asset deposit to an AMM with an empty pool. | -You must specify **exactly one** of these flags, plus any [global flags](transaction-common-fields.html#global-flags). +You must specify **exactly one** of these flags, plus any [global flags](../common-fields.md#global-flags). ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:------------------------|:---------------------------------------------| | `tecAMM_EMPTY` | The AMM currently holds no assets, so you cannot do a normal deposit. You must use the Empty AMM Special Case deposit instead. | | `tecAMM_NOT_EMPTY` | The transaction specified `tfTwoAssetIfEmpty`, but the AMM was not empty. | | `tecAMM_FAILED` | The conditions on the deposit could not be satisfied. For example, the requested effective price in the `EPrice` field is too low. | -| `tecFROZEN` | The transaction tried to deposit a [frozen](freezes.html) token. | -| `tecINSUF_RESERVE_LINE` | The sender of this transaction does meet the increased [reserve requirement](reserves.html) of processing this transaction, probably because they need a new trust line to hold the LP Tokens, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | +| `tecFROZEN` | The transaction tried to deposit a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) token. | +| `tecINSUF_RESERVE_LINE` | The sender of this transaction does meet the increased [reserve requirement](../../../../concepts/accounts/reserves.md) of processing this transaction, probably because they need a new trust line to hold the LP Tokens, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | | `tecUNFUNDED_AMM` | The sender does not have a high enough balance to make the specified deposit. | | `temBAD_AMM_TOKENS` | The transaction specified the LP Tokens incorrectly. For example, the `issuer` is not the AMM's associated AccountRoot address or the `currency` is not the currency code for this AMM's LP Tokens, or the transaction specified this AMM's LP Tokens in one of the asset fields. | | `temBAD_AMOUNT` | An amount specified in the transaction is invalid. For example, a deposit amount is negative. | @@ -138,8 +138,4 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `terNO_ACCOUNT` | An account specified in the request does not exist. | | `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/ammvote.md b/content/references/protocol/transactions/types/ammvote.md index 69dbd618ab..8c19eb8735 100644 --- a/content/references/protocol/transactions/types/ammvote.md +++ b/content/references/protocol/transactions/types/ammvote.md @@ -9,11 +9,11 @@ status: not_enabled # AMMVote [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMVote.cpp "Source") -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -Vote on the trading fee for an [Automated Market Maker](automated-market-makers.html) instance. Up to 8 accounts can vote in proportion to the amount of the AMM's LP Tokens they hold. Each new vote re-calculates the AMM's trading fee based on a weighted average of the votes. +Vote on the trading fee for an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) instance. Up to 8 accounts can vote in proportion to the amount of the AMM's LP Tokens they hold. Each new vote re-calculates the AMM's trading fee based on a weighted average of the votes. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -33,7 +33,7 @@ Vote on the trading fee for an [Automated Market Maker](automated-market-makers. } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Required? | Description | |:-------------|:----------|:------------------|:----------|:------------| @@ -43,7 +43,7 @@ Vote on the trading fee for an [Automated Market Maker](automated-market-makers. ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:------------------------|:---------------------------------------------| @@ -53,8 +53,4 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `temBAD_FEE` | The `TradingFee` from this transaction is not valid. | | `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/ammwithdraw.md b/content/references/protocol/transactions/types/ammwithdraw.md index abe8b37d20..1a30c34c36 100644 --- a/content/references/protocol/transactions/types/ammwithdraw.md +++ b/content/references/protocol/transactions/types/ammwithdraw.md @@ -9,11 +9,11 @@ status: not_enabled # AMMWithdraw [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMWithdraw.cpp "Source") -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -Withdraw assets from an [Automated Market Maker](automated-market-makers.html) (AMM) instance by returning the AMM's liquidity provider tokens (LP Tokens). +Withdraw assets from an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance by returning the AMM's liquidity provider tokens (LP Tokens). -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -38,7 +38,7 @@ Withdraw assets from an [Automated Market Maker](automated-market-makers.html) ( } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Required? | Description | |:-------------|:--------------------|:------------------|:----------|:------------| @@ -89,7 +89,7 @@ If the transaction withdraws the last of the AMM's assets, it automatically trie ### AMMWithdraw Flags -Transactions of the AMMWithdraw type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the AMMWithdraw type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:------------------------|:-------------|:--------------|:----------------------| @@ -101,12 +101,12 @@ Transactions of the AMMWithdraw type support additional values in the [`Flags` f | `tfOneAssetLPToken` | `0x00200000` | 2097152 | Perform a single-asset withdrawal and receive the specified amount of LP Tokens. | | `tfLimitLPToken` | `0x00400000` | 4194304 | Perform a single-asset withdrawal with a specified effective price. | -You must specify **exactly one** of these flags, plus any [global flags](transaction-common-fields.html#global-flags). +You must specify **exactly one** of these flags, plus any [global flags](../common-fields.md#global-flags). ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:------------------------|:---------------------------------------------| @@ -114,15 +114,11 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `tecAMM_BALANCE` | The transaction would withdraw all of one asset from the pool, or rounding would cause a "withdraw all" to leave a nonzero amount behind. | | `tecAMM_FAILED` | The conditions on the withdrawal could not be satisfied; for example, the requested effective price in the `EPrice` field is too low. | | `tecAMM_INVALID_TOKENS` | The AMM for this token pair does not exist, or one of the calculations resulted in a withdrawal amount rounding to zero. | -| `tecFROZEN` | The transaction tried to withdraw a [frozen](freezes.html) token. | -| `tecINSUF_RESERVE_LINE` | The sender of this transaction does not meet the increased [reserve requirement](reserves.html) of processing this transaction, probably because they need at least one new trust line to hold one of the assets to be withdrawn, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | +| `tecFROZEN` | The transaction tried to withdraw a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) token. | +| `tecINSUF_RESERVE_LINE` | The sender of this transaction does not meet the increased [reserve requirement](../../../../concepts/accounts/reserves.md) of processing this transaction, probably because they need at least one new trust line to hold one of the assets to be withdrawn, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | | `tecNO_AUTH` | The sender is not authorized to hold one of the AMM assets. | | `temMALFORMED` | The transaction specified an invalid combination of fields. See [AMMWithdraw Modes](#ammwithdraw-modes). (This error can also occur if the transaction is malformed in other ways.) | | `temBAD_AMM_TOKENS` | The transaction specified the LP Tokens incorrectly; for example, the `issuer` is not the AMM's associated AccountRoot address or the `currency` is not the currency code for this AMM's LP Tokens, or the transaction specified this AMM's LP Tokens in one of the asset fields. | | `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/checkcancel.md b/content/references/protocol/transactions/types/checkcancel.md index cf055b2038..27d60672f6 100644 --- a/content/references/protocol/transactions/types/checkcancel.md +++ b/content/references/protocol/transactions/types/checkcancel.md @@ -12,7 +12,7 @@ _(Added by the [Checks amendment][].)_ Cancels an unredeemed Check, removing it from the ledger without sending any money. The source or the destination of the check can cancel a Check at any time using this transaction type. If the Check has expired, any address can cancel it. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -23,21 +23,18 @@ Cancels an unredeemed Check, removing it from the ledger without sending any mon } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_CheckCancel%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22D3328000315C6DCEC1426E4E549288E3672752385D86A40D56856DBD10382953%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_CheckCancel%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22D3328000315C6DCEC1426E4E549288E3672752385D86A40D56856DBD10382953%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:------------|:----------|:------------------|:-------------------------------| -| `CheckID` | String | Hash256 | The ID of the [Check ledger object](check.html) to cancel, as a 64-character hexadecimal string. | +| `CheckID` | String | Hash256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cancel, as a 64-character hexadecimal string. | ## Error Cases - If the object identified by the `CheckID` does not exist or is not a Check, the transaction fails with the result `tecNO_ENTRY`. - If the Check is not expired and the sender of the CheckCancel transaction is not the source or destination of the Check, the transaction fails with the result `tecNO_PERMISSION`. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/checkcash.md b/content/references/protocol/transactions/types/checkcash.md index 53d5cce3b2..f7cd81de54 100644 --- a/content/references/protocol/transactions/types/checkcash.md +++ b/content/references/protocol/transactions/types/checkcash.md @@ -14,7 +14,7 @@ Attempts to redeem a Check object in the ledger to receive up to the amount auth Since the funds for a check are not guaranteed, redeeming a Check can fail because the sender does not have a high enough balance or because there is not enough liquidity to deliver the funds. If this happens, the Check remains in the ledger and the destination can try to cash it again later, or for a different amount. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -26,14 +26,14 @@ Since the funds for a check are not guaranteed, redeeming a Check can fail becau } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_CheckCash%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%2267B71B13601CDA5402920691841AC27A156463678E106FABD45357175F9FF406%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_CheckCash%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%2267B71B13601CDA5402920691841AC27A156463678E106FABD45357175F9FF406%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-------------|:--------------------|:------------------|:--------------------| -| `CheckID` | String | Hash256 | The ID of the [Check ledger object](check.html) to cash, as a 64-character hexadecimal string. | +| `CheckID` | String | Hash256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cash, as a 64-character hexadecimal string. | | `Amount` | [Currency Amount][] | Amount | _(Optional)_ Redeem the Check for exactly this amount, if possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `DeliverMin`. | | `DeliverMin` | [Currency Amount][] | Amount | _(Optional)_ Redeem the Check for at least this amount and for as much as possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `Amount`. | @@ -48,7 +48,4 @@ The transaction ***must*** include either `Amount` or `DeliverMin`, but not both - If the transaction specifies both `Amount` and `DeliverMin`, or omits both, the transaction fails with the result `temMALFORMED`. - If the `Amount` or `DeliverMin` does not match the currency (and issuer, if not XRP) of the Check, the transaction fails with the result `temBAD_CURRENCY`. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/checkcreate.md b/content/references/protocol/transactions/types/checkcreate.md index f237c9db62..70f224806d 100644 --- a/content/references/protocol/transactions/types/checkcreate.md +++ b/content/references/protocol/transactions/types/checkcreate.md @@ -12,7 +12,7 @@ _(Added by the [Checks amendment][].)_ Create a Check object in the ledger, which is a deferred payment that can be cashed by its intended destination. The sender of this transaction is the sender of the Check. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -27,31 +27,28 @@ Create a Check object in the ledger, which is a deferred payment that can be cas } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_CheckCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%224E0AA11CBDD1760DE95B68DF2ABBE75C9698CEB548BEA9789053FCB3EBD444FB%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_CheckCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%224E0AA11CBDD1760DE95B68DF2ABBE75C9698CEB548BEA9789053FCB3EBD444FB%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-----------------|:--------------------|:------------------|:----------------| -| `Destination` | String | AccountID | The unique address of the [account](accounts.html) that can cash the Check. | -| `SendMax` | [Currency Amount][] | Amount | Maximum amount of source currency the Check is allowed to debit the sender, including [transfer fees](transfer-fees.html) on non-XRP currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XRP currencies). For non-XRP amounts, the nested field names MUST be lower-case. | +| `Destination` | String | AccountID | The unique address of the [account](../../../../concepts/accounts/accounts.md) that can cash the Check. | +| `SendMax` | [Currency Amount][] | Amount | Maximum amount of source currency the Check is allowed to debit the sender, including [transfer fees](../../../../concepts/tokens/transfer-fees.md) on non-XRP currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XRP currencies). For non-XRP amounts, the nested field names MUST be lower-case. | | `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag that identifies the reason for the Check, or a hosted recipient to pay. | | `Expiration` | Number | UInt32 | _(Optional)_ Time after which the Check is no longer valid, in [seconds since the Ripple Epoch][]. | | `InvoiceID` | String | Hash256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this Check. | ## Error Cases -- If the `Destination` account is blocking incoming Checks, the transaction fails with the result code `tecNO_PERMISSION`. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ +- If the `Destination` account is blocking incoming Checks, the transaction fails with the result code `tecNO_PERMISSION`. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ - If the `Destination` is the sender of the transaction, the transaction fails with the result code `temREDUNDANT`. -- If the `Destination` [account](accounts.html) does not exist in the ledger, the transaction fails with the result code `tecNO_DST`. +- If the `Destination` [account](../../../../concepts/accounts/accounts.md) does not exist in the ledger, the transaction fails with the result code `tecNO_DST`. - If the `Destination` account has the `RequireDest` flag enabled but the transaction does not include a `DestinationTag` field, the transaction fails with the result code `tecDST_TAG_NEEDED`. -- If `SendMax` specifies a token which is [frozen](freezes.html), the transaction fails with the result `tecFROZEN`. +- If `SendMax` specifies a token which is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md), the transaction fails with the result `tecFROZEN`. - If the `Expiration` of the transaction is in the past, the transaction fails with the result `tecEXPIRED`. -- If the sender does not have enough XRP to meet the [owner reserve](reserves.html#owner-reserves) after adding the Check, the transaction fails with the result `tecINSUFFICIENT_RESERVE`. +- If the sender does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) after adding the Check, the transaction fails with the result `tecINSUFFICIENT_RESERVE`. - If either the sender or the destination of the Check cannot own more objects in the ledger, the transaction fails with the result `tecDIR_FULL`. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/clawback.md b/content/references/protocol/transactions/types/clawback.md index 65a2a385a4..ad1203bcef 100644 --- a/content/references/protocol/transactions/types/clawback.md +++ b/content/references/protocol/transactions/types/clawback.md @@ -9,13 +9,13 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Clawback.cpp "Source") -{% include '_snippets/clawback-disclaimer.md' %} +{% partial file="/_snippets/clawback-disclaimer.md" /%} Claw back tokens issued by your account. Clawback is disabled by default. To use clawback, you must send an [AccountSet transaction][] to enable the **Allow Trust Line Clawback** setting. An issuer with any existing tokens cannot enable Clawback. You can only enable **Allow Trust Line Clawback** if you have a completely empty owner directory, meaning you must do so before you set up any trust lines, offers, escrows, payment channels, checks, or signer lists. After you enable Clawback, it cannot reverted: the account permanently gains the ability to claw back issued assets on trust lines. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -29,7 +29,7 @@ Clawback is disabled by default. To use clawback, you must send an [AccountSet t } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-------------------|:----------|:------------------|:------------------| @@ -40,16 +40,13 @@ Clawback is disabled by default. To use clawback, you must send an [AccountSet t ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:-----------|:------------| -| `temDISABLED` | Occurs if the [Clawback amendment](known-amendments.html#clawback) is not enabled. | +| `temDISABLED` | Occurs if the [Clawback amendment](../../../../resources/known-amendments.md#clawback) is not enabled. | | `temBAD_AMOUNT` | Occurs if the holder's balance is 0. It is not an error if the amount exceeds the holder's balance; in that case, the maximum available balance is clawed back. Also occurs if the counterparty listed in `Amount` is the same as the `Account` issuing this transaction. | | `tecNO_LINE` | Occurs there is no trust line with the counterparty or that trust line's balance is 0. | | `tecNO_PERMISSION` | Occurs if you attempt to set `lsfAllowTrustlineClawback` while `lsfNoFreeze` is set. Also occurs, conversely, if you try to set `lsfNoFreeze` while `lsfAllowTrustLineClawback` is set. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/depositpreauth.md b/content/references/protocol/transactions/types/depositpreauth.md index 503f5a806f..3c92d0c725 100644 --- a/content/references/protocol/transactions/types/depositpreauth.md +++ b/content/references/protocol/transactions/types/depositpreauth.md @@ -10,11 +10,11 @@ labels: _Added by the [DepositPreauth amendment][]._ -A DepositPreauth transaction gives another account pre-approval to deliver payments to the sender of this transaction. This is only useful if the sender of this transaction is using (or plans to use) [Deposit Authorization](depositauth.html). +A DepositPreauth transaction gives another account pre-approval to deliver payments to the sender of this transaction. This is only useful if the sender of this transaction is using (or plans to use) [Deposit Authorization](../../../../concepts/accounts/depositauth.md). **Tip:** You can use this transaction to preauthorize certain counterparties before you enable Deposit Authorization. This may be useful to ensure a smooth transition from not requiring deposit authorization to requiring it. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -27,9 +27,9 @@ A DepositPreauth transaction gives another account pre-approval to deliver payme } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_DepositPreauth%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22CB1BF910C93D050254C049E9003DA1A265C107E0C8DE4A7CFF55FADFD39D5656%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_DepositPreauth%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22CB1BF910C93D050254C049E9003DA1A265C107E0C8DE4A7CFF55FADFD39D5656%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -42,14 +42,10 @@ You must provide _either_ `Authorize` or `Unauthorize`, but not both. This transaction has the following limitations: -- An account cannot preauthorize (or unauthorize) its own address. Attempting to do so fails with the result [`temCANNOT_PREAUTH_SELF`](tem-codes.html). -- Attempting to preauthorize an account which is already preauthorized fails with the result [`tecDUPLICATE`](tec-codes.html). -- Attempting to unauthorize an account which is not preauthorized fails with the result [`tecNO_ENTRY`](tec-codes.html). -- Attempting to preauthorize an address that is not funded in the ledger fails with the result [`tecNO_TARGET`](tec-codes.html). -- Adding authorization adds a [DepositPreauth object](depositpreauth-object.html) to the ledger, which counts toward the [owner reserve requirement](reserves.html#owner-reserves). If the sender of the transaction does not have enough XRP to pay for the increased reserve, the transaction fails with the result [`tecINSUFFICIENT_RESERVE`](tec-codes.html). If the sender of the account is already at the maximum number of owned objects, the transaction fails with the result [`tecDIR_FULL`](tec-codes.html). +- An account cannot preauthorize (or unauthorize) its own address. Attempting to do so fails with the result [`temCANNOT_PREAUTH_SELF`](../transaction-results/tem-codes.md). +- Attempting to preauthorize an account which is already preauthorized fails with the result [`tecDUPLICATE`](../transaction-results/tec-codes.md). +- Attempting to unauthorize an account which is not preauthorized fails with the result [`tecNO_ENTRY`](../transaction-results/tec-codes.md). +- Attempting to preauthorize an address that is not funded in the ledger fails with the result [`tecNO_TARGET`](../transaction-results/tec-codes.md). +- Adding authorization adds a [DepositPreauth object](../../ledger-data/ledger-entry-types/depositpreauth.md) to the ledger, which counts toward the [owner reserve requirement](../../../../concepts/accounts/reserves.md#owner-reserves). If the sender of the transaction does not have enough XRP to pay for the increased reserve, the transaction fails with the result [`tecINSUFFICIENT_RESERVE`](../transaction-results/tec-codes.md). If the sender of the account is already at the maximum number of owned objects, the transaction fails with the result [`tecDIR_FULL`](../transaction-results/tec-codes.md). - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/diddelete.md b/content/references/protocol/transactions/types/diddelete.md index ca8e356f4d..b0c05c60b9 100644 --- a/content/references/protocol/transactions/types/diddelete.md +++ b/content/references/protocol/transactions/types/diddelete.md @@ -10,14 +10,14 @@ status: not_enabled [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DID.cpp "Source") -_(Requires the [DID amendment][] :not_enabled:)_ +_(Requires the [DID amendment][] {% not-enabled /%})_ -Delete the [DID ledger entry](did.html) associated with the specified `Account` field. +Delete the [DID ledger entry](../../ledger-data/ledger-entry-types/did.md) associated with the specified `Account` field. **Note:** This transaction only uses the [common fields][]. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -33,14 +33,10 @@ Delete the [DID ledger entry](did.html) associated with the specified `Account` ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:--------------------|:---------------------------------------------| | `tecNO_ENTRY` | The account doesn't have a DID. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/didset.md b/content/references/protocol/transactions/types/didset.md index 64b134bd6c..3fec2b1217 100644 --- a/content/references/protocol/transactions/types/didset.md +++ b/content/references/protocol/transactions/types/didset.md @@ -10,12 +10,12 @@ status: not_enabled [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DID.cpp "Source") -_(Requires the [DID amendment][] :not_enabled:)_ +_(Requires the [DID amendment][] {% not-enabled /%})_ -Creates a new [DID ledger entry](did.html) or updates the fields of an existing one. +Creates a new [DID ledger entry](../../ledger-data/ledger-entry-types/did.md) or updates the fields of an existing one. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -29,7 +29,7 @@ Creates a new [DID ledger entry](did.html) or updates the fields of an existing } ``` -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Required? | Description | |:--------------|:----------|:------------------|:----------|:------------| @@ -44,15 +44,11 @@ You must include either `Data`, `DIDDocument`, or `URI` when you submit the `DID ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:--------------------|:---------------------------------------------| | `tecEMPTY_DID` | The transaction will create an empty DID ledger entry. Check that your updates don't remove the `Data`, `DIDDocument`, and `URI` fields. | | `temEMPTY_DID` | The transaction is malformed and missing any DID information. Include either the `Data`, `DIDDocument`, or `URI` fields. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/escrowcancel.md b/content/references/protocol/transactions/types/escrowcancel.md index 226854fbe3..6832e476af 100644 --- a/content/references/protocol/transactions/types/escrowcancel.md +++ b/content/references/protocol/transactions/types/escrowcancel.md @@ -13,7 +13,7 @@ _Added by the [Escrow amendment][]._ Return escrowed XRP to the sender. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -24,23 +24,20 @@ Return escrowed XRP to the sender. } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_EscrowCancel%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22B24B9D7843F99AED7FB8A3929151D0CCF656459AE40178B77C9D44CED64E839B%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_EscrowCancel%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22B24B9D7843F99AED7FB8A3929151D0CCF656459AE40178B77C9D44CED64E839B%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:----------------|:----------|:------------------|:---------------------------| | `Owner` | String | AccountID | Address of the source account that funded the escrow payment. | -| `OfferSequence` | Number | UInt32 | Transaction sequence (or [Ticket](tickets.html) number) of [EscrowCreate transaction][] that created the escrow to cancel. | +| `OfferSequence` | Number | UInt32 | Transaction sequence (or [Ticket](../../../../concepts/accounts/tickets.md) number) of [EscrowCreate transaction][] that created the escrow to cancel. | Any account may submit an EscrowCancel transaction. * If the corresponding [EscrowCreate transaction][] did not specify a `CancelAfter` time, the EscrowCancel transaction fails. * Otherwise the EscrowCancel transaction fails if the `CancelAfter` time is after the close time of the most recently-closed ledger. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/escrowcreate.md b/content/references/protocol/transactions/types/escrowcreate.md index 7466c0aff6..ba602a640a 100644 --- a/content/references/protocol/transactions/types/escrowcreate.md +++ b/content/references/protocol/transactions/types/escrowcreate.md @@ -13,7 +13,7 @@ _Added by the [Escrow amendment][]._ Sequester XRP until the escrow process either finishes or is canceled. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -29,9 +29,9 @@ Sequester XRP until the escrow process either finishes or is canceled. } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_EscrowCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_EscrowCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -58,8 +58,4 @@ It is not possible to create a conditional escrow with no expiration, but you ca **Note:** Before the [fix1571 amendment][] became enabled on 2018-06-19, it was possible to create an escrow with `CancelAfter` only. These escrows could be finished by anyone at any time before the specified expiration. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/escrowfinish.md b/content/references/protocol/transactions/types/escrowfinish.md index 476e260d36..bb5c15e7ce 100644 --- a/content/references/protocol/transactions/types/escrowfinish.md +++ b/content/references/protocol/transactions/types/escrowfinish.md @@ -13,7 +13,7 @@ _Added by the [Escrow amendment][]._ Deliver XRP from a held payment to the recipient. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -26,9 +26,9 @@ Deliver XRP from a held payment to the recipient. } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_EscrowFinish%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22317081AF188CDD4DBE55C418F41A90EC3B959CDB3B76105E0CBE6B7A0F56C5F7%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_EscrowFinish%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22317081AF188CDD4DBE55C418F41A90EC3B959CDB3B76105E0CBE6B7A0F56C5F7%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -45,11 +45,8 @@ Any account may submit an EscrowFinish transaction. - If the held payment has a `Condition`, you cannot execute it unless you provide a matching `Fulfillment` for the condition. - You cannot execute a held payment after it has expired. Specifically, if the corresponding [EscrowCreate transaction][] specified a `CancelAfter` time that is before the close time of the most recently-closed ledger, the EscrowFinish transaction fails. -**Note:** The minimum [transaction cost](transaction-cost.html) to submit an EscrowFinish transaction increases if it contains a fulfillment. If the transaction has no fulfillment, the transaction cost is the standard 10 drops. If the transaction contains a fulfillment, the transaction cost is 330 [drops of XRP][] plus another 10 drops for every 16 bytes in size of the preimage. +**Note:** The minimum [transaction cost](../../../../concepts/transactions/transaction-cost.md) to submit an EscrowFinish transaction increases if it contains a fulfillment. If the transaction has no fulfillment, the transaction cost is the standard 10 drops. If the transaction contains a fulfillment, the transaction cost is 330 [drops of XRP][] plus another 10 drops for every 16 bytes in size of the preimage. -In [non-production networks](parallel-networks.html), it may be possible [to delete](deleting-accounts.html) the destination account of a pending escrow. In this case, an attempt to finish the escrow fails with the result `tecNO_TARGET`, but the escrow object remains unless it has expired normally. If another payment re-creates the destination account, the escrow can be finished successfully. The destination account of an escrow can only be deleted if the escrow was created before the [fix1523 amendment](known-amendments.html#fix1523) became enabled. No such escrows exist in the production XRP Ledger, so this edge case is not possible on the production XRP Ledger. This edge case is also not possible in test networks that enable both fix1523 and Escrow amendments at the same time, which is the default when you [start a new genesis ledger](start-a-new-genesis-ledger-in-stand-alone-mode.html). +In [non-production networks](../../../../concepts/networks-and-servers/parallel-networks.md), it may be possible [to delete](../../../../concepts/accounts/deleting-accounts.md) the destination account of a pending escrow. In this case, an attempt to finish the escrow fails with the result `tecNO_TARGET`, but the escrow object remains unless it has expired normally. If another payment re-creates the destination account, the escrow can be finished successfully. The destination account of an escrow can only be deleted if the escrow was created before the [fix1523 amendment](../../../../resources/known-amendments.md#fix1523) became enabled. No such escrows exist in the production XRP Ledger, so this edge case is not possible on the production XRP Ledger. This edge case is also not possible in test networks that enable both fix1523 and Escrow amendments at the same time, which is the default when you [start a new genesis ledger](../../../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/index.md b/content/references/protocol/transactions/types/index.md index cd71fb456d..db8b042b7e 100644 --- a/content/references/protocol/transactions/types/index.md +++ b/content/references/protocol/transactions/types/index.md @@ -2,7 +2,8 @@ html: transaction-types.html parent: transaction-formats.html blurb: All the different types of transactions that the XRP Ledger can process. -template: pagetype-category.html.jinja +metadata: + indexPage: true labels: - Blockchain --- @@ -12,6 +13,9 @@ The type of a transaction (`TransactionType` field) is the most fundamental info All transactions have certain fields in common: -* [Common Fields](transaction-common-fields.html) +* [Common Fields](../common-fields.md) Each transaction type has additional fields relevant to the type of action it causes. + + +{% child-pages /%} diff --git a/content/references/protocol/transactions/types/nftokenacceptoffer.md b/content/references/protocol/transactions/types/nftokenacceptoffer.md index a5b8645ce2..3f78719946 100644 --- a/content/references/protocol/transactions/types/nftokenacceptoffer.md +++ b/content/references/protocol/transactions/types/nftokenacceptoffer.md @@ -35,7 +35,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenAcceptOffer%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22BEB64444C36D1072820BAED317BE2E6470AFDAD9D8FB2D16A15A4D46E5A71909%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenAcceptOffer%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22BEB64444C36D1072820BAED317BE2E6470AFDAD9D8FB2D16A15A4D46E5A71909%22%2C%22binary%22%3Afalse%7D) ## Brokered vs. Direct Mode @@ -60,7 +60,7 @@ If the transaction succeeds: - The `NFToken` changes ownership, meaning that the token is removed from the `NFTokenPage` of the existing owner and added to the `NFTokenPage` of the new owner. - Funds are transferred from the buyer to the seller, as specified in the `NFTokenOffer`. If the `NFToken` has a transfer fee, then its issuer receives the specified percentage, and the rest goes to the seller. -The transaction fails with a [`tec`-class code](tec-codes.html) if: +The transaction fails with a [`tec`-class code](../transaction-results/tec-codes.md) if: - The buyer already owns the `NFToken`. - The seller is not the current owner of the `NFToken`. @@ -71,7 +71,7 @@ The transaction fails with a [`tec`-class code](tec-codes.html) if: ## Fields -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-------------------|:--------------------|:------------------|:--------------| @@ -89,7 +89,7 @@ In brokered mode, the offers referenced by `NFTokenBuyOffer` and `NFTokenSellOff ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:-----------------------------------|:----------------------------------------| @@ -97,15 +97,11 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `temMALFORMED` | The transaction was not validly formatted. For example, it specified neither `NFTokenSellOffer` nor `NFTokenBuyOffer`, or it specified a negative `NFTokenBrokerFee`. | | `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | The buyer and seller are the same account. | | `tecEXPIRED` | An offer specified in the transaction has already expired. | -| `tecINSUFFICIENT_FUNDS` | The buyer does not have the full amount they are offering. If the buy amount is specified in XRP, this could be because of the [reserve requirement](reserves.html). If the buy amount is a token, it could be because the token is [frozen](freezes.html). | +| `tecINSUFFICIENT_FUNDS` | The buyer does not have the full amount they are offering. If the buy amount is specified in XRP, this could be because of the [reserve requirement](../../../../concepts/accounts/reserves.md). If the buy amount is a token, it could be because the token is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | | `tecINSUFFICIENT_PAYMENT` | In brokered mode, the buy amount offered is not high enough to pay the `BrokerFee` _and_ the sell cost of the `NFToken`. | | `tecOBJECT_NOT_FOUND` | One of the offers specified in the transaction does not exist in the ledger. | | `tecNFTOKEN_BUY_SELL_MISMATCH` | In brokered mode, the two offers are not a valid match. For example, the seller is asking more than the buyer is offering, the buy and sell offer are denominated in different assets, or the seller specified a destination that is not the buyer or the broker. | | `tecNFTOKEN_OFFER_TYPE_MISMATCH` | The object identified by the `NFTokenBuyOffer` is not actually a buy offer, or the object identified by the `NFTokenSellOffer` is not actually a sell offer. | | `tecNO_PERMISSION` | The seller does not own the `NFToken` being sold; or the matching offer specifies a different `Destination` account than the account accepting the offer. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/nftokenburn.md b/content/references/protocol/transactions/types/nftokenburn.md index b24f011927..d8fdd5a283 100644 --- a/content/references/protocol/transactions/types/nftokenburn.md +++ b/content/references/protocol/transactions/types/nftokenburn.md @@ -17,7 +17,7 @@ If this operation succeeds, the corresponding `NFToken` is removed. If this oper _(Added by the [NonFungibleTokensV1_1 amendment][].)_ -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -29,9 +29,9 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenBurn%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%227B9EFDFDC801C58F2B61B89AA2751634F49CE2A93923671FF0F4F099C7EE17FF%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenBurn%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%227B9EFDFDC801C58F2B61B89AA2751634F49CE2A93923671FF0F4F099C7EE17FF%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:------------------|:----------|:------------------|:-------------------------| @@ -41,7 +41,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:-------------------|:--------------------------------------------------------| @@ -49,7 +49,4 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `tecNO_ENTRY` | The specified `TokenID` was not found. | | `tecNO_PERMISSION` | The account does not have permission to burn the token. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/nftokencanceloffer.md b/content/references/protocol/transactions/types/nftokencanceloffer.md index e7a7abd065..60d4a956bc 100644 --- a/content/references/protocol/transactions/types/nftokencanceloffer.md +++ b/content/references/protocol/transactions/types/nftokencanceloffer.md @@ -12,19 +12,19 @@ The `NFTokenCancelOffer` transaction can be used to cancel existing token offers _(Added by the [NonFungibleTokensV1_1 amendment][].)_ -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { - "TransactionType": "NFTokenCancelOffer", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "NFTokenOffers": [ + "TransactionType": "NFTokenCancelOffer", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "NFTokenOffers": [ "9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D" ] } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenCancelOffer%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%229FF6366C19F762AE3479DC01390CDE17F1055EFF0C52A28B8ACF0CC11AEF0CC5%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenCancelOffer%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%229FF6366C19F762AE3479DC01390CDE17F1055EFF0C52A28B8ACF0CC11AEF0CC5%22%2C%22binary%22%3Afalse%7D) ## Permissions @@ -36,21 +36,21 @@ An existing offer, represented by an `NFTokenOffer` object, can be cancelled by: This transaction removes the listed `NFTokenOffer` object from the ledger, if present, and adjusts the reserve requirements accordingly. It is not an error if the `NFTokenOffer` cannot be found: if that is the case, the transaction should complete successfully. -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:------------------|:----------|:------------------|:-------------------------| -| `NFTokenOffers` | Array | VECTOR256 | An array of IDs of the `NFTokenOffer` objects to cancel (not the IDs of `NFToken` objects, but the IDs of the `NFTokenOffer` objects). Each entry must be a different [object ID](ledger-object-ids.html) of an [NFTokenOffer](nftokenoffer.html) object; the transaction is invalid if the array contains duplicate entries. | +| `NFTokenOffers` | Array | VECTOR256 | An array of IDs of the `NFTokenOffer` objects to cancel (not the IDs of `NFToken` objects, but the IDs of the `NFTokenOffer` objects). Each entry must be a different [object ID](../../ledger-data/common-fields.md) of an [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object; the transaction is invalid if the array contains duplicate entries. | -The transaction can succeed even if one or more of the IDs in the `NFTokenOffers` field do not refer to objects that currently exist in the ledger. (For example, those token offers might already have been deleted.) The transaction fails with an error if one of the IDs points to an object that does exist, but is not a [NFTokenOffer](nftokenoffer.html) object. +The transaction can succeed even if one or more of the IDs in the `NFTokenOffers` field do not refer to objects that currently exist in the ledger. (For example, those token offers might already have been deleted.) The transaction fails with an error if one of the IDs points to an object that does exist, but is not a [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object. It is important to note that if you inadvertently provide a `nft_id` rather than a `nft_offer_index`, you might receive a `tesSUCCESS` response. The reason is that when passed a properly formatted ID value that is not found, the system assumes that the `NFTokenOffer` has already been deleted. -The transaction fails with an error if one of the IDs points to an object that does exist, but is not a [NFTokenOffer](nftokenoffer.html) object. +The transaction fails with an error if one of the IDs points to an object that does exist, but is not a [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object. ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:-------------------|:--------------------------------------------------------| @@ -58,7 +58,4 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `temMALFORMED` | The transaction was not validly formatted. For example, the `NFTokenOffers` array was empty or contained more than the maximum number of offers that can be canceled at one time. | | `tecNO_PERMISSION` | At least one of the IDs in the `NFTokenOffers` field refers to an object that cannot be canceled. For example, the sender of this transaction is not the owner or `Destination` of the offer, or the object was not an `NFTokenOffer` type object. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/nftokencreateoffer.md b/content/references/protocol/transactions/types/nftokencreateoffer.md index d85c321b1b..f2de9a29bd 100644 --- a/content/references/protocol/transactions/types/nftokencreateoffer.md +++ b/content/references/protocol/transactions/types/nftokencreateoffer.md @@ -10,25 +10,25 @@ labels: Creates either a new _Sell_ offer for an `NFToken` owned by the account executing the transaction, or a new _Buy_ offer for an `NFToken` owned by another account. -If successful, the transaction creates a [NFTokenOffer object][]. Each offer counts as one object towards the [owner reserve](reserves.html) of the account that placed the offer. +If successful, the transaction creates a [NFTokenOffer object][]. Each offer counts as one object towards the [owner reserve](../../../../concepts/accounts/reserves.md) of the account that placed the offer. _(Added by the [NonFungibleTokensV1_1 amendment][].)_ -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { - "TransactionType": "NFTokenCreateOffer", - "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", - "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", - "Amount": "1000000", - "Flags": 1 + "TransactionType": "NFTokenCreateOffer", + "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", + "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", + "Amount": "1000000", + "Flags": 1 } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenCreateOffer%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22780C44B2EDFF8FC4152B3F7E98D4C435C13DF9BB5498E4BB2D019FCC7EF45BC6%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenCreateOffer%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22780C44B2EDFF8FC4152B3F7E98D4C435C13DF9BB5498E4BB2D019FCC7EF45BC6%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:--------------|:--------------------|:------------------|:-------------------| @@ -41,7 +41,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## NFTokenCreateOffer Flags -Transactions of the NFTokenCreateOffer type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the NFTokenCreateOffer type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:----------------|:-------------|:--------------|:------------------------------| @@ -50,28 +50,23 @@ Transactions of the NFTokenCreateOffer type support additional values in the [`F ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:---------------------------------|:------------------------------------------| | `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | -| `temBAD_AMOUNT` | The `Amount` field is not valid. For example, the amount was zero for a buy offer, or the amount is denominated in fungible tokens but the `NFToken` has the [`lsfOnlyXRP` flag](nftoken.html#nftoken-flags) enabled. | +| `temBAD_AMOUNT` | The `Amount` field is not valid. For example, the amount was zero for a buy offer, or the amount is denominated in fungible tokens but the `NFToken` has the [`lsfOnlyXRP` flag](../../data-types/nftoken.md#nftoken-flags) enabled. | | `temBAD_EXPIRATION` | The specified `Expiration` time is invalid (for example, `0`). | | `tecDIR_FULL` | The sender already owns too many objects in the ledger, or there are already too many offers to buy or sell this token. | | `tecEXPIRED` | The specified `Expiration` time has already passed. | -| `tecFROZEN` | The `Amount` is denominated in fungible tokens, but one of the trust lines that would receive tokens from this offer is [frozen](freezes.html). This could be the seller's trust line or the `NFToken`'s issuer's trust line (if the `NFToken` has a transfer fee). | -| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](reserves.html) after placing this offer. | +| `tecFROZEN` | The `Amount` is denominated in fungible tokens, but one of the trust lines that would receive tokens from this offer is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). This could be the seller's trust line or the `NFToken`'s issuer's trust line (if the `NFToken` has a transfer fee). | +| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](../../../../concepts/accounts/reserves.md) after placing this offer. | | `tecNO_DST` | The account specified in the `Destination` field does not exist in the ledger. | | `tecNO_ENTRY` | The `NFToken` is not owned by the expected account. | | `tecNO_ISSUER` | The issuer specified in the `Amount` field does not exist. | -| `tecNO_LINE` | The `Amount` field is denominated in fungible tokens, but the `NFToken`'s issuer does not have a trust line for those tokens and the `NFToken` does not have the [`lsfTrustLine` flag](nftoken.html#nftoken-flags) enabled. | -| `tecNO_PERMISSION` | The `Destination` account blocks incoming NFTokenOffers. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ -| `tecUNFUNDED_OFFER` | For a buy offer, the sender does have the funds specified in the `Amount` field available. If the `Amount` is XRP, this could be due to the reserve requirement; if the `Amount` is denominated in fungible tokens, this could be because they are [frozen](freezes.html). | -| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The `NFToken` has the [`lsfTransferable` flag](nftoken.html#nftoken-flags) disabled and this transaction would not transfer the `NFToken` to or from the issuer. | +| `tecNO_LINE` | The `Amount` field is denominated in fungible tokens, but the `NFToken`'s issuer does not have a trust line for those tokens and the `NFToken` does not have the [`lsfTrustLine` flag](../../data-types/nftoken.md#nftoken-flags) enabled. | +| `tecNO_PERMISSION` | The `Destination` account blocks incoming NFTokenOffers. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ +| `tecUNFUNDED_OFFER` | For a buy offer, the sender does have the funds specified in the `Amount` field available. If the `Amount` is XRP, this could be due to the reserve requirement; if the `Amount` is denominated in fungible tokens, this could be because they are [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The `NFToken` has the [`lsfTransferable` flag](../../data-types/nftoken.md#nftoken-flags) disabled and this transaction would not transfer the `NFToken` to or from the issuer. | - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/nftokenmint.md b/content/references/protocol/transactions/types/nftokenmint.md index faabce9750..9278e54b46 100644 --- a/content/references/protocol/transactions/types/nftokenmint.md +++ b/content/references/protocol/transactions/types/nftokenmint.md @@ -13,7 +13,7 @@ The `NFTokenMint` transaction creates a non-fungible token and adds it to the re _(Added by the [NonFungibleTokensV1_1 amendment][].)_ -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json @@ -37,9 +37,9 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenMint%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22B42C7A0C9C3061463C619999942D0F25E4AE5FB051EA0D7A4EE1A924DB6DFEE8%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenMint%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22B42C7A0C9C3061463C619999942D0F25E4AE5FB051EA0D7A4EE1A924DB6DFEE8%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:--------------|:--------------------|:------------------|:-------------------| @@ -52,19 +52,19 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## NFTokenMint Flags -Transactions of the NFTokenMint type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the NFTokenMint type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:--------------|:-------------|:--------------|:------------------------------| | `tfBurnable` | `0x00000001` | 1 | Allow the issuer (or an entity authorized by the issuer) to destroy the minted `NFToken`. (The `NFToken`'s owner can _always_ do so.) | | `tfOnlyXRP` | `0x00000002` | 2 | The minted `NFToken` can only be bought or sold for XRP. This can be desirable if the token has a transfer fee and the issuer does not want to receive fees in non-XRP currencies. | -| `tfTrustLine` | `0x00000004` | 4 | **DEPRECATED** Automatically create [trust lines](trust-lines-and-issuing.html) from the issuer to hold transfer fees received from transferring the minted `NFToken`. The [fixRemoveNFTokenAutoTrustLine amendment][] makes it invalid to set this flag. | +| `tfTrustLine` | `0x00000004` | 4 | **DEPRECATED** Automatically create [trust lines](../../../../concepts/tokens/fungible-tokens/index.md) from the issuer to hold transfer fees received from transferring the minted `NFToken`. The [fixRemoveNFTokenAutoTrustLine amendment][] makes it invalid to set this flag. | | `tfTransferable` | `0x00000008` | 8 | The minted `NFToken` can be transferred to others. If this flag is _not_ enabled, the token can still be transferred _from_ or _to_ the issuer, but a transfer to the issuer must be made based on a buy offer from the issuer and not a sell offer from the NFT holder. | ## Embedding additional information -If you need to specify additional information during minting (for example, details identifying a property by referencing a particular [plat](https://en.wikipedia.org/wiki/Plat), a vehicle by specifying a [VIN](https://en.wikipedia.org/wiki/Vehicle_identification_number), or other object-specific descriptions) you can use a [transaction memo](transaction-common-fields.html#memos-field). Memos are a part of the signed transaction and are available from historical archives, but are not stored in the ledger's state data. +If you need to specify additional information during minting (for example, details identifying a property by referencing a particular [plat](https://en.wikipedia.org/wiki/Plat), a vehicle by specifying a [VIN](https://en.wikipedia.org/wiki/Vehicle_identification_number), or other object-specific descriptions) you can use a [transaction memo](../common-fields.md#memos-field). Memos are a part of the signed transaction and are available from historical archives, but are not stored in the ledger's state data. ## Issuing on behalf of another account @@ -102,7 +102,7 @@ This transaction assumes that the issuer, `rNCFjv8Ek5oDrNiMJ3pw6eLLFtMjZLJnf2`, ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:------------------------------|:---------------------------------------------| @@ -112,11 +112,7 @@ Besides errors that can occur for all transactions, {{currentpage.name}} transac | `temMALFORMED` | The transaction was not validly specified. For example, the `URI` field is longer than 256 bytes. | | `tecNO_ISSUER` | The `Issuer` refers to an account that does not exist in the ledger. | | `tecNO_PERMISSION` | The account referenced by the `Issuer` field has not authorized this transaction's sender (using the `NFTokenMinter` setting) to mint on their behalf. | -| `tecINSUFFICIENT_RESERVE` | The owner would not meet the updated [reserve requirement](reserves.html) after minting the token. Note that new `NFToken`s only increase the owner's reserve if it requires a new [NFTokenPage object][], which can each hold up to 32 NFTs. | +| `tecINSUFFICIENT_RESERVE` | The owner would not meet the updated [reserve requirement](../../../../concepts/accounts/reserves.md) after minting the token. Note that new `NFToken`s only increase the owner's reserve if it requires a new [NFTokenPage object][], which can each hold up to 32 NFTs. | | `tecMAX_SEQUENCE_REACHED` | The `Issuer`'s `MintedNFTokens` field is already at its maximum. This is only possible if 232-1 `NFToken`s have been minted in total by the issuer or on their behalf. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/offercancel.md b/content/references/protocol/transactions/types/offercancel.md index 6f400d7782..c29cb745bc 100644 --- a/content/references/protocol/transactions/types/offercancel.md +++ b/content/references/protocol/transactions/types/offercancel.md @@ -11,7 +11,7 @@ labels: An OfferCancel transaction removes an Offer object from the XRP Ledger. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -25,19 +25,16 @@ An OfferCancel transaction removes an Offer object from the XRP Ledger. } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_OfferCancel%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22E7697D162A606FCC138C5732BF0D2A4AED49386DC59235FC3E218650AAC19744%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_OfferCancel%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22E7697D162A606FCC138C5732BF0D2A4AED49386DC59235FC3E218650AAC19744%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:----------------|:----------|:------------------|:-----------------------------| -| `OfferSequence` | Number | UInt32 | The sequence number (or [Ticket](tickets.html) number) of a previous OfferCreate transaction. If specified, cancel any offer object in the ledger that was created by that transaction. It is not considered an error if the offer specified does not exist. | +| `OfferSequence` | Number | UInt32 | The sequence number (or [Ticket](../../../../concepts/accounts/tickets.md) number) of a previous OfferCreate transaction. If specified, cancel any offer object in the ledger that was created by that transaction. It is not considered an error if the offer specified does not exist. | *Tip:* To remove an old offer and replace it with a new one, you can use an [OfferCreate transaction][] with an `OfferSequence` parameter, instead of using OfferCancel and another OfferCreate. -The OfferCancel method returns [`tesSUCCESS`](tes-success.html) even if it did not find an offer with the matching sequence number. +The OfferCancel method returns [`tesSUCCESS`](../transaction-results/tes-success.md) even if it did not find an offer with the matching sequence number. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/offercreate.md b/content/references/protocol/transactions/types/offercreate.md index 26c4303a2c..02ad8f95a0 100644 --- a/content/references/protocol/transactions/types/offercreate.md +++ b/content/references/protocol/transactions/types/offercreate.md @@ -9,9 +9,9 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/CreateOffer.cpp "Source") -An OfferCreate transaction places an [Offer](offers.html) in the [decentralized exchange](decentralized-exchange.html). +An OfferCreate transaction places an [Offer](../../../../concepts/tokens/decentralized-exchange/offers.md) in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md). -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -30,27 +30,27 @@ An OfferCreate transaction places an [Offer](offers.html) in the [decentralized } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_OfferCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%220CD69FD1F0A890CC57CDA430213FD294F7D65FF4A0F379A0D09D07A222D324E6%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_OfferCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%220CD69FD1F0A890CC57CDA430213FD294F7D65FF4A0F379A0D09D07A222D324E6%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:---------------|:--------------------|:------------------|:------------------| -| [`Expiration`](offers.html#offer-expiration) | Number | UInt32 | _(Optional)_ Time after which the Offer is no longer active, in [seconds since the Ripple Epoch][]. | +| [`Expiration`](../../../../concepts/tokens/decentralized-exchange/offers.md#offer-expiration) | Number | UInt32 | _(Optional)_ Time after which the Offer is no longer active, in [seconds since the Ripple Epoch][]. | | `OfferSequence` | Number | UInt32 | _(Optional)_ An Offer to delete first, specified in the same way as [OfferCancel][]. | | `TakerGets` | [Currency Amount][] | Amount | The amount and type of currency being sold. | | `TakerPays` | [Currency Amount][] | Amount | The amount and type of currency being bought. | ## OfferCreate Flags -Transactions of the OfferCreate type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the OfferCreate type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:----------------------|:-------------|:--------------|:----------------------| | `tfPassive` | `0x00010000` | 65536 | If enabled, the Offer does not consume Offers that exactly match it, and instead becomes an Offer object in the ledger. It still consumes Offers that cross it. | -| `tfImmediateOrCancel` | `0x00020000` | 131072 | Treat the Offer as an [Immediate or Cancel order](http://en.wikipedia.org/wiki/Immediate_or_cancel). The Offer never creates an [Offer object][] in the ledger: it only trades as much as it can by consuming existing Offers at the time the transaction is processed. If no Offers match, it executes "successfully" without trading anything. In this case, the transaction still uses the [result code](transaction-results.html) `tesSUCCESS`. | +| `tfImmediateOrCancel` | `0x00020000` | 131072 | Treat the Offer as an [Immediate or Cancel order](http://en.wikipedia.org/wiki/Immediate_or_cancel). The Offer never creates an [Offer object][] in the ledger: it only trades as much as it can by consuming existing Offers at the time the transaction is processed. If no Offers match, it executes "successfully" without trading anything. In this case, the transaction still uses the [result code](../transaction-results/transaction-results.md) `tesSUCCESS`. | | `tfFillOrKill` | `0x00040000` | 262144 | Treat the offer as a [Fill or Kill order](http://en.wikipedia.org/wiki/Fill_or_kill). The Offer never creates an [Offer object][] in the ledger, and is canceled if it cannot be fully filled at the time of execution. By default, this means that the owner must receive the full `TakerPays` amount; if the `tfSell` flag is enabled, the owner must be able to spend the entire `TakerGets` amount instead. | | `tfSell` | `0x00080000` | 524288 | Exchange the entire `TakerGets` amount, even if it means obtaining more than the `TakerPays` amount in exchange. | @@ -69,16 +69,11 @@ Transactions of the OfferCreate type support additional values in the [`Flags` f | `temBAD_CURRENCY` | Occurs if the transaction specifies a token with the currency code "XRP". | | `temBAD_ISSUER` | Occurs if the transaction specifies a token with an invalid `issuer` value. | | `tecNO_ISSUER` | Occurs if the transaction specifies a token whose `issuer` value is not a funded account in the ledger. | -| `tecFROZEN` | Occurs if the transaction involves a token on a [frozen](freezes.html) trust line (including local and global freezes). | +| `tecFROZEN` | Occurs if the transaction involves a token on a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) trust line (including local and global freezes). | | `tecUNFUNDED_OFFER` | Occurs if the owner does not hold a positive amount of the `TakerGets` currency. (Exception: if `TakerGets` specifies a token that the owner issues, the transaction can succeed.) | -| `tecNO_LINE` | Occurs if the transaction involves a token whose issuer uses [Authorized Trust Lines](authorized-trust-lines.html) and the necessary trust line does not exist. | -| `tecNO_AUTH` | Occurs if the transaction involves a token whose issuer uses [Authorized Trust Lines](authorized-trust-lines.html) and the the trust line that would receive the tokens exists but has not been authorized. | +| `tecNO_LINE` | Occurs if the transaction involves a token whose issuer uses [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the necessary trust line does not exist. | +| `tecNO_AUTH` | Occurs if the transaction involves a token whose issuer uses [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the the trust line that would receive the tokens exists but has not been authorized. | | `tecINSUF_RESERVE_OFFER` | Occurs if the owner does not have enough XRP to meet the reserve requirement of adding a new Offer object to the ledger, and the transaction did not convert any currency. (If the transaction successfully traded any amount, the transaction succeeds with the result code `tesSUCCESS`, but does not create an Offer object in the ledger for the rest.) | | `tecDIR_FULL` | Occurs if the owner owns too many items in the ledger, or the order book contains too many Offers at the same exchange rate already. | - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/payment.md b/content/references/protocol/transactions/types/payment.md index 4c0bcd6135..2a91e35c1c 100644 --- a/content/references/protocol/transactions/types/payment.md +++ b/content/references/protocol/transactions/types/payment.md @@ -15,7 +15,7 @@ A Payment transaction represents a transfer of value from one account to another Payments are also the only way to [create accounts](#creating-accounts). -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -33,22 +33,22 @@ Payments are also the only way to [create accounts](#creating-accounts). } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_Payment%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%227BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_Payment%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%227BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-----------------|:---------------------|:------------------|:---------------| | `Amount` | [Currency Amount][] | Amount | [API v1][]: Only available in API v1. The maximum amount of currency to deliver. For non-XRP amounts, the nested field names MUST be lower-case. If the [`tfPartialPayment` flag](#payment-flags) is set, deliver _up to_ this amount instead. | -| `DeliverMax` | [Currency Amount][] | Amount | [API v2][]: Only available in API v2. The maximum amount of currency to deliver. For non-XRP amounts, the nested field names MUST be lower-case. If the [`tfPartialPayment` flag](#payment-flags) is set, deliver _up to_ this amount instead. [New in: rippled 2.0.0][] | -| `DeliverMin` | [Currency Amount][] | Amount | _(Optional)_ Minimum amount of destination currency this transaction should deliver. Only valid if this is a [partial payment](partial-payments.html). For non-XRP amounts, the nested field names are lower-case. | +| `DeliverMax` | [Currency Amount][] | Amount | [API v2][]: Only available in API v2. The maximum amount of currency to deliver. For non-XRP amounts, the nested field names MUST be lower-case. If the [`tfPartialPayment` flag](#payment-flags) is set, deliver _up to_ this amount instead. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.0.0" %}New in: rippled 2.0.0{% /badge %} | +| `DeliverMin` | [Currency Amount][] | Amount | _(Optional)_ Minimum amount of destination currency this transaction should deliver. Only valid if this is a [partial payment](../../../../concepts/payment-types/partial-payments.md). For non-XRP amounts, the nested field names are lower-case. | | `Destination` | String | AccountID | The unique address of the account receiving the payment. | | `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag that identifies the reason for the payment to the destination, or a hosted recipient to pay. | | `InvoiceID` | String | Hash256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this payment. | -| `Paths` | Array of path arrays | PathSet | (Optional, auto-fillable) Array of [payment paths](paths.html) to be used for this transaction. Must be omitted for XRP-to-XRP transactions. | -| `SendMax` | [Currency Amount][] | Amount | _(Optional)_ Highest amount of source currency this transaction is allowed to cost, including [transfer fees](transfer-fees.html), exchange rates, and [slippage](http://en.wikipedia.org/wiki/Slippage_%28finance%29). Does not include the [XRP destroyed as a cost for submitting the transaction](transaction-cost.html). For non-XRP amounts, the nested field names MUST be lower-case. Must be supplied for cross-currency/cross-issue payments. Must be omitted for XRP-to-XRP payments. | +| `Paths` | Array of path arrays | PathSet | (Optional, auto-fillable) Array of [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) to be used for this transaction. Must be omitted for XRP-to-XRP transactions. | +| `SendMax` | [Currency Amount][] | Amount | _(Optional)_ Highest amount of source currency this transaction is allowed to cost, including [transfer fees](../../../../concepts/tokens/transfer-fees.md), exchange rates, and [slippage](http://en.wikipedia.org/wiki/Slippage_%28finance%29). Does not include the [XRP destroyed as a cost for submitting the transaction](../../../../concepts/transactions/transaction-cost.md). For non-XRP amounts, the nested field names MUST be lower-case. Must be supplied for cross-currency/cross-issue payments. Must be omitted for XRP-to-XRP payments. | ## Types of Payments @@ -57,16 +57,16 @@ The `Payment` transaction type functions differently depending on how you fill i | Payment type | `Amount` | `SendMax` | `Paths` | `Account` = `Destination`? | Description | |:-------------|:----------|:-----------|:----------|:---------------------------|:--| -| [Direct XRP Payment][] | String (XRP) | Omitted | Omitted | No | Transfers XRP directly from one account to another, using one transaction. Always delivers the exact amount. No fee applies other than the basic [transaction cost](transaction-cost.html). | -| [Creating or redeeming tokens][] | Object | Object (optional) | Optional | No | Increases or decreases the amount of a non-XRP currency or asset tracked in the XRP Ledger. [Transfer fees](transfer-fees.html) and [freezes](freezes.html) do not apply when sending and redeeming directly. | -| [Cross-currency Payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Usually required | No | Send tokens from one holder to another. The `Amount` or `SendMax` can be XRP or tokens, but can't both be XRP. These payments [ripple through](rippling.html) the issuer and can take longer [paths](paths.html) through several intermediaries if the transaction specifies a path set. [Transfer fees](transfer-fees.html) set by the issuer(s) apply to this type of transaction. These transactions consume offers in the [decentralized exchange](decentralized-exchange.html) to connect different currencies, or currencies with the same currency code and different issuers. | +| [Direct XRP Payment][] | String (XRP) | Omitted | Omitted | No | Transfers XRP directly from one account to another, using one transaction. Always delivers the exact amount. No fee applies other than the basic [transaction cost](../../../../concepts/transactions/transaction-cost.md). | +| [Creating or redeeming tokens][] | Object | Object (optional) | Optional | No | Increases or decreases the amount of a non-XRP currency or asset tracked in the XRP Ledger. [Transfer fees](../../../../concepts/tokens/transfer-fees.md) and [freezes](../../../../concepts/tokens/fungible-tokens/freezes.md) do not apply when sending and redeeming directly. | +| [Cross-currency Payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Usually required | No | Send tokens from one holder to another. The `Amount` or `SendMax` can be XRP or tokens, but can't both be XRP. These payments [ripple through](../../../../concepts/tokens/fungible-tokens/rippling.md) the issuer and can take longer [paths](../../../../concepts/tokens/fungible-tokens/paths.md) through several intermediaries if the transaction specifies a path set. [Transfer fees](../../../../concepts/tokens/transfer-fees.md) set by the issuer(s) apply to this type of transaction. These transactions consume offers in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md) to connect different currencies, or currencies with the same currency code and different issuers. | | [Partial payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Usually required | No | Sends _up to_ a specific amount of any currency. Uses the [`tfPartialPayment` flag](#payment-flags). May include a `DeliverMin` amount specifying the minimum that the transaction must deliver to be successful; if the transaction does not specify `DeliverMin`, it can succeed by delivering _any positive amount_. | -| Currency conversion | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Required | Yes | Consumes offers in the [decentralized exchange](decentralized-exchange.html) to convert one currency to another, possibly taking [arbitrage](https://en.wikipedia.org/wiki/Arbitrage) opportunities. The `Amount` and `SendMax` cannot both be XRP. Also called a _circular payment_ because it delivers money to the sender. This type of transaction may be classified as an "exchange" and not a "payment". | +| Currency conversion | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Required | Yes | Consumes offers in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md) to convert one currency to another, possibly taking [arbitrage](https://en.wikipedia.org/wiki/Arbitrage) opportunities. The `Amount` and `SendMax` cannot both be XRP. Also called a _circular payment_ because it delivers money to the sender. This type of transaction may be classified as an "exchange" and not a "payment". | -[Direct XRP Payment]: direct-xrp-payments.html -[Creating or redeeming tokens]: tokens.html -[Cross-currency Payment]: cross-currency-payments.html -[Partial payment]: partial-payments.html +[Direct XRP Payment]: ../../../../concepts/payment-types/direct-xrp-payments.md +[Creating or redeeming tokens]: ../../../../concepts/tokens/index.md +[Cross-currency Payment]: ../../../../concepts/payment-types/cross-currency-payments.md +[Partial payment]: ../../../../concepts/payment-types/partial-payments.md ## Special issuer Values for SendMax and Amount @@ -83,7 +83,7 @@ Most of the time, the `issuer` field of a non-XRP [Currency Amount][] indicates The Payment transaction type can create new accounts in the XRP Ledger by sending enough XRP to an unfunded address. Other transactions to unfunded addresses always fail. -For more information, see [Accounts](accounts.html#creating-accounts). +For more information, see [Accounts](../../../../concepts/accounts/accounts.md#creating-accounts). ## Paths @@ -98,27 +98,27 @@ If the `Paths` field is provided, the server decides at transaction processing t The `Paths` field must not be an empty array, nor an array whose members are all empty arrays. -For more information, see [Paths](paths.html). +For more information, see [Paths](../../../../concepts/tokens/fungible-tokens/paths.md). ## Payment Flags -Transactions of the Payment type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the Payment type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:-------------------|:-------------|:--------------|:-----------------------------| | `tfNoDirectRipple` | `0x00010000` | 65536 | Do not use the default path; only use paths included in the `Paths` field. This is intended to force the transaction to take arbitrage opportunities. Most clients do not need this. | -| `tfPartialPayment` | `0x00020000` | 131072 | If the specified `Amount` cannot be sent without spending more than `SendMax`, reduce the received amount instead of failing outright. See [Partial Payments](partial-payments.html) for more details. | +| `tfPartialPayment` | `0x00020000` | 131072 | If the specified `Amount` cannot be sent without spending more than `SendMax`, reduce the received amount instead of failing outright. See [Partial Payments](../../../../concepts/payment-types/partial-payments.md) for more details. | | `tfLimitQuality` | `0x00040000` | 262144 | Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of `Amount`:`SendMax`. See [Limit Quality](#limit-quality) for details. | ## Partial Payments -A partial payment allows a payment to succeed by reducing the amount received. Partial payments are useful for [returning payments](bouncing-payments.html) without incurring additional costs to oneself. However, partial payments can also be used to exploit integrations that naively assume the `Amount` field of a successful transaction always describes the exact amount delivered. +A partial payment allows a payment to succeed by reducing the amount received. Partial payments are useful for [returning payments](../../../../concepts/payment-types/bouncing-payments.md) without incurring additional costs to oneself. However, partial payments can also be used to exploit integrations that naively assume the `Amount` field of a successful transaction always describes the exact amount delivered. A partial payment is any [Payment transaction][] with the `tfPartialPayment` flag enabled. A partial payment can be successful if it delivers any positive amount greater than or equal to its `DeliverMin` field (or any positive amount at all if `DeliverMin` is not specified) without sending more than the `SendMax` value. -The [`delivered_amount`](transaction-metadata.html#delivered_amount) field of a payment's metadata indicates the amount of currency actually received by the destination account. +The [`delivered_amount`](../metadata.md#delivered_amount) field of a payment's metadata indicates the amount of currency actually received by the destination account. -For more information, see the full article on [Partial Payments](partial-payments.html). +For more information, see the full article on [Partial Payments](../../../../concepts/payment-types/partial-payments.md). ## Limit Quality @@ -127,17 +127,14 @@ The XRP Ledger defines the "quality" of a currency exchange as the ratio of the The [`tfLimitQuality` flag](#payment-flags) allows you to set a minimum quality of conversions that you are willing to take. This limit quality is defined as the destination `Amount` divided by the `SendMax` amount (the numeric amounts only, regardless of currency). When set, the payment processing engine avoids using any paths whose quality (conversion rate) is worse (numerically lower) than the limit quality. -By itself, the `tfLimitQuality` flag reduces the number of situations in which a transaction can succeed. Specifically, it rejects payments where some part of the payment uses an unfavorable conversion, even if the overall *average* quality of conversions in the payment is equal or better than the limit quality. If a payment is rejected in this way, the [transaction result](transaction-results.html) is `tecPATH_DRY`. +By itself, the `tfLimitQuality` flag reduces the number of situations in which a transaction can succeed. Specifically, it rejects payments where some part of the payment uses an unfavorable conversion, even if the overall *average* quality of conversions in the payment is equal or better than the limit quality. If a payment is rejected in this way, the [transaction result](../transaction-results/transaction-results.md) is `tecPATH_DRY`. Consider the following example. If I am trying to send you 100 Chinese Yuan (`Amount` = 100 CNY) for 20 United States dollars (`SendMax` = 20 USD) or less, then the limit quality is `5`. Imagine one trader is offering ¥95 for $15 (a ratio of about `6.3` CNY per USD), but the next best offer in the market is ¥5 for $2 (a ratio of `2.5` CNY per USD). If I were to take both offers to send you 100 CNY, then it would cost me 17 USD, for an average quality of about `5.9`. Without the `tfLimitQuality` flag set, this transaction would succeed, because the $17 it costs me is within my specified `SendMax`. However, with the `tfLimitQuality` flag enabled, the transaction would fail instead, because the path to take the second offer has a quality of `2.5`, which is worse than the limit quality of `5`. -The `tfLimitQuality` flag is most useful when combined with [partial payments](partial-payments.html). When both `tfPartialPayment` and `tfLimitQuality` are set on a transaction, then the transaction delivers as much of the destination `Amount` as it can, without using any conversions that are worse than the limit quality. +The `tfLimitQuality` flag is most useful when combined with [partial payments](../../../../concepts/payment-types/partial-payments.md). When both `tfPartialPayment` and `tfLimitQuality` are set on a transaction, then the transaction delivers as much of the destination `Amount` as it can, without using any conversions that are worse than the limit quality. In the above example with a ¥95/$15 offer and a ¥5/$2 offer, the situation is different if my transaction has both `tfPartialPayment` and `tfLimitQuality` enabled. If we keep my `SendMax` of 20 USD and a destination `Amount` of 100 CNY, then the limit quality is still `5`. However, because I am doing a partial payment, the transaction sends as much as it can instead of failing if the full destination amount cannot be sent. This means that my transaction consumes the ¥95/$15 offer, whose quality is about `6.3`, but it rejects the ¥5/$2 offer because that offer's quality of `2.5` is worse than the quality limit of `5`. In the end, my transaction only delivers ¥95 instead of the full ¥100, but it avoids wasting money on poor exchange rates. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/paymentchannelclaim.md b/content/references/protocol/transactions/types/paymentchannelclaim.md index 733f0940fc..4890910e66 100644 --- a/content/references/protocol/transactions/types/paymentchannelclaim.md +++ b/content/references/protocol/transactions/types/paymentchannelclaim.md @@ -28,7 +28,7 @@ The **destination address** of a channel can: - Cause a channel to be closed if its `Expiration` or `CancelAfter` time is older than the previous ledger's close time. Any validly-formed PaymentChannelClaim transaction has this effect regardless of the contents of the transaction. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -40,11 +40,11 @@ The **destination address** of a channel can: } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_PaymentChannelClaim%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%229C0CAAC3DD1A74461132DA4451F9E53BDF4C93DFDBEFCE1B10021EC569013B33%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_PaymentChannelClaim%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%229C0CAAC3DD1A74461132DA4451F9E53BDF4C93DFDBEFCE1B10021EC569013B33%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -56,19 +56,16 @@ The **destination address** of a channel can: | `Signature` | String | Blob | _(Optional)_ The signature of this claim, as hexadecimal. The signed message contains the channel ID and the amount of the claim. Required unless the sender of the transaction is the source address of the channel. | | `PublicKey` | String | Blob | _(Optional)_ The public key used for the signature, as hexadecimal. This must match the `PublicKey` stored in the ledger for the channel. Required unless the sender of the transaction is the source address of the channel and the `Signature` field is omitted. (The transaction includes the public key so that `rippled` can check the validity of the signature before trying to apply the transaction to the ledger.) | -If the payment channel was created before the [fixPayChanRecipientOwnerDir amendment](known-amendments.html#fixpaychanrecipientownerdir) became enabled (on 2020-05-01), it is possible that the destination of the payment channel has been [deleted](deleting-accounts.html) and does not currently exist in the ledger. If the destination has been deleted, the source account cannot send XRP from the channel to the destination; instead, the transaction fails with `tecNO_DST`. (And, of course, the deleted account cannot send any transactions at all.) Other uses of this transaction type are unaffected when the destination account has been deleted, including adjusting the channel expiration, closing a channel with no XRP, or removing a channel that has passed its expiration time. +If the payment channel was created before the [fixPayChanRecipientOwnerDir amendment](../../../../resources/known-amendments.md#fixpaychanrecipientownerdir) became enabled (on 2020-05-01), it is possible that the destination of the payment channel has been [deleted](../../../../concepts/accounts/deleting-accounts.md) and does not currently exist in the ledger. If the destination has been deleted, the source account cannot send XRP from the channel to the destination; instead, the transaction fails with `tecNO_DST`. (And, of course, the deleted account cannot send any transactions at all.) Other uses of this transaction type are unaffected when the destination account has been deleted, including adjusting the channel expiration, closing a channel with no XRP, or removing a channel that has passed its expiration time. ## PaymentChannelClaim Flags -Transactions of the PaymentChannelClaim type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the PaymentChannelClaim type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:----------|:-------------|:--------------|:----------------------------------| | `tfRenew` | `0x00010000` | 65536 | Clear the channel's `Expiration` time. (`Expiration` is different from the channel's immutable `CancelAfter` time.) Only the source address of the payment channel can use this flag. | | `tfClose` | `0x00020000` | 131072 | Request to close the channel. Only the channel source and destination addresses can use this flag. This flag closes the channel immediately if it has no more XRP allocated to it after processing the current claim, or if the destination address uses it. If the source address uses this flag when the channel still holds XRP, this schedules the channel to close after `SettleDelay` seconds have passed. (Specifically, this sets the `Expiration` of the channel to the close time of the previous ledger plus the channel's `SettleDelay` time, unless the channel already has an earlier `Expiration` time.) If the destination address uses this flag when the channel still holds XRP, any XRP that remains after processing the claim is returned to the source address. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/paymentchannelcreate.md b/content/references/protocol/transactions/types/paymentchannelcreate.md index e697174763..40c2cf8d49 100644 --- a/content/references/protocol/transactions/types/paymentchannelcreate.md +++ b/content/references/protocol/transactions/types/paymentchannelcreate.md @@ -10,9 +10,9 @@ labels: _Added by the [PayChan amendment][]._ -Create a [payment channel](payment-channels.html) and fund it with XRP. The address sending this transaction becomes the "source address" of the payment channel. +Create a [payment channel](../../../../concepts/payment-types/payment-channels.md) and fund it with XRP. The address sending this transaction becomes the "source address" of the payment channel. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -28,9 +28,9 @@ Create a [payment channel](payment-channels.html) and fund it with XRP. The addr } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_PaymentChannelCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22711C4F606C63076137FAE90ADC36379D7066CF551E96DA6FE2BDAB5ECBFACF2B%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_PaymentChannelCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22711C4F606C63076137FAE90ADC36379D7066CF551E96DA6FE2BDAB5ECBFACF2B%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} @@ -39,14 +39,10 @@ Create a [payment channel](payment-channels.html) and fund it with XRP. The addr | `Amount` | String | Amount | Amount of [XRP, in drops][Currency Amount], to deduct from the sender's balance and set aside in this channel. While the channel is open, the XRP can only go to the `Destination` address. When the channel closes, any unclaimed XRP is returned to the source address's balance. | | `Destination` | String | AccountID | Address to receive XRP claims against this channel. This is also known as the "destination address" for the channel. Cannot be the same as the sender (`Account`). | | `SettleDelay` | Number | UInt32 | Amount of time the source address must wait before closing the channel if it has unclaimed XRP. | -| `PublicKey` | String | Blob | The 33-byte public key of the key pair the source will use to sign claims against this channel, in hexadecimal. This can be any secp256k1 or Ed25519 public key. For more information on key pairs, see [Key Derivation](cryptographic-keys.html#key-derivation) | +| `PublicKey` | String | Blob | The 33-byte public key of the key pair the source will use to sign claims against this channel, in hexadecimal. This can be any secp256k1 or Ed25519 public key. For more information on key pairs, see [Key Derivation](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) | | `CancelAfter` | Number | UInt32 | _(Optional)_ The time, in [seconds since the Ripple Epoch][], when this channel expires. Any transaction that would modify the channel after this time closes the channel without otherwise affecting it. This value is immutable; the channel can be closed earlier than this time but cannot remain open after this time. | | `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | -If the `Destination` account is blocking incoming payment channels, the transaction fails with result code `tecNO_PERMISSION`. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ +If the `Destination` account is blocking incoming payment channels, the transaction fails with result code `tecNO_PERMISSION`. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/paymentchannelfund.md b/content/references/protocol/transactions/types/paymentchannelfund.md index 2901b60f7b..9140962241 100644 --- a/content/references/protocol/transactions/types/paymentchannelfund.md +++ b/content/references/protocol/transactions/types/paymentchannelfund.md @@ -10,7 +10,7 @@ labels: _Added by the [PayChan amendment][]._ -Add additional [XRP](what-is-xrp.html) to an open [payment channel](payment-channels.html), and optionally update the expiration time of the channel. Only the source address of the channel can use this transaction. +Add additional [XRP](../../../../introduction/what-is-xrp.md) to an open [payment channel](../../../../concepts/payment-types/payment-channels.md), and optionally update the expiration time of the channel. Only the source address of the channel can use this transaction. Example PaymentChannelFund: @@ -24,33 +24,29 @@ Example PaymentChannelFund: } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_PaymentChannelFund%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22877FA6E2FF8E08597D1F24E30BE8E52D0C9C06F0D620C5721E55622B6A632DFF%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_PaymentChannelFund%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22877FA6E2FF8E08597D1F24E30BE8E52D0C9C06F0D620C5721E55622B6A632DFF%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-------------|:----------|:------------------|:------------------------------| | `Channel` | String | Hash256 | The unique ID of the channel to fund, as a 64-character hexadecimal string. | | `Amount` | String | Amount | Amount of [XRP, in drops][Currency Amount] to add to the channel. Must be a positive amount of XRP. | -| `Expiration` | Number | UInt32 | _(Optional)_ New `Expiration` time to set for the channel, in [seconds since the Ripple Epoch][]. This must be later than either the current time plus the `SettleDelay` of the channel, or the existing `Expiration` of the channel. After the `Expiration` time, any transaction that would access the channel closes the channel without taking its normal action. Any unspent XRP is returned to the source address when the channel closes. (`Expiration` is separate from the channel's immutable `CancelAfter` time.) For more information, see the [PayChannel ledger object type](paychannel.html). | +| `Expiration` | Number | UInt32 | _(Optional)_ New `Expiration` time to set for the channel, in [seconds since the Ripple Epoch][]. This must be later than either the current time plus the `SettleDelay` of the channel, or the existing `Expiration` of the channel. After the `Expiration` time, any transaction that would access the channel closes the channel without taking its normal action. Any unspent XRP is returned to the source address when the channel closes. (`Expiration` is separate from the channel's immutable `CancelAfter` time.) For more information, see the [PayChannel ledger object type](../../ledger-data/ledger-entry-types/paychannel.md). | ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:--------------------------|:-------------------------------------------------| -| `tecINSUFFICIENT_RESERVE` | The sending account has less XRP than the [reserve requirement](reserves.html). | -| `tecNO_DST` | The destination account of the channel has been deleted. This is only possible if the payment channel was created before the [fixPayChanRecipientOwnerDir amendment](known-amendments.html#fixpaychanrecipientownerdir) became enabled (on 2020-05-01). | +| `tecINSUFFICIENT_RESERVE` | The sending account has less XRP than the [reserve requirement](../../../../concepts/accounts/reserves.md). | +| `tecNO_DST` | The destination account of the channel has been deleted. This is only possible if the payment channel was created before the [fixPayChanRecipientOwnerDir amendment](../../../../resources/known-amendments.md#fixpaychanrecipientownerdir) became enabled (on 2020-05-01). | | `tecNO_ENTRY` | The Payment Channel identified by the `Channel` field does not exist. | | `tecNO_PERMISSION` | The sender of the transaction is not the source address for the channel. | -| `tecUNFUNDED` | The sending account does not have enough XRP to fund the channel with the requested amount and still meet the [reserve requirement](reserves.html). | +| `tecUNFUNDED` | The sending account does not have enough XRP to fund the channel with the requested amount and still meet the [reserve requirement](../../../../concepts/accounts/reserves.md). | | `temBAD_AMOUNT` | The `Amount` field of the transaction is invalid. The amount must be XRP and it cannot be zero or negative. | | `temBAD_EXPIRATION` | The `Expiration` field is invalid. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/setregularkey.md b/content/references/protocol/transactions/types/setregularkey.md index 788384a839..ada05435d5 100644 --- a/content/references/protocol/transactions/types/setregularkey.md +++ b/content/references/protocol/transactions/types/setregularkey.md @@ -13,7 +13,7 @@ A `SetRegularKey` transaction assigns, changes, or removes the regular key pair You can protect your account by assigning a regular key pair to it and using it instead of the master key pair to sign transactions whenever possible. If your regular key pair is compromised, but your master key pair is not, you can use a `SetRegularKey` transaction to regain control of your account. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -25,9 +25,9 @@ You can protect your account by assigning a regular key pair to it and using it } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_SetRegularKey%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%226AA6F6EAAAB56E65F7F738A9A2A8A7525439D65BA990E9BA08F6F4B1C2D349B4%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_SetRegularKey%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%226AA6F6EAAAB56E65F7F738A9A2A8A7525439D65BA990E9BA08F6F4B1C2D349B4%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | @@ -36,13 +36,10 @@ You can protect your account by assigning a regular key pair to it and using it ## See Also -For more information about regular and master key pairs, see [Cryptographic Keys](cryptographic-keys.html). +For more information about regular and master key pairs, see [Cryptographic Keys](../../../../concepts/accounts/cryptographic-keys.md). -For a tutorial on assigning a regular key pair to an account, see [Working with a Regular Key Pair](assign-a-regular-key-pair.html). +For a tutorial on assigning a regular key pair to an account, see [Working with a Regular Key Pair](../../../../tutorials/manage-account-settings/assign-a-regular-key-pair.md). -For even greater security, you can use [multi-signing](multi-signing.html), but multi-signing requires additional XRP for the [transaction cost][] and [reserve](reserves.html). +For even greater security, you can use [multi-signing](../../../../concepts/accounts/multi-signing.md), but multi-signing requires additional XRP for the [transaction cost][] and [reserve](../../../../concepts/accounts/reserves.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/signerlistset.md b/content/references/protocol/transactions/types/signerlistset.md index e5178d919c..1c966717f5 100644 --- a/content/references/protocol/transactions/types/signerlistset.md +++ b/content/references/protocol/transactions/types/signerlistset.md @@ -9,9 +9,9 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/SetSignerList.cpp "Source") -The SignerListSet transaction creates, replaces, or removes a list of signers that can be used to [multi-sign](multi-signing.html) a transaction. This transaction type was introduced by the [MultiSign amendment][]. +The SignerListSet transaction creates, replaces, or removes a list of signers that can be used to [multi-sign](../../../../concepts/accounts/multi-signing.md) a transaction. This transaction type was introduced by the [MultiSign amendment][]. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -43,27 +43,24 @@ The SignerListSet transaction creates, replaces, or removes a list of signers th } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_SignerListSet%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%2209A9C86BF20695735AB03620EB1C32606635AC3DA0B70282F37C674FC889EFE7%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_SignerListSet%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%2209A9C86BF20695735AB03620EB1C32606635AC3DA0B70282F37C674FC889EFE7%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:--------------|:----------|:------------------|:-----------------------------| | `SignerQuorum` | Number | UInt32 | A target number for the signer weights. A multi-signature from this list is valid only if the sum weights of the signatures provided is greater than or equal to this value. To delete a signer list, use the value `0`. | -| `SignerEntries` | Array | Array | _(Omitted when deleting)_ Array of [`SignerEntry` objects](signerlist.html#signer-entry-object), indicating the addresses and weights of signers in this list. This signer list must have at least 1 member and no more than 32 members. No address may appear more than once in the list, nor may the `Account` submitting the transaction appear in the list. _(Updated by the [ExpandedSignerList amendment][].)_ | +| `SignerEntries` | Array | Array | _(Omitted when deleting)_ Array of [`SignerEntry` objects](../../ledger-data/ledger-entry-types/signerlist.md#signer-entry-object), indicating the addresses and weights of signers in this list. This signer list must have at least 1 member and no more than 32 members. No address may appear more than once in the list, nor may the `Account` submitting the transaction appear in the list. _(Updated by the [ExpandedSignerList amendment][].)_ | -A successful SignerListSet transaction replaces the account's [`SignerList` object](signerlist.html) in the ledger, or adds one if it did not exist before. An account may not have more than one signer list. To delete a signer list, you must set `SignerQuorum` to `0` _and_ omit the `SignerEntries` field. Otherwise, the transaction fails with the error [`temMALFORMED`](tem-codes.html). A transaction to delete a signer list is considered successful even if there was no signer list to delete. +A successful SignerListSet transaction replaces the account's [`SignerList` object](../../ledger-data/ledger-entry-types/signerlist.md) in the ledger, or adds one if it did not exist before. An account may not have more than one signer list. To delete a signer list, you must set `SignerQuorum` to `0` _and_ omit the `SignerEntries` field. Otherwise, the transaction fails with the error [`temMALFORMED`](../transaction-results/tem-codes.md). A transaction to delete a signer list is considered successful even if there was no signer list to delete. -You cannot create a signer list such that the `SignerQuorum` could never be met. The `SignerQuorum` must be greater than 0 but less than or equal to the sum of the `SignerWeight` values in the list. Otherwise, the transaction fails with the error [`temMALFORMED`](tem-codes.html). +You cannot create a signer list such that the `SignerQuorum` could never be met. The `SignerQuorum` must be greater than 0 but less than or equal to the sum of the `SignerWeight` values in the list. Otherwise, the transaction fails with the error [`temMALFORMED`](../transaction-results/tem-codes.md). You can create, update, or remove a signer list using the master key, regular key, or the current signer list, if those methods of signing transactions are available. -You cannot remove the last method of signing transactions from an account. If an account's master key is disabled (the account has the [`lsfDisableMaster` flag](accountroot.html#accountroot-flags) enabled) and the account does not have a [Regular Key](cryptographic-keys.html) configured, then you cannot delete the signer list from the account. Instead, the transaction fails with the error [`tecNO_ALTERNATIVE_KEY`](tec-codes.html). +You cannot remove the last method of signing transactions from an account. If an account's master key is disabled (the account has the [`lsfDisableMaster` flag](../../ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) enabled) and the account does not have a [Regular Key](../../../../concepts/accounts/cryptographic-keys.md) configured, then you cannot delete the signer list from the account. Instead, the transaction fails with the error [`tecNO_ALTERNATIVE_KEY`](../transaction-results/tec-codes.md). -Creating or replacing a signer list enables the `lsfOneOwnerCount` flag on the [SignerList object](signerlist.html). Lists that were created before the [MultiSignReserve amendment][] became enabled do not have this flag and have a higher [owner reserve](reserves.html#owner-reserves). You can decrease the owner reserve for these lists by replacing the list with the same list. For more information, see [SignerList Flags](signerlist.html#signerlist-flags). +Creating or replacing a signer list enables the `lsfOneOwnerCount` flag on the [SignerList object](../../ledger-data/ledger-entry-types/signerlist.md). Lists that were created before the [MultiSignReserve amendment][] became enabled do not have this flag and have a higher [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves). You can decrease the owner reserve for these lists by replacing the list with the same list. For more information, see [SignerList Flags](../../ledger-data/ledger-entry-types/signerlist.md#signerlist-flags). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/ticketcreate.md b/content/references/protocol/transactions/types/ticketcreate.md index b02b6b1966..4bf312ba0a 100644 --- a/content/references/protocol/transactions/types/ticketcreate.md +++ b/content/references/protocol/transactions/types/ticketcreate.md @@ -11,9 +11,9 @@ labels: _(Added by the [TicketBatch amendment][].)_ -A TicketCreate transaction sets aside one or more [sequence numbers][Sequence Number] as [Tickets](tickets.html). +A TicketCreate transaction sets aside one or more [sequence numbers][Sequence Number] as [Tickets](../../../../concepts/accounts/tickets.md). -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -25,30 +25,27 @@ A TicketCreate transaction sets aside one or more [sequence numbers][Sequence Nu } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_TicketCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22738AEF36B48CA4A2D85C2B74910DC34DDBBCA4C83643F2DB84A58785ED5AD3E3%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_TicketCreate%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22738AEF36B48CA4A2D85C2B74910DC34DDBBCA4C83643F2DB84A58785ED5AD3E3%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-----------------|:-----------------|:------------------|:-------------------| | `TicketCount` | Number | UInt32 | How many Tickets to create. This must be a positive number and cannot cause the account to own more than 250 Tickets after executing this transaction. | -If the transaction cannot create _all_ of the requested Tickets (either due to the 250-Ticket limit or the [owner reserve](reserves.html)), it fails and creates no Tickets. To look up how many Tickets an account currently owns, use the [account_info method][] and check the `account_data.TicketCount` field. +If the transaction cannot create _all_ of the requested Tickets (either due to the 250-Ticket limit or the [owner reserve](../../../../concepts/accounts/reserves.md)), it fails and creates no Tickets. To look up how many Tickets an account currently owns, use the [account_info method][] and check the `account_data.TicketCount` field. **Tip:** This transaction increases the sending account's [sequence number][Sequence Number] by 1 _plus_ the number of tickets created (`TicketCount`). This is the only transaction that increases an account's sequence number by more than 1. ## Error Cases -Besides errors that can occur for all transactions, {{currentpage.name}} transactions can result in the following [transaction result codes](transaction-results.html): +Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/transaction-results.md): | Error Code | Description | |:--------------------------|:-------------------------------------------------| | `temINVALID_COUNT` | The `TicketCount` field is invalid. It must be an integer from 1 to 250. | | `tecDIR_FULL` | This transaction would cause the account to own more than the limit of 250 Tickets at a time, or more than the maximum number of ledger objects in general. | -| `tecINSUFFICIENT_RESERVE` | The sending account does not have enough XRP to meet the [owner reserve](reserves.html) of all the requested Tickets. | +| `tecINSUFFICIENT_RESERVE` | The sending account does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md) of all the requested Tickets. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/trustset.md b/content/references/protocol/transactions/types/trustset.md index d5885728ad..b7039d4625 100644 --- a/content/references/protocol/transactions/types/trustset.md +++ b/content/references/protocol/transactions/types/trustset.md @@ -9,9 +9,9 @@ labels: [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/SetTrust.cpp "Source") -Create or modify a [trust line](trust-lines-and-issuing.html) linking two accounts. +Create or modify a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) linking two accounts. -## Example {{currentpage.name}} JSON +## Example {% $frontmatter.seo.title %} JSON ```json { @@ -29,42 +29,37 @@ Create or modify a [trust line](trust-lines-and-issuing.html) linking two accoun } ``` -[Query example transaction. >](websocket-api-tool.html?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_TrustSet%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%228566673ECD0A9731C516906E5D2F47129C5C13713602140733831A56CEAE1A05%22%2C%22binary%22%3Afalse%7D) +[Query example transaction. >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fxrplcluster.com%2F&req=%7B%22id%22%3A%22example_TrustSet%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%228566673ECD0A9731C516906E5D2F47129C5C13713602140733831A56CEAE1A05%22%2C%22binary%22%3Afalse%7D) -{% include '_snippets/tx-fields-intro.md' %} +{% partial file="/_snippets/tx-fields-intro.md" /%} | Field | JSON Type | [Internal Type][] | Description | |:-------------------------|:----------|:------------------|:------------------| | `LimitAmount` | Object | Amount | Object defining the trust line to create or modify, in the format of a [Currency Amount][]. | -| `LimitAmount`.`currency` | String | (Amount.currency) | The currency to this trust line applies to, as a three-letter [ISO 4217 Currency Code](https://www.xe.com/iso4217.php) or a 160-bit hex value according to [currency format](currency-formats.html). "XRP" is invalid. | +| `LimitAmount`.`currency` | String | (Amount.currency) | The currency to this trust line applies to, as a three-letter [ISO 4217 Currency Code](https://www.xe.com/iso4217.php) or a 160-bit hex value according to [currency format](../../data-types/currency-formats.md). "XRP" is invalid. | | `LimitAmount`.`value` | String | (Amount.value) | Quoted decimal representation of the limit to set on this trust line. | | `LimitAmount`.`issuer` | String | (Amount.issuer) | The address of the account to extend trust to. | | `QualityIn` | Number | UInt32 | _(Optional)_ Value incoming balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of `0` is shorthand for treating balances at face value. | | `QualityOut` | Number | UInt32 | _(Optional)_ Value outgoing balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of `0` is shorthand for treating balances at face value. | -If the account specified in `LimitAmount.issuer` is blocking incoming trust lines, the transaction fails with the result code `tecNO_PERMISSION`. _(Requires the [DisallowIncoming amendment][] :not_enabled:)_ +If the account specified in `LimitAmount.issuer` is blocking incoming trust lines, the transaction fails with the result code `tecNO_PERMISSION`. _(Requires the [DisallowIncoming amendment][] {% not-enabled /%})_ ## TrustSet Flags -Transactions of the TrustSet type support additional values in the [`Flags` field](transaction-common-fields.html#flags-field), as follows: +Transactions of the TrustSet type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: | Flag Name | Hex Value | Decimal Value | Description | |:------------------|:-------------|:--------------|:--------------------------| -| `tfSetfAuth` | `0x00010000` | 65536 | Authorize the other party to hold [currency issued by this account](issued-currencies.html). (No effect unless using the [`asfRequireAuth` AccountSet flag](accountset.html#accountset-flags).) Cannot be unset. | -| `tfSetNoRipple` | `0x00020000` | 131072 | Enable the No Ripple flag, which blocks [rippling](rippling.html) between two trust lines of the same currency if this flag is enabled on both. | -| `tfClearNoRipple` | `0x00040000` | 262144 | Disable the No Ripple flag, allowing [rippling](rippling.html) on this trust line. | -| `tfSetFreeze` | `0x00100000` | 1048576 | [Freeze](freezes.html) the trust line. | -| `tfClearFreeze` | `0x00200000` | 2097152 | [Unfreeze](freezes.html) the trust line. | +| `tfSetfAuth` | `0x00010000` | 65536 | Authorize the other party to hold [currency issued by this account](../../../../concepts/tokens/index.md). (No effect unless using the [`asfRequireAuth` AccountSet flag](accountset.md#accountset-flags).) Cannot be unset. | +| `tfSetNoRipple` | `0x00020000` | 131072 | Enable the No Ripple flag, which blocks [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) between two trust lines of the same currency if this flag is enabled on both. | +| `tfClearNoRipple` | `0x00040000` | 262144 | Disable the No Ripple flag, allowing [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this trust line. | +| `tfSetFreeze` | `0x00100000` | 1048576 | [Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md) the trust line. | +| `tfClearFreeze` | `0x00200000` | 2097152 | [Unfreeze](../../../../concepts/tokens/fungible-tokens/freezes.md) the trust line. | If a transaction tries to enable No Ripple but cannot, it fails with the result code `tecNO_PERMISSION`. Before the [fix1578 amendment][] became enabled, such a transaction would result in `tesSUCCESS` (making any other changes it could) instead. The Auth flag of a trust line does not determine whether the trust line counts towards its owner's XRP reserve requirement. However, an enabled Auth flag prevents the trust line from being in its default state. An authorized trust line can never be deleted. An issuer can pre-authorize a trust line with the `tfSetfAuth` flag only, even if the limit and balance of the trust line are 0. - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchainaccountcreatecommit.md b/content/references/protocol/transactions/types/xchainaccountcreatecommit.md index c63ad61b3b..941c76c3ba 100644 --- a/content/references/protocol/transactions/types/xchainaccountcreatecommit.md +++ b/content/references/protocol/transactions/types/xchainaccountcreatecommit.md @@ -9,7 +9,7 @@ status: not_enabled # XChainAccountCreateCommit [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L466-L474 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ This transaction can only be used for XRP-XRP bridges. @@ -60,7 +60,4 @@ The `XChainAccountCreateCommit` transaction creates a new account for a witness | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchainaddaccountcreateattestation.md b/content/references/protocol/transactions/types/xchainaddaccountcreateattestation.md index 754ab196db..ba75885ae7 100644 --- a/content/references/protocol/transactions/types/xchainaddaccountcreateattestation.md +++ b/content/references/protocol/transactions/types/xchainaddaccountcreateattestation.md @@ -9,7 +9,7 @@ status: not_enabled # XChainAddAccountCreateAttestation [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L447-L464 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ The `XChainAddAccountCreateAttestation` transaction provides an attestation from a witness server that an `XChainAccountCreateCommit` transaction occurred on the other chain. @@ -77,7 +77,4 @@ Any account can submit signatures. | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchainaddclaimattestation.md b/content/references/protocol/transactions/types/xchainaddclaimattestation.md index 99195b3fe9..cf870647eb 100644 --- a/content/references/protocol/transactions/types/xchainaddclaimattestation.md +++ b/content/references/protocol/transactions/types/xchainaddclaimattestation.md @@ -9,7 +9,7 @@ status: not_enabled # XChainAddClaimAttestation [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L429-L445 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ The `XChainAddClaimAttestation` transaction provides proof from a witness server, attesting to an `XChainCommit` transaction. @@ -96,8 +96,4 @@ Any account can submit signatures. | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchainclaim.md b/content/references/protocol/transactions/types/xchainclaim.md index d77a673896..a47ccc7f64 100644 --- a/content/references/protocol/transactions/types/xchainclaim.md +++ b/content/references/protocol/transactions/types/xchainclaim.md @@ -9,7 +9,7 @@ status: not_enabled # XChainClaim [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L418-L427 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ The `XChainClaim` transaction completes a cross-chain transfer of value. It allows a user to claim the value on the destination chain - the equivalent of the value locked on the source chain. A user can only claim the value if they own the cross-chain claim ID associated with the value locked on the source chain (the `Account` field). The user can send the funds to anyone (the `Destination` field). This transaction is only needed if an `OtherChainDestination` isn't specified in the `XChainCommit` transaction, or if something goes wrong with the automatic transfer of funds. @@ -59,8 +59,4 @@ If the transaction succeeds in moving funds, the referenced `XChainOwnedClaimID` | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchaincommit.md b/content/references/protocol/transactions/types/xchaincommit.md index a04c670908..a264919290 100644 --- a/content/references/protocol/transactions/types/xchaincommit.md +++ b/content/references/protocol/transactions/types/xchaincommit.md @@ -9,7 +9,7 @@ status: not_enabled # XChainCommit [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L408-L416 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ The `XChainCommit` is the second step in a cross-chain transfer. It puts assets into trust on the locking chain so that they can be wrapped on the issuing chain, or burns wrapped assets on the issuing chain so that they can be returned on the locking chain. @@ -55,8 +55,4 @@ The `XChainCommit` is the second step in a cross-chain transfer. It puts assets | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchaincreatebridge.md b/content/references/protocol/transactions/types/xchaincreatebridge.md index ec9a47045f..3a061ff3ce 100644 --- a/content/references/protocol/transactions/types/xchaincreatebridge.md +++ b/content/references/protocol/transactions/types/xchaincreatebridge.md @@ -9,7 +9,7 @@ status: not_enabled # XChainCreateBridge [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L381-L388 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ The `XChainCreateBridge` transaction creates a new `Bridge` ledger object and defines a new cross-chain bridge entrance on the chain that the transaction is submitted on. It includes information about door accounts and assets for the bridge. @@ -60,8 +60,4 @@ The complete production-grade setup would also include a `SignerListSet` transac | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchaincreateclaimid.md b/content/references/protocol/transactions/types/xchaincreateclaimid.md index 24b0bffd78..f2997e6afb 100644 --- a/content/references/protocol/transactions/types/xchaincreateclaimid.md +++ b/content/references/protocol/transactions/types/xchaincreateclaimid.md @@ -9,7 +9,7 @@ status: not_enabled # XChainCreateClaimID [[Source]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L399-L406 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ The `XChainCreateClaimID` transaction creates a new cross-chain claim ID that is used for a cross-chain transfer. A cross-chain claim ID represents *one* cross-chain transfer of value. @@ -58,8 +58,4 @@ It also includes the account on the source chain that locks or burns the funds o | `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | | `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/protocol/transactions/types/xchainmodifybridge.md b/content/references/protocol/transactions/types/xchainmodifybridge.md index f8889ffa77..1009173084 100644 --- a/content/references/protocol/transactions/types/xchainmodifybridge.md +++ b/content/references/protocol/transactions/types/xchainmodifybridge.md @@ -9,7 +9,7 @@ status: not_enabled # XChainModifyBridge [[Source]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/TxFormats.cpp#L390-L397 "Source") -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ The `XChainModifyBridge` transaction allows bridge managers to modify the parameters of the bridge. They can only change the `SignatureReward` and the `MinAccountCreateAmount`. @@ -68,8 +68,4 @@ In addition to the universal transaction flags that are applicable to all transa |------------------------------|--------------|-------------| | `tfClearAccountCreateAmount` | `0x00010000` | Clears the `MinAccountCreateAmount` of the bridge. | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/references/xrp-ledger-toml.md b/content/references/xrp-ledger-toml.md index f20a93a23e..9fa0f9300d 100644 --- a/content/references/xrp-ledger-toml.md +++ b/content/references/xrp-ledger-toml.md @@ -48,7 +48,7 @@ The plain HTTP protocol is vulnerable to man-in-the-middle attacks; for example, ### Domain -The domain where you serve the `xrp-ledger.toml` file is a statement of ownership. The file's contents are not as useful or trustworthy when they stand on their own. For practical reasons, it may be undesirable to serve the file from your main domain, so you MAY use any number of subdomains. When setting the [`Domain` field of XRP Ledger accounts](accountset.html#domain), you MUST provide the full domain, including all subdomains you used. See [Account Verification](#account-verification) for details. +The domain where you serve the `xrp-ledger.toml` file is a statement of ownership. The file's contents are not as useful or trustworthy when they stand on their own. For practical reasons, it may be undesirable to serve the file from your main domain, so you MAY use any number of subdomains. When setting the [`Domain` field of XRP Ledger accounts](protocol/transactions/types/accountset.md#domain), you MUST provide the full domain, including all subdomains you used. See [Account Verification](#account-verification) for details. You MAY serve the same file from multiple subdomains, if desired. For example, if the subdomain `www.example.com` goes to the same website as `example.com`, you can serve the file from both locations. If your website _requires_ the `www` prefix, be sure to include it when you specify the domain (for example, when setting the `Domain` field of an XRP Ledger account). @@ -185,7 +185,7 @@ For _each_ `[[VALIDATORS]]` entry, you MAY provide any of the following fields: | Field | Type | Description | |:-------------|:-------|:-----------------------------------------------------| | `public_key` | String | The master public key of your primary validator, encoded in the XRP Ledger's base58 format (typically, this starts with `n`). | -| `attestation`| String | A signed message, in hexadecimal, indicating that the same entity runs this validator and the domain serving this TOML file. For more information, see [Domain Verification](xrp-ledger-toml.html#domain-verification). +| `attestation`| String | A signed message, in hexadecimal, indicating that the same entity runs this validator and the domain serving this TOML file. For more information, see [Domain Verification](xrp-ledger-toml.md#domain-verification). | `network` | String | Which network chain this validator follows. If omitted, clients SHOULD assume that the validator follows the production XRP Ledger. Use `main` to explicitly specify the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | | `owner_country` | String | The two-letter ISO-3166-2 country code describing the main legal jurisdiction that you (the validator's owner) are subject to. | | `server_country` | String | The two-letter ISO-3166-2 country code describing the physical location where this validating server is. | @@ -202,7 +202,7 @@ The accounts list provides information about XRP Ledger accounts you own. If pre | `network` | String | The network chain where this account is primarily used. If omitted, clients SHOULD assume that the account is claimed on the production XRP Ledger _and_ possibly other network chains. Use `main` for the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | | `desc` | String | A human-readable description of this account's purpose or how you use it. | -**Caution:** Anyone could claim ownership of any account by hosting an `xrp-ledger.toml` file, so the presence of an account here SHOULD NOT be considered authoritative unless the [`Domain` field for these accounts in the XRP Ledger](accountset.html#domain) also matches the domain that this `xrp-ledger.toml` file was served from. See [Account Verification](#account-verification) for details. +**Caution:** Anyone could claim ownership of any account by hosting an `xrp-ledger.toml` file, so the presence of an account here SHOULD NOT be considered authoritative unless the [`Domain` field for these accounts in the XRP Ledger](protocol/transactions/types/accountset.md#domain) also matches the domain that this `xrp-ledger.toml` file was served from. See [Account Verification](#account-verification) for details. ### Principals @@ -237,7 +237,7 @@ If you issue any assets, tokens, or currencies in the XRP Ledger, you can provid | Field | Type | Description | |:--------|:-------|:------------------------------------------------------| -| `code` | String | The (case-sensitive) ticker symbol of this token in the XRP Ledger. This can be a three-digit code, a 40-character hex code, or a custom format (for clients that know how to represent the non-standard code in the XRP Ledger). See the [Currency Code reference](currency-formats.html#currency-codes) for information on the XRP Ledger's currency code formats. | +| `code` | String | The (case-sensitive) ticker symbol of this token in the XRP Ledger. This can be a three-digit code, a 40-character hex code, or a custom format (for clients that know how to represent the non-standard code in the XRP Ledger). See the [Currency Code reference](protocol/data-types/currency-formats.md#currency-codes) for information on the XRP Ledger's currency code formats. | | `display_decimals` | Number | The number of decimals that a client application should use to display amounts of this currency. | | `issuer` | String | The address of the XRP Ledger account where you issue this currency, encoded in the XRP Ledger's base58 format (typically, this starts with an `r`). You SHOULD also list this address in the `[[ACCOUNTS]]` list. (Reminder: the presence of an address here is not authoritative on its own. See [Account Verification](#account-verification) for details.) | | `network` | String | The network chain where you issue this token. Use `main` to explicitly specify the production XRP Ledger. If omitted, clients SHOULD assume that the currency is issued on the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | @@ -291,7 +291,7 @@ For other web servers, see [I want to add CORS support to my server](https://ena ## Domain Verification -One use for the `xrp-ledger.toml` file is verifying that the same entity that runs a particular domain also runs a particular validator, as identified by the validator's public key. Verifying that a domain and a validator are owned by the same entity provides greater assurances of the identity of the validator operator and is a recommended step for becoming a trusted validator. (For other recommendations, see [Properties of a Good Validator](run-rippled-as-a-validator.html#1-understand-the-traits-of-a-good-validator).) +One use for the `xrp-ledger.toml` file is verifying that the same entity that runs a particular domain also runs a particular validator, as identified by the validator's public key. Verifying that a domain and a validator are owned by the same entity provides greater assurances of the identity of the validator operator and is a recommended step for becoming a trusted validator. (For other recommendations, see [Properties of a Good Validator](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#1-understand-the-traits-of-a-good-validator).) Domain verification requires establishing a two-way link between the domain operator and the validator: @@ -303,7 +303,7 @@ Domain verification requires establishing a two-way link between the domain oper 2. The validator claims ownership of the domain: - - Ensure that you have access to the validator-keys.json file that you created when first setting up your validator. If you have lost your keys or the keys have been compromised, please [revoke your keys](run-rippled-as-a-validator.html#revoke-validator-keys) and generate new keys. + - Ensure that you have access to the validator-keys.json file that you created when first setting up your validator. If you have lost your keys or the keys have been compromised, please [revoke your keys](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#revoke-validator-keys) and generate new keys. Note: Recall that your validator-keys.json file should be stored **in a location not on your validator**. @@ -312,7 +312,9 @@ Domain verification requires establishing a two-way link between the domain oper - Run the following command to generate a new validator token that incorporates your domain and update your `xrp-ledger.toml` and `rippled.cfg` files: - $./validator-keys set_domain example.com + ``` + $./validator-keys set_domain example.com + ``` **Warning:** This command updates your validator-keys.json file. Please be sure to store the `validator-keys.json` file in a secure location. @@ -368,7 +370,7 @@ Account verification requires establishing a two-way link between the domain ope 2. The address claims ownership by a domain. - [Set the account's `Domain` field](accountset.html#domain) to match the domain that this `xrp-ledger.toml` file was served from. The domain value (when decoded from ASCII) MUST match _exactly_, including all subdomains such as `www.`. For internationalized domain names, set the `Domain` value to the Punycode of the domain, as described in [RFC3492](https://tools.ietf.org/html/rfc3492). + [Set the account's `Domain` field](protocol/transactions/types/accountset.md#domain) to match the domain that this `xrp-ledger.toml` file was served from. The domain value (when decoded from ASCII) MUST match _exactly_, including all subdomains such as `www.`. For internationalized domain names, set the `Domain` value to the Punycode of the domain, as described in [RFC3492](https://tools.ietf.org/html/rfc3492). Since setting the `Domain` requires sending a transaction, whoever set the `Domain` value must have possessed the account's secret key when the transaction was sent. diff --git a/content/references/xrpljs2-migration-guide.md b/content/references/xrpljs2-migration-guide.md index 754986f7b5..c9db25b03a 100644 --- a/content/references/xrpljs2-migration-guide.md +++ b/content/references/xrpljs2-migration-guide.md @@ -11,7 +11,7 @@ Follow these instructions to migrate JavaScript / TypeScript code using the **ri ## High-Level Differences -Many fields and functions have "new" names in xrpl.js v2.0; or more accurately, xrpl.js now uses the same names as the [HTTP / WebSocket APIs](http-websocket-apis.html). Structures that were unique to ripple-lib such as an `orderCancellation` object are gone; in their place the library uses the XRP Ledger's native [transaction types](transaction-types.html) like "OfferCancel". Many API methods that return these structures in ripple-lib 1.x are gone; with 2.0, you make requests and get responses in the same format as in the WebSocket API. +Many fields and functions have "new" names in xrpl.js v2.0; or more accurately, xrpl.js now uses the same names as the [HTTP / WebSocket APIs](http-websocket-apis/index.md). Structures that were unique to ripple-lib such as an `orderCancellation` object are gone; in their place the library uses the XRP Ledger's native [transaction types](protocol/transactions/types/index.md) like "OfferCancel". Many API methods that return these structures in ripple-lib 1.x are gone; with 2.0, you make requests and get responses in the same format as in the WebSocket API. The catch-all `RippleAPI` class from ripple-lib 1.x is also gone. With xrpl.js 2.x, there's a `Client` class to handle network operations, and all other operations are strictly offline. There's a new `Wallet` class for addresses & keys, and other classes and properties under the top-level `xrpl` object. @@ -54,11 +54,11 @@ const xrpl = require("xrpl"); ## Validated Results -By default, most methods in ripple-lib 1.x only returned results that were validated by the [consensus process](consensus.html) and therefore final. The xrpl.js equivalents of many methods use the [`Client.request()` method](https://js.xrpl.org/classes/Client.html#request) to call the WebSocket API, where the XRP Ledger server's default settings often use the current (pending) ledger to serve data which is not final. +By default, most methods in ripple-lib 1.x only returned results that were validated by the [consensus process](../concepts/consensus-protocol/index.md) and therefore final. The xrpl.js equivalents of many methods use the [`Client.request()` method](https://js.xrpl.org/classes/Client.html#request) to call the WebSocket API, where the XRP Ledger server's default settings often use the current (pending) ledger to serve data which is not final. -Sometimes you want to use the current open ledger because it has the pending results of many transactions that are likely to succeed, such as when looking up the state of the [decentralized exchange](decentralized-exchange.html). In other cases, you want to use a validated ledger, which only incorporates the results of transactions that are finalized. +Sometimes you want to use the current open ledger because it has the pending results of many transactions that are likely to succeed, such as when looking up the state of the [decentralized exchange](../concepts/tokens/decentralized-exchange/index.md). In other cases, you want to use a validated ledger, which only incorporates the results of transactions that are finalized. -When making API requests with xrpl.js 2.0 using `Client.request()`, you should explicitly [specify what ledger to use](basic-data-types.html#specifying-ledgers). For example, to look up trust lines using the latest _validated ledger_: +When making API requests with xrpl.js 2.0 using `Client.request()`, you should explicitly [specify what ledger to use](protocol/data-types/basic-data-types.md#specifying-ledgers). For example, to look up trust lines using the latest _validated ledger_: **ripple-lib 1.x:** @@ -83,7 +83,7 @@ console.log(trustlines.result) In xrpl.js, there are specific helper functions for signing and submitting transactions and waiting for the XRP Ledger blockchain to confirm those transactions' final outcomes: -- Use `submitAndWait()` to submit a transaction and wait for its [final outcome](finality-of-results.html). If the transaction becomes validated, this resolves to a [tx method][] response; otherwise, it raises an exception. An exception does not guarantee that the transaction was not validated. For example, if the server has a [ledger gap](reliable-transaction-submission.html#ledger-gaps), then the transaction could have been validated in that gap. +- Use `submitAndWait()` to submit a transaction and wait for its [final outcome](../concepts/transactions/finality-of-results/index.md). If the transaction becomes validated, this resolves to a [tx method][] response; otherwise, it raises an exception. An exception does not guarantee that the transaction was not validated. For example, if the server has a [ledger gap](../concepts/transactions/reliable-transaction-submission.md#ledger-gaps), then the transaction could have been validated in that gap. - Use `submit()` to submit and return immediately. This resolves to a [submit method][] response, which shows the preliminary (non-final) result. This method only raises an exception if there was a problem sending the transaction to the XRP Ledger server. For both methods, you can pass a signed transaction to the method directly, or you can sign the transaction right before submitting, by passing prepared transaction instructions and a [`Wallet` instance](#keys-and-wallets). @@ -105,7 +105,7 @@ try { } ``` -Alternatively, you can use the `sign` method of a wallet to sign a transaction and then use `submitAndWait(tx_blob)` to submit it. This can be useful for building [reliable transaction submission](reliable-transaction-submission.html) that can recover from power outages and other disasters. (The library does not handle disaster recovery on its own.) +Alternatively, you can use the `sign` method of a wallet to sign a transaction and then use `submitAndWait(tx_blob)` to submit it. This can be useful for building [reliable transaction submission](../concepts/transactions/reliable-transaction-submission.md) that can recover from power outages and other disasters. (The library does not handle disaster recovery on its own.) ### Controlling LastLedgerSequence @@ -142,7 +142,7 @@ const prepared = await client.autofill({ ## Keys and Wallets -xrpl.js 2.0 introduces a new [`Wallet` class](https://js.xrpl.org/classes/Wallet.html) for managing [cryptographic keys](cryptographic-keys.html) and signing transactions. This replaces functions that took seed or secret values in ripple-lib 1.x, and handles various address encoding and generation tasks as well. +xrpl.js 2.0 introduces a new [`Wallet` class](https://js.xrpl.org/classes/Wallet.html) for managing [cryptographic keys](../concepts/accounts/cryptographic-keys.md) and signing transactions. This replaces functions that took seed or secret values in ripple-lib 1.x, and handles various address encoding and generation tasks as well. ### Generating Keys @@ -214,7 +214,7 @@ In 1.x, you could subscribe to ledger events and API errors using the `.on()` me To subscribe to ledger close events, use `Client.request(method)` to call the [subscribe method][] with `"streams": ["ledger"]`. To attach event handlers, use `Client.on(event_type, callback)`. You can make these calls in either order. -The RippleAPI-specific `ledger` event type from 1.x has been removed; instead, use `ledgerClosed` events. These event messages contain the same data, but the format matches the [Ledger Stream](subscribe.html#ledger-stream) messages in the WebSocket API. +The RippleAPI-specific `ledger` event type from 1.x has been removed; instead, use `ledgerClosed` events. These event messages contain the same data, but the format matches the [Ledger Stream](http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#ledger-stream) messages in the WebSocket API. Example: @@ -256,7 +256,7 @@ In ripple-lib 1.x all methods and properties were on instances of the `RippleAPI | RippleAPI instance method / property | xrpl.js method / property | Notes | |-------------------|----------------|---| | `new ripple.RippleAPI({server: url})` | [`new xrpl.Client(url)`](https://js.xrpl.org/classes/Client.html#constructor) | Use `xrpl.BroadcastClient([url1, url2, ..])` to connect to multiple servers. | -| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) |
      • The `command` field moved into the `options` object for consistency with the WebSocket API.
      • In 1.x the return value of this method (when the Promise resolves) was only the `result` object. Now it returns the whole [WebSocket response format](response-formatting.html); to get the equivalent value, read the `result` field of the return value. | +| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) |
        • The `command` field moved into the `options` object for consistency with the WebSocket API.
        • In 1.x the return value of this method (when the Promise resolves) was only the `result` object. Now it returns the whole [WebSocket response format](http-websocket-apis/api-conventions/response-formatting.md); to get the equivalent value, read the `result` field of the return value. | | `hasNextPage()` | [`xrpl.hasNextPage(response)`](https://js.xrpl.org/modules.html#hasNextPage) | See also: [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) and [`Client.requestAll()`](https://js.xrpl.org/classes/Client.html#requestAll) | | `requestNextPage()` | [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) | | | `computeBinaryTransactionHash()` | [`xrpl.hashes.hashTx()`](https://js.xrpl.org/modules.html#hashes) | | @@ -281,7 +281,7 @@ In ripple-lib 1.x all methods and properties were on instances of the `RippleAPI | `getSettings()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_info method][] instead. Use `xrpl.parseAccountRootFlags()` on the `Flags` field to get the boolean values of individual flag settings. **Warning:** Unlike `getSettings()`, `account_info` can return [results that are not validated and final](#validated-results). | | `getAccountInfo(address, options)` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_info method][] instead. **Warning:** Unlike `getAccountInfo()`, `account_info` can return [results that are not validated and final](#validated-results). | | `getAccountObjects(address, options)` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_objects method][] instead. **Warning:** Unlike `getAccountObjects()`, `account_objects` can return [results that are not validated and final](#validated-results). | -| `getPaymentChannel()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [ledger_entry method](ledger_entry.html#get-paychannel-object) instead. **Warning:** Unlike `getPaymentChannel()`, `ledger_entry` can return [results that are not validated and final](#validated-results). | +| `getPaymentChannel()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [ledger_entry method](http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md#get-paychannel-object) instead. **Warning:** Unlike `getPaymentChannel()`, `ledger_entry` can return [results that are not validated and final](#validated-results). | | `getLedger()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [ledger method][] exactly. **Warning:** Unlike `getLedger()`, `ledger` can return [ledgers that are not validated and final](#validated-results). | | `parseAccountFlags()` | [`xrpl.parseAccountRootFlags()`](https://js.xrpl.org/modules.html#parseAccountRootFlags) | Now a static method on the module. | | `prepareTransaction()` | [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) | See [Transaction Submission](#transaction-submission) for details. | @@ -333,8 +333,4 @@ In ripple-lib 1.x all methods and properties were on instances of the `RippleAPI | `.on("connected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | | `.on("disconnected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/resources/contribute-code/contribute-code.md b/content/resources/contribute-code/contribute-code.md index c91b8529de..a60bba33cc 100644 --- a/content/resources/contribute-code/contribute-code.md +++ b/content/resources/contribute-code/contribute-code.md @@ -11,7 +11,7 @@ The software that powers the XRP Ledger is open source. Anyone can download, mod ## Core Server Source -The software that powers the XRP Ledger is open-source, so anyone can download, modify, extend, or explore it. Community involvement makes it better. Look for "[Source]" links in the [documentation](docs.html) to jump directly into the related source code, or browse the source code on GitHub: +The software that powers the XRP Ledger is open-source, so anyone can download, modify, extend, or explore it. Community involvement makes it better. Look for "[Source]" links in the [documentation](/docs/) to jump directly into the related source code, or browse the source code on GitHub: | XRP Ledger Source Code | | |:-----------------------|:----------------------------------------------------| @@ -85,10 +85,10 @@ The general development path breaks down as follows: ## Code Flowchart -![Code Flowchart](img/Contribute Code Flowchart.png) +![Code Flowchart](/img/Contribute Code Flowchart.png) ## See Also - **Concepts:** - - [Amendments](amendments.html) \ No newline at end of file + - [Amendments](../../concepts/networks-and-servers/amendments.md) diff --git a/content/resources/contribute-code/create-custom-transactors.md b/content/resources/contribute-code/create-custom-transactors.md index e078b5e24f..ad35a04e96 100644 --- a/content/resources/contribute-code/create-custom-transactors.md +++ b/content/resources/contribute-code/create-custom-transactors.md @@ -8,7 +8,7 @@ labels: --- # Create Custom Transactors -A _transactor_ is code that processes a transaction and modifies the XRP Ledger. Creating custom transactors enables you to add new functionality to `rippled`. This tutorial walks through coding transactors, but you'll have to go through the amendment process to add it to XRPL. See: [Contribute Code to the XRP Ledger](contribute-code.html). +A _transactor_ is code that processes a transaction and modifies the XRP Ledger. Creating custom transactors enables you to add new functionality to `rippled`. This tutorial walks through coding transactors, but you'll have to go through the amendment process to add it to XRPL. See: [Contribute Code to the XRP Ledger](contribute-code.md). Transactors follow a basic order of operations: @@ -69,8 +69,10 @@ The `preflight` function checks for errors in the transaction itself before acce - `PreflightContext` doesn't have a view of the ledger. - Use bracket notation to retrieve fields from ledgers and transactions: - auto const curExpiration = (*sle*)[~sfExpiration]; - (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; + ``` + auto const curExpiration = (*sle*)[~sfExpiration]; + (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; + ``` **Note:** The `~` symbol returns an optional type. @@ -78,7 +80,7 @@ The `preflight` function checks for errors in the transaction itself before acce - [`LedgerFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp) - [`TxFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp) -- `rippled` summarizes transaction results with result codes. See: [Transaction Results](transaction-results.html) +- `rippled` summarizes transaction results with result codes. See: [Transaction Results](../../references/protocol/transactions/transaction-results/transaction-results.md) ```c++ CreateCheck::preflight(PreflightContext const& ctx) @@ -319,7 +321,7 @@ You can add more helper functions to your custom transactor as necessary. There ### `calculateBaseFee` -Most transactions inherit the default [reference transaction cost](transaction-cost.html). However, if your transactor needs to define a non-standard transaction cost, you can replace the transactor's `calculateBaseFee` method with a custom one. +Most transactions inherit the default [reference transaction cost](../../concepts/transactions/transaction-cost.md). However, if your transactor needs to define a non-standard transaction cost, you can replace the transactor's `calculateBaseFee` method with a custom one. The following example shows how `EscrowFinish` transactions charge an additional cost on conditional escrows based on the size of the fulfillment: @@ -353,7 +355,7 @@ The `makeTxConsequences` function enables you to create custom consequences for - Tickets consuming more than one sequence number. - Transactions that are normal or blockers, depending on flags or fields set. -**Note:** `TxConsequences` only affects the [transaction queue](transaction-queue.html). If a transaction is likely to claim a fee when applied to the ledger, it will be broadcast to peers. If it's not likely to claim a fee, or that can't be determined, it won't be broadcast. +**Note:** `TxConsequences` only affects the [transaction queue](../../concepts/transactions/transaction-queue.md). If a transaction is likely to claim a fee when applied to the ledger, it will be broadcast to peers. If it's not likely to claim a fee, or that can't be determined, it won't be broadcast. ```c++ @@ -386,4 +388,4 @@ SetAccount::makeTxConsequences(PreflightContext const& ctx) ## Next Steps -Re-compile the server with your new transactor and test it in [stand-alone mode](use-stand-alone-mode.html). If you coded the transactor behind an amendment, you can [force-enable](test-amendments.html) the feature using the config file. \ No newline at end of file +Re-compile the server with your new transactor and test it in [stand-alone mode](../../infrastructure/testing-and-auditing/index.md). If you coded the transactor behind an amendment, you can [force-enable](../../infrastructure/testing-and-auditing/test-amendments.md) the feature using the config file. diff --git a/content/resources/contribute-documentation/creating-diagrams.md b/content/resources/contribute-documentation/creating-diagrams.md index 976886553a..672d2b98ce 100644 --- a/content/resources/contribute-documentation/creating-diagrams.md +++ b/content/resources/contribute-documentation/creating-diagrams.md @@ -7,21 +7,23 @@ blurb: Create diagrams that interact properly with light and dark mode settings. The site contains code to automatically recolor SVG diagrams for light and dark mode. This is more than just inverting images. The recoloring keeps gradients going the same direction (so that things don't look bottom-lit) and replaces colors with equivalents that fit with the theme rather than their inverse. For example, "Ripple blue" gets recolored to XRPL green, not its inverse orange. Example: -![Comparison of invert and theme-aware recoloring](img/theme-aware-recolor.png) +![Comparison of invert and theme-aware recoloring](/img/theme-aware-recolor.png) Theme-aware recoloring uses a single source file in SVG format for diagrams, and produces diagrams that are recolored to match the current theme (light/dark) using CSS. If the user changes their theme, the diagrams immediately change to match it. To include a theme-aware diagram in a document, use the `include_svg` filter with syntax such as the following: ```jinja -{{ include_svg("img/anatomy-of-a-ledger-complete.svg", "Figure 1: XRP Ledger Elements") }} +[{% inline-svg file="/img/anatomy-of-a-ledger-complete.svg" /%}](/img/anatomy-of-a-ledger-complete.svg "Figure 1: XRP Ledger Elements") ``` Leave empty lines before and after this syntax. The SVG file in question should be in the [`img/`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/img) folder at the top level of the repo, or a subfolder of it. The second argument is _title text_, which appears when the user hovers their mouse over the diagram, and can also be used by other software (such as screen readers) to caption the diagram. The resulting SVG file is inlined directly into the Markdown file. One limitation is that you can't use it inside other Markdown structures such as bulleted lists or tables. -> **Note:** The filter source code is [`tool/filter_include_svg.py`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/filter_include_svg.py). This is also the reason that `lxml` is one of the dependencies for building the site. +{% admonition type="info" name="Note" %} +The filter source code is [`tool/filter_include_svg.py`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/filter_include_svg.py). This is also the reason that `lxml` is one of the dependencies for building the site. +{% /admonition %} ## Making Diagrams @@ -30,4 +32,4 @@ You have to take care when creating diagrams so that the recoloring applies corr - Create diagrams for light mode by default. Use a transparent background color. - Only use colors that the theme-aware diagrams code has mappings for. The code for this, including the full list of colors, is in [`styles/_diagrams.scss`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/styles/_diagrams.scss). If needed, you can add new colors by extending the SCSS code. (Don't forget to re-export the CSS when you're done. See the [styles README](https://github.com/XRPLF/xrpl-dev-portal/blob/master/styles/README.md).) - Use actual vector shapes instead of embedded icons/images whenever possible. If you need to put text on top of an image, add a solid background to the text element and use one of the colors the theme has mappings for. -- Don't layer transparent elements containing text on top of elements with different background colors. Apply a background color directly to the element that contains the text. \ No newline at end of file +- Don't layer transparent elements containing text on top of elements with different background colors. Apply a background color directly to the element that contains the text. diff --git a/content/resources/contribute-documentation/documentation-translations.md b/content/resources/contribute-documentation/documentation-translations.md index 186251fc86..bcf31e33ac 100644 --- a/content/resources/contribute-documentation/documentation-translations.md +++ b/content/resources/contribute-documentation/documentation-translations.md @@ -70,7 +70,7 @@ Example entry for a page that isn't translated: ## Where to Start -If you want to translate the XRP Ledger Dev Portal into your native language of choice, start with the ["What is the XRP Ledger?" page]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/concepts/introduction/what-is-the-xrp-ledger.md), which introduces the core concepts behind the XRP Ledger. +If you want to translate the XRP Ledger Dev Portal into your native language of choice, start with the {% repo-link path="content/concepts/introduction/what-is-the-xrp-ledger.md" %}"What is the XRP Ledger?" page{% /repo-link %}, which introduces the core concepts behind the XRP Ledger. Save the file as `what-is-the-xrp-ledger.{language code}.md`, where `{language code}` is the [IETF BCP47](https://tools.ietf.org/html/bcp47) language code. (For example, "es" for Spanish, "ja" for Japanese, "zh-CN" for Simplified Chinese, "zh-TW" for Traditional Chinese as used in Taiwan, and so on.) Then open a [pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) adding your file to this repository. One of the repository's maintainers can help with the other necessary setup to add the language to the site. diff --git a/content/resources/contribute-documentation/index.md b/content/resources/contribute-documentation/index.md index 1c30b275ee..79e529fc14 100644 --- a/content/resources/contribute-documentation/index.md +++ b/content/resources/contribute-documentation/index.md @@ -93,7 +93,8 @@ The Markdown file itself should start with a frontmatter stanza such as the foll --- html: the-rippled-server.html parent: concepts.html -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: rippled is the core peer-to-peer server that manages the XRP Ledger. This section covers concepts that help you learn the "what" and "why" behind fundamental aspects of the rippled server. --- ``` @@ -167,3 +168,6 @@ The fronmatter for a Markdown file in this repo can contain arbitrary key-value | `filters` | Array of Strings | A list of additional filters to use on this page. [Filters](https://github.com/ripple/dactyl/blob/master/README.md#filters) are Python scripts that provide additional pre- or post-processing of page contents. | | `canonical_url` | String | Provides the canonical URL for a page that takes query parameters. Search engines and other tools may use this when linking to the page. | | `embed_xrpl_js` | Boolean | Use `true` to have the latest version of [xrpl.js](https://js.xrpl.org) loaded on the page. | + + +{% child-pages /%} diff --git a/content/resources/contribute-documentation/tutorial-structure.md b/content/resources/contribute-documentation/tutorial-structure.md index fac45e18b4..8d334b87c2 100644 --- a/content/resources/contribute-documentation/tutorial-structure.md +++ b/content/resources/contribute-documentation/tutorial-structure.md @@ -17,19 +17,19 @@ Separate setup (prerequisites) from usage from code development. These are each ## Description -![Description](img/tut-struct1.png) +![Description](/img/tut-struct1.png) List what the sample demonstrates. If possible, each example should describe the steps to accomplish specific related tasks. (For example, create a NFT Sell Offer, Accept a Sell Offer, Delete a Sell Offer.) There should be enough conceptual information to understand what the tutorial illustrates, with links to additional conceptual information, if needed. ## Prerequisites -![Prerequisites](img/tut-struct2.png) +![Prerequisites](/img/tut-struct2.png) Provide links to any required software and to all of the example code needed to run the tutorial. If necessary, give simple instructions for using third-party tools, but provide a link to the source website for the customer to do a deeper dive at their leisure. ## Usage Example -![Usage](img/tut-struct3.png) +![Usage](/img/tut-struct3.png) Start by providing a finished, working example of the tutorial application. This is an opportunity for immediate success working with the software to solve a problem. @@ -39,16 +39,16 @@ Describe the sunny day scenario. The application should run without problems if ## Code Walkthrough -![Code Walkthrough](img/tut-struct4.png) +![Code Walkthrough](/img/tut-struct4.png) Walk through the code, one chunk at a time. Don’t belabor topics that have been discussed in earlier examples. Provide sample code, but don’t provide exhaustive explanations for how to program underlying platforms like HTML syntax unless there is something unique to the implementation. An important thing to emphasize is that every interaction with the XRPL is either a transaction or a request, and that all transactions and requests are essentially the same. The sample code we provide shows how to prepare the transaction or request, and how to process the returned results. Knowing how to submit and respond to one transaction or request gives a pretty good idea for how to submit and respond to any transaction or request. -(Technically there is third category, similar to a request: a notification from a subscription stream. See [Subscription Methods](subscription-methods.html).) +(Technically there is third category, similar to a request: a notification from a subscription stream. See [Subscription Methods](../../references/http-websocket-apis/public-api-methods/subscription-methods/index.md).) ## See Also -![See Also](img/tut-struct5.png) +![See Also](/img/tut-struct5.png) At the end of the tutorial, provide links to additional resources, conceptual information, and any tutorials that would be a sensible next step in the learning journey. diff --git a/content/resources/index.md b/content/resources/index.md index 4fe7b08dcf..ff3ed7a22a 100644 --- a/content/resources/index.md +++ b/content/resources/index.md @@ -1,8 +1,12 @@ --- html: resources.html parent: index.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Resources -Other resources to help understand the XRP Ledger and develop on it. \ No newline at end of file +Other resources to help understand the XRP Ledger and develop on it. + + +{% child-pages /%} diff --git a/content/resources/known-amendments.md b/content/resources/known-amendments.md index eb6ae620e0..15d5f4fa70 100644 --- a/content/resources/known-amendments.md +++ b/content/resources/known-amendments.md @@ -10,100 +10,100 @@ labels: ## Known Amendments on Mainnet -The following is a comprehensive list of all known [amendments](amendments.html) and their status on the production XRP Ledger: +The following is a comprehensive list of all known [amendments](../concepts/networks-and-servers/amendments.md) and their status on the production XRP Ledger: **Tip:** This list is updated manually. For a live view of amendment voting, see the [XRPScan Amendments Dashboard](https://xrpscan.com/amendments). | Name | Introduced | Status | |:----------------------------------|:-----------|:------------------------------| -| [DID][] | v2.0.0 | [Open for Voting: 2024-01-09](https://xrpl.org/blog/2024/rippled-2.0.0.html "BADGE_80d0e0") | -| [fixDisallowIncomingV1][] | v2.0.0 | [Open for Voting: 2024-01-09](https://xrpl.org/blog/2024/rippled-2.0.0.html "BADGE_80d0e0") | -| [fixFillOrKill][] | v2.0.0 | [Open for Voting: 2024-01-09](https://xrpl.org/blog/2024/rippled-2.0.0.html "BADGE_80d0e0") | -| [XChainBridge][] | v2.0.0 | [Open for Voting: 2024-01-09](https://xrpl.org/blog/2024/rippled-2.0.0.html "BADGE_80d0e0") | -| [AMM][] | v1.12.0 | [Open for Voting: 2023-09-06](https://xrpl.org/blog/2023/rippled-1.12.0.html "BADGE_80d0e0") | -| [Clawback][] | v1.12.0 | [Open for Voting: 2023-09-06](https://xrpl.org/blog/2023/rippled-1.12.0.html "BADGE_80d0e0") | -| [XRPFees][] | v1.10.0 | [Open for Voting: 2023-03-14](https://xrpl.org/blog/2023/rippled-1.10.0.html "BADGE_80d0e0") | -| [fixReducedOffersV1][] | v1.12.0 | [Enabled: 2023-11-24](https://livenet.xrpl.org/transactions/87723D9D01AFAD8E55C944D7D1598969A8FBD852FCACAE361A40CBF5D4CB3BB1 "BADGE_GREEN") | -| [fixNFTokenRemint][] | v1.11.0 | [Enabled: 2023-11-27](https://livenet.xrpl.org/transactions/CA4562711E4679FE9317DD767871E90A404C7A8B84FAFD35EC2CF0231F1F6DAF "BADGE_GREEN") | -| [DisallowIncoming][] | v1.10.0 | [Enabled: 2023-08-21](https://livenet.xrpl.org/transactions/8747EF67D8CC1CA72A88817FBDF454507C3D9E8F0702D8E2B614958AE27A1D4E "BADGE_GREEN") | -| [fixNonFungibleTokensV1_2][] | v1.10.0 | [Enabled: 2023-08-21](https://livenet.xrpl.org/transactions/3AB0892CAB29F049B9D9E5D522701FD01469D0B97080626F8DD4B489D0B8784E "BADGE_GREEN") | -| [fixTrustLinesToSelf][] | v1.10.0 | [Enabled: 2023-08-21](https://livenet.xrpl.org/transactions/4F4C05142CA1DE257CD86513086F0C99FAF06D80932377C6B6C02B3D09623A43 "BADGE_GREEN") | -| [fixUniversalNumber][] | v1.10.0 | [Enabled: 2023-08-21](https://livenet.xrpl.org/transactions/EFE82B7155CE5B766AF343D98DAE6662C2713C99E760D610370D02338881B2F3 "BADGE_GREEN") | -| [ImmediateOfferKilled][] | v1.10.0 | [Enabled: 2023-08-21](https://livenet.xrpl.org/transactions/65B8A4068B20696A866A07E5668B2AEB0451564E13B79421356FB962EC9A536B "BADGE_GREEN") | -| [CheckCashMakesTrustLine][] | v1.8.0 | [Enabled: 2023-01-23](https://livenet.xrpl.org/transactions/4C8546305583F72E056120B136EB251E7F45E8DFAAE65FDA33B22181A9CA4557 "BADGE_GREEN") | -| [NonFungibleTokensV1_1][] | v1.9.2 | [Enabled: 2022-10-31](https://livenet.xrpl.org/transactions/251242639A640CD9287A14A476E7F7C20BA009FDE410570926BAAF29AA05CEDE "BADGE_GREEN") | -| [fixRemoveNFTokenAutoTrustLine][] | v1.9.4 | [Enabled: 2022-10-27](https://livenet.xrpl.org/transactions/2A67DB4AC65D688281B76334C4B52038FD56931694A6DD873B5CCD9B970AD57C "BADGE_GREEN") | -| [ExpandedSignerList][] | v1.9.1 | [Enabled: 2022-10-13](https://livenet.xrpl.org/transactions/802E2446547BB86397217E32A78CB9857F21B048B91C81BCC6EF837BE9C72C87 "BADGE_GREEN") | -| [NegativeUNL][] | v1.7.3 | [Enabled: 2021-11-21](https://livenet.xrpl.org/transactions/1500FADB73E7148191216C53040990E829C7110788B26E7F3246CB3660769EBA "BADGE_GREEN") | -| [fixRmSmallIncreasedQOffers][] | v1.7.2 | [Enabled: 2021-11-18](https://livenet.xrpl.org/transactions/1F37BA0502576DD7B5464F47641FA95DEB55735EC2663269DFD47810505478E7 "BADGE_GREEN") | -| [TicketBatch][] | v1.7.0 | [Enabled: 2021-11-18](https://livenet.xrpl.org/transactions/111B32EDADDE916206E7315FBEE2DA1521B229F207F65DD314829F13C8D9CA36 "BADGE_GREEN") | -| [fixSTAmountCanonicalize][] | v1.7.0 | [Enabled: 2021-11-11](https://livenet.xrpl.org/transactions/AFF17321A012C756B64FCC3BA0FDF79109F28E244D838A28D5AE8A0384C7C532 "BADGE_GREEN") | -| [FlowSortStrands][] | v1.7.0 | [Enabled: 2021-11-11](https://livenet.xrpl.org/transactions/1C3D3BD2AFDAF326EBFEA54579A89B024856609DB4310F7140086AAB262D09A1 "BADGE_GREEN") | -| [fix1781][] | v1.6.0 | [Enabled: 2021-04-08](https://livenet.xrpl.org/transactions/DA59F10201D651B544F65896330AFACA8CA4198904265AD279D56781F655FAFB "BADGE_GREEN") | -| [fixAmendmentMajorityCalc][] | v1.6.0 | [Enabled: 2021-04-08](https://livenet.xrpl.org/transactions/5B3ACE6CAC9C56D2008410F1B0881A0A4A8866FB99D2C2B2261C86C760DC95EF "BADGE_GREEN") | -| [HardenedValidations][] | v1.6.0 | [Enabled: 2021-04-08](https://livenet.xrpl.org/transactions/3A45DCF055B68DCBBFE034240F9359FB22E8A64B1BF7113304535BF5BB8144BF "BADGE_GREEN") | -| [FlowCross][] | v0.70.0 | [Enabled: 2020-08-04](https://livenet.xrpl.org/transactions/44C4B040448D89B6C5A5DEC97C17FEDC2E590BA094BC7DB63B7FDC888B9ED78F "BADGE_GREEN") | -| [fixQualityUpperBound][] | v1.5.0 | [Enabled: 2020-07-09](https://livenet.xrpl.org/transactions/5F8E9E9B175BB7B95F529BEFE3C84253E78DAF6076078EC450A480C861F6889E "BADGE_GREEN") | -| [RequireFullyCanonicalSig][] | v1.5.0 | [Enabled: 2020-07-03](https://livenet.xrpl.org/transactions/94D8B158E948148B949CC3C35DD5DC4791D799E1FD5D3CE0E570160EDEF947D3 "BADGE_GREEN") | -| [Checks][] | v0.90.0 | [Enabled: 2020-06-18](https://livenet.xrpl.org/transactions/D88F2DCDFB10023F9F6CBA8DF34C18E321D655CAC8FDB962387A5DB1540242A6 "BADGE_GREEN") | -| [DeletableAccounts][] | v1.4.0 | [Enabled: 2020-05-08](https://livenet.xrpl.org/transactions/47B90519D31E0CB376B5FEE5D9359FA65EEEB2289F1952F2A3EB71D623B945DE "BADGE_GREEN") | -| [fixCheckThreading][] | v1.4.0 | [Enabled: 2020-05-01](https://livenet.xrpl.org/transactions/74AFEA8C17D25CA883D40F998757CA3B0DB1AC86794335BAA25FF20E00C2C30A "BADGE_GREEN") | -| [fixPayChanRecipientOwnerDir][] | v1.4.0 | [Enabled: 2020-05-01](https://livenet.xrpl.org/transactions/D2F8E457D08ACB185CDE3BB9BB1989A9052344678566785BACFB9DFDBDEDCF09 "BADGE_GREEN") | -| [fixMasterKeyAsRegularKey][] | v1.3.1 | [Enabled: 2019-10-02](https://livenet.xrpl.org/transactions/61096F8B5AFDD8F5BAF7FC7221BA4D1849C4E21B1BA79733E44B12FC8DA6EA20 "BADGE_GREEN") | -| [MultiSignReserve][] | v1.2.0 | [Enabled: 2019-04-17](https://livenet.xrpl.org/transactions/C421E1D08EFD78E6B8D06B085F52A34A681D0B51AE62A018527E1B8F54C108FB "BADGE_GREEN") | -| [fixTakerDryOfferRemoval][] | v1.2.0 | [Enabled: 2019-04-02](https://livenet.xrpl.org/transactions/C42335E95F1BD2009A2C090EA57BD7FB026AD285B4B85BE15F669BA4F70D11AF "BADGE_GREEN") | -| [fix1578][] | v1.2.0 | [Enabled: 2019-03-23](https://livenet.xrpl.org/transactions/7A80C87F59BCE6973CBDCA91E4DBDB0FC5461D3599A8BC8EAD02FA590A50005D "BADGE_GREEN") | -| [DepositPreauth][DepositPreauthAmendment] | v1.1.0 | [Enabled: 2018-10-09](https://livenet.xrpl.org/transactions/AD27403CB840AE67CADDB084BC54249D7BD1B403885819B39CCF723DC671F927 "BADGE_GREEN") | -| [fix1515][] | v1.1.0 | [Enabled: 2018-10-09](https://livenet.xrpl.org/transactions/6DF60D9EC8AF3C39B173840F4D1C57F8A8AB51E7C6571483B4A5F1AA0A9AAEBF "BADGE_GREEN") | -| [fix1543][] | v1.0.0 | [Enabled: 2018-06-21](https://livenet.xrpl.org/transactions/EA6054C9D256657014052F1447216CEA75FFDB1C9342D45EB0F9E372C0F879E6 "BADGE_GREEN") | -| [fix1623][] | v1.0.0 | [Enabled: 2018-06-20](https://livenet.xrpl.org/transactions/4D218D86A2B33E29F17AA9C25D8DFFEE5D2559F75F7C0B1D016D3F2C2220D3EB "BADGE_GREEN") | -| [fix1571][] | v1.0.0 | [Enabled: 2018-06-19](https://livenet.xrpl.org/transactions/920AA493E57D991414B614FB3C1D1E2F863211B48129D09BC8CB74C9813C38FC "BADGE_GREEN") | -| [DepositAuth][] | v0.90.0 | [Enabled: 2018-04-06](https://livenet.xrpl.org/transactions/902C51270B918B40CD23A622E18D48B4ABB86F0FF4E84D72D9E1907BF3BD4B25 "BADGE_GREEN") | -| [fix1513][] | v0.90.0 | [Enabled: 2018-04-06](https://livenet.xrpl.org/transactions/57FE540B8B8E2F26CE8B53D1282FEC55E605257E29F5B9EB49E15EA3989FCF6B "BADGE_GREEN") | -| [fix1201][] | v0.80.0 | [Enabled: 2017-11-14](https://livenet.xrpl.org/transactions/B1157116DDDDA9D9B1C4A95C029AC335E05DB052CECCC5CA90118A4D46C77C5E "BADGE_GREEN") | -| [fix1512][] | v0.80.0 | [Enabled: 2017-11-14](https://livenet.xrpl.org/transactions/63F69F59BEFDC1D79DBF1E4060601E05960683AA784926FB74BC55074C4F6647 "BADGE_GREEN") | -| [fix1523][] | v0.80.0 | [Enabled: 2017-11-14](https://livenet.xrpl.org/transactions/97FD0E35654F4B6714010D3CBBAC4038F60D64AD0292693C28A1DF4B796D8469 "BADGE_GREEN") | -| [fix1528][] | v0.80.0 | [Enabled: 2017-11-14](https://livenet.xrpl.org/transactions/27AEE02DA4FE22B6BB479F850FBBC873FDC7A09A8594753A91B53098D726397E "BADGE_GREEN") | -| [SortedDirectories][] | v0.80.0 | [Enabled: 2017-11-14](https://livenet.xrpl.org/transactions/6E2309C156EBF94D03B83D282A3914671BF9168FB26463CFECD068C63FFFAB29 "BADGE_GREEN") | -| [EnforceInvariants][] | v0.70.0 | [Enabled: 2017-07-07](https://livenet.xrpl.org/transactions/17593B03F7D3283966F3C0ACAF4984F26E9D884C9A202097DAED0523908E76C6 "BADGE_GREEN") | -| [fix1373][] | v0.70.0 | [Enabled: 2017-07-07](https://livenet.xrpl.org/transactions/7EBA3852D111EA19D03469F6870FAAEBF84C64F1B9BAC13B041DDD26E28CA399 "BADGE_GREEN") | -| [Escrow][] | v0.60.0 | [Enabled: 2017-03-31](https://livenet.xrpl.org/transactions/C581E0A3F3832FFFEEB13C497658F475566BD7695B0BBA531A774E6739801515 "BADGE_GREEN") | -| [fix1368][] | v0.60.0 | [Enabled: 2017-03-31](https://livenet.xrpl.org/transactions/3D20DE5CD19D5966865A7D0405FAC7902A6F623659667D6CB872DF7A94B6EF3F "BADGE_GREEN") | -| [PayChan][] | v0.33.0 | [Enabled: 2017-03-31](https://livenet.xrpl.org/transactions/16135C0B4AB2419B89D4FB4569B8C37FF76B9EF9CE0DD99CCACB5734445AFD7E "BADGE_GREEN") | -| [TickSize][] | v0.50.0 | [Enabled: 2017-02-21](https://livenet.xrpl.org/transactions/A12430E470BE5C846759EAE3C442FF03374D5D73ECE5815CF4906894B769565E "BADGE_GREEN") | -| [CryptoConditions][] | v0.50.0 | [Enabled: 2017-01-03](https://livenet.xrpl.org/transactions/8EB00131E1C3DB35EDFF45C155D941E18C3E86BC1934FF987D2DA204F4065F15 "BADGE_GREEN") | -| [Flow][] | v0.33.0 | [Enabled: 2016-10-21](https://livenet.xrpl.org/transactions/C06CE3CABA3907389E4DD296C5F31C73B1548CC20BD7B83416C78CD7D4CD38FC "BADGE_GREEN") | -| [TrustSetAuth][] | v0.30.0 | [Enabled: 2016-07-19](https://livenet.xrpl.org/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") | -| [MultiSign][] | v0.31.0 | [Enabled: 2016-06-27](https://livenet.xrpl.org/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") | -| [FeeEscalation][] | v0.31.0 | [Enabled: 2016-05-19](https://livenet.xrpl.org/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") | +| [DID][] | v2.0.0 | {% badge href="https://xrpl.org/blog/2024/rippled-2.0.0.html" %}Open for Voting: 2024-01-09{% /badge %} | +| [fixDisallowIncomingV1][] | v2.0.0 | {% badge href="https://xrpl.org/blog/2024/rippled-2.0.0.html" %}Open for Voting: 2024-01-09{% /badge %} | +| [fixFillOrKill][] | v2.0.0 | {% badge href="https://xrpl.org/blog/2024/rippled-2.0.0.html" %}Open for Voting: 2024-01-09{% /badge %} | +| [XChainBridge][] | v2.0.0 | {% badge href="https://xrpl.org/blog/2024/rippled-2.0.0.html" %}Open for Voting: 2024-01-09{% /badge %} | +| [AMM][] | v1.12.0 | {% badge href="https://xrpl.org/blog/2023/rippled-1.12.0.html" %}Open for Voting: 2023-09-06{% /badge %} | +| [Clawback][] | v1.12.0 | {% badge href="https://xrpl.org/blog/2023/rippled-1.12.0.html" %}Open for Voting: 2023-09-06{% /badge %} | +| [XRPFees][] | v1.10.0 | {% badge href="https://xrpl.org/blog/2023/rippled-1.10.0.html" %}Open for Voting: 2023-03-14{% /badge %} | +| [fixReducedOffersV1][] | v1.12.0 | {% badge href="https://livenet.xrpl.org/transactions/87723D9D01AFAD8E55C944D7D1598969A8FBD852FCACAE361A40CBF5D4CB3BB1" %}Enabled: 2023-11-24{% /badge %} | +| [fixNFTokenRemint][] | v1.11.0 | {% badge href="https://livenet.xrpl.org/transactions/CA4562711E4679FE9317DD767871E90A404C7A8B84FAFD35EC2CF0231F1F6DAF" %}Enabled: 2023-11-27{% /badge %} | +| [DisallowIncoming][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/8747EF67D8CC1CA72A88817FBDF454507C3D9E8F0702D8E2B614958AE27A1D4E" %}Enabled: 2023-08-21{% /badge %} | +| [fixNonFungibleTokensV1_2][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/3AB0892CAB29F049B9D9E5D522701FD01469D0B97080626F8DD4B489D0B8784E" %}Enabled: 2023-08-21{% /badge %} | +| [fixTrustLinesToSelf][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/4F4C05142CA1DE257CD86513086F0C99FAF06D80932377C6B6C02B3D09623A43" %}Enabled: 2023-08-21{% /badge %} | +| [fixUniversalNumber][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/EFE82B7155CE5B766AF343D98DAE6662C2713C99E760D610370D02338881B2F3" %}Enabled: 2023-08-21{% /badge %} | +| [ImmediateOfferKilled][] | v1.10.0 | {% badge href="https://livenet.xrpl.org/transactions/65B8A4068B20696A866A07E5668B2AEB0451564E13B79421356FB962EC9A536B" %}Enabled: 2023-08-21{% /badge %} | +| [CheckCashMakesTrustLine][] | v1.8.0 | {% badge href="https://livenet.xrpl.org/transactions/4C8546305583F72E056120B136EB251E7F45E8DFAAE65FDA33B22181A9CA4557" %}Enabled: 2023-01-23{% /badge %} | +| [NonFungibleTokensV1_1][] | v1.9.2 | {% badge href="https://livenet.xrpl.org/transactions/251242639A640CD9287A14A476E7F7C20BA009FDE410570926BAAF29AA05CEDE" %}Enabled: 2022-10-31{% /badge %} | +| [fixRemoveNFTokenAutoTrustLine][] | v1.9.4 | {% badge href="https://livenet.xrpl.org/transactions/2A67DB4AC65D688281B76334C4B52038FD56931694A6DD873B5CCD9B970AD57C" %}Enabled: 2022-10-27{% /badge %} | +| [ExpandedSignerList][] | v1.9.1 | {% badge href="https://livenet.xrpl.org/transactions/802E2446547BB86397217E32A78CB9857F21B048B91C81BCC6EF837BE9C72C87" %}Enabled: 2022-10-13{% /badge %} | +| [NegativeUNL][] | v1.7.3 | {% badge href="https://livenet.xrpl.org/transactions/1500FADB73E7148191216C53040990E829C7110788B26E7F3246CB3660769EBA" %}Enabled: 2021-11-21{% /badge %} | +| [fixRmSmallIncreasedQOffers][] | v1.7.2 | {% badge href="https://livenet.xrpl.org/transactions/1F37BA0502576DD7B5464F47641FA95DEB55735EC2663269DFD47810505478E7" %}Enabled: 2021-11-18{% /badge %} | +| [TicketBatch][] | v1.7.0 | {% badge href="https://livenet.xrpl.org/transactions/111B32EDADDE916206E7315FBEE2DA1521B229F207F65DD314829F13C8D9CA36" %}Enabled: 2021-11-18{% /badge %} | +| [fixSTAmountCanonicalize][] | v1.7.0 | {% badge href="https://livenet.xrpl.org/transactions/AFF17321A012C756B64FCC3BA0FDF79109F28E244D838A28D5AE8A0384C7C532" %}Enabled: 2021-11-11{% /badge %} | +| [FlowSortStrands][] | v1.7.0 | {% badge href="https://livenet.xrpl.org/transactions/1C3D3BD2AFDAF326EBFEA54579A89B024856609DB4310F7140086AAB262D09A1" %}Enabled: 2021-11-11{% /badge %} | +| [fix1781][] | v1.6.0 | {% badge href="https://livenet.xrpl.org/transactions/DA59F10201D651B544F65896330AFACA8CA4198904265AD279D56781F655FAFB" %}Enabled: 2021-04-08{% /badge %} | +| [fixAmendmentMajorityCalc][] | v1.6.0 | {% badge href="https://livenet.xrpl.org/transactions/5B3ACE6CAC9C56D2008410F1B0881A0A4A8866FB99D2C2B2261C86C760DC95EF" %}Enabled: 2021-04-08{% /badge %} | +| [HardenedValidations][] | v1.6.0 | {% badge href="https://livenet.xrpl.org/transactions/3A45DCF055B68DCBBFE034240F9359FB22E8A64B1BF7113304535BF5BB8144BF" %}Enabled: 2021-04-08{% /badge %} | +| [FlowCross][] | v0.70.0 | {% badge href="https://livenet.xrpl.org/transactions/44C4B040448D89B6C5A5DEC97C17FEDC2E590BA094BC7DB63B7FDC888B9ED78F" %}Enabled: 2020-08-04{% /badge %} | +| [fixQualityUpperBound][] | v1.5.0 | {% badge href="https://livenet.xrpl.org/transactions/5F8E9E9B175BB7B95F529BEFE3C84253E78DAF6076078EC450A480C861F6889E" %}Enabled: 2020-07-09{% /badge %} | +| [RequireFullyCanonicalSig][] | v1.5.0 | {% badge href="https://livenet.xrpl.org/transactions/94D8B158E948148B949CC3C35DD5DC4791D799E1FD5D3CE0E570160EDEF947D3" %}Enabled: 2020-07-03{% /badge %} | +| [Checks][] | v0.90.0 | {% badge href="https://livenet.xrpl.org/transactions/D88F2DCDFB10023F9F6CBA8DF34C18E321D655CAC8FDB962387A5DB1540242A6" %}Enabled: 2020-06-18{% /badge %} | +| [DeletableAccounts][] | v1.4.0 | {% badge href="https://livenet.xrpl.org/transactions/47B90519D31E0CB376B5FEE5D9359FA65EEEB2289F1952F2A3EB71D623B945DE" %}Enabled: 2020-05-08{% /badge %} | +| [fixCheckThreading][] | v1.4.0 | {% badge href="https://livenet.xrpl.org/transactions/74AFEA8C17D25CA883D40F998757CA3B0DB1AC86794335BAA25FF20E00C2C30A" %}Enabled: 2020-05-01{% /badge %} | +| [fixPayChanRecipientOwnerDir][] | v1.4.0 | {% badge href="https://livenet.xrpl.org/transactions/D2F8E457D08ACB185CDE3BB9BB1989A9052344678566785BACFB9DFDBDEDCF09" %}Enabled: 2020-05-01{% /badge %} | +| [fixMasterKeyAsRegularKey][] | v1.3.1 | {% badge href="https://livenet.xrpl.org/transactions/61096F8B5AFDD8F5BAF7FC7221BA4D1849C4E21B1BA79733E44B12FC8DA6EA20" %}Enabled: 2019-10-02{% /badge %} | +| [MultiSignReserve][] | v1.2.0 | {% badge href="https://livenet.xrpl.org/transactions/C421E1D08EFD78E6B8D06B085F52A34A681D0B51AE62A018527E1B8F54C108FB" %}Enabled: 2019-04-17{% /badge %} | +| [fixTakerDryOfferRemoval][] | v1.2.0 | {% badge href="https://livenet.xrpl.org/transactions/C42335E95F1BD2009A2C090EA57BD7FB026AD285B4B85BE15F669BA4F70D11AF" %}Enabled: 2019-04-02{% /badge %} | +| [fix1578][] | v1.2.0 | {% badge href="https://livenet.xrpl.org/transactions/7A80C87F59BCE6973CBDCA91E4DBDB0FC5461D3599A8BC8EAD02FA590A50005D" %}Enabled: 2019-03-23{% /badge %} | +| [DepositPreauth][DepositPreauthAmendment] | v1.1.0 | {% badge href="https://livenet.xrpl.org/transactions/AD27403CB840AE67CADDB084BC54249D7BD1B403885819B39CCF723DC671F927" %}Enabled: 2018-10-09{% /badge %} | +| [fix1515][] | v1.1.0 | {% badge href="https://livenet.xrpl.org/transactions/6DF60D9EC8AF3C39B173840F4D1C57F8A8AB51E7C6571483B4A5F1AA0A9AAEBF" %}Enabled: 2018-10-09{% /badge %} | +| [fix1543][] | v1.0.0 | {% badge href="https://livenet.xrpl.org/transactions/EA6054C9D256657014052F1447216CEA75FFDB1C9342D45EB0F9E372C0F879E6" %}Enabled: 2018-06-21{% /badge %} | +| [fix1623][] | v1.0.0 | {% badge href="https://livenet.xrpl.org/transactions/4D218D86A2B33E29F17AA9C25D8DFFEE5D2559F75F7C0B1D016D3F2C2220D3EB" %}Enabled: 2018-06-20{% /badge %} | +| [fix1571][] | v1.0.0 | {% badge href="https://livenet.xrpl.org/transactions/920AA493E57D991414B614FB3C1D1E2F863211B48129D09BC8CB74C9813C38FC" %}Enabled: 2018-06-19{% /badge %} | +| [DepositAuth][] | v0.90.0 | {% badge href="https://livenet.xrpl.org/transactions/902C51270B918B40CD23A622E18D48B4ABB86F0FF4E84D72D9E1907BF3BD4B25" %}Enabled: 2018-04-06{% /badge %} | +| [fix1513][] | v0.90.0 | {% badge href="https://livenet.xrpl.org/transactions/57FE540B8B8E2F26CE8B53D1282FEC55E605257E29F5B9EB49E15EA3989FCF6B" %}Enabled: 2018-04-06{% /badge %} | +| [fix1201][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/B1157116DDDDA9D9B1C4A95C029AC335E05DB052CECCC5CA90118A4D46C77C5E" %}Enabled: 2017-11-14{% /badge %} | +| [fix1512][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/63F69F59BEFDC1D79DBF1E4060601E05960683AA784926FB74BC55074C4F6647" %}Enabled: 2017-11-14{% /badge %} | +| [fix1523][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/97FD0E35654F4B6714010D3CBBAC4038F60D64AD0292693C28A1DF4B796D8469" %}Enabled: 2017-11-14{% /badge %} | +| [fix1528][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/27AEE02DA4FE22B6BB479F850FBBC873FDC7A09A8594753A91B53098D726397E" %}Enabled: 2017-11-14{% /badge %} | +| [SortedDirectories][] | v0.80.0 | {% badge href="https://livenet.xrpl.org/transactions/6E2309C156EBF94D03B83D282A3914671BF9168FB26463CFECD068C63FFFAB29" %}Enabled: 2017-11-14{% /badge %} | +| [EnforceInvariants][] | v0.70.0 | {% badge href="https://livenet.xrpl.org/transactions/17593B03F7D3283966F3C0ACAF4984F26E9D884C9A202097DAED0523908E76C6" %}Enabled: 2017-07-07{% /badge %} | +| [fix1373][] | v0.70.0 | {% badge href="https://livenet.xrpl.org/transactions/7EBA3852D111EA19D03469F6870FAAEBF84C64F1B9BAC13B041DDD26E28CA399" %}Enabled: 2017-07-07{% /badge %} | +| [Escrow][] | v0.60.0 | {% badge href="https://livenet.xrpl.org/transactions/C581E0A3F3832FFFEEB13C497658F475566BD7695B0BBA531A774E6739801515" %}Enabled: 2017-03-31{% /badge %} | +| [fix1368][] | v0.60.0 | {% badge href="https://livenet.xrpl.org/transactions/3D20DE5CD19D5966865A7D0405FAC7902A6F623659667D6CB872DF7A94B6EF3F" %}Enabled: 2017-03-31{% /badge %} | +| [PayChan][] | v0.33.0 | {% badge href="https://livenet.xrpl.org/transactions/16135C0B4AB2419B89D4FB4569B8C37FF76B9EF9CE0DD99CCACB5734445AFD7E" %}Enabled: 2017-03-31{% /badge %} | +| [TickSize][] | v0.50.0 | {% badge href="https://livenet.xrpl.org/transactions/A12430E470BE5C846759EAE3C442FF03374D5D73ECE5815CF4906894B769565E" %}Enabled: 2017-02-21{% /badge %} | +| [CryptoConditions][] | v0.50.0 | {% badge href="https://livenet.xrpl.org/transactions/8EB00131E1C3DB35EDFF45C155D941E18C3E86BC1934FF987D2DA204F4065F15" %}Enabled: 2017-01-03{% /badge %} | +| [Flow][] | v0.33.0 | {% badge href="https://livenet.xrpl.org/transactions/C06CE3CABA3907389E4DD296C5F31C73B1548CC20BD7B83416C78CD7D4CD38FC" %}Enabled: 2016-10-21{% /badge %} | +| [TrustSetAuth][] | v0.30.0 | {% badge href="https://livenet.xrpl.org/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF" %}Enabled: 2016-07-19{% /badge %} | +| [MultiSign][] | v0.31.0 | {% badge href="https://livenet.xrpl.org/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7" %}Enabled: 2016-06-27{% /badge %} | +| [FeeEscalation][] | v0.31.0 | {% badge href="https://livenet.xrpl.org/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3" %}Enabled: 2016-05-19{% /badge %} | **Note:** In many cases, an incomplete version of the code for an amendment is present in previous versions of the software. The "Introduced" version in the table above is the first stable version. The value "TBD" indicates that the amendment is not yet considered stable. ## Amendments in Development -The following is a list of [amendments](amendments.html) that are being developed and a private network is available to test the changes. +The following is a list of [amendments](../concepts/networks-and-servers/amendments.md) that are being developed and a private network is available to test the changes. | Name | Status | Additional Information | |:----------------------------------|:------------------------------------------|:-------------------------------| -| [Hooks][] | [In Development: TBD]( "BADGE_LIGHTGREY") | [XRPL Hooks](https://hooks.xrpl.org/) | -| [OwnerPaysFee][] | [In Development: TBD]( "BADGE_LIGHTGREY") | | +| [Hooks][] | {% badge %}In Development: TBD{% /badge %} | [XRPL Hooks](https://hooks.xrpl.org/) | +| [OwnerPaysFee][] | {% badge %}In Development: TBD{% /badge %} | | -**Tip:** This list is updated manually. If you're working on an amendment and have a private network to test the changes, you can edit this page to add your in-development amendment to this list. For more information on contributing to the XRP Ledger, see [Contribute Code to the XRP Ledger](contribute-code-flow.html). +**Tip:** This list is updated manually. If you're working on an amendment and have a private network to test the changes, you can edit this page to add your in-development amendment to this list. For more information on contributing to the XRP Ledger, see [Contribute Code to the XRP Ledger](contribute-code/contribute-code.md). ## Obsolete Amendments -The following is a list of known [amendments](amendments.html) that have been removed in a previous version, or are obsolete and have been marked for removal. +The following is a list of known [amendments](../concepts/networks-and-servers/amendments.md) that have been removed in a previous version, or are obsolete and have been marked for removal. | Name | Introduced | Status | |:----------------------------------|:-----------|:------------------------------| -| [fixNFTokenNegOffer][] | v1.9.2 | [Obsolete: To Be Removed]( "BADGE_RED") | -| [fixNFTokenDirV1][] | v1.9.1 | [Obsolete: To Be Removed]( "BADGE_RED") | -| [NonFungibleTokensV1][] | v1.9.0 | [Obsolete: To Be Removed]( "BADGE_RED") | -| [CryptoConditionsSuite][] | v0.60.0 | [Obsolete: To Be Removed]( "BADGE_RED") | -| [SHAMapV2][] | v0.32.1 | [Obsolete: Removed in v1.4.0](https://xrpl.org/blog/2019/rippled-1.4.0.html "BADGE_RED") | -| [FlowV2][] | v0.32.1 | [Obsolete: Removed in v0.33.0](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") | -| [SusPay][] | v0.31.0 | [Obsolete: Removed in v0.60.0](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") | -| [Tickets][] | v0.30.1 | [Obsolete: Removed in v0.90.0](https://xrpl.org/blog/2018/rippled-0.90.0.html "BADGE_RED") | +| [fixNFTokenNegOffer][] | v1.9.2 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [fixNFTokenDirV1][] | v1.9.1 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [NonFungibleTokensV1][] | v1.9.0 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [CryptoConditionsSuite][] | v0.60.0 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [SHAMapV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2019/rippled-1.4.0.html" %}Obsolete: Removed in v1.4.0{% /badge %} | +| [FlowV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2016/flowv2-vetoed.html" %}Obsolete: Removed in v0.33.0{% /badge %} | +| [SusPay][] | v0.31.0 | {% badge href="https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features" %}Obsolete: Removed in v0.60.0{% /badge %} | +| [Tickets][] | v0.30.1 | {% badge href="https://xrpl.org/blog/2018/rippled-0.90.0.html" %}Obsolete: Removed in v0.90.0{% /badge %} | ## Details about Known Amendments @@ -212,7 +212,7 @@ Adds several new transaction result codes. | Default Vote (Latest stable release) | No | | Pre-amendment functionality retired? | No | -Adjusts the [CheckCash transaction][] so that cashing a [Check](checks.html) for an issued token automatically creates a [trust line](trust-lines-and-issuing.html) to hold the token. The new behavior is similar to how the [OfferCreate transaction][] behaves when users buy tokens in the decentralized exchange: the automatic trust line has a limit value of 0. This removes the setup step of setting up a trust line before receiving a token via a Check. (Checks that send XRP are unaffected.) +Adjusts the [CheckCash transaction][] so that cashing a [Check](../concepts/payment-types/checks.md) for an issued token automatically creates a [trust line](../concepts/tokens/fungible-tokens/index.md) to hold the token. The new behavior is similar to how the [OfferCreate transaction][] behaves when users buy tokens in the decentralized exchange: the automatic trust line has a limit value of 0. This removes the setup step of setting up a trust line before receiving a token via a Check. (Checks that send XRP are unaffected.) Without this amendment, users have to separately send a [TrustSet transaction][] before they can cash a Check for an issued token. @@ -323,7 +323,7 @@ However, the amendment was added to `rippled` v0.60.0 before implementation was | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Makes it possible to delete [accounts](accounts.html). +Makes it possible to delete [accounts](../concepts/accounts/accounts.md). Without this amendment, new accounts always start with their `Sequence` numbers at 1, and there is no way to remove accounts from the state data of the ledger. @@ -344,9 +344,9 @@ Adds a new account flag, `DepositAuth`, which lets an account strictly reject an When an account enables this flag, Payment transactions fail if the account is the destination, regardless of whether the Payment would have delivered XRP or a token. EscrowFinish and PaymentChannelClaim transactions fail if the account is the destination unless the destination account itself sends those transactions. If the [Checks][] amendment is enabled, the account can receive XRP or tokens by sending CheckCash transactions. -As an exception, accounts with `DepositAuth` enabled can receive Payment transactions for small amounts of XRP (equal or less than the minimum [account reserve](reserves.html)) if their current XRP balance is below the account reserve. +As an exception, accounts with `DepositAuth` enabled can receive Payment transactions for small amounts of XRP (equal or less than the minimum [account reserve](../concepts/accounts/reserves.md)) if their current XRP balance is below the account reserve. -Also fixes a bug in the EscrowCreate and PaymentChannelCreate transactions where they mistakenly enforced the Disallow XRP flag, which is meant to be a non-binding advisory flag. (By not enforcing Disallow XRP in the ledger itself an account can still receive the necessary XRP to meet its [account reserve](reserves.html) and pay [transaction costs](transaction-cost.html).) +Also fixes a bug in the EscrowCreate and PaymentChannelCreate transactions where they mistakenly enforced the Disallow XRP flag, which is meant to be a non-binding advisory flag. (By not enforcing Disallow XRP in the ledger itself an account can still receive the necessary XRP to meet its [account reserve](../concepts/accounts/reserves.md) and pay [transaction costs](../concepts/transactions/transaction-cost.md).) ### DepositPreauth @@ -359,7 +359,7 @@ Also fixes a bug in the EscrowCreate and PaymentChannelCreate transactions where | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Provides users of [deposit authorization](depositauth.html) with a way to preauthorize specific senders so those senders are allowed to send payments directly. +Provides users of [deposit authorization](../concepts/accounts/depositauth.md) with a way to preauthorize specific senders so those senders are allowed to send payments directly. Adds a new transaction type, DepositPreauth for adding or removing preauthorization, and a DepositPreauth ledger object type for tracking preauthorizations from one account to another. Adds a JSON-RPC command, `deposit_authorized`, to query whether an account is authorized to send payments directly to another. @@ -408,10 +408,10 @@ Introduces two new transaction error codes, `tecINVARIANT_FAILED` and `tefINVARI Examples of invariant checks: -- The total amount of XRP destroyed by a transaction must match the [transaction cost](transaction-cost.html) exactly. +- The total amount of XRP destroyed by a transaction must match the [transaction cost](../concepts/transactions/transaction-cost.md) exactly. - XRP cannot be created. -- [`AccountRoot` objects in the ledger](accountroot.html) cannot be deleted unless [DeletableAccounts](#deletableaccounts) is enabled. (See also: [Deleting Accounts](deleting-accounts.html).) -- [An entry in the ledger](ledger-object-types.html) cannot change its type. (The `LedgerEntryType` field is immutable.) +- [`AccountRoot` objects in the ledger](../references/protocol/ledger-data/ledger-entry-types/accountroot.md) cannot be deleted unless [DeletableAccounts](#deletableaccounts) is enabled. (See also: [Deleting Accounts](../concepts/accounts/deleting-accounts.md).) +- [An entry in the ledger](../references/protocol/ledger-data/ledger-entry-types/index.md) cannot change its type. (The `LedgerEntryType` field is immutable.) - There cannot be a trust line for XRP. @@ -457,7 +457,7 @@ With this amendment, the maximum [SignerList object][] size is 32 entries. Addit | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Changes the way the [transaction cost](transaction-cost.html) applies to proposed transactions. Modifies the consensus process to prioritize transactions that pay a higher transaction cost. +Changes the way the [transaction cost](../concepts/transactions/transaction-cost.md) applies to proposed transactions. Modifies the consensus process to prioritize transactions that pay a higher transaction cost. This amendment introduces a fixed-size transaction queue for transactions that were not able to be included in the previous consensus round. If the `rippled` servers in the consensus network are under heavy load, they queue the transactions with the lowest transaction cost for later ledgers. Each consensus round prioritizes transactions from the queue with the largest transaction cost (`Fee` value), and includes as many transactions as the consensus network can process. If the transaction queue is full, transactions drop from the queue entirely, starting with the ones that have the lowest transaction cost. @@ -466,7 +466,7 @@ While the consensus network is under heavy load, legitimate users can pay a high A transaction remains in the queue until one of the following happens: * It gets applied to a validated ledger (regardless of success or failure) -* It becomes invalid (for example, the [`LastLedgerSequence`](transaction-common-fields.html) causes it to expire) +* It becomes invalid (for example, the [`LastLedgerSequence`](../references/protocol/transactions/common-fields.md) causes it to expire) * It gets dropped because there are too many transactions in the queue with a higher transaction cost. @@ -480,7 +480,7 @@ A transaction remains in the queue until one of the following happens: | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Correctly implements a limit on [transfer fees](transfer-fees.html) to a 100% fee, represented by a maximum `TransferRate` value of `2000000000`. (A 100% fee in this case means you must send 2 units of the token for every 1 unit you want to deliver.) Without the amendment, the effective limit is a `TransferRate` value of 232-1, for approximately a 329% fee. +Correctly implements a limit on [transfer fees](../concepts/tokens/transfer-fees.md) to a 100% fee, represented by a maximum `TransferRate` value of `2000000000`. (A 100% fee in this case means you must send 2 units of the token for every 1 unit you want to deliver.) Without the amendment, the effective limit is a `TransferRate` value of 232-1, for approximately a 329% fee. With this amendment enabled, an [AccountSet][] transaction that attempts to set `TransferRate` higher than `2000000000` fails with the result code `temBAD_TRANSFER_RATE`. Any existing `TransferRate` which was set to a higher value under the previous rules continues to apply at the higher rate. @@ -508,9 +508,9 @@ Fixes a minor bug in transaction processing that causes some payments to fail wh | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Fixes a minor bug in transaction processing that causes failures when trying to prepare certain [payment paths](paths.html) for processing. As a result, payments could not use certain paths that should have been valid but were invalidly prepared. Without this amendment, those payments are forced to use less-preferable paths or may even fail. +Fixes a minor bug in transaction processing that causes failures when trying to prepare certain [payment paths](../concepts/tokens/fungible-tokens/paths.md) for processing. As a result, payments could not use certain paths that should have been valid but were invalidly prepared. Without this amendment, those payments are forced to use less-preferable paths or may even fail. -The fix1373 amendment corrects the issue so that the paths are properly prepared and payments can use them. It also disables some inappropriate paths that are currently allowed, including paths whose [steps](paths.html#path-specifications) include conflicting fields and paths that loop through the same object more than once. +The fix1373 amendment corrects the issue so that the paths are properly prepared and payments can use them. It also disables some inappropriate paths that are currently allowed, including paths whose [steps](../concepts/tokens/fungible-tokens/paths.md#path-specifications) include conflicting fields and paths that loop through the same object more than once. ### fix1512 @@ -572,9 +572,9 @@ In both cases, transaction processing can still complete by using liquidity from | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Adds tracking by destination account to [escrows](escrow.html). Without this amendment, pending escrows are only tracked by sender. This amendment makes it possible to look up pending escrows by the destination address using the [account_objects method][], excluding any pending escrows that were created before this amendment became enabled. This amendment also makes [EscrowCreate transactions][] appear in the destination's transaction history, as viewed with the [account_tx method][]. +Adds tracking by destination account to [escrows](../concepts/payment-types/escrow.md). Without this amendment, pending escrows are only tracked by sender. This amendment makes it possible to look up pending escrows by the destination address using the [account_objects method][], excluding any pending escrows that were created before this amendment became enabled. This amendment also makes [EscrowCreate transactions][] appear in the destination's transaction history, as viewed with the [account_tx method][]. -With this amendment, new escrows are added to the [owner directories](directorynode.html) of both the sender and receiver. This amendment also adds a new `DestinationNode` field to [Escrow ledger objects](escrow-object.html), indicating which page of the destination's owner directory contains the escrow. +With this amendment, new escrows are added to the [owner directories](../references/protocol/ledger-data/ledger-entry-types/directorynode.md) of both the sender and receiver. This amendment also adds a new `DestinationNode` field to [Escrow ledger objects](../references/protocol/ledger-data/ledger-entry-types/escrow.md), indicating which page of the destination's owner directory contains the escrow. ### fix1528 @@ -641,7 +641,7 @@ Changes Escrow to fix the following issues: Changes the result codes returned by two transaction types: - Changes the [OfferCreate transaction][] to return a new result code, `tecKILLED`, if the offer used the `tfFillOrKill` flag and was killed. Without this amendment, the offer is killed but the transaction result is `tesSUCCESS`. -- Changes the [TrustSet transaction][] to fail with `tecNO_PERMISSION` if it tries to enable the [No Ripple flag](rippling.html#the-no-ripple-flag) but cannot because the trust line has a negative balance. Without this amendment, the transaction does not enable the No Ripple flag, but the transaction result is `tesSUCCESS` nonetheless. +- Changes the [TrustSet transaction][] to fail with `tecNO_PERMISSION` if it tries to enable the [No Ripple flag](../concepts/tokens/fungible-tokens/rippling.md#the-no-ripple-flag) but cannot because the trust line has a negative balance. Without this amendment, the transaction does not enable the No Ripple flag, but the transaction result is `tesSUCCESS` nonetheless. ### fix1623 @@ -656,7 +656,7 @@ Changes the result codes returned by two transaction types: Adds delivered amount to metadata for CheckCash transactions cashed for a flexible amount. (Has no effect unless the [Checks](#checks) amendment is enabled.) -With this amendment enabled, transaction processing adds a `DeliveredAmount` field to the metadata of [CheckCash transactions][] for a variable amount (using the `DeliverMin` field). This change is written to the ledger data, resulting in a different ledger hash than would result from processing the transaction without this amendment. It does not affect the actual amounts delivered. Additionally, with this amendment enabled, the [tx method][] and [account_tx method][] return a [`delivered_amount` field](transaction-metadata.html#delivered_amount) for CheckCash transactions. (The `delivered_amount` field is calculated when you look up a transaction, and is not part of the data that is written to the ledger.) +With this amendment enabled, transaction processing adds a `DeliveredAmount` field to the metadata of [CheckCash transactions][] for a variable amount (using the `DeliverMin` field). This change is written to the ledger data, resulting in a different ledger hash than would result from processing the transaction without this amendment. It does not affect the actual amounts delivered. Additionally, with this amendment enabled, the [tx method][] and [account_tx method][] return a [`delivered_amount` field](../references/protocol/transactions/metadata.md#delivered_amount) for CheckCash transactions. (The `delivered_amount` field is calculated when you look up a transaction, and is not part of the data that is written to the ledger.) The fix1623 amendment has no effect on [CheckCash transactions][] for a fixed amount (using the `Amount` field) or any other transaction types. @@ -673,9 +673,9 @@ The fix1623 amendment has no effect on [CheckCash transactions][] for a fixed am Fixes a bug where certain XRP endpoints were not checked when detecting circular paths. -Without this amendment, it is possible to have a [payment path](paths.html) where the input to the path is XRP, and an intermediate path step also outputs XRP. This is a "loop" payment, and the payment engine disallows such paths because they can have different results when executed forward compared to backwards. +Without this amendment, it is possible to have a [payment path](../concepts/tokens/fungible-tokens/paths.md) where the input to the path is XRP, and an intermediate path step also outputs XRP. This is a "loop" payment, and the payment engine disallows such paths because they can have different results when executed forward compared to backwards. -With this amendment, those payments fail with the [`temBAD_PATH_LOOP` result code](tem-codes.html) instead. +With this amendment, those payments fail with the [`temBAD_PATH_LOOP` result code](../references/protocol/transactions/transaction-results/tem-codes.md) instead. ### fixAmendmentMajorityCalc @@ -703,7 +703,7 @@ Without this amendment, the minimum threshold for amendment activation is any va | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Changes the way Checks transactions affect account metadata, so that Checks are properly added to the [account](accounts.html) history of the receiving account. (Specifically, they update the `PreviousTxnID` and `PreviousTxnLedgerSeq` fields of the receiving account's [AccountRoot object](accountroot.html), which can be used to trace the "thread" of transactions that affected the account and the objects it owns.) +Changes the way Checks transactions affect account metadata, so that Checks are properly added to the [account](../concepts/accounts/accounts.md) history of the receiving account. (Specifically, they update the `PreviousTxnID` and `PreviousTxnLedgerSeq` fields of the receiving account's [AccountRoot object](../references/protocol/ledger-data/ledger-entry-types/accountroot.md), which can be used to trace the "thread" of transactions that affected the account and the objects it owns.) Without this amendment, Checks transactions ([CheckCreate][], [CheckCash][], and [CheckCancel][]) only update the account history of the sender. With this amendment, those transactions affect both the sending and receiving accounts. This amendment has no effect unless the [Checks amendment](#checks) is also enabled. @@ -827,7 +827,7 @@ See [Issue 4373](https://github.com/XRPLF/rippled/issues/4373). | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Changes the [PaymentChannelCreate transaction][] type so that it adds new [payment channels](payment-channels.html) to the recipient's [owner directory](directorynode.html). Without this amendment, new payment channels are added only to the sender's owner directory; with this amendment enabled, newly-created payment channels are added to both owner directories. Existing payment channels are unchanged. +Changes the [PaymentChannelCreate transaction][] type so that it adds new [payment channels](../concepts/payment-types/payment-channels.md) to the recipient's [owner directory](../references/protocol/ledger-data/ledger-entry-types/directorynode.md). Without this amendment, new payment channels are added only to the sender's owner directory; with this amendment enabled, newly-created payment channels are added to both owner directories. Existing payment channels are unchanged. This change prevents accounts from being deleted if they are the recipient for open payment channels, except for channels created before this amendment. @@ -879,7 +879,7 @@ Without this amendment, an offer with very small amounts remaining can have a a | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Removes the `tfTrustLine` setting on [non-fungible tokens](non-fungible-tokens.html), to protect against a denial of service attack on issuers using this flag. With this amendment enabled, a [NFTokenMint transaction](nftokenmint.html) with the `tfTrustLine` flag enabled is considered invalid and cannot be confirmed by consensus; new `NFToken` objects cannot be minted with the flag. +Removes the `tfTrustLine` setting on [non-fungible tokens](../concepts/tokens/nfts/index.md), to protect against a denial of service attack on issuers using this flag. With this amendment enabled, a [NFTokenMint transaction](../references/protocol/transactions/types/nftokenmint.md) with the `tfTrustLine` flag enabled is considered invalid and cannot be confirmed by consensus; new `NFToken` objects cannot be minted with the flag. Without this amendment, an attacker could create new, meaningless fungible tokens and sell a `NFToken` back and forth for those tokens, creating many useless trust lines tied to the issuer and increasing the issuer's reserve requirement. @@ -915,7 +915,7 @@ With this amendment, payments and trades can remove these types of Offers the sa | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Fixes an edge case in [deserializing](serialization.html) Amount-type fields. Without this amendment, in some rare cases the operation could result in otherwise valid serialized amounts overflowing during deserialization. With this amendment, the XRP Ledger detects error conditions more quickly and eliminates the problematic corner cases. +Fixes an edge case in [deserializing](../references/protocol/binary-format.md) Amount-type fields. Without this amendment, in some rare cases the operation could result in otherwise valid serialized amounts overflowing during deserialization. With this amendment, the XRP Ledger detects error conditions more quickly and eliminates the problematic corner cases. ### fixTakerDryOfferRemoval @@ -928,9 +928,9 @@ Fixes an edge case in [deserializing](serialization.html) Amount-type fields. Wi | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Fixes a bug in [auto-bridging](autobridging.html) that can leave a dry offer in the XRP Ledger. A dry offer is an offer that, if crossed, cannot yield any funds. +Fixes a bug in [auto-bridging](../concepts/tokens/decentralized-exchange/autobridging.md) that can leave a dry offer in the XRP Ledger. A dry offer is an offer that, if crossed, cannot yield any funds. -Without this fix, the dry offer remains on the ledger and counts toward its owner's [reserve requirement](reserves.html#owner-reserves) without providing any benefit to the owner. Another offer crossing of the right type and quality can remove the dry offer. However, if the required offer crossing type and quality are rare, it may take a while for the dry offer to be removed. +Without this fix, the dry offer remains on the ledger and counts toward its owner's [reserve requirement](../concepts/accounts/reserves.md#owner-reserves) without providing any benefit to the owner. Another offer crossing of the right type and quality can remove the dry offer. However, if the required offer crossing type and quality are rare, it may take a while for the dry offer to be removed. With this amendment enabled, the XRP Ledger removes these dry offers when they're matched in auto-bridging. @@ -1075,13 +1075,13 @@ Without this amendment, "Immediate or Cancel" Offers that failed to move any fun | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Introduces [multi-signing](multi-signing.html) as a way to authorize transactions. Creates the [`SignerList` ledger object type](signerlist.html) and the [`SignerListSet` transaction type](signerlistset.html). Adds the optional `Signers` field to all transaction types. Modifies some transaction result codes. +Introduces [multi-signing](../concepts/accounts/multi-signing.md) as a way to authorize transactions. Creates the [`SignerList` ledger object type](../references/protocol/ledger-data/ledger-entry-types/signerlist.md) and the [`SignerListSet` transaction type](../references/protocol/transactions/types/signerlistset.md). Adds the optional `Signers` field to all transaction types. Modifies some transaction result codes. This amendment allows addresses to have a list of signers who can authorize transactions from that address in a multi-signature. The list has a quorum and 1 to 8 weighted signers. This allows various configurations, such as "any 3-of-5" or "signature from A plus any other two signatures." Signers can be funded or unfunded addresses. Funded addresses in a signer list can sign using a regular key (if defined) or master key (unless disabled). Unfunded addresses can sign with a master key. Multi-signed transactions have the same permissions as transactions signed with a regular key. -An address with a SignerList can disable the master key even if a regular key is not defined. An address with a SignerList can also remove a regular key even if the master key is disabled. The `tecMASTER_DISABLED` transaction result code is renamed `tecNO_ALTERNATIVE_KEY`. The `tecNO_REGULAR_KEY` transaction result is retired and replaced with `tecNO_ALTERNATIVE_KEY`. Additionally, this amendment adds the following new [transaction result codes](transaction-results.html): +An address with a SignerList can disable the master key even if a regular key is not defined. An address with a SignerList can also remove a regular key even if the master key is disabled. The `tecMASTER_DISABLED` transaction result code is renamed `tecNO_ALTERNATIVE_KEY`. The `tecNO_REGULAR_KEY` transaction result is retired and replaced with `tecNO_ALTERNATIVE_KEY`. Additionally, this amendment adds the following new [transaction result codes](../references/protocol/transactions/transaction-results/transaction-results.md): * `temBAD_SIGNER` * `temBAD_QUORUM` @@ -1102,11 +1102,11 @@ An address with a SignerList can disable the master key even if a regular key is | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Reduces the [owner reserve](reserves.html#owner-reserves) counted against your XRP Ledger account when it owns a [multi-signing](multi-signing.html) SignerList. +Reduces the [owner reserve](../concepts/accounts/reserves.md#owner-reserves) counted against your XRP Ledger account when it owns a [multi-signing](../concepts/accounts/multi-signing.md) SignerList. Without this amendment, the owner reserve for a SignerList ranges from 15 to 50 XRP, depending on the number of signers in the list. -With this amendment enabled, the owner reserve for a new SignerList is 5 XRP, regardless of the number of signers. The reserve requirement for previously-created SignerList objects remains unchanged. To reduce the reserve requirement of SignerList objects created before this amendment was enabled, use a [SignerListSet transaction](signerlistset.html) to replace the SignerList after this amendment has been enabled. (The replacement can be the same as the previous version.) +With this amendment enabled, the owner reserve for a new SignerList is 5 XRP, regardless of the number of signers. The reserve requirement for previously-created SignerList objects remains unchanged. To reduce the reserve requirement of SignerList objects created before this amendment was enabled, use a [SignerListSet transaction](../references/protocol/transactions/types/signerlistset.md) to replace the SignerList after this amendment has been enabled. (The replacement can be the same as the previous version.) ### NegativeUNL @@ -1132,7 +1132,7 @@ Implements a "Negative UNL" system, where the network can track which validators | Default Vote (Latest stable release) | No | | Pre-amendment functionality retired? | No | -Adds native support for [non-fungible tokens](non-fungible-tokens.html). Standards Draft: [XLS-20d](https://github.com/XRPLF/XRPL-Standards/discussions/46). +Adds native support for [non-fungible tokens](../concepts/tokens/nfts/index.md). Standards Draft: [XLS-20d](https://github.com/XRPLF/XRPL-Standards/discussions/46). **Warning:** There are several known issues with this amendment including one that can cause `tecINVARIANT_FAILED` errors to appear in the ledger. It has been replaced by the [NonFungibleTokensV1_1 amendment][]. @@ -1164,7 +1164,7 @@ It also modifies the [AccountSet transaction][] type to allow you to set the `NF | Default Vote (Latest stable release) | No | | Pre-amendment functionality retired? | No | -Adds native support for [non-fungible tokens](non-fungible-tokens.html), including fixes to several issues that were discovered after [NonFungibleTokensV1][]. +Adds native support for [non-fungible tokens](../concepts/tokens/nfts/index.md), including fixes to several issues that were discovered after [NonFungibleTokensV1][]. This amendment combines the effects of the following amendments, rendering the individual amendments obsolete: @@ -1187,7 +1187,7 @@ It has no other effects. | Default Vote (Latest stable release) | N/A | | Pre-amendment functionality retired? | No | -Fixes an inconsistency in the way [transfer fees](transfer-fees.html) are calculated between [OfferCreate](offercreate.html) and [Payment](payment.html) transaction types. Without this amendment, the holder of the token pays the transfer fee if an offer is executed in offer placement, but the initial sender of a transaction pays the transfer fees for offers that are executed as part of payment processing. With this amendment, the holder of the token always pays the transfer fee, regardless of whether the offer is executed as part of a Payment or an OfferCreate transaction. Offer processing outside of payments is unaffected. +Fixes an inconsistency in the way [transfer fees](../concepts/tokens/transfer-fees.md) are calculated between [OfferCreate](../references/protocol/transactions/types/offercreate.md) and [Payment](../references/protocol/transactions/types/payment.md) transaction types. Without this amendment, the holder of the token pays the transfer fee if an offer is executed in offer placement, but the initial sender of a transaction pays the transfer fees for offers that are executed as part of payment processing. With this amendment, the holder of the token always pays the transfer fee, regardless of whether the offer is executed as part of a Payment or an OfferCreate transaction. Offer processing outside of payments is unaffected. This Amendment requires the [Flow Amendment](#flow) to be enabled. @@ -1206,9 +1206,9 @@ This Amendment requires the [Flow Amendment](#flow) to be enabled. Creates "Payment Channels" for XRP. Payment channels are a tool for facilitating repeated, unidirectional payments or temporary credit between two parties. This feature is expected to be useful for the [Interledger Protocol](https://interledger.org/). One party creates a Payment Channel and sets aside some XRP in that channel for a predetermined expiration. Then, through off-ledger secure communications, the sender can send "Claim" messages to the receiver. The receiver can redeem the Claim messages before the expiration, or choose not to in case the payment is not needed. The receiver can verify Claims individually without actually distributing them to the network and waiting for the consensus process to redeem them, then redeem the combined content of many small Claims later, as long as it is within the expiration. -Creates three new transaction types: [PaymentChannelCreate][], [PaymentChannelClaim][], and [PaymentChannelFund][]. Creates a new ledger object type, [PayChannel](paychannel.html). Defines an off-ledger data structure called a `Claim`; the PaymentChannelClaim uses a signature for this data structure. Creates new `rippled` API methods: [`channel_authorize`](channel_authorize.html) (creates a signed Claim), [`channel_verify`](channel_verify.html) (verifies a signed Claim), and [`account_channels`](account_channels.html) (lists Channels associated with an account). +Creates three new transaction types: [PaymentChannelCreate][], [PaymentChannelClaim][], and [PaymentChannelFund][]. Creates a new ledger object type, [PayChannel](../references/protocol/ledger-data/ledger-entry-types/paychannel.md). Defines an off-ledger data structure called a `Claim`; the PaymentChannelClaim uses a signature for this data structure. Creates new `rippled` API methods: [`channel_authorize`](../references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md) (creates a signed Claim), [`channel_verify`](../references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md) (verifies a signed Claim), and [`account_channels`](../references/http-websocket-apis/public-api-methods/account-methods/account_channels.md) (lists Channels associated with an account). -For more information, see the [Payment Channels Tutorial](use-payment-channels.html). +For more information, see the [Payment Channels Tutorial](../tutorials/use-specialized-payment-types/use-payment-channels.md). ### RequireFullyCanonicalSig @@ -1221,11 +1221,11 @@ For more information, see the [Payment Channels Tutorial](use-payment-channels.h | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -Changes the signature requirements for the XRP Ledger protocol so that non-fully-canonical signatures are no longer valid in any case. This protects against [transaction malleability](transaction-malleability.html) on _all_ transactions, instead of only transactions with the [`tfFullyCanonicalSig` flag](transaction-common-fields.html#global-flags) enabled. +Changes the signature requirements for the XRP Ledger protocol so that non-fully-canonical signatures are no longer valid in any case. This protects against [transaction malleability](../concepts/transactions/finality-of-results/transaction-malleability.md) on _all_ transactions, instead of only transactions with the [`tfFullyCanonicalSig` flag](../references/protocol/transactions/common-fields.md#global-flags) enabled. Without this amendment, a transaction is malleable if it uses a secp256k1 signature and does not have `tfFullyCanonicalSig` enabled. Most signing utilities enable `tfFullyCanonicalSig` by default, but there are exceptions. -With this amendment, no single-signed transactions are malleable. ([Multi-signed transactions may still be malleable](transaction-malleability.html#malleability-with-multi-signatures) if signers provide more signatures than are necessary.) All transactions must use the fully canonical form of the signature, regardless of the `tfFullyCanonicalSig` flag. Signing utilities that do not create fully canonical signatures are not supported. All of Ripple's signing utilities have been providing fully-canonical signatures exclusively since at least 2014. +With this amendment, no single-signed transactions are malleable. ([Multi-signed transactions may still be malleable](../concepts/transactions/finality-of-results/transaction-malleability.md#malleability-with-multi-signatures) if signers provide more signatures than are necessary.) All transactions must use the fully canonical form of the signature, regardless of the `tfFullyCanonicalSig` flag. Signing utilities that do not create fully canonical signatures are not supported. All of Ripple's signing utilities have been providing fully-canonical signatures exclusively since at least 2014. For more information, see [`rippled` issue #3042](https://github.com/XRPLF/rippled/issues/3042). @@ -1254,9 +1254,9 @@ When this amendment is activated, the XRP Ledger will undergo a brief scheduled | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Sorts the entries in [DirectoryNode ledger objects](directorynode.html) and fixes a bug that occasionally caused pages of owner directories not to be deleted when they should have been. +Sorts the entries in [DirectoryNode ledger objects](../references/protocol/ledger-data/ledger-entry-types/directorynode.md) and fixes a bug that occasionally caused pages of owner directories not to be deleted when they should have been. -**Warning:** Older versions of `rippled` that do not know about this amendment may crash when they find a DirectoryNode sorted by the new rules. To avoid this problem, [upgrade](install-rippled.html) to `rippled` version 0.80.0 or later. +**Warning:** Older versions of `rippled` that do not know about this amendment may crash when they find a DirectoryNode sorted by the new rules. To avoid this problem, [upgrade](../infrastructure/installation/index.md) to `rippled` version 0.80.0 or later. ### SusPay @@ -1268,7 +1268,7 @@ Sorts the entries in [DirectoryNode ledger objects](directorynode.html) and fixe | Status | Vetoed | | Pre-amendment functionality retired? | No | -This amendment was replaced by the [Escrow](escrow-object.html) amendment. +This amendment was replaced by the [Escrow](../references/protocol/ledger-data/ledger-entry-types/escrow.md) amendment. ### TicketBatch @@ -1281,7 +1281,7 @@ This amendment was replaced by the [Escrow](escrow-object.html) amendment. | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | No | -This amendment adds [Tickets](tickets.html) as a way of sending transactions out of the typical sequence number order. +This amendment adds [Tickets](../concepts/accounts/tickets.md) as a way of sending transactions out of the typical sequence number order. Standards Draft: [XLS-13d](https://github.com/XRPLF/XRPL-Standards/issues/16). @@ -1308,9 +1308,9 @@ This amendment was replaced by the [TicketBatch][] amendment. | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Changes the way [Offers](offers.html#lifecycle-of-an-offer) are ranked in order books, so that currency issuers can configure how many significant digits are taken into account when ranking Offers by exchange rate. With this amendment, the exchange rates of Offers are rounded to the configured number of significant digits, so that more Offers have the same exact exchange rate. The intent of this change is to require a meaningful improvement in price to outrank a previous Offer. If used by major issuers, this should reduce the incentive to spam the ledger with Offers that are only a tiny fraction of a percentage point better than existing offers. It may also increase the efficiency of order book storage in the ledger, because Offers can be grouped into fewer exchange rates. +Changes the way [Offers](../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) are ranked in order books, so that currency issuers can configure how many significant digits are taken into account when ranking Offers by exchange rate. With this amendment, the exchange rates of Offers are rounded to the configured number of significant digits, so that more Offers have the same exact exchange rate. The intent of this change is to require a meaningful improvement in price to outrank a previous Offer. If used by major issuers, this should reduce the incentive to spam the ledger with Offers that are only a tiny fraction of a percentage point better than existing offers. It may also increase the efficiency of order book storage in the ledger, because Offers can be grouped into fewer exchange rates. -Introduces a `TickSize` field to accounts, which can be set with the [AccountSet transaction type](accountset.html). If a currency issuer sets the `TickSize` field, the XRP Ledger truncates the exchange rate (ratio of funds in to funds out) of Offers to trade the issuer's currency, and adjusts the amounts of the Offer to match the truncated exchange rate. If only one currency in the trade has a `TickSize` set, that number of significant digits applies. When trading two currencies that have different `TickSize` values, whichever `TickSize` indicates the fewest significant digits applies. XRP does not have a `TickSize`. +Introduces a `TickSize` field to accounts, which can be set with the [AccountSet transaction type](../references/protocol/transactions/types/accountset.md). If a currency issuer sets the `TickSize` field, the XRP Ledger truncates the exchange rate (ratio of funds in to funds out) of Offers to trade the issuer's currency, and adjusts the amounts of the Offer to match the truncated exchange rate. If only one currency in the trade has a `TickSize` set, that number of significant digits applies. When trading two currencies that have different `TickSize` values, whichever `TickSize` indicates the fewest significant digits applies. XRP does not have a `TickSize`. ### TrustSetAuth @@ -1323,9 +1323,9 @@ Introduces a `TickSize` field to accounts, which can be set with the [AccountSet | Default Vote (Latest stable release) | Yes | | Pre-amendment functionality retired? | Yes | -Allows pre-authorization of accounting relationships (zero-balance trust lines) when using [Authorized Trust Lines](authorized-trust-lines.html). +Allows pre-authorization of accounting relationships (zero-balance trust lines) when using [Authorized Trust Lines](../concepts/tokens/fungible-tokens/authorized-trust-lines.md). -With this amendment enabled, a `TrustSet` transaction with [`tfSetfAuth` enabled](trustset.html#trustset-flags) can create a new [`RippleState` ledger object](ripplestate.html) even if it keeps all the other values of the `RippleState` node in their default state. The new `RippleState` node has the [`lsfLowAuth` or `lsfHighAuth` flag](ripplestate.html#ripplestate-flags) enabled, depending on whether the sender of the transaction is considered the low node or the high node. The sender of the transaction must have already enabled [`lsfRequireAuth`](accountroot.html#accountroot-flags) by sending an [AccountSet transaction](accountset.html) with the [`asfRequireAuth` flag enabled](accountset.html#accountset-flags). +With this amendment enabled, a `TrustSet` transaction with [`tfSetfAuth` enabled](../references/protocol/transactions/types/trustset.md#trustset-flags) can create a new [`RippleState` ledger object](../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) even if it keeps all the other values of the `RippleState` node in their default state. The new `RippleState` node has the [`lsfLowAuth` or `lsfHighAuth` flag](../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) enabled, depending on whether the sender of the transaction is considered the low node or the high node. The sender of the transaction must have already enabled [`lsfRequireAuth`](../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) by sending an [AccountSet transaction](../references/protocol/transactions/types/accountset.md) with the [`asfRequireAuth` flag enabled](../references/protocol/transactions/types/accountset.md#accountset-flags). ### XChainBridge @@ -1359,8 +1359,4 @@ Simplifies transaction cost calculations to use XRP directly rather than calcula Without this amendment, the format of the transaction and ledger entry are the same. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/sidebars.yaml b/content/sidebars.yaml index 9bf611b641..9983af7aff 100644 --- a/content/sidebars.yaml +++ b/content/sidebars.yaml @@ -49,18 +49,18 @@ - page: concepts/index.md expanded: false items: - - page: concepts/networks-and-servers/networks-and-servers.md + - page: concepts/networks-and-servers/index.md expanded: false items: - page: concepts/networks-and-servers/rippled-server-modes.md - page: concepts/networks-and-servers/clustering.md - - page: concepts/networks-and-servers/ledger-history/ledger-history.md + - page: concepts/networks-and-servers/ledger-history.md - page: concepts/networks-and-servers/peer-protocol.md - page: concepts/networks-and-servers/transaction-censorship-detection.md - page: concepts/networks-and-servers/parallel-networks.md - page: concepts/networks-and-servers/amendments.md - page: concepts/networks-and-servers/the-clio-server.md - - page: concepts/consensus-protocol/consensus.md + - page: concepts/consensus-protocol/index.md expanded: false items: - page: concepts/consensus-protocol/consensus-structure.md @@ -70,27 +70,27 @@ - page: concepts/consensus-protocol/fee-voting.md - page: concepts/consensus-protocol/negative-unl.md - page: concepts/consensus-protocol/consensus-research.md - - page: concepts/ledgers/ledgers.md + - page: concepts/ledgers/index.md expanded: false items: - page: concepts/ledgers/ledger-structure.md - page: concepts/ledgers/open-closed-validated-ledgers.md - page: concepts/ledgers/ledger-close-times.md - - page: concepts/transactions/transactions.md + - page: concepts/transactions/index.md expanded: false items: - page: concepts/transactions/fees.md - page: concepts/transactions/reliable-transaction-submission.md - - page: concepts/transactions/set-up-secure-signing.md + - page: concepts/transactions/secure-signing.md - page: concepts/transactions/source-and-destination-tags.md - page: concepts/transactions/transaction-cost.md - page: concepts/transactions/transaction-queue.md - - page: concepts/transactions/finality-of-results.md + - page: concepts/transactions/finality-of-results/index.md expanded: false items: - - page: concepts/transactions/look-up-transaction-results.md - - page: concepts/transactions/transaction-malleability.md - - page: concepts/transactions/about-canceling-a-transaction.md + - page: concepts/transactions/finality-of-results/look-up-transaction-results.md + - page: concepts/transactions/finality-of-results/transaction-malleability.md + - page: concepts/transactions/finality-of-results/canceling-a-transaction.md - page: concepts/payment-types/index.md expanded: false items: @@ -100,50 +100,68 @@ - page: concepts/payment-types/escrow.md - page: concepts/payment-types/partial-payments.md - page: concepts/payment-types/payment-channels.md - - page: concepts/tokens/tokens.md + - page: concepts/payment-types/robustly-monitoring-for-payments.md + - page: concepts/payment-types/sending-payments-to-customers.md + - page: concepts/payment-types/bouncing-payments.md + - page: concepts/tokens/index.md expanded: false items: - - page: concepts/tokens/non-fungible-tokens.md + - page: concepts/tokens/fungible-tokens/index.md expanded: false items: - - page: concepts/tokens/nft-storage.md - - page: concepts/tokens/non-fungible-token-transfers.md - - page: concepts/tokens/nft-reserve-requirements.md - - page: concepts/tokens/nftoken-batch-minting.md - - page: concepts/tokens/nftoken-authorized-minting.md - - page: concepts/tokens/nftoken-auctions.md - - page: concepts/tokens/nft-collections.md - - page: concepts/tokens/nft-fixed-supply.md - - page: concepts/tokens/nft-apis.md - - page: concepts/tokens/trust-lines-and-issuing.md - - page: concepts/tokens/authorized-trust-lines.md - - page: concepts/tokens/clawing-back-tokens.md - - page: concepts/tokens/freezes.md + - page: concepts/tokens/fungible-tokens/authorized-trust-lines.md + - page: concepts/tokens/fungible-tokens/stablecoins/index.md + expanded: false + items: + - page: concepts/tokens/fungible-tokens/stablecoins/settings.md + - page: concepts/tokens/fungible-tokens/stablecoins/configuration.md + - page: concepts/tokens/fungible-tokens/stablecoins/precautions.md + - page: concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md + - page: concepts/tokens/fungible-tokens/clawing-back-tokens.md + - page: concepts/tokens/fungible-tokens/freezes.md + expanded: false + items: + - page: concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md + - page: concepts/tokens/fungible-tokens/paths.md + - page: concepts/tokens/fungible-tokens/rippling.md + - page: concepts/tokens/fungible-tokens/demurrage.md + - page: concepts/tokens/nfts/index.md expanded: false items: - - page: concepts/tokens/common-misconceptions-about-freezes.md - - page: concepts/tokens/rippling.md + - page: concepts/tokens/nfts/payload-storage.md + - page: concepts/tokens/nfts/trading.md + - page: concepts/tokens/nfts/reserve-requirements.md + - page: concepts/tokens/nfts/batch-minting.md + - page: concepts/tokens/nfts/authorizing-another-minter.md + - page: concepts/tokens/nfts/running-an-nft-auction.md + - page: concepts/tokens/nfts/collections.md + - page: concepts/tokens/nfts/guaranteeing-a-fixed-supply.md + - page: concepts/tokens/nfts/nft-apis.md - page: concepts/tokens/transfer-fees.md - - page: concepts/tokens/paths.md - - page: concepts/tokens/demurrage.md - - page: concepts/tokens/decentralized-exchange.md + - page: concepts/tokens/decentralized-exchange/index.md expanded: false items: - - page: concepts/tokens/offers.md - - page: concepts/tokens/autobridging.md - - page: concepts/tokens/ticksize.md - - page: concepts/tokens/automated-market-makers.md + - page: concepts/tokens/decentralized-exchange/offers.md + - page: concepts/tokens/decentralized-exchange/autobridging.md + - page: concepts/tokens/decentralized-exchange/ticksize.md + - page: concepts/tokens/decentralized-exchange/automated-market-makers.md - page: concepts/accounts/accounts.md expanded: false items: - - page: concepts/transactions/multi-signing.md - - page: concepts/transactions/tickets.md - page: concepts/accounts/account-types.md - page: concepts/accounts/deleting-accounts.md - page: concepts/accounts/reserves.md - page: concepts/accounts/addresses.md - page: concepts/accounts/cryptographic-keys.md + - page: concepts/accounts/multi-signing.md - page: concepts/accounts/depositauth.md + - page: concepts/accounts/tickets.md + - page: concepts/accounts/decentralized-identifiers.md + - page: concepts/xrpl-sidechains/index.md + expanded: false + items: + - page: concepts/xrpl-sidechains/cross-chain-bridges.md + - page: concepts/xrpl-sidechains/witness-servers.md - group: Tutorials expanded: false items: @@ -184,8 +202,7 @@ - page: tutorials/quickstart/create-trustline-send-currency-using-javascript.md - page: tutorials/quickstart/create-time-based-escrows-using-javascript.md - page: tutorials/quickstart/create-conditional-escrows-using-javascript.md - - page: - tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md + - page: tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md expanded: false items: - page: tutorials/quickstart/mint-and-burn-nfts-using-javascript.md @@ -199,6 +216,10 @@ expanded: false items: - page: tutorials/get-started/get-started-using-java.md + - group: PHP + expanded: false + items: + - page: tutorials/get-started/get-started-using-php.md - page: tutorials/http-websocket-apis/index.md expanded: false items: @@ -226,29 +247,23 @@ expanded: false items: - page: tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md - - page: - tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md + - page: tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md - page: tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md - page: tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md - - page: - tutorials/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md + - page: tutorials/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md - page: tutorials/use-specialized-payment-types/use-payment-channels.md expanded: false items: - - page: - tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network.md + - page: tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network.md - page: tutorials/use-specialized-payment-types/use-checks/use-checks.md expanded: false items: - page: tutorials/use-specialized-payment-types/use-checks/send-a-check.md - - page: - tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md - - page: - tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md + - page: tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md + - page: tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md - page: tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md - page: tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md - - page: - tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md + - page: tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md - page: tutorials/tasks/use-tokens/index.md expanded: false items: @@ -258,114 +273,121 @@ - page: tutorials/use-tokens/enact-global-freeze.md - page: tutorials/use-tokens/freeze-a-trust-line.md - page: tutorials/use-tokens/create-an-automated-market-maker.md + - page: tutorials/tasks/use-xrpl-sidechains/index.md + expanded: false + items: + - page: tutorials/tasks/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md + - page: tutorials/tasks/use-xrpl-sidechains/set-up-iou-iou-bridge.md + - page: tutorials/tasks/use-xrpl-sidechains/submit-cross-chain-transaction.md - group: References expanded: false items: - - page: references/protocol-reference/index.md + - page: references/protocol/index.md expanded: false items: - - page: references/protocol-reference/data-types/basic-data-types.md + - page: references/protocol/data-types/basic-data-types.md expanded: false items: - - page: references/protocol-reference/data-types/base58-encodings.md - - page: references/protocol-reference/data-types/currency-formats.md - - page: references/protocol-reference/data-types/nftoken.md - - page: references/protocol-reference/ledger-data/ledger-data-formats.md + - page: references/protocol/data-types/base58-encodings.md + - page: references/protocol/data-types/currency-formats.md + - page: references/protocol/data-types/nftoken.md + - page: references/protocol/ledger-data/index.md expanded: false items: - - page: references/protocol-reference/ledger-data/ledger-header.md - - page: - references/protocol-reference/ledger-data/ledger-entry-types/ledger-entry-types.md + - page: references/protocol/ledger-data/ledger-header.md + - page: references/protocol/ledger-data/ledger-entry-types/index.md expanded: false items: - - page: references/protocol-reference/ledger-data/ledger-entry-types/accountroot.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/amendments.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/amm.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/check.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/depositpreauth.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/directorynode.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/escrow.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/feesettings.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/ledgerhashes.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/negativeunl.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/nftokenoffer.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/nftokenpage.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/offer.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/paychannel.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/ripplestate.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/signerlist.md - - page: references/protocol-reference/ledger-data/ledger-entry-types/ticket.md - - page: references/protocol-reference/transactions/transaction-formats.md + - page: references/protocol/ledger-data/ledger-entry-types/accountroot.md + - page: references/protocol/ledger-data/ledger-entry-types/amendments.md + - page: references/protocol/ledger-data/ledger-entry-types/amm.md + - page: references/protocol/ledger-data/ledger-entry-types/bridge.md + - page: references/protocol/ledger-data/ledger-entry-types/check.md + - page: references/protocol/ledger-data/ledger-entry-types/depositpreauth.md + - page: references/protocol/ledger-data/ledger-entry-types/did.md + - page: references/protocol/ledger-data/ledger-entry-types/directorynode.md + - page: references/protocol/ledger-data/ledger-entry-types/escrow.md + - page: references/protocol/ledger-data/ledger-entry-types/feesettings.md + - page: references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md + - page: references/protocol/ledger-data/ledger-entry-types/negativeunl.md + - page: references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md + - page: references/protocol/ledger-data/ledger-entry-types/nftokenpage.md + - page: references/protocol/ledger-data/ledger-entry-types/offer.md + - page: references/protocol/ledger-data/ledger-entry-types/paychannel.md + - page: references/protocol/ledger-data/ledger-entry-types/ripplestate.md + - page: references/protocol/ledger-data/ledger-entry-types/signerlist.md + - page: references/protocol/ledger-data/ledger-entry-types/ticket.md + - page: references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md + - page: references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md + - page: references/protocol/transactions/index.md expanded: false items: - - page: references/protocol-reference/transactions/transaction-common-fields.md - - page: - references/protocol-reference/transactions/transaction-types/transaction-types.md + - page: references/protocol/transactions/common-fields.md + - page: references/protocol/transactions/types/index.md expanded: false items: - - page: references/protocol-reference/transactions/transaction-types/accountset.md - - page: references/protocol-reference/transactions/transaction-types/accountdelete.md - - page: references/protocol-reference/transactions/transaction-types/ammbid.md - - page: references/protocol-reference/transactions/transaction-types/ammcreate.md - - page: references/protocol-reference/transactions/transaction-types/ammdelete.md - - page: references/protocol-reference/transactions/transaction-types/ammdeposit.md - - page: references/protocol-reference/transactions/transaction-types/ammvote.md - - page: references/protocol-reference/transactions/transaction-types/ammwithdraw.md - - page: references/protocol-reference/transactions/transaction-types/checkcancel.md - - page: references/protocol-reference/transactions/transaction-types/checkcash.md - - page: references/protocol-reference/transactions/transaction-types/checkcreate.md - - page: references/protocol-reference/transactions/transaction-types/clawback.md - - page: references/protocol-reference/transactions/transaction-types/depositpreauth.md - - page: references/protocol-reference/transactions/transaction-types/escrowcancel.md - - page: references/protocol-reference/transactions/transaction-types/escrowcreate.md - - page: references/protocol-reference/transactions/transaction-types/escrowfinish.md - - page: - references/protocol-reference/transactions/transaction-types/nftokenacceptoffer.md - - page: references/protocol-reference/transactions/transaction-types/nftokenburn.md - - page: - references/protocol-reference/transactions/transaction-types/nftokencanceloffer.md - - page: - references/protocol-reference/transactions/transaction-types/nftokencreateoffer.md - - page: references/protocol-reference/transactions/transaction-types/nftokenmint.md - - page: references/protocol-reference/transactions/transaction-types/offercancel.md - - page: references/protocol-reference/transactions/transaction-types/offercreate.md - - page: references/protocol-reference/transactions/transaction-types/payment.md - - page: - references/protocol-reference/transactions/transaction-types/paymentchannelclaim.md - - page: - references/protocol-reference/transactions/transaction-types/paymentchannelcreate.md - - page: - references/protocol-reference/transactions/transaction-types/paymentchannelfund.md - - page: references/protocol-reference/transactions/transaction-types/setregularkey.md - - page: references/protocol-reference/transactions/transaction-types/signerlistset.md - - page: references/protocol-reference/transactions/transaction-types/ticketcreate.md - - page: references/protocol-reference/transactions/transaction-types/trustset.md - - page: - references/protocol-reference/transactions/pseudo-transaction-types/pseudo-transaction-types.md + - page: references/protocol/transactions/types/accountset.md + - page: references/protocol/transactions/types/accountdelete.md + - page: references/protocol/transactions/types/ammbid.md + - page: references/protocol/transactions/types/ammcreate.md + - page: references/protocol/transactions/types/ammdelete.md + - page: references/protocol/transactions/types/ammdeposit.md + - page: references/protocol/transactions/types/ammvote.md + - page: references/protocol/transactions/types/ammwithdraw.md + - page: references/protocol/transactions/types/checkcancel.md + - page: references/protocol/transactions/types/checkcash.md + - page: references/protocol/transactions/types/checkcreate.md + - page: references/protocol/transactions/types/clawback.md + - page: references/protocol/transactions/types/depositpreauth.md + - page: references/protocol/transactions/types/diddelete.md + - page: references/protocol/transactions/types/didset.md + - page: references/protocol/transactions/types/escrowcancel.md + - page: references/protocol/transactions/types/escrowcreate.md + - page: references/protocol/transactions/types/escrowfinish.md + - page: references/protocol/transactions/types/nftokenacceptoffer.md + - page: references/protocol/transactions/types/nftokenburn.md + - page: references/protocol/transactions/types/nftokencanceloffer.md + - page: references/protocol/transactions/types/nftokencreateoffer.md + - page: references/protocol/transactions/types/nftokenmint.md + - page: references/protocol/transactions/types/offercancel.md + - page: references/protocol/transactions/types/offercreate.md + - page: references/protocol/transactions/types/payment.md + - page: references/protocol/transactions/types/paymentchannelclaim.md + - page: references/protocol/transactions/types/paymentchannelcreate.md + - page: references/protocol/transactions/types/paymentchannelfund.md + - page: references/protocol/transactions/types/setregularkey.md + - page: references/protocol/transactions/types/signerlistset.md + - page: references/protocol/transactions/types/ticketcreate.md + - page: references/protocol/transactions/types/trustset.md + - page: references/protocol/transactions/types/xchainaccountcreatecommit.md + - page: references/protocol/transactions/types/xchainaddaccountcreateattestation.md + - page: references/protocol/transactions/types/xchainaddclaimattestation.md + - page: references/protocol/transactions/types/xchainclaim.md + - page: references/protocol/transactions/types/xchaincommit.md + - page: references/protocol/transactions/types/xchaincreatebridge.md + - page: references/protocol/transactions/types/xchaincreateclaimid.md + - page: references/protocol/transactions/types/xchainmodifybridge.md + - page: references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types.md expanded: false items: - - page: - references/protocol-reference/transactions/pseudo-transaction-types/enableamendment.md - - page: references/protocol-reference/transactions/pseudo-transaction-types/setfee.md - - page: references/protocol-reference/transactions/pseudo-transaction-types/unlmodify.md - - page: - references/protocol-reference/transactions/transaction-results/transaction-results.md + - page: references/protocol/transactions/pseudo-transaction-types/enableamendment.md + - page: references/protocol/transactions/pseudo-transaction-types/setfee.md + - page: references/protocol/transactions/pseudo-transaction-types/unlmodify.md + - page: references/protocol/transactions/transaction-results/transaction-results.md expanded: false items: - - page: references/protocol-reference/transactions/transaction-results/tec-codes.md - - page: references/protocol-reference/transactions/transaction-results/tef-codes.md - - page: references/protocol-reference/transactions/transaction-results/tel-codes.md - - page: references/protocol-reference/transactions/transaction-results/tem-codes.md - - page: references/protocol-reference/transactions/transaction-results/ter-codes.md - - page: references/protocol-reference/transactions/transaction-results/tes-success.md - - page: references/protocol-reference/transactions/transaction-metadata.md - - page: references/protocol-reference/serialization.md + - page: references/protocol/transactions/transaction-results/tec-codes.md + - page: references/protocol/transactions/transaction-results/tef-codes.md + - page: references/protocol/transactions/transaction-results/tel-codes.md + - page: references/protocol/transactions/transaction-results/tem-codes.md + - page: references/protocol/transactions/transaction-results/ter-codes.md + - page: references/protocol/transactions/transaction-results/tes-success.md + - page: references/protocol/transactions/metadata.md + - page: references/protocol/binary-format.md - page: references/client-libraries.md expanded: false items: - group: JavaScript / TypeScript Client Library - href: https://js.xrpl.org/ - external: true expanded: false items: - page: references/xrpljs2-migration-guide.md @@ -381,7 +403,7 @@ - page: references/http-websocket-apis/index.md expanded: false items: - - page: references/http-websocket-apis/api-conventions/api-conventions.md + - page: references/http-websocket-apis/api-conventions/index.md expanded: false items: - page: references/http-websocket-apis/api-conventions/request-formatting.md @@ -391,100 +413,70 @@ - page: references/http-websocket-apis/api-conventions/rate-limiting.md - page: references/http-websocket-apis/api-conventions/rippled-server-states.md - page: references/http-websocket-apis/api-conventions/ctid.md - - page: references/http-websocket-apis/public-api-methods/public-api-methods.md + - page: references/http-websocket-apis/public-api-methods/index.md expanded: false items: - page: references/http-websocket-apis/public-api-methods/account-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/public-api-methods/account-methods/account_channels.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/account_info.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/account_lines.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/account_objects.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/account_offers.md + - page: references/http-websocket-apis/public-api-methods/account-methods/account_channels.md + - page: references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md + - page: references/http-websocket-apis/public-api-methods/account-methods/account_info.md + - page: references/http-websocket-apis/public-api-methods/account-methods/account_lines.md + - page: references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md + - page: references/http-websocket-apis/public-api-methods/account-methods/account_objects.md + - page: references/http-websocket-apis/public-api-methods/account-methods/account_offers.md - page: references/http-websocket-apis/public-api-methods/account-methods/account_tx.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md - - page: - references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md + - page: references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md + - page: references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md - page: references/http-websocket-apis/public-api-methods/ledger-methods/index.md expanded: false items: - page: references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md - - page: - references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md - - page: - references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md + - page: references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md + - page: references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md - page: references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md - page: references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md - page: references/http-websocket-apis/public-api-methods/transaction-methods/index.md expanded: false items: - page: references/http-websocket-apis/public-api-methods/transaction-methods/submit.md - - page: - references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md - - page: - references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md + - page: references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md + - page: references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md - page: references/http-websocket-apis/public-api-methods/transaction-methods/tx.md - - page: - references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md + - page: references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md - - page: - references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md - - page: - references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md + - page: references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md + - page: references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md - - page: - references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md + - page: references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md + - page: references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md - page: references/http-websocket-apis/public-api-methods/subscription-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md - - page: - references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md + - page: references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md + - page: references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md - page: references/http-websocket-apis/public-api-methods/server-info-methods/index.md expanded: false items: - page: references/http-websocket-apis/public-api-methods/server-info-methods/fee.md - - page: - references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md - - page: - references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md - - page: - references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md + - page: references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md + - page: references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md + - page: references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md + - page: references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md - page: references/http-websocket-apis/public-api-methods/clio-server/index.md expanded: false items: - - page: - references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md + - page: references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md - page: references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md - page: references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md - page: references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md @@ -494,83 +486,55 @@ - page: references/http-websocket-apis/public-api-methods/utility-methods/json.md - page: references/http-websocket-apis/public-api-methods/utility-methods/ping.md - page: references/http-websocket-apis/public-api-methods/utility-methods/random.md - - page: references/http-websocket-apis/admin-api-methods/admin-api-methods.md + - page: references/http-websocket-apis/admin-api-methods/index.md expanded: false items: - page: references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md - - page: - references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md + - page: references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md + - page: references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md - - page: - references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md + - page: references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard.md - page: references/http-websocket-apis/admin-api-methods/server-control-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md + - page: references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md - page: references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md - - page: - references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md + - page: references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md - page: references/http-websocket-apis/admin-api-methods/signing-methods/index.md expanded: false items: - page: references/http-websocket-apis/admin-api-methods/signing-methods/sign.md - page: references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md - - page: - references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md + - page: references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md - - page: - references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md - - page: - references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md - - page: - references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md - - page: - references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md + - page: references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md + - page: references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md + - page: references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md + - page: references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md + - page: references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md expanded: false items: - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md - - page: - references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md + - page: references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md - page: references/http-websocket-apis/peer-port-methods/index.md expanded: false items: @@ -583,81 +547,76 @@ - page: infrastructure/index.md expanded: false items: - - page: infrastructure/rippled/commandline-usage.md - - page: infrastructure/install-rippled/index.md + - page: infrastructure/commandline-usage.md + - page: infrastructure/installation/index.md expanded: false items: - - page: infrastructure/rippled/installation/system-requirements.md - - page: infrastructure/rippled/installation/install-rippled-on-centos-rhel-with-yum.md - - label: Install rippled on Ubuntu with Alien - - page: infrastructure/rippled/installation/install-rippled-on-ubuntu.md - - page: infrastructure/rippled/installation/update-rippled-automatically-on-linux.md - - page: infrastructure/rippled/installation/update-rippled-manually-on-centos-rhel.md - - page: infrastructure/rippled/installation/update-rippled-manually-on-ubuntu.md - - page: infrastructure/rippled/installation/build-on-linux-mac-windows.md - - page: infrastructure/rippled/installation/build-run-rippled-in-reporting-mode.md - - page: infrastructure/rippled/installation/capacity-planning.md - - page: infrastructure/rippled/installation/rippled-1-3-migration-instructions.md - - page: infrastructure/configure-rippled/index.md + - page: infrastructure/installation/system-requirements.md + - page: infrastructure/installation/install-rippled-on-centos-rhel-with-yum.md + - page: infrastructure/installation/install-rippled-on-ubuntu.md + - page: infrastructure/installation/install-clio-on-ubuntu.md + - page: infrastructure/installation/update-rippled-automatically-on-linux.md + - page: infrastructure/installation/update-rippled-manually-on-centos-rhel.md + - page: infrastructure/installation/update-rippled-manually-on-ubuntu.md + - page: infrastructure/installation/build-on-linux-mac-windows.md + - page: infrastructure/installation/build-run-rippled-in-reporting-mode.md + - page: infrastructure/installation/capacity-planning.md + - page: infrastructure/installation/rippled-1-3-migration-instructions.md + - page: infrastructure/configuration/index.md expanded: false items: - - page: infrastructure/configure-rippled/server-modes/index.md + - page: infrastructure/configuration/server-modes/index.md expanded: false items: - - page: infrastructure/rippled/configuration/run-rippled-as-a-validator.md - - page: infrastructure/rippled/configuration/run-rippled-as-a-stock-server.md - - page: infrastructure/configure-rippled/data-retention/index.md + - page: infrastructure/configuration/server-modes/run-rippled-as-a-validator.md + - page: infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md + - page: infrastructure/configuration/data-retention/index.md expanded: false items: - - page: infrastructure/rippled/configuration/configure-full-history.md - - page: concepts/networks-and-servers/ledger-history/online-deletion.md - - page: infrastructure/rippled/configuration/configure-online-deletion.md - - page: infrastructure/rippled/configuration/configure-advisory-deletion.md - - page: concepts/networks-and-servers/ledger-history/history-sharding.md - - page: infrastructure/rippled/configuration/configure-history-sharding.md - - page: infrastructure/rippled/configuration/configure-amendment-voting.md - - page: infrastructure/rippled/configuration/test-amendments.md - - page: infrastructure/rippled/configuration/configure-statsd.md - - page: infrastructure/rippled/configuration/connect-your-rippled-to-the-xrp-test-net.md - - page: infrastructure/rippled/configuration/configure-grpc.md - - page: infrastructure/rippled/configuration/enable-public-signing.md - - page: infrastructure/rippled/configure-peering/configure-peering.md - expanded: false - items: - - page: infrastructure/rippled/configure-peering/cluster-rippled-servers.md - - page: infrastructure/rippled/configure-peering/configure-a-private-server.md - - page: infrastructure/rippled/configure-peering/configure-the-peer-crawler.md - - page: infrastructure/rippled/configure-peering/enable-link-compression.md - - page: infrastructure/rippled/configure-peering/forward-ports-for-peering.md - - page: infrastructure/rippled/configure-peering/manually-connect-to-a-specific-peer.md - - page: infrastructure/rippled/configure-peering/set-max-number-of-peers.md - - page: infrastructure/rippled/configure-peering/use-a-peer-reservation.md + - page: infrastructure/configuration/data-retention/configure-full-history.md + - page: infrastructure/configuration/data-retention/online-deletion.md + - page: infrastructure/configuration/data-retention/configure-online-deletion.md + - page: infrastructure/configuration/data-retention/configure-advisory-deletion.md + - page: infrastructure/configuration/data-retention/history-sharding.md + - page: infrastructure/configuration/data-retention/configure-history-sharding.md + - page: infrastructure/configuration/peering/index.md + expanded: false + items: + - page: infrastructure/configuration/peering/cluster-rippled-servers.md + - page: infrastructure/configuration/peering/configure-a-private-server.md + - page: infrastructure/configuration/peering/configure-the-peer-crawler.md + - page: infrastructure/configuration/peering/enable-link-compression.md + - page: infrastructure/configuration/peering/forward-ports-for-peering.md + - page: infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md + - page: infrastructure/configuration/peering/set-max-number-of-peers.md + - page: infrastructure/configuration/peering/use-a-peer-reservation.md + - page: infrastructure/configuration/configure-amendment-voting.md + - page: infrastructure/configuration/configure-statsd.md + - page: infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md + - page: infrastructure/configuration/configure-grpc.md + - page: infrastructure/configuration/enable-public-signing.md - page: infrastructure/testing-and-auditing/index.md expanded: false items: - - page: - infrastructure/rippled/stand-alone-mode/start-a-new-genesis-ledger-in-stand-alone-mode.md - - page: - infrastructure/rippled/stand-alone-mode/load-a-saved-ledger-in-stand-alone-mode.md - - page: - infrastructure/rippled/stand-alone-mode/advance-the-ledger-in-stand-alone-mode.md + - page: infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md + - page: infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md + - page: infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md + - page: infrastructure/testing-and-auditing/test-amendments.md + - page: infrastructure/testing-and-auditing/run-private-network-with-docker.md - page: infrastructure/troubleshooting/index.md expanded: false items: - - page: infrastructure/rippled/troubleshooting/diagnosing-problems.md - - page: infrastructure/rippled/troubleshooting/health-check-interventions.md - - page: infrastructure/rippled/troubleshooting/understanding-log-messages.md - - page: infrastructure/rippled/troubleshooting/server-doesnt-sync.md - - page: infrastructure/rippled/troubleshooting/server-is-amendment-blocked.md - - page: infrastructure/rippled/troubleshooting/server-wont-start.md - - page: infrastructure/rippled/troubleshooting/fix-sqlite-tx-db-page-size-issue.md - - page: infrastructure/clio/install-clio-on-ubuntu.md - - page: infrastructure/rippled/run-private-network-with-docker.md + - page: infrastructure/troubleshooting/diagnosing-problems.md + - page: infrastructure/troubleshooting/health-check-interventions.md + - page: infrastructure/troubleshooting/understanding-log-messages.md + - page: infrastructure/troubleshooting/server-doesnt-sync.md + - page: infrastructure/troubleshooting/server-is-amendment-blocked.md + - page: infrastructure/troubleshooting/server-wont-start.md + - page: infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md - page: resources/index.md expanded: false items: - label: Code Samples - page: code-samples.page.tsx - group: Dev Tools expanded: false items: @@ -667,14 +626,13 @@ - label: xrp-ledger.toml Checker - label: Domain Verification Checker - label: XRP Faucets - href: /dev-tools/xrp-faucets - page: /dev-tools/xrp-faucets.page.tsx - label: Transaction Sender - href: /dev-tools/tx-sender - page: /dev-tools/tx-sender.page.tsx - label: XRPL Learning Portal href: https://learn.xrpl.org/ external: true + - label: XRPL Brand Kit + href: https://xrpl.org/assets/XRPL_Brand_Kit.zip + external: true - label: Ledger Explorer href: https://livenet.xrpl.org/ external: true @@ -683,7 +641,7 @@ expanded: false items: - page: resources/contribute-code/create-custom-transactors.md - - page: resources/contribute-documentation/contribute-documentation.md + - page: resources/contribute-documentation/index.md expanded: false items: - label: Contributor Code of Conduct @@ -711,7 +669,4 @@ - label: GitHub href: https://github.com/XRPLF external: true - - label: XRPL Brand Kit - href: https://github.com/XRPLF/xrpl-dev-portal/raw/master/content/XRPL_Logo_Kit.zip - external: true - page: contributing/report-a-scam.md diff --git a/content/tutorials/build-apps/build-a-browser-wallet-in-javascript.md b/content/tutorials/build-apps/build-a-browser-wallet-in-javascript.md index 1be19538d2..dba41463ed 100644 --- a/content/tutorials/build-apps/build-a-browser-wallet-in-javascript.md +++ b/content/tutorials/build-apps/build-a-browser-wallet-in-javascript.md @@ -17,24 +17,24 @@ To complete this tutorial, you should meet the following guidelines: 1. You have [Node.js](https://nodejs.org/en/download/) v14 or higher installed. 2. You have [Yarn](https://yarnpkg.com/en/docs/install) (v1.17.3 or higher) installed. -3. You are somewhat familiar with coding with JavaScript and have completed the [Get Started Using JavaScript](get-started-using-javascript.html) tutorial. +3. You are somewhat familiar with coding with JavaScript and have completed the [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) tutorial. ## Source Code -You can find the complete source code for all of this tutorial's examples in the [code samples section of this website's repository]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-browser-wallet/js/). +You can find the complete source code for all of this tutorial's examples in the {% repo-link path="content/_code-samples/build-a-browser-wallet/js/" %}code samples section of this website's repository{% /repo-link %}. ## Goals At the end of this tutorial, you should be able to build a simple XRP wallet displayed below. -![Home Page Screenshot](img/js-wallet-home.png) +![Home Page Screenshot](/img/js-wallet-home.png) This application can: - Show updates to the XRP Ledger in real-time. - View any XRP Ledger account's activity, including showing how much XRP was delivered by each transaction. -- Show how much XRP is set aside for the account's [reserve requirement](reserves.html). -- Send [direct XRP payments](direct-xrp-payments.html), and provide feedback about the intended destination address, including: +- Show how much XRP is set aside for the account's [reserve requirement](../../concepts/accounts/reserves.md). +- Send [direct XRP payments](../../concepts/payment-types/direct-xrp-payments.md), and provide feedback about the intended destination address, including: - Displaying your account's available balance - Verifying that the destination address is valid - Validating the account has enough XRP to send @@ -57,7 +57,7 @@ yarn create vite simple-xrpl-wallet --template vanilla 3. Create or modify the file `package.json` to have the following contents: -{{ include_code("_code-samples/build-a-browser-wallet/js/package.json", language="js") }} +{% code-snippet file="/_code-samples/build-a-browser-wallet/js/package.json" language="js" /%} - Alternatively you can also do `yarn add ` for each individual package to add them to your `package.json` file. @@ -75,11 +75,11 @@ EXPLORER_NETWORK="testnet" SEED="s████████████████████████████" ``` -6. Change the seed to your own seed. You can get credentials from [the Testnet faucet](xrp-test-net-faucet.html). +6. Change the seed to your own seed. You can get credentials from [the Testnet faucet](/resources/dev-tools/xrp-faucets). 7. Set up a Vite bundler. Create a file named `vite.config.js` in the root directory of the project and fill it with the following code: -{{ include_code("_code-samples/build-a-browser-wallet/js/vite.config.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-browser-wallet/js/vite.config.js" language="js" /%} This example includes the necessary configuration to make [xrpl.js work with Vite](https://github.com/XRPLF/xrpl.js/blob/main/UNIQUE_SETUPS.md#using-xrpljs-with-vite-react). @@ -97,15 +97,15 @@ In your `package.json` file, add the following section if it's not there already In this step, we create a home page that displays account and ledger details. -![Home Page Screenshot](img/js-wallet-home.png) +![Home Page Screenshot](/img/js-wallet-home.png) 1. If not already present, create new files in the root folder named `index.html`, `index.js` and `index.css`. 2. Make a new folder named `src` in the root directory of the project. -3. Copy the contents of [index.html]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-browser-wallet/js/index.html) in your code. +3. Copy the contents of {% repo-link path="content/_code-samples/build-a-browser-wallet/js/index.html" %}index.html{% /repo-link %} in your code. -4. Add styling to your [index.css]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-browser-wallet/js/index.css) file by following the link. +4. Add styling to your {% repo-link path="content/_code-samples/build-a-browser-wallet/js/index.css" %}index.css{% /repo-link %} file by following the link. This basic setup creates a homepage and applies some visual styles. The goal is for the homepage to: @@ -115,17 +115,17 @@ This basic setup creates a homepage and applies some visual styles. The goal is To make that happen, we need to connect to the XRP Ledger and look up the account and the latest validated ledger. -5. In the `src/` directory, make a new folder named `helpers`. Create a new file there named `get-wallet-details.js` and define a function named `getWalletDetails` there. This function uses the [account_info method](account_info.html) to fetch account details and the [server_info method](server_info.html) to calculate the current [reserves](reserves.html). The code to do all this is as follows: +5. In the `src/` directory, make a new folder named `helpers`. Create a new file there named `get-wallet-details.js` and define a function named `getWalletDetails` there. This function uses the [account_info method](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md) to fetch account details and the [server_info method](../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) to calculate the current [reserves](../../concepts/accounts/reserves.md). The code to do all this is as follows: -{{ include_code("_code-samples/build-a-browser-wallet/js/src/helpers/get-wallet-details.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-browser-wallet/js/src/helpers/get-wallet-details.js" language="js" /%} -6. Now, let's add the code to `index.js` file to fetch the account and ledger details and display them on the home page. Copy the code written below to the `index.js` file. Here we render the wallet details using the function we defined in `get-wallet-details.js`. In order to make sure we have up to date ledger data, we are using the [ledger stream](subscribe.html#ledger-stream) to listen for ledger close events. +6. Now, let's add the code to `index.js` file to fetch the account and ledger details and display them on the home page. Copy the code written below to the `index.js` file. Here we render the wallet details using the function we defined in `get-wallet-details.js`. In order to make sure we have up to date ledger data, we are using the [ledger stream](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#ledger-stream) to listen for ledger close events. -{{ include_code("_code-samples/build-a-browser-wallet/js/index.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-browser-wallet/js/index.js" language="js" /%} -7. In the `helpers` folder, add [render-xrpl-logo.js]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-browser-wallet/js/src/helpers/render-xrpl-logo.js) to handle displaying a logo. +7. In the `helpers` folder, add {% repo-link path="content/_code-samples/build-a-browser-wallet/js/src/helpers/render-xrpl-logo.js" %}render-xrpl-logo.js{% /repo-link %} to handle displaying a logo. -8. Finally create a new folder named `assets` in the `src/` directory and add the file [`xrpl.svg`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-browser-wallet/js/src/assets/xrpl.svg) there. +8. Finally create a new folder named `assets` in the `src/` directory and add the file {% repo-link path="content/_code-samples/build-a-browser-wallet/js/src/assets/xrpl.svg" %}`xrpl.svg`{% /repo-link %} there. These files are used to render the XRPL logo for aesthetic purposes. @@ -143,21 +143,21 @@ Your terminal should output a URL which you can use to open your app in a browse Now that we've created the home page, we can move on to the "Send XRP" page. This is what allows this wallet to manage your account's funds. -![Send XRP Page Screenshot](img/js-wallet-send-xrp.png) +![Send XRP Page Screenshot](/img/js-wallet-send-xrp.png) 1. Create a folder named `send-xrp` in the `src` directory. 2. Inside the `send-xrp` folder, create two files named `send-xrp.js` and `send-xrp.html`. -3. Copy the contents of the [send-xrp.html]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.html) file to your `send-xrp.html` file. The provided HTML code includes three input fields for the destination address, amount, and destination tag, each with their corresponding labels. +3. Copy the contents of the {% repo-link path="content/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.html" %}send-xrp.html{% /repo-link %} file to your `send-xrp.html` file. The provided HTML code includes three input fields for the destination address, amount, and destination tag, each with their corresponding labels. -4. Now that we have the HTML code, let's add the JavaScript code. In the `helpers` folder, create a new file named `submit-transaction.js` and copy the code written below to the file. In this file, we are using the [submit](submit.html) method to submit the transaction to the XRPL. Before submitting every transaction needs to be signed by a wallet, learn more about [signing](sign.html) a transaction. +4. Now that we have the HTML code, let's add the JavaScript code. In the `helpers` folder, create a new file named `submit-transaction.js` and copy the code written below to the file. In this file, we are using the [submit](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md) method to submit the transaction to the XRPL. Before submitting every transaction needs to be signed by a wallet, learn more about [signing](../../references/http-websocket-apis/admin-api-methods/signing-methods/sign.md) a transaction. -{{ include_code("_code-samples/build-a-browser-wallet/js/src/helpers/submit-transaction.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-browser-wallet/js/src/helpers/submit-transaction.js" language="js" /%} 5. Now back to the `send-xrp.js` file, copy the code written below to the file. In this piece of code we are first getting all the DOM elements from HTML and adding event listners to update & validate the fields based on the user input. Using `renderAvailableBalance` method we display the current available balance of the wallet. `validateAddress` function validates the user address, and the amount is validated using a regular expression. When all the fields are filled with correct inputs, we call the `submitTransaction` function to submit the transaction to the ledger. -{{ include_code("_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.js" language="js" /%} You can now click 'Send XRP' to try creating your own transaction! You can use this example to send XRP to the testnet faucet to try it out. @@ -167,7 +167,7 @@ Amount: 9 Destination Tag: (Not usually necessary unless you're paying an account tied to an exchange) -![Send XRP Transaction Screenshot](img/js-wallet-send-xrp-transaction-details.png) +![Send XRP Transaction Screenshot](/img/js-wallet-send-xrp-transaction-details.png) ### 4. Create the Transactions Page @@ -180,35 +180,32 @@ Now that we have created the home page and the send XRP page, let's create the t - Delivered amount: The amount of XRP or tokens delivered by the transaction, if applicable. - Link: A link to the transaction on the XRP Ledger Explorer. -**Caution:** When displaying how much money a transaction delivered, always use the `delivered_amount` field from the metadata, not the `Amount` field from the transaction instructions. [Partial Payments](partial-payments.html) can deliver much less than the stated `Amount` and still be successful. +**Caution:** When displaying how much money a transaction delivered, always use the `delivered_amount` field from the metadata, not the `Amount` field from the transaction instructions. [Partial Payments](../../concepts/payment-types/partial-payments.md) can deliver much less than the stated `Amount` and still be successful. -![Transactions Page Screenshot](img/js-wallet-transaction.png) +![Transactions Page Screenshot](/img/js-wallet-transaction.png) 1. Create a folder named `transaction-history` in the src directory. 2. Create a file named `transaction-history.js` and copy the code written below. -{{ include_code("_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.js" language="js" /%} -This code uses [account_tx](account_tx.html) to fetch transactions we've sent to and from this account. In order to get all the results, we're using the `marker` parameter to paginate through the incomplete list of transactions until we reach the end. +This code uses [account_tx](../../references/http-websocket-apis/public-api-methods/account-methods/account_tx.md) to fetch transactions we've sent to and from this account. In order to get all the results, we're using the `marker` parameter to paginate through the incomplete list of transactions until we reach the end. -3. Create a file named `transaction-history.html` and copy the code from [transaction-history.html]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.html) into it. +3. Create a file named `transaction-history.html` and copy the code from {% repo-link path="content/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.html" %}transaction-history.html{% /repo-link %} into it. `transaction-history.html` defines a table which displays the fields mentioned above. -You can use this code as a starting point for displaying your account's transaction history. If you want an additional challenge, try expanding it to support different transaction types (e.g. [TrustSet](trustset.html)). If you want inspiration for how to handle this, you can check out the [XRP Ledger Explorer](https://livenet.xrpl.org/) to see how the transaction details are displayed. +You can use this code as a starting point for displaying your account's transaction history. If you want an additional challenge, try expanding it to support different transaction types (e.g. [TrustSet](../../references/protocol/transactions/types/trustset.md)). If you want inspiration for how to handle this, you can check out the [XRP Ledger Explorer](https://livenet.xrpl.org/) to see how the transaction details are displayed. ## Next Steps Now that you have a functional wallet, you can take it in several new directions. The following are a few ideas: -- You could support more of the XRP Ledger's [transaction types](transaction-types.html) including [tokens](issued-currencies.html) and [cross-currency payments](cross-currency-payments.html) +- You could support more of the XRP Ledger's [transaction types](../../references/protocol/transactions/types/index.md) including [tokens](../../concepts/tokens/index.md) and [cross-currency payments](../../concepts/payment-types/cross-currency-payments.md) - You could add support for displaying multiple tokens, beyond just XRP -- You could support creating [offers](offers.html) in the [decentralized exchange](decentralized-exchange.html) +- You could support creating [offers](../../concepts/tokens/decentralized-exchange/offers.md) in the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md) - You could add new ways to request payments, such as with QR codes or URIs that open in your wallet. -- You could support better account security including allowing users to set [regular key pairs](cryptographic-keys.html#regular-key-pair) or handle [multi-signing](multi-signing.html). +- You could support better account security including allowing users to set [regular key pairs](../../concepts/accounts/cryptographic-keys.md#regular-key-pair) or handle [multi-signing](../../concepts/accounts/multi-signing.md). - Or you could take your code to production by following the [Building for Production with Vite](https://vitejs.dev/guide/build.html#public-base-path) guide. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/build-apps/build-a-desktop-wallet-in-javascript.md b/content/tutorials/build-apps/build-a-desktop-wallet-in-javascript.md index a9de9c705d..5b7b217bce 100644 --- a/content/tutorials/build-apps/build-a-desktop-wallet-in-javascript.md +++ b/content/tutorials/build-apps/build-a-desktop-wallet-in-javascript.md @@ -13,12 +13,12 @@ This tutorial demonstrates how to build a desktop wallet for the XRP Ledger usin To complete this tutorial, you should meet the following requirements: - You have [Node.js](https://nodejs.org/) 14+ installed. -- You are somewhat familiar with modern JavaScript programming and have completed the [Get Started Using JavaScript tutorial](get-started-using-javascript.html). +- You are somewhat familiar with modern JavaScript programming and have completed the [Get Started Using JavaScript tutorial](../get-started/get-started-using-javascript.md). - You have some understanding of the XRP Ledger, its capabilities, and of cryptocurrency in general. Ideally you have completed the [Basic XRPL guide](https://learn.xrpl.org/). ### Source Code -You can find the complete source code for all of this tutorial's examples in the [code samples section of this website's repository]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/). After a `npm install` in this directory you can run the application for each step as described in the `scripts` section of `package.json`, e.g, `npm run ledger-index`. +You can find the complete source code for all of this tutorial's examples in the {% repo-link path="content/_code-samples/build-a-desktop-wallet/js/" %}code samples section of this website's repository{% /repo-link %}. After a `npm install` in this directory you can run the application for each step as described in the `scripts` section of `package.json`, e.g, `npm run ledger-index`. **Caution:** Be careful if you copy-and-paste the source code from these directly from these files. The sample code is split up into different files per step, so some shared imports and files are in different directories in the examples. This especially applies to the `library`, `bootstrap`, and `WALLET_DIR` contents. @@ -33,7 +33,7 @@ We will use the well-established [Electron Framework](https://www.electronjs.org At the end of this tutorial, you will have built a JavaScript Wallet application that looks something like this: -![Desktop wallet screenshot](img/javascript-wallet-preview.png) +![Desktop wallet screenshot](/img/javascript-wallet-preview.png) The look and feel of the user interface should be roughly the same regardless of operating system, as the Electron Framework allows us to write cross-platform applications that are styled with HTML and CSS just like a web-based application. @@ -41,13 +41,13 @@ The application we are going to build here will be capable of the following: - Showing updates to the XRP Ledger in real-time. - Viewing any XRP Ledger account's activity "read-only" including showing how much XRP was delivered by each transaction. -- Sending [direct XRP payments](direct-xrp-payments.html), and providing feedback about the intended destination address, including: +- Sending [direct XRP payments](../../concepts/payment-types/direct-xrp-payments.md), and providing feedback about the intended destination address, including: - Whether the intended destination already exists in the XRP Ledger, or the payment would have to fund its creation. - If the address doesn't want to receive XRP (**Disallow XRP** flag enabled). - - If the address has a [verified domain name](xrp-ledger-toml.html#account-verification) associated with it. + - If the address has a [verified domain name](../../references/xrp-ledger-toml.md#account-verification) associated with it. -The application in this tutorial _doesn't_ have the ability to send or trade [tokens](issued-currencies.html) or -use other [payment types](payment-types.html) like [Escrow](https://xrpl.org/escrow.html) or [Payment Channels](https://xrpl.org/payment-channels.html). However, it provides a foundation +The application in this tutorial _doesn't_ have the ability to send or trade [tokens](../../concepts/tokens/index.md) or +use other [payment types](../../concepts/payment-types/index.md) like [Escrow](https://xrpl.org/escrow.html) or [Payment Channels](https://xrpl.org/payment-channels.html). However, it provides a foundation that you can implement those and other features on top of. In addition to the above features, you'll also learn a bit about Events, IPC (inter-process-communication) and asynchronous (async) code in JavaScript. @@ -162,23 +162,23 @@ To run the reference application found in `content/_code-samples/build-a-desktop npm run hello ``` -In the next steps we will continually expand on this very basic setup. To better keep track of all the changes that will be made, the files in the [reference section]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/) are numbered/prefixed with the respective step number: +In the next steps we will continually expand on this very basic setup. To better keep track of all the changes that will be made, the files in the {% repo-link path="content/_code-samples/build-a-desktop-wallet/js/" %}reference section{% /repo-link %} are numbered/prefixed with the respective step number: **Full code for this step:** -[`0-hello/0_hello.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/0_hello.js), -[`0-hello/view/0_hello.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/0_hello.html), +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/0_hello.js" %}`0-hello/0_hello.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/0_hello.html" %}`0-hello/view/0_hello.html`{% /repo-link %}, ### 1. Ledger Index **Full code for this step:** -[`1-ledger-index/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/1_ledger-index.js), -[`1-ledger-index/view/preload.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/1_preload.js), -[`1-ledger-index/view/template.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/1_ledger-index.html), -[`1-ledger-index/view/renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/1_renderer.js). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/1_ledger-index.js" %}`1-ledger-index/index.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/1_preload.js" %}`1-ledger-index/view/preload.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/1_ledger-index.html" %}`1-ledger-index/view/template.html`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/1_renderer.js" %}`1-ledger-index/view/renderer.js`{% /repo-link %}. Our first step was to have a running "Hello World" application. Now we want to expand on that so that the application can interact on a very basic level with the XRP Ledger and display some information about the current ledger state on the screen. After completing this step, the - for the time being unstyled - application should look like this: -![Screenshot: Step 1, hello world equivalent](img/javascript-wallet-1.png) +![Screenshot: Step 1, hello world equivalent](/img/javascript-wallet-1.png) 1. Update `index.js` by adding the following snippet in the import section at the top of the file below the `path` import: @@ -224,7 +224,7 @@ const getValidatedLedgerIndex = async () => { const createWindow = () => { ``` -This helper function does the following: It establishes a WebSocket connection to the XRP Ledger, calls the XRP Ledger API's [ledger method](ledger.html) and returns the ledger index from the response. We will wire up this function at the end of this step. +This helper function does the following: It establishes a WebSocket connection to the XRP Ledger, calls the XRP Ledger API's [ledger method](../../references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md) and returns the ledger index from the response. We will wire up this function at the end of this step. 2. In order to attach a preloader script, modify the `createWindow` method in `index.js` by adding the following code: @@ -340,14 +340,14 @@ npm run ledger-index ### 2. Show Ledger Updates by using WebSocket subscriptions **Full code for this step:** -[`2-async/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/2_async-subscribe.js), -[`2-async/view/preload.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/2_preload.js), -[`2-async/view/renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/2_renderer.js), -[`2-async/view/template.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/2_async.html). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/2_async-subscribe.js" %}`2-async/index.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/2_preload.js" %}`2-async/view/preload.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/2_renderer.js" %}`2-async/view/renderer.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/2_async.html" %}`2-async/view/template.html`{% /repo-link %}. Our application so far only shows the latest validated ledger sequence at the time when we opened it. Let's take things up a notch and add some dashboard like functionality where our wallet app will keep in sync with the ledger and display the latest specs and stats like a clock that is keeping track of time. The result will look something like this: -![Screenshot: Step 2, show ledger updates](img/javascript-wallet-2.png) +![Screenshot: Step 2, show ledger updates](/img/javascript-wallet-2.png) 1. In `index.js` remove the `getValidatedLedgerIndex` function. @@ -446,22 +446,22 @@ npm run async ### 3. Display an Account **Full code for this step:** -[`library/3_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/3_helpers.js). -[`3-account/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/3_account.js), -[`3-account/view/preload.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/3_preload.js), -[`3-account/view/renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/3_renderer.js), -[`3-account/view/template.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/3_account.html). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/3_helpers.js" %}`library/3_helpers.js`{% /repo-link %}. +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/3_account.js" %}`3-account/index.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/3_preload.js" %}`3-account/view/preload.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/3_renderer.js" %}`3-account/view/renderer.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/3_account.html" %}`3-account/view/template.html`{% /repo-link %}. We now have a permanent connection to the XRPL and some code to bring the delivered data to life on our screen, it's time to add some "wallet" functionality by managing an individual account. We will ask the user for address of the account to monitor by using a HTML dialog element. We will furthermore refactor the application by encapsulating some functionality in a library. After finishing this step the application should look like this: -![Screenshot: Step 3, show account information](img/javascript-wallet-3.png) +![Screenshot: Step 3, show account information](/img/javascript-wallet-3.png) 1. In the project root, create a new directory named `library`. Inside this directory, create a file `3_helpers.js` with the following content: `3_helpers.js` -{{ include_code("_code-samples/build-a-desktop-wallet/js/library/3_helpers.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js" language="js" /%} Here we define three utility functions that will transform data we receive from the ledger into flat value objects for easy digestion in the frontend code. As we progress in this tutorial, we will keep this pattern of adding functionality by adding files that are prefixed by the step number. @@ -631,7 +631,7 @@ onEnterAccountAddress: (address) => { 6. To incorporate the refactored markup, handle the HTML dialog element and well as the new account data section replace the contents of `view/renderer.js` with the following code: -{{ include_code("_code-samples/build-a-desktop-wallet/js/3-account/view/renderer.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/js/3-account/view/renderer.js" language="js" /%} The parts at the beginning and end are totally new, but the section in the middle is _almost_ the same as before. The difference is that the names of a few fields have changed, since we're now passing them from `prepareLedgerData(...)`. For example `ledger.ledger_time` is now `ledger.ledgerCloseTime` instead. @@ -641,7 +641,7 @@ Now you need an XRPL account address to monitor. If you already have one or know npm run start ``` -If you need a Testnet address, [you can get one from the faucet](xrp-testnet-faucet.html). Then you can paste that address into the [Transaction Sender](tx-sender.html) to send XRP transactions that your app can see. +If you need a Testnet address, [you can get one from the faucet](/resources/dev-tools/xrp-faucets). Then you can paste that address into the [Transaction Sender](/resources/dev-tools/tx-sender) to send XRP transactions that your app can see. On, startup, the application should display a simple dialog prompting the user for an XRPL account address. After entering the address the application should display some basic information about that account and about the ledger. @@ -654,20 +654,20 @@ npm run account ### 4. Show Account's Transactions **Full code for this step:** -[`library/3_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js), -[`library/4_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js), -[`4-tx-history/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/4_tx-history.js), -[`4-tx-history/view/preload.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/4_tx-preload.js), -[`4-tx-history/view/renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/4_tx-renderer.js), -[`4-tx-history/view/index.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/4_tx-history.html). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js" %}`library/3_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js" %}`library/4_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/4_tx-history.js" %}`4-tx-history/index.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/4_tx-preload.js" %}`4-tx-history/view/preload.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/4_tx-renderer.js" %}`4-tx-history/view/renderer.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/4_tx-history.html" %}`4-tx-history/view/index.html`{% /repo-link %}. At this point, our wallet shows the account's balance getting updated, but doesn't give us any clue about how this state came about, namely the actual transactions that caused the updates. So, our next step is to display the account's up to date transaction history using subscriptions once again: -![Screenshot: Step 4, show transaction history](img/javascript-wallet-4.png) +![Screenshot: Step 4, show transaction history](/img/javascript-wallet-4.png) 1. In the `library` folder, add a new file `4_helpers.js`. Then add the following helper function to that file: -{{ include_code("_code-samples/build-a-desktop-wallet/js/library/4_helpers.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js" language="js" /%} 2. Now, in `index.js`, require the new helper function at the bottom of the import section like so: @@ -820,17 +820,17 @@ npm run tx-history ### 5. Saving the Private Keys with a Password **Full code for this step:** -[`library/3_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js). -[`library/4_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js). -[`library/5_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js). -[`5-password/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/5_password.js). -[`5-password/view/preload.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/5_tx-preload.js). -[`5-password/view/template.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/5_password.html). -[`5-password/view/renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/5_tx-renderer.js). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js" %}`library/3_helpers.js`{% /repo-link %}. +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js" %}`library/4_helpers.js`{% /repo-link %}. +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js" %}`library/5_helpers.js`{% /repo-link %}. +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/5_password.js" %}`5-password/index.js`{% /repo-link %}. +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/5_tx-preload.js" %}`5-password/view/preload.js`{% /repo-link %}. +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/5_password.html" %}`5-password/view/template.html`{% /repo-link %}. +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/5_tx-renderer.js" %}`5-password/view/renderer.js`{% /repo-link %}. After finishing this step the application should look like this: -![Screenshot: Step 5, use salted password](img/javascript-wallet-5.png) +![Screenshot: Step 5, use salted password](/img/javascript-wallet-5.png) By now we always query the user for an account address at application startup. We more or less have a monitoring tool for accounts that queries publicly available data. Because we want to have real wallet functionality including sending XRP, we will have to deal with private keys and seeds. @@ -838,7 +838,7 @@ In this step we will query the user for a seed and a password they can use to ac 1. In the `library` folder, add a new file `5_helpers.js` with the following content: -{{ include_code("_code-samples/build-a-desktop-wallet/js/library/5_helpers.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js" language="js" /%} 2. Modify the import section at the top of `index.js` to look like this: @@ -1069,27 +1069,27 @@ npm run password ### 6. Styling **Full code for this step:** -[`library/3_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js), -[`library/4_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js), -[`library/5_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js), -[`6-styling/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/6_styling.js), -[`6-styling/view/preload.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/6_tx-preload.js), -[`6-styling/view/template.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/6_styling.html), -[`6-styling/view/renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/6_tx-renderer.js), -[`bootstrap/bootstrap.bundle.min.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js), -[`bootstrap/bootstrap.min.css`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.css), -[`bootstrap/custom.css`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css), -[`bootstrap/XRPLedger_DevPortal-white.svg`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/XRPLedger_DevPortal-white.svg). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js" %}`library/3_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js" %}`library/4_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js" %}`library/5_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/6_styling.js" %}`6-styling/index.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/6_tx-preload.js" %}`6-styling/view/preload.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/6_styling.html" %}`6-styling/view/template.html`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/6_tx-renderer.js" %}`6-styling/view/renderer.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js" %}`bootstrap/bootstrap.bundle.min.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.css" %}`bootstrap/bootstrap.min.css`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css" %}`bootstrap/custom.css`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/XRPLedger_DevPortal-white.svg" %}`bootstrap/XRPLedger_DevPortal-white.svg`{% /repo-link %}. After finishing this step the application should look like this: -![Screenshot: Step 6, style application with css](img/javascript-wallet-6.png) +![Screenshot: Step 6, style application with css](/img/javascript-wallet-6.png) 1. In the project root, create a new folder `bootstrap` and add the following files into that directory: -[`bootstrap.bundle.min.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js), -[`bootstrap.min.css`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.css), -[`custom.css`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css), -[`XRPLedger_DevPortal-white.svg`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/bootstrap/XRPLedger_DevPortal-white.svg) +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js" %}`bootstrap.bundle.min.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.css" %}`bootstrap.min.css`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css" %}`custom.css`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/bootstrap/XRPLedger_DevPortal-white.svg" %}`XRPLedger_DevPortal-white.svg`{% /repo-link %} 2. Change the content of `view/template.html` to be the following code: @@ -1232,23 +1232,23 @@ npm run styling ### 7. Send XRP **Full code for this step:** -[`library/3_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js), -[`library/4_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js), -[`library/5_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js), -[`library/6_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/6_helpers.js), -[`library/7_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js), -[`7-send-xrp/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/7_send-xrp.js), -[`7-send-xrp/view/preload.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/7_preload.js), -[`7-send-xrp/view/renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/7_renderer.js), -[`7-send-xrp/view/template.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/7_send-xrp.html). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js" %}`library/3_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js" %}`library/4_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js" %}`library/5_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/6_helpers.js" %}`library/6_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js" %}`library/7_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/7_send-xrp.js" %}`7-send-xrp/index.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/7_preload.js" %}`7-send-xrp/view/preload.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/7_renderer.js" %}`7-send-xrp/view/renderer.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/7_send-xrp.html" %}`7-send-xrp/view/template.html`{% /repo-link %}. Up until now we have enabled our app to query and display data from the XRPL. Now it's time to actively participate in the ledger by enabling our application to send transactions. For now, we can stick to sending direct XRP payments because there are more complexities involved in sending issued tokens. After finishing this step the application should look like this: -![Screenshot: Step 7, send xrp dialog](img/javascript-wallet-7.png) +![Screenshot: Step 7, send xrp dialog](/img/javascript-wallet-7.png) 1. Create the file `library/7_helpers.js` and add the following contents: -{{ include_code("_code-samples/build-a-desktop-wallet/js/library/7_helpers.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js" language="js" /%} (There was no `6-helpers.js`, so don't worry!) @@ -1378,32 +1378,32 @@ npm run send-xrp ### 8. Domain Verification and Polish **Full code for this step:** -[`library/3_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js), -[`library/4_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js), -[`library/5_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js), -[`library/6_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/6_helpers.js), -[`library/7_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js), -[`library/8_helpers.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/library/8_helpers.js), -[`8-domain-verification/index.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/8_domain-verification.js), -[`8-domain-verification/view/8_prelaod.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/8_preload.js), -[`8-domain-verification/view/8_domain-verification.html`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/8_domain-verification.html), -[`8-domain-verification/view/8_renderer.js`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/js/view/8_renderer.js). +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js" %}`library/3_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js" %}`library/4_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js" %}`library/5_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/6_helpers.js" %}`library/6_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js" %}`library/7_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/library/8_helpers.js" %}`library/8_helpers.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/8_domain-verification.js" %}`8-domain-verification/index.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/8_preload.js" %}`8-domain-verification/view/8_prelaod.js`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/8_domain-verification.html" %}`8-domain-verification/view/8_domain-verification.html`{% /repo-link %}, +{% repo-link path="content/_code-samples/build-a-desktop-wallet/js/view/8_renderer.js" %}`8-domain-verification/view/8_renderer.js`{% /repo-link %}. One of the biggest shortcomings of the wallet app from the previous step is that it doesn't provide a lot of protections or feedback for users to save them from human error and scams. These sorts of protections are extra important when dealing with the cryptocurrency space because decentralized systems like the XRP Ledger don't have an admin or support team one can ask to cancel or refund a payment if you made a mistake such as sending it to the wrong address. This step shows how to add some checks on destination addresses to warn the user before sending XRP. -One type of check we could make is to verify the domain name associated with an XRP Ledger address; this is called [account domain verification](xrp-ledger-toml.html#account-verification). When an account's domain is verified, we can could show it like this: +One type of check we could make is to verify the domain name associated with an XRP Ledger address; this is called [account domain verification](../../references/xrp-ledger-toml.md#account-verification). When an account's domain is verified, we can could show it like this: -![Screenshot: Step 8, use domain verification](img/javascript-wallet-8.png) +![Screenshot: Step 8, use domain verification](/img/javascript-wallet-8.png) 1. In the `library` folder, add a new file `8_helpers.js`. Then add the following contents to that file: -{{ include_code("_code-samples/build-a-desktop-wallet/js/library/8_helpers.js", language="js") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/js/library/8_helpers.js" language="js" /%} -The code in `8_helpers.js` looks up the account on the ledger by sending an [`account_info`](account_info.html) request. +The code in `8_helpers.js` looks up the account on the ledger by sending an [`account_info`](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md) request. -If the account does exist, the code checks for the [`lsfDisallowXRP` flag](accountroot.html#accountroot-flags). +If the account does exist, the code checks for the [`lsfDisallowXRP` flag](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags). 2. Import the new helper function in `index.js`: @@ -1520,7 +1520,7 @@ npm run domain-verification Congratulations, you now have created your own wallet application! In completing this tutorial, you've not only learned how to interact with the XRP Ledger, but also which challenges this provokes when building a user facing application. So let's do a recap of what you have accomplished: -![Desktop wallet screenshot](img/javascript-wallet-preview.png) +![Desktop wallet screenshot](/img/javascript-wallet-preview.png) 0. First you set up the project and created a basic electron application. 1. In Step 1 you did your first ledger query and had the application display the latest closed ledger index, using Electron's inter-process-communication. diff --git a/content/tutorials/build-apps/build-a-desktop-wallet-in-python.md b/content/tutorials/build-apps/build-a-desktop-wallet-in-python.md index cf512fa45b..38ea0102d7 100644 --- a/content/tutorials/build-apps/build-a-desktop-wallet-in-python.md +++ b/content/tutorials/build-apps/build-a-desktop-wallet-in-python.md @@ -13,30 +13,30 @@ This tutorial demonstrates how to build a desktop wallet for the XRP Ledger usin To complete this tutorial, you should meet the following guidelines: - You have Python 3.7 or higher installed. -- You are somewhat familiar with object-oriented programming in Python and have completed the [Get Started Using Python tutorial](get-started-using-python.html). +- You are somewhat familiar with object-oriented programming in Python and have completed the [Get Started Using Python tutorial](../get-started/get-started-using-python.md). - You have some understanding of what the XRP Ledger can do and of cryptocurrency in general. You don't need to be an expert. ## Source Code -You can find the complete source code for all of this tutorial's examples in the [code samples section of this website's repository]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/py/). +You can find the complete source code for all of this tutorial's examples in the {% repo-link path="content/_code-samples/build-a-desktop-wallet/py/" %}code samples section of this website's repository{% /repo-link %}. ## Goals At the end of this tutorial, you should have a Python application that looks something like this: -![Desktop wallet screenshot](img/python-wallet-preview.png) +![Desktop wallet screenshot](/img/python-wallet-preview.png) The exact look and feel of the user interface depend on your computer's operating system. This application is capable of the following: - Shows updates to the XRP Ledger in real-time. - Can view any XRP Ledger account's activity "read-only" including showing how much XRP was delivered by each transaction. -- Shows how much XRP is set aside for the account's [reserve requirement](reserves.html). -- Can send [direct XRP payments](direct-xrp-payments.html), and provides feedback about the intended destination address, including: +- Shows how much XRP is set aside for the account's [reserve requirement](../../concepts/accounts/reserves.md). +- Can send [direct XRP payments](../../concepts/payment-types/direct-xrp-payments.md), and provides feedback about the intended destination address, including: - Whether the intended destination already exists in the XRP Ledger, or the payment would have to fund its creation. - If the address doesn't want to receive XRP (**Disallow XRP** flag enabled). - - If the address has a [verified domain name](xrp-ledger-toml.html#account-verification) associated with it. + - If the address has a [verified domain name](../../references/xrp-ledger-toml.md#account-verification) associated with it. -The application in this tutorial _doesn't_ have the ability to send or trade [tokens](issued-currencies.html) or use other [payment types](payment-types.html) like Escrow or Payment Channels. However, it provides a foundation that you can implement those and other features on top of. +The application in this tutorial _doesn't_ have the ability to send or trade [tokens](../../concepts/tokens/index.md) or use other [payment types](../../concepts/payment-types/index.md) like Escrow or Payment Channels. However, it provides a foundation that you can implement those and other features on top of. Other topics mentioned in this tutorial include graphical user interface (GUI) programming, threading, and asynchronous (async) code in Python. @@ -84,21 +84,21 @@ python -m pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/g The first step is to build an app that combines the "hello world" equivalents for the XRP Ledger and wxPython programming. The code is as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/1_hello.py", language="py") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/1_hello.py" language="py" /%} When you run this script, it displays a single window that (hopefully) shows the latest validated ledger index on the XRP Ledger Testnet. It looks like this: -![Screenshot: Step 1, hello world equivalent](img/python-wallet-1.png) +![Screenshot: Step 1, hello world equivalent](/img/python-wallet-1.png) Under the hood, the code makes a JSON-RPC client, connects to a public Testnet server, and uses the [ledger method][] to get this information. Meanwhile, it creates a [`wx.Frame`](https://docs.wxpython.org/wx.Frame.html) subclass as the base of the user interface. This class makes a window the user can see, with a [`wx.StaticText`](https://docs.wxpython.org/wx.StaticText.html) widget to display text to the user, and a [`wx.Panel`](https://docs.wxpython.org/wx.Panel.html) to hold that widget. ### 2. Show Ledger Updates -**Full code for this step:** [`2_threaded.py`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/py/2_threaded.py). +**Full code for this step:** {% repo-link path="content/_code-samples/build-a-desktop-wallet/py/2_threaded.py" %}`2_threaded.py`{% /repo-link %}. You may have noticed that the app in step 1 only shows the latest validated ledger at the time you opened it: the text displayed never changes unless you close the app and reopen it. The actual XRP Ledger is constantly making forward progress, so a more useful app would show it, something like this: -![Animation: Step 2, showing ledger updates](img/python-wallet-2.gif) +![Animation: Step 2, showing ledger updates](/img/python-wallet-2.gif) If you want to continually watch the ledger for updates (for example, waiting to see when new transactions have been confirmed), then you need to change the architecture of your app slightly. For reasons specific to Python, it's best to use two _threads_: a "GUI" thread to handle user input and display, and a "worker" thread for XRP Ledger network connectivity. The operating system can switch quickly between the two threads at any time, so the user interface can remain responsive while the background thread waits on information from the network that may take a while to arrive. @@ -113,11 +113,11 @@ To make full use of the XRP Ledger's ability to push messages to the client, use Add these imports to the top of the file: -{{ include_code("_code-samples/build-a-desktop-wallet/py/2_threaded.py", language="py", start_with="import async", end_before="class XRPLMonitorThread") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/2_threaded.py" from="import async" before="class XRPLMonitorThread" language="py" /%} Then, the code for the monitor thread is as follows (put this in the same file as the rest of the app): -{{ include_code("_code-samples/build-a-desktop-wallet/py/2_threaded.py", language="py", start_with="class XRPLMonitorThread", end_before="class TWaXLFrame") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/2_threaded.py" from="class XRPLMonitorThread" before="class TWaXLFrame" language="py" /%} This code defines a `Thread` subclass for the worker. When the thread starts, it sets up an event loop, which waits for async tasks to be created and run. The code uses [`asyncio`'s Debug Mode](https://docs.python.org/3/library/asyncio-dev.html#asyncio-debug-mode) so that the console shows any errors that occur in async tasks. @@ -127,7 +127,7 @@ The `watch_xrpl()` function is an example of a such a task (which the GUI thread Update the code for the main thread and GUI frame to look like this: -{{ include_code("_code-samples/build-a-desktop-wallet/py/2_threaded.py", language="py", start_with="class TWaXLFrame", end_before="if __name__") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/2_threaded.py" from="class TWaXLFrame" before="if __name__" language="py" /%} The part that builds the GUI has been moved to a separate method, `build_ui(self)`. This helps to divide the code into chunks that are easier to understand, because the `__init__()` constructor has other work to do now, too: it starts the worker thread, and gives it its first job. The GUI setup also now uses a [sizer](https://docs.wxpython.org/sizers_overview.html) to control placement of the text within the frame. @@ -135,15 +135,15 @@ The part that builds the GUI has been moved to a separate method, `build_ui(self There's a new helper method, `run_bg_job()`, which runs an asynchronous function (defined with `async def`) in the worker thread. Use this method any time you want the worker thread to interact with the XRP Ledger network. -Instead of a `get_validated_ledger()` method, the GUI class now has an `update_ledger()` method, which takes an object in the format of a [ledger stream message](subscribe.html#ledger-stream) and displays some of that information to the user. The worker thread calls this method using `wx.CallAfter()` whenever it gets a `ledgerClosed` event from the ledger. +Instead of a `get_validated_ledger()` method, the GUI class now has an `update_ledger()` method, which takes an object in the format of a [ledger stream message](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#ledger-stream) and displays some of that information to the user. The worker thread calls this method using `wx.CallAfter()` whenever it gets a `ledgerClosed` event from the ledger. Finally, change the code to start the app (at the end of the file) slightly: -{{ include_code("_code-samples/build-a-desktop-wallet/py/2_threaded.py", language="py", start_with="if __name__") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/2_threaded.py" from="if __name__" language="py" /%} Since the app uses a WebSocket client instead of the JSON-RPC client now, the code has to use a WebSocket URL to connect. -**Tip:** If you [run your own `rippled` server](networks-and-servers.html#reasons-to-run-your-own-server) you can connect to it using `ws://localhost:6006` as the URL. You can also use the WebSocket URLs of [public servers](public-servers.html) to connect to the Mainnet or other test networks. +**Tip:** If you [run your own `rippled` server](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server) you can connect to it using `ws://localhost:6006` as the URL. You can also use the WebSocket URLs of [public servers](../get-started/public-servers.md) to connect to the Mainnet or other test networks. #### Troubleshooting SSL Certificate Errors @@ -160,57 +160,57 @@ On Windows, open Edge or Chrome and browse to , then clos ### 3. Display an Account -**Full code for this step:** [`3_account.py`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/py/3_account.py) +**Full code for this step:** {% repo-link path="content/_code-samples/build-a-desktop-wallet/py/3_account.py" %}`3_account.py`{% /repo-link %} -Now that you have a working, ongoing connection to the XRP Ledger, it's time to start adding some "wallet" functionality that lets you manage an individual account. For this step, you should prompt the user to input their address or master seed, then use that to display information about their account including how much XRP is set aside for the [reserve requirement](reserves.html). +Now that you have a working, ongoing connection to the XRP Ledger, it's time to start adding some "wallet" functionality that lets you manage an individual account. For this step, you should prompt the user to input their address or master seed, then use that to display information about their account including how much XRP is set aside for the [reserve requirement](../../concepts/accounts/reserves.md). The prompt is in a pop-up dialog like this: -![Screenshot: step 3, account input prompt](img/python-wallet-3-enter.png) +![Screenshot: step 3, account input prompt](/img/python-wallet-3-enter.png) After the user inputs the prompt, the updated GUI looks like this: -![Screenshot, step 3, showing account details](img/python-wallet-3-main.png) +![Screenshot, step 3, showing account details](/img/python-wallet-3-main.png) When you do math on XRP amounts, you should use the `Decimal` class so that you don't get rounding errors. Add this to the top of the file, with the other imports: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="from decimal", end_before="class XRPLMonitorThread") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="from decimal" before="class XRPLMonitorThread" language="py" /%} In the `XRPLMonitorThread` class, rename and update the `watch_xrpl()` method as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="async def watch_xrpl", end_before="async def on_connected") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="async def watch_xrpl" before="async def on_connected" language="py" /%} -The newly renamed `watch_xrpl_account()` method now takes an address and optional wallet and saves them for later. (The GUI thread provides these based on user input.) This method also adds a new case for [transaction stream messages](subscribe.html#transaction-streams). When it sees a new transaction, the worker does not yet do anything with the transaction itself, but it uses that as a trigger to get the account's latest XRP balance and other info using the [account_info method][]. When _that_ response arrives, the worker passes the account data to the GUI for display. +The newly renamed `watch_xrpl_account()` method now takes an address and optional wallet and saves them for later. (The GUI thread provides these based on user input.) This method also adds a new case for [transaction stream messages](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#transaction-streams). When it sees a new transaction, the worker does not yet do anything with the transaction itself, but it uses that as a trigger to get the account's latest XRP balance and other info using the [account_info method][]. When _that_ response arrives, the worker passes the account data to the GUI for display. Still in the `XRPLMonitorThread` class, update the `on_connected()` method as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="async def on_connected", end_before="class AutoGridBagSizer") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="async def on_connected" before="class AutoGridBagSizer" language="py" /%} The `on_connected()` method now subscribes to transactions for the provided account (and the ledger stream too). Furthermore, it now calls [account_info][account_info method] on startup, and passes the response to the GUI for display. The new GUI has a lot more fields that need to be laid out in two dimensions. The following subclass of [`wx.GridBagSizer`](https://docs.wxpython.org/wx.GridBagSizer.html) provides a quick way to do so, setting the appropriate padding and sizing values for a two-dimensional list of widgets. Add this code to the same file: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="class AutoGridBagSizer", end_before="class TWaXLFrame") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="class AutoGridBagSizer" before="class TWaXLFrame" language="py" /%} Update the `TWaXLFrame`'s constructor as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="def __init__(self, url, test_network=True):", end_before="def build_ui(self):") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="def __init__(self, url, test_network=True):" before="def build_ui(self):" language="py" /%} Now the constructor takes a boolean to indicate whether it's connecting to a test network. (If you provide a Mainnet URL, you should also pass `False`.) It uses this to encode and decode X-addresses and warn if they're intended for a different network. It also calls a new method, `prompt_for_account()` to get an address and wallet, and passes those to the renamed `watch_xrpl_account()` background job. Update the `build_ui()` method definition as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="def build_ui(self):", end_before="def run_bg_job(self, job):") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="def build_ui(self):" before="def run_bg_job(self, job):" language="py" /%} -This adds a [`wx.StaticBox`](https://docs.wxpython.org/wx.StaticBox.html) with several new widgets, then uses the `AutoGridBagSizer` (defined above) to lay them out in 2×4 grid within the box. These new widgets are all static text to display [details of the account](accountroot.html), though some of them start with placeholder text. (Since they require data from the ledger, you have to wait for the worker thread to send that data back.) +This adds a [`wx.StaticBox`](https://docs.wxpython.org/wx.StaticBox.html) with several new widgets, then uses the `AutoGridBagSizer` (defined above) to lay them out in 2×4 grid within the box. These new widgets are all static text to display [details of the account](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md), though some of them start with placeholder text. (Since they require data from the ledger, you have to wait for the worker thread to send that data back.) **Caution:** You may notice that even though the constructor for this class sees the `wallet` variable, it does not save it as a property of the object. This is because the wallet mostly needs to be managed by the worker thread, not the GUI thread, and updating it in both places might not be thread-safe. Add a new `prompt_for_account()` method to the `TWaXLFrame` class: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="def prompt_for_account", end_before="def update_ledger") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="def prompt_for_account" before="def update_ledger" language="py" /%} -The constructor calls this method to prompt the user for their [address](addresses.html) or [master seed](cryptographic-keys.html#seed), then processes the user input to decode whatever value the user put in, and use it accordingly. With wxPython, you usually follow this pattern with dialog boxes: +The constructor calls this method to prompt the user for their [address](../../concepts/accounts/addresses.md) or [master seed](../../concepts/accounts/cryptographic-keys.md#seed), then processes the user input to decode whatever value the user put in, and use it accordingly. With wxPython, you usually follow this pattern with dialog boxes: 1. Create a new instance of a dialog class, such as a [`wx.TextEntryDialog`](https://docs.wxpython.org/wx.TextEntryDialog.html). 2. Use `showModal()` to display it to the user and get a return code based on which button the user clicked. @@ -225,50 +225,50 @@ This code also binds an _event handler_, which is a method that is called whenev Add the following method to `TWaXLFrame` class to define the handler: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="def toggle_dialog_style", end_before="def prompt_for_account") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="def toggle_dialog_style" before="def prompt_for_account" language="py" /%} Event handlers generally take one positional argument, a [`wx.Event` object](https://docs.wxpython.org/wx.Event.html) which describes the exact event that occurred. In this case, the handler uses this object to find out what value the user input. If the input looks like a master seed (it starts with the letter "s"), the handler switches the dialog to a "password" style that masks the user input, so people viewing the user's screen won't see the secret. And, if the user erases it and switches back to inputting an address, the handler toggles the style back. Add the following lines **at the end of** the `update_ledger()` method: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="# Save reserve settings", end_before="def calculate_reserve_xrp") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="# Save reserve settings" before="def calculate_reserve_xrp" language="py" /%} This saves the ledger's current reserves settings, so that you can use them to calculate the account's total amount of XRP reserved. Add the following method to the `TWaXLFrame` class, to do exactly that: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="def calculate_reserve_xrp", end_before="def update_account") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="def calculate_reserve_xrp" before="def update_account" language="py" /%} Add an `update_account()` method to the `TWaXLFrame` class: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="def update_account", end_before="if __name__") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="def update_account" before="if __name__" language="py" /%} The worker thread calls this method to pass account details to the GUI for display. Lastly, towards the end of the file, in the `if __name__ == "__main__":` block, update the line that instantiates the `TWaXLFrame` class to pass the new `test_net` parameter: -{{ include_code("_code-samples/build-a-desktop-wallet/py/3_account.py", language="py", start_with="frame = TWaXLFrame", end_before="frame.Show()") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/3_account.py" from="frame = TWaXLFrame" before="frame.Show()" language="py" /%} (If you change the code to connect to a Mainnet server URL, also change this value to `False`.) -To test your wallet app with your own test account, first go to the [Testnet Faucet](xrp-testnet-faucet.html) and **Get Testnet credentials**. Save the address and secret key somewhere, and try your wallet app with either one. Then, to see balance changes, go to the [Transaction Sender](tx-sender.html) and paste your address into the **Destination Address** field. Click **Initialize** and try out some of the transaction types there, and see if the balance displayed by your wallet app updates as you expect. +To test your wallet app with your own test account, first go to the [Testnet Faucet](/resources/dev-tools/xrp-faucets) and **Get Testnet credentials**. Save the address and secret key somewhere, and try your wallet app with either one. Then, to see balance changes, go to the [Transaction Sender](/resources/dev-tools/tx-sender) and paste your address into the **Destination Address** field. Click **Initialize** and try out some of the transaction types there, and see if the balance displayed by your wallet app updates as you expect. ### 4. Show Account's Transactions -**Full code for this step:** [`4_tx_history.py`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/py/4_tx_history.py) +**Full code for this step:** {% repo-link path="content/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" %}`4_tx_history.py`{% /repo-link %} At this point, your wallet shows the account's balance getting updated, but doesn't show you anything about the actual transactions that caused the updates. So, the next step is to display the account's transaction history (and keep it updated). The new transaction history displays in a new tab, like this: -![Screenshot: transaction history tab](img/python-wallet-4-main.png) +![Screenshot: transaction history tab](/img/python-wallet-4-main.png) Additionally, the app can produce desktop notifications (sometimes called "toasts"), which might look like this depending on your operating system: -![Screenshot: notification message](img/python-wallet-4-notif.png) +![Screenshot: notification message](/img/python-wallet-4-notif.png) First, add the following imports to get GUI classes for the table view and notifications: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="import wx.dataview", end_before="import asyncio") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="import wx.dataview" before="import asyncio" language="py" /%} Next, update the `watch_xrpl_account()` method of the worker class to pass transaction details to the GUI when you receive a transaction subscription message. This requires only one line: @@ -278,17 +278,17 @@ wx.CallAfter(self.gui.add_tx_from_sub, message) The complete method should look like this: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="async def watch_xrpl_account", end_before="async def on_connected") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="async def watch_xrpl_account" before="async def on_connected" language="py" /%} Have the worker use the [account_tx method][] to look up the account's transaction history and pass it to the GUI. This method gets a list of transactions that affected an account, including transactions from, to, or passing through the account in question, starting with the most recent by default. Add new code **to the end of** the `XRPLMonitorThread`'s `on_connected()` method, as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="# Get the first page of the account's transaction history", end_before="class AutoGridBagSizer") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="# Get the first page of the account's transaction history" before="class AutoGridBagSizer" language="py" /%} -**Note:** You may have to [paginate](markers-and-pagination.html) across multiple [account_tx][account_tx method] requests and responses if you want the _complete_ list of transactions that affected an account since its creation. This example does not show pagination, so the app only displays the most recent transactions to affect the account. +**Note:** You may have to [paginate](../../references/http-websocket-apis/api-conventions/markers-and-pagination.md) across multiple [account_tx][account_tx method] requests and responses if you want the _complete_ list of transactions that affected an account since its creation. This example does not show pagination, so the app only displays the most recent transactions to affect the account. Now, edit the `build_ui()` method of the `TWaXLFrame` class. **Update the beginning of the method** to add a new [`wx.Notebook`](https://docs.wxpython.org/wx.Notebook.html), which makes a "tabs" interface, and make the `main_panel` into the first tab, as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="def build_ui", end_before="self.acct_info_area") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="def build_ui" before="self.acct_info_area" language="py" /%} Additionally, add a new tab for the transaction history to the **end of the** `build_ui()` method, as follows: @@ -298,64 +298,64 @@ This adds a second tab containing a [`wx.dataview.DataViewListCtrl`](https://doc Add the following helper method to the `TWaXLFrame` class: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="def displayable_amount", end_before="def add_tx_row") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="def displayable_amount" before="def add_tx_row" language="py" /%} -This method takes a [currency amount](basic-data-types.html#specifying-currency-amounts) and converts it into a string for display to a human. Since it's used with the [`delivered_amount` field](transaction-metadata.html#delivered_amount) in particular, it also handles the special case for pre-2014 partial payments where the delivered amount is unavailable. +This method takes a [currency amount](../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts) and converts it into a string for display to a human. Since it's used with the [`delivered_amount` field](../../references/protocol/transactions/metadata.md#delivered_amount) in particular, it also handles the special case for pre-2014 partial payments where the delivered amount is unavailable. After that, add another helper method to the `TWaXLFrame` class: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="def add_tx_row", end_before="def update_account_tx") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="def add_tx_row" before="def update_account_tx" language="py" /%} This method takes a transaction object, parses some of its fields into formats more suitable for displaying to users, and then adds it to the `DataViewListCtrl` in the transaction history tab. Add a method to the `TWaXLFrame` class to update the transaction history based on the [account_tx response][account_tx method] from the worker thread, as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="def update_account_tx", end_before="def add_tx_from_sub") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="def update_account_tx" before="def add_tx_from_sub" language="py" /%} Lastly, add a similar method to the `TWaXLFrame` to add a single transaction to the transaction history table whenever the worker thread passes a transaction subscription message: -{{ include_code("_code-samples/build-a-desktop-wallet/py/4_tx_history.py", language="py", start_with="def add_tx_from_sub", end_before="if __name__") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/4_tx_history.py" from="def add_tx_from_sub" before="if __name__" language="py" /%} -As before, you can test your wallet app with your own test account if you use the [Testnet Faucet](xrp-testnet-faucet.html) and the [Transaction Sender](tx-sender.html). On the Faucet page, select **Get Testnet credentials** (or use the same credentials from before). Input either the address or secret when you open your wallet app. On the Transaction Sender page, paste your address into the **Destination Address** field, click **Initialize**, then click various transaction buttons to see how your wallet displays the results. +As before, you can test your wallet app with your own test account if you use the [Testnet Faucet](/resources/dev-tools/xrp-faucets) and the [Transaction Sender](/resources/dev-tools/tx-sender). On the Faucet page, select **Get Testnet credentials** (or use the same credentials from before). Input either the address or secret when you open your wallet app. On the Transaction Sender page, paste your address into the **Destination Address** field, click **Initialize**, then click various transaction buttons to see how your wallet displays the results. ### 5. Send XRP -**Full code for this step:** [`5_send_xrp.py`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py) +**Full code for this step:** {% repo-link path="content/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" %}`5_send_xrp.py`{% /repo-link %} -Until now, you've made the app able to view data from the ledger, and it's capable of showing the transactions an account has received. Now it's finally time to make the app capable of _sending_ transactions. For now, you can stick to sending [direct XRP payments](direct-xrp-payments.html) because there are more complexities involved in sending [issued tokens](issued-currencies.html). +Until now, you've made the app able to view data from the ledger, and it's capable of showing the transactions an account has received. Now it's finally time to make the app capable of _sending_ transactions. For now, you can stick to sending [direct XRP payments](../../concepts/payment-types/direct-xrp-payments.md) because there are more complexities involved in sending [issued tokens](../../concepts/tokens/index.md). The main window gets a new "Send XRP" button: -![Screenshot: main frame with "Send XRP" button enabled](img/python-wallet-5-main.png) +![Screenshot: main frame with "Send XRP" button enabled](/img/python-wallet-5-main.png) Clicking this button opens a dialog where the user can enter the details of the payment: -![Screenshot: "Send XRP" dialog](img/python-wallet-5-dialog.png) +![Screenshot: "Send XRP" dialog](/img/python-wallet-5-dialog.png) First, add the [regular expressions](https://docs.python.org/3/howto/regex.html) library to the list of imports at the top of the file: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="import re", end_before="from threading") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="import re" before="from threading" language="py" /%} In the `XRPLMonitorThread` class, add the following lines to the `on_connected()` method, anywhere **after getting a successful [account_info][account_info method] response**: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="if self.wallet:", end_before="# Get the first page") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="if self.wallet:" before="# Get the first page" language="py" /%} Add a new method to the `XRPLMonitorThread` class to send an XRP payment based on data the user provides, and alert the GUI when it has been sent: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="def send_xrp", end_before="class AutoGridBagSizer") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="def send_xrp" before="class AutoGridBagSizer" language="py" /%} -In this flow, the app sends the transaction without waiting for it to be confirmed by the consensus process. You should be careful to mark any results from the initial submission as "pending" or "tentative" since the actual result of the transaction [isn't final until it's confirmed](finality-of-results.html). Since the app is also subscribed to the account's transactions, it automatically gets notified when the transaction is confirmed. +In this flow, the app sends the transaction without waiting for it to be confirmed by the consensus process. You should be careful to mark any results from the initial submission as "pending" or "tentative" since the actual result of the transaction [isn't final until it's confirmed](../../concepts/transactions/finality-of-results/index.md). Since the app is also subscribed to the account's transactions, it automatically gets notified when the transaction is confirmed. Now, create a custom dialog for the user to input the necessary details for the payment: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="class SendXRPDialog", end_before="def on_to_edit") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="class SendXRPDialog" before="def on_to_edit" language="py" /%} -This subclass of [`wx.Dialog`](https://docs.wxpython.org/wx.Dialog.html) has several custom widgets, which are laid out using the `GridBagSizer` defined earlier. Notably, it has text boxes for the "To" address, the amount of XRP, and the [destination tag](source-and-destination-tags.html) to use, if any. (A destination tag is kind of like a phone extension for an XRP Ledger address: for addresses owned by individuals, you don't need it, but if the destination address has many users then you need to specify it so that the destination knows which recipient you intended. It's common to need a destination tag to deposit at a cryptocurrency exchange.) The dialog also has **OK** and **Cancel** buttons, which automatically function to cancel or complete the dialog, although the "OK" button is labeled "Send" instead to make it clearer what the app does when the user clicks it. +This subclass of [`wx.Dialog`](https://docs.wxpython.org/wx.Dialog.html) has several custom widgets, which are laid out using the `GridBagSizer` defined earlier. Notably, it has text boxes for the "To" address, the amount of XRP, and the [destination tag](../../concepts/transactions/source-and-destination-tags.md) to use, if any. (A destination tag is kind of like a phone extension for an XRP Ledger address: for addresses owned by individuals, you don't need it, but if the destination address has many users then you need to specify it so that the destination knows which recipient you intended. It's common to need a destination tag to deposit at a cryptocurrency exchange.) The dialog also has **OK** and **Cancel** buttons, which automatically function to cancel or complete the dialog, although the "OK" button is labeled "Send" instead to make it clearer what the app does when the user clicks it. The `SendXRPDialog` constructor also binds two event handlers for when the user inputs text in the "to" and "destination tag" fields, so you need the definitions for those handlers to the same class. First, add `on_to_edit()`: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="def on_to_edit", end_before="def on_dest_tag_edit") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="def on_to_edit" before="def on_dest_tag_edit" language="py" /%} This checks the "To" address to ensure that it matches two conditions: @@ -366,37 +366,37 @@ If either condition is not met, the handler disables the "Send" button for this Next, add the `on_dest_tag_edit()` handler, also as a method of the `SendXRPDialog` class: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="def on_dest_tag_edit", end_before="class TWaXLFrame") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="def on_dest_tag_edit" before="class TWaXLFrame" language="py" /%} In other GUI toolkits, you might be able to use a dedicated number entry control for the Destination Tag field, but with wxPython there is only a generic text entry field, so the `on_dest_tag_edit()` handler makes it behave more like a number-only control by instantly deleting any non-numeric characters the user tries to enter in the field. From here, you need to edit the `TWaXLFrame` class. First, in the `build_ui()` method, you need to add a new "Send XRP" button, and bind it to a new event handler. Add the following lines **before the code to add things to the sizer**: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="# Send XRP button.", end_before="self.ledger_info =") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="# Send XRP button." before="self.ledger_info =" language="py" /%} Still in the `build_ui()` method, add the new button to the `main_sizer` so it fits nicely in between the account info area and the ledger info area. The sizer code **at the end of the "Tab 1" section** should look like the following, including one new line and the previous (unchanged) lines: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="main_sizer = wx.BoxSizer", end_before="# Tab 2:") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="main_sizer = wx.BoxSizer" before="# Tab 2:" language="py" /%} Also in the `build_ui()` method, initialize a dictionary to hold rows with pending transaction details, so that you can replace them with the confirmed results when those are available. Add this line **anywhere near the "Tab 2" section** that sets up `self.tx_list` code: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="self.pending_tx_rows = {}", end_before="objs_panel") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="self.pending_tx_rows = {}" before="objs_panel" language="py" /%} The "Send XRP" button starts out disabled, so you need to add a new method to the `TWaXLFrame` class to enable it when the right conditions are met: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="def enable_readwrite", end_before="def displayable_amount") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="def enable_readwrite" before="def displayable_amount" language="py" /%} The changes you made to `on_connected()` earlier in this step call this method after successfully receiving account data, but only if the worker class has a `Wallet` instance—meaning the user input the secret key to an account that really exists. If the user input an address, this method never gets called. Add the handler for when the user clicks the "Send XRP" button as a method of the `TWaXLFrame` class: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="def click_send_xrp", end_before="if __name__") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="def click_send_xrp" before="if __name__" language="py" /%} This dialog opens a new "Send XRP" dialog using the custom `SendXRPDialog` class defined earlier in this step. If the user clicks the "Send" button, it passes the details to the worker thread to send the payment, and displays a notification that indicates the transaction is sending. (Note, the transaction can still fail after this point, so the notification does not say what the transaction did.) Also add a new method to the `TWaXLFrame` class to display the pending transaction in the Transaction History pane when the worker thread sends it, as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/5_send_xrp.py", language="py", start_with="def add_pending_tx", end_before="def click_send_xrp") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/5_send_xrp.py" from="def add_pending_tx" before="def click_send_xrp" language="py" /%} This method is similar to the `add_tx_row()` method in that it processes a transaction for display and adds it to the Transaction History table. The differences are that it takes one of [xrpl-py's Transaction models](https://xrpl-py.readthedocs.io/en/stable/source/xrpl.models.transactions.html) rather than a JSON-like API response; and it handles certain columns differently because the transaction has not yet been confirmed. Importantly, it saves a reference to table row containing this transaction to the `pending_tx_rows` dictionary, so that later on when the transaction is confirmed, you can remove the table row for the pending version and replace it with the final version of the transaction. @@ -408,24 +408,28 @@ You can now use your wallet to send XRP! You can even fund an entirely new accou 1. Open the Python interpreter. - python3 + ``` + python3 + ``` **Caution:** Depending on your OS, the command may be `python` or `python3`. You want to open Python 3, not a Python 2.x version. 2. Run the following commands in the Python interpreter: - import xrpl - w = xrpl.wallet.Wallet.create() - print(w.address) - print(w.seed) - exit() + ``` + import xrpl + w = xrpl.wallet.Wallet.create() + print(w.address) + print(w.seed) + exit() + ``` Save the classic address and seed somewhere. -3. Open your wallet app and provide a **Secret** (seed) value from an already-funded address, such as one you got from the [Testnet Faucet](xrp-testnet-faucet.html). +3. Open your wallet app and provide a **Secret** (seed) value from an already-funded address, such as one you got from the [Testnet Faucet](/resources/dev-tools/xrp-faucets). -4. Send at least the [base reserve](reserves.html) (currently 10 XRP) to the brand-new classic address you generated in the Python interpreter. +4. Send at least the [base reserve](../../concepts/accounts/reserves.md) (currently 10 XRP) to the brand-new classic address you generated in the Python interpreter. 5. Wait for the transaction to be confirmed, then close your wallet app. @@ -436,33 +440,33 @@ You can now use your wallet to send XRP! You can even fund an entirely new accou ### 6. Domain Verification and Polish -**Full code for this step:** [`6_verification_and_polish.py`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py) +**Full code for this step:** {% repo-link path="content/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" %}`6_verification_and_polish.py`{% /repo-link %} One of the biggest shortcomings of the wallet app from the previous step is that it doesn't provide a lot of protections or feedback for users to save them from human error and scams. These sorts of protections are extra important when dealing with the cryptocurrency space, because decentralized systems like the XRP Ledger don't have an admin or support team you can ask to cancel or refund a payment if you made a mistake such as sending it to the wrong address. This step shows how to add some checks on destination addresses to warn the user before sending. -One type of check you can make is to verify the domain name associated with an XRP Ledger address; this is called [account domain verification](xrp-ledger-toml.html#account-verification). When an account's domain is verified, you could show it like this: +One type of check you can make is to verify the domain name associated with an XRP Ledger address; this is called [account domain verification](../../references/xrp-ledger-toml.md#account-verification). When an account's domain is verified, you could show it like this: -![Screenshot: domain verified destination](img/python-wallet-6.png) +![Screenshot: domain verified destination](/img/python-wallet-6.png) When there are other errors, you can expose them to the user with an icon and a tooltip, which looks like this: -![Screenshot: invalid address error icon with tooltip](img/python-wallet-6-err.png) +![Screenshot: invalid address error icon with tooltip](/img/python-wallet-6-err.png) The following code implements account domain verification; **save it as a new file** named `verify_domain.py` in the same folder as your app's main file: -{{ include_code("_code-samples/build-a-desktop-wallet/py/verify_domain.py", language="py") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/verify_domain.py" language="py" /%} **In your app's main file,** import the `verify_account_domain` function: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="from verify_domain", end_before="class XRPLMonitorThread") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="from verify_domain" before="class XRPLMonitorThread" language="py" /%} In the `XRPLMonitorThread` class, add a new `check_destination()` method to check the destination address, as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="async def check_destination", end_before="async def send_xrp") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="async def check_destination" before="async def send_xrp" language="py" /%} This code uses [`xrpl.asyncio.account.get_account_info()`](https://xrpl-py.readthedocs.io/en/stable/source/xrpl.asyncio.account.html#xrpl.asyncio.account.get_account_info) to look up the account in the ledger; unlike using the client's `request()` method, `get_account_info()` raises an exception if the account is not found. -If the account _does_ exist, the code checks for the [`lsfDisallowXRP` flag](accountroot.html#accountroot-flags). Note that this is an `lsf` (ledger state flag) value because this is an object from the ledger state data; these are different than the flag values the [AccountSet transaction][] uses to configure the same settings. +If the account _does_ exist, the code checks for the [`lsfDisallowXRP` flag](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags). Note that this is an `lsf` (ledger state flag) value because this is an object from the ledger state data; these are different than the flag values the [AccountSet transaction][] uses to configure the same settings. Finally, the code decodes the account's `Domain` field, if present, and performs domain verification using the method imported above. @@ -470,23 +474,23 @@ Finally, the code decodes the account's `Domain` field, if present, and performs After this, it's time to update the `SendXRPDialog` class to make it capable of displaying these errors. You can also set a more specific upper bound for how much XRP the account can actually send. Change the constructor to take a new parameter: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="def __init__(self, parent, max_send=100000000.0)", end_before="wx.Dialog.__init__") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="def __init__(self, parent, max_send=100000000.0)" before="wx.Dialog.__init__" language="py" /%} Add some icon widgets to the UI, also in the `SendXRPDialog` constructor: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="# Icons to indicate", end_before="lbl_to =") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="# Icons to indicate" before="lbl_to =" language="py" /%} Still in the `SendXRPDialog` constructor, add a maximum value to the line that creates the `self.txt_amt` widget: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="self.txt_amt =", end_before="self.txt_amt.SetDigits(6)") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="self.txt_amt =" before="self.txt_amt.SetDigits(6)" language="py" /%} Don't forget to add all the new widgets to the `SendXRPDialog`'s sizer so they fit in the right places. Update the `BulkAdd` call in the constructor as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="sizer.BulkAdd(((lbl_to,", end_before="sizer.Fit(self)") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="sizer.BulkAdd(((lbl_to," before="sizer.Fit(self)" language="py" /%} Next, refactor the `on_to_edit()` handler in the `SendXRPDialog` class to perform more checks, including the new background check on the destination address. The updated handler should be as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="def on_to_edit", end_before="def on_dest_tag_edit") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="def on_to_edit" before="def on_dest_tag_edit" language="py" /%} In addition to starting the background check, this handler does some checks immediately. Any check that doesn't require getting data from the network is probably fast enough to run directly in the handler; if the check requires network access, you have to run it in the worker thread instead. @@ -501,23 +505,23 @@ The code shows the error icons when it finds errors (and hides them when it does Moving on, you also need a new method in the `SendXRPDialog` class to process the results from the background check. Add the following code: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="def update_dest_info", end_before="class TWaXLFrame") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="def update_dest_info" before="class TWaXLFrame" language="py" /%} This code takes the dictionary passed by the `check_destination()` and uses it to update various widgets in the Send XRP dialog's GUI. You need to make a few small updates to configure the maximum send amount in the Send XRP dialog. Start by adding these lines to the `TWaXLFrame` class's constructor: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="# This account's total XRP reserve", end_before="self.build_ui()") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="# This account's total XRP reserve" before="self.build_ui()" language="py" /%} Then modify the `update_account()` method of the `TWaXLFrame` to save the latest calculated reserve. Modify the last few lines to look like this: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="# Display account reserve and", end_before="def enable_readwrite") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="# Display account reserve and" before="def enable_readwrite" language="py" /%} Finally, calculate the maximum amount the user can send and provide it to the Send XRP dialog. Modify **the beginning of the `click_send_xrp()` handler** as follows: -{{ include_code("_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py", language="py", start_with="xrp_bal = Decimal", end_before="dlg.CenterOnScreen()") }} +{% code-snippet file="/_code-samples/build-a-desktop-wallet/py/6_verification_and_polish.py" from="xrp_bal = Decimal" before="dlg.CenterOnScreen()" language="py" /%} -The formula this code uses to calculate the maximum amount the user can send is the account's XRP balance, minus its [reserve](reserves.html) and minus the [transaction cost](transaction-cost.html). The calculation uses the `Decimal` class to avoid rounding errors, but ultimately it has to be converted down to a `float` because that's what wxPython's [`wx.SpinCtrlDouble`](https://docs.wxpython.org/wx.SpinCtrlDouble.html) accepts for minimum and maximum values. Still there is less opportunity for floating-point rounding errors to occur if the conversion happens _after_ the other calculations. +The formula this code uses to calculate the maximum amount the user can send is the account's XRP balance, minus its [reserve](../../concepts/accounts/reserves.md) and minus the [transaction cost](../../concepts/transactions/transaction-cost.md). The calculation uses the `Decimal` class to avoid rounding errors, but ultimately it has to be converted down to a `float` because that's what wxPython's [`wx.SpinCtrlDouble`](https://docs.wxpython.org/wx.SpinCtrlDouble.html) accepts for minimum and maximum values. Still there is less opportunity for floating-point rounding errors to occur if the conversion happens _after_ the other calculations. Test your wallet app the same way you did in the previous steps. To test domain verification, try entering the following addresses in the "To" box of the Send XRP dialog: @@ -541,13 +545,10 @@ To test X-addresses, try the following addresses: Now that you have a functional wallet, you can take it in several new directions. The following are a few ideas: -- You could support more of the XRP Ledger's [transaction types](transaction-types.html) including [tokens](issued-currencies.html) and [cross-currency payments](cross-currency-payments.html) - - Example code for displaying token balances and other objects: [`7_owned_objects.py`]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/build-a-desktop-wallet/py/7_owned_objects.py) -- Allow the user to trade in the [decentralized exchange](decentralized-exchange.html) +- You could support more of the XRP Ledger's [transaction types](../../references/protocol/transactions/types/index.md) including [tokens](../../concepts/tokens/index.md) and [cross-currency payments](../../concepts/payment-types/cross-currency-payments.md) + - Example code for displaying token balances and other objects: {% repo-link path="content/_code-samples/build-a-desktop-wallet/py/7_owned_objects.py" %}`7_owned_objects.py`{% /repo-link %} +- Allow the user to trade in the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md) - Add a way to request payments, such as with QR codes or URIs that open in your wallet. -- Support better account security including [regular key pairs](cryptographic-keys.html#regular-key-pair) or [multi-signing](multi-signing.html). +- Support better account security including [regular key pairs](../../concepts/accounts/cryptographic-keys.md#regular-key-pair) or [multi-signing](../../concepts/accounts/multi-signing.md). - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/get-started-using-http-websocket-apis.md b/content/tutorials/get-started/get-started-using-http-websocket-apis.md index 1969511a93..3956702903 100644 --- a/content/tutorials/get-started/get-started-using-http-websocket-apis.md +++ b/content/tutorials/get-started/get-started-using-http-websocket-apis.md @@ -11,30 +11,30 @@ showcase_icon: assets/img/logos/globe.svg --- # Get Started Using HTTP / WebSocket APIs -If you don't have or don't want to use a [client library](client-libraries.html) in your preferred programming language, you can access the XRP Ledger directly through the APIs of its core server software, [`rippled`](xrpl-servers.html). The server provides APIs over JSON-RPC and WebSocket protocols. If you don't [run your own instance of `rippled`](install-rippled.html) you can still use a [public server][public servers]. +If you don't have or don't want to use a [client library](../../references/client-libraries.md) in your preferred programming language, you can access the XRP Ledger directly through the APIs of its core server software, [`rippled`](../../concepts/networks-and-servers/index.md). The server provides APIs over JSON-RPC and WebSocket protocols. If you don't [run your own instance of `rippled`](../../infrastructure/installation/index.md) you can still use a [public server][public servers]. -**Tip:** You can dive right into the API with the [**WebSocket API Tool**](websocket-api-tool.html), or use the [XRP Ledger Explorer](https://livenet.xrpl.org/) to watch the progress of the ledger live. +**Tip:** You can dive right into the API with the [**WebSocket API Tool**](/resources/dev-tools/websocket-api-tool), or use the [XRP Ledger Explorer](https://livenet.xrpl.org/) to watch the progress of the ledger live. ## Differences Between JSON-RPC and WebSocket Both JSON-RPC and WebSocket are HTTP-based protocols, and for the most part the data provided over both protocols is the same. The major differences are as follows: - JSON-RPC uses individual HTTP requests and responses for each call, similar to a RESTful API. You can use any common HTTP client such as [curl](https://curl.se/), [Postman](https://www.postman.com/downloads/), or [Requests](https://requests.readthedocs.io/) to access this API. -- WebSocket uses a persistent connection that allows the server to push data to the client. Functions that require push messages, like [event subscriptions](subscribe.html), are only available using WebSocket. +- WebSocket uses a persistent connection that allows the server to push data to the client. Functions that require push messages, like [event subscriptions](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md), are only available using WebSocket. Both APIs can be served unencrypted (`http://` and `ws://`) or encrypted using TLS (`https://` and `wss://`). Unencrypted connections should not be served over open networks, but can be used when the client is on the same machine as the server. ## Admin Access -The API methods are divided into [Public Methods](public-api-methods.html) and [Admin Methods](admin-api-methods.html) so that organizations can offer public servers for the benefit of the community. To access admin methods, or admin functionality of public methods, you must connect to the API on a **port and IP address marked as admin** in the server's config file. +The API methods are divided into [Public Methods](../../references/http-websocket-apis/public-api-methods/index.md) and [Admin Methods](../../references/http-websocket-apis/admin-api-methods/index.md) so that organizations can offer public servers for the benefit of the community. To access admin methods, or admin functionality of public methods, you must connect to the API on a **port and IP address marked as admin** in the server's config file. The [example config file](https://github.com/XRPLF/rippled/blob/f00f263852c472938bf8e993e26c7f96f435935c/cfg/rippled-example.cfg#L1154-L1179) listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin. ## WebSocket API -If you are looking to try out some methods on the XRP Ledger, you can skip writing your own WebSocket code and go straight to using the API at the [WebSocket API Tool](websocket-api-tool.html). Later on, when you want to connect to your own `rippled` server, you can [build your own client](monitor-incoming-payments-with-websocket.html) or use a [client library](client-libraries.html) with WebSocket support. +If you are looking to try out some methods on the XRP Ledger, you can skip writing your own WebSocket code and go straight to using the API at the [WebSocket API Tool](/resources/dev-tools/websocket-api-tool). Later on, when you want to connect to your own `rippled` server, you can [build your own client](monitor-incoming-payments-with-websocket.md) or use a [client library](../../references/client-libraries.md) with WebSocket support. Example WebSocket API request: @@ -48,7 +48,7 @@ Example WebSocket API request: The response shows you the current status of the server. -Read more: [Request Formatting >](request-formatting.html) [Response Formatting >](response-formatting.html) [About the server_info method >][server_info method] +Read more: [Request Formatting >](../../references/http-websocket-apis/api-conventions/request-formatting.md) [Response Formatting >](../../references/http-websocket-apis/api-conventions/response-formatting.md) [About the server_info method >][server_info method] ## JSON-RPC @@ -72,7 +72,7 @@ Content-Type: application/json The response shows you the current status of the server. -Read more: [Request Formatting >](request-formatting.html#json-rpc-format) [Response Formatting >](response-formatting.html) [About the server_info method >][server_info method] +Read more: [Request Formatting >](../../references/http-websocket-apis/api-conventions/request-formatting.md#json-rpc-format) [Response Formatting >](../../references/http-websocket-apis/api-conventions/response-formatting.md) [About the server_info method >][server_info method] ## Commandline @@ -84,7 +84,7 @@ Example commandline request: rippled --conf=/etc/opt/ripple/rippled.cfg server_info ``` -Read more: [Commandline Usage Reference >](commandline-usage.html) +Read more: [Commandline Usage Reference >](../../infrastructure/commandline-usage.md) **Caution:** The commandline interface is intended for administrative purposes only and is _not a supported API_. New versions of `rippled` may introduce breaking changes to the commandline API without warning! @@ -92,24 +92,21 @@ Read more: [Commandline Usage Reference >](commandline-usage.html) For a full list of API methods, see: -- [Public `rippled` Methods](public-api-methods.html): Methods available on public servers, including looking up data from the ledger and submitting transactions. -- [Admin `rippled` Methods](admin-api-methods.html): Methods for [managing](manage-the-rippled-server.html) the `rippled` server. +- [Public `rippled` Methods](../../references/http-websocket-apis/public-api-methods/index.md): Methods available on public servers, including looking up data from the ledger and submitting transactions. +- [Admin `rippled` Methods](../../references/http-websocket-apis/admin-api-methods/index.md): Methods for [managing](../../infrastructure/installation/install-rippled-on-ubuntu.md) the `rippled` server. ## See Also - **Concepts:** - - [XRP Ledger Overview](xrp-ledger-overview.html) - - [Client Libraries](client-libraries.html) - - [Parallel Networks](parallel-networks.html) + - [XRP Ledger Overview](/about/) + - [Client Libraries](../../references/client-libraries.md) + - [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) - **Tutorials:** - - [Get Started Using JavaScript](get-started-using-javascript.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Manage the rippled Server](manage-the-rippled-server.html) + - [Get Started Using JavaScript](get-started-using-javascript.md) + - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) + - [Manage the rippled Server](../../infrastructure/installation/install-rippled-on-ubuntu.md) - **References:** - - [rippled API Reference](http-websocket-apis.html) + - [rippled API Reference](../../references/http-websocket-apis/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/get-started-using-java.md b/content/tutorials/get-started/get-started-using-java.md index cfb95d1b6c..1ee6a179d9 100644 --- a/content/tutorials/get-started/get-started-using-java.md +++ b/content/tutorials/get-started/get-started-using-java.md @@ -24,7 +24,7 @@ In this tutorial, you'll learn: * The basic building blocks of XRP Ledger-based applications. * How to connect to the XRP Ledger using `xrpl4j`. -* How to get an account on the [Testnet](xrp-testnet-faucet.html) using `xrpl4j`. +* How to get an account on the [Testnet](/resources/dev-tools/xrp-faucets) using `xrpl4j`. * How to use the `xrpl4j` library to look up information about an account on the XRP Ledger. * How to put these steps together to create a Java app. @@ -76,7 +76,7 @@ Check out the [xrpl4j sample project](https://github.com/XRPLF/xrpl4j-sample) fo ## Start Building -When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](accounts.html), integrating with the [decentralized exchange](decentralized-exchange.html), or [issuing tokens](tokens.html). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. +When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](../../concepts/accounts/accounts.md), integrating with the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md), or [issuing tokens](../../concepts/tokens/index.md). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. Here are the basic steps you'll need to cover for almost any XRP Ledger project: @@ -90,31 +90,35 @@ Here are the basic steps you'll need to cover for almost any XRP Ledger project: To make queries and submit transactions, you need to connect to the XRP Ledger. To do this with `xrpl4j`, you can use an [`XrplClient`](https://javadoc.io/doc/org.xrpl/xrpl4j-client/3.0.1/org/xrpl/xrpl4j/client/XrplClient.html): -{{ include_code("_code-samples/get-started/java/GetAccountInfo.java", start_with="// Construct a network client", end_before="// Create a random KeyPair", language="java") }} +{% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" from="// Construct a network client" before="// Create a random KeyPair" language="java" /%} #### Connect to the production XRP Ledger -The sample code in the previous section shows you how to connect to the Testnet, which is one of the available [parallel networks](parallel-networks.html). When you're ready to integrate with the production XRP Ledger, you'll need to connect to the Mainnet. You can do that in two ways: +The sample code in the previous section shows you how to connect to the Testnet, which is one of the available [parallel networks](../../concepts/networks-and-servers/parallel-networks.md). When you're ready to integrate with the production XRP Ledger, you'll need to connect to the Mainnet. You can do that in two ways: -* By [installing the core server](install-rippled.html) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](connect-your-rippled-to-the-xrp-test-net.html). [There are good reasons to run your own core server](networks-and-servers.html#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: +* By [installing the core server](../../infrastructure/installation/index.md) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). [There are good reasons to run your own core server](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: - final HttpUrl rippledUrl = HttpUrl.get("http://localhost:5005/"); - XrplClient xrplClient = new XrplClient(rippledUrl); + ``` + final HttpUrl rippledUrl = HttpUrl.get("http://localhost:5005/"); + XrplClient xrplClient = new XrplClient(rippledUrl); + ``` See the example [core server config file](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562) for more information about default values. * By using one of the available [public servers][]: - final HttpUrl rippledUrl = HttpUrl.get("https://s2.ripple.com:51234/"); - XrplClient xrplClient = new XrplClient(rippledUrl); + ``` + final HttpUrl rippledUrl = HttpUrl.get("https://s2.ripple.com:51234/"); + XrplClient xrplClient = new XrplClient(rippledUrl); + ``` ### 2. Get account -To store value and execute transactions on the XRP Ledger, you need to get an account: a [set of keys](cryptographic-keys.html#key-components) and an [address](addresses.html) that's been [funded with enough XRP](accounts.html#creating-accounts) to meet the [account reserve](reserves.html). The address is the identifier of your account and you use the [private key](cryptographic-keys.html#private-key) to sign transactions that you submit to the XRP Ledger. For production purposes, you should take care to store your keys and set up a [secure signing method](secure-signing.html). +To store value and execute transactions on the XRP Ledger, you need to get an account: a [set of keys](../../concepts/accounts/cryptographic-keys.md#key-components) and an [address](../../concepts/accounts/addresses.md) that's been [funded with enough XRP](../../concepts/accounts/accounts.md#creating-accounts) to meet the [account reserve](../../concepts/accounts/reserves.md). The address is the identifier of your account and you use the [private key](../../concepts/accounts/cryptographic-keys.md#private-key) to sign transactions that you submit to the XRP Ledger. For production purposes, you should take care to store your keys and set up a [secure signing method](../../concepts/transactions/secure-signing.md). To generate a new account, `xrpl4j` provides the [`DefaultWalletFactory`](https://javadoc.io/doc/org.xrpl/xrpl4j-keypairs/latest/org/xrpl/xrpl4j/wallet/DefaultWalletFactory.html). -{{ include_code("_code-samples/get-started/java/GetAccountInfo.java", start_with="// Create a random KeyPair", end_before="// Derive the Classic and X-Addresses from testWallet", language="java") }} +{% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" from="// Create a random KeyPair" before="// Derive the Classic and X-Addresses from testWallet" language="java" /%} The result of a call to `walletFactory.randomWallet(true).wallet()` is a [`Wallet` instance](https://javadoc.io/doc/org.xrpl/xrpl4j-keypairs/latest/org/xrpl/xrpl4j/wallet/Wallet.html): @@ -132,17 +136,17 @@ Wallet { } ``` -For testing and development purposes, you can use a `FaucetClient` connected to the XRP Ledger [Testnet](parallel-networks.html): +For testing and development purposes, you can use a `FaucetClient` connected to the XRP Ledger [Testnet](../../concepts/networks-and-servers/parallel-networks.md): -{{ include_code("_code-samples/get-started/java/GetAccountInfo.java", start_with="// Fund the account using the testnet Faucet", end_before="// Look up your Account Info", language="java") }} +{% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" from="// Fund the account using the testnet Faucet" before="// Look up your Account Info" language="java" /%} ### 3. Query the XRP Ledger -You can query the XRP Ledger to get information about [a specific account](account-methods.html), [a specific transaction](tx.html), the state of a [current or a historical ledger](ledger-methods.html), and [the XRP Ledger's decentralized exchange](path-and-order-book-methods.html). You need to make these queries, among other reasons, to look up account info to follow best practices for [reliable transaction submission](reliable-transaction-submission.html). +You can query the XRP Ledger to get information about [a specific account](../../references/http-websocket-apis/public-api-methods/account-methods/index.md), [a specific transaction](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md), the state of a [current or a historical ledger](../../references/http-websocket-apis/public-api-methods/ledger-methods/index.md), and [the XRP Ledger's decentralized exchange](../../references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md). You need to make these queries, among other reasons, to look up account info to follow best practices for [reliable transaction submission](../../concepts/transactions/reliable-transaction-submission.md). Here, we'll use the [`XrplClient` we constructed](#1-connect-to-the-xrp-ledger) to look up information about the [account we got](#2-get-account) in the previous step. -{{ include_code("_code-samples/get-started/java/GetAccountInfo.java", start_with="// Look up your Account Info", end_before="// Print the result", language="java") }} +{% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" from="// Look up your Account Info" before="// Print the result" language="java" /%} ### 4. Putting it all together @@ -154,9 +158,7 @@ Using these building blocks, we can create a Java app that: 3. Looks up and prints information about the account you created. -```java -{% include '_code-samples/get-started/java/GetAccountInfo.java' %} -``` +{% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" language="java" /%} To run the app, you can download the code from [Github](https://github.com/XRPLF/xrpl4j-sample) and run `GetAccountInfo` either from your IDE or from the command line. @@ -208,22 +210,18 @@ The response fields contained in `AccountInfoResult` that you want to inspect in * `accountData.sequence` — This is the sequence number of the next valid transaction for the account. You need to specify the sequence number when you prepare transactions. -* `accountData.balance` — This is the account's balance of XRP, in drops. You can use this to confirm that you have enough XRP to send (if you're making a payment) and to meet the [current transaction cost](transaction-cost.html#current-transaction-cost) for a given transaction. +* `accountData.balance` — This is the account's balance of XRP, in drops. You can use this to confirm that you have enough XRP to send (if you're making a payment) and to meet the [current transaction cost](../../concepts/transactions/transaction-cost.md#current-transaction-cost) for a given transaction. -* `validated` — Indicates whether the returned data is from a [validated ledger](open-closed-validated-ledgers.html). When inspecting transactions, it's important to confirm that [the results are final](finality-of-results.html) before further processing the transaction. If `validated` is `true` then you know for sure the results won't change. For more information about best practices for transaction processing, see [Reliable Transaction Submission](reliable-transaction-submission.html). +* `validated` — Indicates whether the returned data is from a [validated ledger](../../concepts/ledgers/open-closed-validated-ledgers.md). When inspecting transactions, it's important to confirm that [the results are final](../../concepts/transactions/finality-of-results/index.md) before further processing the transaction. If `validated` is `true` then you know for sure the results won't change. For more information about best practices for transaction processing, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md). -For a detailed description of every response field, see [account_info](account_info.html#response-format). +For a detailed description of every response field, see [account_info](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md#response-format). ## Keep on building Now that you know how to use `xrpl4j` to connect to the XRP Ledger, get an account, and look up information about it, you can also use `xrpl4j` to: -* [Send XRP](send-xrp.html). -* [Set up secure signing](secure-signing.html) for your account. +* [Send XRP](send-xrp.md). +* [Set up secure signing](../../concepts/transactions/secure-signing.md) for your account. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/get-started-using-javascript.md b/content/tutorials/get-started/get-started-using-javascript.md index d6de86099a..37392ea3d8 100644 --- a/content/tutorials/get-started/get-started-using-javascript.md +++ b/content/tutorials/get-started/get-started-using-javascript.md @@ -12,7 +12,7 @@ showcase_icon: assets/img/logos/javascript.svg This tutorial guides you through the basics of building an XRP Ledger-connected application in JavaScript or TypeScript using the [`xrpl.js`](https://github.com/XRPLF/xrpl.js/) client library in either Node.js or web browsers. -The scripts and config files used in this guide are [available in this website's GitHub Repository]({{target.github_forkurl}}/tree/{{target.github_branch}}/content/_code-samples/get-started/js/). +The scripts and config files used in this guide are {% repo-link path="content/_code-samples/get-started/js/" %}available in this website's GitHub Repository{% /repo-link %}. ## Learning Goals @@ -21,7 +21,7 @@ In this tutorial, you'll learn: * The basic building blocks of XRP Ledger-based applications. * How to connect to the XRP Ledger using `xrpl.js`. -* How to get an account on the [Testnet](xrp-testnet-faucet.html) using `xrpl.js`. +* How to get an account on the [Testnet](/resources/dev-tools/xrp-faucets) using `xrpl.js`. * How to use the `xrpl.js` library to look up information about an account on the XRP Ledger. * How to put these steps together to create a JavaScript app or web-app. @@ -42,7 +42,7 @@ npm install xrpl ## Start Building -When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](accounts.html), integrating with the [decentralized exchange](decentralized-exchange.html), or [issuing tokens](tokens.html). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. +When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](../../concepts/accounts/accounts.md), integrating with the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md), or [issuing tokens](../../concepts/tokens/index.md). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. Here are some steps you use in many XRP Ledger projects: @@ -89,32 +89,36 @@ To make queries and submit transactions, you need to connect to the XRP Ledger. **Tip:** Many network functions in `xrpl.js` use [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) to return values asynchronously. The code samples here use the [`async/await` pattern](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await) to wait for the actual result of the Promises. -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} #### Connect to the XRP Ledger Mainnet -The sample code in the previous section shows you how to connect to the Testnet, which is one of the available [parallel networks](parallel-networks.html). When you're ready to move to production, you'll need to connect to the XRP Ledger Mainnet. You can do that in two ways: +The sample code in the previous section shows you how to connect to the Testnet, which is one of the available [parallel networks](../../concepts/networks-and-servers/parallel-networks.md). When you're ready to move to production, you'll need to connect to the XRP Ledger Mainnet. You can do that in two ways: -* By [installing the core server](install-rippled.html) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](connect-your-rippled-to-the-xrp-test-net.html). [There are good reasons to run your own core server](networks-and-servers.html#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: +* By [installing the core server](../../infrastructure/installation/index.md) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). [There are good reasons to run your own core server](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: - const MY_SERVER = "ws://localhost:6006/" - const client = new xrpl.Client(MY_SERVER) - await client.connect() + ``` + const MY_SERVER = "ws://localhost:6006/" + const client = new xrpl.Client(MY_SERVER) + await client.connect() + ``` See the example [core server config file](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562) for more information about default values. * By using one of the available [public servers][]: - const PUBLIC_SERVER = "wss://xrplcluster.com/" - const client = new xrpl.Client(PUBLIC_SERVER) - await client.connect() + ``` + const PUBLIC_SERVER = "wss://xrplcluster.com/" + const client = new xrpl.Client(PUBLIC_SERVER) + await client.connect() + ``` ### 3. Get Account The `xrpl.js` library has a `Wallet` class for handling the keys and address of an XRP Ledger account. On Testnet, you can fund a new account like this: -{{ include_code("_code-samples/get-started/js/get-acct-info.js", start_with="// Create a wallet", end_before="// Get info", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Create a wallet" before="// Get info" language="js" /%} If you only want to generate keys, you can create a new `Wallet` instance like this: @@ -130,42 +134,39 @@ const test_wallet = xrpl.Wallet.fromSeed("sn3nxiW7v8KXzPzAqzyHXbSSKNuN9") // Tes ### 4. Query the XRP Ledger -Use the Client's `request()` method to access the XRP Ledger's [WebSocket API](request-formatting.html). For example: +Use the Client's `request()` method to access the XRP Ledger's [WebSocket API](../../references/http-websocket-apis/api-conventions/request-formatting.md). For example: -{{ include_code("_code-samples/get-started/js/get-acct-info.js", start_with="// Get info", end_before="// Listen to ledger close events", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Get info" before="// Listen to ledger close events" language="js" /%} ### 5. Listen for Events -You can set up handlers for various types of events in `xrpl.js`, such as whenever the XRP Ledger's [consensus process](consensus.html) produces a new [ledger version](ledgers.html). To do that, first call the [subscribe method][] to get the type of events you want, then attach an event handler using the `on(eventType, callback)` method of the client. +You can set up handlers for various types of events in `xrpl.js`, such as whenever the XRP Ledger's [consensus process](../../concepts/consensus-protocol/index.md) produces a new [ledger version](../../concepts/ledgers/index.md). To do that, first call the [subscribe method][] to get the type of events you want, then attach an event handler using the `on(eventType, callback)` method of the client. -{{ include_code("_code-samples/get-started/js/get-acct-info.js", start_with="// Listen to ledger close events", end_before="// Disconnect when done", language="js") }} +{% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Listen to ledger close events" before="// Disconnect when done" language="js" /%} ## Keep on Building Now that you know how to use `xrpl.js` to connect to the XRP Ledger, get an account, and look up information about it, you can also: -* [Send XRP](send-xrp.html). -* [Issue a Fungible Token](issue-a-fungible-token.html) -* [Set up secure signing](secure-signing.html) for your account. +* [Send XRP](send-xrp.md). +* [Issue a Fungible Token](../use-tokens/issue-a-fungible-token.md) +* [Set up secure signing](../../concepts/transactions/secure-signing.md) for your account. ## See Also - **Concepts:** - - [XRP Ledger Overview](xrp-ledger-overview.html) - - [Client Libraries](client-libraries.html) + - [XRP Ledger Overview](/about/) + - [Client Libraries](../../references/client-libraries.md) - **Tutorials:** - - [Send XRP](send-xrp.html) + - [Send XRP](send-xrp.md) - **References:** - [`xrpl.js` Reference](https://js.xrpl.org/) - - [Public API Methods](public-api-methods.html) - - [API Conventions](api-conventions.html) - - [base58 Encodings](base58-encodings.html) - - [Transaction Formats](transaction-formats.html) + - [Public API Methods](../../references/http-websocket-apis/public-api-methods/index.md) + - [API Conventions](../../references/http-websocket-apis/api-conventions/index.md) + - [base58 Encodings](../../references/protocol/data-types/base58-encodings.md) + - [Transaction Formats](../../references/protocol/transactions/index.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/get-started-using-php.md b/content/tutorials/get-started/get-started-using-php.md index 51cec3e162..630e4a1939 100644 --- a/content/tutorials/get-started/get-started-using-php.md +++ b/content/tutorials/get-started/get-started-using-php.md @@ -24,7 +24,7 @@ In this tutorial, you'll learn: * The basic building blocks of XRP Ledger-based applications. * How to connect to the XRP Ledger using `XRPL_PHP`. -* How to get an account on the [Testnet](xrp-testnet-faucet.html) using `XRPL_PHP`. +* How to get an account on the [Testnet](/resources/dev-tools/xrp-faucets) using `XRPL_PHP`. * How to use the `XRPL_PHP` library to look up information about an account on the XRP Ledger. * How to put these steps together to create a simple application. @@ -44,7 +44,7 @@ composer require hardcastle/xrpl_php ## Start Building -When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](accounts.html), integrating with the [decentralized exchange](decentralized-exchange.html), or [issuing tokens](tokens.html). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. +When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](../../concepts/accounts/accounts.md), integrating with the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md), or [issuing tokens](../../concepts/tokens/index.md). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. Here are the basic steps you'll need to cover for almost any XRP Ledger project: @@ -74,27 +74,31 @@ Note that PHP has no native support for WebSockets, so the Client does not estab #### Connect to the production XRP Ledger -The sample code in the previous section shows you how to connect to the Testnet, which is one of the available [parallel networks](parallel-networks.html). When you're ready to integrate with the production XRP Ledger, you'll need to connect to the Mainnet. You can do that in two ways: +The sample code in the previous section shows you how to connect to the Testnet, which is one of the available [parallel networks](../../concepts/networks-and-servers/parallel-networks.md). When you're ready to integrate with the production XRP Ledger, you'll need to connect to the Mainnet. You can do that in two ways: -* By [installing the core server](install-rippled.html) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](connect-your-rippled-to-the-xrp-test-net.html). [There are good reasons to run your own core server](networks-and-servers.html#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: +* By [installing the core server](../../infrastructure/installation/index.md) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). [There are good reasons to run your own core server](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: - use XRPL_PHP\Client\JsonRpcClient; + ``` + use XRPL_PHP\Client\JsonRpcClient; - const LOCAL_JSON_RPC_URL = "http://localhost:5005/"; - $client = new JsonRpcClient("LOCAL_JSON_RPC_URL"); + const LOCAL_JSON_RPC_URL = "http://localhost:5005/"; + $client = new JsonRpcClient("LOCAL_JSON_RPC_URL"); + ``` See the example [core server config file](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562) for more information about default values. * By using one of the available [public servers][]: - use XRPL_PHP\Client\JsonRpcClient; + ``` + use XRPL_PHP\Client\JsonRpcClient; - const MAINNET_JSON_RPC_URL = "https://s2.ripple.com:51234/"; - $client = new JsonRpcClient("MAINNET_JSON_RPC_URL"); + const MAINNET_JSON_RPC_URL = "https://s2.ripple.com:51234/"; + $client = new JsonRpcClient("MAINNET_JSON_RPC_URL"); + ``` ### 2. Get account -To store value and execute transactions on the XRP Ledger, you need to get an account: a [set of keys](cryptographic-keys.html#key-components) and an [address](addresses.html) that's been [funded with enough XRP](accounts.html#creating-accounts) to meet the [account reserve](reserves.html). The address is the identifier of your account and you use the [private key](cryptographic-keys.html#private-key) to sign transactions that you submit to the XRP Ledger. For production purposes, you should take care to store your keys and set up a [secure signing method](secure-signing.html). +To store value and execute transactions on the XRP Ledger, you need to get an account: a [set of keys](../../concepts/accounts/cryptographic-keys.md#key-components) and an [address](../../concepts/accounts/addresses.md) that's been [funded with enough XRP](../../concepts/accounts/accounts.md#creating-accounts) to meet the [account reserve](../../concepts/accounts/reserves.md). The address is the identifier of your account and you use the [private key](../../concepts/accounts/cryptographic-keys.md#private-key) to sign transactions that you submit to the XRP Ledger. For production purposes, you should take care to store your keys and set up a [secure signing method](../../concepts/transactions/secure-signing.md). To generate a new account, `PHP_XRPL` provides the static `generate()` method in the `Wallet` class: @@ -133,17 +137,17 @@ print_r([ ``` -For testing and development purposes, you can use the `fundWallet()` helper function on the XRP Ledger [Testnet](parallel-networks.html): +For testing and development purposes, you can use the `fundWallet()` helper function on the XRP Ledger [Testnet](../../concepts/networks-and-servers/parallel-networks.md): -{{ include_code("_code-samples/get-started/php/get-account-info.php", start_with=" -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/get-started-using-python.md b/content/tutorials/get-started/get-started-using-python.md index f46a02258c..885e229c9e 100644 --- a/content/tutorials/get-started/get-started-using-python.md +++ b/content/tutorials/get-started/get-started-using-python.md @@ -21,7 +21,7 @@ In this tutorial, you'll learn: * The basic building blocks of XRP Ledger-based applications. * How to connect to the XRP Ledger using `xrpl-py`. -* How to get an account on the [Testnet](xrp-testnet-faucet.html) using `xrpl-py`. +* How to get an account on the [Testnet](/resources/dev-tools/xrp-faucets) using `xrpl-py`. * How to use the `xrpl-py` library to look up information about an account on the XRP Ledger. * How to put these steps together to create a Python app. @@ -41,7 +41,7 @@ pip3 install xrpl-py ## Start Building -When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](accounts.html), integrating with the [decentralized exchange](decentralized-exchange.html), or [issuing tokens](tokens.html). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. +When you're working with the XRP Ledger, there are a few things you'll need to manage, whether you're adding XRP to your [account](../../concepts/accounts/accounts.md), integrating with the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md), or [issuing tokens](../../concepts/tokens/index.md). This tutorial walks you through basic patterns common to getting started with all of these use cases and provides sample code for implementing them. Here are the basic steps you'll need to cover for almost any XRP Ledger project: @@ -54,36 +54,40 @@ Here are the basic steps you'll need to cover for almost any XRP Ledger project: To make queries and submit transactions, you need to connect to the XRP Ledger. To do this with `xrpl-py`, use the [`xrp.clients` module](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.clients.html): -{{ include_code("_code-samples/get-started/py/get-acct-info.py", start_with="# Define the network client", end_before="# Create a wallet using the testnet faucet:", language="py") }} +{% code-snippet file="/_code-samples/get-started/py/get-acct-info.py" from="# Define the network client" before="# Create a wallet using the testnet faucet:" language="py" /%} #### Connect to the production XRP Ledger -The sample code in the previous section shows you how to connect to the Testnet, which is a [parallel network](parallel-networks.html) for testing where the money has no real value. When you're ready to integrate with the production XRP Ledger, you'll need to connect to the Mainnet. You can do that in two ways: +The sample code in the previous section shows you how to connect to the Testnet, which is a [parallel network](../../concepts/networks-and-servers/parallel-networks.md) for testing where the money has no real value. When you're ready to integrate with the production XRP Ledger, you'll need to connect to the Mainnet. You can do that in two ways: -* By [installing the core server](install-rippled.html) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](connect-your-rippled-to-the-xrp-test-net.html). [There are good reasons to run your own core server](networks-and-servers.html#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: +* By [installing the core server](../../infrastructure/installation/index.md) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). [There are good reasons to run your own core server](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: - from xrpl.clients import JsonRpcClient - JSON_RPC_URL = "http://localhost:5005/" - client = JsonRpcClient(JSON_RPC_URL) + ``` + from xrpl.clients import JsonRpcClient + JSON_RPC_URL = "http://localhost:5005/" + client = JsonRpcClient(JSON_RPC_URL) + ``` See the example [core server config file](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562) for more information about default values. * By using one of the available [public servers][]: - from xrpl.clients import JsonRpcClient - JSON_RPC_URL = "https://s2.ripple.com:51234/" - client = JsonRpcClient(JSON_RPC_URL) + ``` + from xrpl.clients import JsonRpcClient + JSON_RPC_URL = "https://s2.ripple.com:51234/" + client = JsonRpcClient(JSON_RPC_URL) + ``` ### 2. Get account -To store value and execute transactions on the XRP Ledger, you need an account: a [set of keys](cryptographic-keys.html#key-components) and an [address](addresses.html) that's been [funded with enough XRP](accounts.html#creating-accounts) to meet the [account reserve](reserves.html). The address is the identifier of your account and you use the [private key](cryptographic-keys.html#private-key) to sign transactions that you submit to the XRP Ledger. +To store value and execute transactions on the XRP Ledger, you need an account: a [set of keys](../../concepts/accounts/cryptographic-keys.md#key-components) and an [address](../../concepts/accounts/addresses.md) that's been [funded with enough XRP](../../concepts/accounts/accounts.md#creating-accounts) to meet the [account reserve](../../concepts/accounts/reserves.md). The address is the identifier of your account and you use the [private key](../../concepts/accounts/cryptographic-keys.md#private-key) to sign transactions that you submit to the XRP Ledger. -For testing and development purposes, you can use the [XRP Faucets](xrp-testnet-faucet.html) to generate keys and fund the account on the Testnet or Devnet. For production purposes, you should take care to store your keys and set up a [secure signing method](secure-signing.html). Another difference in production is that XRP has real worth, so you can't get it for free from a faucet. +For testing and development purposes, you can use the [XRP Faucets](/resources/dev-tools/xrp-faucets) to generate keys and fund the account on the Testnet or Devnet. For production purposes, you should take care to store your keys and set up a [secure signing method](../../concepts/transactions/secure-signing.md). Another difference in production is that XRP has real worth, so you can't get it for free from a faucet. To create and fund an account on the Testnet, `xrpl-py` provides the [`generate_faucet_wallet`](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.wallet.html#xrpl.wallet.generate_faucet_wallet) method: -{{ include_code("_code-samples/get-started/py/get-acct-info.py", start_with="# Create a wallet using the testnet faucet:", end_before="# Create an account str from the wallet", language="py") }} +{% code-snippet file="/_code-samples/get-started/py/get-acct-info.py" from="# Create a wallet using the testnet faucet:" before="# Create an account str from the wallet" language="py" /%} This method returns a [`Wallet` instance](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.wallet.html#xrpl.wallet.Wallet): @@ -107,7 +111,7 @@ In this tutorial we only query details about the generated account from the XRP To prepare the transaction: -{{ include_code("_code-samples/get-started/py/prepare-payment.py", start_with="# Prepare payment", end_before="# print prepared payment", language="py") }} +{% code-snippet file="/_code-samples/get-started/py/prepare-payment.py" from="# Prepare payment" before="# print prepared payment" language="py" /%} @@ -115,26 +119,26 @@ To prepare the transaction: To sign and submit the transaction: -{{ include_code("_code-samples/get-started/py/prepare-payment.py", start_with="# Sign and submit the transaction", end_before="# Print tx response", language="py") }} +{% code-snippet file="/_code-samples/get-started/py/prepare-payment.py" from="# Sign and submit the transaction" before="# Print tx response" language="py" /%} ##### Derive an X-address You can use `xrpl-py`'s [`xrpl.core.addresscodec`](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.core.addresscodec.html) module to derive an [X-address](https://xrpaddress.info/) from the `Wallet.address` field: -{{ include_code("_code-samples/get-started/py/get-acct-info.py", start_with="# Derive an x-address from the classic address:", end_before="# Look up info about your account", language="py") }} +{% code-snippet file="/_code-samples/get-started/py/get-acct-info.py" from="# Derive an x-address from the classic address:" before="# Look up info about your account" language="py" /%} The X-address format [packs the address and destination tag](https://github.com/XRPLF/XRPL-Standards/issues/6) into a more user-friendly value. ### 3. Query the XRP Ledger -You can query the XRP Ledger to get information about [a specific account](account-methods.html), [a specific transaction](tx.html), the state of a [current or a historical ledger](ledger-methods.html), and [the XRP Ledger's decentralized exchange](path-and-order-book-methods.html). You need to make these queries, among other reasons, to look up account info to follow best practices for [reliable transaction submission](reliable-transaction-submission.html). +You can query the XRP Ledger to get information about [a specific account](../../references/http-websocket-apis/public-api-methods/account-methods/index.md), [a specific transaction](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md), the state of a [current or a historical ledger](../../references/http-websocket-apis/public-api-methods/ledger-methods/index.md), and [the XRP Ledger's decentralized exchange](../../references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md). You need to make these queries, among other reasons, to look up account info to follow best practices for [reliable transaction submission](../../concepts/transactions/reliable-transaction-submission.md). Here, we use `xrpl-py`'s [`xrpl.account`](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.account.html) module to look up information about the [account we got](#2-get-account) in the previous step. -{{ include_code("_code-samples/get-started/py/get-acct-info.py", start_with="# Look up info about your account", language="py") }} +{% code-snippet file="/_code-samples/get-started/py/get-acct-info.py" from="# Look up info about your account" language="py" /%} @@ -147,9 +151,7 @@ Using these building blocks, we can create a Python app that: 3. Looks up and prints information about the account you created. -```python -{% include '_code-samples/get-started/py/get-acct-info.py' %} -``` +{% code-snippet file="/_code-samples/get-started/py/get-acct-info.py" language="python" /%} To run the app, you can copy and paste the code into an editor or IDE and run it from there. Or you could download the file from the [XRP Ledger Dev Portal repo](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/get-started/py) and run it locally: @@ -196,22 +198,18 @@ The response fields that you want to inspect in most cases are: * `account_data.Sequence` — This is the sequence number of the next valid transaction for the account. You need to specify the sequence number when you prepare transactions. With `xrpl-py`, you can use the [`get_next_valid_seq_number`](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.account.html#xrpl.account.get_next_valid_seq_number) to get this automatically from the XRP Ledger. See an example of this usage in the project [README](https://github.com/XRPLF/xrpl-py#serialize-and-sign-transactions). -* `account_data.Balance` — This is the account's balance of [XRP, in drops][]. You can use this to confirm that you have enough XRP to send (if you're making a payment) and to meet the [current transaction cost](transaction-cost.html#current-transaction-cost) for a given transaction. +* `account_data.Balance` — This is the account's balance of [XRP, in drops][]. You can use this to confirm that you have enough XRP to send (if you're making a payment) and to meet the [current transaction cost](../../concepts/transactions/transaction-cost.md#current-transaction-cost) for a given transaction. -* `validated` — Indicates whether the returned data is from a [validated ledger](open-closed-validated-ledgers.html). When inspecting transactions, it's important to confirm that [the results are final](finality-of-results.html) before further processing the transaction. If `validated` is `true` then you know for sure the results won't change. For more information about best practices for transaction processing, see [Reliable Transaction Submission](reliable-transaction-submission.html). +* `validated` — Indicates whether the returned data is from a [validated ledger](../../concepts/ledgers/open-closed-validated-ledgers.md). When inspecting transactions, it's important to confirm that [the results are final](../../concepts/transactions/finality-of-results/index.md) before further processing the transaction. If `validated` is `true` then you know for sure the results won't change. For more information about best practices for transaction processing, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md). -For a detailed description of every response field, see [account_info](account_info.html#response-format). +For a detailed description of every response field, see [account_info](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md#response-format). ## Keep on building Now that you know how to use `xrpl-py` to connect to the XRP Ledger, get an account, and look up information about it, you can also use `xrpl-py` to: -* [Send XRP](send-xrp.html). -* [Set up secure signing](secure-signing.html) for your account. +* [Send XRP](send-xrp.md). +* [Set up secure signing](../../concepts/transactions/secure-signing.md) for your account. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/monitor-incoming-payments-with-websocket.md b/content/tutorials/get-started/monitor-incoming-payments-with-websocket.md index 95afb7384d..ec2f6cb7c6 100644 --- a/content/tutorials/get-started/monitor-incoming-payments-with-websocket.md +++ b/content/tutorials/get-started/monitor-incoming-payments-with-websocket.md @@ -9,7 +9,7 @@ labels: --- # Monitor Incoming Payments with WebSocket -This tutorial shows how to monitor for incoming [payments](payment-types.html) using the [WebSocket API](http-websocket-apis.html). Since all XRP Ledger transactions are public, anyone can monitor incoming payments to any address. +This tutorial shows how to monitor for incoming [payments](../../concepts/payment-types/index.md) using the [WebSocket API](../../references/http-websocket-apis/index.md). Since all XRP Ledger transactions are public, anyone can monitor incoming payments to any address. WebSocket follows a model where the client and server open one connection, then send messages both ways through the same connection, which stays open until explicitly closed (or until the connection fails). This is in contrast to the HTTP-based API model (including JSON-RPC and RESTful APIs), where the client opens and closes a new connection for each request.[¹](#footnote-1) @@ -18,8 +18,8 @@ WebSocket follows a model where the client and server open one connection, then ## Prerequisites - The examples in this page use JavaScript and the WebSocket protocol, which are available in all major modern browsers. If you have some JavaScript knowledge and expertise in another programming language with a WebSocket client, you can follow along while adapting the instructions to the language of your choice. -- You need a stable internet connection and access to an XRP Ledger server. The embedded examples connect to Ripple's pool of public servers. If you [run your own `rippled` or Clio server](install-rippled.html), you can also connect to that server locally. -- To properly handle XRP values without rounding errors, you need access to a number type that can do math on 64-bit unsigned integers. The examples in this tutorial use [big.js](https://github.com/MikeMcl/big.js/). If you are working with [tokens](tokens.html), you need even more precision. For more information, see [Currency Precision](currency-formats.html#xrp-precision). +- You need a stable internet connection and access to an XRP Ledger server. The embedded examples connect to Ripple's pool of public servers. If you [run your own `rippled` or Clio server](../../infrastructure/installation/index.md), you can also connect to that server locally. +- To properly handle XRP values without rounding errors, you need access to a number type that can do math on 64-bit unsigned integers. The examples in this tutorial use [big.js](https://github.com/MikeMcl/big.js/). If you are working with [tokens](../../concepts/tokens/index.md), you need even more precision. For more information, see [Currency Precision](../../references/protocol/data-types/currency-formats.md#xrp-precision). @@ -62,13 +62,13 @@ socket.addEventListener('close', (event) => { }) ``` -The above example opens a secure connection (`wss://`) to one of Ripple's public API servers on the [Test Net](xrp-test-net-faucet.html). To connect to a locally-running `rippled` server with the default configuration instead, open an _unsecured_ connection (`ws://`) on port **6006** locally, using the following first line: +The above example opens a secure connection (`wss://`) to one of Ripple's public API servers on the [Test Net](/resources/dev-tools/xrp-faucets). To connect to a locally-running `rippled` server with the default configuration instead, open an _unsecured_ connection (`ws://`) on port **6006** locally, using the following first line: ```js const socket = new WebSocket('ws://localhost:6006') ``` -**Tip:** By default, connecting to a local `rippled` server gives you access to the full set of [admin methods](admin-api-methods.html) and admin-only data in some responses such as [server_info][server_info method], plus the [public methods](public-api-methods.html) that are available when you connect to public servers over the internet. +**Tip:** By default, connecting to a local `rippled` server gives you access to the full set of [admin methods](../../references/http-websocket-apis/admin-api-methods/index.md) and admin-only data in some responses such as [server_info][server_info method], plus the [public methods](../../references/http-websocket-apis/public-api-methods/index.md) that are available when you connect to public servers over the internet. Example: @@ -118,11 +118,11 @@ Since WebSocket connections can have several messages going each way and there i - An `id` field that matches the `id` provided in the request this is a response for. (This is important because responses may arrive out of order.) - - A `status` field that indicates whether the API successfully processed your request. The string value `success` indicates [a successful response](response-formatting.html). The string value `error` indicates [an error](error-formatting.html). + - A `status` field that indicates whether the API successfully processed your request. The string value `success` indicates [a successful response](../../references/http-websocket-apis/api-conventions/response-formatting.md). The string value `error` indicates [an error](../../references/http-websocket-apis/api-conventions/error-formatting.md). - **Warning:** When submitting transactions, a `status` of `success` at the top level of the WebSocket message does not mean that the transaction itself succeeded. It only indicates that the server understood your request. For looking up a transaction's actual outcome, see [Look Up Transaction Results](look-up-transaction-results.html). + **Warning:** When submitting transactions, a `status` of `success` at the top level of the WebSocket message does not mean that the transaction itself succeeded. It only indicates that the server understood your request. For looking up a transaction's actual outcome, see [Look Up Transaction Results](../../concepts/transactions/finality-of-results/look-up-transaction-results.md). -- For follow-up messages from [subscriptions](subscribe.html), the `type` indicates the type of follow-up message it is, such as the notification of a new transaction, ledger, or validation; or a follow-up to an ongoing [pathfinding request](path_find.html). Your client only receives these messages if it subscribes to them. +- For follow-up messages from [subscriptions](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md), the `type` indicates the type of follow-up message it is, such as the notification of a new transaction, ledger, or validation; or a follow-up to an ongoing [pathfinding request](../../references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md). Your client only receives these messages if it subscribes to them. **Tip:** The [xrpl.js library for JavaScript](https://js.xrpl.org/) handles this step by default. All asynchronous API requests use Promises to provide the response, and you can listen to streams using the `.on(event, callback)` method of the `Client`. @@ -288,7 +288,7 @@ const log_tx = function(tx) { WS_HANDLERS["transaction"] = log_tx ``` -For the following example, try opening the [Transaction Sender](tx-sender.html) in a different window or even on a different device and sending transactions to the address you subscribed to: +For the following example, try opening the [Transaction Sender](/resources/dev-tools/tx-sender) in a different window or even on a different device and sending transactions to the address you subscribed to: {{ start_step("Subscribe") }} @@ -332,33 +332,31 @@ WS_HANDLERS["transaction"] = log_tx ## 4. Read Incoming Payments -When you subscribe to an account, you get messages for _all transactions to or from the account_, as well as _transactions that affect the account indirectly_, such as trading its [tokens](tokens.html). If your goal is to recognize when the account has received incoming payments, you must filter the transactions stream and process the payments based on the amount they actually delivered. Look for the following information: +When you subscribe to an account, you get messages for _all transactions to or from the account_, as well as _transactions that affect the account indirectly_, such as trading its [tokens](../../concepts/tokens/index.md). If your goal is to recognize when the account has received incoming payments, you must filter the transactions stream and process the payments based on the amount they actually delivered. Look for the following information: -- The **`validated` field** indicates that the transaction's outcome is [final](finality-of-results.html). This should always be the case when you subscribe to `accounts`, but if you _also_ subscribe to `accounts_proposed` or the `transactions_proposed` stream then the server sends similar messages on the same connection for unconfirmed transactions. As a precaution, it's best to always check the `validated` field. -- The **`meta.TransactionResult` field** is the [transaction result](transaction-results.html). If the result is not `tesSUCCESS`, the transaction failed and cannot have delivered any value. +- The **`validated` field** indicates that the transaction's outcome is [final](../../concepts/transactions/finality-of-results/index.md). This should always be the case when you subscribe to `accounts`, but if you _also_ subscribe to `accounts_proposed` or the `transactions_proposed` stream then the server sends similar messages on the same connection for unconfirmed transactions. As a precaution, it's best to always check the `validated` field. +- The **`meta.TransactionResult` field** is the [transaction result](../../references/protocol/transactions/transaction-results/transaction-results.md). If the result is not `tesSUCCESS`, the transaction failed and cannot have delivered any value. - The **`transaction.Account`** field is the sender of the transaction. If you are only looking for transactions sent by others, you can ignore any transactions where this field matches your account's address. (Keep in mind, it _is_ possible to make a cross-currency payment to yourself.) - The **`transaction.TransactionType` field** is the type of transaction. The transaction types that can possibly deliver currency to an account are as follows: - - **[Payment transactions][]** can deliver XRP or [tokens](tokens.html). Filter these by the `transaction.Destination` field, which contains the address of the recipient, and always use the `meta.delivered_amount` to see how much the payment actually delivered. XRP amounts are [formatted as strings](basic-data-types.html#specifying-currency-amounts). + - **[Payment transactions][]** can deliver XRP or [tokens](../../concepts/tokens/index.md). Filter these by the `transaction.Destination` field, which contains the address of the recipient, and always use the `meta.delivered_amount` to see how much the payment actually delivered. XRP amounts are [formatted as strings](../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts). - **Warning:** If you use the `transaction.Amount` field instead, you may be vulnerable to the [partial payments exploit](partial-payments.html#partial-payments-exploit). Malicious users can use this exploit to trick you into allowing the malicious user to trade or withdraw more money than they paid you. + **Warning:** If you use the `transaction.Amount` field instead, you may be vulnerable to the [partial payments exploit](../../concepts/payment-types/partial-payments.md#partial-payments-exploit). Malicious users can use this exploit to trick you into allowing the malicious user to trade or withdraw more money than they paid you. - **[CheckCash transactions][]** allow an account to receive money authorized by a different account's [CheckCreate transaction][]. Look at the metadata of a **CheckCash transaction** to see how much currency the account received. - - **[EscrowFinish transactions][]** can deliver XRP by finishing an [Escrow](escrow.html) created by a previous [EscrowCreate transaction][]. Look at the metadata of the **EscrowFinish transaction** to see which account received XRP from the escrow and how much. + - **[EscrowFinish transactions][]** can deliver XRP by finishing an [Escrow](../../concepts/payment-types/escrow.md) created by a previous [EscrowCreate transaction][]. Look at the metadata of the **EscrowFinish transaction** to see which account received XRP from the escrow and how much. - - **[OfferCreate transactions][]** can deliver XRP or tokens by consuming offers your account has previously placed in the XRP Ledger's [decentralized exchange](decentralized-exchange.html). If you never place offers, you cannot receive money this way. Look at the metadata to see what currency the account received, if any, and how much. + - **[OfferCreate transactions][]** can deliver XRP or tokens by consuming offers your account has previously placed in the XRP Ledger's [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md). If you never place offers, you cannot receive money this way. Look at the metadata to see what currency the account received, if any, and how much. - - **[PaymentChannelClaim transactions][]** can deliver XRP from a [payment channel](payment-channels.html). Look at the metadata to see which accounts, if any, received XRP from the transaction. + - **[PaymentChannelClaim transactions][]** can deliver XRP from a [payment channel](../../concepts/payment-types/payment-channels.md). Look at the metadata to see which accounts, if any, received XRP from the transaction. - **[PaymentChannelFund transactions][]** can return XRP from a closed (expired) payment channel to the sender. -- The **`meta` field** contains [transaction metadata](transaction-metadata.html), including exactly how much of which currency or currencies was delivered where. See [Look Up transaction Results](look-up-transaction-results.html) for more information on how to understand transaction metadata. +- The **`meta` field** contains [transaction metadata](../../references/protocol/transactions/metadata.md), including exactly how much of which currency or currencies was delivered where. See [Look Up transaction Results](../../concepts/transactions/finality-of-results/look-up-transaction-results.md) for more information on how to understand transaction metadata. The following sample code looks at transaction metadata of all the above transaction types to report how much XRP an account received: -```js -{% include '_code-samples/monitor-payments-websocket/js/read-amount-received.js' %} -``` +{% code-snippet file="/_code-samples/monitor-payments-websocket/js/read-amount-received.js" language="js" /%} {{ start_step("Read Payments") }} @@ -463,30 +461,26 @@ $("#tx_read").click((event) => { ## Next Steps -- [Look Up Transaction Results](look-up-transaction-results.html) to see exactly what a transaction did, and build your software to react appropriately. -- Try [Sending XRP](send-xrp.html) from your own address. -- Try monitoring for transactions of advanced types like [Escrows](escrow.html), [Checks](checks.html), or [Payment Channels](payment-channels.html), and responding to incoming notifications. +- [Look Up Transaction Results](../../concepts/transactions/finality-of-results/look-up-transaction-results.md) to see exactly what a transaction did, and build your software to react appropriately. +- Try [Sending XRP](send-xrp.md) from your own address. +- Try monitoring for transactions of advanced types like [Escrows](../../concepts/payment-types/escrow.md), [Checks](../../concepts/payment-types/checks.md), or [Payment Channels](../../concepts/payment-types/payment-channels.md), and responding to incoming notifications. ## Other Programming Languages Many programming languages have libraries for sending and receiving data over a WebSocket connection. If you want a head-start on communicating with `rippled`'s WebSocket API in a language other than JavaScript, the following examples show how: - +{% tabs %} -_Go_ +{% tab label="Go" %} +{% code-snippet file="/_code-samples/monitor-payments-websocket/go/monitor-incoming-payments.go" language="go" /%} +{% /tab %} -```go -{% include '_code-samples/monitor-payments-websocket/go/monitor-incoming-payments.go' %} -``` +{% tab label="Python" %} +{% code-snippet file="/_code-samples/monitor-payments-websocket/py/monitor_incoming.py" language="py" /%} +{% /tab %} -_Python_ - -```py -{% include '_code-samples/monitor-payments-websocket/py/monitor_incoming.py' %} -``` - - +{% /tabs %} **Tip:** Don't see the programming language of your choice? Click the "Edit on GitHub" link at the top of this page and contribute your own sample code! @@ -498,18 +492,14 @@ _Python_ ## See Also - **Concepts:** - - [Transactions](transactions.html) - - [Finality of Results](finality-of-results.html) - How to know when a transaction's success or failure is final. (Short version: if a transaction is in a validated ledger, its outcome and metadata are final.) + - [Transactions](../../concepts/transactions/index.md) + - [Finality of Results](../../concepts/transactions/finality-of-results/index.md) - How to know when a transaction's success or failure is final. (Short version: if a transaction is in a validated ledger, its outcome and metadata are final.) - **Tutorials:** - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Look Up Transaction Results](look-up-transaction-results.html) + - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) + - [Look Up Transaction Results](../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - **References:** - - [Transaction Types](transaction-types.html) - - [Transaction Metadata](transaction-metadata.html) - Summary of the metadata format and fields that appear in metadata - - [Transaction Results](transaction-results.html) - Tables of all possible result codes for transactions. + - [Transaction Types](../../references/protocol/transactions/types/index.md) + - [Transaction Metadata](../../references/protocol/transactions/metadata.md) - Summary of the metadata format and fields that appear in metadata + - [Transaction Results](../../references/protocol/transactions/transaction-results/transaction-results.md) - Tables of all possible result codes for transactions. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/public-servers.md b/content/tutorials/get-started/public-servers.md index b9b5af9336..1cf9def0b1 100644 --- a/content/tutorials/get-started/public-servers.md +++ b/content/tutorials/get-started/public-servers.md @@ -7,20 +7,20 @@ labels: --- # Public Servers -If you don't [run your own `rippled` server](install-rippled.html), you can use the following public servers to submit transactions or read data from the ledger. +If you don't [run your own `rippled` server](../../infrastructure/installation/index.md), you can use the following public servers to submit transactions or read data from the ledger. | Operator | [Network][] | JSON-RPC URL | WebSocket URL | Notes | |:----------|:------------|:-------------|:--------------|:---------------------| | XRP Ledger Foundation | **Mainnet** | `https://xrplcluster.com/`
          `https://xrpl.ws/` [²][] | `wss://xrplcluster.com/`
          `wss://xrpl.ws/` [²][] | Full history server cluster with CORS support. | | Ripple[¹][] | **Mainnet** | `https://s1.ripple.com:51234/` | `wss://s1.ripple.com/` | General purpose server cluster | -| Ripple[¹][] | **Mainnet** | `https://s2.ripple.com:51234/` | `wss://s2.ripple.com/` | [Full-history server](ledger-history.html#full-history) cluster | +| Ripple[¹][] | **Mainnet** | `https://s2.ripple.com:51234/` | `wss://s2.ripple.com/` | [Full-history server](../../concepts/networks-and-servers/ledger-history.md#full-history) cluster | | Ripple[¹][] | Testnet | `https://s.altnet.rippletest.net:51234/` | `wss://s.altnet.rippletest.net:51233/` | Testnet public server | | XRPL Labs | Testnet | `https://testnet.xrpl-labs.com/` | `wss://testnet.xrpl-labs.com/` | Testnet public server with CORS support | | Ripple[¹][] | Devnet | `https://s.devnet.rippletest.net:51234/` | `wss://s.devnet.rippletest.net:51233/` | Devnet public server | | Ripple[¹][] | Sidechain-Devnet | `https://sidechain-net2.devnet.rippletest.net:51234/` | `wss://sidechain-net2.devnet.rippletest.net:51233/` | Sidechain Devnet to test cross-chain bridge features. Devnet serves as the locking chain while this sidechain serves as the issuing chain. | | XRPL Labs | Xahau Testnet | `https://xahau-test.net/` | `wss://xahau-test.net/` | [Hooks-enabled](https://hooks.xrpl.org/) Xahau Testnet | -[Network]: parallel-networks.html +[Network]: ../../concepts/networks-and-servers/parallel-networks.md [¹]: #footnote-1 [²]: #footnote-2 @@ -28,7 +28,4 @@ If you don't [run your own `rippled` server](install-rippled.html), you can use ² `xrpl.ws` is an alias for `xrplcluster.com`. However, the `.ws` top-level domain's reliability may be unsuitable for production uses. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/get-started/send-xrp.md b/content/tutorials/get-started/send-xrp.md index 5f0abbc111..549646320c 100644 --- a/content/tutorials/get-started/send-xrp.md +++ b/content/tutorials/get-started/send-xrp.md @@ -13,7 +13,7 @@ top_nav_grouping: Popular Pages --- # Send XRP -This tutorial explains how to send a direct XRP Payment using `xrpl.js` for JavaScript, `xrpl-py` for Python, `xrpl4j` for Java or `XRPL_PHP` for PHP. First, we step through the process with the [XRP Ledger Testnet](parallel-networks.html). Then, we compare that to the additional requirements for doing the equivalent in production. +This tutorial explains how to send a direct XRP Payment using `xrpl.js` for JavaScript, `xrpl-py` for Python, `xrpl4j` for Java or `XRPL_PHP` for PHP. First, we step through the process with the [XRP Ledger Testnet](../../concepts/networks-and-servers/parallel-networks.md). Then, we compare that to the additional requirements for doing the equivalent in production. **Tip:** Check out the [Code Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples) for a complete version of the code used in this tutorial. @@ -25,10 +25,10 @@ This tutorial explains how to send a direct XRP Payment using `xrpl.js` for Java To interact with the XRP Ledger, you need to set up a dev environment with the necessary tools. This tutorial provides examples using the following options: -- **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. -- **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](get-started-using-python.html) for setup steps. -- **Java** with the [xrpl4j library](https://github.com/XRPLF/xrpl4j). See [Get Started Using Java](get-started-using-java.html) for setup steps. -- **PHP** with the [XRPL_PHP library](https://github.com/AlexanderBuzz/xrpl-php). See [Get Started Using PHP](get-started-using-php.html) for setup steps. +- **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.md) for setup steps. +- **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](get-started-using-python.md) for setup steps. +- **Java** with the [xrpl4j library](https://github.com/XRPLF/xrpl4j). See [Get Started Using Java](get-started-using-java.md) for setup steps. +- **PHP** with the [XRPL_PHP library](https://github.com/AlexanderBuzz/xrpl-php). See [Get Started Using PHP](get-started-using-php.md) for setup steps. ## Send a Payment on the Test Net @@ -37,67 +37,67 @@ To interact with the XRP Ledger, you need to set up a dev environment with the n To transact on the XRP Ledger, you need an address and secret key, and some XRP. The address and secret key look like this: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Example credentials" before="// Connect" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Example credentials", end_before="// Connect", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" before="# Connect" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" before="// Connect" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", end_before="# Connect", language="py") }} +{% tab label="PHP" %} +{% code-snippet file="/_code-samples/send-xrp/php/send-xrp.php" from="// Example credentials" before="// Create" language="php" /%} +{% /tab %} -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", end_before="// Connect", language="java") }} - -_PHP_ - -{{ include_code("_code-samples/send-xrp/php/send-xrp.php", start_with="// Example credentials", end_before="// Create", language="php") }} - - +{% /tabs %} The secret key shown here is for example only. For development purposes, you can get your own credentials, pre-funded with XRP, on the Testnet using the following interface: -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](secure-signing.html). +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). ### 2. Connect to a Testnet Server -First, you must connect to an XRP Ledger server so you can get the current status of your account and the shared ledger. You can use this information to [automatically fill in some required fields of a transaction](transaction-common-fields.html#auto-fillable-fields). You also must be connected to the network to submit transactions to it. +First, you must connect to an XRP Ledger server so you can get the current status of your account and the shared ledger. You can use this information to [automatically fill in some required fields of a transaction](../../references/protocol/transactions/common-fields.md#auto-fillable-fields). You also must be connected to the network to submit transactions to it. The following code connects to a public Testnet servers: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Connect" before="# Get credentials" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Connect" before="// Prepare transaction" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Connect", end_before="# Get credentials", language="py") }} +{% tab label="PHP" %} +{% code-snippet file="/_code-samples/send-xrp/php/send-xrp.php" from="// Create a client" before="// Transaction definition" language="php" /%} +{% /tab %} -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Connect", end_before="// Prepare transaction", language="java") }} - -_PHP_ - -{{ include_code("_code-samples/send-xrp/php/send-xrp.php", start_with="// Create a client", end_before="// Transaction definition", language="php") }} - - +{% /tabs %} For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### 3. Prepare Transaction -Typically, we create XRP Ledger transactions as objects in the JSON [transaction format](transaction-formats.html). The following example shows a minimal Payment specification: +Typically, we create XRP Ledger transactions as objects in the JSON [transaction format](../../references/protocol/transactions/index.md). The following example shows a minimal Payment specification: ```json { @@ -125,26 +125,25 @@ Technically, a transaction must contain some additional fields, and certain opti Here's an example of preparing the above payment: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Prepare" before="// Sign" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Prepare", end_before="// Sign", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Prepare" before="# Sign" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Prepare" before="// Sign" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Prepare", end_before="# Sign", language="py" ) }} +{% tab label="PHP" %} +{% code-snippet file="/_code-samples/send-xrp/php/send-xrp.php" from="// Transaction definition" before="// Sign" language="php" /%} +{% /tab %} -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Prepare", end_before="// Sign", language="java") }} - -_PHP_ - -{{ include_code("_code-samples/send-xrp/php/send-xrp.php", start_with="// Transaction definition", end_before="// Sign", language="php") }} - - - +{% /tabs %} {{ start_step("Prepare") }}
          @@ -173,32 +172,27 @@ Signing a transaction uses your credentials to authorize the transaction on your - **Java:** Use a [`SignatureService`](https://javadoc.io/doc/org.xrpl/xrpl4j-crypto-core/latest/org/xrpl/xrpl4j/crypto/signing/SignatureService.html) instance to sign the transaction. For this tutorial, use the [`SingleKeySignatureService`](https://javadoc.io/doc/org.xrpl/xrpl4j-crypto-bouncycastle/latest/org/xrpl/xrpl4j/crypto/signing/SingleKeySignatureService.html). - **PHP:** Use a [`sign()` method of a `Wallet` instance](https://alexanderbuzz.github.io/xrpl-php-docs/wallet.html#signing-a-transaction) instance to sign the transaction. The input to this step is a completed array of transaction instructions. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Sign" before="// Submit" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", - start_with="// Sign", end_before="// Submit", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Sign" before="# Submit" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Sign" before="// Submit" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", - start_with="# Sign", end_before="# Submit", language="py" ) }} +{% tab label="PHP" %} +{% code-snippet file="/_code-samples/send-xrp/php/send-xrp.php" from="// Sign" before="// Submit" language="php" /%} +{% /tab %} -_Java_ +{% /tabs %} -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", - start_with="// Sign", end_before="// Submit", language="java" ) }} - - -_PHP_ - -{{ include_code("_code-samples/send-xrp/php/send-xrp.php", -start_with="// Sign", end_before="// Submit", language="php" ) }} - - - -The result of the signing operation is a transaction object containing a signature. Typically, XRP Ledger APIs expect a signed transaction to be the hexadecimal representation of the transaction's canonical [binary format](serialization.html), called a "blob". +The result of the signing operation is a transaction object containing a signature. Typically, XRP Ledger APIs expect a signed transaction to be the hexadecimal representation of the transaction's canonical [binary format](../../references/protocol/binary-format.md), called a "blob". - In `xrpl.js`, the signing API also returns the transaction's ID, or identifying hash, which you can use to look up the transaction later. This is a 64-character hexadecimal string that is unique to this transaction. - In `xrpl-py`, you can get the transaction's hash in the response to submitting it in the next step. @@ -221,23 +215,25 @@ Now that you have a signed transaction, you can submit it to an XRP Ledger serve - **Java:** Use the [`XrplClient.submit(SignedTransaction)` method](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#submit(org.xrpl.xrpl4j.crypto.signing.SignedTransaction)) to submit a transaction to the network. Use the [`XrplClient.ledger()`](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#ledger(org.xrpl.xrpl4j.model.client.ledger.LedgerRequestParams)) method to get the latest validated ledger index. - **PHP:** Use the [`submitAndWait()` method of the Client](https://alexanderbuzz.github.io/xrpl-php-docs/client.html) to submit a transaction to the network and wait for the response. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Submit" before="// Wait" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Submit", end_before="// Wait", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Submit" before="# Wait" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Submit" before="// Wait" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Submit", end_before="# Wait", language="py") }} +{% tab label="PHP" %} +{% code-snippet file="/_code-samples/send-xrp/php/send-xrp.php" from="// Submit" before="// Wait" language="php" /%} +{% /tab %} -_Java_ -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Submit", end_before="// Wait", language="java" ) }} - -_PHP_ -{{ include_code("_code-samples/send-xrp/php/send-xrp.php", start_with="// Submit", end_before="// Wait", language="php" ) }} - - +{% /tabs %} This method returns the **tentative** result of trying to apply the transaction to the open ledger. This result _can_ change when the transaction is included in a validated ledger: transactions that succeed initially might ultimately fail, and transactions that fail initially might ultimately succeed. Still, the tentative result often matches the final result, so it's OK to get excited if you see `tesSUCCESS` here. 😁 @@ -245,10 +241,10 @@ If you see any other result, you should check the following: - Are you using the correct addresses for the sender and destination? - Did you forget any other fields of the transaction, skip any steps, or make any other typos? -- Do you have enough Test XRP to send the transaction? The amount of XRP you can send is limited by the [reserve requirement](reserves.html), which is currently 10 XRP with an additional 2 XRP for each "object" you own in the ledger. (If you generated a new address with the Testnet Faucet, you don't own any objects.) +- Do you have enough Test XRP to send the transaction? The amount of XRP you can send is limited by the [reserve requirement](../../concepts/accounts/reserves.md), which is currently 10 XRP with an additional 2 XRP for each "object" you own in the ledger. (If you generated a new address with the Testnet Faucet, you don't own any objects.) - Are you connected to a server on the test network? -See the full list of [transaction results](transaction-results.html) for more possibilities. +See the full list of [transaction results](../../references/protocol/transactions/transaction-results/transaction-results.md) for more possibilities. {{ start_step("Submit") }} ### 6. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For more information on expiration of unconfirmed transactions, see [Reliable Transaction Submission](reliable-transaction-submission.html).) +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For more information on expiration of unconfirmed transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) - **JavaScript:** If you used the [`.submitAndWait()` method](https://js.xrpl.org/classes/Client.html#submitAndWait), you can wait until the returned Promise resolves. Other, more asynchronous approaches are also possible. @@ -270,28 +266,28 @@ Most transactions are accepted into the next ledger version after they're submit - **PHP:** If you used the [`.submitAndWait()` method](https://alexanderbuzz.github.io/xrpl-php-docs/client.html), you can wait until the returned Promise resolves. Other, more asynchronous approaches are also possible. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Wait" before="// Check" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Wait", end_before="// Check", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Wait" before="# Check" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Wait" before="// Check" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Wait", end_before="# Check", language="py") }} +{% tab label="PHP" %} +{% code-snippet file="/_code-samples/send-xrp/php/send-xrp.php" from="// Wait" before="// Check" language="php" /%} +{% /tab %} -_Java_ - -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Wait", end_before="// Check", language="java" ) }} - -_PHP_ - -{{ include_code("_code-samples/send-xrp/php/send-xrp.php", start_with="// Wait", end_before="// Check", language="php" ) }} - - +{% /tabs %} {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -303,33 +299,33 @@ To know for sure what a transaction did, you must look up the outcome of the tra **Tip:** In **TypeScript** you can pass a [`TxRequest`](https://js.xrpl.org/interfaces/TxRequest.html) to the [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) method. -- **Python:** Use the response from [`submit_and_wait()`](https://xrpl-py.readthedocs.io/en/stable/source/xrpl.transaction.html#xrpl.transaction.submit_and_wait) or call the [`xrpl.transaction.get_transaction_from_hash()` method](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.transaction.html#xrpl.transaction.get_transaction_from_hash). (See the [tx method response format](tx.html#response-format) for a detailed reference of the fields this can contain.) +- **Python:** Use the response from [`submit_and_wait()`](https://xrpl-py.readthedocs.io/en/stable/source/xrpl.transaction.html#xrpl.transaction.submit_and_wait) or call the [`xrpl.transaction.get_transaction_from_hash()` method](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.transaction.html#xrpl.transaction.get_transaction_from_hash). (See the [tx method response format](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md#response-format) for a detailed reference of the fields this can contain.) - **Java:** Use the [`XrplClient.transaction()`](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#transaction(org.xrpl.xrpl4j.model.client.transactions.TransactionRequestParams,java.lang.Class)) method to check the status of a transaction. - **PHP:** Use the response from `submitAndWait()` or call the `tx method` using [`$client->syncRequest()`](https://alexanderbuzz.github.io/xrpl-php-docs/client.html). - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/send-xrp/js/send-xrp.js" from="// Check" before="// End of" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/js/send-xrp.js", start_with="// Check", end_before="// End of", language="js" ) }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/send-xrp/py/send-xrp.py" from="# Check" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/send-xrp/java/SendXrp.java" from="// Check" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/send-xrp/py/send-xrp.py", start_with="# Check", language="py") }} +{% tab label="PHP" %} +{% code-snippet file="/_code-samples/send-xrp/php/send-xrp.php" from="// Check" language="php" /%} +{% /tab %} -_Java_ +{% /tabs %} -{{ include_code("_code-samples/send-xrp/java/SendXrp.java", start_with="// Check", language="java" ) }} - -_PHP_ - -{{ include_code("_code-samples/send-xrp/php/send-xrp.php", start_with="// Check", language="php" ) }} - - - -**Caution:** XRP Ledger APIs may return tentative results from ledger versions that have not yet been validated. For example, in [tx method][] response, be sure to look for `"validated": true` to confirm that the data comes from a validated ledger version. Transaction results that are not from a validated ledger version are subject to change. For more information, see [Finality of Results](finality-of-results.html). +**Caution:** XRP Ledger APIs may return tentative results from ledger versions that have not yet been validated. For example, in [tx method][] response, be sure to look for `"validated": true` to confirm that the data comes from a validated ledger version. Transaction results that are not from a validated ledger version are subject to change. For more information, see [Finality of Results](../../concepts/transactions/finality-of-results/index.md). {{ start_step("Check") }} @@ -348,27 +344,26 @@ To send an XRP payment on the production XRP Ledger, the steps you take are larg This tutorial uses a button to get an address that's already funded with Test Net XRP, which only works because Test Net XRP is not worth anything. For actual XRP, you need to get XRP from someone who already has some. (For example, you might buy it on an exchange.) You can generate an address and secret that'll work on either production or the Testnet as follows: - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const wallet = new xrpl.Wallet() console.log(wallet.address) // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f console.log(wallet.seed) // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` +{% /tab %} -_Python_ - +{% tab label="Python" %} ```py from xrpl.wallet import Wallet my_wallet = Wallet.create() print(my_wallet.address) # Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f print(my_wallet.seed) # Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` +{% /tab %} -_Java_ - +{% tab label="Java" %} ```java WalletFactory walletFactory = DefaultWalletFactory.getInstance(); SeedWalletGenerationResult generationResult = walletFactory.randomWallet(false); @@ -376,9 +371,9 @@ Wallet wallet = generationResult.wallet(); System.out.println(wallet.classicAddress()); // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f System.out.println(generationResult.seed()); // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` +{% /tab %} -_PHP_ - +{% tab label="PHP" %} ```php use XRPL_PHP\Wallet\Wallet; @@ -387,86 +382,87 @@ $wallet = Wallet::generate(); print_r("Address: " . $wallet->getAddress()); // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f print_r("Seed: " . $wallet->getSeed()); // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` +{% /tab %} - +{% /tabs %} **Warning:** You should only use an address and secret that you generated securely, on your local machine. If another computer generated the address and secret and sent it to you over a network, it's possible that someone else on the network may see that information. If they do, they'll have as much control over your XRP as you do. It's also recommended not to use the same address for the Testnet and Mainnet, because transactions that you created for use on one network could also be valid to execute on the other network, depending on the parameters you provided. -Generating an address and secret doesn't get you XRP directly; you're only choosing a random number. You must also receive XRP at that address to [fund the account](accounts.html#creating-accounts). A common way to acquire XRP is to buy it from an exchange, then withdraw it to your own address. +Generating an address and secret doesn't get you XRP directly; you're only choosing a random number. You must also receive XRP at that address to [fund the account](../../concepts/accounts/accounts.md#creating-accounts). A common way to acquire XRP is to buy it from an exchange, then withdraw it to your own address. ### Connecting to the Production XRP Ledger -When you instantiate your client's connect to the XRP Ledger, you must specify a server that's synced with the appropriate [network](parallel-networks.html). For many cases, you can use [public servers](public-servers.html), such as in the following example: +When you instantiate your client's connect to the XRP Ledger, you must specify a server that's synced with the appropriate [network](../../concepts/networks-and-servers/parallel-networks.md). For many cases, you can use [public servers](public-servers.md), such as in the following example: - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const xrpl = require('xrpl') const api = new xrpl.Client('wss://xrplcluster.com') api.connect() ``` +{% /tab %} -_Python_ - +{% tab label="Python" %} ```py from xrpl.clients import JsonRpcClient client = JsonRpcClient("https://xrplcluster.com") ``` +{% /tab %} -_Java_ - +{% tab label="Java" %} ```java final HttpUrl rippledUrl = HttpUrl.get("https://xrplcluster.com"); XrplClient xrplClient = new XrplClient(rippledUrl); ``` +{% /tab %} -_PHP_ - +{% tab label="PHP" %} ``` use XRPL_PHP\Client\JsonRpcClient; $client = new JsonRpcClient("https://xrplcluster.com"); ``` +{% /tab %} +{% /tabs %} - +If you [install `rippled`](../../infrastructure/installation/index.md) yourself, it connects to the production network by default. (You can also [configure it to connect to the test net](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) instead.) After the server has synced (typically within about 15 minutes of starting it up), you can connect to it locally, which has [various benefits](../../concepts/networks-and-servers/index.md). The following example shows how to connect to a server running the default configuration: -If you [install `rippled`](install-rippled.html) yourself, it connects to the production network by default. (You can also [configure it to connect to the test net](connect-your-rippled-to-the-xrp-test-net.html) instead.) After the server has synced (typically within about 15 minutes of starting it up), you can connect to it locally, which has [various benefits](xrpl-servers.html). The following example shows how to connect to a server running the default configuration: - - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const xrpl = require('xrpl') const api = new xrpl.Client('ws://localhost:6006') api.connect() ``` +{% /tab %} -_Python_ - +{% tab label="Python" %} ```py from xrpl.clients import JsonRpcClient client = JsonRpcClient("http://localhost:5005") ``` +{% /tab %} -_Java_ - +{% tab label="Java" %} ```java final HttpUrl rippledUrl = HttpUrl.get("http://localhost:5005"); XrplClient xrplClient = new XrplClient(rippledUrl); ``` +{% /tab %} -_PHP_ +{% tab label="PHP" %} ```php use XRPL_PHP\Client\JsonRpcClient; $client = new JsonRpcClient("http://localhost:5005"); ``` +{% /tab %} - +{% /tabs %} **Tip:** The local connection uses an unencrypted protocol (`ws` or `http`) rather than the TLS-encrypted version (`wss` or `https`). This is secure only because the communications never leave the same machine, and is easier to set up because it does not require a TLS certificate. For connections on an outside network, always use `wss` or `https`. @@ -474,17 +470,12 @@ $client = new JsonRpcClient("http://localhost:5005"); After completing this tutorial, you may want to try the following: -- [Issue a token](issue-a-fungible-token.html) on the XRP Ledger Testnet. -- [Trade in the Decentralized Exchange](trade-in-the-decentralized-exchange.html). -- Build [Reliable transaction submission](reliable-transaction-submission.html) for production systems. -- Check your [client library](client-libraries.html)'s API reference for the full range of XRP Ledger functionality. -- Customize your [Account Settings](manage-account-settings.html). -- Learn how [Transaction Metadata](transaction-metadata.html) describes the outcome of a transaction in detail. -- Explore more [Payment Types](payment-types.html) such as Escrows and Payment Channels. +- [Issue a token](../use-tokens/issue-a-fungible-token.md) on the XRP Ledger Testnet. +- [Trade in the Decentralized Exchange](../use-tokens/trade-in-the-decentralized-exchange.md). +- Build [Reliable transaction submission](../../concepts/transactions/reliable-transaction-submission.md) for production systems. +- Check your [client library](../../references/client-libraries.md)'s API reference for the full range of XRP Ledger functionality. +- Customize your [Account Settings](../tasks/manage-account-settings/index.md). +- Learn how [Transaction Metadata](../../references/protocol/transactions/metadata.md) describes the outcome of a transaction in detail. +- Explore more [Payment Types](../../concepts/payment-types/index.md) such as Escrows and Payment Channels. - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/http-websocket-apis/index.md b/content/tutorials/http-websocket-apis/index.md index a84431878a..d94798d7fb 100644 --- a/content/tutorials/http-websocket-apis/index.md +++ b/content/tutorials/http-websocket-apis/index.md @@ -2,8 +2,12 @@ html: http-websocket-apis-tutorials.html parent: tutorials.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # HTTP / Websocket APIs -XRPL tutorials for HTTP / Websocket APIs. \ No newline at end of file +XRPL tutorials for HTTP / Websocket APIs. + + +{% child-pages /%} diff --git a/content/tutorials/java/index.md b/content/tutorials/java/index.md index e92ee1b269..014d7b435c 100644 --- a/content/tutorials/java/index.md +++ b/content/tutorials/java/index.md @@ -2,8 +2,12 @@ html: java.html parent: tutorials.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Java -XRPL tutorials in Java. \ No newline at end of file +XRPL tutorials in Java. + + +{% child-pages /%} diff --git a/content/tutorials/javascript/index.md b/content/tutorials/javascript/index.md index f1b32a2345..555a583973 100644 --- a/content/tutorials/javascript/index.md +++ b/content/tutorials/javascript/index.md @@ -2,8 +2,12 @@ html: javascript.html parent: tutorials.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # JavaScript -XRPL tutorials in JavaScript. \ No newline at end of file +XRPL tutorials in JavaScript. + + +{% child-pages /%} diff --git a/content/tutorials/javascript/modular-tutorials-in-javascript/index.md b/content/tutorials/javascript/modular-tutorials-in-javascript/index.md index 46f3c517bb..d46e8e7cf5 100644 --- a/content/tutorials/javascript/modular-tutorials-in-javascript/index.md +++ b/content/tutorials/javascript/modular-tutorials-in-javascript/index.md @@ -2,8 +2,12 @@ html: modular-tutorials-in-javascript.html parent: javascript.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Modular Tutorials in JavaScript -Modular XRPL tutorials in JavaScript. \ No newline at end of file +Modular XRPL tutorials in JavaScript. + + +{% child-pages /%} diff --git a/content/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md b/content/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md index 8de2862798..8468db647e 100644 --- a/content/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md +++ b/content/tutorials/javascript/modular-tutorials-in-javascript/nfts-using-javascript/index.md @@ -2,8 +2,12 @@ html: nfts-using-javascript.html parent: modular-tutorials-in-javascript.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # NFTs Using JavaScript -Mint and sell NFTs on the XRP Ledger using JavaScript. \ No newline at end of file +Mint and sell NFTs on the XRP Ledger using JavaScript. + + +{% child-pages /%} diff --git a/content/tutorials/manage-account-settings/assign-a-regular-key-pair.md b/content/tutorials/manage-account-settings/assign-a-regular-key-pair.md index f2ce290e06..4c8cff40da 100644 --- a/content/tutorials/manage-account-settings/assign-a-regular-key-pair.md +++ b/content/tutorials/manage-account-settings/assign-a-regular-key-pair.md @@ -8,9 +8,9 @@ labels: --- # Assign a Regular Key Pair -The XRP Ledger allows an account to authorize a secondary key pair, called a _[regular key pair](cryptographic-keys.html)_, to sign future transactions. If the private key of a regular key pair is compromised, you can remove or replace it without changing the rest of your [account](accounts.html) and re-establishing its relationships to other accounts. You can also rotate a regular key pair proactively. (Neither of those things is possible for the master key pair of an account, which is intrinsically linked to the account's address.) +The XRP Ledger allows an account to authorize a secondary key pair, called a _[regular key pair](../../concepts/accounts/cryptographic-keys.md)_, to sign future transactions. If the private key of a regular key pair is compromised, you can remove or replace it without changing the rest of your [account](../../concepts/accounts/accounts.md) and re-establishing its relationships to other accounts. You can also rotate a regular key pair proactively. (Neither of those things is possible for the master key pair of an account, which is intrinsically linked to the account's address.) -For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html). +For more information about master and regular key pairs, see [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md). This tutorial walks through the steps required to assign a regular key pair to your account: @@ -27,10 +27,9 @@ Generate a key pair that you'll assign to your account as a regular key pair. This key pair is the same data type as a master key pair, so you can generate it the same way: you can use the client library of your choice or use the [wallet_propose method][] of a server you run. This might look as follows: - - -_WebSocket_ +{% tabs %} +{% tab label="WebSocket" %} ```json // Request: @@ -54,9 +53,9 @@ _WebSocket_ "type": "response" } ``` +{% /tab %} -_JSON-RPC_ - +{% tab label="JSON-RPC" %} ```json // Request: @@ -79,9 +78,9 @@ _JSON-RPC_ } } ``` +{% /tab %} -_Commandline_ - +{% tab label="Commandline" %} ```sh $ rippled wallet_propose @@ -98,33 +97,34 @@ $ rippled wallet_propose } } ``` +{% /tab %} -_Python_ - +{% tab label="Python" %} ```py keypair = xrpl.wallet.Wallet.create() print("seed:", keypair.seed) print("classic address:", keypair.address) ``` +{% /tab %} -_JavaScript_ - +{% tab label="JavaScript" %} ```js const keypair = new xrpl.Wallet() console.log("seed:", keypair.seed) console.log("classic address:", keypair.classicAddress) ``` +{% /tab %} -_Java_ - +{% tab label="Java" %} ```java WalletFactory walletFactory = DefaultWalletFactory.getInstance(); Wallet keypair = walletFactory.randomWallet(true).wallet(); System.out.println(keypair); System.out.println(keypair.privateKey().get()); ``` +{% /tab %} - +{% /tabs %} In the next step, you'll use the address from this response (`account_id` in the API response) to assign the key pair as a regular key pair to your account. Also, save the seed value from this key pair (`master_seed` in the API response) somewhere securely; you'll use that key to sign transactions later. (Everything else, you can forget about.) @@ -133,15 +133,15 @@ In the next step, you'll use the address from this response (`account_id` in the Use a [SetRegularKey transaction][] to assign the key pair you generated in step 1 to your account as a regular key pair. -When assigning a regular key pair to your account for the first time, the SetRegularKey transaction requires signing with your account's master private key (secret). There are [several ways of securely signing transactions](secure-signing.html), but this tutorial uses a local `rippled` server. +When assigning a regular key pair to your account for the first time, the SetRegularKey transaction requires signing with your account's master private key (secret). There are [several ways of securely signing transactions](../../concepts/transactions/secure-signing.md), but this tutorial uses a local `rippled` server. -When you send later SetRegularKey transactions, you can sign using the existing regular private key to replace or [remove itself](change-or-remove-a-regular-key-pair.html). Note that you should still not submit your regular private key across the network. +When you send later SetRegularKey transactions, you can sign using the existing regular private key to replace or [remove itself](change-or-remove-a-regular-key-pair.md). Note that you should still not submit your regular private key across the network. ### Sign Your Transaction -{% include '_snippets/tutorial-sign-step.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + Populate the request fields with the following values: @@ -156,10 +156,9 @@ Populate the request fields with the following values: An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "sign", @@ -171,9 +170,9 @@ An example of the request format: "secret": "ssCATR7CBvn4GLd1UuU2bqqQffHki" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign", @@ -189,25 +188,25 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: sign secret tx_json rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType": "SetRegularKey", "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7"}' ``` +{% /tab %} - +{% /tabs %} #### Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -228,9 +227,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -250,9 +249,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -272,8 +271,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The `sign` command response contains a `tx_blob` value, as shown above. The offline signing response contains a `signedTransaction` value. Both are signed binary representations (blobs) of the transaction. @@ -288,19 +288,18 @@ Take the `signedTransaction` value from the offline signing response or the `tx_ An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "submit", "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"submit", @@ -311,25 +310,25 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: submit tx_blob rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540 ``` +{% /tab %} - +{% /tabs %} #### Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -353,9 +352,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -378,9 +377,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -403,24 +402,25 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} -Note that the response contains a `hash` of the transaction, which you can use to [look up the transaction's final outcome](tx.html). +Note that the response contains a `hash` of the transaction, which you can use to [look up the transaction's final outcome](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md). ## 3. Verify the Regular Key Pair -At this point, the regular key pair is assigned to your account and you should be able to send transactions using the regular key pair. **To avoid losing control of your account,** it is important that you test your regular key before you take any additional steps such as [disabling the master key pair](disable-master-key-pair.html). If you make a mistake and lose access to your account, no one can restore it for you. +At this point, the regular key pair is assigned to your account and you should be able to send transactions using the regular key pair. **To avoid losing control of your account,** it is important that you test your regular key before you take any additional steps such as [disabling the master key pair](disable-master-key-pair.md). If you make a mistake and lose access to your account, no one can restore it for you. -To verify that your account has the regular key pair set correctly, submit an [AccountSet transaction][] from your account, signing it with the regular private key you assigned to your account in step 2. As in step 1, this tutorial uses a local `rippled` server as a [way of securely signing transactions](secure-signing.html). +To verify that your account has the regular key pair set correctly, submit an [AccountSet transaction][] from your account, signing it with the regular private key you assigned to your account in step 2. As in step 1, this tutorial uses a local `rippled` server as a [way of securely signing transactions](../../concepts/transactions/secure-signing.md). ### Sign Your Transaction -{% include '_snippets/tutorial-sign-step.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + Populate the request fields with the following values: @@ -435,10 +435,9 @@ Populate the request fields with the following values: Here's an example of the request format. Note that the request does not include any `AccountSet` options. This means that a successful transaction has no effect other than to confirm that the regular key pair is set correctly for your account (and to destroy the transaction cost). - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "sign", @@ -449,9 +448,9 @@ Here's an example of the request format. Note that the request does not include "secret": "sh8i92YRnEjJy3fpFkL8txQSCVo79" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign", @@ -466,25 +465,25 @@ Here's an example of the request format. Note that the request does not include ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: sign secret tx_json rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType": "AccountSet", "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` +{% /tab %} - +{% /tabs %} #### Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -504,9 +503,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -525,9 +524,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -546,8 +545,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The `sign` command response contains a `tx_blob` value, as shown above. The offline signing response contains a `signedTransaction` value. Both are signed binary representations (blobs) of the transaction. @@ -562,19 +562,18 @@ Take the `signedTransaction` value from the offline signing response or the `tx_ An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "submit", "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"submit", @@ -585,25 +584,25 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: submit tx_blob rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` +{% /tab %} - +{% /tabs %} #### Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -626,9 +625,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -650,9 +649,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -674,15 +673,16 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} -If the transaction fails with the following [result codes](transaction-results.html), here are some things to check: +If the transaction fails with the following [result codes](../../references/protocol/transactions/transaction-results/transaction-results.md), here are some things to check: - **`tefBAD_AUTH`**: The regular key you signed your test transaction with doesn't match the regular key you set in the previous step. Check that the secret and address for your regular key pair match and double-check which values you used in each step. - **`tefBAD_AUTH_MASTER`** or **`temBAD_AUTH_MASTER`**: Your account doesn't have a regular key assigned. Check that the SetRegularKey transaction executed successfully. You can also use the [account_info method][] to confirm that your regular key is set in the `RegularKey` field as expected. -For possible causes of other result codes, see [Transaction Results](transaction-results.html). +For possible causes of other result codes, see [Transaction Results](../../references/protocol/transactions/transaction-results/transaction-results.md). ## See Also @@ -690,24 +690,17 @@ For possible causes of other result codes, see [Transaction Results](transaction Now that you're familiar with the benefits of assigning a regular key pair to an account, consider taking a look at these related topics and tutorials: - **Concepts:** - - [Cryptographic Keys](cryptographic-keys.html) - - [Multi-Signing](multi-signing.html) - - [Issuing and Operational Addresses](account-types.html) + - [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md) + - [Multi-Signing](../../concepts/accounts/multi-signing.md) + - [Issuing and Operational Addresses](../../concepts/accounts/account-types.md) - **Tutorials:** - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.html) - - [Set Up Multi-Signing](set-up-multi-signing.html) - - [List XRP as an Exchange](list-xrp-as-an-exchange.html) + - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.md) + - [Set Up Multi-Signing](set-up-multi-signing.md) + - [List XRP as an Exchange](../../use-cases/defi/list-xrp-as-an-exchange.md) - **References:** - [wallet_propose method][] - [sign method][] - [SetRegularKey transaction][] - - [AccountRoot object](accountroot.html) where the regular key is stored in the field `RegularKey` + - [AccountRoot object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) where the regular key is stored in the field `RegularKey` - - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md b/content/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md index e3f87895a5..ebdcaee2f3 100644 --- a/content/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md +++ b/content/tutorials/manage-account-settings/change-or-remove-a-regular-key-pair.md @@ -8,29 +8,29 @@ labels: --- # Change or Remove a Regular Key Pair -The XRP Ledger allows an account to authorize a secondary key pair, called a _[regular key pair](cryptographic-keys.html)_, to sign future transactions. If your [account](accounts.html)'s regular key pair is compromised, or if you want to periodically change the regular key pair as a security measure, use a [SetRegularKey transaction][] to remove or change the regular key pair for your account. +The XRP Ledger allows an account to authorize a secondary key pair, called a _[regular key pair](../../concepts/accounts/cryptographic-keys.md)_, to sign future transactions. If your [account](../../concepts/accounts/accounts.md)'s regular key pair is compromised, or if you want to periodically change the regular key pair as a security measure, use a [SetRegularKey transaction][] to remove or change the regular key pair for your account. -For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html). +For more information about master and regular key pairs, see [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md). ## Changing a Regular Key Pair -The steps to change your existing regular key pair are almost the same as the steps to [assign a regular key](assign-a-regular-key-pair.html) for the first time. You generate the key pair and assign it to your account as a regular key pair, overwriting the existing regular key pair. However, the main difference is that when changing the existing regular key pair, you can use the existing regular private key to replace itself; but when assigning a regular key pair to an account for the first time, you have to use the account's master private key to do it. +The steps to change your existing regular key pair are almost the same as the steps to [assign a regular key](assign-a-regular-key-pair.md) for the first time. You generate the key pair and assign it to your account as a regular key pair, overwriting the existing regular key pair. However, the main difference is that when changing the existing regular key pair, you can use the existing regular private key to replace itself; but when assigning a regular key pair to an account for the first time, you have to use the account's master private key to do it. -For more information about master and regular key pairs, see [Cryptographic Keys](cryptographic-keys.html). +For more information about master and regular key pairs, see [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md). ## Removing a Regular Key Pair -If you want to remove a compromised regular key pair from your account, you don't need to generate a key pair first. Use a [SetRegularKey transaction][], omitting the `RegularKey` field. Note that the transaction fails if you don't have another way of signing for your account currently enabled (either the master key pair or a [signer list](multi-signing.html)). +If you want to remove a compromised regular key pair from your account, you don't need to generate a key pair first. Use a [SetRegularKey transaction][], omitting the `RegularKey` field. Note that the transaction fails if you don't have another way of signing for your account currently enabled (either the master key pair or a [signer list](../../concepts/accounts/multi-signing.md)). When removing a regular key pair to your account, the `SetRegularKey` transaction requires signing by your account's master private key (secret) or existing regular key pair. Sending your master or regular private key anywhere is dangerous, so we keep transaction signing separate from transaction submission to the network. ### Sign Your Transaction -{% include '_snippets/tutorial-sign-step.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + Populate the request fields with the following values: @@ -44,10 +44,9 @@ Populate the request fields with the following values: An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "sign", @@ -58,42 +57,42 @@ An example of the request format: "secret": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign", "params": [ - { - "secret" : "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "tx_json" : { - "TransactionType" : "SetRegularKey", - "Account" : "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" - } - } - ] + { + "secret" : "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "tx_json" : { + "TransactionType" : "SetRegularKey", + "Account" : "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" + } + } + ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: sign secret tx_json rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType": "SetRegularKey", "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` +{% /tab %} - +{% /tabs %} #### Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -113,9 +112,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -134,9 +133,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -155,8 +154,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The `sign` command response contains a `tx_blob` value, as shown above. The offline signing response contains a `signedTransaction` value. Both are signed binary representations (blobs) of the transaction. @@ -171,19 +171,18 @@ Take the `signedTransaction` value from the offline signing response or the `tx_ An example of the request format: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "submit", "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"submit", @@ -194,25 +193,25 @@ An example of the request format: ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh #Syntax: submit tx_blob rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` +{% /tab %} - +{% /tabs %} #### Response Format An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -235,9 +234,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -259,9 +258,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -283,8 +282,9 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} The way to verify that regular key pair removal succeeded is to confirm that you can't send a transaction using the removed regular private key. @@ -295,10 +295,9 @@ Here's an example error response for an [AccountSet transaction][] signed using An example of a successful response: - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "error": "badSecret", @@ -316,9 +315,9 @@ An example of a successful response: "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -337,9 +336,9 @@ An example of a successful response: } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```json { "result" : { @@ -358,28 +357,25 @@ An example of a successful response: } } ``` +{% /tab %} - +{% /tabs %} -In some cases, you can even use the `SetRegularKey` transaction to send a [key reset transaction](transaction-cost.html#key-reset-transaction) without paying the [transaction cost](transaction-cost.html). The XRP Ledger's [transaction queue](transaction-queue.html) prioritizes key reset transactions above other transactions even though the nominal transaction cost of a key reset transaction is zero. +In some cases, you can even use the `SetRegularKey` transaction to send a [key reset transaction](../../concepts/transactions/transaction-cost.md#key-reset-transaction) without paying the [transaction cost](../../concepts/transactions/transaction-cost.md). The XRP Ledger's [transaction queue](../../concepts/transactions/transaction-queue.md) prioritizes key reset transactions above other transactions even though the nominal transaction cost of a key reset transaction is zero. - **Concepts:** - - [Cryptographic Keys](cryptographic-keys.html) - - [Multi-Signing](multi-signing.html) - - [Transaction Cost](transaction-cost.html) + - [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md) + - [Multi-Signing](../../concepts/accounts/multi-signing.md) + - [Transaction Cost](../../concepts/transactions/transaction-cost.md) - **Tutorials:** - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.html) - - [Set Up Multi-Signing](set-up-multi-signing.html) - - [List XRP as an Exchange](list-xrp-as-an-exchange.html) + - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.md) + - [Set Up Multi-Signing](set-up-multi-signing.md) + - [List XRP as an Exchange](../../use-cases/defi/list-xrp-as-an-exchange.md) - **References:** - [wallet_propose method][] - [sign method][] - [SetRegularKey transaction][] - - [AccountRoot object](accountroot.html) where the regular key is stored in the field `RegularKey` + - [AccountRoot object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) where the regular key is stored in the field `RegularKey` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/manage-account-settings/disable-master-key-pair.md b/content/tutorials/manage-account-settings/disable-master-key-pair.md index f27e456043..5b410e1034 100644 --- a/content/tutorials/manage-account-settings/disable-master-key-pair.md +++ b/content/tutorials/manage-account-settings/disable-master-key-pair.md @@ -8,9 +8,9 @@ labels: --- # Disable Master Key Pair -This page describes how to disable the [master key pair](cryptographic-keys.html) that is mathematically associated with an [account](accounts.html)'s address. You should do this if your account's master key pair may have been compromised, or if you want to make [multi-signing](multi-signing.html) the _only_ way to submit transactions from your account. +This page describes how to disable the [master key pair](../../concepts/accounts/cryptographic-keys.md) that is mathematically associated with an [account](../../concepts/accounts/accounts.md)'s address. You should do this if your account's master key pair may have been compromised, or if you want to make [multi-signing](../../concepts/accounts/multi-signing.md) the _only_ way to submit transactions from your account. -**Warning:** Disabling the master key pair removes one method of [authorizing transactions](transactions.html#authorizing-transactions). You should be sure you can use one of the other ways of authorizing transactions, such as with a regular key or by multi-signing, before you disable the master key pair. (For example, if you [assigned a regular key pair](assign-a-regular-key-pair.html), make sure that you can successfully submit transactions with that regular key.) Due to the decentralized nature of the XRP Ledger, no one can restore access to your account if you cannot use the remaining ways of authorizing transactions. +**Warning:** Disabling the master key pair removes one method of [authorizing transactions](../../concepts/transactions/index.md#authorizing-transactions). You should be sure you can use one of the other ways of authorizing transactions, such as with a regular key or by multi-signing, before you disable the master key pair. (For example, if you [assigned a regular key pair](assign-a-regular-key-pair.md), make sure that you can successfully submit transactions with that regular key.) Due to the decentralized nature of the XRP Ledger, no one can restore access to your account if you cannot use the remaining ways of authorizing transactions. **To disable the master key pair, you must use the master key pair.** However, you can _re-enable_ the master key pair using any other method of authorizing transactions. @@ -18,12 +18,12 @@ This page describes how to disable the [master key pair](cryptographic-keys.html To disable the master key pair for an account, you must meet the following prerequisites: -- You must have an XRP Ledger [account](accounts.html) and you must be able to sign and submit transactions from that account using the master key pair. See also: [Set Up Secure Signing](secure-signing.html). Two common ways this can work are: +- You must have an XRP Ledger [account](../../concepts/accounts/accounts.md) and you must be able to sign and submit transactions from that account using the master key pair. See also: [Set Up Secure Signing](../../concepts/transactions/secure-signing.md). Two common ways this can work are: - You know the account's master seed value. A seed value is commonly represented as a [base58][] value starting with "s", such as `sn3nxiW7v8KXzPzAqzyHXbSSKNuN9`. - - Or, you use a [dedicated signing device](secure-signing.html#use-a-dedicated-signing-device) that stores the seed value securely, so you don't need to know it. + - Or, you use a [dedicated signing device](../../concepts/transactions/secure-signing.md#use-a-dedicated-signing-device) that stores the seed value securely, so you don't need to know it. - Your account must have at least one method of authorizing transactions other than the master key pair. In other words, you must do one or both of the following: - - [Assign a Regular Key Pair](assign-a-regular-key-pair.html). - - [Set Up Multi-Signing](set-up-multi-signing.html). + - [Assign a Regular Key Pair](assign-a-regular-key-pair.md). + - [Set Up Multi-Signing](set-up-multi-signing.md). ## Steps @@ -31,7 +31,7 @@ To disable the master key pair for an account, you must meet the following prere ### {{n.next()}}. Construct Transaction JSON -Prepare an [AccountSet transaction][] from your account with the field `"SetValue": 4`. This is the value for the AccountSet flag "Disable Master" (`asfDisableMaster`). The only other required fields for this transaction are the required [common fields](transaction-common-fields.html). For example, if you leave off the [auto-fillable fields](transaction-common-fields.html#auto-fillable-fields), the following transaction instructions are enough: +Prepare an [AccountSet transaction][] from your account with the field `"SetValue": 4`. This is the value for the AccountSet flag "Disable Master" (`asfDisableMaster`). The only other required fields for this transaction are the required [common fields](../../references/protocol/transactions/common-fields.md). For example, if you leave off the [auto-fillable fields](../../references/protocol/transactions/common-fields.md#auto-fillable-fields), the following transaction instructions are enough: ```json { @@ -41,20 +41,19 @@ Prepare an [AccountSet transaction][] from your account with the field `"SetValu } ``` -**Tip:** It is strongly recommended to also provide the `LastLedgerSequence` field so that you can [reliably get the outcome of the transaction in a predictable amount of time](reliable-transaction-submission.html). +**Tip:** It is strongly recommended to also provide the `LastLedgerSequence` field so that you can [reliably get the outcome of the transaction in a predictable amount of time](../../concepts/transactions/reliable-transaction-submission.md). ### {{n.next()}}. Sign Transaction You must use the **master key pair** to sign the transaction. -**Warning:** Do not submit your secret to a server you don't control, and do not send it over the network unencrypted. These examples assume you are using a [local `rippled` server](secure-signing.html#run-rippled-locally). You should adapt these instructions if you are using another [secure signing configuration](secure-signing.html). +**Warning:** Do not submit your secret to a server you don't control, and do not send it over the network unencrypted. These examples assume you are using a [local `rippled` server](../../concepts/transactions/secure-signing.md#run-rippled-locally). You should adapt these instructions if you are using another [secure signing configuration](../../concepts/transactions/secure-signing.md). #### Example Request - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "sign", @@ -66,9 +65,9 @@ You must use the **master key pair** to sign the transaction. "secret": "s████████████████████████████" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "sign", @@ -84,22 +83,22 @@ You must use the **master key pair** to sign the transaction. ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh $ rippled sign s████████████████████████████ '{"TransactionType":"AccountSet", "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "SetFlag":4}' ``` +{% /tab %} - +{% /tabs %} #### Example Response - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -121,9 +120,9 @@ $ rippled sign s█████████████████████ "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -145,9 +144,9 @@ $ rippled sign s█████████████████████ } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:13:24.783570867 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -171,8 +170,9 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} Look for `"status": "success"` to indicate that the server successfully signed the transaction. If you get `"status": "error"` instead, check the `error` and `error_message` fields for more information. Some common possibilities include: @@ -187,19 +187,18 @@ Submit the signed transaction blob from the previous step to the XRP Ledger. #### Example Request - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "submit", "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method":"submit", @@ -210,21 +209,21 @@ Submit the signed transaction blob from the previous step to the XRP Ledger. ] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ``` $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 ``` +{% /tab %} - +{% /tabs %} #### Example Response - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -248,9 +247,9 @@ $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103A "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result" : { @@ -273,9 +272,9 @@ $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103A } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:25:49.361743460 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -301,15 +300,16 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} -If the transaction fails with the result `tecNO_ALTERNATIVE_KEY`, your account does not have another method of authorizing transactions currently enabled. You must [assign a regular key pair](assign-a-regular-key-pair.html) or [set up multi-signing](set-up-multi-signing.html), then try again to disable the master key pair. +If the transaction fails with the result `tecNO_ALTERNATIVE_KEY`, your account does not have another method of authorizing transactions currently enabled. You must [assign a regular key pair](assign-a-regular-key-pair.md) or [set up multi-signing](set-up-multi-signing.md), then try again to disable the master key pair. ### {{n.next()}}. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ### {{n.next()}}. Confirm Account Flags @@ -322,10 +322,9 @@ Confirm that your account's master key is disabled using the [account_info metho #### Example Request - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "command": "account_info", @@ -333,9 +332,9 @@ Confirm that your account's master key is disabled using the [account_info metho "ledger_index": "validated" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "method": "account_info", @@ -345,22 +344,22 @@ Confirm that your account's master key is disabled using the [account_info metho }] } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated ``` +{% /tab %} - +{% /tabs %} #### Example Response - - -*WebSocket* +{% tabs %} +{% tab label="WebSocket" %} ```json { "result": { @@ -390,9 +389,9 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated "type": "response" } ``` +{% /tab %} -*JSON-RPC* - +{% tab label="JSON-RPC" %} ```json { "result": { @@ -421,9 +420,9 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated } } ``` +{% /tab %} -*Commandline* - +{% tab label="Commandline" %} ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:41:38.642710734 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -455,18 +454,18 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} In the response's `account_data` object, compare the `Flags` field with the `lsfDisableMaster` flag value (`0x00100000` in hex, or `1048576` in decimal) using bitwise-AND (the `&` operator in most common programming languages). Example code: - - -*JavaScript* +{% tabs %} +{% tab label="JavaScript" %} ```js // Assuming the JSON-RPC response above is saved as account_info_response const lsfDisableMaster = 0x00100000; @@ -477,9 +476,9 @@ if ((lsfDisableMaster & acct_flags) === lsfDisableMaster) { console.log("Master key pair is available for use"); } ``` +{% /tab %} -*Python* - +{% tab label="Python" %} ```python # Assuming the JSON-RPC response above is parsed from JSON # and saved as the variable account_info_response @@ -490,19 +489,15 @@ if lsfDisableMaster & acct_flags == lsfDisableMaster: else: print("Master key pair is available for use") ``` +{% /tab %} - +{% /tabs %} This operation has only two possible outcomes: - A nonzero result, equal to the `lsfDisableMaster` value, indicates **the master key has been successfully disabled**. - A zero result indicates the account's master key is not disabled. -If the result does not match your expectations, check whether the transaction you sent in the previous steps has executed successfully. It should be the most recent entry in the account's transaction history ([account_tx method][]) and it should have the result code `tesSUCCESS`. If you see any other [result code](transaction-results.html), the transaction was not executed successfully. Depending on the cause of the error, you may want to restart these steps from the beginning. +If the result does not match your expectations, check whether the transaction you sent in the previous steps has executed successfully. It should be the most recent entry in the account's transaction history ([account_tx method][]) and it should have the result code `tesSUCCESS`. If you see any other [result code](../../references/protocol/transactions/transaction-results/transaction-results.md), the transaction was not executed successfully. Depending on the cause of the error, you may want to restart these steps from the beginning. - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/manage-account-settings/offline-account-setup.md b/content/tutorials/manage-account-settings/offline-account-setup.md index 86316caf62..602d9f7bf8 100644 --- a/content/tutorials/manage-account-settings/offline-account-setup.md +++ b/content/tutorials/manage-account-settings/offline-account-setup.md @@ -8,7 +8,7 @@ labels: --- # Offline Account Setup Tutorial -A highly secure [signing configuration](secure-signing.html) involves keeping an XRP Ledger [account](accounts.html)'s [cryptographic keys](cryptographic-keys.html) securely on an offline, air-gapped machine. After setting up this configuration, you can sign a variety of transactions, transfer only the signed transactions to an online computer, and submit them to the XRP Ledger network without ever exposing your secret key to malicious actors online. +A highly secure [signing configuration](../../concepts/transactions/secure-signing.md) involves keeping an XRP Ledger [account](../../concepts/accounts/accounts.md)'s [cryptographic keys](../../concepts/accounts/cryptographic-keys.md) securely on an offline, air-gapped machine. After setting up this configuration, you can sign a variety of transactions, transfer only the signed transactions to an online computer, and submit them to the XRP Ledger network without ever exposing your secret key to malicious actors online. **Caution:** Proper operational security is necessary to protect your offline machine. For example, the offline machine must be physically located where untrusted people cannot get access to it, and trusted operators must be careful not to transfer compromised software onto the machine. (For example, do not use a USB drive that was previously attached to a network-connected computer.) @@ -16,8 +16,8 @@ A highly secure [signing configuration](secure-signing.html) involves keeping an To use offline signing, you must meet the following prerequisites: -- You must have one computer to use as an offline machine. This machine must be set up with a [supported operating system](system-requirements.html). See your operating system's support for offline setup instructions. (For example, [Red Hat Enterprise Linux DVD ISO installation instructions](https://access.redhat.com/solutions/7227).) Be sure that the software and physical media you use are not infected with malware. -- You must have a separate computer to use as an online machine. This machine does not need to run `rippled` but it must be able to connect to the XRP Ledger network and receive information about the state of the shared ledger. For example, you can use a [WebSocket connection to a public server](get-started-using-http-websocket-apis.html). +- You must have one computer to use as an offline machine. This machine must be set up with a [supported operating system](../../infrastructure/installation/system-requirements.md). See your operating system's support for offline setup instructions. (For example, [Red Hat Enterprise Linux DVD ISO installation instructions](https://access.redhat.com/solutions/7227).) Be sure that the software and physical media you use are not infected with malware. +- You must have a separate computer to use as an online machine. This machine does not need to run `rippled` but it must be able to connect to the XRP Ledger network and receive information about the state of the shared ledger. For example, you can use a [WebSocket connection to a public server](../get-started/get-started-using-http-websocket-apis.md). - You must have a secure way to transfer signed transaction binary data from the offline machine to the online machine. - One way to do this is with a QR code generator on the offline machine, and a QR code scanner on the online machine. (In this case, your "online machine" could be a handheld device such as a smartphone.) - Another way is to copy files from the offline machine to an online machine using physical media. If you use this method, be sure not to use physical media that could infect your offline machine with malicious software. (For example, do not reuse the same USB drive on both online and offline machines.) @@ -30,25 +30,24 @@ To use offline signing, you must meet the following prerequisites: ### {{n.next()}}. Set up offline machine -The offline machine needs secure persistent storage (for example, an encrypted disk drive) and a way to [sign transactions](secure-signing.html). For an offline machine, you typically use physical media to transfer any necessary software after downloading it from an online machine. You must be sure that the online machine, the physical media, and the software itself are not infected with malware. +The offline machine needs secure persistent storage (for example, an encrypted disk drive) and a way to [sign transactions](../../concepts/transactions/secure-signing.md). For an offline machine, you typically use physical media to transfer any necessary software after downloading it from an online machine. You must be sure that the online machine, the physical media, and the software itself are not infected with malware. Software options for signing on the XRP Ledger include: -- [Install `rippled`](install-rippled.html) from a package (`.deb` or `.rpm` depending on which Linux distribution you use) file, then [run it in stand-alone mode](rippled-server-modes.html). -- Install [xrpl.js](https://github.com/XRPLF/xrpl.js/) (or another [client library](client-libraries.html)) and its dependencies offline. The Yarn package manager, for example, has [recommended instructions for offline usage](https://yarnpkg.com/blog/2016/11/24/offline-mirror/). -- See also: [Set Up Secure Signing](secure-signing.html) +- [Install `rippled`](../../infrastructure/installation/index.md) from a package (`.deb` or `.rpm` depending on which Linux distribution you use) file, then [run it in stand-alone mode](../../concepts/networks-and-servers/rippled-server-modes.md). +- Install [xrpl.js](https://github.com/XRPLF/xrpl.js/) (or another [client library](../../references/client-libraries.md)) and its dependencies offline. The Yarn package manager, for example, has [recommended instructions for offline usage](https://yarnpkg.com/blog/2016/11/24/offline-mirror/). +- See also: [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) You may want to set up custom software to help construct transaction instructions on the offline machine. For example, your software may track what [sequence number][] to use next, or contain preset templates for certain types of transactions you expect to send. ### {{n.next()}}. Generate cryptographic keys -On the **offline machine**, generate a pair of [cryptographic keys](cryptographic-keys.html) to be used with your account. Be sure to generate the keys with a securely random procedure, not from a short passphrase or some other source that does not have enough entropy. For example, you can use the [wallet_propose method][] of `rippled`: +On the **offline machine**, generate a pair of [cryptographic keys](../../concepts/accounts/cryptographic-keys.md) to be used with your account. Be sure to generate the keys with a securely random procedure, not from a short passphrase or some other source that does not have enough entropy. For example, you can use the [wallet_propose method][] of `rippled`: - - -_rippled Commandline_ +{% tabs %} +{% tab label="rippled Commandline" %} ```sh $ ./rippled wallet_propose Loading: "/etc/opt/ripple/rippled.cfg" @@ -67,12 +66,13 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} Take note of the following values: -- **`account_id`**. This is the address associated with the key pair, which becomes your **[account](accounts.html) address** in the XRP Ledger after you fund it with XRP (later in this process). It is safe to share your `account_id` publicly. +- **`account_id`**. This is the address associated with the key pair, which becomes your **[account](../../concepts/accounts/accounts.md) address** in the XRP Ledger after you fund it with XRP (later in this process). It is safe to share your `account_id` publicly. - **`master_seed`**. This is the secret seed value for the key pair, which you'll use to sign transactions from the account. For best security, encrypt this value before writing it to disk on the offline machine. As an encryption key, use a secure passphrase that human operators can memorize or write down somewhere physically secure, such as a [diceware passphrase](https://theworld.com/~reinhold/diceware.html) created with properly weighted dice. You may also want to use a physical security key as a second factor. The extent of the precautions to take at this stage is up to you. - **`key_type`**. This is the cryptographic algorithm used for this key pair. You need to know what type of key pair you have. The default in `rippled` is `secp256k1`, but some client libraries use `Ed25519` by default. @@ -84,9 +84,9 @@ Take note of the following values: ### {{n.next()}}. Fund the new address -From an online machine, send enough XRP to the **account address** you noted in step 1. For more information, see [Creating Accounts](accounts.html#creating-accounts). +From an online machine, send enough XRP to the **account address** you noted in step 1. For more information, see [Creating Accounts](../../concepts/accounts/accounts.md#creating-accounts). -**Tip:** For testing purposes, you can use the [Testnet Faucet](xrp-testnet-faucet.html) to get a new account with Test XRP, then use that account to fund the address you generated offline. +**Tip:** For testing purposes, you can use the [Testnet Faucet](/resources/dev-tools/xrp-faucets) to get a new account with Test XRP, then use that account to fund the address you generated offline. @@ -96,12 +96,11 @@ When the transaction from the previous step is validated by consensus, your acco Take note of the sequence number of the account, in the `Sequence` field of the result's `account_data`. You need to know the sequence number to sign transactions from the account in future steps. -The `Sequence` number of a newly-funded account matches the [ledger index][] when it was funded. Before the [DeletableAccounts amendment](known-amendments.html#deletableaccounts), a newly funded account's `Sequence` number was always 1. +The `Sequence` number of a newly-funded account matches the [ledger index][] when it was funded. Before the [DeletableAccounts amendment](../../resources/known-amendments.md#deletableaccounts), a newly funded account's `Sequence` number was always 1. - - -_rippled Commandline_ +{% tabs %} +{% tab label="rippled Commandline" %} ```sh $ ./rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn @@ -126,14 +125,15 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} ### {{n.next()}}. Enter the sequence number on the offline machine. Save the account's starting sequence number on the offline machine. Whenever you prepare a transaction using the offline machine, use the saved sequence number, then increase the sequence number by 1 and save the new value. -You can prepare several transactions in advance this way, then transfer the signed transactions to the online machine all at once and submit them. As long as each transaction is validly formed and pays a high enough [transaction cost](transaction-cost.html), the XRP Ledger network should eventually include those transactions in validated ledgers, keeping the account's sequence number in the shared XRP Ledger in sync with the "current" sequence number you are tracking on the offline machine. (Most transactions get a final, validated result within 15 seconds or less after being submitted to the network.) +You can prepare several transactions in advance this way, then transfer the signed transactions to the online machine all at once and submit them. As long as each transaction is validly formed and pays a high enough [transaction cost](../../concepts/transactions/transaction-cost.md), the XRP Ledger network should eventually include those transactions in validated ledgers, keeping the account's sequence number in the shared XRP Ledger in sync with the "current" sequence number you are tracking on the offline machine. (Most transactions get a final, validated result within 15 seconds or less after being submitted to the network.) Optionally, save the current ledger index to the offline machine. You can use this value to choose an appropriate `LastLedgerSequence` value for upcoming transactions. @@ -143,23 +143,22 @@ Optionally, save the current ledger index to the offline machine. You can use th On the offline machine, prepare and sign transactions for configuring your account. The details depend on how you intend to use your account. Some examples of things you might want to do include: -- [Assign a regular key pair](assign-a-regular-key-pair.html) that you can rotate regularly. -- [Require destination tags](require-destination-tags.html) so that users can't send you payments without tagging the reason they sent it or the customer it's intended for. -- [Set Up Multi-Signing](set-up-multi-signing.html) for a higher bar of account security. -- [Enable DepositAuth](depositauth.html) so you can only receive payments you've explicitly accepted or from parties you've pre-approved. -- [Require Auth](authorized-trust-lines.html#enabling-require-auth) so that users can't open [trust lines](trust-lines-and-issuing.html) to you without your permission. If you don't plan to use the XRP Ledger's decentralized exchange or [token](tokens.html) features, you may want to do this as a precaution. -- [Token Issuers](stablecoin-issuer.html) may have additional setup, such as: +- [Assign a regular key pair](assign-a-regular-key-pair.md) that you can rotate regularly. +- [Require destination tags](require-destination-tags.md) so that users can't send you payments without tagging the reason they sent it or the customer it's intended for. +- [Set Up Multi-Signing](set-up-multi-signing.md) for a higher bar of account security. +- [Enable DepositAuth](../../concepts/accounts/depositauth.md) so you can only receive payments you've explicitly accepted or from parties you've pre-approved. +- [Require Auth](../../concepts/tokens/fungible-tokens/authorized-trust-lines.md#enabling-require-auth) so that users can't open [trust lines](../../concepts/tokens/fungible-tokens/index.md) to you without your permission. If you don't plan to use the XRP Ledger's decentralized exchange or [token](../../concepts/tokens/index.md) features, you may want to do this as a precaution. +- [Token Issuers](../../use-cases/tokenization/stablecoin-issuer.md) may have additional setup, such as: - Set a Transfer Fee for users transferring your tokens. - Disallow XRP payments if you plan to use this address for tokens only. -At this stage, you are only signing the transactions, not submitting them. For each transaction, you must provide all fields, including fields that are normally auto-fillable such as the `Fee` ([transaction cost](transaction-cost.html)) and `Sequence` ([sequence number][]). If you prepare multiple transactions at the same time, you must use sequentially increasing `Sequence` numbers in the order you want the transactions to execute. +At this stage, you are only signing the transactions, not submitting them. For each transaction, you must provide all fields, including fields that are normally auto-fillable such as the `Fee` ([transaction cost](../../concepts/transactions/transaction-cost.md)) and `Sequence` ([sequence number][]). If you prepare multiple transactions at the same time, you must use sequentially increasing `Sequence` numbers in the order you want the transactions to execute. Example (enable Require Auth): - - -_rippled Commandline_ +{% tabs %} +{% tab label="rippled Commandline" %} ```sh $ rippled sign sn3nxiW7v8KXzPzAqzyHXbSSKNuN9 '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Fee": "12", "Sequence": 1, "TransactionType": "AccountSet", "SetFlag": 2}' offline @@ -184,10 +183,11 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} -To ensure _all_ transactions have a final outcome within a limited amount of time, provide a [`LastLedgerSequence`](reliable-transaction-submission.html#lastledgersequence) field. This value should be based on the current ledger index (which you must look up from an online machine) and the amount of time you want the transaction to remain valid. Be sure to set a large enough `LastLedgerSequence` value to allow for time spent switching from the online machine to the offline machine and back. For example, a value 256 higher than the current ledger index means that the transaction is valid for about 15 minutes. For more information, see [Finality of Results](finality-of-results.html) and [Reliable Transaction Submission](reliable-transaction-submission.html). +To ensure _all_ transactions have a final outcome within a limited amount of time, provide a [`LastLedgerSequence`](../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence) field. This value should be based on the current ledger index (which you must look up from an online machine) and the amount of time you want the transaction to remain valid. Be sure to set a large enough `LastLedgerSequence` value to allow for time spent switching from the online machine to the offline machine and back. For example, a value 256 higher than the current ledger index means that the transaction is valid for about 15 minutes. For more information, see [Finality of Results](../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md). ### {{n.next()}}. Copy transactions to online machine. @@ -198,14 +198,13 @@ After you have signed the transactions, the next step is to get the signed trans ### {{n.next()}}. Submit setup transactions. -The next step is to submit the transactions. Most transactions should have a final outcome in the next validated ledger after submission (about 4 seconds later), or possibly the ledger after that if they get queued (less than 10 seconds). For detailed steps to track the final outcome of a transaction, see [Reliable Transaction Submission](reliable-transaction-submission.html). +The next step is to submit the transactions. Most transactions should have a final outcome in the next validated ledger after submission (about 4 seconds later), or possibly the ledger after that if they get queued (less than 10 seconds). For detailed steps to track the final outcome of a transaction, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md). Example of transaction submission: - - -_rippled Commandline_ +{% tabs %} +{% tab label="rippled Commandline" %} ```sh $ rippled submit 1200032280000000240000000120210000000268400000000000000C7321039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A174473045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD4381144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 @@ -234,21 +233,21 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} -**Tip:** If you are submitting more than 10 transactions at a time, you may have more success if you submit them in groups of 10 or less at a time, because the [transaction queue](transaction-queue.html) is limited to 10 transactions from the same sender at a time. After each group of 10 transactions, wait for all the transactions to leave the queue before submitting the next group. +**Tip:** If you are submitting more than 10 transactions at a time, you may have more success if you submit them in groups of 10 or less at a time, because the [transaction queue](../../concepts/transactions/transaction-queue.md) is limited to 10 transactions from the same sender at a time. After each group of 10 transactions, wait for all the transactions to leave the queue before submitting the next group. -Retry submitting any transactions that failed with a [non-final outcome](finality-of-results.html). There is no chance of the same transaction being processed more than once. +Retry submitting any transactions that failed with a [non-final outcome](../../concepts/transactions/finality-of-results/index.md). There is no chance of the same transaction being processed more than once. ### {{n.next()}}. Confirm the final status of the transactions. -For each transaction you submitted, note the transaction's [final outcome](finality-of-results.html), for example using the [tx method][]. For example: +For each transaction you submitted, note the transaction's [final outcome](../../concepts/transactions/finality-of-results/index.md), for example using the [tx method][]. For example: - - -_rippled Commandline_ +{% tabs %} +{% tab label="rippled Commandline" %} ```sh $ ./rippled tx F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63 @@ -299,16 +298,17 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` +{% /tab %} - +{% /tabs %} You may also find it useful to check the [account_info][account_info method] of the sending account after all transactions have processed. Note the account's current sequence number (`Sequence` field) and, optionally, XRP balance. For any transactions that failed, you should decide what to do: -- If the transaction failed with a `tefMAX_LEDGER` code, you may need to specify a higher [transaction cost](transaction-cost.html) to get the transaction processed. (This likely indicates that the XRP Ledger network is under load.) You may decide to replace the transaction with a new version that pays a higher cost and has a higher `LastLedgerSequence` parameter (if any). -- If the transaction failed with any [`tem`-class code](tem-codes.html), you probably made a typo or another error in constructing the transaction. Double-check the transaction so that you can replace it with a validly-formed one. -- If the transaction failed with a [`tec`-class code](tec-codes.html), you should address it on a case-by-case basis depending on the exact reason it failed. +- If the transaction failed with a `tefMAX_LEDGER` code, you may need to specify a higher [transaction cost](../../concepts/transactions/transaction-cost.md) to get the transaction processed. (This likely indicates that the XRP Ledger network is under load.) You may decide to replace the transaction with a new version that pays a higher cost and has a higher `LastLedgerSequence` parameter (if any). +- If the transaction failed with any [`tem`-class code](../../references/protocol/transactions/transaction-results/tem-codes.md), you probably made a typo or another error in constructing the transaction. Double-check the transaction so that you can replace it with a validly-formed one. +- If the transaction failed with a [`tec`-class code](../../references/protocol/transactions/transaction-results/tec-codes.md), you should address it on a case-by-case basis depending on the exact reason it failed. For any transactions you decide to adjust or replace, note the details for when you return to the offline machine. @@ -329,22 +329,18 @@ Then adjust and sign any replacement transactions for transactions that failed i ## See Also - **Concepts:** - - [Accounts](accounts.html) - - [Cryptographic Keys](cryptographic-keys.html) + - [Accounts](../../concepts/accounts/accounts.md) + - [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md) - **Tutorials:** - - [Set Up Secure Signing](secure-signing.html) - - [Assign a Regular Key Pair](assign-a-regular-key-pair.html) - - [Set Up Multi-Signing](set-up-multi-signing.html) + - [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) + - [Assign a Regular Key Pair](assign-a-regular-key-pair.md) + - [Set Up Multi-Signing](set-up-multi-signing.md) - **References:** - - [Basic Data Types: Account Sequence](basic-data-types.html#account-sequence) + - [Basic Data Types: Account Sequence](../../references/protocol/data-types/basic-data-types.md#account-sequence) - [account_info method][] - [sign method][] - [submit method][] - [tx method][] - [AccountSet transaction][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/manage-account-settings/require-destination-tags.md b/content/tutorials/manage-account-settings/require-destination-tags.md index af3bdcc14a..6d86324f85 100644 --- a/content/tutorials/manage-account-settings/require-destination-tags.md +++ b/content/tutorials/manage-account-settings/require-destination-tags.md @@ -10,7 +10,7 @@ labels: --- # Require Destination Tags -The Require Destination Tag setting is designed for addresses that host balances for multiple people or purposes, to prevent people from sending money and forgetting to use a [destination tag](source-and-destination-tags.html) to identify whom to credit. When this setting is enabled on your address, the XRP Ledger rejects [any payment](payment-types.html) to your address if it does not specify a destination tag. +The Require Destination Tag setting is designed for addresses that host balances for multiple people or purposes, to prevent people from sending money and forgetting to use a [destination tag](../../concepts/transactions/source-and-destination-tags.md) to identify whom to credit. When this setting is enabled on your address, the XRP Ledger rejects [any payment](../../concepts/payment-types/index.md) to your address if it does not specify a destination tag. This tutorial demonstrates how to enable the Require Destination Tag flag on your account. @@ -21,8 +21,8 @@ This tutorial demonstrates how to enable the Require Destination Tag flag on you - You need a funded XRP Ledger account, with an address, secret key, and some XRP. For production, you can use the same address and secret consistently. For this tutorial, you can generate new test credentials as needed. - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. - - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](get-started-using-python.html) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup steps. + - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../get-started/get-started-using-python.md) for setup steps. - You can also read along and use the interactive steps in your browser without any setup. @@ -41,47 +41,47 @@ Complete sample code for all the steps of these tutorials is available under the To transact on the XRP Ledger, you need an address and secret key, and some XRP. For development purposes, you can get these using the following interface: -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](secure-signing.html). +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). ### {{n.next()}}. Connect to the Network -You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](client-libraries.html): +You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](../../references/client-libraries.md): - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/get-started/py/base-async.py" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/get-started/py/base-async.py", language="py") }} - - +{% /tabs %} For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Send AccountSet Transaction -To enable the `RequireDest` flag, set the [`asfRequireDest` value (`1`)](accountset.html#accountset-flags) in the `SetFlag` field of an [AccountSet transaction][]. To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. +To enable the `RequireDest` flag, set the [`asfRequireDest` value (`1`)](../../references/protocol/transactions/types/accountset.md#accountset-flags) in the `SetFlag` field of an [AccountSet transaction][]. To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. For example: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/require-destination-tags/js/require-destination-tags.js" from="// Send AccountSet" before="// Confirm Account" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/require-destination-tags/js/require-destination-tags.js", language="js", start_with="// Send AccountSet", end_before="// Confirm Account") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/require-destination-tags/py/require-destination-tags.py" from="# Send AccountSet" before="# Confirm Account" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/require-destination-tags/py/require-destination-tags.py", language="py", start_with="# Send AccountSet", end_before="# Confirm Account") }} - - +{% /tabs %} {{ start_step("Send AccountSet") }} @@ -92,10 +92,10 @@ _Python_ ### {{n.next()}}. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](reliable-transaction-submission.html).) +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -104,17 +104,17 @@ Most transactions are accepted into the next ledger version after they're submit After the transaction is validated, you can check your account's settings to confirm that the Require Destination Tag flag is enabled. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/require-destination-tags/js/require-destination-tags.js" from="// Confirm Account" before="// End main()" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/require-destination-tags/js/require-destination-tags.js", language="js", start_with="// Confirm Account", end_before="// End main()") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/require-destination-tags/py/require-destination-tags.py" from="# Confirm Account" before="# End main()" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/require-destination-tags/py/require-destination-tags.py", language="py", start_with="# Confirm Account", end_before="# End main()") }} - - +{% /tabs %} {{ start_step("Confirm Settings") }} @@ -123,7 +123,7 @@ _Python_
          {{ end_step() }} -For further confirmation, you can send test transactions (from a different address) to confirm that the setting is working as you expect it to. If you a payment with a destination tag, it should succeed, and if you send one _without_ a destination tag, it should fail with the error code [`tecDST_TAG_NEEDED`](tec-codes.html). +For further confirmation, you can send test transactions (from a different address) to confirm that the setting is working as you expect it to. If you a payment with a destination tag, it should succeed, and if you send one _without_ a destination tag, it should fail with the error code [`tecDST_TAG_NEEDED`](../../references/protocol/transactions/transaction-results/tec-codes.md). {{ start_step("Test Payments") }} @@ -136,19 +136,13 @@ For further confirmation, you can send test transactions (from a different addre ## See Also - **Concepts:** - - [Accounts](accounts.html) - - [Source and Destination Tags](source-and-destination-tags.html) - - [Transaction Cost](transaction-cost.html) - - [Payment Types](payment-types.html) + - [Accounts](../../concepts/accounts/accounts.md) + - [Source and Destination Tags](../../concepts/transactions/source-and-destination-tags.md) + - [Transaction Cost](../../concepts/transactions/transaction-cost.md) + - [Payment Types](../../concepts/payment-types/index.md) - **References:** - [account_info method][] - [AccountSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) + - [AccountRoot Flags](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/manage-account-settings/send-a-multi-signed-transaction.md b/content/tutorials/manage-account-settings/send-a-multi-signed-transaction.md index 8cf5f363d9..62413cbf22 100644 --- a/content/tutorials/manage-account-settings/send-a-multi-signed-transaction.md +++ b/content/tutorials/manage-account-settings/send-a-multi-signed-transaction.md @@ -11,16 +11,16 @@ The following procedure demonstrates how to create, sign, and submit a multi-sig ## Prerequisites -- You must have already [set up multi-signing](set-up-multi-signing.html) for your address. +- You must have already [set up multi-signing](set-up-multi-signing.md) for your address. -- Multi-signing must be available. Multi-signing has been enabled by an [**Amendment**](amendments.html) to the XRP Ledger Consensus Protocol since 2016-06-27. +- Multi-signing must be available. Multi-signing has been enabled by an [**Amendment**](../../concepts/networks-and-servers/amendments.md) to the XRP Ledger Consensus Protocol since 2016-06-27. ## 1. Create the transaction Create a JSON object that represents the transaction you want to submit. You have to specify _everything_ about this transaction, including `Fee` and `Sequence`. Also include the field `SigningPubKey` as an empty string, to indicate that the transaction is multi-signed. -Keep in mind that the `Fee` for multi-signed transactions is significantly higher than for regularly-signed transactions. It should be at least (N+1) times the normal [transaction cost](transaction-cost.html), where N is the number of signatures you plan to provide. Since it sometimes takes a while to collect signatures from multiple sources, you may want to specify more than the current minimum, in case the [transaction cost](transaction-cost.html) increases in that time. +Keep in mind that the `Fee` for multi-signed transactions is significantly higher than for regularly-signed transactions. It should be at least (N+1) times the normal [transaction cost](../../concepts/transactions/transaction-cost.md), where N is the number of signatures you plan to provide. Since it sometimes takes a while to collect signatures from multiple sources, you may want to specify more than the current minimum, in case the [transaction cost](../../concepts/transactions/transaction-cost.md) increases in that time. Here's an example transaction ready to be multi-signed: @@ -47,57 +47,59 @@ Here's an example transaction ready to be multi-signed: Use the [sign_for method][] with the secret key and address of one of the members of your SignerList to get a signature for that member. -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} - $ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW '{ - > "TransactionType": "TrustSet", - > "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - > "Flags": 262144, - > "LimitAmount": { - > "currency": "USD", - > "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - > "value": "100" - > }, - > "Sequence": 2, - > "SigningPubKey": "", - > "Fee": "30000" - > }' - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "tx_blob" : "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", - "tx_json" : { - "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee" : "30000", - "Flags" : 262144, - "LimitAmount" : { - "currency" : "USD", - "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value" : "100" - }, - "Sequence" : 2, - "Signers" : [ - { - "Signer" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - } - ], - "SigningPubKey" : "", - "TransactionType" : "TrustSet", - "hash" : "A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" - } - } - } + +``` +$ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW '{ +> "TransactionType": "TrustSet", +> "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", +> "Flags": 262144, +> "LimitAmount": { +> "currency": "USD", +> "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", +> "value": "100" +> }, +> "Sequence": 2, +> "SigningPubKey": "", +> "Fee": "30000" +> }' +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "status" : "success", + "tx_blob" : "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", + "tx_json" : { + "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee" : "30000", + "Flags" : 262144, + "LimitAmount" : { + "currency" : "USD", + "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value" : "100" + }, + "Sequence" : 2, + "Signers" : [ + { + "Signer" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + } + ], + "SigningPubKey" : "", + "TransactionType" : "TrustSet", + "hash" : "A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" + } + } +} +``` Save the `tx_json` field of the response: it has the new signature in the `Signers` field. You can discard the value of the `tx_blob` field. -If you have a problem in stand-alone mode or a non-production network, check that [multi-sign is enabled](start-a-new-genesis-ledger-in-stand-alone-mode.html#settings-in-new-genesis-ledgers). +If you have a problem in stand-alone mode or a non-production network, check that [multi-sign is enabled](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md#settings-in-new-genesis-ledgers). ## 3. Get additional signatures @@ -106,70 +108,72 @@ You can collect additional signatures in parallel or in serial: * In parallel: Use the `sign_for` command with the original JSON for the transaction. Each response has a single signature in the `Signers` array. * In serial: Use the `sign_for` command with the `tx_json` value from the previous `sign_for` response. Each response adds a new signature to the existing `Signers` array. -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} - $ rippled sign_for rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v '{ - > "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - > "Fee" : "30000", - > "Flags" : 262144, - > "LimitAmount" : { - > "currency" : "USD", - > "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - > "value" : "100" - > }, - > "Sequence" : 2, - > "Signers" : [ - > { - > "Signer" : { - > "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - > "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - > "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - > } - > } - > ], - > "SigningPubKey" : "", - > "TransactionType" : "TrustSet", - > "hash" : "A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" - > }' - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "tx_blob" : "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", - "tx_json" : { - "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee" : "30000", - "Flags" : 262144, - "LimitAmount" : { - "currency" : "USD", - "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value" : "100" - }, - "Sequence" : 2, - "Signers" : [ - { - "Signer" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, - { - "Signer" : { - "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey" : "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature" : "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - } - ], - "SigningPubKey" : "", - "TransactionType" : "TrustSet", - "hash" : "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } - } - } + +``` +$ rippled sign_for rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v '{ +> "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", +> "Fee" : "30000", +> "Flags" : 262144, +> "LimitAmount" : { +> "currency" : "USD", +> "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", +> "value" : "100" +> }, +> "Sequence" : 2, +> "Signers" : [ +> { +> "Signer" : { +> "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", +> "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", +> "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" +> } +> } +> ], +> "SigningPubKey" : "", +> "TransactionType" : "TrustSet", +> "hash" : "A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" +> }' +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "status" : "success", + "tx_blob" : "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", + "tx_json" : { + "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee" : "30000", + "Flags" : 262144, + "LimitAmount" : { + "currency" : "USD", + "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value" : "100" + }, + "Sequence" : 2, + "Signers" : [ + { + "Signer" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, + { + "Signer" : { + "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey" : "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature" : "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + } + ], + "SigningPubKey" : "", + "TransactionType" : "TrustSet", + "hash" : "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } + } +} +``` Depending on the SignerList you configured, you may need to repeat this step several times to get signatures from all the necessary parties. @@ -180,74 +184,76 @@ If you collected the signatures in serial, the `tx_json` from the last `sign_for If you collected the signatures in parallel, you must manually construct a `tx_json` object with all the signatures included. Take the `Signers` arrays from all the `sign_for` responses, and combine their contents into a single `Signers` array that has each signature. Add the combined `Signers` array to the original transaction JSON value, and use that as the argument to the [submit_multisigned method][]. - $ rippled submit_multisigned '{ - > "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - > "Fee" : "30000", - > "Flags" : 262144, - > "LimitAmount" : { - > "currency" : "USD", - > "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - > "value" : "100" - > }, - > "Sequence" : 2, - > "Signers" : [ - > { - > "Signer" : { - > "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - > "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - > "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - > } - > }, - > { - > "Signer" : { - > "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - > "SigningPubKey" : "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - > "TxnSignature" : "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - > } - > } - > ], - > "SigningPubKey" : "", - > "TransactionType" : "TrustSet", - > "hash" : "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - > }' - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "status": "success", - "tx_blob": "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "Signers": [{ - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, { - "Signer": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - }], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } - } +``` +$ rippled submit_multisigned '{ +> "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", +> "Fee" : "30000", +> "Flags" : 262144, +> "LimitAmount" : { +> "currency" : "USD", +> "issuer" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", +> "value" : "100" +> }, +> "Sequence" : 2, +> "Signers" : [ +> { +> "Signer" : { +> "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", +> "SigningPubKey" : "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", +> "TxnSignature" : "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" +> } +> }, +> { +> "Signer" : { +> "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", +> "SigningPubKey" : "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", +> "TxnSignature" : "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" +> } +> } +> ], +> "SigningPubKey" : "", +> "TransactionType" : "TrustSet", +> "hash" : "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" +> }' +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [{ + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, { + "Signer": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + }], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } } +} +``` Take note of the `hash` value from the response so you can check the results of the transaction later. (In this case, the hash is `BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6`.) @@ -259,15 +265,17 @@ If you are using the live network, you can wait 4-7 seconds for the ledger to cl If you're running `rippled` in stand-alone mode, use the [ledger_accept method][] to manually close the ledger: - $ rippled ledger_accept - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "ledger_current_index" : 7, - "status" : "success" - } - } +``` +$ rippled ledger_accept +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "ledger_current_index" : 7, + "status" : "success" + } +} +``` ## 6. Confirm transaction results @@ -278,118 +286,117 @@ On the live network, you must also confirm that the `validated` field is set to In stand-alone mode, the server automatically considers a ledger to be `validated` if it has been manually closed. - $ rippled tx BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6 - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "Signers": [{ - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, { - "Signer": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - }], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "date": 512172510, - "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6", - "inLedger": 6, - "ledger_index": 6, - "meta": { - "AffectedNodes": [{ - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8", - "PreviousTxnID": "B7E1D33DB7DEA3BB65BFAB2C80E02125F47FCCF6C957A7FDECD915B3EBE0C1DD", - "PreviousTxnLgrSeq": 4 - } - }, { - "CreatedNode": { - "LedgerEntryType": "RippleState", - "LedgerIndex": "93E317B32022977C77810A2C558FBB28E30E744C68E73720622B797F957EC5FA", - "NewFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 2162688, - "HighLimit": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "0" - }, - "LowLimit": { - "currency": "USD", - "issuer": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "value": "100" - } - } - } - }, { - "ModifiedNode": { - "FinalFields": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Balance": "999960000", - "Flags": 0, - "OwnerCount": 6, - "Sequence": 3 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "A6B1BA6F2D70813100908EA84ABB7783695050312735E2C3665259F388804EA0", - "PreviousFields": { - "Balance": "999990000", - "OwnerCount": 5, - "Sequence": 2 - }, - "PreviousTxnID": "8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", - "PreviousTxnLgrSeq": 5 - } - }, { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "Owner": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "RootIndex": "C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" - } - }, { - "CreatedNode": { - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204", - "NewFields": { - "Owner": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "RootIndex": "D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204" - } - } - }], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" - }, - "status": "success", - "validated": true - } +``` +$ rippled tx BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6 +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [{ + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, { + "Signer": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + }], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "date": 512172510, + "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6", + "inLedger": 6, + "ledger_index": 6, + "meta": { + "AffectedNodes": [{ + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8", + "PreviousTxnID": "B7E1D33DB7DEA3BB65BFAB2C80E02125F47FCCF6C957A7FDECD915B3EBE0C1DD", + "PreviousTxnLgrSeq": 4 + } + }, { + "CreatedNode": { + "LedgerEntryType": "RippleState", + "LedgerIndex": "93E317B32022977C77810A2C558FBB28E30E744C68E73720622B797F957EC5FA", + "NewFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2162688, + "HighLimit": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "0" + }, + "LowLimit": { + "currency": "USD", + "issuer": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "value": "100" + } + } + } + }, { + "ModifiedNode": { + "FinalFields": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Balance": "999960000", + "Flags": 0, + "OwnerCount": 6, + "Sequence": 3 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "A6B1BA6F2D70813100908EA84ABB7783695050312735E2C3665259F388804EA0", + "PreviousFields": { + "Balance": "999990000", + "OwnerCount": 5, + "Sequence": 2 + }, + "PreviousTxnID": "8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", + "PreviousTxnLgrSeq": 5 + } + }, { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "RootIndex": "C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "C2728175908D82FB1DE6676F203D8D3C056995A9FA9B369EF326523F1C65A1DE" + } + }, { + "CreatedNode": { + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204", + "NewFields": { + "Owner": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "RootIndex": "D8120FC732737A2CF2E9968FDF3797A43B457F2A81AA06D2653171A1EA635204" + } + } + }], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "status": "success", + "validated": true } +} +``` - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/manage-account-settings/set-up-multi-signing.md b/content/tutorials/manage-account-settings/set-up-multi-signing.md index 39b38e1cc8..60f245e5c2 100644 --- a/content/tutorials/manage-account-settings/set-up-multi-signing.md +++ b/content/tutorials/manage-account-settings/set-up-multi-signing.md @@ -7,18 +7,18 @@ labels: --- # Set Up Multi-Signing -[Multi-signing](multi-signing.html) is one of three ways to authorize [transactions](transactions.html) for the XRP Ledger, alongside signing with [regular keys and master keys](cryptographic-keys.html). You can configure your [address](accounts.html) to allow any combination of the three methods to authorize transactions. +[Multi-signing](../../concepts/accounts/multi-signing.md) is one of three ways to authorize [transactions](../../concepts/transactions/index.md) for the XRP Ledger, alongside signing with [regular keys and master keys](../../concepts/accounts/cryptographic-keys.md). You can configure your [address](../../concepts/accounts/accounts.md) to allow any combination of the three methods to authorize transactions. This tutorial demonstrates how to enable multi-signing for an address. ## Prerequisites -- You must have a funded XRP Ledger [address](accounts.html) with enough spare XRP to send transactions and meet the [reserve requirement](reserves.html) of a new signer list. +- You must have a funded XRP Ledger [address](../../concepts/accounts/accounts.md) with enough spare XRP to send transactions and meet the [reserve requirement](../../concepts/accounts/reserves.md) of a new signer list. - With the [MultiSignReserve amendment][] enabled, multi-signing requires 2 XRP for the account reserve, regardless of the number of signers and signatures you use. (The MultiSignReserve amendment has been enabled in the production XRP Ledger since **2019-04-07**.) - - If you are on a test network that does not have the [MultiSignReserve amendment][] enabled, multi-signing requires more than the usual amount of XRP for the [account reserve](reserves.html), increasing with the number of signers in the list. + - If you are on a test network that does not have the [MultiSignReserve amendment][] enabled, multi-signing requires more than the usual amount of XRP for the [account reserve](../../concepts/accounts/reserves.md), increasing with the number of signers in the list. - You must have access to a tool that can generate key pairs in the XRP Ledger format. If you are using a `rippled` server for this, you must have admin access because the [wallet_propose method][] is admin-only. @@ -37,112 +37,116 @@ You need one or more validly-formed XRP Ledger addresses to include as members o You can generate new addresses using the [wallet_propose method][]. For example: - $ rippled wallet_propose - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "account_id" : "rnRJ4dpSBKDR2M1itf4Ah6tZZm5xuNZFPH", - "key_type" : "secp256k1", - "master_key" : "FLOG SEND GOES CUFF GAGE FAT ANTI DEL GUM TIRE ISLE BEAR", - "master_seed" : "snheH5UUjU4CWqiNVLny2k21TyKPC", - "master_seed_hex" : "A9F859765EB8614D26809836382AFB82", - "public_key" : "aBR4hxFXcDNHnGYvTiqb2KU8TTTV1cYV9wXTAuz2DjBm7S8TYEBU", - "public_key_hex" : "03C09A5D112B393D531E4F092E3A5769A5752129F0A9C55C61B3A226BB9B567B9B", - "status" : "success" - } +``` +$ rippled wallet_propose +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "account_id" : "rnRJ4dpSBKDR2M1itf4Ah6tZZm5xuNZFPH", + "key_type" : "secp256k1", + "master_key" : "FLOG SEND GOES CUFF GAGE FAT ANTI DEL GUM TIRE ISLE BEAR", + "master_seed" : "snheH5UUjU4CWqiNVLny2k21TyKPC", + "master_seed_hex" : "A9F859765EB8614D26809836382AFB82", + "public_key" : "aBR4hxFXcDNHnGYvTiqb2KU8TTTV1cYV9wXTAuz2DjBm7S8TYEBU", + "public_key_hex" : "03C09A5D112B393D531E4F092E3A5769A5752129F0A9C55C61B3A226BB9B567B9B", + "status" : "success" } +} +``` Take note of the `account_id` (XRP Ledger Address) and `master_seed` (secret key) for each one you generate. ## 3. Send SignerListSet transaction -[Sign and submit](transactions.html#signing-and-submitting-transactions) a [SignerListSet transaction][] in the normal (single-signature) way. This associates a signer list with your XRP Ledger address, so that a combination of signatures from the members of that signer list can multi-sign later transactions on your behalf. +[Sign and submit](../../concepts/transactions/index.md#signing-and-submitting-transactions) a [SignerListSet transaction][] in the normal (single-signature) way. This associates a signer list with your XRP Ledger address, so that a combination of signatures from the members of that signer list can multi-sign later transactions on your behalf. In this example, the signer list has 3 members, with the weights and quorum set up such that multi-signed transactions need a signature from `rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW` plus at least one signature from the other two members of the list. -{% include '_snippets/secret-key-warning.md' %} - +{% partial file="/_snippets/secret-key-warning.md" /%} - $ rippled submit shqZZy2Rzs9ZqWTCQAdqc3bKgxnYq '{ - > "Flags": 0, - > "TransactionType": "SignerListSet", - > "Account": "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", - > "Fee": "10000", - > "SignerQuorum": 3, - > "SignerEntries": [ - > { - > "SignerEntry": { - > "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - > "SignerWeight": 2 - > } - > }, - > { - > "SignerEntry": { - > "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - > "SignerWeight": 1 - > } - > }, - > { - > "SignerEntry": { - > "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - > "SignerWeight": 1 - > } - > } - > ] - > }' - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "12000C2200000000240000000120230000000368400000000000271073210303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D74473045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F04281142DECAB42CA805119A9BA2FF305C9AFA12F0B86A1F4EB1300028114204288D2E47F8EF6C99BCC457966320D12409711E1EB13000181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1EB13000181143A4C02EA95AD6AC3BED92FA036E0BBFB712C030CE1F1", - "tx_json" : { - "Account" : "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", - "Fee" : "10000", - "Flags" : 0, - "Sequence" : 1, - "SignerEntries" : [ - { - "SignerEntry" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight" : 2 - } - }, - { - "SignerEntry" : { - "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight" : 1 - } - }, - { - "SignerEntry" : { - "Account" : "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight" : 1 - } - } - ], - "SignerQuorum" : 3, - "SigningPubKey" : "0303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D", - "TransactionType" : "SignerListSet", - "TxnSignature" : "3045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F042", - "hash" : "3950D98AD20DA52EBB1F3937EF32F382D74092A4C8DF9A0B1A06ED25200B5756" - } - } - } -Make sure that the [Transaction Result](transaction-results.html) is [**`tesSUCCESS`**](tes-success.html). Otherwise, the transaction failed. If you have a problem in stand-alone mode or a non-production network, check that [multi-sign is enabled](start-a-new-genesis-ledger-in-stand-alone-mode.html#settings-in-new-genesis-ledgers). +``` +$ rippled submit shqZZy2Rzs9ZqWTCQAdqc3bKgxnYq '{ +> "Flags": 0, +> "TransactionType": "SignerListSet", +> "Account": "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", +> "Fee": "10000", +> "SignerQuorum": 3, +> "SignerEntries": [ +> { +> "SignerEntry": { +> "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", +> "SignerWeight": 2 +> } +> }, +> { +> "SignerEntry": { +> "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", +> "SignerWeight": 1 +> } +> }, +> { +> "SignerEntry": { +> "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", +> "SignerWeight": 1 +> } +> } +> ] +> }' +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "engine_result" : "tesSUCCESS", + "engine_result_code" : 0, + "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", + "status" : "success", + "tx_blob" : "12000C2200000000240000000120230000000368400000000000271073210303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D74473045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F04281142DECAB42CA805119A9BA2FF305C9AFA12F0B86A1F4EB1300028114204288D2E47F8EF6C99BCC457966320D12409711E1EB13000181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1EB13000181143A4C02EA95AD6AC3BED92FA036E0BBFB712C030CE1F1", + "tx_json" : { + "Account" : "rnBFvgZphmN39GWzUJeUitaP22Fr9be75H", + "Fee" : "10000", + "Flags" : 0, + "Sequence" : 1, + "SignerEntries" : [ + { + "SignerEntry" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight" : 2 + } + }, + { + "SignerEntry" : { + "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight" : 1 + } + }, + { + "SignerEntry" : { + "Account" : "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight" : 1 + } + } + ], + "SignerQuorum" : 3, + "SigningPubKey" : "0303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D", + "TransactionType" : "SignerListSet", + "TxnSignature" : "3045022100BEDFA12502C66DDCB64521972E5356F4DB965F553853D53D4C69B4897F11B4780220595202D1E080345B65BAF8EBD6CA161C227F1B62C7E72EA5CA282B9434A6F042", + "hash" : "3950D98AD20DA52EBB1F3937EF32F382D74092A4C8DF9A0B1A06ED25200B5756" + } + } +} +``` -**Note:** Without the [MultiSignReserve amendment][], the more members in the signer list, the more XRP your address must have for purposes of the [owner reserve](reserves.html#owner-reserves). If your address does not have enough XRP, the transaction fails with [`tecINSUFFICIENT_RESERVE`](tec-codes.html). With the [MultiSignReserve amendment][] enabled, the XRP your address must have for purposes of the [owner reserve](reserves.html#owner-reserves) is 5 XRP, regardless of the number of members in the signer list. See also: [Signer Lists and Reserves](signerlist.html#signer-lists-and-reserves). +Make sure that the [Transaction Result](../../references/protocol/transactions/transaction-results/transaction-results.md) is [**`tesSUCCESS`**](../../references/protocol/transactions/transaction-results/tes-success.md). Otherwise, the transaction failed. If you have a problem in stand-alone mode or a non-production network, check that [multi-sign is enabled](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md#settings-in-new-genesis-ledgers). + +**Note:** Without the [MultiSignReserve amendment][], the more members in the signer list, the more XRP your address must have for purposes of the [owner reserve](../../concepts/accounts/reserves.md#owner-reserves). If your address does not have enough XRP, the transaction fails with [`tecINSUFFICIENT_RESERVE`](../../references/protocol/transactions/transaction-results/tec-codes.md). With the [MultiSignReserve amendment][] enabled, the XRP your address must have for purposes of the [owner reserve](../../concepts/accounts/reserves.md#owner-reserves) is 5 XRP, regardless of the number of members in the signer list. See also: [Signer Lists and Reserves](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md#signer-lists-and-reserves). ## 4. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 5. Confirm the new signer list @@ -151,79 +155,78 @@ Use the [account_objects method][] to confirm that the signer list is associated Normally, an account can own many objects of different types (such as trust lines and offers). If you funded a new address for this tutorial, the signer list is the only object in the response. - $ rippled account_objects rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC validated - Loading: "/etc/opt/ripple/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "account_objects" : [ - { - "Flags" : 0, - "LedgerEntryType" : "SignerList", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", - "PreviousTxnLgrSeq" : 5, - "SignerEntries" : [ - { - "SignerEntry" : { - "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight" : 2 - } - }, - { - "SignerEntry" : { - "Account" : "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight" : 1 - } - }, - { - "SignerEntry" : { - "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight" : 1 - } - } - ], - "SignerListID" : 0, - "SignerQuorum" : 3, - "index" : "79FD203E4DDDF2EA78B798C963487120C048C78652A28682425E47C96D016F92" - } - ], - "ledger_hash" : "56E81069F06492FB410A70218C08169BE3AB3CFD5AEA20E999662D81DC361D9F", - "ledger_index" : 5, - "status" : "success", - "validated" : true - } - } +``` +$ rippled account_objects rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC validated +Loading: "/etc/opt/ripple/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "account_objects" : [ + { + "Flags" : 0, + "LedgerEntryType" : "SignerList", + "OwnerNode" : "0000000000000000", + "PreviousTxnID" : "8FDC18960455C196A8C4DE0D24799209A21F4A17E32102B5162BD79466B90222", + "PreviousTxnLgrSeq" : 5, + "SignerEntries" : [ + { + "SignerEntry" : { + "Account" : "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight" : 2 + } + }, + { + "SignerEntry" : { + "Account" : "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight" : 1 + } + }, + { + "SignerEntry" : { + "Account" : "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight" : 1 + } + } + ], + "SignerListID" : 0, + "SignerQuorum" : 3, + "index" : "79FD203E4DDDF2EA78B798C963487120C048C78652A28682425E47C96D016F92" + } + ], + "ledger_hash" : "56E81069F06492FB410A70218C08169BE3AB3CFD5AEA20E999662D81DC361D9F", + "ledger_index" : 5, + "status" : "success", + "validated" : true + } +} +``` If the signer list is present with the expected contents, then your address is ready to multi-sign. ## 6. Further steps -At this point, your address is ready to [send a multi-signed transaction](send-a-multi-signed-transaction.html). You may also want to: +At this point, your address is ready to [send a multi-signed transaction](send-a-multi-signed-transaction.md). You may also want to: -* [Disable the address's master key pair](disable-master-key-pair.html). -* [Remove the address's regular key pair](change-or-remove-a-regular-key-pair.html) (if you previously set one) by sending a [SetRegularKey transaction][]. +* [Disable the address's master key pair](disable-master-key-pair.md). +* [Remove the address's regular key pair](change-or-remove-a-regular-key-pair.md) (if you previously set one) by sending a [SetRegularKey transaction][]. ## See Also - **Concepts:** - - [Cryptographic Keys](cryptographic-keys.html) - - [Multi-Signing](multi-signing.html) + - [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md) + - [Multi-Signing](../../concepts/accounts/multi-signing.md) - **Tutorials:** - - [Install rippled](install-rippled.html) - - [Assign a Regular Key Pair](assign-a-regular-key-pair.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) - - [Enable Public Signing](enable-public-signing.html) + - [Install rippled](../../infrastructure/installation/index.md) + - [Assign a Regular Key Pair](assign-a-regular-key-pair.md) + - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) + - [Enable Public Signing](../../infrastructure/configuration/enable-public-signing.md) - **References:** - [wallet_propose method][] - [account_objects method][] - [sign_for method][] - [submit_multisigned method][] - [SignerListSet transaction][] - - [SignerList object](signerlist.html) + - [SignerList object](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/manage-account-settings/use-tickets.md b/content/tutorials/manage-account-settings/use-tickets.md index 5387a74102..9c7143184e 100644 --- a/content/tutorials/manage-account-settings/use-tickets.md +++ b/content/tutorials/manage-account-settings/use-tickets.md @@ -10,7 +10,7 @@ labels: --- # Use Tickets -[Tickets](tickets.html) provide a way to send transactions out of the normal order. This tutorial walks through the steps of creating a Ticket, then using it to send another transaction. +[Tickets](../../concepts/accounts/tickets.md) provide a way to send transactions out of the normal order. This tutorial walks through the steps of creating a Ticket, then using it to send another transaction. ## Prerequisites @@ -18,7 +18,7 @@ labels: {% set use_network = "Testnet" %} -This page provides JavaScript examples that use the [xrpl.js](https://js.xrpl.org/) library. See [Get Started Using JavaScript](get-started-using-javascript.html) for setup instructions. +This page provides JavaScript examples that use the [xrpl.js](https://js.xrpl.org/) library. See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup instructions. Since JavaScript works in the web browser, you can read along and use the interactive steps without any setup. @@ -36,43 +36,43 @@ This tutorial is divided into a few phases: ### {{n.next()}}. Get Credentials -To transact on the XRP Ledger, you need an address and secret key, and some XRP. For development purposes, you can get these on the [{{use_network}}](parallel-networks.html) using the following interface: +To transact on the XRP Ledger, you need an address and secret key, and some XRP. For development purposes, you can get these on the [{{use_network}}](../../concepts/networks-and-servers/parallel-networks.md) using the following interface: -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](secure-signing.html). +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). ### {{n.next()}}. Connect to Network You must be connected to the network to submit transactions to it. Since Tickets are only available on Devnet so far, you should connect to a Devnet server. For example: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Connect to" before="// Get credentials" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Connect to", end_before="// Get credentials") }} - - +{% /tabs %} **Note:** The code samples in this tutorial use JavaScript's [`async`/`await` pattern](https://javascript.info/async-await). Since `await` needs to be used from within an `async` function, the remaining code samples are written to continue inside the `main()` function started here. You can also use Promise methods `.then()` and `.catch()` instead of `async`/`await` if you prefer. For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Check Sequence Number Before you create any Tickets, you should check what [Sequence Number][] your account is at. You want the current Sequence number for the next step, and the Ticket Sequence numbers it sets aside start from this number. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Check Sequence" before="// Prepare and Sign TicketCreate" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Check Sequence", end_before="// Prepare and Sign TicketCreate") }} - - +{% /tabs %} {{ start_step("Check Sequence") }} @@ -86,15 +86,15 @@ _JavaScript_ Construct a [TicketCreate transaction][] using the sequence number you determined in the previous step. Use the `TicketCount` field to specify how many Tickets to create. For example, to prepare a transaction that would make 10 Tickets: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Prepare and Sign TicketCreate" before="// Submit TicketCreate" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Prepare and Sign TicketCreate", end_before="// Submit TicketCreate") }} +{% /tabs %} - - -Record the transaction's hash and `LastLedgerSequence` value so you can [be sure whether or not it got validated](reliable-transaction-submission.html) later. +Record the transaction's hash and `LastLedgerSequence` value so you can [be sure whether or not it got validated](../../concepts/transactions/reliable-transaction-submission.md) later. {{ start_step("Prepare & Sign") }} @@ -108,13 +108,13 @@ Record the transaction's hash and `LastLedgerSequence` value so you can [be sure Submit the signed transaction blob that you created in the previous step. For example: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Submit TicketCreate" before="// Wait for Validation" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Submit TicketCreate", end_before="// Wait for Validation") }} - - +{% /tabs %} {{ start_step("Submit") }} @@ -125,18 +125,18 @@ _JavaScript_ ### {{n.next()}}. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](reliable-transaction-submission.html).) +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Wait for Validation" before="// Check Available" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Wait for Validation", end_before="// Check Available") }} - - +{% /tabs %} {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -159,13 +159,13 @@ The power of Tickets is that you can carry on with your account's business as us When you want to send a Ticketed transaction, you need to know what Ticket Sequence number to use for it. If you've been keeping careful track of your account, you already know which Tickets you have, but if you're not sure, you can use the [account_objects method][] to look up your available tickets. For example: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Check Available Tickets" before="// Prepare and Sign Ticketed" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Check Available Tickets", end_before="// Prepare and Sign Ticketed") }} - - +{% /tabs %} {{ start_step("Check Tickets") }} @@ -179,20 +179,22 @@ _JavaScript_ Now that you have a Ticket available, you can prepare a transaction that uses it. -This can be any [type of transaction](transaction-types.html) you like. The following example uses a no-op [AccountSet transaction][] since that doesn't require any other setup in the ledger. Set the `Sequence` field to `0` and include a `TicketSequence` field with the Ticket Sequence number of one of your available Tickets. +This can be any [type of transaction](../../references/protocol/transactions/types/index.md) you like. The following example uses a no-op [AccountSet transaction][] since that doesn't require any other setup in the ledger. Set the `Sequence` field to `0` and include a `TicketSequence` field with the Ticket Sequence number of one of your available Tickets. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Prepare and Sign Ticketed" before="// Submit Ticketed Transaction" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Prepare and Sign Ticketed", end_before="// Submit Ticketed Transaction") }} +{% /tabs %} - +{% admonition type="success" name="Tip" %} +If you don't plan to submit the TicketCreate transaction right away, you should be sure not to set the `LastLedgerSequence` so that the transaction does not expire. The way you do this varies by library: -> **Tip:** If you don't plan to submit the TicketCreate transaction right away, you should be sure not to set the `LastLedgerSequence` so that the transaction does not expire. The way you do this varies by library: -> -> - **xrpl.js:** Specify `"LastLedgerSequence": null` when auto-filling the transaction. -> - **`rippled`:** Omit `LastLedgerSequence` from the prepared instructions. The server does not provide a value by default. +- **xrpl.js:** Specify `"LastLedgerSequence": null` when auto-filling the transaction. +- **`rippled`:** Omit `LastLedgerSequence` from the prepared instructions. The server does not provide a value by default. +{% /admonition %} {{ start_step("Prepare Ticketed Tx") }}
          @@ -208,13 +210,13 @@ _JavaScript_ Submit the signed transaction blob that you created in the previous step. For example: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/use-tickets/js/use-tickets.js" from="// Submit Ticketed Transaction" before="// Wait for Validation (again)" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/use-tickets/js/use-tickets.js", language="js", start_with="// Submit Ticketed Transaction", end_before="// Wait for Validation (again)") }} - - +{% /tabs %} {{ start_step("Submit Ticketed Tx") }} @@ -227,14 +229,14 @@ _JavaScript_ Ticketed transactions go through the consensus process the same way that Sequenced transactions do. {{ start_step("Wait Again") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ## With Multi-Signing -One of the main use cases for Tickets is to be able to collect signatures for several [multi-signed transactions](multi-signing.html) in parallel. By using a Ticket, you can send a multi-signed transaction as soon as it is fully signed and ready to go, without worrying about which one will be ready first. +One of the main use cases for Tickets is to be able to collect signatures for several [multi-signed transactions](../../concepts/accounts/multi-signing.md) in parallel. By using a Ticket, you can send a multi-signed transaction as soon as it is fully signed and ready to go, without worrying about which one will be ready first. -In this scenario, [step 8, "Prepare Ticketed Transaction"](#8-prepare-ticketed-transaction) is slightly different. Instead of preparing and signing all at once, you would follow the steps for [sending any multi-signed transaction](send-a-multi-signed-transaction.html): first prepare the transaction, then circulate it among trusted signers to collect their signatures, and finally combine the signatures into the final multi-signed transaction. +In this scenario, [step 8, "Prepare Ticketed Transaction"](#8-prepare-ticketed-transaction) is slightly different. Instead of preparing and signing all at once, you would follow the steps for [sending any multi-signed transaction](send-a-multi-signed-transaction.md): first prepare the transaction, then circulate it among trusted signers to collect their signatures, and finally combine the signatures into the final multi-signed transaction. You could do this in parallel for several different potential transactions as long as each one uses a different Ticket. @@ -242,19 +244,16 @@ You could do this in parallel for several different potential transactions as lo ## See Also - **Concepts:** - - [Tickets](tickets.html) - - [Multi-Signing](multi-signing.html) + - [Tickets](../../concepts/accounts/tickets.md) + - [Multi-Signing](../../concepts/accounts/multi-signing.md) - **Tutorials:** - - [Set Up Multi-Signing](set-up-multi-signing.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Set Up Multi-Signing](set-up-multi-signing.md) + - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) - **References:** - [account_objects method][] - [sign_for method][] - [submit_multisigned method][] - [TicketCreate transaction][] - - [Transaction Common Fields](transaction-common-fields.html) + - [Transaction Common Fields](../../references/protocol/transactions/common-fields.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/python/index.md b/content/tutorials/python/index.md index 601a6ea9b2..2f5b678716 100644 --- a/content/tutorials/python/index.md +++ b/content/tutorials/python/index.md @@ -2,8 +2,12 @@ html: python.html parent: tutorials.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Python -XRPL tutorials in Python. \ No newline at end of file +XRPL tutorials in Python. + + +{% child-pages /%} diff --git a/content/tutorials/python/modular-tutorials-in-python/index.md b/content/tutorials/python/modular-tutorials-in-python/index.md index 8cd1a663a6..c1117246ea 100644 --- a/content/tutorials/python/modular-tutorials-in-python/index.md +++ b/content/tutorials/python/modular-tutorials-in-python/index.md @@ -2,9 +2,13 @@ html: modular-tutorials-in-python.html parent: python.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Modular XRPL tutorials in Python. --- # Modular Tutorials in Python -These tutorials take an incremental approach to implementing functionality, so you can reuse parts from the earlier tutorials on your way to making more advanced software. \ No newline at end of file +These tutorials take an incremental approach to implementing functionality, so you can reuse parts from the earlier tutorials on your way to making more advanced software. + + +{% child-pages /%} diff --git a/content/tutorials/python/modular-tutorials-in-python/nfts-using-python/index.md b/content/tutorials/python/modular-tutorials-in-python/nfts-using-python/index.md index 42d86ff43d..e0fb99c83c 100644 --- a/content/tutorials/python/modular-tutorials-in-python/nfts-using-python/index.md +++ b/content/tutorials/python/modular-tutorials-in-python/nfts-using-python/index.md @@ -2,9 +2,13 @@ html: nfts-using-python.html parent: modular-tutorials-in-python.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Mint and sell NFTs on the XRP Ledger using Python. --- # NFTs Using Python -Mint and sell NFTs on the XRP Ledger using Python. \ No newline at end of file +Mint and sell NFTs on the XRP Ledger using Python. + + +{% child-pages /%} diff --git a/content/tutorials/quickstart/assign-an-authorized-minter-using-javascript.md b/content/tutorials/quickstart/assign-an-authorized-minter-using-javascript.md index 8b401478a2..4fa2a0852a 100644 --- a/content/tutorials/quickstart/assign-an-authorized-minter-using-javascript.md +++ b/content/tutorials/quickstart/assign-an-authorized-minter-using-javascript.md @@ -17,7 +17,7 @@ This example shows how to: 1. Authorize an account to create NFTs for your account. 2. Mint an NFT for another account, when authorized. -[![Token Test Harness](img/quickstart28.png)](img/quickstart28.png) +[![Token Test Harness](/img/quickstart28.png)](/img/quickstart28.png) # Usage @@ -42,7 +42,7 @@ To authorize another account to create NFTs for your account: 2. Paste the **Operational Account** value in the **Authorized Minter** field. 3. Click **Set Minter**. -[![Authorized Minter](img/quickstart29.png)](img/quickstart29.png) +[![Authorized Minter](/img/quickstart29.png)](/img/quickstart29.png) ## Mint an NFT for Another Account @@ -61,7 +61,7 @@ To mint a non-fungible token for another account: 5. Paste the **Standby Account** value in the Operational account **Issuer** field. 6. Click the Operational account **Mint Other** button. -[![Minted NFT for Another Account](img/quickstart30.png)](img/quickstart30.png) +[![Minted NFT for Another Account](/img/quickstart30.png)](/img/quickstart30.png) Once the item is minted, the authorized minter can sell the NFT normally. The proceeds go to the authorized minter, less the transfer fee. The minter and the issuer can settle up on a division of the price separately. @@ -77,7 +77,7 @@ To create an NFT sell offer: The important piece of information in the response is the NFT Offer Index, labeled as `nft_offer_index`, which is used to accept the sell offer. -[![NFT Sell Offer](img/quickstart31.png)](img/quickstart31.png) +[![NFT Sell Offer](/img/quickstart31.png)](/img/quickstart31.png) ## Accept Sell Offer @@ -90,7 +90,7 @@ To accept an available sell offer: 2. Click **Accept Sell Offer**. The results show that the Issuer account has been credited 25 XRP. The Buyer account was debited the 100 XRP price plus 12 drops as the transaction cost. The Seller (Authorized Minter) account is credited 75 XRP. the Issuer and the Seller can divide the proceeds per their agreement in a separate transaction. -[![Transaction Results](img/quickstart32.png)](img/quickstart32.png) +[![Transaction Results](/img/quickstart32.png)](/img/quickstart32.png) # Code Walkthrough @@ -208,7 +208,7 @@ Report success standbyResultField.value = results ``` -This transaction blob is the same as the one used for the previous [`mintToken()` function](mint-and-burn-nfts-using-javascript.html#mint-token), with the addition of the `Issuer` field. +This transaction blob is the same as the one used for the previous [`mintToken()` function](mint-and-burn-nfts-using-javascript.md#mint-token), with the addition of the `Issuer` field. ```javascript const tx_json = { @@ -514,25 +514,25 @@ Update the form with fields and buttons to support the new functions. - Authorized Minter - + Authorized Minter + - Issuer - + Issuer + - Destination - + Destination + - - Expiration - - - - Transfer Fee - - + + Expiration + + + + Transfer Fee + +

          @@ -715,25 +715,25 @@ Update the form with fields and buttons to support the new functions. - Authorized Minter - + Authorized Minter + - Issuer - + Issuer + - - Destination - - - - Expiration - - - - Transfer Fee - - + + Destination + + + + Expiration + + + + Transfer Fee + +

          diff --git a/content/tutorials/quickstart/batch-mint-nfts-using-javascript.md b/content/tutorials/quickstart/batch-mint-nfts-using-javascript.md index d0ded7ae9e..18ed35134a 100644 --- a/content/tutorials/quickstart/batch-mint-nfts-using-javascript.md +++ b/content/tutorials/quickstart/batch-mint-nfts-using-javascript.md @@ -14,7 +14,7 @@ You can create an application that mints multiple NFTs at one time. You can use A best practice is to use `Tickets` to reserve the transaction sequence numbers. If you create an application that creates NFTs without using tickets, if any transaction fails for any reason, the application stops with an error. If you use tickets, the application continues to send transactions, and you can look into the reason for any individual failures afterward. -[![Batch Mint](img/quickstart33-batch-mint.png)](img/quickstart33-batch-mint.png) +[![Batch Mint](/img/quickstart33-batch-mint.png)](/img/quickstart33-batch-mint.png) ## Usage @@ -41,7 +41,7 @@ This example lets you mint multiple NFTs for a single unique item. The NFT might To batch mint a non-fungible token objects: -1. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](nftokenmint.html) for information about all of the available flags for minting NFTs. +1. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](../../references/protocol/transactions/types/nftokenmint.md) for information about all of the available flags for minting NFTs. 2. Enter the **Token URL**. This is a URI that points to the data or metadata associated with the NFT object. You can use the sample URI provided if you do not have one of your own. 3. Enter a **Token Count** of up to 200 NFTs to create in one batch. 4. Enter the **Transfer Fee**, a percentage of the proceeds that the original creator receives from future sales of the NFT. This is a value of 0-50000 inclusive, allowing transfer fees between 0.000% and 50.000% in increments of 0.001%. If you do not set the **Flags** field to allow the NFT to be transferrable, set this field to 0. @@ -68,42 +68,42 @@ async function getAccountFromSeed() { Connect to the XRP Ledger. ```javascript - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '....' - standbyResultField.value = results - await client.connect() - results += '\nConnected, finding wallets.\n' - standbyResultField.value = results + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '....' + standbyResultField.value = results + await client.connect() + results += '\nConnected, finding wallets.\n' + standbyResultField.value = results ``` Use the seed to derive the account. ```javascript - var theSeed = seeds.value - const standby_wallet = xrpl.Wallet.fromSeed(theSeed) + var theSeed = seeds.value + const standby_wallet = xrpl.Wallet.fromSeed(theSeed) ``` Get the current XRP balance. -```javascript +```javascript const standby_balance = (await client.getXrpBalance(standby_wallet.address)) -``` +``` Populate the fields for Standby account. ```javascript - standbyAccountField.value = standby_wallet.address - standbyPubKeyField.value = standby_wallet.publicKey - standbyPrivKeyField.value = standby_wallet.privateKey - standbySeedField.value = standby_wallet.seed - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + standbyAccountField.value = standby_wallet.address + standbyPubKeyField.value = standby_wallet.publicKey + standbyPrivKeyField.value = standby_wallet.privateKey + standbySeedField.value = standby_wallet.seed + standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) ``` Disconnect from the XRP Ledger. ```javascript - client.disconnect() + client.disconnect() } ``` @@ -268,28 +268,28 @@ Use a `for` loop to create the NFTs one at a time, up to the number you specifie ```javascript for (let i=0; i < nftCount; i++) { - const transactionBlob = { - "TransactionType": "NFTokenMint", - "Account": standby_wallet.classicAddress, - "URI": xrpl.convertStringToHex(standbyTokenUrlField.value), - "Flags": parseInt(standbyFlagsField.value), - "TransferFee": parseInt(standbyTransferFeeField.value), - "Sequence": 0, + const transactionBlob = { + "TransactionType": "NFTokenMint", + "Account": standby_wallet.classicAddress, + "URI": xrpl.convertStringToHex(standbyTokenUrlField.value), + "Flags": parseInt(standbyFlagsField.value), + "TransferFee": parseInt(standbyTransferFeeField.value), + "Sequence": 0, ``` Use the loop variable to step through the array. Set the `LastLedgerSequence` to `null`. ```javascript - "TicketSequence": tickets[i], - "LastLedgerSequence": null, - "NFTokenTaxon": 0 - } + "TicketSequence": tickets[i], + "LastLedgerSequence": null, + "NFTokenTaxon": 0 + } ``` Submit the signed transaction hash. ```javascript - const tx = client.submit(transactionBlob, { wallet: standby_wallet} ) + const tx = client.submit(transactionBlob, { wallet: standby_wallet} ) } ``` @@ -306,12 +306,12 @@ Use the same logic as `getBatchNFTs`, above, to get the list of current NFTs. results += JSON.stringify(nfts,null,2) while (nfts.result.marker) { - nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress, - limit: 400, - marker: nfts.result.marker - }) + nfts = await client.request({ + method: "account_nfts", + account: standby_wallet.classicAddress, + limit: 400, + marker: nfts.result.marker + }) results += '\n' + JSON.stringify(nfts,null,2) } ``` @@ -319,10 +319,10 @@ Use the same logic as `getBatchNFTs`, above, to get the list of current NFTs. Report the results. ```javascript - results += '\n\nTransaction result: '+ tx.result.meta.TransactionResult - results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - standbyResultField.value = results + results += '\n\nTransaction result: '+ tx.result.meta.TransactionResult + results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2) + standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + standbyResultField.value = results ``` Disconnect from the XRP Ledger. @@ -384,109 +384,109 @@ For this form:


          - - - -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - Standby Account - - -
          -
          - Public Key - - -
          -
          - Private Key - - -
          -
          - Seed - - -
          -
          - XRP Balance - - -
          -
          - - -
          - Currency - - -
          NFT URL -
          Flags
          NFT ID
          - NFT Count - - -
          -
          Transfer Fee
          -
          - -
          - -
          -

          - + + + + -
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + Standby Account + + +
          +
          + Public Key + + +
          +
          + Private Key + + +
          +
          + Seed + + +
          +
          + XRP Balance + + +
          +
          + + +
          + Currency + + +
          NFT URL +
          Flags
          NFT ID
          + NFT Count + + +
          +
          Transfer Fee
          +
          + +
          + +
          +

          + diff --git a/content/tutorials/quickstart/broker-an-nft-sale-using-javascript.md b/content/tutorials/quickstart/broker-an-nft-sale-using-javascript.md index 53e1774712..47932d495b 100644 --- a/content/tutorials/quickstart/broker-an-nft-sale-using-javascript.md +++ b/content/tutorials/quickstart/broker-an-nft-sale-using-javascript.md @@ -20,7 +20,7 @@ This example shows how to: 2. Get a list of offers for the brokered item. 3. Broker a sale between two different accounts. -[![Quickstart form with Broker Account](img/quickstart21.png)](img/quickstart21.png) +[![Quickstart form with Broker Account](/img/quickstart21.png)](/img/quickstart21.png) You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/js/){.github-code-download} archive to try each of the samples in your own browser. @@ -37,7 +37,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 2. Click **Get New Operational Account**. 3. Click **Get New Broker Account** -[![Quickstart form with Account Information](img/quickstart22.png)](img/quickstart22.png) +[![Quickstart form with Account Information](/img/quickstart22.png)](/img/quickstart22.png) ## Prepare a Brokered Transaction @@ -46,31 +46,31 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 1. Use the Standby account to create an NFT Sell Offer with the Broker account as the destination. - 1. Enter the **Amount** of the sell offer in drops (millionths of an XRP). - 2. Set the **Flags** field to _1_. - 3. Enter the **NFT ID** of the NFT you want to sell. - 4. Optionally, enter a number of days until **Expiration**. - 5. Enter the Broker account number as the **Destination**. - 6. Click **Create Sell Offer**. + 1. Enter the **Amount** of the sell offer in drops (millionths of an XRP). + 2. Set the **Flags** field to _1_. + 3. Enter the **NFT ID** of the NFT you want to sell. + 4. Optionally, enter a number of days until **Expiration**. + 5. Enter the Broker account number as the **Destination**. + 6. Click **Create Sell Offer**. -[![Sell Offer with Destination](img/quickstart23.png)](img/quickstart23.png) +[![Sell Offer with Destination](/img/quickstart23.png)](/img/quickstart23.png) 2. Use the Operational account to create an NFT Buy Offer. - 1. Enter the **Amount** of your offer. - 2. Enter the **NFT ID**. - 3. Enter the owner’s account string in the **Owner** field. - 4. Optionally enter the number of days until **Expiration**. - 5. Click **Create Buy Offer**. + 1. Enter the **Amount** of your offer. + 2. Enter the **NFT ID**. + 3. Enter the owner’s account string in the **Owner** field. + 4. Optionally enter the number of days until **Expiration**. + 5. Click **Create Buy Offer**. -[![Buy Offer](img/quickstart24.png)](img/quickstart24.png) +[![Buy Offer](/img/quickstart24.png)](/img/quickstart24.png) ## Get Offers 1. Enter the **NFT ID**. 2. Click **Get Offers**. -[![Get Offers](img/quickstart25.png)](img/quickstart25.png) +[![Get Offers](/img/quickstart25.png)](/img/quickstart25.png) ## Broker the Sale @@ -79,7 +79,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 3. Enter a **Broker Fee**, in drops. 4. Click **Broker Sale**. -[![Brokered Sale](img/quickstart26.png)](img/quickstart26.png) +[![Brokered Sale](/img/quickstart26.png)](/img/quickstart26.png) ## Cancel Offer @@ -89,7 +89,7 @@ After accepting a buy offer, a best practice for the broker is to cancel all oth 1. Enter the _nft_offer_index_ of the buy offer you want to cancel in the **Buy NFT Offer Index** field. 2. Click **Cancel Offer**. -[![Cancel Offer](img/quickstart27.png)](img/quickstart27.png) +[![Cancel Offer](/img/quickstart27.png)](/img/quickstart27.png) # Code Walkthrough @@ -119,7 +119,7 @@ Connect to the ledger. brokerResultField.value = results await client.connect() results += '\nConnected. Getting offers...' - brokerResultField.value = results + brokerResultField.value = results ``` Request the list of sell offers for the token. @@ -136,7 +136,7 @@ Request the list of sell offers for the token. nftSellOffers = 'No sell offers.' } results += JSON.stringify(nftSellOffers,null,2) - brokerResultField.value = results + brokerResultField.value = results ``` Request the list of buy offers for the token. @@ -153,7 +153,7 @@ Request the list of buy offers for the token. nftBuyOffers = 'No buy offers.' } results += JSON.stringify(nftBuyOffers,null,2) - brokerResultField.value = results + brokerResultField.value = results ``` Disconnect from the ledger. @@ -172,16 +172,16 @@ async function brokerSale() { Connect to the ledger and get the accounts. ```javascript - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - const broker_wallet = xrpl.Wallet.fromSeed (brokerSeedField.value) - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '...' - brokerResultField.value = results - await client.connect() - results += '\nConnected. Brokering sale...' - brokerResultField.value = results + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + const broker_wallet = xrpl.Wallet.fromSeed (brokerSeedField.value) + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '...' + brokerResultField.value = results + await client.connect() + results += '\nConnected. Brokering sale...' + brokerResultField.value = results ``` Prepare the transaction. The difference between a brokered sale and a direct sale is that you provide both a sell offer and a buy offer, with an agreed-upon broker's fee. @@ -205,14 +205,14 @@ Prepare the transaction. The difference between a brokered sale and a direct sal Report the results. ```javascript - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - brokerBalanceField.value = (await client.getXrpBalance(broker_wallet.address)) - brokerResultField.value = results + results += "\n\nTransaction result:\n" + + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += "\nBalance changes:\n" + + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + brokerBalanceField.value = (await client.getXrpBalance(broker_wallet.address)) + brokerResultField.value = results ``` Disconnect from the ledger. @@ -237,9 +237,9 @@ Get the broker account and connect to the ledger. ```javascript const wallet = xrpl.Wallet.fromSeed(brokerSeedField.value) - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '...' + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '...' brokerResultField.value = results await client.connect() results += "\nConnected. Cancelling offer..." @@ -456,13 +456,13 @@ async function getAccountsFromSeeds() { Connect to the ledger. ```javascript - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '....' - standbyResultField.value = results - await client.connect() - results += '\nConnected, finding wallets.\n' - standbyResultField.value = results + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '....' + standbyResultField.value = results + await client.connect() + results += '\nConnected, finding wallets.\n' + standbyResultField.value = results ``` Use the `split` function to parse the values from the **Seeds** field. @@ -490,23 +490,23 @@ Get the XRP balances for the accounts. Populate the form fields based on the account values. ```javascript - standbyAccountField.value = standby_wallet.address - standbyPubKeyField.value = standby_wallet.publicKey - standbyPrivKeyField.value = standby_wallet.privateKey - standbySeedField.value = standby_wallet.seed - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + standbyAccountField.value = standby_wallet.address + standbyPubKeyField.value = standby_wallet.publicKey + standbyPrivKeyField.value = standby_wallet.privateKey + standbySeedField.value = standby_wallet.seed + standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalAccountField.value = operational_wallet.address - operationalPubKeyField.value = operational_wallet.publicKey - operationalPrivKeyField.value = operational_wallet.privateKey - operationalSeedField.value = operational_wallet.seed - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + operationalAccountField.value = operational_wallet.address + operationalPubKeyField.value = operational_wallet.publicKey + operationalPrivKeyField.value = operational_wallet.privateKey + operationalSeedField.value = operational_wallet.seed + operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - brokerAccountField.value = broker_wallet.address - brokerPubKeyField.value = broker_wallet.publicKey - brokerPrivKeyField.value = broker_wallet.privateKey - brokerSeedField.value = broker_wallet.seed - brokerBalanceField.value = (await client.getXrpBalance(broker_wallet.address)) + brokerAccountField.value = broker_wallet.address + brokerPubKeyField.value = broker_wallet.publicKey + brokerPrivKeyField.value = broker_wallet.privateKey + brokerSeedField.value = broker_wallet.seed + brokerBalanceField.value = (await client.getXrpBalance(broker_wallet.address)) ``` Disconnect from the ledger. @@ -519,7 +519,7 @@ Use the `getBalances()` function to get the current balances of fiat currency. ```javascript getBalances() - + } // End of getAccountsFromSeeds() ``` @@ -661,93 +661,93 @@ Revise the HTML form to add a new Broker section at the top.


          - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          - -
          - Broker Account - - - - - -
          - Public Key - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          + +
          + Broker Account + + + + + +
          + Public Key + + -
          -
          - Private Key - - - -
          -
          - Seed -
          -
          - -
          - XRP Balance - - -
          -
          - Amount - - -
          -
          NFT ID
          Sell NFT Offer Index
          Buy NFT Offer Index
          Owner
          Broker Fee
          -

          +
          +
          + Private Key + + + +
          +
          + Seed +
          +
          + +
          + XRP Balance + + +
          +
          + Amount + + +
          +
          NFT ID
          Sell NFT Offer Index
          Buy NFT Offer Index
          Owner
          Broker Fee
          +

          - + - - - - - - + + + + + + diff --git a/content/tutorials/quickstart/create-accounts-send-xrp-using-javascript.md b/content/tutorials/quickstart/create-accounts-send-xrp-using-javascript.md index d88cf98bad..d88d5a85d8 100644 --- a/content/tutorials/quickstart/create-accounts-send-xrp-using-javascript.md +++ b/content/tutorials/quickstart/create-accounts-send-xrp-using-javascript.md @@ -18,14 +18,14 @@ This example shows how to: When you create an account, you receive a public/private key pair offline. Your account does not appear on the ledger until it is funded with XRP. This example shows how to create accounts for Testnet, but not how to create an account that you can use on Mainnet. -[![Token Test Harness](img/quickstart2.png)](img/quickstart2.png) +[![Token Test Harness](/img/quickstart2.png)](/img/quickstart2.png) ## Prerequisites To get started, create a new folder on your local disk and install the JavaScript library using `npm`. ``` - npm install xrpl +npm install xrpl ``` Download and expand the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/js/){.github-code-download} archive. @@ -46,7 +46,7 @@ To get test accounts: 4. Click **Get New Operational Account.** 5. Copy and paste the **Seeds** field in a persistent location, such as a Notepad, so that you can reuse the accounts after reloading the form. -[![Standby and Operational Accounts](img/quickstart3.png)](img/quickstart3.png) +[![Standby and Operational Accounts](/img/quickstart3.png)](/img/quickstart3.png) You can transfer XRP between your new accounts. Each account has its own fields and buttons. @@ -66,7 +66,7 @@ To transfer XRP from the Operational account to the Standby account: 2. Copy and paste the **Standby Account** field to the Operational **Destination** field. 3. Click **<Send XRP** to transfer XRP from the Operational account to the Standby account. -[![Transferred XRP](img/quickstart4.png)](img/quickstart4.png) +[![Transferred XRP](/img/quickstart4.png)](/img/quickstart4.png) # Code Walkthrough @@ -326,13 +326,13 @@ The _Payment_ transaction expects the XRP to be expressed in drops, or 1/million Sign the prepared transaction. ``` - const signed = standby_wallet.sign(prepared) +const signed = standby_wallet.sign(prepared) ``` Submit the transaction and wait for the results. ``` - const tx = await client.submitAndWait(signed.tx_blob) +const tx = await client.submitAndWait(signed.tx_blob) ``` Request the balance changes caused by the transaction and report the results. diff --git a/content/tutorials/quickstart/create-conditional-escrows-using-javascript.md b/content/tutorials/quickstart/create-conditional-escrows-using-javascript.md index 23e1c32a04..ab82b3321e 100644 --- a/content/tutorials/quickstart/create-conditional-escrows-using-javascript.md +++ b/content/tutorials/quickstart/create-conditional-escrows-using-javascript.md @@ -18,7 +18,7 @@ This example shows how to: 3. Cancel a conditional escrow transaction. -[![Conditional Escrow Tester Form](img/conditional-escrow1.png)](img/conditional-escrow1.png) +[![Conditional Escrow Tester Form](/img/conditional-escrow1.png)](/img/conditional-escrow1.png) ## Prerequisites @@ -42,7 +42,7 @@ To create a condition/fulfillment pair: 2. Enter the command `node getConditionAndFulfillment.js`. 3. Copy and save the generated Condition and Fulfillment pair. -[![Condition and Fulfillment](img/conditional-escrow2.png)](img/conditional-escrow2.png) +[![Condition and Fulfillment](/img/conditional-escrow2.png)](/img/conditional-escrow2.png) To get test accounts: @@ -56,7 +56,7 @@ To get test accounts: 1. Click **Get New Standby Account**. 2. Click **Get New Operational Account**. -[![Escrow Tester with Account Information](img/conditional-escrow3.png)](img/conditional-escrow3.png) +[![Escrow Tester with Account Information](/img/conditional-escrow3.png)](/img/conditional-escrow3.png) ### Create Conditional Escrow: @@ -80,7 +80,7 @@ The escrow is created on the XRP Ledger instance, reserving your requested XRP a When you create an escrow, capture and save the _Sequence Number_ so that you can use it to finish the escrow transaction. -[![Created Escrow Transaction](img/conditional-escrow4.png)](img/conditional-escrow4.png) +[![Created Escrow Transaction](/img/conditional-escrow4.png)](/img/conditional-escrow4.png) ## Finish Conditional Escrow @@ -94,7 +94,7 @@ To finish a time-based escrow: The transaction completes and balances are updated for both the Standby and Operational accounts. -[![Finished Escrow Transaction](img/conditional-escrow5.png)](img/conditional-escrow5.png) +[![Finished Escrow Transaction](/img/conditional-escrow5.png)](/img/conditional-escrow5.png) ## Get Escrows @@ -111,12 +111,12 @@ If you forget to save the sequence number, you can find it in the escrow transac 1. Create a new escrow as described in [Create Escrow](#create-escrow), above. 2. Click **Get Escrows** to get the escrow information. 3. Copy the _PreviousTxnID_ value from the results. - ![Transaction ID in Get Escrows results](img/quickstart-escrow7.png) + ![Transaction ID in Get Escrows results](/img/quickstart-escrow7.png) 4. Paste the _PreviousTxnID_ in the **Transaction to Look Up** field. - ![Transaction to Look Up field](img/quickstart-escrow8.png) + ![Transaction to Look Up field](/img/quickstart-escrow8.png) 5. Click **Get Transaction**. 6. Locate the _Sequence_ value in the results. - ![Sequence number in results](img/quickstart-escrow9.png) + ![Sequence number in results](/img/quickstart-escrow9.png) # Code Walkthrough @@ -662,4 +662,3 @@ Disconnect from the XRPL. ``` - diff --git a/content/tutorials/quickstart/create-time-based-escrows-using-javascript.md b/content/tutorials/quickstart/create-time-based-escrows-using-javascript.md index ebc6724479..f87c1f5ae7 100644 --- a/content/tutorials/quickstart/create-time-based-escrows-using-javascript.md +++ b/content/tutorials/quickstart/create-time-based-escrows-using-javascript.md @@ -19,7 +19,7 @@ This example shows how to: 3. Cancel an escrow payment and return the XRP to the sending account. -[![Escrow Tester Form](img/quickstart-escrow1.png)](img/quickstart-escrow1.png) +[![Escrow Tester Form](/img/quickstart-escrow1.png)](/img/quickstart-escrow1.png) ## Prerequisites @@ -39,7 +39,7 @@ To get test accounts: 1. Click **Get New Standby Account**. 2. Click **Get New Operational Account**. -[![Escrow Tester with Account Information](img/quickstart-escrow2.png)](img/quickstart-escrow2.png) +[![Escrow Tester with Account Information](/img/quickstart-escrow2.png)](/img/quickstart-escrow2.png) ## Create Escrow @@ -61,7 +61,7 @@ To create a time-based escrow: The escrow is created on the XRP Ledger instance, reserving 100 XRP plus the transaction cost. When you create an escrow, capture and save the **Sequence Number** so that you can use it to finish the escrow transaction. -[![Completed Escrow Transaction](img/quickstart-escrow3.png)](img/quickstart-escrow3.png) +[![Completed Escrow Transaction](/img/quickstart-escrow3.png)](/img/quickstart-escrow3.png) ## Finish Escrow @@ -74,7 +74,7 @@ To finish a time-based escrow: The transaction completes and balances are updated for both the Standby and Operational accounts. -[![Completed Escrow Transaction](img/quickstart-escrow4.png)](img/quickstart-escrow4.png) +[![Completed Escrow Transaction](/img/quickstart-escrow4.png)](/img/quickstart-escrow4.png) ## Get Escrows @@ -84,7 +84,7 @@ For the purposes of this tutorial, follow the steps in [Create Escrow](#create-e Click **Get Escrows** for both the Standby and the Operational account. The `account_info` request returns the same `account_object` for both accounts, demonstrating the link between the accounts created by the escrow transaction. -[![Get Escrows results](img/quickstart-escrow5.png)](img/quickstart-escrow5.png) +[![Get Escrows results](/img/quickstart-escrow5.png)](/img/quickstart-escrow5.png) ## Cancel Escrow @@ -100,7 +100,7 @@ To cancel an expired escrow: The funds are returned to the Standby account, less the initial transaction fee. -[![Cancel Escrow results](img/quickstart-escrow6.png)](img/quickstart-escrow6.png) +[![Cancel Escrow results](/img/quickstart-escrow6.png)](/img/quickstart-escrow6.png) ## Oh No! I Forgot to Save the Sequence Number! @@ -109,12 +109,12 @@ If you forget to save the sequence number, you can find it in the escrow transac 1. Create a new escrow as described in [Create Escrow](#create-escrow), above. 2. Click **Get Escrows** to get the escrow information. 3. Copy the _PreviousTxnID_ value from the results. - ![Transaction ID in Get Escrows results](img/quickstart-escrow7.png) + ![Transaction ID in Get Escrows results](/img/quickstart-escrow7.png) 4. Paste the _PreviousTxnID_ in the **Transaction to Look Up** field. - ![Transaction to Look Up field](img/quickstart-escrow8.png) + ![Transaction to Look Up field](/img/quickstart-escrow8.png) 5. Click **Get Transaction**. 6. Locate the _Sequence_ value in the results. - ![Sequence number in results](img/quickstart-escrow9.png) + ![Sequence number in results](/img/quickstart-escrow9.png) # Code Walkthrough @@ -826,4 +826,3 @@ Disconnect from the XRP Ledger instance. ``` - diff --git a/content/tutorials/quickstart/create-trustline-send-currency-using-javascript.md b/content/tutorials/quickstart/create-trustline-send-currency-using-javascript.md index d2d4b11348..6262c74e96 100644 --- a/content/tutorials/quickstart/create-trustline-send-currency-using-javascript.md +++ b/content/tutorials/quickstart/create-trustline-send-currency-using-javascript.md @@ -19,7 +19,7 @@ This example shows how to: 4. Send issued currency between accounts. 5. Display account balances for all currencies. -[![Test harness with currency transfer](img/quickstart5.png)](img/quickstart5.png) +[![Test harness with currency transfer](/img/quickstart5.png)](/img/quickstart5.png) You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/js/){.github-code-download} archive to try each of the samples in your own browser. @@ -51,7 +51,7 @@ To create a trust line between accounts: 3. Enter the destination account value in the **Destination** field. 4. Click **Create Trustline**. -[![Trust line results](img/quickstart6.png)](img/quickstart6.png) +[![Trust line results](/img/quickstart6.png)](/img/quickstart6.png) ## Send an Issued Currency Token @@ -62,7 +62,7 @@ To transfer an issued currency token, once you have created a trust line: 3. Enter the **Currency** type. 4. Click **Send Currency**. -[![Currency transfer](img/quickstart7.png)](img/quickstart7.png) +[![Currency transfer](/img/quickstart7.png)](/img/quickstart7.png) # Code Walkthrough @@ -97,14 +97,14 @@ Connect to the ledger Get the account wallets. ``` - if (type=='standby') { - my_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - } else { - my_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - resultField = 'operationalResultField' - } - results += '\nRipple Default Setting: ' + defaultRippleSetting - resultField.value = results +if (type=='standby') { + my_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) +} else { + my_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + resultField = 'operationalResultField' +} +results += '\nRipple Default Setting: ' + defaultRippleSetting +resultField.value = results ``` Prepare the transaction. If the `rippleDefault` argument is true, set the `asfDefaultRipple` flag. If it is false, clear the `asfDefaultRipple` flag. @@ -806,4 +806,4 @@ Update the form to support the new functions. -``` \ No newline at end of file +``` diff --git a/content/tutorials/quickstart/mint-and-burn-nfts-using-javascript.md b/content/tutorials/quickstart/mint-and-burn-nfts-using-javascript.md index 0032670b4c..a165cbd7d6 100644 --- a/content/tutorials/quickstart/mint-and-burn-nfts-using-javascript.md +++ b/content/tutorials/quickstart/mint-and-burn-nfts-using-javascript.md @@ -15,7 +15,7 @@ This example shows how to: 2. Get a list of existing NFTs. 3. Delete (Burn) an NFT. -[![Test harness with mint NFT fields](img/quickstart8.png)](img/quickstart8.png) +[![Test harness with mint NFT fields](/img/quickstart8.png)](/img/quickstart8.png) # Usage @@ -32,7 +32,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 1. Click **Get New Standby Account**. 2. Click **Get New Operational Account**. -[![Get accounts](img/quickstart9.png)](img/quickstart9.png) +[![Get accounts](/img/quickstart9.png)](/img/quickstart9.png) ## Mint an NFT @@ -42,19 +42,19 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port To mint a non-fungible token object: -1. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](nftokenmint.html) for information about all of the available flags for minting NFTs. +1. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](../../references/protocol/transactions/types/nftokenmint.md) for information about all of the available flags for minting NFTs. 2. Enter the **Token URL**. This is a URI that points to the data or metadata associated with the NFT object. You can use the sample URI provided if you do not have one of your own. 3. Enter the **Transfer Fee**, a percentage of the proceeds from future sales of the NFT that will be returned to the original creator. This is a value of 0-50000 inclusive, allowing transfer rates between 0.000% and 50.000% in increments of 0.001%. If you do not set the **Flags** field to allow the NFT to be transferrable, set this field to 0. 4. Click **Mint NFT**. -[![Mint NFT fields](img/quickstart10.png)](img/quickstart10.png) +[![Mint NFT fields](/img/quickstart10.png)](/img/quickstart10.png) ## Get Tokens Click **Get NFTs** to get a list of NFTs owned by the account. -[![Get NFTs](img/quickstart11.png)](img/quickstart11.png) +[![Get NFTs](/img/quickstart11.png)](/img/quickstart11.png) ## Burn a Token @@ -65,7 +65,7 @@ To permanently destroy an NFT: 1. Enter the **Token ID**. 2. Click **Burn NFT**. -[![Burn NFTs](img/quickstart12.png)](img/quickstart12.png) +[![Burn NFTs](/img/quickstart12.png)](/img/quickstart12.png) # Code Walkthrough @@ -531,10 +531,10 @@ async function oPburnToken() { - - - - + + + +
          @@ -1033,14 +1033,14 @@ Revise the HTML form to add a new Broker section at the top. Owner
          Destination
          Expiration
          Expiration
          Transfer Fee NFT ID
          Transfer Fee
          Transfer Fee

          @@ -688,7 +688,7 @@ async function oPburnToken() {

          Transfer Fee
          +

          diff --git a/content/tutorials/quickstart/py-authorize-minter.md b/content/tutorials/quickstart/py-authorize-minter.md index c8c5549154..dba070f631 100644 --- a/content/tutorials/quickstart/py-authorize-minter.md +++ b/content/tutorials/quickstart/py-authorize-minter.md @@ -18,7 +18,7 @@ This example shows how to: 1. Authorize an account to create NFTs for your account. 2. Mint an NFT for another account, when authorized. -[![Token Test Harness](img/quickstart-py30.png)](img/quickstart-py30.png) +[![Token Test Harness](/img/quickstart-py30.png)](/img/quickstart-py30.png) # Usage @@ -53,7 +53,7 @@ To authorize another account to create NFTs for your account (for example, allow 2. Paste the **Operational Account** value in the standby **Authorized Minter** field. 3. Click **Set Minter**. -[![Authorized Minter](img/quickstart-py31.png)](img/quickstart-py31.png) +[![Authorized Minter](/img/quickstart-py31.png)](/img/quickstart-py31.png) ## Mint an NFT for Another Account @@ -69,7 +69,7 @@ To mint a non-fungible token for another account: 5. Paste the **Standby Account** value in the Operational account **Issuer** field. 6. Click the Operational account **Mint Other** button. -[![Minted NFT for Another Account](img/quickstart-py32.png)](img/quickstart-py32.png) +[![Minted NFT for Another Account](/img/quickstart-py32.png)](/img/quickstart-py32.png) Once the item is minted, the authorized minter can sell the NFT normally. The proceeds go to the authorized minter, less the transfer fee. The minter and the issuer can settle up on a division of the price separately. @@ -85,7 +85,7 @@ To create a NFT sell offer: The important piece of information in the response is the NFT Offer Index, labeled as `nft_offer_index`, which is used to accept the sell offer. -[![NFT Sell Offer](img/quickstart-py33.png)](img/quickstart-py33.png) +[![NFT Sell Offer](/img/quickstart-py33.png)](/img/quickstart-py33.png) ## Accept Sell Offer @@ -99,11 +99,11 @@ To accept an available sell offer: 4. Enter the **NFT Offer Index** (labeled as `nft_offer_index` in the NFT offer results. This is different from the `nft_id`). 5. Click **Accept Sell Offer**. -[![Transaction Results](img/quickstart-py34.png)](img/quickstart-py34.png) +[![Transaction Results](/img/quickstart-py34.png)](/img/quickstart-py34.png) The Buyer account was debited the 100 XRP price plus 10 drops as the transaction cost. The Seller (Authorized Minter) account is credited 90 XRP. the Issuer and the Seller can divide the proceeds per their agreement in a separate transaction. The original Standby account receives a transfer fee of 10 XRP. -[![Transaction Results](img/quickstart-py35.png)](img/quickstart-py35.png) +[![Transaction Results](/img/quickstart-py35.png)](/img/quickstart-py35.png) # Code Walkthrough diff --git a/content/tutorials/quickstart/py-batch-minting.md b/content/tutorials/quickstart/py-batch-minting.md index 5aa4f01369..2f1395597e 100644 --- a/content/tutorials/quickstart/py-batch-minting.md +++ b/content/tutorials/quickstart/py-batch-minting.md @@ -15,7 +15,7 @@ You can create an application that mints multiple NFTs at one time, using a `for A best practice is to use `Tickets` to reserve the transaction sequence numbers. If you create an application that creates NFTs without using tickets, if any transaction fails for any reason, the application stops with an error. If you use tickets, the application continues to send transactions, and you can look into the reason for any individual failures afterward. -[![Batch Mint](img/quickstart-py36.png)](img/quickstart-py36.png) +[![Batch Mint](/img/quickstart-py36.png)](/img/quickstart-py36.png) ## Usage @@ -43,7 +43,7 @@ This example lets you mint multiple NFTs for a single unique item. The NFT might To batch mint non-fungible token objects: 1. Enter the **NFT URI**. This is a URI that points to the data or metadata associated with the NFT object. You can use this sample URI if you do not have one of your own: ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi. -2. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](nftokenmint.html) for available NFT minting flags. +2. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](../../references/protocol/transactions/types/nftokenmint.md) for available NFT minting flags. 3. Enter the **Transfer Fee**, a percentage of the proceeds that the original creator receives from future sales of the NFT. This is a value of 0-50000 inclusive, allowing transfer fees between 0.000% and 50.000% in increments of 0.001%. If you do not set the **Flags** field to allow the NFT to be transferrable, set this field to 0. 4. Enter the **Taxon** for the NFT. If you do not have a need for the Taxon field, set this value to 0. 5. Enter an **NFT Count** of up to 200 NFTs to create in one batch. @@ -88,14 +88,14 @@ Get the account wallet and a client instance. Request the full account info. -```python +```python acct_info = xrpl.models.requests.account_info.AccountInfo( account=wallet.classic_address, ledger_index='validated' ) get_seq_request = client.request(acct_info) -``` +``` Parse the current sequence value. @@ -386,4 +386,4 @@ btn_standby_get_batch_nfts.grid(row=8, column=2, sticky = "nsew") # Start the application window.mainloop() -``` \ No newline at end of file +``` diff --git a/content/tutorials/quickstart/py-broker-sale.md b/content/tutorials/quickstart/py-broker-sale.md index c5b29dfd68..f0927194a4 100644 --- a/content/tutorials/quickstart/py-broker-sale.md +++ b/content/tutorials/quickstart/py-broker-sale.md @@ -21,7 +21,7 @@ This example shows how to: 2. Get a list of offers for the brokered item. 3. Broker a sale between two different accounts. -[![Quickstart form with Broker Account](img/quickstart-py23.png)](img/quickstart-py23.png) +[![Quickstart form with Broker Account](/img/quickstart-py23.png)](/img/quickstart-py23.png) You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/py/){.github-code-download} archive to try each of the samples in your own browser. @@ -44,7 +44,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 4. Click **Get Standby Account Info**. 5. Click **Get Operational Account Info**. -[![Quickstart form with Account Information](img/quickstart-py24.png)](img/quickstart-py24.png) +[![Quickstart form with Account Information](/img/quickstart-py24.png)](/img/quickstart-py24.png) ## Prepare a Brokered Transaction @@ -53,31 +53,31 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port
          1. Use the Standby account to create an NFT Sell Offer with the Broker account as the destination. - 1. Enter the **Amount** of the sell offer in drops (millionths of an XRP). - 2. Enter the **NFT ID** of the NFT you want to sell. - 3. Optionally, enter a number of seconds until **Expiration**. - 4. Enter the Broker account number as the **Destination**. - 5. Click **Create Sell Offer**. - 6. Click **Get Offers** to see the new offer. + 1. Enter the **Amount** of the sell offer in drops (millionths of an XRP). + 2. Enter the **NFT ID** of the NFT you want to sell. + 3. Optionally, enter a number of seconds until **Expiration**. + 4. Enter the Broker account number as the **Destination**. + 5. Click **Create Sell Offer**. + 6. Click **Get Offers** to see the new offer. -[![Sell Offer with Destination](img/quickstart25.png)](img/quickstart25.png) +[![Sell Offer with Destination](/img/quickstart25.png)](/img/quickstart25.png) 2. Use the Operational account to create a NFT Buy Offer. - 1. Enter the **Amount** of your offer. - 2. Enter the **NFT ID**. - 3. Enter the owner’s account string in the **Owner** field. - 4. Optionally enter the number of seconds until **Expiration**. - 5. Click **Create Buy Offer**. + 1. Enter the **Amount** of your offer. + 2. Enter the **NFT ID**. + 3. Enter the owner’s account string in the **Owner** field. + 4. Optionally enter the number of seconds until **Expiration**. + 5. Click **Create Buy Offer**. -[![Buy Offer](img/quickstart-py26.png)](img/quickstart-py26.png) +[![Buy Offer](/img/quickstart-py26.png)](/img/quickstart-py26.png) ## Get Offers 1. Enter the **NFT ID**. 2. Click **Get Offers**. -[![Get Offers](img/quickstart-py27.png)](img/quickstart-py27.png) +[![Get Offers](/img/quickstart-py27.png)](/img/quickstart-py27.png) ## Broker the Sale @@ -86,7 +86,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 3. Enter a **Broker Fee**, in drops. 4. Click **Broker Sale**. -[![Brokered Sale](img/quickstart-py28.png)](img/quickstart-py28.png) +[![Brokered Sale](/img/quickstart-py28.png)](/img/quickstart-py28.png) ## Cancel Offer @@ -96,7 +96,7 @@ After accepting a buy offer, a best practice for the broker is to cancel all oth 1. Enter the _nft_offer_index_ of the buy offer you want to cancel in the **Buy NFT Offer Index** field. 2. Click **Cancel Offer**. -[![Cancel Offer](img/quickstart-py29.png)](img/quickstart-py29.png) +[![Cancel Offer](/img/quickstart-py29.png)](/img/quickstart-py29.png) # Code Walkthrough @@ -879,4 +879,4 @@ btn_op_cancel_offer.grid(row=16, column=3, sticky="nsew") # Start the application window.mainloop() -```x \ No newline at end of file +```x diff --git a/content/tutorials/quickstart/py-create-accounts-send-xrp.md b/content/tutorials/quickstart/py-create-accounts-send-xrp.md index cbd56c321e..e54a8ec5c9 100644 --- a/content/tutorials/quickstart/py-create-accounts-send-xrp.md +++ b/content/tutorials/quickstart/py-create-accounts-send-xrp.md @@ -18,14 +18,14 @@ This example shows how to: When you create an account, you receive a public/private key pair offline. Your account does not appear on the ledger until it is funded with XRP. This example shows how to create accounts for Testnet, but not how to create an account that you can use on Mainnet. -[![Token Test Harness](img/quickstart-py2.png)](img/quickstart-py2.png) +[![Token Test Harness](/img/quickstart-py2.png)](/img/quickstart-py2.png) ## Prerequisites To get started, create a new folder on your local disk and install the Python library using `pip`. ``` - pip3 install xrpl-py +pip3 install xrpl-py ``` Download and expand the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/py/){.github-code-download} archive. @@ -47,7 +47,7 @@ To get test accounts: 5. Click **Get Operational Account Info**. 5. Copy and paste the **Standby Seed** and **Operational Seed** fields to a persistent location, such as a Notepad, so that you can reuse the accounts after reloading the form. -[![Standby and Operational Accounts](img/quickstart-py3.png)](img/quickstart-py3.png) +[![Standby and Operational Accounts](/img/quickstart-py3.png)](/img/quickstart-py3.png) You can transfer XRP between your new accounts. Each account has its own fields and buttons. @@ -61,7 +61,7 @@ To transfer XRP from the Standby account to the Operational account: 2. Copy and paste the **Operational Account** field to the Standby **Destination** field. 3. Click **Send XRP>** to transfer XRP from the standby account to the operational account -[![Transferred XRP](img/quickstart-py4.png)](img/quickstart-py4.png) +[![Transferred XRP](/img/quickstart-py4.png)](/img/quickstart-py4.png) To transfer XRP from the Operational account to the Standby account: @@ -182,9 +182,9 @@ Create a transaction request, passing the sending account, amount, and destinati Submit the transaction and return the response. If the transaction fails, return the error message. ```python - try: - response = xrpl.transaction.submit_and_wait(payment, client, sending_wallet) - except xrpl.transaction.XRPLReliableSubmissionException as e: + try: + response = xrpl.transaction.submit_and_wait(payment, client, sending_wallet) + except xrpl.transaction.XRPLReliableSubmissionException as e: response = f"Submit failed: {e}" return response ``` @@ -203,7 +203,7 @@ import json Import the methods from mod1.py. -```python +```python from .mod1 import get_account, get_account_info, send_xrp ``` diff --git a/content/tutorials/quickstart/py-create-conditional-escrows.md b/content/tutorials/quickstart/py-create-conditional-escrows.md index 60bb98b077..ddbf8d6357 100644 --- a/content/tutorials/quickstart/py-create-conditional-escrows.md +++ b/content/tutorials/quickstart/py-create-conditional-escrows.md @@ -18,7 +18,7 @@ This example shows how to: 3. Cancel a conditional escrow transaction. -[![Conditional Escrow Tester Form](img/quickstart-py-conditional-escrow-1.png)](img/quickstart-py-conditional-escrow-1.png) +[![Conditional Escrow Tester Form](/img/quickstart-py-conditional-escrow-1.png)](/img/quickstart-py-conditional-escrow-1.png) ## Prerequisites @@ -54,13 +54,13 @@ To get test accounts: 3. Click **Get Operational Account**. 4. Click **Get Op Account Info**. -[![Escrow Example with Account Information](img/quickstart-py-conditional-escrow-2.png)](img/quickstart-py-conditional-escrow-2.png) +[![Escrow Example with Account Information](/img/quickstart-py-conditional-escrow-2.png)](/img/quickstart-py-conditional-escrow-2.png) #### Get a Condition and Fulfillment Click **Get Condition** to generate a condition/fulfillment pair and populate the fields on the form. You can copy the values and store them in a text file for safe keeping. -[![Escrow Example with Condition and Fulfillment](img/quickstart-py-conditional-escrow-3.png)](img/quickstart-py-conditional-escrow-3.png) +[![Escrow Example with Condition and Fulfillment](/img/quickstart-py-conditional-escrow-3.png)](/img/quickstart-py-conditional-escrow-3.png) ### Create Conditional Escrow @@ -83,7 +83,7 @@ The escrow is created on the XRP Ledger instance, reserving your requested XRP a When you create an escrow, capture and save the _Sequence Number_ so that you can use it to finish the escrow transaction. -[![Created Escrow Transaction](img/quickstart-py-conditional-escrow-4.png)](img/quickstart-py-conditional-escrow-4.png) +[![Created Escrow Transaction](/img/quickstart-py-conditional-escrow-4.png)](/img/quickstart-py-conditional-escrow-4.png) ## Finish Conditional Escrow @@ -100,7 +100,7 @@ To finish a conditional escrow: The transaction completes and balances are updated for both the Standby and Operational accounts. -[![Finished Escrow Transaction](img/quickstart-py-conditional-escrow-5.png)](img/quickstart-py-conditional-escrow-5.png) +[![Finished Escrow Transaction](/img/quickstart-py-conditional-escrow-5.png)](/img/quickstart-py-conditional-escrow-5.png) ## Get Escrows @@ -117,13 +117,13 @@ If you forget to save the sequence number, you can find it in the escrow transac 1. Create a new escrow as described in [Create Conditional Escrow](#create-conditional-escrow), above. 2. Click **Get Escrows** to get the escrow information. 3. Copy the _PreviousTxnLgrSeq_ value from the results. - ![Transaction ID in Get Escrows results](img/quickstart-py-conditional-escrow-6.png) + ![Transaction ID in Get Escrows results](/img/quickstart-py-conditional-escrow-6.png) 4. Paste the _PreviousTxnLgrSeq_ in the **Transaction to Look Up** field. - ![Transaction to Look Up field](img/quickstart-py-conditional-escrow-7.png) + ![Transaction to Look Up field](/img/quickstart-py-conditional-escrow-7.png) 5. Click **Get Transaction**. 6. Locate the _Sequence_ value in the results. -![Sequence number in results](img/quickstart-py-conditional-escrow-8.png) +![Sequence number in results](/img/quickstart-py-conditional-escrow-8.png) # Code Walkthrough @@ -605,4 +605,3 @@ btn_op_get_transaction.grid(row = 6, column = 3, sticky = "nsew") # Start the application window.mainloop() ``` - diff --git a/content/tutorials/quickstart/py-create-time-based-escrows.md b/content/tutorials/quickstart/py-create-time-based-escrows.md index 7ea2adc823..8333cd64a7 100644 --- a/content/tutorials/quickstart/py-create-time-based-escrows.md +++ b/content/tutorials/quickstart/py-create-time-based-escrows.md @@ -19,7 +19,7 @@ This example shows how to: 3. Cancel an escrow payment and return the XRP to the sending account. -[![Escrow Tester Form](img/quickstart-py-escrow1.png)](img/quickstart-py-escrow1.png) +[![Escrow Tester Form](/img/quickstart-py-escrow1.png)](/img/quickstart-py-escrow1.png) ## Prerequisites @@ -44,7 +44,7 @@ To get test accounts: 3. Click **Get Operational Account**. 4. Click **Get Op Account Info**. -[![Escrow Tester with Account Information](img/quickstart-escrow2.png)](img/quickstart-py-escrow2.png) +[![Escrow Tester with Account Information](/img/quickstart-escrow2.png)](/img/quickstart-py-escrow2.png) ## Create Escrow @@ -66,7 +66,7 @@ To create a time-based escrow: The escrow is created on the XRP Ledger instance, reserving 100 XRP plus the transaction cost and reserve requirements. When you create an escrow, capture and save the **Sequence Number** so that you can use it to finish the escrow transaction. -[![Completed Create Escrow Transaction](img/quickstart-py-escrow3.png)](img/quickstart-py-escrow3.png) +[![Completed Create Escrow Transaction](/img/quickstart-py-escrow3.png)](/img/quickstart-py-escrow3.png) ## Finish Escrow @@ -80,7 +80,7 @@ To finish a time-based escrow: The transaction completes and balances are updated for both the Standby and Operational accounts. -[![Completed Escrow Transaction](img/quickstart-py-escrow4.png)](img/quickstart-py-escrow4.png) +[![Completed Escrow Transaction](/img/quickstart-py-escrow4.png)](/img/quickstart-py-escrow4.png) ## Get Escrows @@ -88,7 +88,7 @@ Click **Get Escrows** to see the current list of escrows for the Operational acc For the purposes of this tutorial, you can follow the steps in [Create Escrow](#create-escrow), above, to create a new escrow transaction that you can then look up. Remember to capture the _Sequence Number_ from the transaction results. -[![Get Escrows results](img/quickstart-py-escrow5.png)](img/quickstart-py-escrow5.png) +[![Get Escrows results](/img/quickstart-py-escrow5.png)](/img/quickstart-py-escrow5.png) ## Cancel Escrow @@ -105,7 +105,7 @@ To cancel an expired escrow: The funds are returned to the Standby account, less the initial transaction fee. -[![Cancel Escrow results](img/quickstart-py-escrow6.png)](img/quickstart-py-escrow6.png) +[![Cancel Escrow results](/img/quickstart-py-escrow6.png)](/img/quickstart-py-escrow6.png) ## Oh No! I Forgot to Save the Sequence Number! @@ -114,11 +114,11 @@ If you forget to save the sequence number, you can find it in the escrow transac 1. Create a new escrow as described in [Create Escrow](#create-escrow), above. 2. Click **Get Escrows** to get the escrow information. 3. Copy the _PreviousTxnLgrSeq_ value from the results. - ![Transaction ID in Get Escrows results](img/quickstart-py-escrow7.png) + ![Transaction ID in Get Escrows results](/img/quickstart-py-escrow7.png) 4. Paste the _PreviousTxnLgrSeq_ in the **Transaction to Look Up** field. 5. Click **Get Transaction**. 6. Locate the _Sequence_ value in the results. - ![Sequence number in results](img/quickstart-py-escrow8.png) + ![Sequence number in results](/img/quickstart-py-escrow8.png) # Code Walkthrough @@ -634,4 +634,4 @@ btn_op_get_transaction.grid(row = 6, column = 3, sticky = "nsew") # Start the application window.mainloop() -``` \ No newline at end of file +``` diff --git a/content/tutorials/quickstart/py-create-trustline-send-currency.md b/content/tutorials/quickstart/py-create-trustline-send-currency.md index f62e7b3f44..d3ab6a2b88 100644 --- a/content/tutorials/quickstart/py-create-trustline-send-currency.md +++ b/content/tutorials/quickstart/py-create-trustline-send-currency.md @@ -18,7 +18,7 @@ This example shows how to: 4. Send issued currency between accounts. 5. Display account balances for all currencies. -[![Test harness with currency transfer](img/quickstart-py5.png)](img/quickstart-py5.png) +[![Test harness with currency transfer](/img/quickstart-py5.png)](/img/quickstart-py5.png) You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/py/){.github-code-download} archive to try each of the samples in your own browser. @@ -51,7 +51,7 @@ To create a trust line between accounts: 3. Enter the destination account value in the **Destination** field. 4. Click **Create Trust Line**. -[![Trust line results](img/quickstart-py6.png)](img/quickstart-py6.png) +[![Trust line results](/img/quickstart-py6.png)](/img/quickstart-py6.png) ## Send an Issued Currency Token @@ -62,7 +62,7 @@ To transfer an issued currency token, once you have created a trust line: 3. Enter the **Currency** type. 4. Click **Send Currency**. -[![Currency transfer](img/quickstart-py7.png)](img/quickstart-py7.png) +[![Currency transfer](/img/quickstart-py7.png)](/img/quickstart-py7.png) ### Configure Account @@ -75,7 +75,7 @@ To enable rippling: Verify the setting by looking for the _Set Flag_ value in the response, which should show a flag setting of _8_. -[![Configure Account - Enable Rippling](img/quickstart-py8.png)](img/quickstart-py8.png) +[![Configure Account - Enable Rippling](/img/quickstart-py8.png)](/img/quickstart-py8.png) To disable rippling: @@ -84,7 +84,7 @@ To disable rippling: Verify the setting by looking for the _Clear Flag_ value in the response, which shold show a flag setting of _8_. -[![Configure Account - Disable Rippling](img/quickstart-py9.png)](img/quickstart-py9.png) +[![Configure Account - Disable Rippling](/img/quickstart-py9.png)](/img/quickstart-py9.png) # Code Walkthrough @@ -220,7 +220,7 @@ Return the result. ### configure_account -This example shows how to set and clear configuration flags using the `AccountSet` method. The `ASF_DEFAULT_RIPPLE` flag is pertinent to experimentation with transfer of issued currencies to third-party accounts, so it is demonstrated here. You can set any of the configuration flags using the same structure, substituting the particular flags you want to set. See [AccountSet Flags](accountset.html). +This example shows how to set and clear configuration flags using the `AccountSet` method. The `ASF_DEFAULT_RIPPLE` flag is pertinent to experimentation with transfer of issued currencies to third-party accounts, so it is demonstrated here. You can set any of the configuration flags using the same structure, substituting the particular flags you want to set. See [AccountSet Flags](../../references/protocol/transactions/types/accountset.md). Send the account seed and a Boolean value for whether to enable or disable rippling. ```python @@ -576,4 +576,4 @@ btn_op_configure_account.grid(row=7,column=4, sticky = "nsew") ```python window.mainloop() -``` \ No newline at end of file +``` diff --git a/content/tutorials/quickstart/py-mint-and-burn-nfts.md b/content/tutorials/quickstart/py-mint-and-burn-nfts.md index 606aba0608..a015566dff 100644 --- a/content/tutorials/quickstart/py-mint-and-burn-nfts.md +++ b/content/tutorials/quickstart/py-mint-and-burn-nfts.md @@ -16,7 +16,7 @@ This example shows how to: 2. Get a list of existing NFTs. 3. Delete (Burn) an NFT. -[![Quickstart 3 interface with mint NFT fields](img/quickstart-py10.png)](img/quickstart-py10.png) +[![Quickstart 3 interface with mint NFT fields](/img/quickstart-py10.png)](/img/quickstart-py10.png) # Usage @@ -37,7 +37,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 3. Click **Get Standby Account Info**. 4. Click **Get Op Account Info**. -[![Get accounts](img/quickstart-py11.png)](img/quickstart-py11.png) +[![Get accounts](/img/quickstart-py11.png)](/img/quickstart-py11.png) ## Mint an NFT @@ -53,14 +53,14 @@ To mint a non-fungible token object: 4. Optionally a **Taxon** value as an integer. If you choose not to use a taxon, enter _0_. 4. Click **Mint NFT**. -[![Mint NFT fields](img/quickstart-py12.png)](img/quickstart-py12.png) +[![Mint NFT fields](/img/quickstart-py12.png)](/img/quickstart-py12.png) ## Get Tokens Click **Get NFTs** to get a list of NFTs owned by the account. -[![Get NFTs](img/quickstart-py13.png)](img/quickstart-py13.png) +[![Get NFTs](/img/quickstart-py13.png)](/img/quickstart-py13.png) ## Burn a Token @@ -71,7 +71,7 @@ To permanently destroy an NFT: 1. Enter the **Token ID**. 2. Click **Burn NFT**. -[![Burn NFTs](img/quickstart-py14.png)](img/quickstart-py14.png) +[![Burn NFTs](/img/quickstart-py14.png)](/img/quickstart-py14.png) # Code Walkthrough diff --git a/content/tutorials/quickstart/py-quickstart-intro.md b/content/tutorials/quickstart/py-quickstart-intro.md index a73fdf4c20..f27e1ea319 100644 --- a/content/tutorials/quickstart/py-quickstart-intro.md +++ b/content/tutorials/quickstart/py-quickstart-intro.md @@ -17,7 +17,7 @@ The XRP Ledger (XRPL) is a robust, secure, customizable service. You can create This quickstart describes a test harness interface you can build to try out the XRP Ledger. The test harness displays multiple accounts, so that you can transfer tokens from one account to the other and see the results in real time. The image below shows the Token Test Harness at the completion of step 4. -[![Quickstart Tutorial Window](img/quickstart-py15.png)](img/quickstart-py15.png) +[![Quickstart Tutorial Window](/img/quickstart-py15.png)](/img/quickstart-py15.png) That is a lot of fields and buttons, all working together to perform some significant practical tasks. But getting _started_ with the XRP Ledger is not that complicated. When you eat the elephant a bite at a time, none of the tasks are difficult to consume. @@ -49,9 +49,9 @@ There are also expanded lessons demonstrating how to [Broker an NFT Sale](py-bro To get started, create a new folder on your local disk and install the Python library (xrpl-py) using `pip`. ``` - pip3 install xrpl-py +pip3 install xrpl-py ``` Download the python [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/py/){.github-code-download}. -**Note:** Without the Quickstart Samples, you will not be able to try the examples that follow. \ No newline at end of file +**Note:** Without the Quickstart Samples, you will not be able to try the examples that follow. diff --git a/content/tutorials/quickstart/py-transfer-nfts.md b/content/tutorials/quickstart/py-transfer-nfts.md index 6de81b1bcd..76c455d5b2 100644 --- a/content/tutorials/quickstart/py-transfer-nfts.md +++ b/content/tutorials/quickstart/py-transfer-nfts.md @@ -19,7 +19,7 @@ This example shows how to: 5. Get a list of offers for a particular NFT. 6. Cancel an offer. -[![Quickstart form with NFT transfer fields](img/quickstart-py15.png)](img/quickstart-py15.png) +[![Quickstart form with NFT transfer fields](/img/quickstart-py15.png)](/img/quickstart-py15.png) You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/py/){.github-code-download} archive to try each of the samples in your own browser. @@ -43,7 +43,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 3. Click **Get Operational Account**. 4. Click **Get Get Op Account Info**. -[![Form with account information](img/quickstart-py16.png)](img/quickstart-py16.png) +[![Form with account information](/img/quickstart-py16.png)](/img/quickstart-py16.png) ## Create a Sell Offer @@ -62,7 +62,7 @@ To create a NFT sell offer: The important piece of information in the response is the NFT Offer Index, labeled as `nft_offer_index`, which you use to accept the sell offer. -[![NFT Sell Offer](img/quickstart-py17.png)](img/quickstart-py17.png) +[![NFT Sell Offer](/img/quickstart-py17.png)](/img/quickstart-py17.png) ## Accept Sell Offer @@ -75,7 +75,7 @@ To accept an available sell offer: 3. Click **Get Standby Account Info** and **Get Op Account Info** to update the XRP balances. 4. Click **Get NFTs** for each account to see that the NFT has moved from the Standby account to the Operational account. -[![Accept Sell Offer](img/quickstart-py18.png)](img/quickstart-py18.png) +[![Accept Sell Offer](/img/quickstart-py18.png)](/img/quickstart-py18.png) ## Create a Buy Offer @@ -91,7 +91,7 @@ To create an offer to buy an NFT: 6. On the Operational side, enter the **NFT ID**. 7. Click **Get Offers** to view the offer and copy the `nft_offer_index`. -[![NFT Buy Offer](img/quickstart-py19.png)](img/quickstart-py19.png) +[![NFT Buy Offer](/img/quickstart-py19.png)](/img/quickstart-py19.png) ## Accept a Buy Offer @@ -102,7 +102,7 @@ To accept an offer to buy an NFT: 3. Click **Get Standby Account Info** and **Get Op Account Info** to update the XRP balances. 4. Click **Get NFTs** for both accounts to see that the NFT has moved from the Operational account to the Standby account. -[![Accept Buy Offer](img/quickstart-py20.png)](img/quickstart-py20.png) +[![Accept Buy Offer](/img/quickstart-py20.png)](/img/quickstart-py20.png) ## Get Offers @@ -111,7 +111,7 @@ To list the buy and sell offers associated with an NFT: 1. Enter the **NFT ID**. 2. Click **Get Offers**. -[![Get offers](img/quickstart-py21.png)](img/quickstart-py21.png) +[![Get offers](/img/quickstart-py21.png)](/img/quickstart-py21.png) ## Cancel Offer @@ -120,7 +120,7 @@ To cancel a buy or sell offer that you have created: 1. Enter the **NFT Offer Index**. 2. Click **Cancel Offer**. -[![Cancel offer](img/quickstart-py22.png)](img/quickstart-py22.png) +[![Cancel offer](/img/quickstart-py22.png)](/img/quickstart-py22.png) # Code Walkthrough @@ -447,9 +447,9 @@ Define the cancel offer transaction. ```python nftSellOffers="No sell offers" cancel_offer_tx=xrpl.models.transactions.NFTokenCancelOffer( - account=owner_wallet.classic_address, - nftoken_offers=tokenOfferIDs - ) + account=owner_wallet.classic_address, + nftoken_offers=tokenOfferIDs + ) ``` Submit the transaction and return the result. @@ -1020,4 +1020,4 @@ btn_op_cancel_offer.grid(row=16, column=3, sticky="nsew") # Start the application window.mainloop() -``` \ No newline at end of file +``` diff --git a/content/tutorials/quickstart/send-payments-using-javascript.md b/content/tutorials/quickstart/send-payments-using-javascript.md index 1d7bb09cb4..53b01f3a4f 100644 --- a/content/tutorials/quickstart/send-payments-using-javascript.md +++ b/content/tutorials/quickstart/send-payments-using-javascript.md @@ -17,7 +17,7 @@ The XRP Ledger (XRPL) is a robust, secure, customizable service. You can create This quickstart describes a test harness interface you can build to try out the XRP Ledger. The test harness displays multiple accounts, so that you can transfer tokens from one account to the other and see the results in real time. The image below shows the Token Test Harness at the completion of step 4. -![Quickstart Tutorial Window](img/quickstart1.png) +![Quickstart Tutorial Window](/img/quickstart1.png) That is a lot of fields and buttons, all working together to perform some significant practical tasks. But getting _started_ with the XRP Ledger is not that complicated. When you eat the elephant a bite at a time, none of the tasks are difficult to consume. @@ -28,7 +28,7 @@ Typically, the example functions for interacting with the XRP Ledger involve fou 3. Get the state of accounts and tokens on the XRP Ledger using requests. 4. Disconnect from the XRP Ledger. -Each lesson shows you how to build the Token Test Harness one section at a time. Each module lets you try out meaningful interactions with the test ledger, with complete JavaScript and HTML code samples and a code walkthrough. There is also a link to the complete source code for each section that can be modified with a text editor and run in a browser. If you cannot wait, you can follow the prerequisites below, then jump to lesson 4, [Transfer NFTs](transfer-nfts-using-javascript.html), and try out the complete test harness right away. +Each lesson shows you how to build the Token Test Harness one section at a time. Each module lets you try out meaningful interactions with the test ledger, with complete JavaScript and HTML code samples and a code walkthrough. There is also a link to the complete source code for each section that can be modified with a text editor and run in a browser. If you cannot wait, you can follow the prerequisites below, then jump to lesson 4, [Transfer NFTs](transfer-nfts-using-javascript.md), and try out the complete test harness right away. This quickstart tutorial introduces you to the API used to implement features and explore the capabilities of XRP Ledger. It does not represent *all* of the capabilities of the API and this example is not intended for production or secure payment use. @@ -39,7 +39,7 @@ Much of this is “brute force” code that sacrifices conciseness for readabili To get started, create a new folder on your local disk and install the JavaScript library using `npm`. ``` - npm install xrpl +npm install xrpl ``` Download and expand the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/js/){.github-code-download}. diff --git a/content/tutorials/quickstart/send-payments-using-python.md b/content/tutorials/quickstart/send-payments-using-python.md index 6ba97eafae..8f3c3ea53f 100644 --- a/content/tutorials/quickstart/send-payments-using-python.md +++ b/content/tutorials/quickstart/send-payments-using-python.md @@ -17,7 +17,7 @@ The XRP Ledger (XRPL) is a robust, secure, customizable service. You can create This quickstart describes a test harness interface you can build to try out the XRP Ledger. The test harness displays multiple accounts, so that you can transfer tokens from one account to the other and see the results in real time. The image below shows the Token Test Harness at the completion of step 4. -[![Quickstart Tutorial Window](img/quickstart-py15.png)](img/quickstart-py15.png) +[![Quickstart Tutorial Window](/img/quickstart-py15.png)](/img/quickstart-py15.png) That is a lot of fields and buttons, all working together to perform some significant practical tasks. But getting _started_ with the XRP Ledger is not that complicated. When you eat the elephant a bite at a time, none of the tasks are difficult to consume. @@ -36,12 +36,12 @@ Much of this is “brute force” code that sacrifices conciseness for readabili In this quickstart, you can: -1. [Create Accounts and Send XRP](py-create-accounts-send-xrp.html) -2. [Create Trust Line and Send Currency](py-create-trustline-send-currency.html). -3. [Mint and Burn NFTs](py-mint-and-burn-nfts.html). -4. [Transfer NFTs](py-transfer-nfts.html). +1. [Create Accounts and Send XRP](py-create-accounts-send-xrp.md) +2. [Create Trust Line and Send Currency](py-create-trustline-send-currency.md). +3. [Mint and Burn NFTs](py-mint-and-burn-nfts.md). +4. [Transfer NFTs](py-transfer-nfts.md). -There are also expanded lessons demonstrating how to [Broker an NFT Sale](py-broker-sale.html) and [Assign an Authorized Minter](py-authorize-minter.html). +There are also expanded lessons demonstrating how to [Broker an NFT Sale](py-broker-sale.md) and [Assign an Authorized Minter](py-authorize-minter.md). ## Prerequisites @@ -49,9 +49,9 @@ There are also expanded lessons demonstrating how to [Broker an NFT Sale](py-bro To get started, create a new folder on your local disk and install the Python library (xrpl-py) using `pip`. ``` - pip3 install xrpl-py +pip3 install xrpl-py ``` Download the python [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/py/){.github-code-download}. -**Note:** Without the Quickstart Samples, you will not be able to try the examples that follow. \ No newline at end of file +**Note:** Without the Quickstart Samples, you will not be able to try the examples that follow. diff --git a/content/tutorials/quickstart/transfer-nfts-using-javascript.md b/content/tutorials/quickstart/transfer-nfts-using-javascript.md index 251033bc4a..bb8100b285 100644 --- a/content/tutorials/quickstart/transfer-nfts-using-javascript.md +++ b/content/tutorials/quickstart/transfer-nfts-using-javascript.md @@ -18,7 +18,7 @@ This example shows how to: 5. Get a list of offers for a particular NFT. 6. Cancel an offer. -[![Quickstart form with NFT transfer fields](img/quickstart13.png)](img/quickstart13.png) +[![Quickstart form with NFT transfer fields](/img/quickstart13.png)](/img/quickstart13.png) You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/js/){.github-code-download} archive to try each of the samples in your own browser. @@ -36,7 +36,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port 1. Click **Get New Standby Account**. 2. Click **Get New Operational Account**. -[![Form with account information](img/quickstart14.png)](img/quickstart14.png) +[![Form with account information](/img/quickstart14.png)](/img/quickstart14.png) ## Create a Sell Offer @@ -54,7 +54,7 @@ To create a NFT sell offer: The important piece of information in the response is the NFT Offer Index, labeled as `nft_offer_index`, which you use to accept the sell offer. -[![NFT Sell Offer](img/quickstart15.png)](img/quickstart15.png) +[![NFT Sell Offer](/img/quickstart15.png)](/img/quickstart15.png) ## Accept Sell Offer @@ -65,7 +65,7 @@ To accept an available sell offer: 1. Enter the **NFT Offer Index** (labeled as `nft_offer_index` in the token offer results. This is different from the `NFTokenID`.) 2. Click **Accept Sell Offer**. -[![Accept Sell Offer](img/quickstart16.png)](img/quickstart16.png) +[![Accept Sell Offer](/img/quickstart16.png)](/img/quickstart16.png) ## Create a Buy Offer @@ -79,7 +79,7 @@ To create an offer to buy a NFT: 4. Optionally enter the number of days until **Expiration**. 5. Click **Create Buy Offer**. -[![NFT Buy Offer](img/quickstart17.png)](img/quickstart17.png) +[![NFT Buy Offer](/img/quickstart17.png)](/img/quickstart17.png) ## Accept a Buy Offer @@ -88,7 +88,7 @@ To accept an offer to buy a NFT: 1. Enter the **NFT Offer Index** (the `nft_offer_index` of the NFT buy offer). 3. Click **Accept Buy Offer**. -[![Accept Buy Offer](img/quickstart18.png)](img/quickstart18.png) +[![Accept Buy Offer](/img/quickstart18.png)](/img/quickstart18.png) ## Get Offers @@ -96,7 +96,7 @@ To list the buy and sell offers associated with a NFT: 1. Enter the **NFT ID**. 2. Click **Get Offers**. -[![Get offers](img/quickstart19.png)](img/quickstart19.png) +[![Get offers](/img/quickstart19.png)](/img/quickstart19.png) ## Cancel Offer @@ -105,7 +105,7 @@ To cancel a buy or sell offer that you have created: 1. Enter the **NFT Offer Index**. 2. Click **Cancel Offer**. -[![Cancel offer](img/quickstart20.png)](img/quickstart20.png) +[![Cancel offer](/img/quickstart20.png)](/img/quickstart20.png) # Code Walkthrough diff --git a/content/tutorials/tasks/index.md b/content/tutorials/tasks/index.md index 67177fed54..c2824ea1eb 100644 --- a/content/tutorials/tasks/index.md +++ b/content/tutorials/tasks/index.md @@ -2,8 +2,12 @@ html: tasks.html parent: tutorials.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Tasks -Common tasks on the XRP Ledger. \ No newline at end of file +Common tasks on the XRP Ledger. + + +{% child-pages /%} diff --git a/content/tutorials/tasks/manage-account-settings/index.md b/content/tutorials/tasks/manage-account-settings/index.md index e433973dfb..f8330b4604 100644 --- a/content/tutorials/tasks/manage-account-settings/index.md +++ b/content/tutorials/tasks/manage-account-settings/index.md @@ -1,8 +1,12 @@ --- html: manage-account-settings.html parent: tasks.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Manage Account Settings -Set up your XRP Ledger account to send and receive payments the way you want it to. \ No newline at end of file +Set up your XRP Ledger account to send and receive payments the way you want it to. + + +{% child-pages /%} diff --git a/content/tutorials/tasks/use-specialized-payment-types/index.md b/content/tutorials/tasks/use-specialized-payment-types/index.md index fd4451d0dd..c847348f89 100644 --- a/content/tutorials/tasks/use-specialized-payment-types/index.md +++ b/content/tutorials/tasks/use-specialized-payment-types/index.md @@ -1,8 +1,12 @@ --- html: use-specialized-payment-types.html parent: tasks.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Use Specialized Payment Types -Use advanced features like Escrow and Payment Channels to build smart applications on the XRP Ledger. \ No newline at end of file +Use advanced features like Escrow and Payment Channels to build smart applications on the XRP Ledger. + + +{% child-pages /%} diff --git a/content/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md b/content/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md index 7c04312c9b..c5c2aa09ad 100644 --- a/content/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md +++ b/content/tutorials/tasks/use-specialized-payment-types/use-escrows/index.md @@ -1,8 +1,12 @@ --- html: use-escrows.html parent: use-specialized-payment-types.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Use Escrows The XRP Ledger supports escrows that can be executed only after a certain time has passed or a cryptographic condition has been fulfilled. Escrows can only send XRP, not issued currencies. + + +{% child-pages /%} diff --git a/content/tutorials/tasks/use-tokens/index.md b/content/tutorials/tasks/use-tokens/index.md index b6406a1bdc..68bc248c37 100644 --- a/content/tutorials/tasks/use-tokens/index.md +++ b/content/tutorials/tasks/use-tokens/index.md @@ -1,8 +1,12 @@ --- html: use-tokens.html parent: tasks.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Use Tokens -Create and trade tokens (fungible or otherwise) in the XRP Ledger. \ No newline at end of file +Create and trade tokens (fungible or otherwise) in the XRP Ledger. + + +{% child-pages /%} diff --git a/content/tutorials/tasks/use-xrpl-sidechains/index.md b/content/tutorials/tasks/use-xrpl-sidechains/index.md index b178d4e7a2..c913de50bb 100644 --- a/content/tutorials/tasks/use-xrpl-sidechains/index.md +++ b/content/tutorials/tasks/use-xrpl-sidechains/index.md @@ -1,8 +1,12 @@ --- html: use-xrpl-sidechains.html parent: tasks.html -template: pagetype-category.html.jinja +metadata: + indexPage: true --- # Use XRPL Sidechains -Bridge XRP and tokens from _Mainnet_ to XRPL sidechains. \ No newline at end of file +Bridge XRP and tokens from _Mainnet_ to XRPL sidechains. + + +{% child-pages /%} diff --git a/content/tutorials/tasks/use-xrpl-sidechains/set-up-iou-iou-bridge.md b/content/tutorials/tasks/use-xrpl-sidechains/set-up-iou-iou-bridge.md index 973fc1e247..0d81a29e72 100644 --- a/content/tutorials/tasks/use-xrpl-sidechains/set-up-iou-iou-bridge.md +++ b/content/tutorials/tasks/use-xrpl-sidechains/set-up-iou-iou-bridge.md @@ -7,17 +7,17 @@ labels: --- # Set Up an IOU-IOU Bridge -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ Setting up an IOU-IOU bridge enables you to move tokens between chains. -**Note**: The code samples on this page illustrate how to bridge a hypotethical "TST" token from *Devnet* to *Sidechain-Devnet*, using a supported [client library](client-libraries.html) to query and submit transactions. +**Note**: The code samples on this page illustrate how to bridge a hypotethical "TST" token from *Devnet* to *Sidechain-Devnet*, using a supported [client library](../../../references/client-libraries.md) to query and submit transactions. ## Prerequisites - An XRP-XRP bridge must be set up between the locking and issuing chain. - Ensure the witnesses' transaction submission accounts are funded on the locking and issuing chains. -- Set up an issuer on the issuing chain to mint and burn a wrapped version of the token you want to bridge. See: [Issue a Fungible Token](issue-a-fungible-token.html) +- Set up an issuer on the issuing chain to mint and burn a wrapped version of the token you want to bridge. See: [Issue a Fungible Token](../../use-tokens/issue-a-fungible-token.md) ## Steps @@ -161,8 +161,4 @@ const disablekey_issuingchain = await client_issuingchain.submitAndWait({ }, {autofill: true, wallet: wallet_issuingchain}) ``` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/tasks/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md b/content/tutorials/tasks/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md index b67071e5da..f9fdf6caf8 100644 --- a/content/tutorials/tasks/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md +++ b/content/tutorials/tasks/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md @@ -7,11 +7,11 @@ labels: --- # Set Up an XRP-XRP Bridge -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ Setting up an XRP-XRP bridge enables you to move XRP between chains. The set up requires using the genesis account on the issuing chain as a door account to submit attestations and create transaction submission accounts for witnesses. -**Note**: The code samples on this page illustrate how a bridge was set up between *Devnet* and *Sidechain-Devnet*, using a supported [client library](client-libraries.html) to query and submit transactions. This bridge is already created, so the process can't be reproduced on these networks. +**Note**: The code samples on this page illustrate how a bridge was set up between *Devnet* and *Sidechain-Devnet*, using a supported [client library](../../../references/client-libraries.md) to query and submit transactions. This bridge is already created, so the process can't be reproduced on these networks. ## Prerequisites @@ -228,7 +228,4 @@ const disablekey_issuingchain = await client_issuingchain.submitAndWait({ }, {autofill: true, wallet: wallet_issuingchain}) ``` - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/tasks/use-xrpl-sidechains/submit-cross-chain-transaction.md b/content/tutorials/tasks/use-xrpl-sidechains/submit-cross-chain-transaction.md index 3213e433ce..3c3c81e406 100644 --- a/content/tutorials/tasks/use-xrpl-sidechains/submit-cross-chain-transaction.md +++ b/content/tutorials/tasks/use-xrpl-sidechains/submit-cross-chain-transaction.md @@ -7,9 +7,9 @@ labels: --- # Submit Cross-chain Transactions -_(Requires the [XChainBridge amendment][] :not_enabled:)_ +_(Requires the [XChainBridge amendment][] {% not-enabled /%})_ -This tutorial explains how to create a test account on a locking chain (_Devent_), and transfer XRP to an issuing chain (_Sidechain-Devnet_), using a supported [client library](client-libraries.html) to query and submit transactions. Witness servers are already set up to monitor the XRP-XRP bridge and submit attestations. +This tutorial explains how to create a test account on a locking chain (_Devent_), and transfer XRP to an issuing chain (_Sidechain-Devnet_), using a supported [client library](../../../references/client-libraries.md) to query and submit transactions. Witness servers are already set up to monitor the XRP-XRP bridge and submit attestations. ## Prerequisites @@ -129,8 +129,4 @@ If you don't specify an "OtherChainDestination", the account that submitted the **Note:** When enough `XChainAddClaimAttestation` signatures are submitted by the witness servers to reach quorum, the funds are released on the issuing chain to the `OtherChainDestination`. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} \ No newline at end of file +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network.md b/content/tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network.md index f74462ca7d..9a686d3885 100644 --- a/content/tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network.md +++ b/content/tutorials/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network.md @@ -7,7 +7,7 @@ labels: --- # Open a Payment Channel to Enable an Inter-Exchange Network -A payment channel enables you to send one-way, "asynchronous" XRP payments that can be divided into very small increments and settled later. As a digital asset exchange, if you send many payments of XRP to another exchange, you can improve the efficiency of these payments by opening an XRP Ledger [payment channel](payment-channels.html) between your exchange (the _payer_ exchange) and the other exchange (the _payee_ exchange). In the case of a two-way flow with another exchange, you can open two payment channels (one for each direction). +A payment channel enables you to send one-way, "asynchronous" XRP payments that can be divided into very small increments and settled later. As a digital asset exchange, if you send many payments of XRP to another exchange, you can improve the efficiency of these payments by opening an XRP Ledger [payment channel](../../concepts/payment-types/payment-channels.md) between your exchange (the _payer_ exchange) and the other exchange (the _payee_ exchange). In the case of a two-way flow with another exchange, you can open two payment channels (one for each direction). @@ -21,15 +21,19 @@ The need to send XRP from your exchange to another exchange may originate with y Here are some of the benefits of using a payment channel to send XRP instead of using individual payment transactions: -- **Process withdrawals faster:** A standard payment transaction involves submitting an XRP Ledger transaction and waiting for a new ledger version that includes the transaction to be approved by [consensus](consensus.html). When you use a payment channel to send XRP, creation and verification of a claim, which guarantees the payment of XRP, all happen outside of the consensus process. This means that the payer exchange can guarantee XRP payments to the payee exchange at a rate limited only by the participants' ability to create and verify the digital signatures of the claims. +- **Process withdrawals faster:** A standard payment transaction involves submitting an XRP Ledger transaction and waiting for a new ledger version that includes the transaction to be approved by [consensus](../../concepts/consensus-protocol/index.md). When you use a payment channel to send XRP, creation and verification of a claim, which guarantees the payment of XRP, all happen outside of the consensus process. This means that the payer exchange can guarantee XRP payments to the payee exchange at a rate limited only by the participants' ability to create and verify the digital signatures of the claims. - For your customers who are moving XRP to take advantage of arbitrage opportunities or to do algorithmic trading, speed matters. Enabling a customer to move XRP and start trading in an instant is a compelling differentiator for your exchange. + ``` + For your customers who are moving XRP to take advantage of arbitrage opportunities or to do algorithmic trading, speed matters. Enabling a customer to move XRP and start trading in an instant is a compelling differentiator for your exchange. + ``` - **Connect to the Internet of Value:** One of the key requirements of the [Internet of Value](https://ripple.com/insights/the-internet-of-value-what-it-means-and-how-it-benefits-everyone/) is interoperability. The [Interledger Protocol](https://interledger.org/) (ILP), which plays a large role in driving this interoperability, works best when it [uses payment channels](https://interledger.org/rfcs/0027-interledger-protocol-4) as its method for rebalancing accounts. In effect, when you open a payment channel from your exchange to another, you are connecting to the Internet of Value and helping to create the inter-exchange network that is fundamental to the success of the Internet of Value and the apps that are built on it. - Connecting your exchange to other exchanges by way of payment channels is another differentiator. For customers who are moving XRP to buy various currencies across exchanges, knowing that they can move XRP at a moment's notice from your exchange to any number of exchanges in the Internet of Value can make your exchange a preferred place to custody their assets. + ``` + Connecting your exchange to other exchanges by way of payment channels is another differentiator. For customers who are moving XRP to buy various currencies across exchanges, knowing that they can move XRP at a moment's notice from your exchange to any number of exchanges in the Internet of Value can make your exchange a preferred place to custody their assets. + ``` -Here’s a roadmap to the high-level tasks you’ll need to perform to implement this payment channel use case. To go directly to a full payment channels tutorial, see [Use Payment Channels](use-payment-channels.html). +Here’s a roadmap to the high-level tasks you’ll need to perform to implement this payment channel use case. To go directly to a full payment channels tutorial, see [Use Payment Channels](use-payment-channels.md). @@ -39,7 +43,7 @@ Here’s a roadmap to the high-level tasks you’ll need to perform to implement Learn more about payment channels and whether they provide the features you need for your specific implementation. -[Understand payment channels >](payment-channels.html) +[Understand payment channels >](../../concepts/payment-types/payment-channels.md) @@ -49,7 +53,7 @@ To use a payment channel to send and receive XRP, both the payer and payee excha If not, a great way for an exchange to get access to a `rippled` server is to set up and run one. -[Set up and run rippled servers >](manage-the-rippled-server.html) +[Set up and run rippled servers >](../../infrastructure/installation/install-rippled-on-ubuntu.md) @@ -61,30 +65,34 @@ Along these lines, there's a good chance that you are following industry best pr - The payer exchange must have a funded XRP Ledger account to be used to send XRP to the payee exchange. - Aside from the [base reserve](reserves.html) (10 XRP) and the [owner reserve](reserves.html#owner-reserves) of a payment channel (2 XRP), the account must also be able to set aside enough XRP in the payment channel to cover the intended number of transactions. + ``` + Aside from the [base reserve](../../concepts/accounts/reserves.md) (10 XRP) and the [owner reserve](../../concepts/accounts/reserves.md#owner-reserves) of a payment channel (2 XRP), the account must also be able to set aside enough XRP in the payment channel to cover the intended number of transactions. - The payer exchange can always top-off the channel using the [PaymentChannelFund](paymentchannelfund.html) transaction if it runs out of XRP. However, topping-off requires an actual on-ledger transaction and confirmation, so it could take 4-5 seconds of processing time and ~10 drops of XRP to complete the top-off transaction. The more XRP the payer exchange pre-funds, the less often they need to top-off, so they can save some time and money by pre-funding more XRP. + The payer exchange can always top-off the channel using the [PaymentChannelFund](../../references/protocol/transactions/types/paymentchannelfund.md) transaction if it runs out of XRP. However, topping-off requires an actual on-ledger transaction and confirmation, so it could take 4-5 seconds of processing time and ~10 drops of XRP to complete the top-off transaction. The more XRP the payer exchange pre-funds, the less often they need to top-off, so they can save some time and money by pre-funding more XRP. - However, if the payer exchange puts in more XRP than they need, they need to [close the payment channel](use-payment-channels.html#9-when-the-payer-and-payee-are-done-doing-business-the-payer-requests-for-the-channel-to-be-closed) to get the XRP back. This means waiting out the following events: + However, if the payer exchange puts in more XRP than they need, they need to [close the payment channel](use-payment-channels.md#9-when-the-payer-and-payee-are-done-doing-business-the-payer-requests-for-the-channel-to-be-closed) to get the XRP back. This means waiting out the following events: - 1. Completion of the payer's request to start closing the payment channel. - 2. Passage of the `SettleDelay` time set for the payment channel. - 3. Completion of a request to finish closing the payment channel after the `SettleDelay` has passed. + 1. Completion of the payer's request to start closing the payment channel. + 2. Passage of the `SettleDelay` time set for the payment channel. + 3. Completion of a request to finish closing the payment channel after the `SettleDelay` has passed. + ``` - The payee exchange must have a funded XRP Ledger account to be used to redeem (receive) XRP sent by the payer exchange. - The account needs at least 11 XRP, which provides the 10 XRP [base reserve](reserves.html), plus enough to pay the transaction costs of redeeming claims, which are trivial. For example, you could redeem thousands of claims for less than 1 XRP in total. + ``` + The account needs at least 11 XRP, which provides the 10 XRP [base reserve](../../concepts/accounts/reserves.md), plus enough to pay the transaction costs of redeeming claims, which are trivial. For example, you could redeem thousands of claims for less than 1 XRP in total. + ``` -[Fund XRP Ledger accounts with enough XRP >](accounts.html) +[Fund XRP Ledger accounts with enough XRP >](../../concepts/accounts/accounts.md) -## Payer: [Open a payment channel](use-payment-channels.html#1-the-payer-creates-a-payment-channel-to-a-particular-recipient) +## Payer: [Open a payment channel](use-payment-channels.md#1-the-payer-creates-a-payment-channel-to-a-particular-recipient) The payer exchange opens a payment channel from their XRP Ledger account to the payee exchange's XRP Ledger account. Opening a payment channel includes setting certain specifics of the channel, such as its expiration date and the amount it can hold. For this exchange use case, there is no real need to ever close the channel, so the payer exchange may not want to define a `CancelAfter` (expiration) value. If they ever need to close the channel, they can still do so. -As the payer exchange, you can think of the payment channel as a special sub-wallet exclusively for a particular destination. Consider estimating how much XRP the payment channel requires similar to how you would estimate a hot wallet's needs. According to [typical best practices](account-types.html), exchanges hold the vast majority of XRP across all of their user accounts in a cold wallet, with a small amount of XRP in a hot wallet. +As the payer exchange, you can think of the payment channel as a special sub-wallet exclusively for a particular destination. Consider estimating how much XRP the payment channel requires similar to how you would estimate a hot wallet's needs. According to [typical best practices](../../concepts/accounts/account-types.md), exchanges hold the vast majority of XRP across all of their user accounts in a cold wallet, with a small amount of XRP in a hot wallet. Along these lines, you should also decide approximately how often you want to add more XRP to the payment channel---for example, daily, every 4 hours, or every 15 minutes---and estimate the volume of XRP that you send to the payee exchange during that interval. You should fund the payment channel with enough to cover at least that much volume or the largest withdrawal that you want to process without delay, whichever is larger. For example, if you plan to refill the channel every 15 minutes, have an average volume of 50 XRP every 15 minutes, but occasionally send transfers of 10,000 XRP, you should supply the channel with at least 10,000 XRP. @@ -101,7 +109,7 @@ Since payment channels are unidirectional, you need a second channel in the oppo The payee exchange reviews the details of the payment channel. -[Verify payment channel details >](use-payment-channels.html#2-the-payee-checks-specifics-of-the-payment-channel) +[Verify payment channel details >](use-payment-channels.md#2-the-payee-checks-specifics-of-the-payment-channel) @@ -109,7 +117,7 @@ The payee exchange reviews the details of the payment channel. The payer exchange creates one or more claims for amounts of XRP that it wants to guarantee to the payee exchange. -[Create claims >](use-payment-channels.html#3-the-payer-creates-one-or-more-signed-claims-for-the-xrp-in-the-channel) +[Create claims >](use-payment-channels.md#3-the-payer-creates-one-or-more-signed-claims-for-the-xrp-in-the-channel) ## Payer: Send claim details to the payer exchange @@ -137,7 +145,7 @@ Consider a series of claims prompted by payer exchange customers withdrawing XRP | **Amount** | Cumulative amount of the claims created by the payer exchange. The payee exchange needs this value to verify and redeem the claim. For information about how to calculate the actual amount the payee exchange needs to credit the customer, see [Verify claims](#payee-verify-claims). | | **Destination Tag** | Destination tag of the customer account on the payee exchange that needs to be credited based on the claim. The payer exchange can get this value from their customer's withdrawal request, which should provide a destination tag for the deposit to the payee exchange. When the payee exchange redeems claims, the XRP is deposited into the payee exchange's XRP Ledger account. The payee exchange can then credit the XRP from the claim to the appropriate customer account based on the destination tag provided. | -[Send claim details to the payer exchange >](use-payment-channels.html#4-the-payer-sends-a-claim-to-the-payee-as-payment-for-goods-or-services) +[Send claim details to the payer exchange >](use-payment-channels.md#4-the-payer-sends-a-claim-to-the-payee-as-payment-for-goods-or-services) ## Payee: Verify claims @@ -148,7 +156,7 @@ After verifying claims, the payee exchange should credit the claimed XRP to the For example, to know how much to credit a customer for a claim amount of 3000, the payee exchange needs to know that the previous claim amount was 2000. The difference between the claim amount and the previous claim amount (3000 - 2000 = 1000) is the amount the payee exchange must credit to the customer account. -[Verify claims >](use-payment-channels.html#5-the-payee-verifies-the-claims) +[Verify claims >](use-payment-channels.md#5-the-payee-verifies-the-claims) @@ -168,7 +176,7 @@ The payee exchange can redeem batches of claims after verifying them to receive -[Redeem them in batches >](use-payment-channels.html#8-when-ready-the-payee-redeems-a-claim-for-the-authorized-amount) +[Redeem them in batches >](use-payment-channels.md#8-when-ready-the-payee-redeems-a-claim-for-the-authorized-amount) @@ -176,11 +184,11 @@ The payee exchange can redeem batches of claims after verifying them to receive Payer and payee exchanges can continue to send, verify, and redeem batches of claims as needed within the parameters set by the payment channel. -[Continue to use the payment channel >](use-payment-channels.html#7-repeat-steps-3-6-as-desired) +[Continue to use the payment channel >](use-payment-channels.md#7-repeat-steps-3-6-as-desired) ## Payer: When it's time, make a request to close the payment channel When the payer exchange and payee exchange are done using the payment channel, the payer exchange can make a request to close the payment channel. -[Close the payment channel >](use-payment-channels.html#9-when-the-payer-and-payee-are-done-doing-business-the-payer-requests-for-the-channel-to-be-closed) +[Close the payment channel >](use-payment-channels.md#9-when-the-payer-and-payee-are-done-doing-business-the-payer-requests-for-the-channel-to-be-closed) diff --git a/content/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md b/content/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md index 4b32c6cbc0..7c3c4ff7ee 100644 --- a/content/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md +++ b/content/tutorials/use-specialized-payment-types/use-checks/cancel-a-check.md @@ -7,9 +7,9 @@ labels: --- # Cancel a Check -This tutorial shows how to cancel a [Check](checks.html), which removes the [Check object from the ledger](check.html) without sending money. +This tutorial shows how to cancel a [Check](../../../concepts/payment-types/checks.md), which removes the [Check object from the ledger](../../../references/protocol/ledger-data/ledger-entry-types/check.md) without sending money. -You may want to cancel an incoming Check if you do not want it. You might cancel an outgoing Check if you made a mistake when sending it or if circumstances have changed. If a Check expires, it's also necessary to cancel it to remove it from the ledger so the sender gets their [owner reserve](reserves.html#owner-reserves) back. +You may want to cancel an incoming Check if you do not want it. You might cancel an outgoing Check if you made a mistake when sending it or if circumstances have changed. If a Check expires, it's also necessary to cancel it to remove it from the ledger so the sender gets their [owner reserve](../../../concepts/accounts/reserves.md#owner-reserves) back. {% set cancel_n = cycler(* range(1,99)) %} @@ -20,13 +20,13 @@ To cancel a Check with this tutorial, you need the following: - You need the ID of a Check object currently in the ledger. - For example, this tutorial includes examples that cancel a Check with the ID `49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0`, although you must use a different ID to go through these steps yourself. - The **address** and **secret key** of a funded account to send the CheckCancel transaction. This address must be either the sender or the recipient of the Check, unless the Check is expired. -- A [secure way to sign transactions](secure-signing.html). -- A [client library](client-libraries.html) or any HTTP or WebSocket library. +- A [secure way to sign transactions](../../../concepts/transactions/secure-signing.md). +- A [client library](../../../references/client-libraries.md) or any HTTP or WebSocket library. ## {{cancel_n.next()}}. Prepare the CheckCancel transaction -Figure out the values of the [CheckCancel transaction][] fields. The following fields are the bare minimum; everything else is either optional or can be [auto-filled](transaction-common-fields.html#auto-fillable-fields) when signing: +Figure out the values of the [CheckCancel transaction][] fields. The following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: | Field | Value | Description | |:------------------|:-----------------|:--------------------------------------| @@ -38,10 +38,9 @@ Figure out the values of the [CheckCancel transaction][] fields. The following f The following examples show how to cancel a Check. - - -*JSON-RPC, WebSocket, or Commandline* +{% tabs %} +{% tab label="JSON-RPC, WebSocket, or Commandline" %} ```json { "TransactionType": "CheckCancel", @@ -50,147 +49,119 @@ The following examples show how to cancel a Check. "Fee": "12" } ``` +{% /tab %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCancel.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/prepareCancel.js' %} -``` - - +{% /tabs %} ## {{cancel_n.next()}}. Sign the CheckCancel transaction -{% include '_snippets/tutorial-sign-step.md' %} +{% partial file="/_snippets/tutorial-sign-step.md" /%} ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/signCancel.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/signCancel.js' %} -``` +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cancel-req.sh" language="bash" /%} +{% /tab %} -*Commandline* - -```bash -{% include '_code-samples/checks/cli/sign-cancel-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/sign-cancel-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/sign-cancel-resp.txt' %} -``` +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cancel-resp.txt" language="json" /%} +{% /tab %} -*Commandline* - -```json -{% include '_code-samples/checks/cli/sign-cancel-resp.txt' %} -``` - - +{% /tabs %} ## {{cancel_n.next()}}. Submit the signed CheckCancel transaction {% set step_1_link = "#1-prepare-the-checkcancel-transaction" %} -{% include '_snippets/tutorial-submit-step.md' %} +{% partial file="/_snippets/tutorial-submit-step.md" /%} ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submitCancel.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submitCancel.js' %} -``` +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cancel-req.sh" language="bash" /%} +{% /tab %} -*Commandline* - -```bash -{% include '_code-samples/checks/cli/submit-cancel-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submit-cancel-resp.txt" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submit-cancel-resp.txt' %} -``` +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cancel-resp.txt" language="json" /%} +{% /tab %} -*Commandline* - -```json -{% include '_code-samples/checks/cli/submit-cancel-resp.txt' %} -``` - - +{% /tabs %} ## {{cancel_n.next()}}. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## {{cancel_n.next()}}. Confirm final result Use the [tx method][] with the CheckCancel transaction's identifying hash to check its status. Look for a `"TransactionResult": "tesSUCCESS"` field in the transaction's metadata, indicating that the transaction succeeded, and the field `"validated": true` in the result, indicating that this result is final. -Look for a `DeletedNode` object in the transaction metadata with `"LedgerEntryType": "Check"` to indicate that the transaction removed a [Check ledger object](check.html). The `LedgerIndex` of this object should match the ID of the Check. +Look for a `DeletedNode` object in the transaction metadata with `"LedgerEntryType": "Check"` to indicate that the transaction removed a [Check ledger object](../../../references/protocol/ledger-data/ledger-entry-types/check.md). The `LedgerIndex` of this object should match the ID of the Check. ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/getCancelTx.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/getCancelTx.js' %} -``` +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cancel-req.sh" language="bash" /%} +{% /tab %} -*Commandline* - -```bash -{% include '_code-samples/checks/cli/tx-cancel-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/get-cancel-tx-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/js/get-cancel-tx-resp.txt' %} -``` +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cancel-resp.txt" language="json" /%} +{% /tab %} -*Commandline* +{% /tabs %} -```json -{% include '_code-samples/checks/cli/tx-cancel-resp.txt' %} -``` - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md b/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md index ee40ca421f..c4b5752500 100644 --- a/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md +++ b/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md @@ -11,18 +11,18 @@ As long as the Check is in the ledger and not expired, the specified recipient c You might cash a Check for a flexible amount if you want to get as much as possible from the Check. -The specified recipient can also [cash the check for an exact amount](cash-a-check-for-a-flexible-amount.html). +The specified recipient can also [cash the check for an exact amount](cash-a-check-for-a-flexible-amount.md). {% set cash_flex_n = cycler(* range(1,99)) %} ## Prerequisites -{% include '_snippets/checkcash-prereqs.md' %} +{% partial file="/_snippets/checkcash-prereqs.md" /%} ## {{cash_flex_n.next()}}. Prepare the CheckCash transaction -Figure out the values of the [CheckCash transaction][] fields. To cash a check for a flexible amount, the following fields are the bare minimum; everything else is either optional or can be [auto-filled](transaction-common-fields.html#auto-fillable-fields) when signing: +Figure out the values of the [CheckCash transaction][] fields. To cash a check for a flexible amount, the following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: | Field | Value | Description | |:------------------|:--------------------------|:-----------------------------| @@ -35,10 +35,9 @@ Figure out the values of the [CheckCash transaction][] fields. To cash a check f The following examples show how to prepare a transaction to cash a Check for a flexible amount. - - -*JSON-RPC, WebSocket, or Commandline* +{% tabs %} +{% tab label="JSON-RPC, WebSocket, or Commandline" %} ```json { "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", @@ -47,78 +46,69 @@ The following examples show how to prepare a transaction to cash a Check for a f "CheckID": "2E0AD0740B79BE0AAE5EDD1D5FC79E3C5C221D23C6A7F771D85569B5B91195C2" } ``` +{% /tab %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCashFlex.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/prepareCashFlex.js' %} -``` - - +{% /tabs %} ## {{cash_flex_n.next()}}. Sign the CheckCash transaction -{% include '_snippets/tutorial-sign-step.md' %} +{% partial file="/_snippets/tutorial-sign-step.md" /%} ### Example Request - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-flex-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/sign-cash-flex-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-flex-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/sign-cash-flex-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_flex_n.next()}}. Submit the signed CheckCash transaction {% set step_1_link = "#1-prepare-the-checkcash-transaction" %} -{% include '_snippets/tutorial-submit-step.md' %} +{% partial file="/_snippets/tutorial-submit-step.md" /%} ### Example Request - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-flex-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/submit-cash-flex-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-flex-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/submit-cash-flex-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_flex_n.next()}}. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## {{cash_flex_n.next()}}. Confirm final result @@ -126,32 +116,28 @@ Use the [tx method][] with the CheckCash transaction's identifying hash to check ### Example Request - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-flex-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/tx-cash-flex-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-flex-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/tx-cash-flex-resp.txt' %} -``` - - +{% /tabs %} ### Handling Errors -If cashing the Check failed with a `tec`-class code, look up the code in the [Full Transaction Response List](transaction-results.html) and respond accordingly. Some common possibilities for CheckCash transactions: +If cashing the Check failed with a `tec`-class code, look up the code in the [Full Transaction Response List](../../../references/protocol/transactions/transaction-results/transaction-results.md) and respond accordingly. Some common possibilities for CheckCash transactions: | Result Code | Meaning | How to Respond | |-------------|---------|----------------| @@ -159,44 +145,48 @@ If cashing the Check failed with a `tec`-class code, look up the code in the [Fu | `tecNO_ENTRY` | The Check ID doesn't exist. | Confirm that the `CheckID` from the CheckCash transaction is correct. Confirm that the Check has not already been canceled or successfully cashed. | | `tecNO_LINE` | The recipient doesn't have a trust line for the Check's currency. | If you want to hold this currency from this issuer, create a trust line for the specified currency and issuer with a reasonable limit using a [TrustSet transaction][], then try to cash the check again. | | `tecNO_PERMISSION` | The sender of the CheckCash transaction isn't the `Destination` of the Check. | Double-check the `Destination` of the Check. | -| `tecNO_AUTH` | The issuer of the currency from the check is using [Authorized Trust Lines](authorized-trust-lines.html) but the recipient's trust line to the issuer is not approved. | Ask the issuer to authorize this trust line, then try again to cash the Check after they do. | -| `tecPATH_PARTIAL` | The Check could not deliver enough tokens, either due to trust line limits or because the sender does not have enough balance of the token to send (including the issuer's [transfer fee](transfer-fees.html), if there is one). | If the problem is the trust line limit, send a [TrustSet transaction][] to increase your limit (if desired) or lower your balance by spending some of the currency, then try to cash the Check again. If the problem is the sender's balance, wait for the sender to have more of the Check's currency, or try again to cash the Check for a lesser amount. | +| `tecNO_AUTH` | The issuer of the currency from the check is using [Authorized Trust Lines](../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) but the recipient's trust line to the issuer is not approved. | Ask the issuer to authorize this trust line, then try again to cash the Check after they do. | +| `tecPATH_PARTIAL` | The Check could not deliver enough tokens, either due to trust line limits or because the sender does not have enough balance of the token to send (including the issuer's [transfer fee](../../../concepts/tokens/transfer-fees.md), if there is one). | If the problem is the trust line limit, send a [TrustSet transaction][] to increase your limit (if desired) or lower your balance by spending some of the currency, then try to cash the Check again. If the problem is the sender's balance, wait for the sender to have more of the Check's currency, or try again to cash the Check for a lesser amount. | | `tecUNFUNDED_PAYMENT` | The Check could not deliver enough XRP. | Wait for the sender to have more XRP, or try again to cash the Check for a lesser amount. | ## {{cash_flex_n.next()}}. Confirm delivered amount If the Check was cashed for a flexible `DeliverMin` amount and succeeded, you can assume that the Check was cashed for at least the `DeliverMin` amount. To get the exact amount delivered, check the transaction metadata. The `delivered_amount` field in the metadata shows the exact amount delivered. (This field is only provided if the Check was cashed for a flexible amount. If the check was successfully cashed for a fixed amount, then the delivered amount is equal to the `Amount` of the CheckCash transaction.) -- For XRP, the `AccountRoot` object of the Check's sender has its XRP `Balance` field debited. The `AccountRoot` object of the Check's recipient (the one who sent the CheckCash transaction) has its XRP `Balance` credited for at least the `DeliverMin` of the CheckCash transaction minus the [transaction cost](transaction-cost.html) of sending the transaction. +- For XRP, the `AccountRoot` object of the Check's sender has its XRP `Balance` field debited. The `AccountRoot` object of the Check's recipient (the one who sent the CheckCash transaction) has its XRP `Balance` credited for at least the `DeliverMin` of the CheckCash transaction minus the [transaction cost](../../../concepts/transactions/transaction-cost.md) of sending the transaction. For example, the following `ModifiedNode` shows that the account `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`, the Check's recipient and the sender of this CheckCash transaction, had its XRP balance change from `9999999970` drops to `10099999960` drops, meaning the recipient was credited a _net_ of 99.99999 XRP as a result of processing the transaction. - { - "ModifiedNode": { - "FinalFields": { - "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "Balance": "10099999960", - "Flags": 0, - "OwnerCount": 2, - "Sequence": 5 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "7939126A732EBBDEC715FD3CCB056EB31E65228CA17E3B2901E7D30B90FD03D3", - "PreviousFields": { - "Balance": "9999999970", - "Sequence": 4 - }, - "PreviousTxnID": "0283465F0D21BE6B1E91ABDE17266C24C1B4915BAAA9A88CC098A98D5ECD3E9E", - "PreviousTxnLgrSeq": 8005334 - } - } + ``` + { + "ModifiedNode": { + "FinalFields": { + "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", + "Balance": "10099999960", + "Flags": 0, + "OwnerCount": 2, + "Sequence": 5 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "7939126A732EBBDEC715FD3CCB056EB31E65228CA17E3B2901E7D30B90FD03D3", + "PreviousFields": { + "Balance": "9999999970", + "Sequence": 4 + }, + "PreviousTxnID": "0283465F0D21BE6B1E91ABDE17266C24C1B4915BAAA9A88CC098A98D5ECD3E9E", + "PreviousTxnLgrSeq": 8005334 + } + } + ``` The net amount of 99.99999 XRP includes deducting the transaction cost that is destroyed to pay for sending this CheckCash transaction. The following part of the transaction instructions shows that the transaction cost (the `Fee` field) was 10 drops of XRP. By adding this to the net balance change, we conclude that the recipient, `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`, was credited a _gross_ amount of exactly 100 XRP for cashing the Check. - "Account" : "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "TransactionType" : "CheckCash", - "DeliverMin" : "95000000", - "Fee" : "10", + ``` + "Account" : "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", + "TransactionType" : "CheckCash", + "DeliverMin" : "95000000", + "Fee" : "10", + ``` - For tokens where the sender or recipient of the check is the issuer, the `RippleState` object representing the trust line between those accounts has its `Balance` adjusted in the favor of the Check's recipient. @@ -206,8 +196,8 @@ If the Check was cashed for a flexible `DeliverMin` amount and succeeded, you ca - - If the token has a [transfer fee](transfer-fees.html), the Check's sender may be debited more than the recipient is credited. (The difference is the transfer fee, which is returned to the issuer as a decreased net obligation.) + - If the token has a [transfer fee](../../../concepts/tokens/transfer-fees.md), the Check's sender may be debited more than the recipient is credited. (The difference is the transfer fee, which is returned to the issuer as a decreased net obligation.) -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md b/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md index 83241c7d63..c7e45faa3f 100644 --- a/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md +++ b/content/tutorials/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md @@ -9,17 +9,17 @@ labels: As long as the Check is in the ledger and not expired, the specified recipient can cash it to receive any exact amount up to the amount specified in the Check by sending a [CheckCash transaction][] with an `Amount` field. You would cash a Check this way if you want to receive a specific amount, for example to pay off an invoice or bill exactly. -The specified recipient can also [cash the check for a flexible amount](cash-a-check-for-a-flexible-amount.html). +The specified recipient can also [cash the check for a flexible amount](cash-a-check-for-a-flexible-amount.md). {% set cash_exact_n = cycler(* range(1,99)) %} ## Prerequisites -{% include '_snippets/checkcash-prereqs.md' %} +{% partial file="/_snippets/checkcash-prereqs.md" /%} ## {{cash_exact_n.next()}}. Prepare the CheckCash transaction -Figure out the values of the [CheckCash transaction][] fields. To cash a check for an exact amount, the following fields are the bare minimum; everything else is either optional or can be [auto-filled](transaction-common-fields.html#auto-fillable-fields) when signing: +Figure out the values of the [CheckCash transaction][] fields. To cash a check for an exact amount, the following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: | Field | Value | Description | |:------------------|:--------------------------|:-----------------------------| @@ -33,10 +33,9 @@ Figure out the values of the [CheckCash transaction][] fields. To cash a check f The following examples show how to prepare a transaction to cash a Check for a fixed amount. - - -*JSON-RPC, WebSocket, or Commandline* +{% tabs %} +{% tab label="JSON-RPC, WebSocket, or Commandline" %} ```json { "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", @@ -46,78 +45,69 @@ The following examples show how to prepare a transaction to cash a Check for a f "Fee": "12" } ``` +{% /tab %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCashExact.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/prepareCashExact.js' %} -``` - - +{% /tabs %} ## {{cash_exact_n.next()}}. Sign the CheckCash transaction -{% include '_snippets/tutorial-sign-step.md' %} +{% partial file="/_snippets/tutorial-sign-step.md" /%} ### Example Request - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-exact-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/sign-cash-exact-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-cash-exact-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/sign-cash-exact-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_exact_n.next()}}. Submit the signed CheckCash transaction {% set step_1_link = "#1-prepare-the-checkcash-transaction" %} -{% include '_snippets/tutorial-submit-step.md' %} +{% partial file="/_snippets/tutorial-submit-step.md" /%} ### Example Request - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-exact-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/submit-cash-exact-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-cash-exact-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/submit-cash-exact-resp.txt' %} -``` - - +{% /tabs %} ## {{cash_exact_n.next()}}. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## {{cash_exact_n.next()}}. Confirm final result @@ -125,33 +115,29 @@ Use the [tx method][] with the CheckCash transaction's identifying hash to check If the check was cashed for an exact `Amount` and succeeded, you can assume that the recipient was credited for exactly that amount (with possible rounding for very large or very small amounts of tokens). -If cashing the Check failed, the Check remains in the ledger so you can try cashing again later. You may want to [cash the Check for a flexible amount](cash-a-check-for-a-flexible-amount.html) instead. +If cashing the Check failed, the Check remains in the ledger so you can try cashing again later. You may want to [cash the Check for a flexible amount](cash-a-check-for-a-flexible-amount.md) instead. ### Example Request - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-exact-req.sh" language="bash" /%} +{% /tab %} -```bash -{% include '_code-samples/checks/cli/tx-cash-exact-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*Commandline* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-cash-exact-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/cli/tx-cash-exact-resp.txt' %} -``` - - +{% /tabs %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md b/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md index b13ef4db3b..2533afa10c 100644 --- a/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md +++ b/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-recipient.md @@ -7,7 +7,7 @@ labels: --- # Look Up Checks by Recipient -This tutorial shows how to look up [Checks](checks.html) by their recipient. You may also want to [look up Checks by sender](look-up-checks-by-sender.html). +This tutorial shows how to look up [Checks](../../../concepts/payment-types/checks.md) by their recipient. You may also want to [look up Checks by sender](look-up-checks-by-sender.md). ## 1. Look up all Checks for the address @@ -18,41 +18,31 @@ To get a list of all incoming and outgoing Checks for an account, use the `accou ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/getChecks.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/getChecks.js' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-req.json" language="json" /%} +{% /tab %} -*JSON-RPC* - -```json -{% include '_code-samples/checks/json-rpc/account_objects-req.json' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/get-checks-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/get-checks-resp.txt' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-resp.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* - -```json -200 OK - -{% include '_code-samples/checks/json-rpc/account_objects-resp.json' %} -``` - - +{% /tabs %} ## 2. Filter the responses by recipient @@ -78,5 +68,5 @@ for (i=0; i < account_objects_response.account_objects.length; i++) { ``` -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md b/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md index 887385769c..6650f83415 100644 --- a/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md +++ b/content/tutorials/use-specialized-payment-types/use-checks/look-up-checks-by-sender.md @@ -7,7 +7,7 @@ labels: --- # Look Up Checks by Sender -This tutorial shows how to look up [Checks](checks.html) by their sender. You may also want to [look up Checks by recipient](look-up-checks-by-recipient.html). +This tutorial shows how to look up [Checks](../../../concepts/payment-types/checks.md) by their sender. You may also want to [look up Checks by recipient](look-up-checks-by-recipient.md). ## 1. Look up all Checks for the address @@ -20,41 +20,31 @@ To get a list of all incoming and outgoing Checks for an account, use the `accou ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/getChecks.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/getChecks.js' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-req.json" language="json" /%} +{% /tab %} -*JSON-RPC* - -```json -{% include '_code-samples/checks/json-rpc/account_objects-req.json' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/get-checks-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/get-checks-resp.txt' %} -``` +{% tab label="JSON-RPC" %} +{% code-snippet file="/_code-samples/checks/json-rpc/account_objects-resp.json" language="json" prefix="200 OK\n\n" /%} +{% /tab %} -*JSON-RPC* - -```json -200 OK - -{% include '_code-samples/checks/json-rpc/account_objects-resp.json' %} -``` - - +{% /tabs %} ## 2. Filter the responses by sender @@ -79,5 +69,5 @@ for (i=0; i < account_objects_response.account_objects.length; i++) { ``` -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled-api-links.md' %} + +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-checks/send-a-check.md b/content/tutorials/use-specialized-payment-types/use-checks/send-a-check.md index adc35fadaa..3bfbeb42a6 100644 --- a/content/tutorials/use-specialized-payment-types/use-checks/send-a-check.md +++ b/content/tutorials/use-specialized-payment-types/use-checks/send-a-check.md @@ -7,9 +7,9 @@ labels: --- # Send a Check -Sending a Check is like writing permission for an intended recipient to pull a payment from you. The outcome of this process is a [Check object in the ledger](check.html) which the recipient can cash later. +Sending a Check is like writing permission for an intended recipient to pull a payment from you. The outcome of this process is a [Check object in the ledger](../../../references/protocol/ledger-data/ledger-entry-types/check.md) which the recipient can cash later. -In many cases, you want to send a [Payment][] instead of a Check, since that delivers the money directly to the recipient in one step. However, if your intended recipient uses [DepositAuth](depositauth.html), you cannot send them Payments directly, so a Check is a good alternative. +In many cases, you want to send a [Payment][] instead of a Check, since that delivers the money directly to the recipient in one step. However, if your intended recipient uses [DepositAuth](../../../concepts/accounts/depositauth.md), you cannot send them Payments directly, so a Check is a good alternative. This tutorial uses the example of a fictitious company, BoxSend SG (whose XRP Ledger address is `rBXsgNkPcDN2runsvWmwxk3Lh97zdgo9za`) paying a fictitious cryptocurrency consulting company named Grand Payments (with XRP Ledger address `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`) for some consulting work. Grand Payments prefers be paid in XRP, but to simplify their taxes and regulation, only accepts payments they've explicitly approved. @@ -22,36 +22,33 @@ Outside of the XRP Ledger, Grand Payments sends an invoice to BoxSend SG with th To send a Check with this tutorial, you need the following: - The **address** and **secret key** of a funded account to send the Check from. - - You can use the [XRP Ledger Test Net Faucet](xrp-test-net-faucet.html) to get a funded address and secret with 10,000 Test Net XRP. + - You can use the [XRP Ledger Test Net Faucet](/resources/dev-tools/xrp-faucets) to get a funded address and secret with 10,000 Test Net XRP. - The **address** of a funded account to receive the Check. -- A [secure way to sign transactions](secure-signing.html). -- A [client library](client-libraries.html) or any HTTP or WebSocket library. +- A [secure way to sign transactions](../../../concepts/transactions/secure-signing.md). +- A [client library](../../../references/client-libraries.md) or any HTTP or WebSocket library. ## {{send_n.next()}}. Prepare the CheckCreate transaction -Decide how much money the Check is for and who can cash it. Figure out the values of the [CheckCreate transaction][] fields. The following fields are the bare minimum; everything else is either optional or can be [auto-filled](transaction-common-fields.html#auto-fillable-fields) when signing: +Decide how much money the Check is for and who can cash it. Figure out the values of the [CheckCreate transaction][] fields. The following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: | Field | Value | Description | |:------------------|:--------------------------|:-----------------------------| | `TransactionType` | String | Use the string `CheckCreate` here. | | `Account` | String (Address) | The address of the sender who is creating the Check. (In other words, your address.) | | `Destination` | String (Address) | The address of the intended recipient who can cash the Check. | -| `SendMax` | String or Object (Amount) | The maximum amount the sender can be debited when this Check gets cashed. For XRP, use a string representing drops of XRP. For tokens, use an object with `currency`, `issuer`, and `value` fields. See [Specifying Currency Amounts][] for details. If you want the recipient to be able to cash the Check for an exact amount of a non-XRP currency with a [transfer fee](transfer-fees.html), remember to include an extra percentage to pay for the transfer fee. (For example, for the recipient to cash a Check for 100 CAD from an issuer with a 2% transfer fee, you must set the `SendMax` to 102 CAD from that issuer.) | +| `SendMax` | String or Object (Amount) | The maximum amount the sender can be debited when this Check gets cashed. For XRP, use a string representing drops of XRP. For tokens, use an object with `currency`, `issuer`, and `value` fields. See [Specifying Currency Amounts][] for details. If you want the recipient to be able to cash the Check for an exact amount of a non-XRP currency with a [transfer fee](../../../concepts/tokens/transfer-fees.md), remember to include an extra percentage to pay for the transfer fee. (For example, for the recipient to cash a Check for 100 CAD from an issuer with a 2% transfer fee, you must set the `SendMax` to 102 CAD from that issuer.) | ### Example CheckCreate Preparation The following example shows a prepared Check from BoxSend SG (`rBXsgNkPcDN2runsvWmwxk3Lh97zdgo9za`) to Grand Payments (`rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`) for 100 XRP. As additional (optional) metadata, BoxSend SG adds the ID of the invoice from Grand Payments so Grand Payments knows which invoice this Check is intended to pay. - +{% tabs %} -*ripple-lib 1.x* - -```js -{% include '_code-samples/checks/js/prepareCreate.js' %} -``` - -*JSON-RPC, WebSocket, or Commandline* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/prepareCreate.js" language="js" /%} +{% /tab %} +{% tab label="JSON-RPC, WebSocket, or Commandline" %} ```json { "TransactionType": "CheckCreate", @@ -61,177 +58,139 @@ The following example shows a prepared Check from BoxSend SG (`rBXsgNkPcDN2runsv "InvoiceID": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291" } ``` +{% /tab %} - +{% /tabs %} ## {{send_n.next()}}. Sign the CheckCreate transaction -{% include '_snippets/tutorial-sign-step.md' %} - +{% partial file="/_snippets/tutorial-sign-step.md" /%} + ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/signCreate.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/signCreate.js' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/sign-create-req.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-create-req.sh" language="bash" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/sign-create-req.json' %} -``` - -*Commandline* - -```bash -{% include '_code-samples/checks/cli/sign-create-req.sh' %} -``` - - +{% /tabs %} #### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/sign-create-resp.txt" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/sign-create-resp.txt' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/sign-create-resp.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/sign-create-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/sign-create-resp.json' %} -``` - -*Commandline* - -```json -{% include '_code-samples/checks/cli/sign-create-resp.txt' %} -``` - - +{% /tabs %} ## {{send_n.next()}}. Submit the signed transaction {% set step_1_link = "#1-prepare-the-checkcreate-transaction" %} -{% include '_snippets/tutorial-submit-step.md' %} - +{% partial file="/_snippets/tutorial-submit-step.md" /%} + ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submitCreate.js" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submitCreate.js' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/submit-create-req.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-create-req.sh" language="bash" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/submit-create-req.json' %} -``` - -*Commandline* - -```bash -{% include '_code-samples/checks/cli/submit-create-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/submit-create-resp.txt" language="js" /%} +{% /tab %} -```js -{% include '_code-samples/checks/js/submit-create-resp.txt' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/submit-create-resp.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/submit-create-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/submit-create-resp.json' %} -``` - -*Commandline* - -```json -{% include '_code-samples/checks/cli/submit-create-resp.txt' %} -``` - - +{% /tabs %} ## {{send_n.next()}}. Wait for validation -{% include '_snippets/wait-for-validation.md' %} - +{% partial file="/_snippets/wait-for-validation.md" /%} + ## {{send_n.next()}}. Confirm final result Use the [tx method][] with the CheckCreate transaction's identifying hash to check its status. Look for a `"TransactionResult": "tesSUCCESS"` field in the transaction's metadata, indicating that the transaction succeeded, and the field `"validated": true` in the result, indicating that this result is final. -Look for a `CreatedNode` object in the transaction metadata with a `LedgerEntryType` of `"Check"`. This indicates that the transaction created a [Check ledger object](check.html). The `LedgerIndex` of this object is the ID of the Check. In the following example, the Check's ID is `84C61BE9B39B2C4A2267F67504404F1EC76678806C1B901EA781D1E3B4CE0CD9`. +Look for a `CreatedNode` object in the transaction metadata with a `LedgerEntryType` of `"Check"`. This indicates that the transaction created a [Check ledger object](../../../references/protocol/ledger-data/ledger-entry-types/check.md). The `LedgerIndex` of this object is the ID of the Check. In the following example, the Check's ID is `84C61BE9B39B2C4A2267F67504404F1EC76678806C1B901EA781D1E3B4CE0CD9`. ### Example Request - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/getCreateTx.js" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/getCreateTx.js' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/tx-create-req.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-create-req.sh" language="bash" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/tx-create-req.json' %} -``` - -*Commandline* - -```bash -{% include '_code-samples/checks/cli/tx-create-req.sh' %} -``` - - +{% /tabs %} ### Example Response - +{% tabs %} -*ripple-lib 1.x* +{% tab label="ripple-lib 1.x" %} +{% code-snippet file="/_code-samples/checks/js/get-create-tx-resp.txt" language="" /%} +{% /tab %} -``` -{% include '_code-samples/checks/js/get-create-tx-resp.txt' %} -``` +{% tab label="WebSocket" %} +{% code-snippet file="/_code-samples/checks/websocket/tx-create-resp.json" language="json" /%} +{% /tab %} -*WebSocket* +{% tab label="Commandline" %} +{% code-snippet file="/_code-samples/checks/cli/tx-create-resp.txt" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/checks/websocket/tx-create-resp.json' %} -``` +{% /tabs %} -*Commandline* - -```json -{% include '_code-samples/checks/cli/tx-create-resp.txt' %} -``` - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-checks/use-checks.md b/content/tutorials/use-specialized-payment-types/use-checks/use-checks.md index 90ec9f2b29..4bc78acc2e 100644 --- a/content/tutorials/use-specialized-payment-types/use-checks/use-checks.md +++ b/content/tutorials/use-specialized-payment-types/use-checks/use-checks.md @@ -2,7 +2,8 @@ html: use-checks.html parent: use-specialized-payment-types.html blurb: Checks in the XRP Ledger authorize another account to claim funds later, similar to how personal paper checks work. -template: pagetype-category.html.jinja +metadata: + indexPage: true labels: - Checks --- @@ -10,7 +11,7 @@ labels: Checks in the XRP Ledger authorize another account to claim funds later, similar to how personal paper checks work. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} + + +{% child-pages /%} diff --git a/content/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md b/content/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md index a34d7dd892..276915bd4e 100644 --- a/content/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md +++ b/content/tutorials/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md @@ -16,27 +16,23 @@ Use the [ledger method][] to look up the latest validated ledger and get the `cl Request: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-request-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-request-expiration.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-response-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-response-expiration.json' %} -``` - - +{% /tabs %} ## 2. Look up the escrow @@ -44,27 +40,23 @@ Use the [account_objects method][] and compare `CancelAfter` to `close_time`: Request: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-request-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-request-expiration.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-response-expiration.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-response-expiration.json' %} -``` - - +{% /tabs %} ## 3. Submit EscrowCancel transaction @@ -72,37 +64,33 @@ _Websocket_ **Tip:** If you don't know what `OfferSequence` to use, you can look up the transaction that created the Escrow: call the [tx method][] with the value of the Escrow's `PreviousTxnID` field. In `tx` response, use the `Sequence` value of that transaction as the `OfferSequence` value of the EscrowCancel transaction. -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} Request: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowcancel.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowcancel.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowcancel.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowcancel.json' %} -``` - - +{% /tabs %} Take note of the transaction's identifying `hash` value so you can check its final status when it is included in a validated ledger version. ## 4. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 5. Confirm final result @@ -110,28 +98,23 @@ Use the [tx method][] with the `EscrowCancel` transaction's identifying hash to Request: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowcancel.json" language="json" /%} +{% /tab %} - -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowcancel.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowcancel.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowcancel.json' %} -``` - - +{% /tabs %} In the above example, `r3wN3v2vTUkr5qd6daqDc2xE4LSysdVjkT` is the sender of the escrow, and the increase in `Balance` from 99999**8**9990 drops to 99999**9**9990 drops represents the return of the escrowed 10,000 drops of XRP (0.01 XRP). @@ -139,23 +122,19 @@ In the above example, `r3wN3v2vTUkr5qd6daqDc2xE4LSysdVjkT` is the sender of the ## See Also - **Concepts:** - - [What is XRP?](what-is-xrp.html) - - [Payment Types](payment-types.html) - - [Escrow](escrow.html) + - [What is XRP?](../../../introduction/what-is-xrp.md) + - [Payment Types](../../../concepts/payment-types/index.md) + - [Escrow](../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](send-xrp.html) - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Send XRP](../../get-started/send-xrp.md) + - [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - [EscrowCancel transaction][] - [EscrowCreate transaction][] - [EscrowFinish transaction][] - [account_objects method][] - [tx method][] - - [Escrow ledger object](escrow-object.html) + - [Escrow ledger object](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md b/content/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md index 0364d51c15..92d73b36eb 100644 --- a/content/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md +++ b/content/tutorials/use-specialized-payment-types/use-escrows/look-up-escrows.md @@ -8,7 +8,7 @@ labels: --- # Look up Escrows -All pending escrows are stored in the ledger as [Escrow objects](escrow.html). You can look them up by the sender's address or the destination address. +All pending escrows are stored in the ledger as [Escrow objects](../../../concepts/payment-types/escrow.md). You can look them up by the sender's address or the destination address. **Note:** You can only look up pending escrow objects by destination address if those escrows were created after the [fix1523 amendment][] was enabled on 2017-11-14. @@ -16,52 +16,44 @@ Use the [account_objects method][], where the sender or destination address is t Request: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-request.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-request.json' %} -``` - - +{% /tabs %} The response includes all pending escrow objects with `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`, where the sender address is the `Account` value, or the destination address is the `Destination` value. Response: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/account_objects-response.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/account_objects-response.json' %} -``` - - +{% /tabs %} ## See Also - **Concepts:** - - [What is XRP?](what-is-xrp.html) - - [Payment Types](payment-types.html) - - [Escrow](escrow.html) + - [What is XRP?](../../../introduction/what-is-xrp.md) + - [Payment Types](../../../concepts/payment-types/index.md) + - [Escrow](../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](send-xrp.html) - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Send XRP](../../get-started/send-xrp.md) + - [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - [EscrowCancel transaction][] - [EscrowCreate transaction][] - [EscrowFinish transaction][] - [account_objects method][] - [tx method][] - - [Escrow ledger object](escrow-object.html) + - [Escrow ledger object](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md b/content/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md index 84b6e73a01..fb1587aa59 100644 --- a/content/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md +++ b/content/tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md @@ -17,10 +17,9 @@ XRP Ledger escrows require PREIMAGE-SHA-256 [crypto-conditions][]. To calculate Example code for a random fulfillment and condition: - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const cc = require('five-bells-condition') const crypto = require('crypto') @@ -36,9 +35,9 @@ console.log('Condition:', condition) const fulfillment_hex = fulfillment.serializeBinary().toString('hex').toUpperCase() console.log('Fulfillment:', fulfillment_hex) ``` +{% /tab %} -_Python_ - +{% tab label="Python" %} ```py from os import urandom from cryptoconditions import PreimageSha256 @@ -52,8 +51,9 @@ print("Condition", fulfillment.condition_binary.hex().upper()) # Keep secret until you want to finish the escrow print("Fulfillment", fulfillment.serialize_binary().hex().upper()) ``` +{% /tab %} - +{% /tabs %} Save the condition and the fulfillment for later. Be sure to keep the fulfillment secret until you want to finish executing the held payment. Anyone who knows the fulfillment can finish the escrow, releasing the held funds to their intended destination. @@ -64,20 +64,18 @@ A Conditional `Escrow` transaction must contain either a `CancelAfter` or `Finis Example for setting a `CancelAfter` time of 24 hours in the future: - - -_JavaScript_ +{% tabs %} +{% tab label="JavaScript" %} ```js const rippleOffset = 946684800 const CancelAfter = Math.floor(Date.now() / 1000) + (24*60*60) - rippleOffset console.log(CancelAfter) // Example: 556927412 ``` +{% /tab %} - - - +{% /tabs %} **Warning:** In the XRP Ledger, you must specify time as **[seconds since the Ripple Epoch][]**. If you use a UNIX time in the `CancelAfter` or `FinishAfter` field without converting it, that sets the unlock time to an extra **30 years** in the future! ## 3. Submit EscrowCreate transaction -[Sign and submit](transactions.html#signing-and-submitting-transactions) an [EscrowCreate transaction][]. Set the `Condition` field of the transaction to the time when the held payment should be released. Set the `Destination` to the recipient, which can be the same address as the sender. Include the `CancelAfter` or `FinishAfter` time you calculated in the previous step. Set the `Amount` to the total amount of [XRP, in drops][], to escrow. +[Sign and submit](../../../concepts/transactions/index.md#signing-and-submitting-transactions) an [EscrowCreate transaction][]. Set the `Condition` field of the transaction to the time when the held payment should be released. Set the `Destination` to the recipient, which can be the same address as the sender. Include the `CancelAfter` or `FinishAfter` time you calculated in the previous step. Set the `Amount` to the total amount of [XRP, in drops][], to escrow. -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} Request: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowcreate-condition.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowcreate-condition.json' %} -``` - - +{% /tabs %} ## 4. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 5. Confirm that the escrow was created -Use the [tx method][] with the transaction's identifying hash to check its final status. In particular, look for a `CreatedNode` in the transaction metadata to indicate that it created an [Escrow ledger object](escrow.html). +Use the [tx method][] with the transaction's identifying hash to check its final status. In particular, look for a `CreatedNode` in the transaction metadata to indicate that it created an [Escrow ledger object](../../../concepts/payment-types/escrow.md). Request: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowcreate-condition.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowcreate-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowcreate-condition.json' %} -``` - - +{% /tabs %} ## 6. Submit EscrowFinish transaction -[Sign and submit](transactions.html#signing-and-submitting-transactions) an [EscrowFinish transaction][] to execute the release of the funds after the `FinishAfter` time has passed. Set the `Owner` field of the transaction to the `Account` address from the EscrowCreate transaction, and the `OfferSequence` to the `Sequence` number from the EscrowCreate transaction. Set the `Condition` and `Fulfillment` fields to the condition and fulfillment values, in hexadecimal, that you generated in step 1. Set the `Fee` ([transaction cost](transaction-cost.html)) value based on the size of the fulfillment in bytes: a conditional EscrowFinish requires at least 330 drops of XRP plus 10 drops per 16 bytes in the size of the fulfillment. +[Sign and submit](../../../concepts/transactions/index.md#signing-and-submitting-transactions) an [EscrowFinish transaction][] to execute the release of the funds after the `FinishAfter` time has passed. Set the `Owner` field of the transaction to the `Account` address from the EscrowCreate transaction, and the `OfferSequence` to the `Sequence` number from the EscrowCreate transaction. Set the `Condition` and `Fulfillment` fields to the condition and fulfillment values, in hexadecimal, that you generated in step 1. Set the `Fee` ([transaction cost](../../../concepts/transactions/transaction-cost.md)) value based on the size of the fulfillment in bytes: a conditional EscrowFinish requires at least 330 drops of XRP plus 10 drops per 16 bytes in the size of the fulfillment. -**Note:** If you included a `FinishAfter` field in the EscrowCreate transaction, you cannot execute it before that time has passed, even if you provide the correct fulfillment for the Escrow's condition. The EscrowFinish transaction fails with the [result code](transaction-results.html) `tecNO_PERMISSION` if the previously-closed ledger's close time is before the `FinishAfter` time. +**Note:** If you included a `FinishAfter` field in the EscrowCreate transaction, you cannot execute it before that time has passed, even if you provide the correct fulfillment for the Escrow's condition. The EscrowFinish transaction fails with the [result code](../../../references/protocol/transactions/transaction-results/transaction-results.md) `tecNO_PERMISSION` if the previously-closed ledger's close time is before the `FinishAfter` time. -If the escrow has expired, you can only [cancel the escrow](cancel-an-expired-escrow.html) instead. +If the escrow has expired, you can only [cancel the escrow](cancel-an-expired-escrow.md) instead. -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowfinish-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowfinish-condition.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -_Websocket_ +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowfinish-condition.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowfinish-condition.json' %} -``` - - +{% /tabs %} Take note of the transaction's identifying `hash` value so you can check its final status when it is included in a validated ledger version. ## 7. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 8. Confirm final result @@ -198,15 +183,11 @@ Use the [tx method][] with the EscrowFinish transaction's identifying hash to ch Request: -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowfinish-condition.json' %} -``` +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowfinish-condition.json" language="json" /%} Response: -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowfinish-condition.json' %} -``` +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowfinish-condition.json" language="json" /%} @@ -214,23 +195,19 @@ Response: - [Crypto-Conditions Specification][] - **Concepts:** - - [What is XRP?](what-is-xrp.html) - - [Payment Types](payment-types.html) - - [Escrow](escrow.html) + - [What is XRP?](../../../introduction/what-is-xrp.md) + - [Payment Types](../../../concepts/payment-types/index.md) + - [Escrow](../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](send-xrp.html) - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Send XRP](../../get-started/send-xrp.md) + - [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - [EscrowCancel transaction][] - [EscrowCreate transaction][] - [EscrowFinish transaction][] - [account_objects method][] - [tx method][] - - [Escrow ledger object](escrow-object.html) + - [Escrow ledger object](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md b/content/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md index 14bd90b3c3..21e60fbfac 100644 --- a/content/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md +++ b/content/tutorials/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md @@ -14,10 +14,9 @@ The [EscrowCreate transaction][] type can create an escrow whose only condition You must specify the time as whole **[seconds since the Ripple Epoch][]**, which is 946684800 seconds after the UNIX epoch. For example, to release funds at midnight UTC on November 13, 2017: - - -*JavaScript* +{% tabs %} +{% tab label="JavaScript" %} ```js // JavaScript Date() is natively expressed in milliseconds; convert to seconds const release_date_unix = Math.floor( new Date("2017-11-13T00:00:00Z") / 1000 ); @@ -25,10 +24,9 @@ const release_date_ripple = release_date_unix - 946684800; console.log(release_date_ripple); // 563846400 ``` +{% /tab %} - - - +{% /tabs %} **Warning:** If you use a UNIX time in the `FinishAfter` field without converting to the equivalent Ripple time first, that sets the unlock time to an extra **30 years** in the future! ## 2. Submit EscrowCreate transaction -[Sign and submit](transactions.html#signing-and-submitting-transactions) an [EscrowCreate transaction][]. Set the `FinishAfter` field of the transaction to the time when the held payment should be released. Omit the `Condition` field to make time the only condition for releasing the held payment. Set the `Destination` to the recipient, which may be the same address as the sender. Set the `Amount` to the total amount of [XRP, in drops][], to escrow. +[Sign and submit](../../../concepts/transactions/index.md#signing-and-submitting-transactions) an [EscrowCreate transaction][]. Set the `FinishAfter` field of the transaction to the time when the held payment should be released. Omit the `Condition` field to make time the only condition for releasing the held payment. Set the `Destination` to the recipient, which may be the same address as the sender. Set the `Amount` to the total amount of [XRP, in drops][], to escrow. -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} Request: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowcreate-time.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowcreate-time.json' %} -``` - - +{% /tabs %} Take note of the transaction's identifying `hash` value so you can check its final status when it is included in a validated ledger version. ## 3. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 4. Confirm that the escrow was created -Use the [tx method][] with the transaction's identifying hash to check its final status. Look for a `CreatedNode` in the transaction metadata to indicate that it created an [Escrow ledger object](escrow.html). +Use the [tx method][] with the transaction's identifying hash to check its final status. Look for a `CreatedNode` in the transaction metadata to indicate that it created an [Escrow ledger object](../../../concepts/payment-types/escrow.md). Request: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowcreate-time.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowcreate-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowcreate-time.json' %} -``` - - +{% /tabs %} ## 5. Wait for the release time -Held payments with a `FinishAfter` time cannot be finished until a ledger has already closed with a [`close_time` header field](ledger-header.html) that is later than the Escrow node's `FinishAfter` time. +Held payments with a `FinishAfter` time cannot be finished until a ledger has already closed with a [`close_time` header field](../../../references/protocol/ledger-data/ledger-header.md) that is later than the Escrow node's `FinishAfter` time. You can check the close time of the most recently-validated ledger with the [ledger method][]: Request: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-request.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-request.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/ledger-response.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/ledger-response.json' %} -``` - - +{% /tabs %} ## 6. Submit EscrowFinish transaction -[Sign and submit](transactions.html#signing-and-submitting-transactions) an [EscrowFinish transaction][] to execute the release of the funds after the `FinishAfter` time has passed. Set the `Owner` field of the transaction to the `Account` address from the EscrowCreate transaction, and the `OfferSequence` to the `Sequence` number from the EscrowCreate transaction. For an escrow held only by time, omit the `Condition` and `Fulfillment` fields. +[Sign and submit](../../../concepts/transactions/index.md#signing-and-submitting-transactions) an [EscrowFinish transaction][] to execute the release of the funds after the `FinishAfter` time has passed. Set the `Owner` field of the transaction to the `Account` address from the EscrowCreate transaction, and the `OfferSequence` to the `Sequence` number from the EscrowCreate transaction. For an escrow held only by time, omit the `Condition` and `Fulfillment` fields. ***TODO: First half of this statement is covered by concept info already. It's also reiterated in escrow.md. The second portion about potential recipients should remain.*** **Tip:** The EscrowFinish transaction is necessary because the XRP Ledger's state can only be modified by transactions. The sender of this transaction may be the recipient of the escrow, the original sender of the escrow, or any other XRP Ledger address. -If the escrow has expired, you can only [cancel the escrow](cancel-an-expired-escrow.html) instead. +If the escrow has expired, you can only [cancel the escrow](cancel-an-expired-escrow.md) instead. -{% include '_snippets/secret-key-warning.md' %} +{% partial file="/_snippets/secret-key-warning.md" /%} Request: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-request-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-request-escrowfinish-time.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/submit-response-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/submit-response-escrowfinish-time.json' %} -``` - - +{% /tabs %} Take note of the transaction's identifying `hash` value so you can check its final status when it is included in a validated ledger version. ## 7. Wait for validation -{% include '_snippets/wait-for-validation.md' %} +{% partial file="/_snippets/wait-for-validation.md" /%} ## 8. Confirm final result @@ -186,48 +167,41 @@ Use the [tx method][] with the EscrowFinish transaction's identifying hash to ch Request: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-request-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-request-escrowfinish-time.json' %} -``` - - +{% /tabs %} Response: - +{% tabs %} -*Websocket* +{% tab label="Websocket" %} +{% code-snippet file="/_code-samples/escrow/websocket/tx-response-escrowfinish-time.json" language="json" /%} +{% /tab %} -```json -{% include '_code-samples/escrow/websocket/tx-response-escrowfinish-time.json' %} -``` - - +{% /tabs %} ## See Also - **Concepts:** - - [What is XRP?](what-is-xrp.html) - - [Payment Types](payment-types.html) - - [Escrow](escrow.html) + - [What is XRP?](../../../introduction/what-is-xrp.md) + - [Payment Types](../../../concepts/payment-types/index.md) + - [Escrow](../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](send-xrp.html) - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Send XRP](../../get-started/send-xrp.md) + - [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - [EscrowCancel transaction][] - [EscrowCreate transaction][] - [EscrowFinish transaction][] - [account_objects method][] - [tx method][] - - [Escrow ledger object](escrow-object.html) + - [Escrow ledger object](../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md b/content/tutorials/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md index e312e205db..7a1ae50bb5 100644 --- a/content/tutorials/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md +++ b/content/tutorials/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md @@ -27,15 +27,15 @@ Here’s a roadmap to the high-level tasks that these participants need to compl The party host (sender) must have: -- An XRP Ledger [account](accounts.html#creating-accounts) that holds enough XRP to pay for escrow and any fees incurred. +- An XRP Ledger [account](../../../concepts/accounts/accounts.md#creating-accounts) that holds enough XRP to pay for escrow and any fees incurred. -- Access to a secure signing environment, which includes having a network connection to a [`rippled` server](install-rippled.html) (any server) that they can submit signed transactions to. +- Access to a secure signing environment, which includes having a network connection to a [`rippled` server](../../../infrastructure/installation/index.md) (any server) that they can submit signed transactions to. The party band (receiver) must have: -- An XRP Ledger [account](accounts.html#creating-accounts) that can receive the XRP paid by the escrow. +- An XRP Ledger [account](../../../concepts/accounts/accounts.md#creating-accounts) that can receive the XRP paid by the escrow. -- Access to a [`rippled` server](install-rippled.html) that they can use to look up the details of an XRP Ledger transaction hash and submit the fulfillment value to finish the escrow. +- Access to a [`rippled` server](../../../infrastructure/installation/index.md) that they can use to look up the details of an XRP Ledger transaction hash and submit the fulfillment value to finish the escrow. The party planner (oracle) must have: @@ -56,25 +56,35 @@ To create the escrow as a smart contract, the participants must first define the - **Should the escrow disallow fulfillment until a specific time?** - While this is an option, the participants agree that it is unnecessary for their escrow. For conditionally-held escrows, enabling this option doesn't provide any additional security, since whether the escrow can be finished still depends entirely on whether the party planner (oracle) publishes the fulfillment before the expiration. + ``` + While this is an option, the participants agree that it is unnecessary for their escrow. For conditionally-held escrows, enabling this option doesn't provide any additional security, since whether the escrow can be finished still depends entirely on whether the party planner (oracle) publishes the fulfillment before the expiration. + ``` - **Should the escrow expire?** - Absolutely yes. The participants agree that the escrow should expire after 12 noon the day after the party. This gives the party band (receiver) enough time to finish the escrow, after the party planner verifies that they fulfilled their end of the contract and publishes the cryptographic fulfillment. After expiration, the locked XRP returns to the party host's (sender's) account. + ``` + Absolutely yes. The participants agree that the escrow should expire after 12 noon the day after the party. This gives the party band (receiver) enough time to finish the escrow, after the party planner verifies that they fulfilled their end of the contract and publishes the cryptographic fulfillment. After expiration, the locked XRP returns to the party host's (sender's) account. - If the participants don't allow the escrow to expire and the party planner doesn't release the condition, the XRP stays locked in the escrow forever. + If the participants don't allow the escrow to expire and the party planner doesn't release the condition, the XRP stays locked in the escrow forever. + ``` - **How much XRP should the escrow lock up and potentially pay?** - The participants agree that the escrow should lock up and potentially pay 2000 XRP, which is the party band's fee. + ``` + The participants agree that the escrow should lock up and potentially pay 2000 XRP, which is the party band's fee. + ``` - **From which XRP Ledger account should the escrow lock up XRP for potential payment to the party band?** - The participants agree that the escrow should lock up and potentially pay XRP out of the party host's XRP Ledger account. + ``` + The participants agree that the escrow should lock up and potentially pay XRP out of the party host's XRP Ledger account. + ``` - **Which XRP Ledger account should the escrow potentially pay XRP to?** - The participants agree that the escrow should potentially pay XRP to the party band's XRP Ledger account. + ``` + The participants agree that the escrow should potentially pay XRP to the party band's XRP Ledger account. + ``` @@ -87,14 +97,14 @@ The party planner generates the condition and fulfillment values. The party plan The party planner must keep the fulfillment value a secret. Anyone can use the condition and fulfillment values to finish the escrow. Most often, the receiver finishes the escrow because they're the ones who are motivated to get paid. -[Generate a condition and a fulfillment >](send-a-conditionally-held-escrow.html#1-generate-condition-and-fulfillment) +[Generate a condition and a fulfillment >](send-a-conditionally-held-escrow.md#1-generate-condition-and-fulfillment) ## Sender: Calculate time values needed for the escrow Because the participants want the escrow to be eligible for cancellation after 12 noon the day after the party, the party host (sender) must calculate a `CancelAfter` value to include in the escrow definition. -[Calculate time values needed for the escrow >](send-a-conditionally-held-escrow.html#2-calculate-release-or-cancel-time) +[Calculate time values needed for the escrow >](send-a-conditionally-held-escrow.md#2-calculate-release-or-cancel-time) @@ -102,7 +112,7 @@ Because the participants want the escrow to be eligible for cancellation after 1 The party host (sender) creates the escrow that provides the smart contract. The party host must create the escrow because they are the only participant that can authorize the lock up and potential payout of XRP from their XRP Ledger account. -[Create the escrow >](send-a-conditionally-held-escrow.html#3-submit-escrowcreate-transaction) +[Create the escrow >](send-a-conditionally-held-escrow.md#3-submit-escrowcreate-transaction) @@ -110,11 +120,11 @@ The party host (sender) creates the escrow that provides the smart contract. The The party host (sender) waits for validation of the ledger that contains the escrow creation transaction and then confirms that the escrow was created. -[Wait for validation >](send-a-conditionally-held-escrow.html#4-wait-for-validation) +[Wait for validation >](send-a-conditionally-held-escrow.md#4-wait-for-validation) The party host then provides the escrow transaction's `hash` value to the party band (receiver). The party band can use the `hash` value to look up the escrow transaction on the XRP Ledger to ensure that it was created according to the smart contract terms they agreed to. As part of this step, the party band should confirm that the condition matches the one the party planner (oracle) provided. If the condition is wrong, the fulfillment the party planner provides won't let the party band finish the escrow and get paid. -[confirm escrow creation >](send-a-conditionally-held-escrow.html#5-confirm-that-the-escrow-was-created) +[confirm escrow creation >](send-a-conditionally-held-escrow.md#5-confirm-that-the-escrow-was-created) @@ -126,9 +136,9 @@ The party planner (oracle) is present at the party to ensure that everything is The party band must finish the escrow before 12 noon. If they don't, the escrow expires and the party band doesn't get paid. -If the party planner does not publish the fulfillment (the party band is a no show) or if the party planner publishes the fulfillment, but no one finishes the escrow; after 12 noon the next day, anyone can [cancel the escrow](cancel-an-expired-escrow.html). Cancelling the escrow returns the held XRP to the party host's account. +If the party planner does not publish the fulfillment (the party band is a no show) or if the party planner publishes the fulfillment, but no one finishes the escrow; after 12 noon the next day, anyone can [cancel the escrow](cancel-an-expired-escrow.md). Cancelling the escrow returns the held XRP to the party host's account. -[Finish the escrow >](send-a-conditionally-held-escrow.html#6-submit-escrowfinish-transaction) +[Finish the escrow >](send-a-conditionally-held-escrow.md#6-submit-escrowfinish-transaction) @@ -140,6 +150,6 @@ At this time, the party band provides the transaction's `hash` value to the part The party band can check their XRP Ledger account balance to ensure that their balance has increased by 2000 XRP. The party host's balance won't change at this step (unless the escrow was canceled) because the escrow creation already debited the locked-up XRP from their account. -[Wait for validation >](send-a-conditionally-held-escrow.html#7-wait-for-validation) +[Wait for validation >](send-a-conditionally-held-escrow.md#7-wait-for-validation) -[confirm final result >](send-a-conditionally-held-escrow.html#8-confirm-final-result) +[confirm final result >](send-a-conditionally-held-escrow.md#8-confirm-final-result) diff --git a/content/tutorials/use-specialized-payment-types/use-payment-channels.md b/content/tutorials/use-specialized-payment-types/use-payment-channels.md index 9d41841655..09fe4e3bf8 100644 --- a/content/tutorials/use-specialized-payment-types/use-payment-channels.md +++ b/content/tutorials/use-specialized-payment-types/use-payment-channels.md @@ -8,9 +8,9 @@ labels: --- # Use Payment Channels -[Payment Channels](payment-channels.html) are an advanced feature for sending "asynchronous" XRP payments that can be divided into very small increments and settled later. This tutorial walks through the entire process of using a payment channel, with examples using the [JSON-RPC API](http-websocket-apis.html) of a local [`rippled` server](xrpl-servers.html). +[Payment Channels](../../concepts/payment-types/payment-channels.md) are an advanced feature for sending "asynchronous" XRP payments that can be divided into very small increments and settled later. This tutorial walks through the entire process of using a payment channel, with examples using the [JSON-RPC API](../../references/http-websocket-apis/index.md) of a local [`rippled` server](../../concepts/networks-and-servers/index.md). -Ideally, to step through this tutorial, you would have two people, each with the keys to a [funded XRP Ledger account](accounts.html). However, you can also step through the tutorial as one person managing two XRP Ledger addresses. +Ideally, to step through this tutorial, you would have two people, each with the keys to a [funded XRP Ledger account](../../concepts/accounts/accounts.md). However, you can also step through the tutorial as one person managing two XRP Ledger addresses. ## Example Values @@ -27,7 +27,7 @@ The example addresses used in this tutorial are: Additionally, you'll need a `rippled` server to send transactions to. The examples in this tutorial assume a `rippled` server is running on the test machine (`localhost`) with an unencrypted JSON-RPC API endpoint on port **5005**. -To test without transferring real XRP, you can use [XRP Ledger Testnet](xrp-testnet-faucet.html) addresses with Testnet XRP. If you do use the Testnet, you can use the Testnet servers' JSON-RPC API by connecting to `https://api.altnet.rippletest.net:51234` instead of `http://localhost:5005/`. +To test without transferring real XRP, you can use [XRP Ledger Testnet](/resources/dev-tools/xrp-faucets) addresses with Testnet XRP. If you do use the Testnet, you can use the Testnet servers' JSON-RPC API by connecting to `https://api.altnet.rippletest.net:51234` instead of `http://localhost:5005/`. You can use any amount of XRP for the payment channels. The example values in this tutorial set aside 100 XRP (`100000000` drops) in a payment channel for at least 1 day. @@ -36,7 +36,7 @@ You can use any amount of XRP for the payment channels. The example values in th The following diagram summarizes the lifecycle of a payment channel: -[![Payment Channel Flow Diagram](img/paychan-flow.png)](img/paychan-flow.png) +[![Payment Channel Flow Diagram](/img/paychan-flow.png)](/img/paychan-flow.png) You can match up the numbered steps in this diagram with the steps of this tutorial. @@ -57,9 +57,9 @@ This is a [PaymentChannelCreate transaction][]. As part of this process, the pay **Tip:** The "settlement delay" does not delay the settlement, which can happen as fast as a ledger version closes (3-5 seconds). The "settlement delay" is a forced delay on closing the channel so that the payee has a chance to finish with settlement. -The following example shows creation of a payment channel by [submitting](submit.html#sign-and-submit-mode) to a local `rippled` server with the JSON-RPC API. The payment channel allocates 100 XRP from the [example payer](#example-values) (`rN7n7...`) to the [example payee](#example-values) (`rf1Bi...`) with a settlement delay of 1 day. The public key is the example payer's master public key, in hexadecimal. +The following example shows creation of a payment channel by [submitting](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#sign-and-submit-mode) to a local `rippled` server with the JSON-RPC API. The payment channel allocates 100 XRP from the [example payer](#example-values) (`rN7n7...`) to the [example payee](#example-values) (`rf1Bi...`) with a settlement delay of 1 day. The public key is the example payer's master public key, in hexadecimal. -**Note:** A payment channel counts as one object toward the payer's [owner reserve](reserves.html#owner-reserves). The owner must keep at least enough XRP to satisfy the reserve after subtracting the XRP allocated to the payment channel. +**Note:** A payment channel counts as one object toward the payer's [owner reserve](../../concepts/accounts/reserves.md#owner-reserves). The owner must keep at least enough XRP to satisfy the reserve after subtracting the XRP allocated to the payment channel. Request: @@ -169,9 +169,9 @@ Response: In the response from the JSON-RPC, the payer should look for the following: - In the transaction's `meta` field, confirm that the `TransactionResult` is `tesSUCCESS`. -- Confirm that the response has `"validated":true` to indicate the data comes from a validated ledger. (The result `tesSUCCESS` is only [final](finality-of-results.html) if it appears in a validated ledger version.) +- Confirm that the response has `"validated":true` to indicate the data comes from a validated ledger. (The result `tesSUCCESS` is only [final](../../concepts/transactions/finality-of-results/index.md) if it appears in a validated ledger version.) - In the `AffectedNodes` array of the transaction's `meta` field, look for a `CreatedNode` object with the `LedgerEntryType` of `PayChannel`. The `LedgerIndex` field of the `CreatedNode` object indicates the Channel ID. (In the above example, this is a hex string starting with "`5DB0`...") The Channel ID is necessary later to sign claims. - For more information on the PayChannel ledger object type, see [PayChannel ledger object](paychannel.html). + For more information on the PayChannel ledger object type, see [PayChannel ledger object](../../references/protocol/ledger-data/ledger-entry-types/paychannel.md). ## 2. The payee checks specifics of the payment channel. @@ -454,7 +454,7 @@ Response: } ``` -The payee should confirm that this transaction is successful in a validated ledger. For the full details, see [Reliable Transaction Submission](reliable-transaction-submission.html). +The payee should confirm that this transaction is successful in a validated ledger. For the full details, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md). ## 9. When the payer and payee are done doing business, the payer requests for the channel to be closed. @@ -468,7 +468,7 @@ The payee can also close a payment channel immediately after processing a claim -Example of [submitting a transaction](submit.html#sign-and-submit-mode) requesting a channel to close: +Example of [submitting a transaction](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#sign-and-submit-mode) requesting a channel to close: ```json { @@ -519,13 +519,13 @@ In this example, the `expiration` value 547073182 in [seconds since the Ripple E After the settlement delay has passed or the channel has reached its planned expiration time, the channel is expired. Any further transaction that would affect the channel can only close it, returning unclaimed XRP to the payer. -The channel can remain on the ledger in an expired state indefinitely. This is because the ledger cannot change except as the results of a transaction, so _someone_ must send a transaction to cause the expired channel to close. As long as the channel remains on the ledger, it counts as an object owned by the payer for purposes of the [owner reserve](reserves.html#owner-reserves). +The channel can remain on the ledger in an expired state indefinitely. This is because the ledger cannot change except as the results of a transaction, so _someone_ must send a transaction to cause the expired channel to close. As long as the channel remains on the ledger, it counts as an object owned by the payer for purposes of the [owner reserve](../../concepts/accounts/reserves.md#owner-reserves). Ripple recommends that the payer sends a second [PaymentChannelClaim transaction][] with the `tfClose` flag for this purpose. However, other accounts, even those not involved in the payment channel, can cause an expired channel to close. -The command to submit the transaction is the same as the previous example requesting channel expiration. (However, its resulting [auto-filled](transaction-common-fields.html#auto-fillable-fields) `Sequence` number, signature, and identifying hash are unique.) +The command to submit the transaction is the same as the previous example requesting channel expiration. (However, its resulting [auto-filled](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) `Sequence` number, signature, and identifying hash are unique.) -Example of [submitting](submit.html#sign-and-submit-mode) a transaction to close an expired channel: +Example of [submitting](../../references/http-websocket-apis/public-api-methods/transaction-methods/submit.md#sign-and-submit-mode) a transaction to close an expired channel: ```json { @@ -648,23 +648,19 @@ This concludes the tutorial of Payment Channel usage. Ripple encourages users to ## See Also - **Concepts:** - - [What is XRP?](what-is-xrp.html) - - [Payment Types](payment-types.html) - - [Payment Channels](payment-channels.html) + - [What is XRP?](../../introduction/what-is-xrp.md) + - [Payment Types](../../concepts/payment-types/index.md) + - [Payment Channels](../../concepts/payment-types/payment-channels.md) - **Tutorials:** - - [Send XRP](send-xrp.html) - - [Look Up Transaction Results](look-up-transaction-results.html) - - [Reliable Transaction Submission](reliable-transaction-submission.html) + - [Send XRP](../get-started/send-xrp.md) + - [Look Up Transaction Results](../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) - **References:** - [PaymentChannelClaim transaction][] - [PaymentChannelCreate transaction][] - [PaymentChannelFund transaction][] - [channel_authorize method][] - [channel_verify method][] - - [PayChannel ledger object](paychannel.html) + - [PayChannel ledger object](../../references/protocol/ledger-data/ledger-entry-types/paychannel.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-tokens/create-an-automated-market-maker.md b/content/tutorials/use-tokens/create-an-automated-market-maker.md index c5db2f7484..ecccc6b6c7 100644 --- a/content/tutorials/use-tokens/create-an-automated-market-maker.md +++ b/content/tutorials/use-tokens/create-an-automated-market-maker.md @@ -12,21 +12,21 @@ labels: --- # Create an Automated Market Maker -_(Requires the [AMM amendment][] :not_enabled:)_ +_(Requires the [AMM amendment][] {% not-enabled /%})_ -An [Automated Market Maker (AMM)](automated-market-makers.html) can be an efficient way to facilitate exchanges between two assets while earning its liquidity providers passive income. This tutorial shows how to create an AMM for a given asset pair. +An [Automated Market Maker (AMM)](../../concepts/tokens/decentralized-exchange/automated-market-makers.md) can be an efficient way to facilitate exchanges between two assets while earning its liquidity providers passive income. This tutorial shows how to create an AMM for a given asset pair. ## Prerequisites -- You must have an XRP Ledger address and some XRP. For development and testing purposes, you can get these from a [Faucet](xrp-testnet-faucet.html). +- You must have an XRP Ledger address and some XRP. For development and testing purposes, you can get these from a [Faucet](/resources/dev-tools/xrp-faucets). - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/) **version 2.11.0 or later**. See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/) **version 2.11.0 or later**. See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup steps. - You can also read along and use the interactive steps in your browser without any setup. -- You should have a basic understanding of how [tokens](tokens.html) work in the XRP Ledger. -- You may want to read about [Automated Market Makers in the XRP Ledger](automated-market-makers.html) first. +- You should have a basic understanding of how [tokens](../../concepts/tokens/index.md) work in the XRP Ledger. +- You may want to read about [Automated Market Makers in the XRP Ledger](../../concepts/tokens/decentralized-exchange/automated-market-makers.md) first. ## Example Code @@ -42,64 +42,64 @@ Complete sample code for all of the steps of these tutorials is available under ### {{n.next()}}. Connect to the network -You must be connected to the network to query it and submit transactions. The following code shows how to connect to a public {{use_network}} server using a supported [client library](client-libraries.html): +You must be connected to the network to query it and submit transactions. The following code shows how to connect to a public {{use_network}} server using a supported [client library](../../references/client-libraries.md): - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/connect.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/connect.js", language="js") }} - - +{% /tabs %} For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Get credentials -To transact on the XRP Ledger, you need an address, a secret key, and some XRP. For development and testing purposes, you can get these on the [{{use_network}}](parallel-networks.html) using the following interface: +To transact on the XRP Ledger, you need an address, a secret key, and some XRP. For development and testing purposes, you can get these on the [{{use_network}}](../../concepts/networks-and-servers/parallel-networks.md) using the following interface: -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](set-up-secure-signing.html). The following code shows how to get a `Wallet` instance using either the faucet or a seed provided by environment variable: +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). The following code shows how to get a `Wallet` instance using either the faucet or a seed provided by environment variable: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="// Get credentials" before="// Acquire tokens" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="// Get credentials", end_before="// Acquire tokens") }} - - +{% /tabs %} ### {{n.next()}}. Select and acquire assets As the creator of an AMM, you are also the first liquidity provider and you have to supply it with a starting pool of assets. Other users of the XRP Ledger can also become liquidity providers by supplying assets after the AMM exists. It's crucial to choose assets carefully because, as a liquidity provider for an AMM, you are supplying some amounts of both for users to swap between. If one of the AMM's assets becomes worthless, other users can use the AMM to trade for the other asset, leaving the AMM (and thus, its liquidity providers including you) holding only the worthless one. Technically, the AMM always holds some positive amount of both assets, but the amounts can be very small. -You can choose any pair of fungible assets in the XRP Ledger, including XRP or tokens, as long as they meet the [restrictions on AMM assets](automated-market-makers.html#restrictions-on-assets). +You can choose any pair of fungible assets in the XRP Ledger, including XRP or tokens, as long as they meet the [restrictions on AMM assets](../../concepts/tokens/decentralized-exchange/automated-market-makers.md#restrictions-on-assets). For each of the two assets, you need to know its currency code and issuer; as an exception, XRP has no issuer. For each of the assets, you must hold a balance of the asset (or _be_ the issuer). The following sample code acquires two assets, "TST" (which it buys using XRP) and "FOO" (which it receives from the issuer). - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="// Acquire tokens" before="// Check if AMM already exists" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="// Acquire tokens", end_before="// Check if AMM already exists") }} +{% /tabs %} - +This tutorial includes some example code to issue FOO tokens from a second test address. This is not realistic for a production scenario, because tokens do not inherently have value, but it makes it possible to demonstrate creating a new AMM for a unique currency pair. In production, you would acquire a second token in some other way, such as making an off-ledger deposit with the [stablecoin issuer](../../use-cases/tokenization/stablecoin-issuer.md), or buying it in the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md). -This tutorial includes some example code to issue FOO tokens from a second test address. This is not realistic for a production scenario, because tokens do not inherently have value, but it makes it possible to demonstrate creating a new AMM for a unique currency pair. In production, you would acquire a second token in some other way, such as making an off-ledger deposit with the [stablecoin issuer](stablecoin-issuer.html), or buying it in the [decentralized exchange](decentralized-exchange.html). +The helper function for issuing follows an abbreviated version of the steps in the [Issue a Fungible Token](issue-a-fungible-token.md) tutorial: -The helper function for issuing follows an abbreviated version of the steps in the [Issue a Fungible Token](issue-a-fungible-token.html) tutorial: +{% tabs %} - +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="/* Issue tokens" language="js" /%} +{% /tab %} -_JavaScript_ - -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="/* Issue tokens") }} - - +{% /tabs %} {{ start_step("Acquire tokens") }} @@ -112,13 +112,13 @@ _JavaScript_ Since there can only be one AMM for a specific pair of assets, it's best to check first before trying to create one. Use the [amm_info method][] to check whether the AMM already exists. For the request, you specify the two assets. The response should be an `actNotFound` error if the AMM does not exist. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="// Check if AMM already exists" before="// Look up AMM transaction cost" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="// Check if AMM already exists", end_before="// Look up AMM transaction cost") }} - - +{% /tabs %} If the AMM does already exist, you should double-check that you specified the right pair of assets. If someone else has already created this AMM, you can deposit to it instead. @@ -130,17 +130,17 @@ If the AMM does already exist, you should double-check that you specified the ri ### {{n.next()}}. Look up the AMMCreate transaction cost -Creating an AMM has a special [transaction cost][] to prevent spam: since it creates objects in the ledger that no one owns, you must burn at least one [owner reserve increment](reserves.html) of XRP to send the AMMCreate transaction. The exact value can change due to [fee voting](https://xrpl.org/fee-voting.html), so you should look up the current incremental reserve value using the [server_state method][]. +Creating an AMM has a special [transaction cost][] to prevent spam: since it creates objects in the ledger that no one owns, you must burn at least one [owner reserve increment](../../concepts/accounts/reserves.md) of XRP to send the AMMCreate transaction. The exact value can change due to [fee voting](https://xrpl.org/fee-voting.html), so you should look up the current incremental reserve value using the [server_state method][]. It is also a good practice to display this value and give a human operator a chance to stop before you send the transaction. Burning an owner reserve is typically a much higher cost than sending a normal transaction, so you don't want it to be a surprise. (Currently, on both Mainnet and Devnet, the cost of sending a typical transaction is 0.000010 XRP but the cost of AMMCreate is 2 XRP.) - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="// Look up AMM transaction cost" before="// Create AMM" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="// Look up AMM transaction cost", end_before="// Create AMM") }} - - +{% /tabs %} {{ start_step("Look up AMMCreate cost") }} @@ -164,13 +164,13 @@ For the two starting assets, it does not matter which is `Asset` and which is `A **Tip:** Use `fail_hard` when submitting this transaction, so you don't have to pay the high transaction cost if the transaction initially fails. (It's still _possible_ that the transaction could tentatively succeed, and then fail and still burn the transaction cost, but this protects you from burning XRP on many of types of failures.) - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="// Create AMM" before="// Confirm that AMM exists" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="// Create AMM", end_before="// Confirm that AMM exists") }} - - +{% /tabs %} {{ start_step("Create AMM") }}
          @@ -211,13 +211,13 @@ _JavaScript_ If the AMMCreate transaction succeeded, it creates the AMM and related objects in the ledger. You _could_ check the metadata of the AMMCreate transaction, but it is often easier to call the [amm_info method][] again to get the status of the newly-created AMM. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="// Confirm that AMM exists" before="// Check token balances" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="// Confirm that AMM exists", end_before="// Check token balances") }} - - +{% /tabs %} In the result, the `amm` object's `lp_token` field is particularly useful because it includes the issuer and currency code of the AMM's LP Tokens, which you need to know for many other AMM-related transactions. LP Tokens always have a hex currency code starting with `03`, and the rest of the code is derived from the issuers and currency codes of the tokens in the AMM's pool. The issuer of the LP Tokens is the AMM address, which is randomly chosen when you create an AMM. @@ -233,15 +233,15 @@ Initially, the AMM's total outstanding LP Tokens, reported in the `lp_token` fie You can also use the [account_lines method][] to get an updated view of your token balances. Your balances should be decreased by the amounts you deposited, but you now have a balance of LP Tokens that you received from the AMM. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/create-amm/js/create-amm.js" from="// Check token balances" before="// Disconnect" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/create-amm/js/create-amm.js", language="js", start_with="// Check token balances", end_before="// Disconnect") }} +{% /tabs %} - - -The `account_lines` response shows only the tokens held by the account you looked up (probably yours). If you have a lot of tokens, you may want to specify the AMM address as the `peer` in the request so you don't have to [paginate](markers-and-pagination.html) over multiple requests to find the AMM's LP Tokens. In this tutorial, your account probably only holds the three different tokens, so you can see all three in the same response. +The `account_lines` response shows only the tokens held by the account you looked up (probably yours). If you have a lot of tokens, you may want to specify the AMM address as the `peer` in the request so you don't have to [paginate](../../references/http-websocket-apis/api-conventions/markers-and-pagination.md) over multiple requests to find the AMM's LP Tokens. In this tutorial, your account probably only holds the three different tokens, so you can see all three in the same response. **Tip:** If one of the assets in the AMM's pool is XRP, you need to call the [account_info method][] on your account to see the difference in your balance (the `Balance` field of the account object). @@ -254,13 +254,10 @@ The `account_lines` response shows only the tokens held by the account you looke ## Next Steps -At this point the AMM is up and running, and [trades in the DEX](trade-in-the-decentralized-exchange.html) automatically use this AMM in combination with Offers to achieve the best exchange rate possible between the two assets in the AMM's pool. If the flow of funds between the two assets is relatively balanced and there are no major shifts in the value of one asset compared to the other, this can become a source of passive income for you and anyone else who deposits liquidity into the AMM's pool. +At this point the AMM is up and running, and [trades in the DEX](trade-in-the-decentralized-exchange.md) automatically use this AMM in combination with Offers to achieve the best exchange rate possible between the two assets in the AMM's pool. If the flow of funds between the two assets is relatively balanced and there are no major shifts in the value of one asset compared to the other, this can become a source of passive income for you and anyone else who deposits liquidity into the AMM's pool. When you want to withdraw liquidity from the AMM, you can use [AMMDeposit][] to cash in your LP Tokens to receive a share of the AMM's assets. You can also use LP Tokens like any other tokens in the XRP Ledger, which means you can trade them, use them in payments, or even deposit them in another AMM. However, you should keep an eye on market conditions, and use tools like [AMMBid][] and [AMMVote][] to insulate yourself from losses due to changes in the relative value of the two assets in the pool. - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-tokens/enable-no-freeze.md b/content/tutorials/use-tokens/enable-no-freeze.md index 1856223e96..323de85606 100644 --- a/content/tutorials/use-tokens/enable-no-freeze.md +++ b/content/tutorials/use-tokens/enable-no-freeze.md @@ -10,14 +10,14 @@ labels: --- # Enable No Freeze -If you [issue tokens](issued-currencies.html) in the XRP Ledger, can enable the [No Freeze setting](freezes.html#no-freeze) to permanently limit your own ability to use the token freezing features of the XRP Ledger. (As a reminder, this only applies to issued tokens, not XRP.) This tutorial shows how to enable the No Freeze setting on your issuing account. +If you [issue tokens](../../concepts/tokens/index.md) in the XRP Ledger, can enable the [No Freeze setting](../../concepts/tokens/fungible-tokens/freezes.md#no-freeze) to permanently limit your own ability to use the token freezing features of the XRP Ledger. (As a reminder, this only applies to issued tokens, not XRP.) This tutorial shows how to enable the No Freeze setting on your issuing account. ## Prerequisites - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. -- You don't need to have [issued a token](issue-a-fungible-token.html) in the XRP Ledger to enable No Freeze, but the main reason you would do so is if you intend to or have already issued such a token. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup steps. +- You don't need to have [issued a token](issue-a-fungible-token.md) in the XRP Ledger to enable No Freeze, but the main reason you would do so is if you intend to or have already issued such a token. @@ -34,48 +34,47 @@ Complete sample code for all of the steps of this tutorial is available under th ### {{n.next()}}. Get Credentials -To transact on the XRP Ledger, you need an address and secret key, and some XRP. If you use the best practice of having separate ["cold" and "hot" addresses](account-types.html), you need the **master keys** to the _cold address_, which is the **issuer** of the token. Only the issuer's No Freeze setting has any effect on a token. +To transact on the XRP Ledger, you need an address and secret key, and some XRP. If you use the best practice of having separate ["cold" and "hot" addresses](../../concepts/accounts/account-types.md), you need the **master keys** to the _cold address_, which is the **issuer** of the token. Only the issuer's No Freeze setting has any effect on a token. -**Caution:** You cannot use a [regular key pair](cryptographic-keys.html) or [multi-signing](multi-signing.html) to enable the No Freeze setting. +**Caution:** You cannot use a [regular key pair](../../concepts/accounts/cryptographic-keys.md) or [multi-signing](../../concepts/accounts/multi-signing.md) to enable the No Freeze setting. For this tutorial, you can get credentials from the following interface: -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](secure-signing.html). +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). ### {{n.next()}}. Connect to the Network -You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](client-libraries.html): +You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](../../references/client-libraries.md): - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} - - +{% /tabs %} For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Send AccountSet Transaction -To enable the No Freeze setting, send an [AccountSet transaction][] with a `SetFlag` field containing the [`asfNoFreeze` value (`6`)](accountset.html#accountset-flags). To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. +To enable the No Freeze setting, send an [AccountSet transaction][] with a `SetFlag` field containing the [`asfNoFreeze` value (`6`)](../../references/protocol/transactions/types/accountset.md#accountset-flags). To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. For example: - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/set-no-freeze.js", start_with="// Submit an AccountSet transaction", end_before="// Done", language="js") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/set-no-freeze.js" from="// Submit an AccountSet transaction" before="// Done" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json { "id": 12, @@ -92,8 +91,9 @@ _WebSocket_ "secret": "s████████████████████████████" } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Send AccountSet") }} @@ -106,25 +106,24 @@ _WebSocket_ ### {{n.next()}}. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](reliable-transaction-submission.html).) +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ### {{n.next()}}. Confirm Account Settings -After the transaction is validated, you can check your account's settings to confirm that the No Freeze flag is enabled. You can do this by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfNoFreeze` bit (`0x00200000`)](accountroot.html#accountroot-flags) is enabled. +After the transaction is validated, you can check your account's settings to confirm that the No Freeze flag is enabled. You can do this by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfNoFreeze` bit (`0x00200000`)](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) is enabled. - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/check-no-freeze.js", start_with="// Request account info", end_before="await client.disconnect()", language="js") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/check-no-freeze.js" from="// Request account info" before="await client.disconnect()" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json Request: @@ -165,8 +164,9 @@ Response: } } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Confirm Settings") }} @@ -178,21 +178,17 @@ Response: ## See Also - **Concepts:** - - [Freezing Issued Currencies](freezes.html) - - [Trust Lines](trust-lines-and-issuing.html) + - [Freezing Issued Currencies](../../concepts/tokens/fungible-tokens/freezes.md) + - [Trust Lines](../../concepts/tokens/fungible-tokens/index.md) - **Tutorials:** - - [Enact Global Freeze](enact-global-freeze.html) - - [Freeze a Trust Line](freeze-a-trust-line.html) + - [Enact Global Freeze](enact-global-freeze.md) + - [Freeze a Trust Line](freeze-a-trust-line.md) - **References:** - [account_lines method][] - [account_info method][] - [AccountSet transaction][] - [TrustSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) - - [RippleState (trust line) Flags](ripplestate.html#ripplestate-flags) + - [AccountRoot Flags](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-tokens/enact-global-freeze.md b/content/tutorials/use-tokens/enact-global-freeze.md index 895f9b263e..4b18801ff1 100644 --- a/content/tutorials/use-tokens/enact-global-freeze.md +++ b/content/tutorials/use-tokens/enact-global-freeze.md @@ -11,7 +11,7 @@ labels: --- # Enact Global Freeze -If you [issue tokens](issued-currencies.html) in the XRP Ledger, can enact a [Global Freeze](freezes.html#global-freeze) to prevent users from sending your tokens to each other and trading your token in the [decentralized exchange](decentralized-exchange.html). This tutorial shows how to enact and end a Global Freeze. You might want to do this, for example, if you see signs of suspicious activity related to your issuing address in the ledger, or to off-ledger systems you use to manage your token. (For example, if your token is a stablecoin and you process withdrawals and deposits from the ledger, you may want to freeze your token while you investigate if you suspect your systems have been hacked.) You can later disable the Global Freeze setting unless you have also enabled the [No Freeze setting](freezes.html#no-freeze). +If you [issue tokens](../../concepts/tokens/index.md) in the XRP Ledger, can enact a [Global Freeze](../../concepts/tokens/fungible-tokens/freezes.md#global-freeze) to prevent users from sending your tokens to each other and trading your token in the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md). This tutorial shows how to enact and end a Global Freeze. You might want to do this, for example, if you see signs of suspicious activity related to your issuing address in the ledger, or to off-ledger systems you use to manage your token. (For example, if your token is a stablecoin and you process withdrawals and deposits from the ledger, you may want to freeze your token while you investigate if you suspect your systems have been hacked.) You can later disable the Global Freeze setting unless you have also enabled the [No Freeze setting](../../concepts/tokens/fungible-tokens/freezes.md#no-freeze). **Tip:** As a reminder, freezes only apply to issued tokens, not XRP, and do not prevent users from sending the tokens _directly_ back to the issuer. @@ -19,8 +19,8 @@ If you [issue tokens](issued-currencies.html) in the XRP Ledger, can enact a [Gl - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. -- You don't need to have [issued a token](issue-a-fungible-token.html) in the XRP Ledger to enact a Global Freeze, but the main reason you would do so is if you have already issued such a token. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup steps. +- You don't need to have [issued a token](issue-a-fungible-token.md) in the XRP Ledger to enact a Global Freeze, but the main reason you would do so is if you have already issued such a token. @@ -37,50 +37,49 @@ Complete sample code for all of the steps of this tutorial is available under th ### {{n.next()}}. Get Credentials -To transact on the XRP Ledger, you need an address and secret key, and some XRP. If you use the best practice of having separate ["cold" and "hot" addresses](account-types.html), you need the keys to the _cold address_, which is the **issuer** of the token. Only the issuer's Global Freeze setting has any effect on a token. +To transact on the XRP Ledger, you need an address and secret key, and some XRP. If you use the best practice of having separate ["cold" and "hot" addresses](../../concepts/accounts/account-types.md), you need the keys to the _cold address_, which is the **issuer** of the token. Only the issuer's Global Freeze setting has any effect on a token. -**Tip:** Unlike the No Freeze setting, you _can_ enable and disable a Global Freeze using a [regular key pair](cryptographic-keys.html) or [multi-signing](multi-signing.html). +**Tip:** Unlike the No Freeze setting, you _can_ enable and disable a Global Freeze using a [regular key pair](../../concepts/accounts/cryptographic-keys.md) or [multi-signing](../../concepts/accounts/multi-signing.md). For this tutorial, you can get credentials from the following interface: -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](secure-signing.html). +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). ### {{n.next()}}. Connect to the Network -You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](client-libraries.html): +You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](../../references/client-libraries.md): - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} - - +{% /tabs %} For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Send AccountSet Transaction to Start the Freeze -To enable the Global Freeze setting, send an [AccountSet transaction][] with a `SetFlag` field containing the [`asfGlobalFreeze` value (`7`)](accountset.html#accountset-flags). To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. +To enable the Global Freeze setting, send an [AccountSet transaction][] with a `SetFlag` field containing the [`asfGlobalFreeze` value (`7`)](../../references/protocol/transactions/types/accountset.md#accountset-flags). To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. **Caution:** Enacting a global freeze affects _all tokens issued by the address._ Furthermore, if you use the No Freeze setting, you cannot undo this action. For example: - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/set-global-freeze.js", language="js", start_with="// Prepare an AccountSet", end_before="// Investigate") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/set-global-freeze.js" from="// Prepare an AccountSet" before="// Investigate" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json { "id": "example_enable_global_freeze", @@ -97,8 +96,9 @@ _WebSocket_ "secret": "s████████████████████████████" } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Send AccountSet (Start Freeze)") }} @@ -109,25 +109,24 @@ _WebSocket_ ### {{n.next()}}. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](reliable-transaction-submission.html).) +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ### {{n.next()}}. Confirm Account Settings -After the transaction is validated, you can check your issuing account's settings to confirm that the Global Freeze flag is enabled. You can do this by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfGlobalFreeze` bit (`0x00400000`)](accountroot.html#accountroot-flags) is on. +After the transaction is validated, you can check your issuing account's settings to confirm that the Global Freeze flag is enabled. You can do this by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfGlobalFreeze` bit (`0x00400000`)](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) is on. - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/check-global-freeze.js", language="js", start_with="// Request account info", end_before="await client.disconnect()") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/check-global-freeze.js" from="// Request account info" before="await client.disconnect()" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json Request: @@ -168,8 +167,9 @@ Response: } } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Confirm Settings") }} @@ -184,27 +184,26 @@ At this point all token issued by your address are frozen. During this time, you Keep in mind that while a token is frozen, it is still possible for the frozen token to be sent _directly to_ or _directly from_ the issuer, so you may still want to disable any systems you have that are configured to send such transactions, and you may want to track incoming transactions without processing them so that you can eventually process the legitimate ones. -If you use a [hot wallet or operational address](account-types.html), it has no special status compared to other users, so it also cannot send and receive the frozen tokens except when dealing directly with the issuer. +If you use a [hot wallet or operational address](../../concepts/accounts/account-types.md), it has no special status compared to other users, so it also cannot send and receive the frozen tokens except when dealing directly with the issuer. -If you use the [No Freeze setting](freezes.html#no-freeze) then the Global Freeze continues forever. If you want to resume issuing tokens, you must create a new account and start over from there. +If you use the [No Freeze setting](../../concepts/tokens/fungible-tokens/freezes.md#no-freeze) then the Global Freeze continues forever. If you want to resume issuing tokens, you must create a new account and start over from there. Otherwise, you can continue to the next step whenever you're ready. ### {{n.next()}}. Send AccountSet Transaction to End the Freeze -To end the Global Freeze, send an [AccountSet transaction][] with a `ClearFlag` field containing the [`asfGlobalFreeze` value (`7`)](accountset.html#accountset-flags). As always, you first _prepare_ the transaction, _sign_ it, and finally _submit_ it to the network. +To end the Global Freeze, send an [AccountSet transaction][] with a `ClearFlag` field containing the [`asfGlobalFreeze` value (`7`)](../../references/protocol/transactions/types/accountset.md#accountset-flags). As always, you first _prepare_ the transaction, _sign_ it, and finally _submit_ it to the network. For example: - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/set-global-freeze.js", language="js", start_with="// Now we disable", end_before="// Global freeze disabled") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/set-global-freeze.js" from="// Now we disable" before="// Global freeze disabled" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json { "id": "example_disable_global_freeze", @@ -221,8 +220,9 @@ _WebSocket_ "secret": "s████████████████████████████" } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Send AccountSet (End Freeze)") }} @@ -236,13 +236,13 @@ _WebSocket_ As before, wait for the previous transaction to be validated by consensus before continuing. {{ start_step("Wait (again)") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ### {{n.next()}}. Confirm Account Settings -After the transaction is validated, you can confirm the status of the Global Freeze flag in the same way as before: by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfGlobalFreeze` bit (`0x00400000`)](accountroot.html#accountroot-flags) is **off**. +After the transaction is validated, you can confirm the status of the Global Freeze flag in the same way as before: by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfGlobalFreeze` bit (`0x00400000`)](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) is **off**. {{ start_step("Confirm Settings (After Freeze)") }} @@ -254,22 +254,18 @@ After the transaction is validated, you can confirm the status of the Global Fre ## See Also - **Concepts:** - - [Freezing Issued Currencies](freezes.html) - - [Trust Lines](trust-lines-and-issuing.html) + - [Freezing Issued Currencies](../../concepts/tokens/fungible-tokens/freezes.md) + - [Trust Lines](../../concepts/tokens/fungible-tokens/index.md) - **Tutorials:** - - [Enable No Freeze](enable-no-freeze.html) - - [Freeze a Trust Line](freeze-a-trust-line.html) - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.html) + - [Enable No Freeze](enable-no-freeze.md) + - [Freeze a Trust Line](freeze-a-trust-line.md) + - [Change or Remove a Regular Key Pair](../manage-account-settings/change-or-remove-a-regular-key-pair.md) - **References:** - [account_lines method][] - [account_info method][] - [AccountSet transaction][] - [TrustSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) - - [RippleState (trust line) Flags](ripplestate.html#ripplestate-flags) + - [AccountRoot Flags](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-tokens/freeze-a-trust-line.md b/content/tutorials/use-tokens/freeze-a-trust-line.md index 1ab974c6bc..2f59652f22 100644 --- a/content/tutorials/use-tokens/freeze-a-trust-line.md +++ b/content/tutorials/use-tokens/freeze-a-trust-line.md @@ -11,7 +11,7 @@ labels: --- # Freeze a Trust Line -This tutorial shows the steps to [freeze an individual trust line](freezes.html#individual-freeze). The issuer of a token in the XRP Ledger may freeze the trust line to a particular counterparty if that account is engaged in suspicious activity. +This tutorial shows the steps to [freeze an individual trust line](../../concepts/tokens/fungible-tokens/freezes.md#individual-freeze). The issuer of a token in the XRP Ledger may freeze the trust line to a particular counterparty if that account is engaged in suspicious activity. **Tip:** As a reminder, freezes only apply to issued tokens, not XRP. @@ -20,9 +20,9 @@ This tutorial shows the steps to [freeze an individual trust line](freezes.html# - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. -- This tutorial assumes **you have already [issued a token](issue-a-fungible-token.html)** in the XRP Ledger. -- You **cannot** have enabled the [No Freeze setting](freezes.html#no-freeze), which gives up your ability to freeze individual trust lines. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup steps. +- This tutorial assumes **you have already [issued a token](issue-a-fungible-token.md)** in the XRP Ledger. +- You **cannot** have enabled the [No Freeze setting](../../concepts/tokens/fungible-tokens/freezes.md#no-freeze), which gives up your ability to freeze individual trust lines. @@ -39,31 +39,31 @@ Complete sample code for all of the steps of this tutorial is available under th ### {{n.next()}}. Get Credentials -To transact on the XRP Ledger, you need an address and secret key, and some XRP. If you use the best practice of having separate ["cold" and "hot" addresses](account-types.html), you need the keys to the _cold address_, which is the **issuer** of the token. +To transact on the XRP Ledger, you need an address and secret key, and some XRP. If you use the best practice of having separate ["cold" and "hot" addresses](../../concepts/accounts/account-types.md), you need the keys to the _cold address_, which is the **issuer** of the token. -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} ### {{n.next()}}. Connect to the Network -You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](client-libraries.html): +You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](../../references/client-libraries.md): - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ``` (Connect to wss:// URL of an XRP Ledger server using your preferred client.) ``` +{% /tab %} - +{% /tabs %} For purposes of this tutorial, use the following interface to connect and perform setup: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Choose Trust Line @@ -74,16 +74,15 @@ You can only freeze one trust line per transaction, so you need to know which tr - The address of the account linked to yours via the trust line. - The currency code of the trust line. -There can be multiple [trust lines](trust-lines-and-issuing.html) between two accounts, each for a different currency. If you suspect a particular account is behaving maliciously, you may want to freeze all the trust lines between your accounts, one at a time. Use the [account_lines method][] with a pair of accounts to find all trust lines between those accounts, then choose a trust line to freeze from among the results. For example: +There can be multiple [trust lines](../../concepts/tokens/fungible-tokens/index.md) between two accounts, each for a different currency. If you suspect a particular account is behaving maliciously, you may want to freeze all the trust lines between your accounts, one at a time. Use the [account_lines method][] with a pair of accounts to find all trust lines between those accounts, then choose a trust line to freeze from among the results. For example: - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/set-individual-freeze.js", language="js", start_with="// Look up current trust lines", end_before="// Send a TrustSet") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/set-individual-freeze.js" from="// Look up current trust lines" before="// Send a TrustSet" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json Example Request: @@ -120,8 +119,9 @@ Example Request: "type": "response" } ``` +{% /tab %} - +{% /tabs %} For purposes of this tutorial, a second test address has created a trust line to the test address for the currency "FOO", which you can see in the following example: @@ -136,7 +136,7 @@ For purposes of this tutorial, a second test address has created a trust line to ### {{n.next()}}. Send TrustSet Transaction to Freeze the Trust Line -To enable or disable an Individual Freeze on a specific trust line, send a [TrustSet transaction][] with the [`tfSetFreeze` flag enabled](trustset.html#trustset-flags). The fields of the transaction should be as follows: +To enable or disable an Individual Freeze on a specific trust line, send a [TrustSet transaction][] with the [`tfSetFreeze` flag enabled](../../references/protocol/transactions/types/trustset.md#trustset-flags). The fields of the transaction should be as follows: | Field | Value | Description | |--------------------------|--------|-------------| @@ -150,14 +150,13 @@ To enable or disable an Individual Freeze on a specific trust line, send a [Trus As always, to send a transaction, you _prepare_ it by filling in all the necessary fields, _sign_ it with your cryptographic keys, and _submit_ it to the network. For example: - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/set-individual-freeze.js", language="js", start_with="// Send a TrustSet", end_before="// Investigate") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/set-individual-freeze.js" from="// Send a TrustSet" before="// Investigate" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json { "id": "example_freeze_individual_line", @@ -178,8 +177,9 @@ _WebSocket_ "secret": "s████████████████████████████" } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Send TrustSet to Freeze") }} @@ -187,15 +187,15 @@ _WebSocket_
          {{ end_step() }} -**Note:** If you want to freeze multiple trust lines in different currencies with the same counterparty, repeat this step for each trust line. It is possible to send several transactions in a single ledger if you use a different [sequence number](basic-data-types.html#account-sequence) for each transaction. +**Note:** If you want to freeze multiple trust lines in different currencies with the same counterparty, repeat this step for each trust line. It is possible to send several transactions in a single ledger if you use a different [sequence number](../../references/protocol/data-types/basic-data-types.md#account-sequence) for each transaction. ### {{n.next()}}. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](reliable-transaction-submission.html).) +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ### {{n.next()}}. Check Trust Line Freeze Status @@ -211,14 +211,13 @@ At this point, the trust line from the counterparty should be frozen. You can ch In the response, the field `"freeze": true` indicates that the account from the request has enabled an Individual Freeze on that trust line. The field `"freeze_peer": true` indicates that the counterparty (`peer`) from the request has frozen the trust line. For example: - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/set-individual-freeze.js", language="js", start_with="// Confirm trust line status", end_before="// Investigate") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/set-individual-freeze.js" from="// Confirm trust line status" before="// Investigate" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json Example Request: @@ -253,8 +252,9 @@ Example Response: } } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Check Freeze Status") }} @@ -265,7 +265,7 @@ Example Response: ### {{n.next()}}. (Optional) Send TrustSet Transaction to End the Freeze -If you decide that the trust line no longer needs to be frozen (for example, you investigated and decided that the suspicious activity was benign), you can end the individual freeze in almost the same way that you froze the trust line in the first place. To end an individual freeze, send a [TrustSet transaction][] with the [`tfClearFreeze` flag enabled](trustset.html#trustset-flags). The other fields of the transaction should be the same as when you froze the trust line: +If you decide that the trust line no longer needs to be frozen (for example, you investigated and decided that the suspicious activity was benign), you can end the individual freeze in almost the same way that you froze the trust line in the first place. To end an individual freeze, send a [TrustSet transaction][] with the [`tfClearFreeze` flag enabled](../../references/protocol/transactions/types/trustset.md#trustset-flags). The other fields of the transaction should be the same as when you froze the trust line: | Field | Value | Description | |--------------------------|--------|-------------| @@ -279,14 +279,13 @@ If you decide that the trust line no longer needs to be frozen (for example, you As always, to send a transaction, you _prepare_ it by filling in all the necessary fields, _sign_ it with your cryptographic keys, and _submit_ it to the network. For example: - +{% tabs %} -_JavaScript_ - -{{ include_code("_code-samples/freeze/js/set-individual-freeze.js", language="js", start_with="// Clear the individual", end_before="// End main") }} - -_WebSocket_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/freeze/js/set-individual-freeze.js" from="// Clear the individual" before="// End main" language="js" /%} +{% /tab %} +{% tab label="WebSocket" %} ```json { "id": "example_end_individual_freeze", @@ -307,8 +306,9 @@ _WebSocket_ "secret": "s████████████████████████████" } ``` +{% /tab %} - +{% /tabs %} {{ start_step("Send TrustSet to End Freeze") }} @@ -322,7 +322,7 @@ _WebSocket_ As before, wait for the transaction to be validated by consensus. {{ start_step("Wait (again)") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -330,22 +330,18 @@ As before, wait for the transaction to be validated by consensus. ## See Also - **Concepts:** - - [Freezing Issued Currencies](freezes.html) - - [Trust Lines](trust-lines-and-issuing.html) + - [Freezing Issued Currencies](../../concepts/tokens/fungible-tokens/freezes.md) + - [Trust Lines](../../concepts/tokens/fungible-tokens/index.md) - **Tutorials:** - - [Enable No Freeze](enable-no-freeze.html) - - [Enact Global Freeze](enact-global-freeze.html) - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.html) + - [Enable No Freeze](enable-no-freeze.md) + - [Enact Global Freeze](enact-global-freeze.md) + - [Change or Remove a Regular Key Pair](../manage-account-settings/change-or-remove-a-regular-key-pair.md) - **References:** - [account_lines method][] - [account_info method][] - [AccountSet transaction][] - [TrustSet transaction][] - - [AccountRoot Flags](accountroot.html#accountroot-flags) - - [RippleState (trust line) Flags](ripplestate.html#ripplestate-flags) + - [AccountRoot Flags](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-tokens/issue-a-fungible-token.md b/content/tutorials/use-tokens/issue-a-fungible-token.md index b1417fb86b..75e987a1e8 100644 --- a/content/tutorials/use-tokens/issue-a-fungible-token.md +++ b/content/tutorials/use-tokens/issue-a-fungible-token.md @@ -10,17 +10,17 @@ labels: --- # Issue a Fungible Token -Anyone can issue various types of tokens in the XRP Ledger, ranging from informal "IOUs" to fiat-backed stablecoins, purely digital fungible and semi-fungible tokens, and more. This tutorial shows the technical steps of creating a token in the ledger. For more information on how XRP Ledger tokens work, see [Issued Currencies](issued-currencies.html); for more on the business decisions involved in issuing a stablecoin, see [Stablecoin Issuer](stablecoin-issuer.html). +Anyone can issue various types of tokens in the XRP Ledger, ranging from informal "IOUs" to fiat-backed stablecoins, purely digital fungible and semi-fungible tokens, and more. This tutorial shows the technical steps of creating a token in the ledger. For more information on how XRP Ledger tokens work, see [Issued Currencies](../../concepts/tokens/index.md); for more on the business decisions involved in issuing a stablecoin, see [Stablecoin Issuer](../../use-cases/tokenization/stablecoin-issuer.md). ## Prerequisites - You need two funded XRP Ledger accounts, each with an address, secret key, and some XRP. For this tutorial, you can generate new test credentials as needed. - - Each address needs enough XRP to satisfy the [reserve requirement](reserves.html) including the additional reserve for a trust line. + - Each address needs enough XRP to satisfy the [reserve requirement](../../concepts/accounts/reserves.md) including the additional reserve for a trust line. - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. - - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](get-started-using-python.html) for setup steps. - - **Java** with the [xrpl4j library](https://github.com/XRPLF/xrpl4j). See [Get Started Using Java](get-started-using-java.html) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup steps. + - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../get-started/get-started-using-python.md) for setup steps. + - **Java** with the [xrpl4j library](https://github.com/XRPLF/xrpl4j). See [Get Started Using Java](../get-started/get-started-using-java.md) for setup steps. - You can also read along and use the interactive steps in your browser without any setup. @@ -39,7 +39,7 @@ Complete sample code for all of the steps of these tutorials is available under To transact on the XRP Ledger, you need an address and secret key, and some XRP. You also need one or more recipients who are willing to hold the tokens you issue: unlike in some other blockchains, in the XRP Ledger you cannot force someone to hold a token they do not want. -The best practice is to use ["cold" and "hot" addresses](account-types.html). The cold address is the **issuer** of the token. The hot address is like a regular user's address that you control. It receives tokens from the cold address, which you can then transfer to other users. A hot address is not strictly necessary, since you could send tokens directly to users from the cold address, but it is good practice for security reasons. In production, you should take extra care of the cold address's cryptographic keys (for example, keeping them offline) because it is much harder to replace a cold address than a hot address. +The best practice is to use ["cold" and "hot" addresses](../../concepts/accounts/account-types.md). The cold address is the **issuer** of the token. The hot address is like a regular user's address that you control. It receives tokens from the cold address, which you can then transfer to other users. A hot address is not strictly necessary, since you could send tokens directly to users from the cold address, but it is good practice for security reasons. In production, you should take extra care of the cold address's cryptographic keys (for example, keeping them offline) because it is much harder to replace a cold address than a hot address. In this tutorial, the hot address receives the tokens you issue from the cold address. You can get the keys for two addresses using the following interface. @@ -57,37 +57,37 @@ In this tutorial, the hot address receives the tokens you issue from the cold ad
          {{ end_step() }} -**Caution:** Ripple provides the [Testnet and Devnet](parallel-networks.html) for testing purposes only, and sometimes resets the state of these test networks along with all balances. As a precaution, **do not** use the same addresses on Testnet/Devnet and Mainnet. +**Caution:** Ripple provides the [Testnet and Devnet](../../concepts/networks-and-servers/parallel-networks.md) for testing purposes only, and sometimes resets the state of these test networks along with all balances. As a precaution, **do not** use the same addresses on Testnet/Devnet and Mainnet. -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](secure-signing.html). +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). ### {{n.next()}}. Connect to the Network -You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server with a supported [client library](client-libraries.html): +You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server with a supported [client library](../../references/client-libraries.md): - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/get-started/js/base.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/get-started/js/base.js", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/issue-a-token/py/issue-a-token.py" from="# Connect" before="# Get credentials" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/issue-a-token/java/IssueToken.java" from="// Construct a network client" before="// Create cold" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/py/issue-a-token.py", start_with="# Connect", end_before="# Get credentials", language="py") }} - -_Java_ - -{{ include_code("_code-samples/issue-a-token/java/IssueToken.java", start_with="// Construct a network client", end_before="// Create cold", language="java") }} - - +{% /tabs %} **Note:** The JavaScript code samples in this tutorial use the [`async`/`await` pattern](https://javascript.info/async-await). Since `await` needs to be used from within an `async` function, the remaining code samples are written to continue inside the `main()` function started here. You can also use Promise methods `.then()` and `.catch()` instead of `async`/`await` if you prefer. For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Configure Issuer Settings @@ -98,8 +98,8 @@ First, configure the settings for your cold address (which will become the issue - [Authorized Trust Lines][]: (Optional) This setting (also called "Require Auth") limits your tokens to being held _only_ by accounts you've explicitly approved. You cannot enable this setting if you already have any trust lines or offers for _any_ token. **Note:** To use authorized trust lines, you must perform additional steps that are not shown in this tutorial. -[Default Ripple]: rippling.html -[Authorized Trust Lines]: authorized-trust-lines.html +[Default Ripple]: ../../concepts/tokens/fungible-tokens/rippling.md +[Authorized Trust Lines]: ../../concepts/tokens/fungible-tokens/authorized-trust-lines.md Other settings you may want to, optionally, configure for your cold address (issuer): @@ -108,13 +108,13 @@ Other settings you may want to, optionally, configure for your cold address (iss | [Require Destination Tags][] | Enabled or Disabled | Enable if you process withdrawals of your token to outside systems. (For example, your token is a stablecoin.) | | Disallow XRP | Enabled or Disabled | Enable if this address isn't meant to process XRP payments. | | [Transfer Fee][] | 0–1% | Charge a percentage fee when users send your token to each other. | -| [Tick Size][] | 5 | Limit the number of decimal places in exchange rates for your token in the [decentralized exchange](decentralized-exchange.html). A tick size of 5-6 reduces churn of almost-equivalent offers and speeds up price discovery compared to the default of 15. | -| [Domain][] | (Your domain name) | Set to a domain you own so can [verify ownership of the accounts](xrp-ledger-toml.html#account-verification). This can help reduce confusion or impersonation attempts. | +| [Tick Size][] | 5 | Limit the number of decimal places in exchange rates for your token in the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md). A tick size of 5-6 reduces churn of almost-equivalent offers and speeds up price discovery compared to the default of 15. | +| [Domain][] | (Your domain name) | Set to a domain you own so can [verify ownership of the accounts](../../references/xrp-ledger-toml.md#account-verification). This can help reduce confusion or impersonation attempts. | -[Require Destination Tags]: require-destination-tags.html -[Transfer Fee]: transfer-fees.html -[Tick Size]: ticksize.html -[Domain]: accountset.html#domain +[Require Destination Tags]: ../manage-account-settings/require-destination-tags.md +[Transfer Fee]: ../../concepts/tokens/transfer-fees.md +[Tick Size]: ../../concepts/tokens/decentralized-exchange/ticksize.md +[Domain]: ../../references/protocol/transactions/types/accountset.md#domain You can change these settings later as well. @@ -123,21 +123,21 @@ You can change these settings later as well. The following code sample shows how to send an [AccountSet transaction][] to enable the recommended cold address settings: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/issue-a-token/js/issue-a-token.js" from="// Configure issuer" before="// Configure hot" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/js/issue-a-token.js", start_with="// Configure issuer", end_before="// Configure hot", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/issue-a-token/py/issue-a-token.py" from="# Configure issuer" before="# Configure hot" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/issue-a-token/java/IssueToken.java" from="// Configure issuer" before="// Configure hot" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/py/issue-a-token.py", start_with="# Configure issuer", end_before="# Configure hot", language="py") }} - -_Java_ - -{{ include_code("_code-samples/issue-a-token/java/IssueToken.java", start_with="// Configure issuer", end_before="// Configure hot", language="java") }} - - +{% /tabs %} {{ start_step("Configure Issuer") }} @@ -197,7 +197,7 @@ _Java_ ### {{n.next()}}. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. You should wait for your earlier transactions to be fully validated before proceeding to the later steps, to avoid unexpected failures from things executing out of order. For more information, see [Reliable Transaction Submission](reliable-transaction-submission.html). +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. You should wait for your earlier transactions to be fully validated before proceeding to the later steps, to avoid unexpected failures from things executing out of order. For more information, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md). The code samples in this tutorial use helper functions to wait for validation when submitting a transaction: @@ -208,7 +208,7 @@ The code samples in this tutorial use helper functions to wait for validation wh **Tip:** Technically, you can configure the hot address in parallel with configuring the issuer address. For simplicity, this tutorial waits for each transaction one at a time. {{ start_step("Wait (Issuer Setup)") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -222,25 +222,25 @@ The hot address does not strictly require any settings changes from the default, | [Authorized Trust Lines][] | Enabled | Enable this setting on the hot address—and never approve any trust lines to the hot address—to prevent accidentally issuing tokens from the wrong address. (Optional, but recommended.) | | [Require Destination Tags][] | Enabled or Disabled | Enable if you process withdrawals of your token to outside systems. (For example, your token is a stablecoin.) | | Disallow XRP | Enabled or Disabled | Enable if this address isn't meant to process XRP payments. | -| [Domain][] | (Your domain name) | Set to a domain you own so can [verify ownership of the accounts](xrp-ledger-toml.html#account-verification). This can help reduce confusion or impersonation attempts. | +| [Domain][] | (Your domain name) | Set to a domain you own so can [verify ownership of the accounts](../../references/xrp-ledger-toml.md#account-verification). This can help reduce confusion or impersonation attempts. | The following code sample shows how to send an [AccountSet transaction][] to enable the recommended hot address settings: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/issue-a-token/js/issue-a-token.js" from="// Configure hot address" before="// Create trust line" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/js/issue-a-token.js", start_with="// Configure hot address", end_before="// Create trust line", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/issue-a-token/py/issue-a-token.py" from="# Configure hot address" before="# Create trust line" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/issue-a-token/java/IssueToken.java" from="// Configure hot address" before="// Create trust line" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/py/issue-a-token.py", start_with="# Configure hot address", end_before="# Create trust line", language="py") }} - -_Java_ - -{{ include_code("_code-samples/issue-a-token/java/IssueToken.java", start_with="// Configure hot address", end_before="// Create trust line", language="java") }} - - +{% /tabs %} {{ start_step("Configure Hot Address") }} @@ -294,15 +294,15 @@ _Java_ As before, wait for the previous transaction to be validated by consensus before continuing. {{ start_step("Wait (Hot Address Setup)") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ### {{n.next()}}. Create Trust Line from Hot to Cold Address -Before you can receive tokens, you need to create a [trust line](trust-lines-and-issuing.html) to the token issuer. This trust line is specific to the [currency code](currency-formats.html#currency-codes) of the token you want to issue, such as USD or FOO. You can choose any currency code you want; each issuer's tokens are treated as separate in the XRP Ledger protocol. However, users' balances of tokens with the same currency code can [ripple](rippling.html) between different issuers if the users enable rippling settings. +Before you can receive tokens, you need to create a [trust line](../../concepts/tokens/fungible-tokens/index.md) to the token issuer. This trust line is specific to the [currency code](../../references/protocol/data-types/currency-formats.md#currency-codes) of the token you want to issue, such as USD or FOO. You can choose any currency code you want; each issuer's tokens are treated as separate in the XRP Ledger protocol. However, users' balances of tokens with the same currency code can [ripple](../../concepts/tokens/fungible-tokens/rippling.md) between different issuers if the users enable rippling settings. -The hot address needs a trust line like this before it can receive tokens from the issuer. Similarly, each user who wants to hold your token must also create a trust line[¹](#footnotes). Each trust line increases the [reserve requirement](reserves.html) of the hot address, so you must hold enough spare XRP to pay for the increased requirement. Your reserve requirement goes back down if you remove the trust line. +The hot address needs a trust line like this before it can receive tokens from the issuer. Similarly, each user who wants to hold your token must also create a trust line[¹](#footnotes). Each trust line increases the [reserve requirement](../../concepts/accounts/reserves.md) of the hot address, so you must hold enough spare XRP to pay for the increased requirement. Your reserve requirement goes back down if you remove the trust line. **Tip:** A trust line has a "limit" on how much the recipient is willing to hold; others cannot send you more tokens than your specified limit. For community credit systems, you may want to configure limits per individual based on how much you trust that person. For other types and uses of tokens, it is normally OK to set the limit to a very large number. @@ -319,21 +319,21 @@ To create a trust line, send a [TrustSet transaction][] from the **hot address** The following code sample shows how to send a [TrustSet transaction][] from the hot address, trusting the issuing address for a limit of 1 billion FOO: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/issue-a-token/js/issue-a-token.js" from="// Create trust line" before="// Send token" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/js/issue-a-token.js", start_with="// Create trust line", end_before="// Send token", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/issue-a-token/py/issue-a-token.py" from="# Create trust line" before="# Send token" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/issue-a-token/java/IssueToken.java" from="// Create trust line" before="// Send token" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/py/issue-a-token.py", start_with="# Create trust line", end_before="# Send token", language="py") }} - -_Java_ - -{{ include_code("_code-samples/issue-a-token/java/IssueToken.java", start_with="// Create trust line", end_before="// Send token", language="java") }} - - +{% /tabs %} {{ start_step("Make Trust Line") }} @@ -349,20 +349,22 @@ _Java_
          -
          -
          -
          - -
          -
          - - +``` +
          +
          +
          +
          +
          + + +
          -
          - - -
          +
          + + +
          +```
          @@ -370,7 +372,7 @@ _Java_
          {{ end_step() }} -**Note:** If you use [Authorized Trust Lines][], there is an extra step after this one: the cold address must approve the trust line from the hot address. For details of how to do this, see [Authorizing Trust Lines](authorized-trust-lines.html#authorizing-trust-lines). +**Note:** If you use [Authorized Trust Lines][], there is an extra step after this one: the cold address must approve the trust line from the hot address. For details of how to do this, see [Authorizing Trust Lines](../../concepts/tokens/fungible-tokens/authorized-trust-lines.md#authorizing-trust-lines). ### {{n.next()}}. Wait for Validation @@ -378,7 +380,7 @@ _Java_ As before, wait for the previous transaction to be validated by consensus before continuing. {{ start_step("Wait (TrustSet)") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -390,7 +392,7 @@ Now you can create tokens by sending a [Payment transaction][] from the cold add |---|---| | `TransactionType` | `"Payment"` | | `Account` | The cold address issuing the token. | -| `Amount` | An [token amount](basic-data-types.html#specifying-currency-amounts) specifying how much of which token to create. | +| `Amount` | An [token amount](../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts) specifying how much of which token to create. | | `Amount.currency` | The currency code of the token. | | `Amount.value` | Decimal amount of the token to issue, as a string. | | `Amount.issuer` | The cold address issuing the token. | @@ -399,25 +401,25 @@ Now you can create tokens by sending a [Payment transaction][] from the cold add | `SendMax` | Omit this field when issuing tokens. | | `DestinationTag` | Any whole number from 0 to 232-1. You must specify _something_ here if you enabled [Require Destination Tags][] on the hot address. | -You can use [auto-filled values](transaction-common-fields.html#auto-fillable-fields) for all other required fields. +You can use [auto-filled values](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) for all other required fields. The following code sample shows how to send a [Payment transaction][] to issue 88 FOO from the cold address to the hot address: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/issue-a-token/js/issue-a-token.js" from="// Send token" before="// Check balances" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/js/issue-a-token.js", start_with="// Send token", end_before="// Check balances", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/issue-a-token/py/issue-a-token.py" from="# Send token" before="# Check balances" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/issue-a-token/java/IssueToken.java" from="// Send token" before="// Check balances" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/py/issue-a-token.py", start_with="# Send token", end_before="# Check balances", language="py") }} - -_Java_ - -{{ include_code("_code-samples/issue-a-token/java/IssueToken.java", start_with="// Send token", end_before="// Check balances", language="java") }} - - +{% /tabs %} {{ start_step("Send Token") }}
          @@ -453,7 +455,7 @@ _Java_ As before, wait for the previous transaction to be validated by consensus before continuing. {{ start_step("Wait (Payment)") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} @@ -469,21 +471,21 @@ Use the [gateway_balances method][] to look up balances from the perspective of The following code sample shows how to use both methods: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/issue-a-token/js/issue-a-token.js" from="// Check balances" before="// End of" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/js/issue-a-token.js", start_with="// Check balances", end_before="// End of", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/issue-a-token/py/issue-a-token.py" from="# Check balances" language="py" /%} +{% /tab %} -_Python_ +{% tab label="Java" %} +{% code-snippet file="/_code-samples/issue-a-token/java/IssueToken.java" from="// Check balances" before="// Helper" language="java" /%} +{% /tab %} -{{ include_code("_code-samples/issue-a-token/py/issue-a-token.py", start_with="# Check balances", language="py") }} - -_Java_ - -{{ include_code("_code-samples/issue-a-token/java/IssueToken.java", start_with="// Check balances", end_before="// Helper", language="java") }} - - +{% /tabs %} {{ start_step("Confirm Balances") }} @@ -499,16 +501,12 @@ Now that you've created the token, you can explore how it fits into features of - Send tokens from the hot address to other users. - Trade it in the decentralized exchange. - Monitor for incoming payments of your token. -- Create an [xrp-ledger.toml file](xrp-ledger-toml.html) and set up domain verification for your token's issuer. -- Learn about other [features of XRP Ledger tokens](issued-currencies.html). +- Create an [xrp-ledger.toml file](../../references/xrp-ledger-toml.md) and set up domain verification for your token's issuer. +- Learn about other [features of XRP Ledger tokens](../../concepts/tokens/index.md). ## Footnotes -¹ Users can hold your token without explicitly creating a trust line if they buy your token in the [decentralized exchange](decentralized-exchange.html). Buying a token in the exchange [automatically creates the necessary trust lines](offers.html#offers-and-trust). This is only possible if someone is selling your token in the decentralized exchange. +¹ Users can hold your token without explicitly creating a trust line if they buy your token in the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md). Buying a token in the exchange [automatically creates the necessary trust lines](../../concepts/tokens/decentralized-exchange/offers.md#offers-and-trust). This is only possible if someone is selling your token in the decentralized exchange. - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/tutorials/use-tokens/trade-in-the-decentralized-exchange.md b/content/tutorials/use-tokens/trade-in-the-decentralized-exchange.md index 6f3513f348..d746e3c4f9 100644 --- a/content/tutorials/use-tokens/trade-in-the-decentralized-exchange.md +++ b/content/tutorials/use-tokens/trade-in-the-decentralized-exchange.md @@ -10,14 +10,14 @@ labels: --- # Trade in the Decentralized Exchange -This tutorial demonstrates how you can buy and sell tokens in the [decentralized exchange](decentralized-exchange.html) (DEX). +This tutorial demonstrates how you can buy and sell tokens in the [decentralized exchange](../../concepts/tokens/decentralized-exchange/index.md) (DEX). ## Prerequisites - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](get-started-using-javascript.html) for setup steps. - - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](get-started-using-python.html) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../get-started/get-started-using-javascript.md) for setup steps. + - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../get-started/get-started-using-python.md) for setup steps. - You can also read along and use the interactive steps in your browser without any setup. @@ -43,45 +43,45 @@ This tutorial demonstrates how to buy a fungible token in the decentralized exch ### {{n.next()}}. Connect to Network -You must be connected to the network to submit transactions to it. Additionally, some languages (including JavaScript) require a high-precision number library for performing calculations on currency amounts you may find in the ledger. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](client-libraries.html) with the appropriate dependencies. +You must be connected to the network to submit transactions to it. Additionally, some languages (including JavaScript) require a high-precision number library for performing calculations on currency amounts you may find in the ledger. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](../../references/client-libraries.md) with the appropriate dependencies. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/js/base-with-bignumber.js" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/js/base-with-bignumber.js", language="js") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/get-started/py/base-async.py" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/get-started/py/base-async.py", language="py") }} - - +{% /tabs %} **Note:** The JavaScript code samples in this tutorial use the [`async`/`await` pattern](https://javascript.info/async-await). Since `await` needs to be used from within an `async` function, the remaining code samples are written to continue inside the `main()` function started here. You can also use Promise methods `.then()` and `.catch()` instead of `async`/`await` if you prefer. For this tutorial, click the following button to connect: -{% include '_snippets/interactive-tutorials/connect-step.md' %} +{% partial file="/_snippets/interactive-tutorials/connect-step.md" /%} ### {{n.next()}}. Get Credentials -To transact on the XRP Ledger, you need an address, a secret key, and some XRP. For development purposes, you can get these on the [{{use_network}}](parallel-networks.html) using the following interface: +To transact on the XRP Ledger, you need an address, a secret key, and some XRP. For development purposes, you can get these on the [{{use_network}}](../../concepts/networks-and-servers/parallel-networks.md) using the following interface: -{% include '_snippets/interactive-tutorials/generate-step.md' %} +{% partial file="/_snippets/interactive-tutorials/generate-step.md" /%} -When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](secure-signing.html). The following code shows how to create a `Wallet` instance to use your keys: +When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). The following code shows how to create a `Wallet` instance to use your keys: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js" from="// Get credentials" before="// Define the proposed trade" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js", language="js", start_with="// Get credentials", end_before="// Define the proposed trade") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py" from="# Get credentials" before="# Define the proposed trade" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py", language="py", start_with="# Get credentials", end_before="# Define the proposed trade") }} - - +{% /tabs %} ### {{n.next()}}. Look Up Offers @@ -91,19 +91,19 @@ Before you buy or sell a token, you usually want to look up what others are buyi The following code shows how to look up existing Offers and compare them to a proposed Offer to estimate how it would execute: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js" from="// Define the proposed trade" before="// Send OfferCreate" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js", language="js", start_with="// Define the proposed trade", end_before="// Send OfferCreate") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py" from="# Define the proposed trade" before="# Send OfferCreate" language="py" /%} +{% /tab %} -_Python_ +{% /tabs %} -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py", language="py", start_with="# Define the proposed trade", end_before="# Send OfferCreate") }} - - - -**Note:** Other users of the XRP Ledger can also make trades at any time, so this is only an estimate of what would happen if nothing else changes. The outcome of a transaction is not guaranteed until it is [final](finality-of-results.html). +**Note:** Other users of the XRP Ledger can also make trades at any time, so this is only an estimate of what would happen if nothing else changes. The outcome of a transaction is not guaranteed until it is [final](../../concepts/transactions/finality-of-results/index.md). The following block demonstrates these calculations in action: @@ -161,17 +161,17 @@ To actually make a trade, send an [OfferCreate transaction][]. In this case, you The following code shows how to prepare, sign, and submit the transaction: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js" from="// Send OfferCreate" before="// Check metadata" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js", language="js", start_with="// Send OfferCreate", end_before="// Check metadata") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py" from="# Send OfferCreate" before="# Check metadata" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py", language="py", start_with="# Send OfferCreate", end_before="# Check metadata") }} - - +{% /tabs %} You can use this interface to send the transaction specified by the amounts in the previous step: @@ -183,15 +183,15 @@ You can use this interface to send the transaction specified by the amounts in t ### {{n.next()}}. Wait for Validation -Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](reliable-transaction-submission.html).) +Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) {{ start_step("Wait") }} -{% include '_snippets/interactive-tutorials/wait-step.md' %} +{% partial file="/_snippets/interactive-tutorials/wait-step.md" /%} {{ end_step() }} ### {{n.next()}}. Check Metadata -You can use the validated transaction's [metadata](transaction-metadata.html) to determine exactly what it did. (Don't use metadata from tentative transaction results, because it may be different from the [final result](finality-of-results.html), especially when using the decentralized exchange.) In case of an OfferCreate transaction, likely results include: +You can use the validated transaction's [metadata](../../references/protocol/transactions/metadata.md) to determine exactly what it did. (Don't use metadata from tentative transaction results, because it may be different from the [final result](../../concepts/transactions/finality-of-results/index.md), especially when using the decentralized exchange.) In case of an OfferCreate transaction, likely results include: - Some or all of the Offer may have been filled by matching with existing Offers in the ledger. - The unmatched remainder, if any, has been placed into the ledger to await new matching Offers. @@ -199,17 +199,17 @@ You can use the validated transaction's [metadata](transaction-metadata.html) to The following code demonstrates how to check the metadata of the transaction: - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js" from="// Check metadata" before="// Check balances" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js", language="js", start_with="// Check metadata", end_before="// Check balances") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py" from="# Check metadata" before="# Check balances" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py", language="py", start_with="# Check metadata", end_before="# Check balances") }} - - +{% /tabs %} You can use this interface to test it out: @@ -226,17 +226,17 @@ This is also a good time to look up the balances and outstanding Offers owned by The following code demonstrates how to look up balances using the [account_lines method][] and look up Offers using the [account_offers method][]. - +{% tabs %} -_JavaScript_ +{% tab label="JavaScript" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js" from="// Check balances" before="client.disconnect()" language="js" /%} +{% /tab %} -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js", language="js", start_with="// Check balances", end_before="client.disconnect()") }} +{% tab label="Python" %} +{% code-snippet file="/_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py" from="# Check balances" before="# End main()" language="py" /%} +{% /tab %} -_Python_ - -{{ include_code("_code-samples/trade-in-the-decentralized-exchange/py/trade-in-the-dex.py", language="py", start_with="# Check balances", end_before="# End main()") }} - - +{% /tabs %} You can use this interface to test it out: @@ -246,7 +246,4 @@ You can use this interface to test it out:
          {{ end_step() }} - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/use-cases/defi/algorithmic-trading.md b/content/use-cases/defi/algorithmic-trading.md index 56f9843a55..3cf066cbc1 100644 --- a/content/use-cases/defi/algorithmic-trading.md +++ b/content/use-cases/defi/algorithmic-trading.md @@ -25,7 +25,7 @@ Algorithmic trading can make profits through many different strategies; part of There are many ways to perform arbitrage, both within and adjacent to the XRP Ledger. The following examples are meant to illustrate potential strategies, but others are possible as well. -You can use **circular payments** to complete multi-asset trades for a profit. The XRP Ledger automatically connects overlapping trades between pairs of assets, as well as sets of 3 assets where XRP is the asset in the middle. However, the XRP Ledger protocol does not automatically find and compete trades across other, longer or more complex paths. (Finding the _best possible_ path is a category of problem that is known to be computationally intensive.) Therefore, if you do your own pathfinding, it is possible to find profitable arbitrage opportunities like this; if you do, you can specify those [paths](paths.html) explicitly in a [Payment transaction](payment.html). For example, imagine there are three tokens, FOO, BAR, and TST, each with different issuers. If you can buy 2 BAR by spending 1 FOO, then buy 3 TST by spending those 2 BAR, and finally buy 1.1 FOO by spending 3 TST, you can earn a profit of 0.1 FOO minus any costs of the transaction such as [transfer fees](transfer-fees.html) of the tokens involved. +You can use **circular payments** to complete multi-asset trades for a profit. The XRP Ledger automatically connects overlapping trades between pairs of assets, as well as sets of 3 assets where XRP is the asset in the middle. However, the XRP Ledger protocol does not automatically find and compete trades across other, longer or more complex paths. (Finding the _best possible_ path is a category of problem that is known to be computationally intensive.) Therefore, if you do your own pathfinding, it is possible to find profitable arbitrage opportunities like this; if you do, you can specify those [paths](../../concepts/tokens/fungible-tokens/paths.md) explicitly in a [Payment transaction](../../references/protocol/transactions/types/payment.md). For example, imagine there are three tokens, FOO, BAR, and TST, each with different issuers. If you can buy 2 BAR by spending 1 FOO, then buy 3 TST by spending those 2 BAR, and finally buy 1.1 FOO by spending 3 TST, you can earn a profit of 0.1 FOO minus any costs of the transaction such as [transfer fees](../../concepts/tokens/transfer-fees.md) of the tokens involved. You can perform **cross-exchange arbitrage** if you have accounts at multiple private exchanges where the prices for an asset are different. For example, if you can buy XRP at ACME Exchange for $0.45 per 1 XRP, then move the XRP over to WayGate Exchange where you sell it for $0.50 per 1 XRP, you can make a profit of $0.05 per XRP minus the costs of trading and sending the relevant transactions, including exchanges' fees to withdraw and deposit your profits. As a more complex example, if the BTC:ETH price shifts at ACME Exchange to make ETH cheaper relative to BTC, you could potentially take advantage of this price shift by selling ETH→XRP at one exchange, then moving the XRP to ACME Exchange and trading XRP→BTC→ETH for a profit there. Since XRP Ledger transactions settle in seconds but Ethereum transactions can take minutes and Bitcoin transactions can take hours, using XRP as a bridge currency can potentially allow you to take advantage of this opportunity sooner than simply trading ETH→BTC and then BTC→ETH at ACME Exchange. (This only works, of course, if there is enough liquidity and tight enough spreads that exchanging to XRP and back doesn't cost more than your profits.) @@ -40,9 +40,9 @@ You can familiarize yourself with algorithmic trading, in general, by reading th The following pages describe key elements of how the XRP Ledger's decentralized exchange works: -- [Tokens](tokens.html) -- [Decentralized Exchange](decentralized-exchange.html) -- [Offers](offers.html) +- [Tokens](../../concepts/tokens/index.md) +- [Decentralized Exchange](../../concepts/tokens/decentralized-exchange/index.md) +- [Offers](../../concepts/tokens/decentralized-exchange/offers.md) ## Testing and Common Mistakes @@ -55,12 +55,12 @@ Like any type of trading, algorithmic trading is not a surefire way to make mone Common mistakes you might make in these calculations or in building your bot include: -- Rounding errors. If your math is not sound, or does not match the precision that the blockchain uses, you could inaccurately predict the results of a trade and take a loss, or have your trade not execute at all. The XRP Ledger uses different precision for token and XRP amounts, which can lead to rounding in unexpected places when trading one for the other. For more details on the precision used in the protocol, see [Currency Formats](currency-formats.html). - - Be aware that token issuers can further limit the precision of exchange rates involving their tokens. See [Tick Size](ticksize.html) for details. +- Rounding errors. If your math is not sound, or does not match the precision that the blockchain uses, you could inaccurately predict the results of a trade and take a loss, or have your trade not execute at all. The XRP Ledger uses different precision for token and XRP amounts, which can lead to rounding in unexpected places when trading one for the other. For more details on the precision used in the protocol, see [Currency Formats](../../references/protocol/data-types/currency-formats.md). + - Be aware that token issuers can further limit the precision of exchange rates involving their tokens. See [Tick Size](../../concepts/tokens/decentralized-exchange/ticksize.md) for details. - Typically, you need to adjust your amounts by some small percentage to account for potential differences in rounding or price movements between when you looked things up and when your trade executes. This amount is called _slippage_, and it's important to get the right amount. If it's too low, your transaction may not execute at all; but if it's too high, you're vulnerable to front-running, and the higher it is the more that price movements can cut into your profits in general. -- Forgetting extra costs and delays. For example, if two stablecoins are both fully backed by US dollars, but one issuer charges a 0.5% transfer fee and a different issuer charges a 0.25% [transfer fee](transfer-fees.html), you should expect about a 0.25% difference in the effective price those stablecoins trade at. Don't forget the costs of sending a transaction, even though they're usually small, nor the consequences of other potential delays. For example, even if an off-ledger private exchange shows a favorable price now, if that exchange takes hours or even days to process a deposit, the price is likely to shift so you can't take advantage of it unless you already have liquidity at that exchange. +- Forgetting extra costs and delays. For example, if two stablecoins are both fully backed by US dollars, but one issuer charges a 0.5% transfer fee and a different issuer charges a 0.25% [transfer fee](../../concepts/tokens/transfer-fees.md), you should expect about a 0.25% difference in the effective price those stablecoins trade at. Don't forget the costs of sending a transaction, even though they're usually small, nor the consequences of other potential delays. For example, even if an off-ledger private exchange shows a favorable price now, if that exchange takes hours or even days to process a deposit, the price is likely to shift so you can't take advantage of it unless you already have liquidity at that exchange. - Not accounting for rare events. Even setting aside unprecented ("black swan") events, your calculations can be skewed by individual outliers. As one example (which is a true story), a trader reported that, when calculating the potential profits of a given strategy in a specific time range, over 80% of the profits came from a single "fat-fingered" transaction where another user had accidentally added an extra zero to their price. The same strategy was far less profitable when calculated against time ranges that didn't include the outlier transaction. -- Not reading transaction flags. The flags of an XRP Ledger transaction can have significant impacts on the way that transaction is processed and when the protocol marks it as "successful". For example, the flags of "Offer" transactions can make it a "fill or kill" order that only trades if the full amount can be obtained immediately; the flags of "Payment" transactions can make them [partial payments](partial-payments.html) that succeed even if they can't deliver the full amount to the intended destination. You need to do bitwise math to parse the `Flags` field of a transaction, but your expectations can be totally wrong if you skip doing so. +- Not reading transaction flags. The flags of an XRP Ledger transaction can have significant impacts on the way that transaction is processed and when the protocol marks it as "successful". For example, the flags of "Offer" transactions can make it a "fill or kill" order that only trades if the full amount can be obtained immediately; the flags of "Payment" transactions can make them [partial payments](../../concepts/payment-types/partial-payments.md) that succeed even if they can't deliver the full amount to the intended destination. You need to do bitwise math to parse the `Flags` field of a transaction, but your expectations can be totally wrong if you skip doing so. ## Taxes and Licensing @@ -71,21 +71,21 @@ The legal requirements for trading on a blockchain vary by jurisdiction. In many ### Placing Trades -Buying and selling _fungible_ tokens and XRP within the XRP Ledger's decentralized exchange typically involves sending [OfferCreate transactions](offercreate.html). For a detailed walkthrough of the code and technical steps to place a trade this way, see [Trade in the Decentralized Exchange](trade-in-the-decentralized-exchange.html). It is also possible to exchange currencies using the [Payment transaction type](payment.html). You could send a [cross-currency payment](cross-currency-payments.html) to another user or even send it back to yourself, using a long [path](paths.html) to link arbitrage opportunities together into a single operation. +Buying and selling _fungible_ tokens and XRP within the XRP Ledger's decentralized exchange typically involves sending [OfferCreate transactions](../../references/protocol/transactions/types/offercreate.md). For a detailed walkthrough of the code and technical steps to place a trade this way, see [Trade in the Decentralized Exchange](../../tutorials/use-tokens/trade-in-the-decentralized-exchange.md). It is also possible to exchange currencies using the [Payment transaction type](../../references/protocol/transactions/types/payment.md). You could send a [cross-currency payment](../../concepts/payment-types/cross-currency-payments.md) to another user or even send it back to yourself, using a long [path](../../concepts/tokens/fungible-tokens/paths.md) to link arbitrage opportunities together into a single operation. -Non-fungible tokens work differently; for the code and technical steps to trade NFTs, see [Transfer NFTokens Using JavaScript](transfer-nfts-using-javascript.html). +Non-fungible tokens work differently; for the code and technical steps to trade NFTs, see [Transfer NFTokens Using JavaScript](../../tutorials/quickstart/transfer-nfts-using-javascript.md). ### Reading Trade Data -There are many sources of information about the trading activity in the XRP Ledger. Depending on your trading strategy and use case, you may be able to connect to the XRP Ledger through [Public Servers](public-servers.html), but you can often benefit from running your own server, and some use cases may not be practical without doing so. See [Install `rippled`](install-rippled.html) for instructions on how to set up a core server in P2P mode. +There are many sources of information about the trading activity in the XRP Ledger. Depending on your trading strategy and use case, you may be able to connect to the XRP Ledger through [Public Servers](../../tutorials/get-started/public-servers.md), but you can often benefit from running your own server, and some use cases may not be practical without doing so. See [Install `rippled`](../../infrastructure/installation/index.md) for instructions on how to set up a core server in P2P mode. -If your approach involves following other transaction activity, you may need to read the transactions' detailed metadata to know exactly how much they traded. Offers can partially execute and may consume multiple matching offers. For a detailed explanation of how to interpret transaction metadata, see [Look Up Transaction Results](look-up-transaction-results.html). +If your approach involves following other transaction activity, you may need to read the transactions' detailed metadata to know exactly how much they traded. Offers can partially execute and may consume multiple matching offers. For a detailed explanation of how to interpret transaction metadata, see [Look Up Transaction Results](../../concepts/transactions/finality-of-results/look-up-transaction-results.md). -To give yourself as much time as possible to react to profit-taking opportunities, you may also want to look at pending data from the [Open Ledger](open-closed-validated-ledgers.html), or even monitor for proposed transactions. If you're connected to WebSocket, you can use the [subscribe method](subscribe.html) with the `transactions_proposed` stream to see transactions before they're validated by consensus; you can also limit this to a subset of transactions that affect a particular account (for example, the issuer of a token you're interested in trading) by subscribing using the `accounts_proposed` parameter. +To give yourself as much time as possible to react to profit-taking opportunities, you may also want to look at pending data from the [Open Ledger](../../concepts/ledgers/open-closed-validated-ledgers.md), or even monitor for proposed transactions. If you're connected to WebSocket, you can use the [subscribe method](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md) with the `transactions_proposed` stream to see transactions before they're validated by consensus; you can also limit this to a subset of transactions that affect a particular account (for example, the issuer of a token you're interested in trading) by subscribing using the `accounts_proposed` parameter. ### Future Developments -Ripple has proposed extending the XRP Ledger protocol with a native Automated Market Maker (AMM) design that would work alongside the existing central limit order based (CLOB) decentralized exchange. If this proposal is accepted and becomes enabled as an [amendment](amendments.html), AMMs will become an important factor in trading on the XRP Ledger. You can read more at the following links: +Ripple has proposed extending the XRP Ledger protocol with a native Automated Market Maker (AMM) design that would work alongside the existing central limit order based (CLOB) decentralized exchange. If this proposal is accepted and becomes enabled as an [amendment](../../concepts/networks-and-servers/amendments.md), AMMs will become an important factor in trading on the XRP Ledger. You can read more at the following links: - [XLS-30d: Automated Market Maker standards proposal](https://github.com/XRPLF/XRPL-Standards/discussions/78) - [AMM documentation (Ripple Open Source site)](https://opensource.ripple.com/docs/xls-30d-amm/automated-market-makers/) diff --git a/content/use-cases/defi/index.md b/content/use-cases/defi/index.md index c4c79f86fa..940f54b7f6 100644 --- a/content/use-cases/defi/index.md +++ b/content/use-cases/defi/index.md @@ -2,9 +2,13 @@ html: defi-uc.html parent: use-cases.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Enabling fast, secure financial transactions without a central authority. --- # Decentralized Finance -Decentralized Finance (DeFi) is about enabling fast, secure financial transactions without a central authority. \ No newline at end of file +Decentralized Finance (DeFi) is about enabling fast, secure financial transactions without a central authority. + + +{% child-pages /%} diff --git a/content/use-cases/defi/list-xrp-as-an-exchange.md b/content/use-cases/defi/list-xrp-as-an-exchange.md index 0acf581b09..03442f3883 100644 --- a/content/use-cases/defi/list-xrp-as-an-exchange.md +++ b/content/use-cases/defi/list-xrp-as-an-exchange.md @@ -41,7 +41,7 @@ To support XRP, Alpha Exchange must: See also: -* [Compliance Guidelines](stablecoin-compliance-guidelines.html) — Token issuers and exchanges are different, but exchanges should also ensure that they are complying with local regulations and reporting to the appropriate agencies. +* [Compliance Guidelines](../../concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md) — Token issuers and exchanges are different, but exchanges should also ensure that they are complying with local regulations and reporting to the appropriate agencies. -* [Precautions](stablecoin-precautions.html) +* [Precautions](../../concepts/tokens/fungible-tokens/stablecoins/precautions.md) ### Partial Payments -Before integrating, exchanges should be aware of the [partial payments](partial-payments.html) feature. This feature allows XRP Ledger users to send successful payments that reduce the amount received instead of increasing the `SendMax`. This feature can be useful for [returning payments](bouncing-payments.html) without incurring additional cost as the sender. +Before integrating, exchanges should be aware of the [partial payments](../../concepts/payment-types/partial-payments.md) feature. This feature allows XRP Ledger users to send successful payments that reduce the amount received instead of increasing the `SendMax`. This feature can be useful for [returning payments](../../concepts/payment-types/bouncing-payments.md) without incurring additional cost as the sender. #### Partial Payments Warning -When the [`tfPartialPayment` flag](payment.html#payment-flags) is enabled, the `Amount` field **_is not guaranteed to be the amount received_**. The `delivered_amount` field of a payment's metadata indicates the amount of currency actually received by the destination account. When receiving a payment, use `delivered_amount` instead of the Amount field to determine how much your account received instead. +When the [`tfPartialPayment` flag](../../references/protocol/transactions/types/payment.md#payment-flags) is enabled, the `Amount` field **_is not guaranteed to be the amount received_**. The `delivered_amount` field of a payment's metadata indicates the amount of currency actually received by the destination account. When receiving a payment, use `delivered_amount` instead of the Amount field to determine how much your account received instead. -**Warning:** Be aware that malicious actors could exploit this. For more information, see [Partial Payments](partial-payments.html). +**Warning:** Be aware that malicious actors could exploit this. For more information, see [Partial Payments](../../concepts/payment-types/partial-payments.md). ### Accounts -XRP is held in _accounts_ (also referred to as _wallets_ or _addresses_ ) on the XRP Ledger. Accounts on the XRP Ledger are different than accounts on other blockchain ledgers, such as Bitcoin, where accounts incur little to no overhead. In the XRP Ledger, account state is stored per ledger and accounts are [not easy to delete](deleting-accounts.html). To offset the costs associated with storing accounts, each account must hold a separate [reserve of XRP](reserves.html) that cannot be sent to others. For these reasons, Ripple recommends that institutions not create excessive or needless accounts. +XRP is held in _accounts_ (also referred to as _wallets_ or _addresses_ ) on the XRP Ledger. Accounts on the XRP Ledger are different than accounts on other blockchain ledgers, such as Bitcoin, where accounts incur little to no overhead. In the XRP Ledger, account state is stored per ledger and accounts are [not easy to delete](../../concepts/accounts/deleting-accounts.md). To offset the costs associated with storing accounts, each account must hold a separate [reserve of XRP](../../concepts/accounts/reserves.md) that cannot be sent to others. For these reasons, Ripple recommends that institutions not create excessive or needless accounts. -To follow Ripple's recommended best practices, Alpha Exchange should create at least two new accounts on the XRP Ledger. To minimize the risks associated with a compromised secret key, Ripple recommends creating [_cold_, _hot_, and _warm_ accounts](account-types.html) (these are sometimes referred to, respectively, as cold, hot, and warm wallets). The hot/warm/cold model is intended to balance security and convenience. Exchanges listing XRP should create the following accounts: +To follow Ripple's recommended best practices, Alpha Exchange should create at least two new accounts on the XRP Ledger. To minimize the risks associated with a compromised secret key, Ripple recommends creating [_cold_, _hot_, and _warm_ accounts](../../concepts/accounts/account-types.md) (these are sometimes referred to, respectively, as cold, hot, and warm wallets). The hot/warm/cold model is intended to balance security and convenience. Exchanges listing XRP should create the following accounts: -* A [_cold wallet_](account-types.html#issuing-address) to securely hold the majority of XRP and customers' funds. For exchanges, this is also the address to which its users send [deposits](#deposit-xrp-into-exchange). To provide optimal security, this account's secret key should be offline. +* A [_cold wallet_](../../concepts/accounts/account-types.md#issuing-address) to securely hold the majority of XRP and customers' funds. For exchanges, this is also the address to which its users send [deposits](#deposit-xrp-into-exchange). To provide optimal security, this account's secret key should be offline. If a malicious actor compromises an exchange's cold wallet, the possible consequences are: @@ -81,24 +81,24 @@ To follow Ripple's recommended best practices, Alpha Exchange should create at l * The malicious actor could issue tokens in the XRP Ledger by using the cold wallet, but those tokens should not be valued by anyone (unless the exchange is also a token issuer). - * If a malicious actor enables the [Authorized Trust Lines](authorized-trust-lines.html) setting for the account, that cannot be unset, although this only relates to issuing tokens and should not affect an exchange that is not also an issuer. Any other settings a malicious actor changes with a master key can be reverted. + * If a malicious actor enables the [Authorized Trust Lines](../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) setting for the account, that cannot be unset, although this only relates to issuing tokens and should not affect an exchange that is not also an issuer. Any other settings a malicious actor changes with a master key can be reverted. -* One or more [_hot wallets_](account-types.html#operational-addresses) to conduct the day-to-day business of managing customers' XRP withdrawals and deposits. For example, with a hot wallet, exchanges can securely support these types of automated XRP transfers. Hot wallets need to be online to service instant withdrawal requests. +* One or more [_hot wallets_](../../concepts/accounts/account-types.md#operational-addresses) to conduct the day-to-day business of managing customers' XRP withdrawals and deposits. For example, with a hot wallet, exchanges can securely support these types of automated XRP transfers. Hot wallets need to be online to service instant withdrawal requests. - For more information about the possible consequences of a compromised hot wallet, see [Operational Account Compromise](account-types.html#operational-address-compromise). + For more information about the possible consequences of a compromised hot wallet, see [Operational Account Compromise](../../concepts/accounts/account-types.md#operational-address-compromise). -* Optionally, one or more warm wallets to provide an additional layer of security between the cold and hot wallets. Unlike a hot wallet, the secret key of a warm wallet does not need to be online. Additionally, you can distribute the secret keys for the warm wallet to several different people and implement [multi-signing](multi-signing.html) to increase security. +* Optionally, one or more warm wallets to provide an additional layer of security between the cold and hot wallets. Unlike a hot wallet, the secret key of a warm wallet does not need to be online. Additionally, you can distribute the secret keys for the warm wallet to several different people and implement [multi-signing](../../concepts/accounts/multi-signing.md) to increase security. - For more information about the possible consequences of a compromised warm wallet, see [Standby Account Compromise](account-types.html#standby-address-compromise). + For more information about the possible consequences of a compromised warm wallet, see [Standby Account Compromise](../../concepts/accounts/account-types.md#standby-address-compromise). See also: -* [Issuing and Operational Addresses](account-types.html) +* [Issuing and Operational Addresses](../../concepts/accounts/account-types.md) -* [Creating Accounts](accounts.html#creating-accounts) +* [Creating Accounts](../../concepts/accounts/accounts.md#creating-accounts) -* [Reserves](reserves.html) +* [Reserves](../../concepts/accounts/reserves.md) ### Balance Sheets @@ -198,7 +198,7 @@ For more information, see [Specifying Currency Amounts][]. With exchanges like _Alpha Exchange_, XRP can be "on-ledger" or "off-ledger": -* **On-Ledger XRP**: XRP that can be queried through the public XRP Ledger by specifying the public [address](addresses.html) of the XRP holder. The counterparty to these balances is the XRP Ledger. For more information, see [XRP](what-is-xrp.html). +* **On-Ledger XRP**: XRP that can be queried through the public XRP Ledger by specifying the public [address](../../concepts/accounts/addresses.md) of the XRP holder. The counterparty to these balances is the XRP Ledger. For more information, see [XRP](../../introduction/what-is-xrp.md). * **Off-Ledger XRP**: XRP that is held by the accounting system of an exchange and can be queried through the exchange interface. Off-ledger XRP balances are credit-based. The counterparty is the exchange holding the XRP. @@ -311,7 +311,7 @@ A user named Charlie wants to deposit 50,000 XRP to Alpha Exchange. Doing this i 1. Charlie submits a payment of 50,000 XRP to Alpha Exchange's [cold wallet](#accounts). - a. Charlie adds an identifier (in this case, `789`) to the payment to associate it with his account at Alpha Exchange. This is called a [_destination tag_](source-and-destination-tags.html). (To use this, Alpha Exchange should have set the `asfRequireDest` flag on all of its accounts to require all incoming payments to have a destination tag like Charlie's. For more information, see [AccountSet Flags](accountset.html#accountset-flags)). + a. Charlie adds an identifier (in this case, `789`) to the payment to associate it with his account at Alpha Exchange. This is called a [_destination tag_](../../concepts/transactions/source-and-destination-tags.md). (To use this, Alpha Exchange should have set the `asfRequireDest` flag on all of its accounts to require all incoming payments to have a destination tag like Charlie's. For more information, see [AccountSet Flags](../../references/protocol/transactions/types/accountset.md#accountset-flags)). 2. The software at Alpha Exchange detects the incoming payment, and recognizes `789` as the destination tag for Charlie’s account. @@ -412,12 +412,12 @@ XRP Balances Alpha Exchange users (like Charlie) can trade credit-based balances on Alpha Exchange. Alpha Exchange should keep track of user balances on its new balance sheet as these trades are made. These trades are _off-ledger_ and independent from the XRP Ledger, so the balance changes are not recorded on the XRP Ledger. -Customers who hold XRP in their own XRP Ledger accounts can also use the distributed exchange built into the XRP Ledger to trade currencies issued by gateways. For more information about trading _on_ the XRP Ledger, see [Lifecycle of an Offer](offers.html#lifecycle-of-an-offer). +Customers who hold XRP in their own XRP Ledger accounts can also use the distributed exchange built into the XRP Ledger to trade currencies issued by gateways. For more information about trading _on_ the XRP Ledger, see [Lifecycle of an Offer](../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer). ### Rebalance XRP Holdings -Exchanges can adjust the balances between their hot and cold wallets at any time. Each balance adjustment consumes a [transaction cost](transaction-cost.html), but does not otherwise affect the aggregate balance of all the accounts. The aggregate, on-ledger balance should always exceed the total balance available for trade on the exchange. (The excess should be enough to cover the XRP Ledger's transaction costs.) +Exchanges can adjust the balances between their hot and cold wallets at any time. Each balance adjustment consumes a [transaction cost](../../concepts/transactions/transaction-cost.md), but does not otherwise affect the aggregate balance of all the accounts. The aggregate, on-ledger balance should always exceed the total balance available for trade on the exchange. (The excess should be enough to cover the XRP Ledger's transaction costs.) The following table demonstrates a balance adjustment of 80,000 XRP (via a [Payment transaction][] on the XRP Ledger) between Alpha Exchange's cold wallet and its hot wallet, where the cold wallet was debited and the hot wallet was credited. If the payment were reversed (debiting the hot wallet and crediting the cold wallet), the hot wallet balance would decrease. Balance adjustments like these allow an exchange to limit the risks associated with holding XRP in online hot wallets. @@ -607,22 +607,18 @@ Off-Ledger Balances ## See Also - **Concepts:** - - [Accounts](accounts.html) - - [Direct XRP Payments](direct-xrp-payments.html) - - [Partial Payments](partial-payments.html) - - [Source and Destination Tags](source-and-destination-tags.html) + - [Accounts](../../concepts/accounts/accounts.md) + - [Direct XRP Payments](../../concepts/payment-types/direct-xrp-payments.md) + - [Partial Payments](../../concepts/payment-types/partial-payments.md) + - [Source and Destination Tags](../../concepts/transactions/source-and-destination-tags.md) - **Tutorials:** - - [Install `rippled`](install-rippled.html) - - [Send XRP](send-xrp.html) - - [Set Up Secure Signing](secure-signing.html) - - [Monitor Incoming Payments with WebSocket](monitor-incoming-payments-with-websocket.html) + - [Install `rippled`](../../infrastructure/installation/index.md) + - [Send XRP](../../tutorials/get-started/send-xrp.md) + - [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) + - [Monitor Incoming Payments with WebSocket](../../tutorials/get-started/monitor-incoming-payments-with-websocket.md) - **References:** - [Payment transaction][] - [account_info method][] - - [AccountRoot object](accountroot.html) + - [AccountRoot object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/content/use-cases/index.md b/content/use-cases/index.md index ed8957d1ad..fd6277ef8a 100644 --- a/content/use-cases/index.md +++ b/content/use-cases/index.md @@ -2,9 +2,13 @@ html: use-cases.html parent: docs.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Browse the documentation based on practical use cases. --- # Use Cases -Browse the documentation based on practical use cases. \ No newline at end of file +Browse the documentation based on practical use cases. + + +{% child-pages /%} diff --git a/content/use-cases/payments/index.md b/content/use-cases/payments/index.md index c8ccc96658..b4d76392d2 100644 --- a/content/use-cases/payments/index.md +++ b/content/use-cases/payments/index.md @@ -2,9 +2,13 @@ html: payments-uc.html parent: use-cases.html top_nav_grouping: Article Types -template: pagetype-category.html.jinja +metadata: + indexPage: true blurb: Practical examples for using different types of payment on the XRP Ledger. --- # Payments -Practical examples for using different types of payment on the XRP Ledger. \ No newline at end of file +Practical examples for using different types of payment on the XRP Ledger. + + +{% child-pages /%} diff --git a/content/use-cases/payments/peer-to-peer-payments-uc.md b/content/use-cases/payments/peer-to-peer-payments-uc.md index 1e5b6a47cd..13636fcc69 100644 --- a/content/use-cases/payments/peer-to-peer-payments-uc.md +++ b/content/use-cases/payments/peer-to-peer-payments-uc.md @@ -12,26 +12,26 @@ The XRP Ledger provides an efficient and borderless solution to handling payment ## Wallets -Before jumping into using the XRP Ledger to handle direct payments, you should settle on a crypto wallet to use. Crypto wallets make it easier to interact with the ledger and manage your funds; there are many to choose from, depending on your needs, and you can even create your own. See: [Crypto Wallets](crypto-wallets.html). +Before jumping into using the XRP Ledger to handle direct payments, you should settle on a crypto wallet to use. Crypto wallets make it easier to interact with the ledger and manage your funds; there are many to choose from, depending on your needs, and you can even create your own. See: [Crypto Wallets](../../introduction/crypto-wallets.md). ## Account Creation -Before creating an account, you must decide which XRP Ledger network to use. There are multiple networks for different use cases, but native XRP transactions only happen on `Mainnet`. See: [Parallel Networks](parallel-networks.html) +Before creating an account, you must decide which XRP Ledger network to use. There are multiple networks for different use cases, but native XRP transactions only happen on `Mainnet`. See: [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) -Most publicly available wallets offer the ability to create an account for you and can generate a public and private key. If they don't, you can create an account yourself, so long as it's mathematically valid. See: [Creating Accounts](accounts.html#creating-accounts). +Most publicly available wallets offer the ability to create an account for you and can generate a public and private key. If they don't, you can create an account yourself, so long as it's mathematically valid. See: [Creating Accounts](../../concepts/accounts/accounts.md#creating-accounts). ## Fund Your Account -An account isn't active on the XRP Ledger until it's been funded and meets the minimum reserve requiremen. See: [Reserves](reserves.html). +An account isn't active on the XRP Ledger until it's been funded and meets the minimum reserve requiremen. See: [Reserves](../../concepts/accounts/reserves.md). -If the wallet you're using doesn't offer the option to purchase XRP, you'll need to find a third party exchange to do so and send it to your account. Alternatively, someone you know can also send XRP to your account. See: [Payment](payment.html). +If the wallet you're using doesn't offer the option to purchase XRP, you'll need to find a third party exchange to do so and send it to your account. Alternatively, someone you know can also send XRP to your account. See: [Payment](../../references/protocol/transactions/types/payment.md). After funding your account, you should verify on the XRP Ledger itself that your account exists and is funded. You can do this with the: - [XRPL Explorer](https://livenet.xrpl.org/). - - [`account_info` command](account_info.html). + - [`account_info` command](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md). ## Handling Payments @@ -39,7 +39,7 @@ After funding your account, you should verify on the XRP Ledger itself that your ### Direct XRP Payments -XRP payments are the simplest way to pay someone on the XRP Ledger. You can use checks or escrows, but these require multiple transactions to complete. A direct XRP payment require only one transaction, making this option great for day-to-day activity. If you're a merchant handling large volumes of transactions, this may be the right choice for you due to it being quick, simple, and having the lowest fees. See: [Direct XRP Payments](direct-xrp-payments.html). +XRP payments are the simplest way to pay someone on the XRP Ledger. You can use checks or escrows, but these require multiple transactions to complete. A direct XRP payment require only one transaction, making this option great for day-to-day activity. If you're a merchant handling large volumes of transactions, this may be the right choice for you due to it being quick, simple, and having the lowest fees. See: [Direct XRP Payments](../../concepts/payment-types/direct-xrp-payments.md). To make a direct XRP payment work, you only need to know the address of the receiver. @@ -48,6 +48,6 @@ To make a direct XRP payment work, you only need to know the address of the rece The XRP Ledger enables you to make cross-currency payments of XRP and tokens. Cross-currency payments within the XRP Ledger are fully atomic, meaning the payment fully executes or no part of the payment executes at all. -Cross-currency payments deliver a fixed amount to their destination, but the sender can have a variable fee cost, depending on the paths taken to make the transaction work on the network. See: [Cross-currency Payments](cross-currency-payments.html). +Cross-currency payments deliver a fixed amount to their destination, but the sender can have a variable fee cost, depending on the paths taken to make the transaction work on the network. See: [Cross-currency Payments](../../concepts/payment-types/cross-currency-payments.md). This is a great payment option if you or the receiver prefer a specific token instead of the native XRP currency. diff --git a/content/use-cases/payments/restricting-deposits-uc.md b/content/use-cases/payments/restricting-deposits-uc.md index ada791650d..723dd6b01f 100644 --- a/content/use-cases/payments/restricting-deposits-uc.md +++ b/content/use-cases/payments/restricting-deposits-uc.md @@ -19,7 +19,7 @@ Accounts with deposit authorization enabled can only receive funds through: ## Set Up Deposit Authorization -To enable deposit authorization, use the `AccountSet` transaction to set the `asfDepositAuth` flag. See: [Deposit Authorization](depositauth.html). +To enable deposit authorization, use the `AccountSet` transaction to set the `asfDepositAuth` flag. See: [Deposit Authorization](../../concepts/accounts/depositauth.md). ## Preauthorized Accounts @@ -27,7 +27,7 @@ When you enable deposit authorization, your account blocks all incoming transact Preauthorized accounts are currency-agnostic, meaning you can't specify which currencies to authorize. It's all or nothing. -See: [DepositPreauth](depositpreauth.html). +See: [DepositPreauth](../../references/protocol/transactions/types/depositpreauth.md). ## Accepting Deposits from Unauthorized Accounts @@ -41,14 +41,14 @@ Checks are a straightforward, familiar, and flexible way to transfer funds when While this method is the simplest, it doesn't guarantee the funds. Checks are deferred payments, meaning funds aren't moved until the moment you try to cash the check. It's possible for the sending account to not have the necessary funds at the time the check is cashed, which can cause delays or other headaches, depending on your business. -See: [Use Checks](use-checks.html). +See: [Use Checks](../../tutorials/use-specialized-payment-types/use-checks/use-checks.md). ### Escrow If you require a guarantee of funds at the time of deposit, another option is to have deposits made with an escrow. Like regular escrows, a sender sets aside funds on the ledger, effectively locking them up until certain conditions are met. This guarantees the funds will be available when you close the escrow to release the funds. -See: [Use Escrows](use-escrows.html). +See: [Use Escrows](../../tutorials/tasks/use-specialized-payment-types/use-escrows/index.md). \ No newline at end of file +--> diff --git a/content/use-cases/payments/smart-contracts-uc.md b/content/use-cases/payments/smart-contracts-uc.md index 3ef3a3175e..39f216e5af 100644 --- a/content/use-cases/payments/smart-contracts-uc.md +++ b/content/use-cases/payments/smart-contracts-uc.md @@ -23,7 +23,7 @@ Smart contracts on the XRP Ledger work through conditionally held escrows. A conditionally held escrow is similar to a normal escrow: you set aside funds with an escrow to guarantee funds are available to a recipient. The difference is that a conditionally held escrow on the ledger has a `Condition` attached to it, which serves as a lock on the funds. The ledger won't release those funds until an `EscrowFinish` transaction is submitted with the corresponding `Fulfillment` field. The `Condition` and `Fulfillment` fields can be viewed as a lock and key on an escrow. -See: [`EscrowCreate`](escrowcreate.html). +See: [`EscrowCreate`](../../references/protocol/transactions/types/escrowcreate.md). ### Establish the Oracle @@ -36,7 +36,7 @@ The oracle gives the condition hex value to the escrow creator, enabling them to After the oracle's programming detects the conditions are met, it gives the fulfillment hex value to the escrow recipient. It does nothing else after this point, such as finishing the escrow. The recipient of the escrow would most likely finish the escrow. -See: [Generate a condition and fulfillment](send-a-conditionally-held-escrow.html#1-generate-condition-and-fulfillment). +See: [Generate a condition and fulfillment](../../tutorials/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md#1-generate-condition-and-fulfillment). ## Examples diff --git a/content/use-cases/tokenization/authorized-minter.md b/content/use-cases/tokenization/authorized-minter.md index 1219f8e701..27fea319a3 100644 --- a/content/use-cases/tokenization/authorized-minter.md +++ b/content/use-cases/tokenization/authorized-minter.md @@ -11,52 +11,52 @@ _As an authorized minter, I want to mint tokens for a token issuer at an agreed You can act as an authorized minter for token issuers. When you do this, you own the NFToken, but royalties flow to the NFToken issuer. When you make a sale of that NFToken, the proceeds of the initial sale go to you. You can have an agreement with your issuer to pay them some or all of your portion of the initial sale amount. -You can learn more in the tutorial [Assign an Authorized Minter](assign-an-authorized-minter-using-javascript.html). +You can learn more in the tutorial [Assign an Authorized Minter](../../tutorials/quickstart/assign-an-authorized-minter-using-javascript.md). -[![Authorized Minter Flow](img/nft-mkt-auth-minter.png "Authorized Minter Flow")](img/nft-mkt-auth-minter.png) +[![Authorized Minter Flow](/img/nft-mkt-auth-minter.png "Authorized Minter Flow")](/img/nft-mkt-auth-minter.png) ## Set up a rippled instance -If you want to set up a larger site with high volume, it might be worth investing in your own XRP Ledger server instance. See [Install rippled](install-rippled.html). +If you want to set up a larger site with high volume, it might be worth investing in your own XRP Ledger server instance. See [Install rippled](../../infrastructure/installation/index.md). ## Set up your marketplace -Rather than designing NFTs yourself, you coordinate with an NFT creator to become an authorized minter and generate NFTs on their behalf. This allows the creator to focus on making new NFTs while you handle production and sales of the NFTs. See [Authorized Minter](nftoken-authorized-minting.html). +Rather than designing NFTs yourself, you coordinate with an NFT creator to become an authorized minter and generate NFTs on their behalf. This allows the creator to focus on making new NFTs while you handle production and sales of the NFTs. See [Authorized Minter](../../concepts/tokens/nfts/authorizing-another-minter.md). -Once you finish creating NFTs, the creator can revoke your privileges and reassert control over the NFTs. You might also transfer the tokens to a marketplace that will handle sales of the NFTs. You can act as a broker to match sell offers to buy offers. See [Running an NFT auction](nftoken-auctions.html). +Once you finish creating NFTs, the creator can revoke your privileges and reassert control over the NFTs. You might also transfer the tokens to a marketplace that will handle sales of the NFTs. You can act as a broker to match sell offers to buy offers. See [Running an NFT auction](../../concepts/tokens/nfts/running-an-nft-auction.md). -![Auctioning NFTs](img/uc-nft-transferring-nfts.png) +![Auctioning NFTs](/img/uc-nft-transferring-nfts.png) -To mint your first NFTs on behalf of another account, see [Authorizing Another Account to Mint Your NFTs](assign-an-authorized-minter-using-javascript.html). +To mint your first NFTs on behalf of another account, see [Authorizing Another Account to Mint Your NFTs](../../tutorials/quickstart/assign-an-authorized-minter-using-javascript.md). -If you, as the owner or issuer, want to be able to burn the token in the future, set the `Flags` field to _1._ To make the NFT transferable, set the `Flags` field to _8_. Set the `Flags` field to _9_ to make the NFT both burnable and transferable. See[ Burnable flag](nftoken.html#nftoken-flags) and [Transferable flag](nftoken.html#nftoken-flags). +If you, as the owner or issuer, want to be able to burn the token in the future, set the `Flags` field to _1._ To make the NFT transferable, set the `Flags` field to _8_. Set the `Flags` field to _9_ to make the NFT both burnable and transferable. See[ Burnable flag](../../references/protocol/data-types/nftoken.md#nftoken-flags) and [Transferable flag](../../references/protocol/data-types/nftoken.md#nftoken-flags). -![Burning NFTs](img/uc-nft-burn.png) +![Burning NFTs](/img/uc-nft-burn.png) -You can arrange for the creator to receive royalties from future sales by setting a transfer fee. This is a value from 0-50000 representing 0-50% of the sale price. See [Transfer Fee](nftoken.html#transferfee). +You can arrange for the creator to receive royalties from future sales by setting a transfer fee. This is a value from 0-50000 representing 0-50% of the sale price. See [Transfer Fee](../../references/protocol/data-types/nftoken.md#transferfee). The NFToken URL is a link to the location where the content of the NFT is stored. One option is create an IPFS account and store the NFToken content at a persistent URL. See [Best Practices for Storing NFT Data](https://docs.ipfs.io/how-to/best-practices-for-nft-data). Considerations that might be most interesting to you: -* [Minting NFTs into Collections](nft-collections.html) +* [Minting NFTs into Collections](../../concepts/tokens/nfts/collections.md) Use the TokenTaxon field to gather a set of NFTs centered around a specific theme or purpose. -* [Guaranteeing a Fixed Supply of NFTs](nft-fixed-supply.html) -You can assure scarcity of NFTs you create by creating them with what might be characterized as a “burner” account that you use to mint a set number of NFTs for another account, then delete the account you used to mint the NFTs. See [Guaranteeing a Fixed Supply of NFTs](nft-fixed-supply.html). +* [Guaranteeing a Fixed Supply of NFTs](../../concepts/tokens/nfts/guaranteeing-a-fixed-supply.md) +You can assure scarcity of NFTs you create by creating them with what might be characterized as a “burner” account that you use to mint a set number of NFTs for another account, then delete the account you used to mint the NFTs. See [Guaranteeing a Fixed Supply of NFTs](../../concepts/tokens/nfts/guaranteeing-a-fixed-supply.md). ## Transferring NFTs -You transfer NFTs by creating a sell offer or accepting a buy offer. See [Transfer NFTokens](transfer-nfts-using-javascript.html). +You transfer NFTs by creating a sell offer or accepting a buy offer. See [Transfer NFTokens](../../tutorials/quickstart/transfer-nfts-using-javascript.md). -You can sell your NFTs in an auction format. See [Running an NFT Auction](nftoken-auctions.html). +You can sell your NFTs in an auction format. See [Running an NFT Auction](../../concepts/tokens/nfts/running-an-nft-auction.md). -You can act as a broker, connecting sellers with bidders, completing the transfer and keeping a percentage of the purchase price. See [Broker a NFToken sale](broker-an-nft-sale-using-javascript.html). +You can act as a broker, connecting sellers with bidders, completing the transfer and keeping a percentage of the purchase price. See [Broker a NFToken sale](../../tutorials/quickstart/broker-an-nft-sale-using-javascript.md). ### Reserve requirements There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of 2 XRP. A NFToken page can store 16-32 NFTs. -![Reserves](img/uc-nft-reserves.png) +![Reserves](/img/uc-nft-reserves.png) Each `NFTokenOffer` object requires a reserve of 2 XRP. @@ -64,32 +64,32 @@ When you post the `NFTokenOffer` or sell the NFT, there are trivial transfer fee See: -1. [NFTokenOffer](nft-reserve-requirements.html#nftokenoffer-reserve) -2. NFToken page ([Owner reserve](nft-reserve-requirements.html#owner-reserve)) -3. Trivial [transfer fees](transfer-fees.html) +1. [NFTokenOffer](../../concepts/tokens/nfts/reserve-requirements.md#nftokenoffer-reserve) +2. NFToken page ([Owner reserve](../../concepts/tokens/nfts/reserve-requirements.md#owner-reserve)) +3. Trivial [transfer fees](../../concepts/tokens/transfer-fees.md) ### Checkout -The most straightforward payment for XRPL NFTs is XRP. For examples of selling and buying NFTs using XRP, see [Transfer NFTokens](transfer-nfts-using-javascript.html). +The most straightforward payment for XRPL NFTs is XRP. For examples of selling and buying NFTs using XRP, see [Transfer NFTokens](../../tutorials/quickstart/transfer-nfts-using-javascript.md). -![Checkout](img/uc-nft-checkout.png) +![Checkout](/img/uc-nft-checkout.png) -For trade in other currencies, you can leverage the DEX to accept and convert issued currencies of all kinds. See [Trade in the Decentralized Exchange](trade-in-the-decentralized-exchange.html#trade-in-the-decentralized-exchange). +For trade in other currencies, you can leverage the DEX to accept and convert issued currencies of all kinds. See [Trade in the Decentralized Exchange](../../tutorials/use-tokens/trade-in-the-decentralized-exchange.md#trade-in-the-decentralized-exchange). ## Indexing NFTs When listing NFTs for sale, it can be useful to use object metadata to organize them. You can use queries in the XRPL libraries, the Clio server, and extensions in the XRPL API and Bithomp libraries to sort and filter NFTs by creator, price, collection, rarity, and more. -![Indexing NFTs](img/uc-nft-indexing.png) +![Indexing NFTs](/img/uc-nft-indexing.png) See: -- [Clio setup](install-clio-on-ubuntu.html) +- [Clio setup](../../infrastructure/installation/install-clio-on-ubuntu.md) - [XRPL Data API](https://api.xrpldata.com/docs/static/index.html#/) - [Bithomp](https://docs.bithomp.com/#nft-xls-20) - - diff --git a/content/use-cases/tokenization/nftoken-marketplace.md b/content/use-cases/tokenization/nftoken-marketplace.md index 4adf417625..d47639ef2f 100644 --- a/content/use-cases/tokenization/nftoken-marketplace.md +++ b/content/use-cases/tokenization/nftoken-marketplace.md @@ -15,36 +15,36 @@ NFToken Marketplaces act as intermediaries between NFToken creators and collecto ## Creating an NFT Marketplace -[![NFT Marketplace Flow](img/nft-mkt-marketplace.png "NFT Marketplace Flow")](img/nft-mkt-marketplace.png) +[![NFT Marketplace Flow](/img/nft-mkt-marketplace.png "NFT Marketplace Flow")](/img/nft-mkt-marketplace.png) ## Set up a rippled instance -When you set up a serious marketplace site with high volume, it justifies the decision to set up your own XRP Ledger server instance. See [Install rippled](install-rippled.html). +When you set up a serious marketplace site with high volume, it justifies the decision to set up your own XRP Ledger server instance. See [Install rippled](../../infrastructure/installation/index.md). ### Setting up a wallet Set up a new wallet. See [Xumm](https://xumm.app/). -Base reserve requirements See [Reserves](reserves.html#base-reserve-and-owner-reserve). +Base reserve requirements See [Reserves](../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve). ### Transferring NFTs -You transfer NFTs by creating a sell offer or accepting a buy offer. See [Transfer NFTokens](transfer-nfts-using-javascript.html). +You transfer NFTs by creating a sell offer or accepting a buy offer. See [Transfer NFTokens](../../tutorials/quickstart/transfer-nfts-using-javascript.md). -![Transferring NFTs](img/uc-nft-transferring-nfts.png) +![Transferring NFTs](/img/uc-nft-transferring-nfts.png) -You can sell your NFTs in an auction format. See [Running an NFT Auction](nftoken-auctions.html). +You can sell your NFTs in an auction format. See [Running an NFT Auction](../../concepts/tokens/nfts/running-an-nft-auction.md). -You can act as a broker, connecting sellers with bidders, completing the transfer and keeping a percentage of the purchase price. See [Broker a NFToken sale](broker-an-nft-sale-using-javascript.html). +You can act as a broker, connecting sellers with bidders, completing the transfer and keeping a percentage of the purchase price. See [Broker a NFToken sale](../../tutorials/quickstart/broker-an-nft-sale-using-javascript.md). ### Reserve requirements There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of 2 XRP. A NFToken page can store 16-32 NFTs. -![Reserves](img/uc-nft-reserves.png) +![Reserves](/img/uc-nft-reserves.png) Each `NFTokenOffer` object requires a reserve of 2 XRP. @@ -52,33 +52,33 @@ When you post the `NFTokenOffer` or sell the NFT, there are trivial transfer fee See: -1. [NFTokenOffer](nft-reserve-requirements.html#nftokenoffer-reserve) -2. NFToken page ([Owner reserve](nft-reserve-requirements.html#owner-reserve)) -3. Trivial [transfer fees](transfer-fees.html) +1. [NFTokenOffer](../../concepts/tokens/nfts/reserve-requirements.md#nftokenoffer-reserve) +2. NFToken page ([Owner reserve](../../concepts/tokens/nfts/reserve-requirements.md#owner-reserve)) +3. Trivial [transfer fees](../../concepts/tokens/transfer-fees.md) -You can learn more about brokered sales in the topic [Trading Tokens on the XRP Ledger](non-fungible-token-transfers.html). +You can learn more about brokered sales in the topic [Trading Tokens on the XRP Ledger](../../concepts/tokens/nfts/trading.md). -Learn more about token transfer fees in the topic [Transfer Fees](transfer-fees.html). +Learn more about token transfer fees in the topic [Transfer Fees](../../concepts/tokens/transfer-fees.md). -You can get started building a brokered sales marketplace by following the steps in the [Broker a NFToken Sale](broker-an-nft-sale-using-javascript.html). +You can get started building a brokered sales marketplace by following the steps in the [Broker a NFToken Sale](../../tutorials/quickstart/broker-an-nft-sale-using-javascript.md). ### Checkout -The most straightforward payment for XRPL NFTs is XRP. For examples of selling and buying NFTs using XRP, see [Transfer NFTokens](transfer-nfts-using-javascript.html). +The most straightforward payment for XRPL NFTs is XRP. For examples of selling and buying NFTs using XRP, see [Transfer NFTokens](../../tutorials/quickstart/transfer-nfts-using-javascript.md). -![Checkout](img/uc-nft-checkout.png) +![Checkout](/img/uc-nft-checkout.png) -For trade in other currencies, you can leverage the DEX to accept and convert issued currencies of all kinds. See [Trade in the Decentralized Exchange](trade-in-the-decentralized-exchange.html#trade-in-the-decentralized-exchange). +For trade in other currencies, you can leverage the DEX to accept and convert issued currencies of all kinds. See [Trade in the Decentralized Exchange](../../tutorials/use-tokens/trade-in-the-decentralized-exchange.md#trade-in-the-decentralized-exchange). ## Indexing NFTs When listing NFTs for sale, it can be useful to use object metadata to organize them. You can use queries in the XRPL libraries, the Clio server, and extensions in the XRPL API and Bithomp libraries to sort and filter NFTs by creator, price, collection, rarity, and more. -![Indexing NFTs](img/uc-nft-indexing.png) +![Indexing NFTs](/img/uc-nft-indexing.png) See: -- [Clio setup](install-clio-on-ubuntu.html) +- [Clio setup](../../infrastructure/installation/install-clio-on-ubuntu.md) - [XRPL Data API](https://api.xrpldata.com/docs/static/index.html#/) - [Bithomp](https://docs.bithomp.com/#nft-xls-20) @@ -102,4 +102,3 @@ Supplement Information [No link] Price History --> - diff --git a/content/use-cases/tokenization/stablecoin-issuer.md b/content/use-cases/tokenization/stablecoin-issuer.md index 9a409492a7..bd747d6c3b 100644 --- a/content/use-cases/tokenization/stablecoin-issuer.md +++ b/content/use-cases/tokenization/stablecoin-issuer.md @@ -14,13 +14,13 @@ Stablecoins are tokens that are backed by assets outside of the XRPL. Stablecoin The mechanics of issuing a stablecoin are not complicated. -1. Decide on the name for your stablecoin (either following the 3-character ISO standard or using a 160-bit hex string. See [Currency Codes](currency-formats.html#currency-codes)). +1. Decide on the name for your stablecoin (either following the 3-character ISO standard or using a 160-bit hex string. See [Currency Codes](../../references/protocol/data-types/currency-formats.md#currency-codes)). 2. Create a trust line between the issuing account and a consuming account establishing a maximum number of stablecoins to transfer. 3. Send a payment of stablecoins to the consumer up to the maximum amount in the trust line. While anyone can issue a token with any currency code in the XRP Ledger, stablecoin value comes from the promise that it can be redeemed for a corresponding asset. Issuing a stablecoin might involve regulatory obligations, which vary by jurisdiction. For these reasons, an established, reputable business is most likely to succeed in issuing a stablecoin. -[![Stablecoin Workflow](img/uc-stablecoin-flow.png)](img/uc-stablecoin-flow.png) +[![Stablecoin Workflow](/img/uc-stablecoin-flow.png)](/img/uc-stablecoin-flow.png) There are many decisions to make and artifacts to generate as you prepare to release a new stablecoin. You can use the XRPL Foundation's [Self-assessment Questionnaire](https://foundation.xrpl.org/wp-content/uploads/2022/03/self_assessment_questionnaire_140322.pdf) as a starting point to gather and produce the necessary information for a successful launch. @@ -28,32 +28,32 @@ There are many decisions to make and artifacts to generate as you prepare to rel The first step is to decide the type of stablecoin you want to create. Your choice of stablecoin type might require additional steps, such as signing on financial or audit partners. -![Stablecoin](img/uc-stablecoin-stable-coin.png) +![Stablecoin](/img/uc-stablecoin-stable-coin.png) -There are five common types of currency tokens you can create on the XRPL: fiat-backed, crypto-backed, commodity-backed, financial instrument-backed, and non-collateralized. See [Stablecoins](stablecoins.html). +There are five common types of currency tokens you can create on the XRPL: fiat-backed, crypto-backed, commodity-backed, financial instrument-backed, and non-collateralized. See [Stablecoins](../../concepts/tokens/fungible-tokens/stablecoins/index.md). ## Set Up Your Node Services For lighter use cases and individual servers, you can often rely on free public servers. However, the more serious your use of the XRP Ledger becomes, the more important it becomes to have your own infrastructure. -There are many reasons you might want to run your own servers, but most of them can be summarized as: you can trust your own server, you have control over its workload, and you're not at the mercy of others to decide when and how you can access it. See [Reasons to Run Your Own Server](networks-and-servers.html#reasons-to-run-your-own-server). +There are many reasons you might want to run your own servers, but most of them can be summarized as: you can trust your own server, you have control over its workload, and you're not at the mercy of others to decide when and how you can access it. See [Reasons to Run Your Own Server](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). Alternatively, you can use an external node service provider like OpenNode. See [OpenNode](https://www.opennodecloud.com/). ## Sandbox Access -![Sandbox](img/uc-stablecoin-sandbox.png) +![Sandbox](/img/uc-stablecoin-sandbox.png) -For testing purposes, you can implement, deploy, and trade your stablecoin on the XRPL Testnet or Devnet servers. Visit the XRP Faucets page to generate your test network credentials. Use the listed server URIs on that page to connect to and interact with your chosen test network. See [XRP Faucets](xrp-testnet-faucet.html). +For testing purposes, you can implement, deploy, and trade your stablecoin on the XRPL Testnet or Devnet servers. Visit the XRP Faucets page to generate your test network credentials. Use the listed server URIs on that page to connect to and interact with your chosen test network. See [XRP Faucets](/resources/dev-tools/xrp-faucets). ## Stablecoin Settings Before you mint your new stablecoin, you need to configure settings, some of which are immutable once you issue the first coin. -See [Stablecoin Settings](stablecoin-settings.html). +See [Stablecoin Settings](../../concepts/tokens/fungible-tokens/stablecoins/settings.md). -For more detail on configuration capbilities, see [Stablecoin Issuer Configuration](stablecoin-configuration.html). +For more detail on configuration capbilities, see [Stablecoin Issuer Configuration](../../concepts/tokens/fungible-tokens/stablecoins/configuration.md). ## Asset Information @@ -70,7 +70,7 @@ Currency codes do not have to be unique. For instance, if you're issuing a stabl You can publish information about what currencies you issue, and which XRP Ledger addresses you control, to protect against impostors or confusion, using an `xrp-ledger.toml` file on your website. This machine-readable format is convenient for client applications to process. If you run an XRP Ledger validator, you can also publish the key in the same file. -You can use the _Currencies_ table to provide additional information about your stablecoin. This makes the information about your cryptocurrency accessible in an expected place and format, and enhances transparency. See [xrp-ledger.toml File](xrp-ledger-toml.html#currencies). +You can use the _Currencies_ table to provide additional information about your stablecoin. This makes the information about your cryptocurrency accessible in an expected place and format, and enhances transparency. See [xrp-ledger.toml File](../../references/xrp-ledger-toml.md#currencies). ## Account and Key Management @@ -79,7 +79,7 @@ You can use the _Currencies_ table to provide additional information about your By using multiple keys and signing weights, issuers and asset holders can distribute trust and responsibility for approving transactions for an account between different users and systems. This gives you the flexibility to gate those signatures using internal processes and controls. -See [Multi-signing](multi-signing.html). +See [Multi-signing](../../concepts/accounts/multi-signing.md). -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +{% raw-partial file="/_snippets/common-links.md" /%} diff --git a/tool/autosubs_cheatsheet.yml b/tool/autosubs_cheatsheet.yml index 05472a1cc7..347882cfde 100644 --- a/tool/autosubs_cheatsheet.yml +++ b/tool/autosubs_cheatsheet.yml @@ -36,6 +36,8 @@ "AMMの修正": known-amendments.html#amm "AMMエントリ": amm.html "AMMオブジェクト": amm.html +"API v1": request-formatting.html#api-versioning +"API v2": request-formatting.html#api-versioning "AccountDelete transaction": accountdelete.html "AccountDelete transactions": accountdelete.html "AccountDelete トランザクション": accountdelete.html @@ -170,49 +172,50 @@ "ImmediateOfferKilledの修正": known-amendments.html#immediateofferkilled "Interledger Protocol": https://interledger.org/ "Internal Type": serialization.html -"Introduced in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"Introduced in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"Introduced in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"Introduced in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"Introduced in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"Introduced in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"Introduced in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"Introduced in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"Introduced in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"Introduced in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"Introduced in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"Introduced in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"Introduced in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"Introduced in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"Introduced in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"Introduced in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"Introduced in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"Introduced in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"Introduced in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"Introduced in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"Introduced in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"Introduced in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"Introduced in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"Introduced in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"Introduced in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"Introduced in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"Introduced in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"Introduced in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"Introduced in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"Introduced in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"Introduced in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"Introduced in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"Introduced in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"Introduced in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"Introduced in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"Introduced in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"Introduced in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"Introduced in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"Introduced in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"Introduced in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"Introduced in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"Introduced in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"Introduced in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 +"Introduced in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +"Introduced in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +"Introduced in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +"Introduced in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +"Introduced in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +"Introduced in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +"Introduced in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +"Introduced in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +"Introduced in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +"Introduced in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +"Introduced in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +"Introduced in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +"Introduced in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +"Introduced in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +"Introduced in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +"Introduced in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +"Introduced in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +"Introduced in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +"Introduced in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +"Introduced in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +"Introduced in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +"Introduced in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +"Introduced in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +"Introduced in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +"Introduced in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +"Introduced in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +"Introduced in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +"Introduced in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +"Introduced in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +"Introduced in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +"Introduced in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +"Introduced in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +"Introduced in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +"Introduced in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +"Introduced in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +"Introduced in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +"Introduced in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +"Introduced in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +"Introduced in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +"Introduced in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +"Introduced in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +"Introduced in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +"Introduced in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +"Introduced in: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" "Ledger Index": basic-data-types.html#ledger-index "LedgerHashes entry": ledgerhashes.html "LedgerHashes object": ledgerhashes.html @@ -271,49 +274,50 @@ "NegativeUNLの修正": known-amendments.html#negativeunl "NegativeUNLエントリ": negativeunl.html "NegativeUNLオブジェクト": negativeunl.html -"New in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"New in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"New in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"New in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"New in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"New in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"New in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"New in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"New in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"New in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"New in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"New in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"New in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"New in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"New in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"New in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"New in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"New in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"New in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"New in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"New in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"New in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"New in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"New in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"New in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"New in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"New in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"New in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"New in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"New in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"New in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"New in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"New in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"New in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"New in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"New in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"New in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"New in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"New in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"New in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"New in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"New in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"New in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 +"New in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +"New in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +"New in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +"New in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +"New in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +"New in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +"New in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +"New in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +"New in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +"New in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +"New in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +"New in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +"New in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +"New in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +"New in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +"New in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +"New in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +"New in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +"New in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +"New in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +"New in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +"New in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +"New in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +"New in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +"New in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +"New in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +"New in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +"New in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +"New in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +"New in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +"New in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +"New in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +"New in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +"New in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +"New in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +"New in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +"New in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +"New in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +"New in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +"New in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +"New in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +"New in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +"New in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +"New in: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" "NonFungibleTokensV1 amendment": known-amendments.html#nonfungibletokensv1 "NonFungibleTokensV1_1 amendment": known-amendments.html#nonfungibletokensv1_1 "NonFungibleTokensV1_1の修正": known-amendments.html#nonfungibletokensv1_1 @@ -365,49 +369,50 @@ "PaymentChannelFundトランザクション": paymentchannelfund.html "Paymentトランザクション": payment.html "RFC-1751": https://tools.ietf.org/html/rfc1751 -"Removed in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"Removed in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"Removed in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"Removed in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"Removed in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"Removed in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"Removed in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"Removed in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"Removed in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"Removed in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"Removed in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"Removed in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"Removed in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"Removed in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"Removed in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"Removed in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"Removed in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"Removed in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"Removed in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"Removed in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"Removed in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"Removed in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"Removed in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"Removed in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"Removed in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"Removed in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"Removed in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"Removed in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"Removed in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"Removed in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"Removed in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"Removed in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"Removed in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"Removed in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"Removed in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"Removed in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"Removed in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"Removed in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"Removed in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"Removed in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"Removed in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"Removed in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"Removed in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 +"Removed in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_RED" +"Removed in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_RED" +"Removed in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_RED" +"Removed in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_RED" +"Removed in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_RED" +"Removed in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_RED" +"Removed in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_RED" +"Removed in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_RED" +"Removed in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_RED" +"Removed in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_RED" +"Removed in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_RED" +"Removed in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_RED" +"Removed in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_RED" +"Removed in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_RED" +"Removed in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_RED" +"Removed in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_RED" +"Removed in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_RED" +"Removed in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_RED" +"Removed in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_RED" +"Removed in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_RED" +"Removed in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_RED" +"Removed in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_RED" +"Removed in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_RED" +"Removed in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_RED" +"Removed in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_RED" +"Removed in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_RED" +"Removed in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_RED" +"Removed in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_RED" +"Removed in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_RED" +"Removed in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_RED" +"Removed in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_RED" +"Removed in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_RED" +"Removed in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_RED" +"Removed in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_RED" +"Removed in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_RED" +"Removed in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_RED" +"Removed in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_RED" +"Removed in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_RED" +"Removed in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_RED" +"Removed in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_RED" +"Removed in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_RED" +"Removed in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_RED" +"Removed in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_RED" +"Removed in: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_RED" "Reporting Mode": rippled-server-modes.html#reporting-mode "RequireFullyCanonicalSig amendment": known-amendments.html#requirefullycanonicalsig "RequireFullyCanonicalSigの修正": known-amendments.html#requirefullycanonicalsig @@ -479,49 +484,50 @@ "UNLModify pseudo-transactions": unlmodify.html "UNLModify": unlmodify.html "UNLModify疑似トランザクション": unlmodify.html -"Updated in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"Updated in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"Updated in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"Updated in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"Updated in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"Updated in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"Updated in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"Updated in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"Updated in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"Updated in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"Updated in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"Updated in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"Updated in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"Updated in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"Updated in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"Updated in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"Updated in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"Updated in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"Updated in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"Updated in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"Updated in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"Updated in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"Updated in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"Updated in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"Updated in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"Updated in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"Updated in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"Updated in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"Updated in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"Updated in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"Updated in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"Updated in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"Updated in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"Updated in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"Updated in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"Updated in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"Updated in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"Updated in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"Updated in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"Updated in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"Updated in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"Updated in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"Updated in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 +"Updated in: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +"Updated in: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +"Updated in: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +"Updated in: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +"Updated in: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +"Updated in: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +"Updated in: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +"Updated in: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +"Updated in: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +"Updated in: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +"Updated in: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +"Updated in: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +"Updated in: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +"Updated in: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +"Updated in: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +"Updated in: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +"Updated in: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +"Updated in: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +"Updated in: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +"Updated in: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +"Updated in: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +"Updated in: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +"Updated in: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +"Updated in: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +"Updated in: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +"Updated in: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +"Updated in: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +"Updated in: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +"Updated in: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +"Updated in: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +"Updated in: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +"Updated in: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +"Updated in: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +"Updated in: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +"Updated in: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +"Updated in: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +"Updated in: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +"Updated in: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +"Updated in: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +"Updated in: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +"Updated in: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +"Updated in: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +"Updated in: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +"Updated in: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" "XChainBridge amendment": known-amendments.html#xchainbridge "XChainBridgeの修正": known-amendments.html#xchainbridge "XRP, in drops": basic-data-types.html#specifying-currency-amounts @@ -646,6 +652,10 @@ "fix1623の修正": known-amendments.html#fix1623 "fixCheckThreading amendment": known-amendments.html#fixcheckthreading "fixCheckThreadingの修正": known-amendments.html#fixcheckthreading +"fixDisallowIncomingV1 amendment": known-amendments.html#fixdisallowincomingv1 +"fixDisallowIncomingV1の修正": known-amendments.html#fixdisallowincomingv1 +"fixFillOrKill amendment": known-amendments.html#fixfillorkill +"fixFillOrKillの修正": known-amendments.html#fixfillorkill "fixMasterKeyAsRegularKey amendment": known-amendments.html#fixmasterkeyasregularkey "fixMasterKeyAsRegularKeyの修正": known-amendments.html#fixmasterkeyasregularkey "fixNFTokenDirV1 amendment": known-amendments.html#fixnftokendirv1 @@ -874,180 +884,184 @@ "公開サーバー": public-servers.html "共通フィールド": transaction-common-fields.html "内部の型": serialization.html -"削除: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"削除: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"削除: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"削除: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"削除: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"削除: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"削除: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"削除: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"削除: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"削除: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"削除: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"削除: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"削除: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"削除: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"削除: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"削除: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"削除: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"削除: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"削除: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"削除: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"削除: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"削除: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"削除: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"削除: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"削除: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"削除: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"削除: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"削除: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"削除: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"削除: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"削除: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"削除: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"削除: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"削除: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"削除: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"削除: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"削除: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"削除: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"削除: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"削除: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"削除: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"削除: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"削除: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 -"導入: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"導入: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"導入: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"導入: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"導入: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"導入: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"導入: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"導入: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"導入: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"導入: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"導入: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"導入: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"導入: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"導入: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"導入: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"導入: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"導入: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"導入: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"導入: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"導入: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"導入: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"導入: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"導入: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"導入: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"導入: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"導入: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"導入: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"導入: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"導入: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"導入: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"導入: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"導入: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"導入: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"導入: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"導入: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"導入: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"導入: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"導入: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"導入: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"導入: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"導入: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"導入: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"導入: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 +"削除: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_RED" +"削除: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_RED" +"削除: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_RED" +"削除: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_RED" +"削除: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_RED" +"削除: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_RED" +"削除: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_RED" +"削除: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_RED" +"削除: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_RED" +"削除: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_RED" +"削除: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_RED" +"削除: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_RED" +"削除: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_RED" +"削除: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_RED" +"削除: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_RED" +"削除: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_RED" +"削除: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_RED" +"削除: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_RED" +"削除: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_RED" +"削除: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_RED" +"削除: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_RED" +"削除: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_RED" +"削除: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_RED" +"削除: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_RED" +"削除: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_RED" +"削除: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_RED" +"削除: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_RED" +"削除: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_RED" +"削除: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_RED" +"削除: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_RED" +"削除: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_RED" +"削除: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_RED" +"削除: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_RED" +"削除: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_RED" +"削除: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_RED" +"削除: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_RED" +"削除: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_RED" +"削除: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_RED" +"削除: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_RED" +"削除: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_RED" +"削除: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_RED" +"削除: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_RED" +"削除: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_RED" +"削除: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_RED" +"導入: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +"導入: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +"導入: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +"導入: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +"導入: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +"導入: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +"導入: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +"導入: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +"導入: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +"導入: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +"導入: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +"導入: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +"導入: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +"導入: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +"導入: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +"導入: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +"導入: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +"導入: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +"導入: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +"導入: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +"導入: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +"導入: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +"導入: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +"導入: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +"導入: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +"導入: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +"導入: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +"導入: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +"導入: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +"導入: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +"導入: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +"導入: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +"導入: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +"導入: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +"導入: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +"導入: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +"導入: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +"導入: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +"導入: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +"導入: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +"導入: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +"導入: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +"導入: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +"導入: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" "手数料レベル": transaction-cost.html#手数料レベル -"新規: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"新規: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"新規: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"新規: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"新規: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"新規: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"新規: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"新規: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"新規: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"新規: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"新規: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"新規: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"新規: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"新規: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"新規: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"新規: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"新規: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"新規: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"新規: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"新規: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"新規: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"新規: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"新規: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"新規: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"新規: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"新規: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"新規: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"新規: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"新規: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"新規: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"新規: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"新規: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"新規: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"新規: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"新規: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"新規: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"新規: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"新規: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"新規: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"新規: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"新規: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"新規: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"新規: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 +"新規: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +"新規: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +"新規: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +"新規: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +"新規: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +"新規: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +"新規: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +"新規: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +"新規: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +"新規: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +"新規: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +"新規: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +"新規: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +"新規: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +"新規: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +"新規: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +"新規: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +"新規: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +"新規: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +"新規: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +"新規: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +"新規: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +"新規: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +"新規: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +"新規: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +"新規: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +"新規: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +"新規: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +"新規: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +"新規: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +"新規: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +"新規: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +"新規: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +"新規: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +"新規: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +"新規: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +"新規: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +"新規: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +"新規: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +"新規: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +"新規: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +"新規: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +"新規: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +"新規: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" "時間の指定": basic-data-types.html#時間の指定 -"更新: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 -"更新: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 -"更新: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 -"更新: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 -"更新: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 -"更新: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 -"更新: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 -"更新: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 -"更新: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 -"更新: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 -"更新: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 -"更新: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 -"更新: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 -"更新: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 -"更新: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 -"更新: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 -"更新: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 -"更新: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 -"更新: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 -"更新: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 -"更新: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 -"更新: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 -"更新: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 -"更新: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 -"更新: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 -"更新: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 -"更新: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 -"更新: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 -"更新: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 -"更新: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 -"更新: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 -"更新: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 -"更新: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 -"更新: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 -"更新: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 -"更新: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 -"更新: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 -"更新: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 -"更新: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 -"更新: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 -"更新: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 -"更新: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 -"更新: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 +"更新: rippled 0.26.0": https://github.com/XRPLF/rippled/releases/tag/0.26.0 "BADGE_BLUE" +"更新: rippled 0.26.1": https://github.com/XRPLF/rippled/releases/tag/0.26.1 "BADGE_BLUE" +"更新: rippled 0.26.2": https://github.com/XRPLF/rippled/releases/tag/0.26.2 "BADGE_BLUE" +"更新: rippled 0.26.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.3-sp1 "BADGE_BLUE" +"更新: rippled 0.26.4": https://github.com/XRPLF/rippled/releases/tag/0.26.4 "BADGE_BLUE" +"更新: rippled 0.26.4-sp1": https://github.com/XRPLF/rippled/releases/tag/0.26.4-sp1 "BADGE_BLUE" +"更新: rippled 0.27.0": https://github.com/XRPLF/rippled/releases/tag/0.27.0 "BADGE_BLUE" +"更新: rippled 0.27.1": https://github.com/XRPLF/rippled/releases/tag/0.27.1 "BADGE_BLUE" +"更新: rippled 0.27.2": https://github.com/XRPLF/rippled/releases/tag/0.27.2 "BADGE_BLUE" +"更新: rippled 0.27.3": https://github.com/XRPLF/rippled/releases/tag/0.27.3 "BADGE_BLUE" +"更新: rippled 0.27.3-sp1": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp1 "BADGE_BLUE" +"更新: rippled 0.27.3-sp2": https://github.com/XRPLF/rippled/releases/tag/0.27.3-sp2 "BADGE_BLUE" +"更新: rippled 0.27.4": https://github.com/XRPLF/rippled/releases/tag/0.27.4 "BADGE_BLUE" +"更新: rippled 0.28.0": https://github.com/XRPLF/rippled/releases/tag/0.28.0 "BADGE_BLUE" +"更新: rippled 0.28.2": https://github.com/XRPLF/rippled/releases/tag/0.28.2 "BADGE_BLUE" +"更新: rippled 0.29.0": https://github.com/XRPLF/rippled/releases/tag/0.29.0 "BADGE_BLUE" +"更新: rippled 0.29.0-hf1": https://github.com/XRPLF/rippled/releases/tag/0.29.0-hf1 "BADGE_BLUE" +"更新: rippled 0.30.0": https://github.com/XRPLF/rippled/releases/tag/0.30.0 "BADGE_BLUE" +"更新: rippled 0.30.1": https://github.com/XRPLF/rippled/releases/tag/0.30.1 "BADGE_BLUE" +"更新: rippled 0.31.0": https://github.com/XRPLF/rippled/releases/tag/0.31.0 "BADGE_BLUE" +"更新: rippled 0.32.0": https://github.com/XRPLF/rippled/releases/tag/0.32.0 "BADGE_BLUE" +"更新: rippled 0.32.1": https://github.com/XRPLF/rippled/releases/tag/0.32.1 "BADGE_BLUE" +"更新: rippled 0.33.0": https://github.com/XRPLF/rippled/releases/tag/0.33.0 "BADGE_BLUE" +"更新: rippled 0.50.0": https://github.com/XRPLF/rippled/releases/tag/0.50.0 "BADGE_BLUE" +"更新: rippled 0.70.0": https://github.com/XRPLF/rippled/releases/tag/0.70.0 "BADGE_BLUE" +"更新: rippled 0.70.2": https://github.com/XRPLF/rippled/releases/tag/0.70.2 "BADGE_BLUE" +"更新: rippled 0.80.0": https://github.com/XRPLF/rippled/releases/tag/0.80.0 "BADGE_BLUE" +"更新: rippled 0.80.1": https://github.com/XRPLF/rippled/releases/tag/0.80.1 "BADGE_BLUE" +"更新: rippled 0.90.0": https://github.com/XRPLF/rippled/releases/tag/0.90.0 "BADGE_BLUE" +"更新: rippled 1.0.0": https://github.com/XRPLF/rippled/releases/tag/1.0.0 "BADGE_BLUE" +"更新: rippled 1.1.0": https://github.com/XRPLF/rippled/releases/tag/1.1.0 "BADGE_BLUE" +"更新: rippled 1.10.0": https://github.com/XRPLF/rippled/releases/tag/1.10.0 "BADGE_BLUE" +"更新: rippled 1.11.0": https://github.com/XRPLF/rippled/releases/tag/1.11.0 "BADGE_BLUE" +"更新: rippled 1.12.0": https://github.com/XRPLF/rippled/releases/tag/1.12.0 "BADGE_BLUE" +"更新: rippled 1.2.0": https://github.com/XRPLF/rippled/releases/tag/1.2.0 "BADGE_BLUE" +"更新: rippled 1.2.1": https://github.com/XRPLF/rippled/releases/tag/1.2.1 "BADGE_BLUE" +"更新: rippled 1.3.1": https://github.com/XRPLF/rippled/releases/tag/1.3.1 "BADGE_BLUE" +"更新: rippled 1.4.0": https://github.com/XRPLF/rippled/releases/tag/1.4.0 "BADGE_BLUE" +"更新: rippled 1.5.0": https://github.com/XRPLF/rippled/releases/tag/1.5.0 "BADGE_BLUE" +"更新: rippled 1.6.0": https://github.com/XRPLF/rippled/releases/tag/1.6.0 "BADGE_BLUE" +"更新: rippled 1.7.0": https://github.com/XRPLF/rippled/releases/tag/1.7.0 "BADGE_BLUE" +"更新: rippled 1.7.2": https://github.com/XRPLF/rippled/releases/tag/1.7.2 "BADGE_BLUE" +"更新: rippled 1.8.1": https://github.com/XRPLF/rippled/releases/tag/1.8.1 "BADGE_BLUE" +"更新: rippled 2.0.0": https://github.com/XRPLF/rippled/releases/tag/2.0.0 "BADGE_BLUE" "標準フォーマット": response-formatting.html "汎用エラータイプ": error-formatting.html#汎用エラー "識別用ハッシュ": transactions.html#トランザクションの識別