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
53d89ecc9a Bump libsecp256k1 from v0.4.1 to v0.5.0 (Kristaps Kaupe)
Pull request description:
This release includes algorithmic improvements which increase the speed of key generation and signing. At the same time, the binary size has been reduced significantly.
Full changelog: https://github.com/bitcoin-core/secp256k1/blob/master/CHANGELOG.md#050---2024-05-06
The ABI is backward compatible with versions 0.4.x and 0.3.x, so no python-bitcointx update is needed.
Top commit has no ACKs.
Tree-SHA512: 6eba667915f391e93fc9541e4e0ff0d4847f872a57bfb2d4a13e56112f03a5009ed7e2d5703c844dd15202072c0ec4c5638396b84aef48222d08b161d9432de1
865247cf8d Support payjoin PSBT with multiple sender inputs (spacebear)
Pull request description:
[Compatibility testing with PDK](https://github.com/payjoin/rust-payjoin/issues/51#issuecomment-2100765588) revealed that the JoinMarket payjoin receiver doesn't support signing for PSBTs that contain multiple sender inputs. This patch fixes that.
ACKs for top commit:
AdamISZ:
tACK 865247cf8d
kristapsk:
re-ACK 865247cf8d
Tree-SHA512: cf25e161be229bc440e1f0a5ad16d529e30c1470e7f6ba450ab912458f6c4db05b3ed9e463549685c5a52f37c234809f4d042522f358a0293a36932c005bbe0d
954dc36e75 Remove Ilita IRC, re-enable hackint (Kristaps Kaupe)
Pull request description:
Ilita isn't working for me, but have seen no problems with both darkscience and hackint recently. More resiliance with messaging channels is better.
Also changed `[MESSAGING:server1]` and `[MESSAGING:server2]` to `[MESSAGING:darkscience]` and `[MESSAGING:hackint]`.
ACKs for top commit:
roshii:
utACK 954dc36e75
Tree-SHA512: 77d9030189f34c22c78a7d8b94fb5c8e07bdf7c56317b1e0f98200c33e483572228785b345ad7148791bc55be85dfa6f3ad39a3237b87902efde650f8c8508ec
8eb55be6e0 Handle None enter_seed_callback() response (Kristaps Kaupe)
Pull request description:
Fixes#1698. Also added type hints.
Top commit has no ACKs.
Tree-SHA512: c5d6e9f0dd63528013c64556086b119a0b25e24f10d683f21c43bf88f794d02d8da28191f05e3bcb204ed2d43cba314962536c62e24c46334644234b458220d3
508b4ee5d1 fix-debian (st3b1t)
Pull request description:
this fix an error on debian install:
```
~/joinmarket-clientserver/deps ~/joinmarket-clientserver
~/joinmarket-clientserver/deps/libffi-3.2.1 ~/joinmarket-clientserver/deps ~/joinmarket-clientserver
patching file Makefile.am
patching file configure.ac
patching file configure.ac
./autogen.sh: 2: exec: autoreconf: not found
./install.sh: line 271: ./configure: No such file or directory
gmake: *** No rule to make target 'uninstall'. Stop.
gmake: *** No targets specified and no makefile found. Stop.
```
`autoreconf: not found`
the `autoreconf` command is part of `autoconf` pkg that was not included
fix some issues like this: https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/541
ACKs for top commit:
kristapsk:
ACK 508b4ee5d1
roshii:
utACK 508b4ee5d1
Tree-SHA512: c8ba502d8ae25e2dbc70b539bb3d4c85624751c24c71cafad72e612928dcde7c4f801525c3f4afd2af6f8a755ccd082d77b699a0838312111514394699681e15
8798b8bc6e Redirect back to / after /refreshorderbook and /rotateOb (Kristaps Kaupe)
Pull request description:
Fixes#1684.
Top commit has no ACKs.
Tree-SHA512: 3f4ff430888e3cc200ab956ffc84321d54d59ebde69b49dc78ca7534833e0bb06131a6216dfa1791e3ee2998019de5ec58d0f18e03b2efc6e0b02cea3e26ca47
This release includes algorithmic improvements which increase the speed
of key generation and signing. At the same time, the binary size has
been reduced significantly.
Full changelog: https://github.com/bitcoin-core/secp256k1/blob/master/CHANGELOG.md#050---2024-05-06
The ABI is backward compatible with versions 0.4.x and 0.3.x, so no
python-bitcointx update is needed.
30557a498e CI: Bump Bitcoin Core from 26.1 to 27.0 (Kristaps Kaupe)
Pull request description:
.
Top commit has no ACKs.
Tree-SHA512: 814a8fd88cb76ac50ab8cbe0d91393f0ffb17a6ebd2085ce8d9ff40e983dcf0cd2afc48f3ed9cbe694c146e517db14fae765fb7b01899271deec89ea3513da97