Transactions
監控多個比特幣地址
我想知道我是否可以監控我個人無法訪問的多個地址上的新交易,並查看這些交易是否由網路使用 API 進行驗證,如果可能的話,使用與 REST API 相比非常有趣的 WebSocket .
我已經看到滿足我要求的 blockcypher 和 blockchain.com 的 API 提供,但我想知道是否有更簡單的。
感謝您未來的回答
感謝您的回答。
首先,我想道歉,因為我說錯了,我在 Web 應用程序上管理一個交換平台。有一個 API 可以生成並驗證交易,但它已關閉,因此無法使用,交易都是手動傳遞的。
一個受信任的人負責生成公共地址,但我無權訪問私鑰。
我認為使用比特幣協議上的節點來跟踪使用 RPC API 的交易可能是一個好主意,因為與使用第三方不同,我對協議的使用沒有限制。
現在由我來決定所涉及的維護成本,因為出於性能原因,最好使用遠端伺服器並完全同步到網路,因為區塊鏈的規模不斷增加。
端點
wss://mempool.space/api/v1/ws
描述:
預設推送:{動作:‘想要’,數據:
$$ ‘blocks’, … $$} 來表達你想要推送的內容。可用:blocks、mempool-blocks、live-2h-chart 和 stats。 推送地址相關的交易:
{ ’track-address’: ‘3PbJ…bF9B’ } 接收包含該地址的所有新交易作為輸入或輸出。返回一個交易數組。新記憶體池交易的地址交易,以及新區塊確認交易的區塊交易。
Common JS
程式碼範例 GitHub 儲存庫
<!DOCTYPE html> <html> <head> <script src="https://mempool.space/mempool.js"></script> <script> const init = async () => { const { bitcoin: { websocket } } = mempoolJS({ hostname: 'mempool.space' }); const ws = websocket.initClient({ options: ['blocks', 'stats', 'mempool-blocks', 'live-2h-chart'], }); ws.addEventListener('message', function incoming({data}) { const res = JSON.parse(data.toString()); if (res.block) { document.getElementById("result-blocks").textContent = JSON.stringify(res.block, undefined, 2); } if (res.mempoolInfo) { document.getElementById("result-mempool-info").textContent = JSON.stringify(res.mempoolInfo, undefined, 2); } if (res.transactions) { document.getElementById("result-transactions").textContent = JSON.stringify(res.transactions, undefined, 2); } if (res["mempool-blocks"]) { document.getElementById("result-mempool-blocks").textContent = JSON.stringify(res["mempool-blocks"], undefined, 2); } }); }; init(); </script> </head> <body> <h2>Blocks</h2><pre id="result-blocks">Waiting for data</pre><br> <h2>Mempool Info</h2><pre id="result-mempool-info">Waiting for data</pre><br> <h2>Transactions</h2><pre id="result-transactions">Waiting for data</pre><br> <h2>Mempool Blocks</h2><pre id="result-mempool-blocks">Waiting for data</pre><br> </body> </html>
或者 ES 模組
安裝包 GitHub RepoNPM 包
# npm npm install @mempool/mempool.js --save # yarn yarn add @mempool/mempool.js
程式碼範例
import mempoolJS from "@mempool/mempool.js"; const init = async () => { const { bitcoin: { websocket } } = mempoolJS({ hostname: 'mempool.space' }); const ws = websocket.initServer({ options: ["blocks", "stats", "mempool-blocks", "live-2h-chart"], }); ws.on("message", function incoming(data) { const res = JSON.parse(data.toString()); if (res.block) { console.log(res.block); } if (res.mempoolInfo) { console.log(res.mempoolInfo); } if (res.transactions) { console.log(res.transactions); } if (res["mempool-blocks"]) { console.log(res["mempool-blocks"]); } }); }; init();