Mempool

測試 mempool 是否重新嘗試傳遞本地送出的交易

  • July 30, 2021

測試:https ://github.com/bitcoin/bitcoin/blob/master/test/functional/mempool_unbroadcast.py

我正在通過以下步驟手動嘗試:

  1. 執行兩個節點(regtest):

節點1:

bitcoind -port=18333 -rpcport=18332 -datadir="/home/prayank/node1" -conf="/home/prayank/node1/bitcoin.conf"

節點2:

bitcoind -port=18444 -rpcport=18443 -datadir="/home/prayank/node2" -conf="/home/prayank/node2/bitcoin.conf"
  1. bitcoin.conf:

節點1:

regtest=1
server=1
listen=1

debug=mempool

regtest.rpcport=18332
rpcuser=user3
rpcpassword=password3

fallbackfee=0.0001

regtest.addnode=127.0.0.1:18444

節點2:

regtest=1
server=1
listen=1

debug=mempool

regtest.rpcport=18443
rpcuser=user3
rpcpassword=password3

fallbackfee=0.0001
  1. 一切看起來都很好,直到 Line68

如果不執行此 python 程式碼,我將如何做到這一點?

       # fast forward into the future & ensure that the second node has the txns
       node.mockscheduler(MAX_INITIAL_BROADCAST_DELAY)
       self.sync_mempools(timeout=30)

mockscheduler是一個隱藏的 RPC。這意味著在使用命令時它不會顯示help,但您仍然可以像往常一樣呼叫它來使用它。例如,在測試中做與這一行相同的事情,你會做

bitcoin-cli -regtest mockscheduler 900

sync_mempools()是一個只等待getrawmempool多個節點的結果匹配的函式。您可以手動執行此操作。

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