break block mining into discrete chunks to avoid hitting timeout

This commit is contained in:
conduition
2024-03-21 18:31:25 +00:00
parent b81fbf6cd8
commit 073b0b6841

View File

@@ -155,7 +155,16 @@ fn mine_blocks(rpc: &BitcoinClient, n_blocks: u16) -> Result<(), bitcoincore_rpc
.get_new_address(None, Some(bitcoincore_rpc::json::AddressType::Bech32m))?
.require_network(bitcoin::Network::Regtest)
.unwrap();
rpc.generate_to_address(n_blocks as u64, &address)?;
// Break into chunks of 30 blocks each to avoid hitting the 15 second default
// timeout which bitcoincore_rpc won't let us configure.
let mut remaining = n_blocks;
while remaining != 0 {
let chunk = remaining.min(30);
rpc.generate_to_address(chunk as u64, &address)?;
remaining -= chunk;
}
Ok(())
}