Transactions

監控多個比特幣地址

  • June 12, 2022

我想知道我是否可以監控我個人無法訪問的多個地址上的新交易,並查看這些交易是否由網路使用 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();

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