-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Limit number of unconfirmed offers #4053
Conversation
I'm not a coder let alone expert but echoing my comments on #3489 (comment)
From my understanding this PR aims to reduce current issues but I as I see we need to first workout the current model in which the network takes the maker's messages for granted without any check that the make-offer transaction has even been properly broadcast. |
@huey735 that is a valid point. if I get you that would compile down to
the hard limit for the offer maker is still there but then, only the maker herself will get a too-long-mempool-chain-error when creating the umpteenth offer in sequence. (?) |
@freimair it would go a long way if the network could at least check that they saw the make-offer transaction on their mempools (this could be delegated to the seed nodes). But at the moment even that doesn't happen. So no for offers with unbroadcast make-offer transactions. As for broadcast but unconfirmed make-offer transactions. This limit may not make sense for the maker?! They are responsible for 1 of the 3 transactions relevant to this issue. If they make 10 offers with all broadcast but unconfirmed transactions and 10 different traders take the offers before they've been confirmed would this issue affect the maker? I don't know which transaction of the following the maker keeps track of:
Assuming from the issue this PR is trying to address, the taker carries transactions 2 and 3. |
can it have some positive effect if we only broadcast the offer when we see our own maker fee confirmed? And shouldn't we do that anyways? |
Bisq was clearly written with the intention of immediately broadcasting offers with unconfirmed funding TX, which is totally fine as long as the funding TX is actually in the mempool and wasn't rejected by the network. IMO all Bisq nodes should verify this but since they are SPV that's not easy. |
Until now, an error in the offer creation process is only reported to the logs, the GUI times out after a while and shows a timeout error and asks the user to report a bug. Now, the actual error is reported.
195f9f4
to
28eca1d
Compare
@freimair I have another suggestion. Have both parties send the full serialized Bitcoin TX to each other. at the time of offer taking and have both parties re-broadcast the counterparty's TX to their Bitcoin nodes - if they do not receive either a "broadcast successful" or "already broadcasted" response, they know the TX is invalid. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK
Fixes #3705
It seems that Bisq can reach a critical mass of unconfirmed transactions. Exceeding this mass causes all sorts of failures. In the corresponding issue it has been suggested to just limit the number of unconfirmed transactions.
After thorough discussion with @chimp1984, @sqrrm, @wiz and @ripcurlx, we agreed on a first step, namely, to introduce Bisqs own hard limit, get it into the next release and ultimately see if we can reduce support cases (currently 8-10 cases per month out of 2k5 trades)
This PR introduces Bisqs own hard limit of 20 unconfirmed transactions. If the limit is exceeded during
processes are stopped so that no harm can be done.
Considerations
Discussions, findings and strategies
To all the experts out there, here are some points to be discussed
Please note that I am no expert in the BTC parts of the Bisq code plus the PR is currently largely untested. It is just there to get things moving.
EDIT: seems to be related to bisq-network/proposals#132 and #3489
EDIT2: update after talking to @chimp1984 and @sqrrm
future impact
brainstormed strategies
EDIT3: update after a call with @wiz:
#3705 (comment)