Bitcoind
使用 bitcoind 檢測未經確認的雙重支出
我想獲得有關記憶體池中有多少百分比的未確認交易嘗試雙花並具有什麼價值的統計數據。為此,我希望在未確認的 tx 到達與記憶體池中現有的 tx 衝突時收到通知。我知道 bitcoind 將接受它看到的第一筆交易並拒絕下一筆交易,我可以配置/修補 bitcoind 以向我發送有關這種雙重支出嘗試的通知嗎?
PS:我知道直接在下一個區塊中包含新的 tx 而不會出現在未確認的 tx 列表中可能會發生雙花。我認為這需要直接訪問礦池並有足夠的保證來開採該區塊。對於我的實驗,我可以忽略這種情況,因為它的機率很低。
bitcoind
有一個名為mempoolrej
. 您可以通過添加啟用此功能debug=mempoolrej
到你的 bitcoin.conf 文件。
這個調試選項告訴
bitcoind
列印出有關它從記憶體池中拒絕的事務的資訊,包括原因。因此,您可以啟用此選項,並尾並 grepdebug.log
文件以查找字元串was not accepted
此字元串僅在
mempoolrej
格式為的消息中找到<txid> from peer=<peer id> was not accepted: <reason>
reason
您正在尋找的是txn-mempool-conflict
. 所以你可以對整個字元串進行tail和grep:was not accepted: txn-mempool-conflict
debug.log
然後使用一些 bash-fu,您可以在文件中找到此字元串時通知您。