mirror of
https://github.com/JoinMarket-Org/joinmarket-clientserver.git
synced 2026-08-16 13:01:17 +02:00
This commit implements a command line script and a GUI dialog to receive a payment using the BIP78 protocol, by setting up an ephemeral hidden service. It also deprecates the pre-existing inter-Joinmarket protocol for payjoin payments, since we now have both sending and receiving support for BIP78. Thus, much code in Maker, Taker and client-daemon protocol is removed, as is some documentation in docs/PAYJOIN.md. Also the script `sendpayment.py` is altered to support only the BIP78 variant. The test in jmclient/test/test_payjoin now implements BIP78 over a TCP connection, while the custom tests in test/payjoinserver.py can support hidden service based tests, but the latter is not included in the test suite and may not always work (it is only for manual investigations). The following features of BIP78 are supported: minfeerate additionalfeeoutputindex - but *only* for single change output transactions maxadditionalfeecontribution The receiver does not have nor request payment output substitution. Utxo selection is no longer sophisticated, instead we only choose a single utxo to keep the size increase of the transaction minimal. Thus UIH is not addressed at the moment. Errors returned are in line with BIP78. Sequence numbers are checked by receiver, and kept identical if uniform, otherwise respected. Receiver uses transaction monitor to shut down when the payment is seen. The workflow is almost entirely implemented in jmclient/payjoin.py and the command line script is in scripts/receive-payjoin.py. The setup, including configuration changes for Tor, are documented in docs/PAYJOIN.md, including a user guide video linked. |
||
|---|---|---|
| .. | ||
| images | ||
| release-notes | ||
| architecture-notes.md | ||
| config-irc-update.md | ||
| fidelity-bonds.md | ||
| INSTALL.md | ||
| JOINMARKET-QT-GUIDE.md | ||
| PAYJOIN.md | ||
| SEGWIT-UPGRADE.md | ||
| signed-donation-address.txt | ||
| SOURCING-COMMITMENTS.md | ||
| TESTING.md | ||
| TODO.md | ||
| tumblerguide.md | ||
| USAGE.md | ||
| wallet-upgrade.md | ||
| YIELDGENERATOR.md | ||