
Original author: pepper Huajiao (X: @off_thetarget)
Editors note: On November 7, Binance announced that it would list Ordinals (ORDI), rekindling the enthusiasm for Ordinals. The Bitcoin ecosystem has once again attracted community attention, and on-chain handling fees have continued to soar. As more and more players pour into the Bitcoin ecosystem, on-chain transaction congestion has also become a potential problem. X KOL pepper Huajiao (X: @off_thetarget) published a detailed explanation of the transaction congestion problem on the BTC chain and related solutions. Odaily compiled it as follows:
The BTC ecosystem is booming again, and on-chain handling fees are soaring. With the addition of a large number of ETH partners, blocking of transactions on the BTC chain has always been a problem.
What is a blocked transaction? How are they caused?
A stuck transaction is a transaction that has not been confirmed for a period of time. The stalled transaction is usually caused by low transaction fees. However, other things can cause a transaction to stall, such as unconfirmed transaction spends, the presence of dust output in a transaction, or a double spend on another transaction.
If a transaction has a double spend and the double spend confirms, then the transaction will be stuck forever because it can never be confirmed.
What can I do to confirm my stuck transaction?
There are several options for confirming stuck transactions:
For the receiver and sender of the transaction:
✦Wait for the transaction to be confirmed ✦Wait for the network to “forget” the transaction ✦Ask the miner to confirm it for you
For the sender of the transaction:
✦Try to perform a fee replacement double-spending transaction✦If there is change output, you can try the Child-Pays-For-Parent transaction
For the recipient of the transaction:
✦Try the Child Pays Parent deal
Waiting for confirmation
If you are unable to execute any other options and are afraid to do so, you can simply wait and hope that the transaction is eventually confirmed.
To ensure that the network is constantly reminded of transactions, transactions can be replayed periodically. Most wallets rebroadcast automatically, so just open the wallet to rebroadcast.
Waiting for the network to forget the transaction
If a transaction remains unconfirmed for a long time, and no one rebroadcasts the transaction, it may eventually be forgotten by the majority of nodes on the Bitcoin network.
This happens due to node restarts, mempool expiration, or mempool eviction (because of an increase in the minimum relay fee). This process usually takes several days (usually 3 days). Once a transaction is forgotten, you may not see it in your wallet, and you may not see the transaction in most block explorers. Once a transaction is forgotten, simply send the Bitcoin again, but at a higher transaction fee.
Please note that some wallets will constantly rebroadcast transactions while the wallet is open, so transactions must be removed from the wallet using the instructions in the RBF section, or the wallet should be closed and kept closed for a few days, as detailed in the RBF section.
Ask miners for help
Mining pools and miners provide services that allow transactions to be prioritized in their mempools so that they are faster selected for inclusion in blocks.
For example, you can try usinghttps://viabtc.com/tools/txaccelerator/…to “speed up” transactions.
(I have not used ViaBTC’s acceleration, it is only listed for reference)
Also note that if you attempt a fee replacement transaction, both the original transaction and the RBF transaction will be considered a double spend, and miners may not help any transactions marked as a double spend.
Attempt a fee replacement (RBF) double spend transaction
What is RBF trading
A fee replacement transaction is a transaction that is nearly identical to your stuck transaction but pays a higher transaction fee. Since the original transaction most likely did not use opt-in RBF, the RBF transaction we will create will be considered a double spend and flagged as a double spend. This transaction uses Full-RBF, so it may still take longer to confirm since it is technically a double spend.
Differences in RBF transaction types
There are 3 different types of Replace-By-Fee transactions, First-Seen-Safe(FSS) RBF, Full RBF and Opt-in RBF.
FSS RBF requires that the RBF transaction contains the same outputs and consumes the same inputs as the transaction it replaces.
Full RBF means that the transaction is simply a double spend of another transaction, but pays higher transaction fees than the transaction it replaces
Opt in RBF means that RBF transactions can only replace transactions that have opted in to allow themselves to be replaced.
Can refer tohttps://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki…
How to trade full RBF
Carrying out a full RBF transaction entirely depends on the wallet you are using. Some wallets support the advanced features required for full RBF transactions, while others do not.
Generally speaking, the process is to remove the unconfirmed transaction from the wallet and resend the Bitcoins, but with higher transaction fees.
To place a Full RBF trade, the trade should contain the recommended rate when creating the trade
Bitcoin Core RBF Tutorial
Just go into the transaction list, right-click on the stuck transaction and select the Abandon Transaction option.
If the option is grayed out, you must go to the Bitcoin Core datadir and delete the mempool.dat file.
Then restart Bitcoin Core with the -walletbroadcast= 0 option and you should be able to use Abandon Transactions.
If none of the above works, start Bitcoin Core with the -zapwallettxes option to clear the wallet of all unconfirmed transactions.
Once the transaction is abandoned or cleared from the wallet, simply go to the Send tab and send the bitcoins again, but make sure to include enough transaction fees.
Wallets that do not support RBF
Most wallets do not support RGF. For details, please refer to the doc file of each wallet.
If you are not sure whether the wallet can do CPFP or RBF, please refer to
If you are the one initiating the Bitcoin transaction and have a change address that receives enough money to cover the parent and child transaction fees, you can also proceed"Sub-transaction payment"(CPFP) transaction. If there is none or there is not enough money, only the payee can do CPFP.
Electrum wallet supports RBF, and you can transfer transactions to other wallets that support RBF. When creating a transaction, you can choose to enable RBF -> in the History tab -> the transaction will be marked as replaceable. When you right-click on a replaceable transaction, you can increase the fee (I cant remember the exact icon and description because I only tried it once).
Since you are implementing RBF with unconfirmed inputs, almost any wallet that can export private keys/extended private keys (xprv) should be able to perform RBF. This includeshttp://Blockchain.info, Multibit, Bitcoin wallet on Android and other wallets. Of course, this process becomes cumbersome because you have to first obtain the private key of the address used in the pending transaction, import it into Bitcoin Core, and then generate the original transaction, sign it, and broadcast it.
Regarding waiting for the network to forget the transaction, maybe you should add a warning that some wallets (like Bitcoin Core) will continue to broadcast transactions unless you abandon it or clear the wallet transaction.