-
Notifications
You must be signed in to change notification settings - Fork 179
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
BIP78 PayJoin support (as implemented by BTCPay Server) #557
Comments
Yes, I took a little look at the proposed modified BIP79 today, it looks like a good protocol to me (I still think protocol versioning should be included, but it's not the end of the world). |
I have started to looking at this more from the practical side (trying to implement it as a bash script for Bitcoin Core first) and PSBT is just a recommendation, not a strict requirement, can use raw transactions instead, so this can be implemented before #536 too. Also, BTCPay server currently allows user to copy BIP21 URI with all data, so probably implementing generic BIP21 support for sendpayment (and for qt in future) would be good idea before this. Amount and destination parameters of sendpayment could be replaced by BIP21 URI as an alternative syntax. Of course, backwards compatible way.
I had some thoughts about this and now I think implementing receiving side of this proposal for JoinMarket makes no sense, running HTTP server would be overkill. JM is not a merchant solution and for payjoins between two JM users existing payjoin solution can be used. |
@kristapsk some good points there. I agree PSBT is not essential, but given it's strongly to be recommended here and needed for other things (SNICKER, cold wallets - although we have a big stumbling block with sending coins from cold storage via JM coinjoins, that doesn't mean we can't have some support - and PSBT is probably the biggest part of that!), we should definitely be wanting to do it. Receiving side - well it's interesting isn't it, because we do currently support Payjoin receiving :) Wrt an http server, it could work, with an onion, thus obviating the need for communicating over IRC. I agree it's a bit outside our current architecture though, so it makes sense to leave it out for now and just implement sender. |
Of course, PSBT should be long term goal, just seems that #536 will take some time and this could be implemented relatively fast without it, would like to see it supported with the next release. This seems to me to be the case when it's worth to do some fast hackish way right now and then rewrite it in the future properly. |
Right. Could you work on the BIP21 side? I mean, if you have time. That would be the obvious thing to add. For the rest of the code, I'm not sure, but I think probably no point trying to use something similar to |
Ok, BIP21 on me, I implemented it yesterday in bash, should not be a problem in Python. :) |
PSBT (and SNICKER basic function) now implemented in #536 ... I will be adding some basic PSBT functionality at user level soon. |
Some thoughts on the status of this:
|
faaf51e Add BIP21 bitcoin payment URI support to sendpayment.py (Kristaps Kaupe) Pull request description: In future could and should be improved to add this also to Qt GUI, but didn't want to do that now, need to figure out proper UX there. This is needed for #557. Top commit has no ACKs. Tree-SHA512: a3911f62c27b71796b27fb74be09f2cfb8e2f6f5b0ef0909ecafb16ef07b8023ea0f193f829bba2e580dc0880016d7c1e051e8d25f324e4a1178d112a69fa16c
I think we need to find out how big of a problem this is. If there are significant amount of users, to whom we would suggest installing older version of JM, it would be wise to create separate git branch and support it for some time, and backport most important fixes to it. |
I agree, but note 3.5 is reaching end-of-life in September of this year according to this. |
Ok, that's good, then no need to support it longer than a few months in any case. |
I realised that my last comment here should be in this thread. As a follow up to that information, https://github.com/btcpayserver/btcpayserver/releases/tag/v1.0.4.3 fixes the receiver behaviour to match the sender nSequence. |
Sorry I meant to put this comment in this thread. It was an update on the latest progress. |
BIP number has been assigned, changed title to reflect. |
BIP78 Payjoin is now available after merge of #536 so closing. |
Recently new version of BTCPay Server has been released, which implements receiving support for a modified version of BIP79 (bustapay). Sending support is
already implemented inis proposed for Wasabi Wallet, there is draft PR for BlueWallet and it is coming to Blockstream Green wallet soon too. Looks like this could become a P2EP / PayJoin standard or at least some future standard could be based on this. I think it makes much sense to implement this in JoinMarket too, at least sending support initially.It looks to me it will require adding HTTP client as a dependency and also PSBT stuff (I believe that code is in #403, although I haven't reviewed it yet myself).
Thoughts?
The text was updated successfully, but these errors were encountered: