Commit graph

19 commits

Author SHA1 Message Date
3np
b4e3fdda47 Update minimum supported Bitcoin Core version to 28.1 2025-10-27 23:41:40 +00:00
Kristaps Kaupe
f952d7df2d
Update minimum supported Bitcoin Core version to 29.0
We should not recommend anything older, there have been vulnerabilty fix. https://bitcoincore.org/en/2025/04/28/disclose-cve-2024-52919/
2025-10-17 22:32:11 +03:00
Kristaps Kaupe
6baf4a542d
Bump minimum required Bitcoin Core version from 24.0.1 to 25.1
Security vulnerability has been disclosed for versions older than 25.1, which are also currently EOL. https://bitcoincore.org/en/2024/11/05/cb-stall-hindering-propagation/
2024-11-05 22:18:17 +02:00
Kristaps Kaupe
b456968c8f
Bump minimum required Bitcoin Core version from 22.0 to 24.0.1
Security vulnerability has been disclosed for versions older than 24.0.1, which are also currently EOL. https://bitcoincore.org/en/2024/09/18/disclose-headers-oom/
2024-09-19 16:12:21 +03:00
Kristaps Kaupe
ee4a3fa75f
Bump minimum required Bitcoin Core version from 0.18 to 22.0
There have been multiple vulnerabilities disclosed for older versions, we should not recommend people using them.

* Disclosure of memory DoS due to malicious P2P message - https://bitcoincore.org/en/2024/07/03/disclose-inv-buffer-blowup/
* Disclosure of CPU DoS due to malicious P2P message - https://bitcoincore.org/en/2024/07/03/disclose-getdata-cpu/
* Disclosure of crash due to malicious BIP72 URI - https://bitcoincore.org/en/2024/07/03/disclose-bip70-crash/
* Disclosure of netsplit due to malicious P2P messages by first 200 peers - https://bitcoincore.org/en/2024/07/03/disclose-timestamp-overflow/
* Disclosure of CPU/memory DoS due to many malicious peers - https://bitcoincore.org/en/2024/07/03/disclose-unbounded-banlist/
* Disclosure of censoring unconfirmed transactions to a specific victim - https://bitcoincore.org/en/2024/07/03/disclose_already_asked_for/
* Security advisories for bugs fixed as of Bitcoin Core v22.0 - https://github.com/bitcoin-core/bitcoincore.org/pull/1049
2024-08-09 12:19:30 +03:00
Kristaps Kaupe
24feda79d3
Fix / remove broken links 2024-02-25 20:53:02 +02:00
Marnix
a5a5132160 update payjoin doc
remove old dead links
2024-02-14 16:46:55 +01:00
nyxnor
2749da174a change payjoin default binding port
avoid conflicts with onion messaging. #1371

change payjoin binding port on tests

correct payjoin documentation

squash payjoin binding port
2022-10-01 16:36:16 +00:00
Adam Gibson
adc11a134b
Add separate documentation for Tor configuration
Fixes #1277.
Adds a separate document tor.md detailing installation and configuration
requirements for both Makers and Takers, in particular details how to
configure for the serving of an ephemeral onion service.
2022-06-18 10:20:45 -06:00
Kristaps Kaupe
81982c729f Drop support for pre-0.17 Bitcoin Core 2020-12-25 11:04:35 +02:00
Adam Gibson
3c96d412e1
Several tweaks for bech32 orderbook, plus docs
* yg scripts set reloffer/absoffer only:

Prior to this commit, the yield generator user
level scripts required the user to specify offer
types depending on the wallet, but only 'rel/abs'
distinction is user choice; the other element
(native segwit, p2sh or p2pkh) must be defined
by the wallet, so we now call `wallet.get_txtype()`
to translate from reloffer/absoffer to sw0.. etc.

* Taker chooses nversion, nlocktime per wallet type:

Takers who are still using p2sh-p2wpkh wallets will
not want to flag their transactions with different
tx metadata than previous versions that are still
running, so we check the `get_txtype()` output to
decide which nVersion and nLockTime to use.
Also, the SNICKER locktime is reverted to zero as
according to draft spec.

* change offer type in test_coinjoin

* update docs for bech32 wallets
2020-11-10 15:28:05 +00:00
Adam Gibson
23d0b8f39c
BIP78 receiver over a Tor hidden service.
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.
2020-09-23 15:04:59 +01:00
Adam Gibson
1de8888b67 Add support for BIP78 payjoins to .onion receivers
In this commit, the jmclient.payjoin module now supports
sending payments to BIP21 URIs where the pj= parameter is
to a hidden service address.
Additionally, the test/payjoinclient and test/payjoinserver
modules are edited to support optionally testing payments to
an ephemeral hidden service.
2020-07-24 13:01:43 +01:00
Adam Gibson
b5e87ba305
Update PAYJOIN.md document for new BIP78 function.
Also adds note in README intro on BIP78.
2020-07-11 11:48:37 +01:00
Kristaps Kaupe
8fd0e75bab
Mention ability to use both BTC and sat amounts in docs 2019-11-27 00:27:12 +02:00
chris-belcher
cf54789c85
Set txfee threshold to 1000 instead of 144
Core's fee estimation RPC calls accept arguments up to
1008 blocks so it doesn't make sense to limit to 144 blocks.
2019-10-17 18:21:49 +01:00
Kristaps Kaupe
4c3b2ff135 Sender should use his own wallet, not the receiver's one. 2019-01-19 23:53:15 +02:00
AdamISZ
72b2014300
add normal payment info to PAYJOIN doc 2019-01-19 18:34:59 +01:00
AdamISZ
28abddf062
Implement payjoin (p2ep) direct payment joins
- update mktx() to allow optional locktime setting (and sequence)
- add a mk_shuffled_tx method to the wallet module
- add a P2EPTaker and P2EPMaker class (inherit from Taker, Maker)
- add a -T option to sendpayment script for doing payjoins
- add a receive_payjoin script for receivers.
- add payjoin tests in jmclient/test/test_payjoin.py
- add a custom utxo selection method select_one_utxo to support.py
- support bech32 wallets (SegwitWallet, p2wpkh) with native=true
  in config POLICY for PayJoin and direct send (not Joinmarket CJ)
- add a PayJoin.md usage guide in docs/
- include version bytes in pubkey message for forward compat
- taker pays fees but controls size (utxo number and fee/kB)
- add P2WPKH fee estimator
- Enforce INFO level logging in payjoin
- refactors regtest config settings into one place
- bugfix: script_to_address vbyte argument is bytes not integer
2019-01-19 16:46:40 +01:00