11

Replace-by-fee means transactions spending the same coin to the same addresses are not considered double-spends by the network and are still relayed, as long as they pay a higher fee than the preceding transaction. Example: Alice pays Bob with a coin worth 1 BTC, sending 0.5 BTC to Bob, 0.49995 BTC to herself as change, and 0.00005 BTC to fees. Alice sees ...


10

If worried about the original closing transaction having too high of fees: The signed closing transaction that you're worried about (with too high of fees) has not yet been broadcast to the network, so no harm no foul (yet). If the two parties are cooperative, they can just agree to sign a new transaction with lower fees and broadcast that to close out ...


9

Transaction pinning happens when: I broadcast a transaction that signals opt-in RBF the transaction does not get confirmed because the feerate is too low someone else broadcasts a new (child) transaction spending one of the outputs of my transaction I now can't bump the fee on the transaction unless I include a fee greater than that of the combined original ...


6

Replace-by-fee (RBF) transactions all have a sequence number that is below MAX - 1. If the payment a merchant receives comes from a transaction that has such a sequence number, the merchant can either wait for the transaction to be included in a block, or ignore the payment altogether. Ignoring the payment is fraught with other complications, however, ...


6

In addition to Mark S.'s answer, since Bitcoin Core 0.12 there actually is an expiration in the mempool, which evicts unconfirmed transactions after N hours, where N is set by -mempoolexpiry, and defaults to 72 hours. This is not a reliable feature, as wallets (and really, anyone) can rebroadcast the transaction, but helps keeping the mempool fresh.


6

All three proposals attempt to solve the same problem, the issue of stuck transactions. Due to the behavior of Bitcoin Core with respect to double spends (they are silently dropped, and not relayed), it is impossible to spend outputs that you've used in an existing transaction. Typically this is a good thing, but there are a few cases where a user may have ...


5

From BIP-125 Opt-in Full Replace-by-Fee Signaling: This policy specifies two ways a transaction can signal that it is replaceable. Explicit signaling: A transaction is considered to have opted in to allowing replacement of itself if any of its inputs have an nSequence number less than (0xffffffff - 1). Inherited signaling: Transactions ...


5

Right now, for the most part, Bitcoin miners follow a First-Seen-Safe rule: If 2 conflicting transactions show up in the mempool, the miner sticks with the one it saw first. Replace-By-Fee would enable miners to remove transactions from the mempool based on which transaction pays the higher fee. This is problematic because it enables fraud. If I pay a ...


4

No wallet currently supports creating replaceable transactions conveniently. To work around this, you can manually create raw transactions from scratch. The following are suggested instructions for use with bitcoin-cli. To create a replaceable transaction. You can use "createrawtransaction" to manually add inputs and mark the "nsequence" field to a value ...


4

According to bitcoin core version 0.12.0 release notes: It is now possible to replace transactions in the transaction memory pool of Bitcoin Core 0.12 nodes. Transaction replacement can be disabled with a new command line option, -mempoolreplacement=0. Note that the wallet in Bitcoin Core 0.12 does not yet have support for creating transactions ...


4

TL;DR: It seems that Bitcoin Wallet for Android incorrectly labels nLockTime transactions as OptInRBF due to a bug in bitcoinj. The issue has been reported. You don't need to do anything. Apparently, Bitcoin Wallet for Android recognized your transaction as OptInRBF (as pointed out by the code you found). The warning you are seeing was only added to the ...


4

Skimming the source code, I found the following reasons for a transaction to be removed from the mempool: It was included in a block A conflicting transaction (i.e. one which spent at least one of the same inputs) was included in a block Expired: it has been in the mempool longer than the time specified by -mempoolexpiry (default 336 hours) The memory pool ...


4

Disrespecting it would require them modifying their software, which has ongoing administrative costs. Otherwise, there any incentive within the system to behave otherwise. Willfully not taking income maximizing transactions isn't an incentive compatible behavior.


3

If you're creating a version 2 transaction with the disable flag not set, then by definition the whole nSequence value will be less than 0xFFFFFFFE (because it will be at most 0x7FFFFFFF). This implies that a transaction with an active relative locktime will always be replacable according to BIP125. This is intentional. Nonreplacable transactions attempt ...


