最終更新:
編集

トランザクションとリクエスト

XRP Ledgerとのすべてのやり取りは、レジャーに変更を加えるトランザクションを送信するか、レジャーの情報を求めるリクエストを送信するかのいずれかとなっています。

トランザクションの仕組み

トランザクションを実行するには、RESTコマンドをXRP Ledgerに送信し、そのレスポンスを待ちます。コマンドの構文は、すべてのトランザクションで常に共通です。

トランザクションを行う AccountTransactionType とパブリックアドレスを常に提供する必要があります。

2つの必須のフィールドは、トランザクションの Fee と、アカウントからのトランザクションの順番を決定する Sequence 番号です。これらのフィールドは、トランザクションを送信する際に、レジャーサーバによって自動的に入力することができます。

特定のトランザクションには、トランザクションの種類に応じた必須項目も存在します。例えば、 Payment トランザクションでは、 Amount 値(単位は drops または100万分の1XRP)と Destination パブリックアドレスが必要となります。

以下は、JSON形式のトランザクションのサンプルです。このトランザクションは、アカウント rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn から宛先アカウント ra5nK24KXen9AHvsdFTKHSANinZseWnPcX へ1XRPを送金しています。

{
  "TransactionType": "Payment",
  "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
  "Amount": 1000000,
  "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX"
}

省略可能なフィールドはすべてのトランザクションで利用可能であり、特定のトランザクションでは追加のフィールドを利用することができます。必要な数だけ省略可能なフィールドを含めることができますが、すべてのトランザクションにすべてのフィールドを含める必要はありません。

JavaScript、Python、コマンドライン、または互換性のあるサービスから、RESTfulコマンドとしてトランザクションをレジャーに送信します。rippledサーバは、トランザクションをレジャーに提案します。

トランザクションの提案

バリデータの80%超が提案された現在のトランザクションを承認すると、その取引は永久的にレジャーの一部として記録されます。rippledサーバは、送信したトランザクションの結果を返します。

トランザクションについてのより詳しい解説は、トランザクションをご覧ください。

リクエストの仕組み

リクエストはレジャーから情報を取得するために使用されますが、レジャーに変更を加えることはありません。情報は誰でも自由に確認できるため、アカウント情報でサインインする必要はありません。

送信するフィールドは、リクエストの種類によって異なります。通常、いくつかの任意フィールドがありますが、必須フィールドは数個だけです。

リクエストを送信すると、rippledサーバまたはClioサーバ(リクエストに対応する専用のサーバ)で処理されます。

Clioサーバ

ClioサーバはXRPL上の他のrippledサーバの負荷の一部を軽減し、処理速度と信頼性を向上させます。

これはJSON形式のリクエストのサンプルです。このリクエストは、指定したアカウントの現在のアカウント情報を取得します。

{
  "command": "account_info",
  "account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn"
}

リクエストは、リクエストに使用した言語に適したフォーマットで豊富な情報を返します。以下は、アカウント情報のリクエストに対するJSON形式でのレスポンスの例です。

{
    "result": {
        "account_data": {
            "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn",
            "Balance": "999999999960",
            "Flags": 8388608,
            "LedgerEntryType": "AccountRoot",
            "OwnerCount": 0,
            "PreviousTxnID": "4294BEBE5B569A18C0A2702387C9B1E7146DC3A5850C1E87204951C6FDAA4C42",
            "PreviousTxnLgrSeq": 3,
            "Sequence": 6,
            "index": "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F"
        },
        "ledger_current_index": 4,
        "queue_data": {
            "auth_change_queued": true,
            "highest_sequence": 10,
            "lowest_sequence": 6,
            "max_spend_drops_total": "500",
            "transactions": [
                {
                    "auth_change": false,
                    "fee": "100",
                    "fee_level": "2560",
                    "max_spend_drops": "100",
                    "seq": 6
                },
                ... (trimmed for length) ...
                {
                    "LastLedgerSequence": 10,
                    "auth_change": true,
                    "fee": "100",
                    "fee_level": "2560",
                    "max_spend_drops": "100",
                    "seq": 10
                }
            ],
            "txn_count": 5
        },
        "status": "success",
        "validated": false
    }
}

Accountのフィールドについては、アカウントをご覧ください。

次のページ: ソフトウェアエコシステム