style: revert formatting
fix(deps): update fastbencode to use rust variant
style: new line
chore: fix typo
Co-authored-by: Marnix Croes <93143998+MarnixCroes@users.noreply.github.com>
chore(deps): bump fastbencode to v0.3.6
chore(deps): remove fastbencode rust extra
646999179b RPC-API: Implement message signing (Kristaps Kaupe)
Pull request description:
Resolves#1533.
My first attempt at adding new RPC-API endpoint, there could be mistakes.
Didn't add tests in `jmclient/test/test_wallet_rpc.py` as message signing is currently supported for mainnet only, not regtest (but I tested HTTP 400 response with regtest).
Top commit has no ACKs.
Tree-SHA512: 927b1f97ef903e48f82aa3ae70c7ead05c919a28d016d1ad4fd9c7a8299f8faa7606c30ef24af0ce3cd504e8e27b37bc55d1989bf89da88572ac79af0e60ec12
f952d7df2d Update minimum supported Bitcoin Core version to 29.0 (Kristaps Kaupe)
Pull request description:
We should not recommend anything older, there have been vulnerabilty fix. https://bitcoincore.org/en/2025/04/28/disclose-cve-2024-52919/
Top commit has no ACKs.
Tree-SHA512: 398ece746c629a3a4adfc173580bc9420c450b2e7b98f657cc22c03642d116ed5b29cfe367d832de98d943f05818dcc3301a95cd2e0a329f1a0deae4f1b22d40
8992e36609 Fix Debian dependency check for non-English locales (Kristaps Kaupe)
Pull request description:
To check are packages already installed we search for string "Installed", but it's, of course, spelled differently in different languages. So, force English for this command.
Top commit has no ACKs.
Tree-SHA512: 27ca8ed9eace98b043bf1020a99f40a2a52a0188c62ba3ad6fd9881fa8ea2bf5d49b6ebf96195db788f57d18050ad0c0a384a004069806aa7c5f5b98c9212d0a
d615688df3 Update GetAddressResponse schema to return an object with address property (Nischal Shetty)
Pull request description:
Corrected the `GetAddressResponse` schema definition in `wallet-rpc.yaml` to properly represent the actual API response structure.
ACKs for top commit:
kristapsk:
cr utACK d615688df3
Tree-SHA512: 48fcf60615b1b26999a53c2d514313f0f8fb32546cd8d662b2908cc6d40c8d74c756cf5e298c2f01de16175430c7e52115fa30960d13e8c9042a19bf337da567
398f1c0e8e CI: Bump Bitcoin Core from 28.0 to 29.0 (Kristaps Kaupe)
Pull request description:
.
Top commit has no ACKs.
Tree-SHA512: d1dc89e1baa3c4c1f9f0fc1374e9624d86b613a2f9e44bd33e0144f321e1f0a33daf513b9e3c629d72ac60895f7acf5e8315907009ee5c9b67ebbaa1a9d1493c
14a7b7ea16 Update libsodium from 1.0.18 to 1.0.20 (Kristaps Kaupe)
Pull request description:
Fixes macOS build issues (CI failures).
Top commit has no ACKs.
Tree-SHA512: f91bbeced8ac5925fd02f01d493524246a926dce96144496782eef3a6b0e4642d3dfe633a039cc3a81a865a763b2d50b79f96c4f53290cea14447367a5cd55cc
f3630dc10b Support Bitcoin Core descriptor wallets (quick and dirty way) (Kristaps Kaupe)
Pull request description:
Basically same as #1064, using `address()` descriptors and importing each watchable address separately, like with legacy wallets. There have been a lot of discussions about better proper implementation, but that requires more changes and nobody has written the code. IMHO this is better than nothing, more and more people are complaining about JoinMarket not working with newer Bitcoin Core versions (as it requires manual changes in `bitcoin.conf`).
Note that I haven't re-tested this right now.
Resolves#1571.
ACKs for top commit:
laanwj:
Tested ACK f3630dc10b. With this, i was able to recover an existing jm wallet into a new bitcoin core descriptor wallet, and get the same balances. Sending and receiving was also successful.
Tree-SHA512: 8bbce9637bdc0fa73956131f739424ee1247a659048807775d21e5f06da6053b7e93bcc4ee9a5c0dab2518ac4e5bd2bdfe0d789540d1d2c8879ab69dffe43c4c
395050cfa4 Use coins_to_satoshi() and satoshi_to_coins() from bitcointx everywhere (Kristaps Kaupe)
Pull request description:
It's bad to have different functions for the same thing, `coins_to_satoshi()` were already used in some tests.
Top commit has no ACKs.
Tree-SHA512: aa9f464528472d9ffabea72b10212cb56f6ce3ee96c04ab4463053fa1361a01b171ac93671a1db54a026f427c65baefd8af81641cd22fe1f202d7dc4eb125434
100da5eb33 Handle JsonRpcError in _estimate_fee_basic (Kristaps Kaupe)
Pull request description:
`_estimate_fee_basic` is supposed to return `None` if fee rate can't be estimated and then `estimate_fee_per_kb` handles that with hardcoded fallback fee. But `JsonRpcError` wasn't handled and it could fail when fee estimation is not working in Core.
Fixes#1653.
Previously it outputed unhandled error and hanged, now it's:
```
2024-02-10 02:05:11,803 [DEBUG] rpc: estimatesmartfee [3]
2024-02-10 02:05:11,812 [WARNING] Could not source a fee estimate from Core
2024-02-10 02:05:11,813 [WARNING] Fee estimation for 3 block confirmation target failed. Falling back to default (randomized for privacy): 11976 sat/kvB (11.9 sat/vB).
2024-02-10 02:05:11,815 [DEBUG] rpc: getmempoolinfo []
2024-02-10 02:05:11,818 [DEBUG] rpc: estimatesmartfee [3]
2024-02-10 02:05:11,820 [WARNING] Could not source a fee estimate from Core
2024-02-10 02:05:11,821 [WARNING] Fee estimation for 3 block confirmation target failed. Falling back to default (randomized for privacy): 10279 sat/kvB (10.2 sat/vB).
2024-02-10 02:05:11,849 [INFO] Using a fee of: 0.00001449 BTC (1449 sat).
```
Top commit has no ACKs.
Tree-SHA512: 45bf55530f48a75fdbcc808db3ca8884f273a5b625c2a0bf03a1090f2bd1ebcafc51808e3822cf7684903b4918642b99d400974847d5ebcf6d4e66cab44620b2
cf5184f244 test(ci): build docker image in github workflow (theborakompanioni)
9d8988a1fd build(docker): update to debian bookworm (theborakompanioni)
Pull request description:
Updates `Dockerfile` base image from `debian:bullseye-slim` to `debian:bookworm-slim`.
Bullseye default version of [`autoconf`](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1703) is incompatible with [`libffi` v3.4.6](cbd88681f9) (needed 2.71, installed v1.69):
```
534.3 v3.4.6.tar.gz: OK
534.3 /jm/clientserver/deps/libffi-3.4.6 /jm/clientserver/deps /jm/clientserver
[...]
536.0 configure.ac:3: error: Autoconf version 2.71 or higher is required
536.0 configure.ac:3: the top level
536.0 autom4te: /usr/bin/m4 failed with exit status: 63
536.0 aclocal: error: /usr/bin/autom4te failed with exit status: 63
536.0 autoreconf: aclocal failed with exit status: 63
536.0 ./install.sh: line 247: ./configure: No such file or directory
536.0 make: *** No rule to make target 'uninstall'. Stop.
536.0 make: *** No targets specified and no makefile found. Stop.
536.0 make: *** No rule to make target 'check'. Stop.
536.0 Libffi was not built. Exiting.
```
## How to test
Run `docker build -t joinmarket-clientserver-pr-1771 .` and check if image is built successfully.
ACKs for top commit:
kristapsk:
cr utACK cf5184f244
Tree-SHA512: 7fc17f4326d026cc8f925893e3dc4f867dfa0aaa763d64fe5a9205acdb8d14aa615fa611cffc84f6a362d0cc7456bfe2b165949706332b1fd4b805a95d4bf524
b03c5effae Mark my previous signing key as lost (Adam Gibson)
Pull request description:
This is a very overdue notification - I lost access to the signing key that existed in this file in a hard drive failure on my laptop. It was some time in August last year.
So obviously this needs some consideration from a security POV.
As I saw it happen in "real time" (and, you're going to laugh, but it literally was a case of coffee spilled on a laptop), I'm not in any doubt about the fact that it is lost (I tried to retrieve it in the succeeding hours, but failed), nor do I have any realistic worry that it was somehow compromised and accessed by anyone else - the chance of such a thing is never 0, but the point is it is not higher than previous to the accident. Of course, access to my code signing key would only allow code signing, the key has no other security significance. So obviously if you do see code signed or anything else signed with that key after August 2024 do not trust it and also alert me! (But, it's not going to happen).
I have a new key, but, to state clearly what is probably by now obvious, I don't have any intention, currently, of continuing contributions to the Joinmarket project. So the new code signing key isn't added here.
Equally, if people need my support in changing the status of the project, for example, adding new contributors commit rights, don't hesitate to ask.
ACKs for top commit:
kristapsk:
ACK b03c5effae
Tree-SHA512: 9113bcec70a73963f2a98da4daeabad90dece12f3a4618bd6f05de1b0ab5ccd6e890b06c2715327a3908c95ca0ded9d899aefe8e6b30e86d2eb4389ff7739e63
c416a94410 Remove DarkScience IRC network from default config (Kristaps Kaupe)
Pull request description:
As requested by DarkScience Operations Team.
Resolves#1760.
Top commit has no ACKs.
Tree-SHA512: 1919a52a3bdfec70b58158367c11a6cf8fb51344d1f83c0e7fa6e23bf159bc5542c02545c68e062d54a5f6f500a506b495a27efc576427744f3bd2c737da3964
cbd88681f9 Bump libffi from 3.2.1 to latest 3.4.6 (Kristaps Kaupe)
Pull request description:
There are bunch of various bugfixes between 3.2.1 and 3.4.6.
Fixes#1752.
Top commit has no ACKs.
Tree-SHA512: 021144cb306157bcd90ac5316435b8ea1f2fe95160e57387a6badd027d3907036e2ae89a98f35116e23e63c95320e002a81387bb12f23855f16333870e360933
da5603aef6 CI: Run bash scripts with -x (Kristaps Kaupe)
Pull request description:
Makes it easier to understand what's happening when, for example, some random `install.sh` dependency build fails.
Top commit has no ACKs.
Tree-SHA512: 242bb461c8451620eb58f0494539ebbe008d9af3740ccaa8aef8cee8172e0ef0e9cefd55a80d57f011babed4a9c01cac2e0b32b055fae2031f67fa183e97b46a
114423371d Bump built-in Tor from 0.4.8.10 to 0.4.8.13 (Kristaps Kaupe)
Pull request description:
There have been some bugfixes in between.
[Full changes](https://gitlab.torproject.org/tpo/core/tor/-/raw/tor-0.4.8.13/ChangeLog):
```
Changes in version 0.4.8.13 - 2024-10-24
This is minor release fixing an important client circuit building (Conflux
related) bug which lead to performance degradation and extra load on the
network. Some minor memory leaks fixes as well as an important minor feature
for pluggable transports. We strongly recommend to update as soon as possible
for clients in order to neutralize this conflux bug.
o Major bugfixes (circuit building):
- Conflux circuit building was ignoring the "predicted ports" feature, which aims to make Tor stop building circuits if there have been no user requests lately. This bug led to every idle Tor on the network building and discarding circuits every 30 seconds, which added overall load to the network, used bandwidth and battery from clients that weren't actively using their Tor, and kept sockets open on guards which added connection padding essentially forever. Fixes bug 40981; bugfix on 0.4.8.1-alpha;
o Minor feature (bridges, pluggable transport):
- Add STATUS TYPE=version handler for Pluggable Transport. This allows us to gather version statistics on Pluggable Transport usage from bridge servers on our metrics portal. Closes ticket 11101.
o Minor features (fallbackdir):
- Regenerate fallback directories generated on October 24, 2024.
o Minor features (geoip data):
- Update the geoip files to match the IPFire Location Database, as retrieved on 2024/10/24.
o Minor bugfixes (memleak, authority):
- Fix a small memleak when computing a new consensus. This only affects directory authorities. Fixes bug 40966; bugfix on 0.3.5.1-alpha.
o Minor bugfixes (memory):
- Fix memory leaks of the CPU worker code during shutdown. Fixes bug 833; bugfix on 0.3.5.1-alpha.
Changes in version 0.4.8.12 - 2024-06-06
This is a minor release with couple bugfixes affecting conflux and logging.
We also have the return of faravahar directory authority with new keys and
address.
o Minor feature (dirauth):
- Add back faravahar with a new address and new keys. Closes 40689.
o Minor features (fallbackdir):
- Regenerate fallback directories generated on June 06, 2024.
o Minor features (geoip data):
- Update the geoip files to match the IPFire Location Database, as retrieved on 2024/06/06.
o Minor bugfix (circuit):
- Remove a log_warn being triggered by a protocol violation that already emits a protocol warning log. Fixes bug 40932; bugfix on 0.4.8.1-alpha.
o Minor bugfixes (conflux):
- Avoid a potential hard assert (crash) when sending a cell on a Conflux set. Fixes bug 40921; bugfix on 0.4.8.1-alpha.
- Make sure we don't process a closed circuit when packaging data. This lead to a non fatal BUG() spamming logs. Fixes bug 40908; bugfix on 0.4.8.1-alpha.
Changes in version 0.4.8.11 - 2024-04-10
This is a minor release mostly to upgrade the fallbackdir list. Worth noting
also that directory authority running this version will now automatically
reject relays running the end of life 0.4.7.x version.
o Minor feature (authority):
- Reject 0.4.7.x series at the authority level. Closes ticket 40896.
o Minor feature (dirauth, tor26):
- New IP address and keys.
o Minor feature (directory authority):
- Allow BandwidthFiles "node_id" KeyValue without the dollar sign at the start of the hexdigit, in order to easier database queries combining Tor documents in which the relays fingerprint does not include it. Fixes bug 40891; bugfix on 0.4.7 (all supported versions of Tor).
o Minor features (fallbackdir):
- Regenerate fallback directories generated on April 10, 2024.
o Minor features (geoip data):
- Update the geoip files to match the IPFire Location Database, as retrieved on 2024/04/10.
o Minor bugfixes (directory authorities):
- Add a warning when publishing a vote or signatures to another directory authority fails. Fixes bug 40910; bugfix on 0.2.0.3-alpha.
```
Top commit has no ACKs.
Tree-SHA512: eac24042418742bc680b53563a47fef0038d2fece9c8084b03c93d6f777ad701b943dc2968e6d7fc54080a445f8ad34513efa99b3431f9dc38c1ec1bf6c80db5
Changes in version 0.4.8.13 - 2024-10-24
This is minor release fixing an important client circuit building (Conflux
related) bug which lead to performance degradation and extra load on the
network. Some minor memory leaks fixes as well as an important minor feature
for pluggable transports. We strongly recommend to update as soon as possible
for clients in order to neutralize this conflux bug.
o Major bugfixes (circuit building):
- Conflux circuit building was ignoring the "predicted ports"
feature, which aims to make Tor stop building circuits if there
have been no user requests lately. This bug led to every idle Tor
on the network building and discarding circuits every 30 seconds,
which added overall load to the network, used bandwidth and
battery from clients that weren't actively using their Tor, and
kept sockets open on guards which added connection padding
essentially forever. Fixes bug 40981; bugfix on 0.4.8.1-alpha;
o Minor feature (bridges, pluggable transport):
- Add STATUS TYPE=version handler for Pluggable Transport. This
allows us to gather version statistics on Pluggable Transport
usage from bridge servers on our metrics portal. Closes
ticket 11101.
o Minor features (fallbackdir):
- Regenerate fallback directories generated on October 24, 2024.
o Minor features (geoip data):
- Update the geoip files to match the IPFire Location Database, as
retrieved on 2024/10/24.
o Minor bugfixes (memleak, authority):
- Fix a small memleak when computing a new consensus. This only
affects directory authorities. Fixes bug 40966; bugfix
on 0.3.5.1-alpha.
o Minor bugfixes (memory):
- Fix memory leaks of the CPU worker code during shutdown. Fixes bug
833; bugfix on 0.3.5.1-alpha.
Changes in version 0.4.8.12 - 2024-06-06
This is a minor release with couple bugfixes affecting conflux and logging.
We also have the return of faravahar directory authority with new keys and
address.
o Minor feature (dirauth):
- Add back faravahar with a new address and new keys. Closes 40689.
o Minor features (fallbackdir):
- Regenerate fallback directories generated on June 06, 2024.
o Minor features (geoip data):
- Update the geoip files to match the IPFire Location Database, as
retrieved on 2024/06/06.
o Minor bugfix (circuit):
- Remove a log_warn being triggered by a protocol violation that
already emits a protocol warning log. Fixes bug 40932; bugfix
on 0.4.8.1-alpha.
o Minor bugfixes (conflux):
- Avoid a potential hard assert (crash) when sending a cell on a
Conflux set. Fixes bug 40921; bugfix on 0.4.8.1-alpha.
- Make sure we don't process a closed circuit when packaging data.
This lead to a non fatal BUG() spamming logs. Fixes bug 40908;
bugfix on 0.4.8.1-alpha.
Changes in version 0.4.8.11 - 2024-04-10
This is a minor release mostly to upgrade the fallbackdir list. Worth noting
also that directory authority running this version will now automatically
reject relays running the end of life 0.4.7.x version.
o Minor feature (authority):
- Reject 0.4.7.x series at the authority level. Closes ticket 40896.
o Minor feature (dirauth, tor26):
- New IP address and keys.
o Minor feature (directory authority):
- Allow BandwidthFiles "node_id" KeyValue without the dollar sign at
the start of the hexdigit, in order to easier database queries
combining Tor documents in which the relays fingerprint does not
include it. Fixes bug 40891; bugfix on 0.4.7 (all supported
versions of Tor).
o Minor features (fallbackdir):
- Regenerate fallback directories generated on April 10, 2024.
o Minor features (geoip data):
- Update the geoip files to match the IPFire Location Database, as
retrieved on 2024/04/10.
o Minor bugfixes (directory authorities):
- Add a warning when publishing a vote or signatures to another
directory authority fails. Fixes bug 40910; bugfix
on 0.2.0.3-alpha.
6baf4a542d Bump minimum required Bitcoin Core version from 24.0.1 to 25.1 (Kristaps Kaupe)
Pull request description:
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/
ACKs for top commit:
MarnixCroes:
ACK 6baf4a542d
Tree-SHA512: 439fe1f8ca85cbd6483b51ae2aa21046ceff2008f90b40d1c85b9dc8728c117f7a1b7be26223ee0fc6e41c0bf809a06eb64700b0d4e67c6509acea7f448ca423
d53b9026b3 doc: Tor control auth cookie file must be group readable (Kristaps Kaupe)
Pull request description:
It is off by default, but must be enabled, unless Tor is running under the same user as JoinMarket, which is not the case except for built-in Tor (but then user does not need to configure `/etc/tor/torrc`).
```
CookieAuthFileGroupReadable 0|1
If this option is set to 0, don’t allow the filesystem group to read the cookie file. If the option is set to 1, make the cookie file readable
by the default GID. [Making the file readable by other groups is not yet implemented; let us know if you need this for some reason.] (Default:
0)
```
Top commit has no ACKs.
Tree-SHA512: 00e6330f7a66c559aa7a7bbde1f39d6a93f2ece42b6e1ccdd9eb5c0d0b8636a01be51f6b66ba04f5a609cc426c3d0717def78a6517cc018018b59c9492025967
d9da8bd38e CI: Bump Bitcoin Core to v28.0 (Kristaps Kaupe)
Pull request description:
.
Top commit has no ACKs.
Tree-SHA512: 4343a1cf93143d860515c3111514cfca62d280675f5c2ccc76aeb0e419d25b09f090697703e41f3267ec87d6cfb012bc93970da89f6923a03b37748971d93868
669839e201 Remove test that assumes mempoolfullrbf=0 (Kristaps Kaupe)
Pull request description:
It has never been safe to assume that an unconfirmed transaction could not be replaced.
https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/1734#issuecomment-2428103838Resolves#1734.
Top commit has no ACKs.
Tree-SHA512: 3246f733efce5d3922fb8f7293b4e969237c2f16cffaf62bf4554910c491a6a6cd8ccbd9f977e2dbc7f597a662b683f1fbf9004a2c8705e10824fab3afbfb931
b456968c8f Bump minimum required Bitcoin Core version from 22.0 to 24.0.1 (Kristaps Kaupe)
Pull request description:
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/
Similar to #1719.
Top commit has no ACKs.
Tree-SHA512: a922aaece30abb116f3155c68484b6bca2a8593d3f462b711cfbd1b03781606eee1e6f348d9e2d35a67b65121a6faaba617d9b6f58502d705c81c43ea145ea31
67da0090e7 CI: Bump Bitcoin Core from 27.0 to 27.1 (Kristaps Kaupe)
Pull request description:
.
Top commit has no ACKs.
Tree-SHA512: 03e7edd86fd57cf4e05ec69178ac22fb84b4336710fb337e5ea52445d7338e89d26b6f83eef2c7a7b349bc232de3fc658b48a1c9389434326045daafac8e4f3e