Skip to content
This repository was archived by the owner on Apr 27, 2026. It is now read-only.

Commit 96777bd

Browse files
committed
add release notes for 0.9.12
1 parent 5252017 commit 96777bd

5 files changed

Lines changed: 143 additions & 4 deletions

File tree

docs/JOINMARKET-QT-GUIDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
The GUI can be run directly from Python script by doing `./joinmarket-qt.sh` from within `scripts/`, or, if using Microsoft Windows, by running the executable file/binary (**[CLICK HERE](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases)** to download the latest release). If you followed normal installation procedure under Linux, desktop entry of JoinMarketQt should be added to the application menu of your desktop environment.
66

7-
**LATEST VERSION of JoinMarket-Qt is GUI version 33**. You can check the version via `About` in the menu.
7+
**LATEST VERSION of JoinMarket-Qt is GUI version 34**. You can check the version via `About` in the menu.
88

99
No other files / setup should be needed.
1010

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
Joinmarket-clientserver 0.9.12:
2+
=================
3+
4+
<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.9.12>
5+
6+
**This is the final release of this implementation of Joinmarket**. The repo will now be archived, meaning there will be no more updates; the releases will be left here for download in case that's useful.
7+
8+
We would advise users of the software to examine the reimplementation at https://github.com/joinmarket-ng/joinmarket-ng. This is **not** a recommendation; use of this or any similar software is your own responsibility.
9+
10+
Upgrading
11+
=========
12+
13+
To upgrade:
14+
15+
*Reminder: always back up and recreate your joinmarket.cfg file when doing the upgrade; this is to make sure you have the new default settings. In order to recreate it, rename the old joinmarket.cfg and run 'python3 wallet-tool.py generate' from the scripts folder.*
16+
17+
(If you are upgrading from a version pre-0.7.0 please read the "Upgrading" section in [the 0.7.0 release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.7.0.md).)
18+
19+
(If you are upgrading from a version pre-0.9.0 please read the [release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.9.0.md) to find out how about [fidelity bonds](../fidelity-bonds.md) are relevant to your use-case).
20+
21+
First run the `install.sh` script as mentioned in the README. When prompted to overwrite the directory `jmvenv`, accept.
22+
23+
Note that `./install.sh -?` will show the options for installation.
24+
25+
Changes
26+
===============
27+
28+
### Fix of DOS vector from commitment checking failure
29+
30+
Commitments are supposed to be one-use only but we were not checking
31+
the format correctly, leading to the possibility of ~ continuous reuse.
32+
Worse, a motivated attacker that uses this aggressively could retrieve
33+
lots of utxo information from makers over a long period, which degrades
34+
Joinmarket's functionality. This was exactly the attack that the taker
35+
commitments were supposed to thwart.
36+
37+
Shoutout to @m0wer for reporting this one:
38+
39+
* `092b480` Checks case of inbound commitments before comparison.
40+
41+
### Descriptor wallet support
42+
43+
This change is needed to run the software with the most recent
44+
versions of Bitcoin Core that disable old non-descriptor wallets.
45+
(Remember, we don't use Bitcoin's wallet for keys/signing, only for
46+
watch-only; but we do still use it).
47+
48+
* `f3630dc` Support Bitcoin Core descriptor wallets (quick and dirty way)
49+
50+
### General refactoring and minor functionality improvements
51+
52+
* `6e5cdc8` Refactor: move bitcoin unit conversion functions from ob-watcher to jmbitcoin
53+
* `395050c` Use coins_to_satoshi() and satoshi_to_coins() from bitcointx everywhere
54+
* `d117791` yieldgenerator: allow change address to be overridden (note that despite the worrying description, it literally just refactors the change address sourcing; by default zero functional change)
55+
* `f3f4f0a` Multiple (batch) payment support in `direct_send()` (this doesn't actually implement batch payments, but refactors to allow it as a possibility)
56+
* `904b780` Unify cli user input code where limited range of answers are allowed
57+
* `861c790` maker: allow receiving more money than promised
58+
* `865247c` Support payjoin PSBT with multiple sender inputs (Joinmarket's implementation of payjoin did support multiple sender inputs before this, but was not following the BIP78 spec properly for this case, thankfully @spacebear21 identified and fixed this)
59+
* `f0b0e55` Cache None in tx_cache for non-wallet transactions
60+
61+
62+
### Minor bugfixes
63+
64+
* `8eb55be` Handle None enter_seed_callback() response
65+
* `8798b8b` Redirect back to / after /refreshorderbook and /rotateOb
66+
* `3317b0b` Fix jm_single().bc_interface.get_deser_from_gettransaction call
67+
* `100da5e` Handle JsonRpcError in _estimate_fee_basic
68+
* `053d8a1` Implement mixdepth filtering for showutxos
69+
70+
### RPC-API
71+
72+
* `6469991` RPC-API: Implement message signing
73+
* `5b47d1c` RPC API endpoint to get wallet rescan status
74+
* `d615688` Update GetAddressResponse schema to return an object with address property
75+
76+
### Configuration
77+
78+
* `d87e7cb` Replace default directory nodes with currently working ones
79+
* `b03c5ef` Mark my previous signing key as lost
80+
* `c416a94` Remove DarkScience IRC network from default config
81+
* `954dc36` Remove Ilita IRC, re-enable hackint
82+
83+
### Dependencies
84+
85+
* `14a7b7e` Update libsodium from 1.0.18 to 1.0.20
86+
* `c54c11c` Bump twisted from 23.10.0 to 24.7.0
87+
* `b4e3fdd` `b456968` `f952d7d` `ee4a3fa` `6baf4a5` Bump minimum required Bitcoin Core version from 0.18 to 29.0
88+
* `53d89ec` Bump libsecp256k1 from v0.4.1 to v0.5.0
89+
* `12d6b5a` Bump compatible Python version to 3.12
90+
* `cbd8868` Bump libffi from 3.2.1 to latest 3.4.6
91+
* `bd22dd0` Bump pyopenssl from 23.2.0 to 24.0.0
92+
* `b9cfd89` `1144233` Bump built-in Tor from 0.4.8.7 to 0.4.8.13
93+
* `07bad14` Bump cryptography from 41.0.6 to 42.0.4
94+
* `ea9557b` chore(deps): bump python upper version
95+
* `091ce51` fix(deps): bencode library
96+
97+
### Testing and installation
98+
99+
* `9eaca78` ci: no fail-fast for unittests
100+
* `8675a29` install.sh: use debian dist libffi
101+
* `8992e36` Fix Debian dependency check for non-English locales
102+
* `cf5184f` test(ci): build docker image in github workflow
103+
* `9d8988a` build(docker): update to debian bookworm
104+
* `398f1c0` `d9da8bd` `30557a4` `4e75f6e` `67da009` CI: Bump Bitcoin Core from 26.0 to 29.0
105+
* `719f242` Fix run_tests.sh for Bitcoin Core v27
106+
* `39720a8` CI: Use x64 not arm64 macOS
107+
* `669839e` Remove test that assumes mempoolfullrbf=0
108+
* `da5603a` CI: Run bash scripts with -x
109+
* `6e33686` update Installation on Linux
110+
* `bbc2150` Tell libsodium not to download code from savannah.gnu.org in autogen.sh
111+
* `508b4ee` fix-debian
112+
113+
### Documentation
114+
115+
* `6de1bab` doc: small install doc updates
116+
* `d53b902` doc: Tor control auth cookie file must be group readable
117+
* `4040ace` update sourcing commitments link
118+
* `26c157d` small fixes/updates in tumblerguide doc
119+
* `fd96f96` Fix docstring
120+
* `24feda7` Fix / remove broken links
121+
122+
Credits
123+
=======
124+
125+
Thanks to everyone who directly contributed to this release -
126+
127+
- @spacebear21
128+
- @kristapsk
129+
- @st3b1t
130+
- @theborakompanioni
131+
- 3np
132+
- @AdamISZ
133+
- dependabot[bot]
134+
- @MarnixCroes
135+
- @whitslack
136+
- @nischal-shetty2
137+
- @roshii
138+
139+
And thanks also to those who submitted bug reports, tested, reviewed and otherwise helped out.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "joinmarket"
7-
version = "0.9.12dev"
7+
version = "0.9.12"
88
description = "Joinmarket client library for Bitcoin coinjoins"
99
readme = "README.md"
1010
requires-python = ">=3.9,<3.14"

scripts/joinmarket-qt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
qt5reactor.install()
5252

5353
#Version of this Qt script specifically
54-
JM_GUI_VERSION = '33'
54+
JM_GUI_VERSION = '34'
5555

5656
from jmbase import get_log, stop_reactor, set_custom_stop_reactor
5757
from jmbase.support import EXIT_FAILURE, utxo_to_utxostr,\

src/jmbase/support.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import urllib.parse as urlparse
1313

1414
# JoinMarket version
15-
JM_CORE_VERSION = '0.9.12dev'
15+
JM_CORE_VERSION = '0.9.12'
1616

1717
# global Joinmarket constants
1818
JM_WALLET_NAME_PREFIX = "joinmarket-wallet-"

0 commit comments

Comments
 (0)