Protocol

如何查詢像 RPC 這樣的遠端比特幣節點?

  • June 28, 2017

我知道如何使用 bitcoind 命令以程式方式查詢儲存在我機器上的區塊鏈。是否可以在公共節點上做同樣的事情?

例如,是否可以通過網際網路將“getblockcount”發送到bitcoinstats.com,硬編碼在比特幣源中,或者發送到inductivesoul.us,在bitcoin.it wiki 中找到?這樣做的步驟是什麼?

編輯

快速的答案是:

  • 不,您不能使用 bitcoind 命令。
  • 您必須使用 TCP 與遠端節點通信。
  • 您必須使用協議規範中的一組不同的命令。

很好的問題,歡迎來到社區!

簡答

可能是。

長答案

是的,您可以向比特幣網路上的其他節點發送查詢。請注意,這些不是 RPC 呼叫,而是比特幣的底層通信協議。這意味著所有的呼叫都會有所不同,其中一些將不存在。

例子:

  • getblockcount在底層協議中沒有等價物。相反,您可以連接到一個節點並監聽它的version消息,然後查看 start_height 欄位。
  • 而不是getrawmempool,您使用mempool.
  • 而不是getpeerinfo,您使用getaddr.
  • 沒有等價於stop,因為那將是愚蠢的。

此外,如果您嘗試查詢網路上的其他節點,這些庫之一將非常有幫助:

  • Python:<http://protocoin.readthedocs.org/en/v0.1/index.html>

(使用protocoin.clients.BitcoinClient)

://bitcoinj.github.io/(使用 Peer.sendMessge)

(如果您不使用其中一種語言,請發表評論。)

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