Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Qt] attribute replaceable (RBF) transactions #7817

Closed
wants to merge 1 commit into from

Conversation

jonasschnelli
Copy link
Contributor

This attributes transactiontable entries (one or more per wtx) if the transactions signals opt-in-RBF.
A light orange color together with a new icon (for "incoming" and "outgoing" transactions).

bildschirmfoto 2016-04-05 um 16 05 34

@@ -7,6 +7,7 @@
#include "base58.h"
#include "consensus/consensus.h"
#include "main.h"
#include "policy/rbf.h"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need this here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. This is not required. Fixed.

@maflcko
Copy link
Member

maflcko commented Apr 5, 2016

Concept ACK

Note: Please don't retrigger travis, as I reported the issue to them.

@@ -39,7 +39,7 @@ QString TransactionDesc::FormatTxStatus(const CWalletTx& wtx)
else if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0)
return tr("%1/offline").arg(nDepth);
else if (nDepth == 0)
return tr("0/unconfirmed, %1").arg((wtx.InMempool() ? tr("in memory pool") : tr("not in memory pool"))) + (wtx.isAbandoned() ? ", "+tr("abandoned") : "");
return tr("0/unconfirmed, %1").arg((wtx.InMempool() ? tr("in memory pool") : tr("not in memory pool"))) + (wtx.signalsOptInRBF() ? ", "+tr("replaceable") : "") + (wtx.isAbandoned() ? ", "+tr("abandoned") : "");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will present transactions signalling opt-in RBF as "replaceable". Users will ask, what it means.

Edit: Greg asked the same question in other PR. We should probably clarify this. What about this as a topic for Thu meeting?

@paveljanik
Copy link
Contributor

Concept ACK

@btcdrak
Copy link
Contributor

btcdrak commented May 17, 2016

Travis needs a restart now.

@petertodd
Copy link
Contributor

Concept ACK for outgoing.

Concept NACK for incoming - I'm worried about giving a false sense of security given the multitude of other ways of doublespending.

@luke-jr
Copy link
Member

luke-jr commented May 17, 2016

Mostly agreed with @petertodd

Probably the new icon/colour should be set for all unconfirmed transactions signed by a third party, whether incoming or outgoing.

@paveljanik
Copy link
Contributor

paveljanik commented May 18, 2016

@petertodd You mean that marking "incoming" tx signalling RBF with this icon can bring false sense of security to non-RBF transactions not marked with this icon? Or? Can you compare this situation with the current status quo?

@petertodd
Copy link
Contributor

@paveljanik So the status quo, is that all incoming unconfirmed txs look the same; I'm concerned that showing some types of unconfirmed incoming txs differently than others in UI's intended for general users gives the false impression that Bitcoin Core can reliably tell you about the risk of any particular unconfirmed incoming txs; expert-level UI's like the RPC interface are much less of a concern to me.

@paveljanik
Copy link
Contributor

@petertodd In such case, we should not show Unconfirmed at all, add a number input item defaulting to 6 into options and only show transactions with such number of confirmations.

@paveljanik
Copy link
Contributor

As all unconfirmed txs are marked with ? in the UI, I think this is safe as long as there is a ? on RBF signalling txs.

@petertodd
Copy link
Contributor

@paveljanik But unconfirmed is a state that I think users understand just fine: "Someone intends to send me a transaction, and if they're honest it'll probably confirm (eventually)." There's nothing wrong with showing that.

@paveljanik
Copy link
Contributor

Interesting Travis failures - qInitResources_bitcoin not found. The log contains:

  GEN      qt/qrc_bitcoin.cpp
RCC: Error in 'qt/bitcoin.qrc': Cannot find file 'res/icons/transaction_replaceable.png'

@laanwj
Copy link
Member

laanwj commented Jun 9, 2016

Probably you need to add the file in a Makefile so that it is included in the distribution

@jonasschnelli
Copy link
Contributor Author

Fixed nit and added missing file to Makefile.

@jonasschnelli jonasschnelli added this to the 0.13.0 milestone Jun 9, 2016
@jonasschnelli
Copy link
Contributor Author

