6.2 KiB
Joinmarket-clientserver 0.9.12:
https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.9.12
This is probably the final release of this implementation of Joinmarket. The repo will now be archived, meaning there will be no plans for more updates; the releases will be left here for download in case that's useful.
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.
Upgrading
To upgrade:
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.
(If you are upgrading from a version pre-0.7.0 please read the "Upgrading" section in the 0.7.0 release notes.)
(If you are upgrading from a version pre-0.9.0 please read the release notes to find out how fidelity bonds are relevant to your use-case).
First run the install.sh script as mentioned in the README. When prompted to overwrite the directory jmvenv, accept.
Note that ./install.sh -? will show the options for installation.
Changes
Fix of DOS vector from commitment checking failure
Commitments are supposed to be one-use only but we were not checking the format correctly, leading to the possibility of ~ continuous reuse. Worse, a motivated attacker that uses this aggressively could retrieve lots of utxo information from makers over a long period, which degrades Joinmarket's functionality. This was exactly the attack that the taker commitments were supposed to thwart.
Shoutout to @m0wer for reporting this one:
092b480Checks case of inbound commitments before comparison.
Descriptor wallet support
This change is needed to run the software with the most recent versions of Bitcoin Core (>= 30.0) that disable old non-descriptor wallets. (Remember, we don't use Bitcoin's wallet for keys/signing, only for watch-only; but we do still use it).
f3630dcSupport Bitcoin Core descriptor wallets (quick and dirty way)
General refactoring and minor functionality improvements
6e5cdc8Refactor: move bitcoin unit conversion functions from ob-watcher to jmbitcoin395050cUse coins_to_satoshi() and satoshi_to_coins() from bitcointx everywhered117791yieldgenerator: 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)f3f4f0aMultiple (batch) payment support indirect_send()(this doesn't actually implement batch payments, but refactors to allow it as a possibility)904b780Unify cli user input code where limited range of answers are allowed861c790maker: allow receiving more money than promised865247cSupport 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)f0b0e55Cache None in tx_cache for non-wallet transactions
Minor bugfixes
8eb55beHandle None enter_seed_callback() response8798b8bRedirect back to / after /refreshorderbook and /rotateOb3317b0bFix jm_single().bc_interface.get_deser_from_gettransaction call100da5eHandle JsonRpcError in _estimate_fee_basic053d8a1Implement mixdepth filtering for showutxos
RPC-API
6469991RPC-API: Implement message signing5b47d1cRPC API endpoint to get wallet rescan statusd615688Update GetAddressResponse schema to return an object with address property
Configuration
d87e7cbReplace default directory nodes with currently working onesb03c5efMark my previous signing key as lost (my == @AdamISZ)c416a94Remove DarkScience IRC network from default config954dc36Remove Ilita IRC, re-enable hackint
Dependencies
14a7b7eUpdate libsodium from 1.0.18 to 1.0.20c54c11cBump twisted from 23.10.0 to 24.7.0b4e3fddb456968f952d7dee4a3fa6baf4a5Bump minimum required Bitcoin Core version from 0.18 to 29.053d89ecBump libsecp256k1 from v0.4.1 to v0.5.012d6b5aBump compatible Python version to 3.12cbd8868Bump libffi from 3.2.1 to latest 3.4.6bd22dd0Bump pyopenssl from 23.2.0 to 24.0.0b9cfd891144233Bump built-in Tor from 0.4.8.7 to 0.4.8.1307bad14Bump cryptography from 41.0.6 to 42.0.4ea9557bchore(deps): bump python upper version (to < 3.14)091ce51fix(deps): bencode library
Testing and installation
9eaca78ci: no fail-fast for unittests8675a29install.sh: use debian dist libffi8992e36Fix Debian dependency check for non-English localescf5184ftest(ci): build docker image in github workflow9d8988abuild(docker): update to debian bookworm398f1c0d9da8bd30557a44e75f6e67da009CI: Bump Bitcoin Core from 26.0 to 29.0719f242Fix run_tests.sh for Bitcoin Core v2739720a8CI: Use x64 not arm64 macOS669839eRemove test that assumes mempoolfullrbf=0da5603aCI: Run bash scripts with -x6e33686update Installation on Linuxbbc2150Tell libsodium not to download code from savannah.gnu.org in autogen.sh508b4eefix-debian
Documentation
6de1babdoc: small install doc updatesd53b902doc: Tor control auth cookie file must be group readable4040aceupdate sourcing commitments link26c157dsmall fixes/updates in tumblerguide docfd96f96Fix docstring24feda7Fix / remove broken links
Credits
Thanks to everyone who directly contributed to this release -
- @spacebear21
- @kristapsk
- @st3b1t
- @theborakompanioni
- 3np
- @AdamISZ
- dependabot[bot]
- @MarnixCroes
- @whitslack
- @nischal-shetty2
- @roshii
And thanks also to those who submitted bug reports, tested, reviewed and otherwise helped out.