XRP元帳の上の集約されたXRP - USD価格情報.


どのようにXUMMに信頼性の高い価格情報(1 xRP =??USD)を取得し、同様の情報を他の開発者やプラットフォームに提供するには?
作業中one of our 大部分requested 機能add xummに、我々は我々のオプションを経験しました.
  • 単にXUMM(モバイルアプリ)を1つの交換で価格を取得しましょう.悪いアイデアは:交換APIのダウンしている/古いデータを今すぐに報告し、レート制限が適用されます.
  • バックエンドを提供し、キャッシュを追加、すべての場所から価格を奪って、xummユーザーにそれを提供します.XUMMユーザーのためのニース、しかし、他のXRPLアプリ&開発者についてはどうですか?誰でも、コードを走らせなければなりません.
  • と同じですが、XRPLで特別な(非ネイティブのXRPL)コマンドでデータを提供します.WebSocketとRPC接続用.悪いアイデアは、プロジェクトや開発者のトランザクション情報の他のXRPLノードを使用する自由を奪うように.
  • " xrpl oracle "を入力します


    我々はデータを永続化するためにXRPの元帳(信頼性の高い、高速の支払いのためのブロックチェーン技術)を使用するのが好きではないが、我々はXPRの元帳は本当に正確に行うことを認めなければならない.我々はリアルタイム価格情報を必要としない(1分あたり1回更新されます)私たちは、このケースでは-それは、取得し、集計し、フィルタのデータを意味し、その後、信頼性の限界を使用してXRP元帳で公開することを決定した.
    我々が信頼線で行った理由は、それが『元帳オブジェクト』であるということです:1つの呼び出しで常にそれをフェッチすることができます、XRP元帳ノード1で利用可能な歴史が関係していなくて.使用されるソースデータについては(最新の価格を確認するために)私たちはフィルタリングされた為替価格データをTrustSet トランザクションは、価格を更新するために使用.

    元帳価格について


    毎分、我々のコードは、最新のXRPPod価格をLimitAmount OracleアカウントからのtrustlineのrXUMMaPpZqPutoRszR29jtC8amWq3APkx .
    最新の価格(ランダムモーメント、古いデータ)を設定するのに使用されるサンプルトランザクションcan be viewed here .
    最新のXRPPU価格を得るためには、XRP元帳ノードに接続したときにこのコマンドを発行することができます.
    {
      "command": "account_lines",
      "account": "rXUMMaPpZqPutoRszR29jtC8amWq3APkx"
    }
    

    試してみましょう


    const websocket = require (' ws ')
    アカウントを作成する
    新しいWebSocketwss://xrpl.ws'
    WS"open ', ()>>について
    WSsend ( JSON . Stringify (' command : ' AccounttLine ' ,アカウント))
    ))>
    WS( message , data =>)
    コンセントライン.データをパースします.結果.ライン
    コンソール.log (' xrpod = '+ line . filter ( L => L .通貨= == ' USD ')[ 0 ].制限
    WSclose ()
    ))>
    XRPL価格情報を取得する
    JSON RPCを使用してXRP Ledgerノードと接続する場合、これは同じ情報を取得するためのHTTP POST本体です.
    {
      "method": "account_lines",
      "params": [ { "account": "rXUMMaPpZqPutoRszR29jtC8amWq3APkx" } ]
    }
    

    試してみましょう


    const fetch = require('node-fetch')
    アカウントを作成する
    ;( async ()>> {
    コールを待つ.https://xrpl.ws'
    方法: ' post '
    ボディ.stringify ()を使用する
    方法:「会計線」.
    params :[{ account }]
    ))>
    ))>
    const line =( wait . json ()).結果.ライン
    コンソール.log (' xrpod = '+ line . filter ( L => L .通貨= == ' USD ')[ 0 ].制限
    ))()).

    元帳源泉価格データについて


    毎分、我々が送るときTrustSet 更新するトランザクションTrustLimit (最新の価格を含むためには、CSV形式でデータソースごとの価格を含むトランザクションにメモを入れます.

    この情報は簡単に我々の' oracle 'アカウントから最新のトランザクションを取得することによって取得することができますaccount_tx そして、HEXからUTF - 8までメモ情報を解読してください.
    あなたが開発者でもsubscribe to live price updates を使用してsubscribe コマンドは、当社のアカウントを購読する.毎分、2番目の我々は、最新の価格で新しいトランザクションを提出すると、アプリケーションが既存のWebSocket接続を介して通知されます.元帳だけで、ネイティブXRPの元帳機能を使用します.

    データの取得


    最新のXrPod価格を得るために、我々はExchange APIを使用して価格情報を取得します.
  • 調合
  • ビフィックス
  • ビットスタンプ
  • クリプトウォッチ
  • 産総研
  • クラケン
  • 我々はすべての交換を4回、3秒間隔で呼び出します.行方不明の結果をフィルタリングし、中央値と標準偏差を計算します.少なくとも一つの標準偏差によるすべての結果は無視されます、そして、結果として生じる価格情報の中央値は新しいTrustSet トランザクション.

    ソース


    価格情報を取得するためのソースコードはここにあります.https://github.com/XRPL-Labs/XRP-Price-Aggregator
    価格情報を保持するソースコードはここで見つかります.https://github.com/XRPL-Labs/XRPL-Persist-Price-Oracle

    よくある質問


    それで、誰でも、今、Lrpgerの上でXrPond率を得ることができますか?


    はい.データは最大1分古い、チェックして見つけることができますaccount_lines ( USD TrustLine )アカウントのrXUMMaPpZqPutoRszR29jtC8amWq3APkx

    これはあなたのために高価ですか?このサービスを実行して、毎回TrustLineを更新するために、トランザクション料を払うこと?


    いいえ.ではなく.このサービスを実行するVPSは、月2.50ドルです、そして、料金はそうです:60 * 24 * 30 * 10/1000000 = 0.432 XRPは、月につきます.( minutes per hour * hours per day * days per month * drops fee per tx / drops per XRP ). 我々は生きます.そして、私たちがこの情報に依存しているとしても、このサービスを実行するためのコストが上がるとしても、私達は私達のプロダクト(例えばxumm pro)の商業化の後、将来的にそれを作る.
    写真でOmar Flores on Unsplash