Protocol
如何查詢像 RPC 這樣的遠端比特幣節點?
我知道如何使用 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)
- Java:https
://bitcoinj.github.io/(使用 Peer.sendMessge)
(如果您不使用其中一種語言,請發表評論。)