Blockchain

區塊鏈 API 中的交易類型和金額

  • November 3, 2016

我正在為自己建構一個警報程序,如果我的地址有(5)個正在進行的交易,我想通過電子郵件向自己發送警報。

我選擇了區塊鏈 API,因為我找不到更好的方法。

我怎樣才能知道這筆交易是傳入交易還是傳出交易?下面的這個 JSON 是我通過請求返回的幾個交易中的一項:https ://blockchain.info/de/address/1MLnfxu3AicGcpBS4MbevCCQP8WSftkXj8?format=json

另外,我在哪裡可以找到在這一筆交易中轉移了多少 BTC。

僅供參考,我用 Python 編寫了一個腳本。我可以解析所有的“價值”值並將它們加在一起。我還可以檢查我提供的地址是在“輸入”還是在“輸出”中。

但是沒有更好的方法嗎?還是有一些更好的 API 來解決這個問題?

{
  "ver":1,
  "inputs":[
     {
        "sequence":4294967295,
        "prev_out":{
           "spent":true,
           "tx_index":182562706,
           "type":0,
           "addr":"3NSHD5zB9wCMfoVXsuS9v8d6PcnKxDFKeg",
           "value":40000,
           "n":1,
           "script":"a914e3912957c315153f65bfef4322af64188ba7cdc487"
        },
        "script":"00473044022039d16bf80101ce331e93f8dd8d24e8770e3d7a8e367f2e54a86d2f4153ea5d99022048bff03a37f39180ac3b18d8619f6d450a4b3ec9ebf4bf24f598b16348187e550147304402203df2d77fefe694a5b58a1c77af3d73c75eab5bbe36fec3c1c7364fc7b9f4b367022048a80b164ada45a4b734586e6e6f2f3f624415287a346ef84bc3c6b63e67808f0147522102265981c8d731915bee94597c8f7fce92819ab37245b9c6b1f2f011015161adf02103c511b8fe3a5e60ad16bb14b0865f8a3f192ddb386c4f8d23f72edd24764e0e2352ae"
     },
     {
        "sequence":4294967295,
        "prev_out":{
           "spent":true,
           "tx_index":183105717,
           "type":0,
           "addr":"3NSHD5zB9wCMfoVXsuS9v8d6PcnKxDFKeg",
           "value":14980000,
           "n":0,
           "script":"a914e3912957c315153f65bfef4322af64188ba7cdc487"
        },
        "script":"0047304402202ec3a4c1bf1aa386f8db24e2ec0434f5224890ea9c510b067f03a39c1d69325a0220154ffb2d6f54875faa0ee2de10a78ace2fff30595a88732937e2827bddeab1ea01483045022100e8ee555d0cdf09a7803fbffdca4da3498393748f1ff52f10abfbfe6920bc118702202f7ffc9ff6289cfc17e26004298d6ce4379451fd3cb29399d7adf30e704dc10e0147522102265981c8d731915bee94597c8f7fce92819ab37245b9c6b1f2f011015161adf02103c511b8fe3a5e60ad16bb14b0865f8a3f192ddb386c4f8d23f72edd24764e0e2352ae"
     }
  ],
  "block_height":436110,
  "relayed_by":"176.126.247.116",
  "out":[
     {
        "spent":true,
        "tx_index":185011579,
        "type":0,
        "addr":"1PHdd9DpdHtxNeVeqkEbBu1pBoDcTws6kx",
        "value":5066000,
        "n":0,
        "script":"76a914f477fe7c4a0fce5dbc7c174ba2ab5d9ab27fe91d88ac"
     },
     {
        "spent":false,
        "tx_index":185011579,
        "type":0,
        "addr":"1MLnfxu3AicGcpBS4MbevCCQP8WSftkXj8",
        "value":9834000,
        "n":1,
        "script":"76a914df208b39050b2a3f1166216efda0855cc4df8aae88ac"
     },
     {
        "spent":false,
        "tx_index":185011579,
        "type":0,
        "addr":"3NSHD5zB9wCMfoVXsuS9v8d6PcnKxDFKeg",
        "value":60000,
        "n":2,
        "script":"a914e3912957c315153f65bfef4322af64188ba7cdc487"
     }
  ],
  "lock_time":0,
  "result":99980000,
  "size":627,
  "time":1477558874,
  "tx_index":185011579,
  "vin_sz":2,
  "hash":"1806396e0a7fa220d5626dae7ee4a5caa3b35d333f1885d25a440d256701bba4",
  "vout_sz":3
}

有一個更好的 API,它是比特幣核心 API。您可以在那裡獲得所需的所有數據。Blockchain.info 可能還必須使用核心 API(或者他們必須製作解析器來解析執行完整節點的機器上的區塊鏈的二進制數據)。使用核心 API 和為各種程式語言提供的相應綁定,您可以訪問您需要的區塊鏈中的所有數據。

上面似乎沒有 txid 欄位,但有一個 tx_index 引用該十六進制。您可以使用核心 api 獲取該交易(輸入和輸出)中的 BTC 數量getrawtransaction(要訪問非錢包交易,您需要在 conf 文件中添加行 txindex=1 並重新啟動伺服器後重建您的區塊鏈-reindex 選項)

Blockonomics api有 history api 呼叫,它返回多個比特幣地址的交易歷史,考慮到它們是同一個錢包的一部分。在輸入中,您可以提供所有五個地址並解析 JSON 輸出的值。如果是傳出交易;value 將為負數,否則 value 將為正數。

引用自:https://bitcoin.stackexchange.com/questions/49371