3

RBF Tools by Peter Todd This page contains ..tools to test out replace-by-fee functionality. You'll need a local node with the replace-by-fee patch. E.g. To double spend ./double-spend.py <address> <amount> To just increase fee ./bump-fee.py <txid> etc.


3

The newest version of bitcoin core 0.12 introduced a feature called replace by fee. This can be used to issue a transaction with a higher fee spending coins that have not yet been picked up in a block. This can be used to send funds in a stuck transaction to a new address and the hope is that by including a fee this will get picked up by the miners faster ...


3

Answer reposted from: How does first seen replace by fee work? Right now, for the most part, Bitcoin miners follow a First-Seen-Safe rule: If 2 conflicting transactions show up in the mempool, the miner sticks with the one it saw first. Replace-By-Fee would enable miners to remove transactions from the mempool based on which transaction pays the higher fee....


3

I faced a similar issue and found this reddit post quite helpful. I'm not a bitcoin expert but I will write an answer describing what I think is happening, since there are no other answers yet. When you sent the first low-fee tx, it got propagated fine to the network but remained unconfirmed. When you opened the Electrum wallet a few hours later, this ...


3

As I answered in another question, Electrum Bitcoin Wallet has the feature. I've confirmed that mac client worked. It seems that Android app has the same feature. https://electrum.org/#download Which clients offer a way to replace unconfirmed transactions?


2

What restrictions are placed on RBF in the deployed "opt-in RBF" variant? Opt-in Replace-by-Fee defines a way to mark transactions as replaceable until they are confirmed in a block. This is done by setting the sequence number smaller than MAX-1. (MAX corresponds to standard final transactions and MAX-1 marks locktimed transactions.) To replace the ...


2

As far as I know other than bitcoin core API's (as renlord suggested) the only wallet that conveniently supports the functionality is GreenAddress


2

You can only increase the fee with BIP125 (opt in replace by fee) if your original transaction did already signal that it can be replaced. If you made your transaction with Bitcoin Core 0.12, your transaction doesn't signal replicability. Since Bitcoin Core 0.14 there is a global option called -walletrbf that makes sure, all your transactions do signal ...


2

Maybe this answer came a bit too late, but lets give it a try. Let me start by citing A. Narayanan et alter Bitcoin and Cryptocurrency Technologies book: Since 2013, there has been interest in changing the default policy to replace-by-fee (RBF) whereby nodes will replace a pending transaction in their pool if they hear a conflicting transaction which ...


2

here is some reference: https://bitcoin.org/en/developer-guide#locktime-and-sequence-number Locktime itself is an unsigned 4-byte integer which can be parsed two ways: If less than 500 million, locktime is parsed as a block height. The transaction can be added to any block which has this height or higher... at least one input must have a sequence number ...


2

The answer is getmempoolentry. https://chainquery.com/bitcoin-api/help/getmempoolentry


2

No. A zero-confirmation transaction is not useful for anything. Satoshi used PoW specifically, because he was trying to answer how to trust a transaction(double-spending problem). Secondly, transaction replacement was introduced by Satoshi in the first release of the Bitcoin software, but was later removed due to denial-of-service problems.


2

If your transaction is from Bitcoin Core's wallet, you can use the bumpfee command. It should do the same thing that the GUI does in order to create a replacement transaction with a higher fee.


2

The fee-market refers to the tension between 1) users who want to have their transactions confirmed as quickly as possible and ... 2) miners, who can only mined blocks with a fixed confirmation capacity (1mb, 4mWeight). Naturally, it is in the interest of a miner to construct a block to mine from the mempool which results in the maximum block reward for ...


2

I could broadcast a second transaction that has the same inputs but a higher fee, without marking the original transaction as replaceable. Default node behaviour is to accept the first-seen transaction into the node's mempool. So your second transaction that spends the same inputs would likely be dropped by most nodes, and thus it would be less reliably ...


1

RBF is optional and it can be seen if a particular transaction has RBF enabled or not. For transactions without RBF enabled, they are as 0-conf secure as they were previously.


Only top voted, non community-wiki answers of a minimum length are eligible