@petertodd @luke-jr :
What about keeping the icon but not the orangish color for incoming RBF transactions?

@gmaxwell
Copy link
Contributor

@petertodd ?

I like it with just the icon myself.

@petertodd
Copy link
Contributor

@gmaxwell @jonasschnelli Eh, fine, go with that.

@laanwj
Copy link
Member

laanwj commented Jun 20, 2016

utACK 7a30ed6

(also agree on removing the orange color but keeping the icon)

@maflcko
Copy link
Member

maflcko commented Jun 20, 2016

Looks like getting rid of the orange color is preferred.

@jonasschnelli Mind to take a look?

Also the nit still holds: #7817 (comment)

@laanwj laanwj removed this from the 0.13.0 milestone Jun 21, 2016
@laanwj
Copy link
Member

laanwj commented Jun 21, 2016

Removing 0.13 milestone, this missed the feature freeze.

@btcdrak
Copy link
Contributor

btcdrak commented Aug 19, 2016

needs rebase

@jonasschnelli
Copy link
Contributor Author

I think we should first focus on #8456 (before we continue with the GUI level).

@luke-jr
Copy link
Member

luke-jr commented Sep 10, 2016

@jonasschnelli AFAICT it still has the same problem with just the icon. It gives a false sense of security; there is literally no rational distinction between them for incoming transactions. But maybe I'm missing some use case?

@paveljanik
Copy link
Contributor

Rebase needed.

@jonasschnelli
Copy link
Contributor Author

Closing for now due to controversy and inactivity...

laanwj added a commit that referenced this pull request Aug 25, 2018
… entries

870bd4c Update functional RBF test to check replaceable flag (dexX7)
820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7)

Pull request description:

  This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced.

  Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool.

  ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~

  There was some discussion in #7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad.

Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc
Munkybooty pushed a commit to Munkybooty/dash that referenced this pull request Jun 30, 2021
…mempool entries

870bd4c Update functional RBF test to check replaceable flag (dexX7)
820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7)

Pull request description:

  This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced.

  Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool.

  ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~

  There was some discussion in bitcoin#7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad.

Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc

# Conflicts:
#	src/rpc/blockchain.cpp
#	test/functional/feature_rbf.py
Munkybooty added a commit to Munkybooty/dash that referenced this pull request Jun 30, 2021
…mempool entries

870bd4c Update functional RBF test to check replaceable flag (dexX7)
820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7)

Pull request description:

  This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced.

  Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool.

  ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~

  There was some discussion in bitcoin#7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad.

Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc

# Conflicts:
#	src/rpc/blockchain.cpp
#	test/functional/feature_rbf.py
Munkybooty pushed a commit to Munkybooty/dash that referenced this pull request Jun 30, 2021
…mempool entries

870bd4c Update functional RBF test to check replaceable flag (dexX7)
820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7)

Pull request description:

  This pull request adds a flag "bip125-replaceable" to the mempool RPCs getrawmempool, getmempoolentry, getmempoolancestors and getmempooldescendants, which indicates whether an unconfirmed transaction might be replaced.

  Initially the flag was added to the raw transaction RPCs, but thanks to @conscott, it was moved to the mempool RPCs, which actually have access to the mempool.

  ~~This pull request adds a flag "bip125-replaceable" to the RPCs "getrawtransaction" and "decoderawtransaction", which indicates, whether a transaction signals BIP 125 replaceability.~~

  There was some discussion in bitcoin#7817, whether showing replaceability in the UI could lead to the false assumption that transactions that don't signal BIP 125 are truely non-replaceable, but given that this PR tackles the raw transaction interface, which is a rather low level tool, I believe having this extra piece of information isn't bad.

Tree-SHA512: 1f5511957af2c20a9a6c79d80a335c3be37a2402dbf829c40cceaa01a24868eab81a9c1cdb0b3d77198fa3bb82799e3540a5c0ce7f35bbac80d73f7133ff7cbc

# Conflicts:
#	src/rpc/blockchain.cpp
#	test/functional/feature_rbf.py
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants