Python 3.3 and above provide a standard venv module which provides all
the functionality that install.sh needs from virtualenv.
As of this commit, JM itself requires Python 3.6+ anyway.
Updated to reflect that it's now required to provide a node message argument when starting the directory node.
Update onion-message-channels.md
Changed message argument to be the same in the explanation and service file for consistency.
Prior to this commit, we timed out the attempts to connect to individual
directory nodes after 10s, which proves to be too optimistic for
connections to onions, as failures are often seen. After this commit, we
allow 60s (note that this time includes handshake completion).
3d0f2d6fd7 fix: randomize fallback transaction fee (theborakompanioni)
Pull request description:
Resolves#1363
Before this PR, if no fee estimate could be sourced, the fallback fee was always 10_000 sats/kilo-vbyte:
```
Before:
2022-10-11 05:45:19,429 [DEBUG] rpc: getmempoolinfo None
2022-10-11 05:45:19,432 [DEBUG] rpc: estimatesmartfee [3]
2022-10-11 05:45:19,438 [WARNING] Could not source a fee estimate from Core, falling back to default: 10000 sat/vkB (10.0 sat/vB).
2022-10-11 05:45:19,439 [INFO] Using bitcoin network feerate for 3 block confirmation target (randomized for privacy): 10000 sat/vkB (10.0 sat/vB)
2022-10-11 05:45:19,444 [DEBUG] rpc: getmempoolinfo None
2022-10-11 05:45:19,446 [DEBUG] rpc: estimatesmartfee [3]
2022-10-11 05:45:19,452 [WARNING] Could not source a fee estimate from Core, falling back to default: 10000 sat/vkB (10.0 sat/vB).
2022-10-11 05:45:19,453 [INFO] Using bitcoin network feerate for 3 block confirmation target (randomized for privacy): 10000 sat/vkB (10.0 sat/vB)
2022-10-11 05:45:19,488 [INFO] Using a fee of: 0.00001420 BTC (1420 sat).
```
After this PR, the fallback fee will take into account the value of `tx_fees_factor` to randomize the value (if `tx_fees_factor` is greater than zero):
```
2022-10-11 05:51:00,112 [DEBUG] rpc: getmempoolinfo None
2022-10-11 05:51:00,114 [DEBUG] rpc: estimatesmartfee [3]
2022-10-11 05:51:00,119 [WARNING] Could not source a fee estimate from Core, falling back to default: 10000 sat/vkB (10.0 sat/vB).
2022-10-11 05:51:00,120 [INFO] Using bitcoin network feerate for 3 block confirmation target (randomized for privacy): 9962 sat/vkB (9.9 sat/vB)
2022-10-11 05:51:00,123 [DEBUG] rpc: getmempoolinfo None
2022-10-11 05:51:00,126 [DEBUG] rpc: estimatesmartfee [3]
2022-10-11 05:51:00,133 [WARNING] Could not source a fee estimate from Core, falling back to default: 10000 sat/vkB (10.0 sat/vB).
2022-10-11 05:51:00,134 [INFO] Using bitcoin network feerate for 3 block confirmation target (randomized for privacy): 10898 sat/vkB (10.8 sat/vB)
2022-10-11 05:51:00,156 [INFO] Using a fee of: 0.00001547 BTC (1547 sat).
```
Additionally, `fx_fees_factor` will be used to calculate `mempoolminfee_in_sat_randomized` instead of using a hardcoded max value of `1.2` (20%). If this is not wanted or you think this is a mistake, the second commit can be reverted in order to only apply the behaviour described above.
ACKs for top commit:
kristapsk:
ACK 3d0f2d6fd7
Tree-SHA512: d950532e0abe9558b067b2b764f0c43b8a20f27c7c2223600ee461174124a21ec05c2d304ace2006d461d0ff0ae504ba246676a509240eea6d86fe975898a2f7
also, use tx_fees_factor for randomized max mempoolminfee and
make sure that tx_fees_factor is equal or greater than zero.
Co-authored-by: Kristaps Kaupe <kristaps@blogiem.lv>
2e44f00ff3 Log IRC connection attempts when using SOCKS5 proxy or TLS too (Kristaps Kaupe)
Pull request description:
Only attempts with `use_ssl = false` and `socks5 = false` were logged before this change.
Top commit has no ACKs.
Tree-SHA512: 6c8c1441a417282f7cd7f2757eea2238e42c12c48fe59d6a9f41ba8e3c14eec86da5d3c122398fbb101d746b0baf461391abf944c6dbd80fcf59535a7161f968
Fixes#1369.
Prior to this commit, the docs on fidelity bonds stated that expired
fidelity bond utxos (which are spendable), can be spent in coinjoins as
a Taker, but that is not correct - they can only be spent in a
non-coinjoin transaction (direct send).
2749da174a change payjoin default binding port (nyxnor)
Pull request description:
https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/1371
Payjoin port was chosen because it is less used, so changes affecting default port will possibly be rare.
Also changed payjoin tests port for uniformity.
And included the updated config to docs/PAYJOIN.md
ACKs for top commit:
kristapsk:
cr utACK 2749da174a
Tree-SHA512: 98213edd7916730a6f7a975b4dca38f5eed9a40afcc7ec66df842def338e82867fe673d7b9c280aedfda007f5cfef9df0a29341dbd355870e26d45487558ed72
bd5508c56b Minor improvements for question prompts and feedback (Kristaps Kaupe)
Pull request description:
Make both look and act the same, specify default answer, wait only for single character (don't require Enter / Return) and give feedback about choice with Qt GUI (previously you could answer "yyy" and it would mean not to build Qt GUI, as "yyy" != "y").
Top commit has no ACKs.
Tree-SHA512: 4f51633217c791e6d129ec0f95d086fa35b990c0fe1b42d96052109ac88b2a2098e3cea834aed9b1ba99429a1568a25e4efb40fb2bd180bac5f8cdd7d95ac07f
d6d40df606 Allow amounts below DUST_THRESHOLD (0.00027300 BTC) for non-cj direct sends (Kristaps Kaupe)
Pull request description:
Don't see the reason why to enforce this lowest amount limit for non-collaborative transactions.
Note that lower amount sends were already allowed when doing sweeping.
Top commit has no ACKs.
Tree-SHA512: c6e33372b36a6fc03f8050e827c9b1b14da43edddb718e1ad153a8ebdbfed5ff7e9332b784bea314aab460afe0b574b8cf40cf0523b3a773bf657a22b67c12db
e47f0823cb Allow to run install.sh from any current working directory (Kristaps Kaupe)
Pull request description:
Person [porting JoinMarket guide from RaspiBolt v2 to RaspiBolt v3](https://github.com/raspibolt/raspibolt/pull/1085) tried to do `./joinmarket/install.sh` instead of `cd joinmarket; ./install.sh`, but that ends in GPG validation error, because third-party pubkeys are imported using relative paths. Don't see the reason why not allow to run `install.sh` from any cwd.
Top commit has no ACKs.
Tree-SHA512: daf0cfabb2c5048c58664812e259b65d4ee838c5d3f3f37939713d74d0d73054cf08fe7fb49e8b184c223105c9d3a71592bcaa4376d32e45046c372614a3a76c
4c53bb5adf Update link to RaspiBolt installation guide (Kristaps Kaupe)
Pull request description:
Installation instructions for RaspiBolt v3 is now integrated into main guide.
Top commit has no ACKs.
Tree-SHA512: 6b6ede4762829135beec8215f6347be410cfa6d8bd1c57f7bda24361643a610673c84bdc4e86af7c2b639d306547a2807dc173b0c1a4647d03143f4757e46ea4
9d9035b43f Fix sendpayment without amount argument, BIP21 only (Kristaps Kaupe)
Pull request description:
Fixes#1356. Bug was introduced with #1316.
Top commit has no ACKs.
Tree-SHA512: cc4be2c4e55720faa5a0ca834e6ff4b2b95dbcf5b96f7bc501e3fb0e94dcd14240c6bb3949068248206f5508f64d4cc2afe49344065cdc4d60edcb3ba01a41cc
8d2a6647da Fix for recent Bitcoin Core versions and add type hints (Kristaps Kaupe)
Pull request description:
Noticed while trying to run JM test suite against Bitcoin Core v24.0rc1. There is no more (major, minor, patch), only (major, minor), so that `re.match().groups()` returned `NoneType` and tests failed. Removed patch part from regular expression, we anyway check only major version number currently. Also added type hints.
Top commit has no ACKs.
Tree-SHA512: 90540f5caa293080b7138b0d51cdaad2458685ab1d3a9fec36dcceac1afd0b5c36e1c436343500839433c70d08ee3033235a7859ecaa43531abf628a6f504112
46013d2ef4 chmod +x scripts/jmwalletd.py (Kristaps Kaupe)
Pull request description:
It should be executable same way as other scripts.
Top commit has no ACKs.
Tree-SHA512: c623c280754b8c5ee09ef7bff6db41b8223518018258ec9e796ca4921d0eef6cb951258a59896b8f7382805ff8186a3d20b787a11d804667b9a8f197eb347a71
823d8fd834 Don't disallow the stallMonitor in RPC tumbler (Adam Gibson)
Pull request description:
Prior to this commit, the 'testflag' was set for the Taker object that was created in running the tumbler via the RPC API. This flag prevents the function client_protocol.JMTakerClientProtocol.stallMonitor from running (which is useful in certain cases), which was not intended. After this commit, this flag is not set, so that when a transaction fails to go through, the stallMonitor will wake up after some time and retry the transaction, as should occur.
ACKs for top commit:
kristapsk:
cr utACK 823d8fd834 (did `grep -R testflag` and checked each occurance)
Tree-SHA512: de89d5c12e3595b96d9d579980ac59f81e40500fe98d97e5ea415c545a938b7f7e3d3621036f82953ab9fee657a44d847b95a33fea1d7cac629e1aeb88fe598f
Prior to this commit, the 'testflag' was set for the Taker object that
was created in running the tumbler via the RPC API. This flag prevents
the function client_protocol.JMTakerClientProtocol.stallMonitor from
running (which is useful in certain cases), which was not intended.
After this commit, this flag is not set, so that when a transaction
fails to go through, the stallMonitor will wake up after some time and
retry the transaction, as should occur.
62dc983f1a Check sha256 hashes for downloads before GPG signature validation (Kristaps Kaupe)
Pull request description:
See #1338. User got partially downloaded libsodium tarball for some reason and user got confused with GPG signature validation error and though there was some problem with that. Let's check sha256 hashes before and abort there on error.
Before:
```
gpg: BAD signature from "Frank Denis (Jedi/Sector One) <0daydigest@pureftpd.org>" [unknown]
Terminated
```
After:
```
libsodium-1.0.18.tar.gz: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
Libsodium was not built. Exiting.
```
Top commit has no ACKs.
Tree-SHA512: b86d76fbc675092d9774a9210475b9e7ec9f81a6a89bc239bc37d99e737edf8e3d14ed5bf4640a0c5cbf0aabf788012e7dcef781aef0be0106260cd6086959de
be518664c6 GPG release signature validation for libsodium and Tor (Kristaps Kaupe)
Pull request description:
JM had GPG validation initially, but for some reason it was removed in 2018 (#228), seems nobody remembers what was the reason.
Anyway, this is reimplementation, also doesn't depend on keyservers, necessary pubkeys are stored locally in repo.
Top commit has no ACKs.
Tree-SHA512: 9a1ba12b1ef27aec53ce1beed5f388ebfc7d25c87f84f858f6fca9bb66a415f8524ba97e10e4a5a51c8e7c4a2819cc1a69dc78034941c299065c93169dbb5deb