bitcoin core – will bitcoind accept, hold, and rebroadcast a 1 sat/vbyte raw transaction via the RPC for a local wallet that won’t fit in the mempool when submitted?

[ad_1]

The questions What if the mempool exceeds 300 MB? , Does my node rebroadcast its mempool transactions on startup? , Why rebroadcasting transactions in the Bitcoin Core? , and rebroadcast unconfirmed transaction suggest that bitcoin core will periodically re-broadcast a transaction from a local wallet that gets evicted from the mempool.

I’m wondering what bitcoind does if I submit a raw transaction with a minimum fee that is 1 sat/vbyte for a local watching only wallet when the mempool is full and the mempoolminfee is higher than 1 sat/vbyte? Does bitcoin core have a “special mempool” for transactions that it knows is part of its own wallet? Or, will bitcoin core reject that raw transaction? My mempool is not currently full, so I can’t test this scenario. The scenario I’m asking about is different from the questions above because in the above questions, I believe the transaction fit in the mempool and was evicted, but I’m asking about if it never would have fit in the first place.

The context of this question is related to Sparrow wallet. When I use Sparrow wallet with an electrum server, the electrum server may reject transactions that won’t fit in the mempool. This is very annoying because you can’t submit low fee transactions when the mempool is full of high fee transactions. Electrum servers behave this way because they don’t have any context of a personal wallet, so they don’t want to accept a bunch of low fee transactions from everyone.

Sparrow wallet also has a mode where it will work with a local bitcoind instance using the RPC. In that case, Sparrow sets up a watching only descriptor wallet in bitcoind and lets bitcoind track the wallet for it. I’m wondering if since bitcoind is specifically tracking the Sparrow wallet, will it accept very low fee transactions, hold them, and periodically try to add them to the mempool and rebroadcast them when the mempool finally sets the mempoolminfee to a low enough value?

[ad_2]

Source link

Leave a Comment