JoinMarket v0.9.11: Wallet Performance & RPC API Improvements

JoinMarket is a Bitcoin CoinJoin implementation with incentive structure to convince people to take part. Widespread use of JoinMarket improves bitcoin's fungibility and privacy. This implementation of JoinMarket also implements PayJoin.

JoinMarket v0.9.11: Wallet Performance & RPC API Improvements
  • "This release includes removal of support for Python 3.7 (which had been end-of-life since June 2023), so now Python 3.8+ is minimum requirement. Note that currently only Python 3.8, 3.9, 3.10 and 3.11 are supported, not Python 3.12 and newer."
  • "This release includes migrating to modern packaging and source layout, big wallet performance improvements, wallet RPC improvements and fixes and various other bugfixes and minor changes."

What's new

  • Removal of Python 3.7 support, 3.8 or newer is required now. "Python 3.7 has been end of-life since June 2023 and it was a blocker for some necessary dependency updates. Note that currently only Python 3.8, 3.9, 3.10 and 3.11 are supported, not Python 3.12 and newer."
  • Move to modern packaging and source layout.
  • Performance improvements. "Lots of performance improvements made in wallet code that makes big impact especially with old wallets, with a lots of transaction history (in extreme cases, the time needed for some operations was improved from 40+ minutes to around 10 seconds). When syncing a heavily used wallet from a seed phrase on a new Bitcoin Core instance, now larger gap limit (-g) can be used and it will take far less time than it did before."
    • "This involves caching some computed data in the wallet, in case a bug is discovered with this, a new configuration option wallet_caching_disabled is added to joinmarket.cfg, which allows to disable it when syncing the wallet."
    • "As part of performance improvements are done by caching some data in wallet file (still encrypted), *.jmdat files will grow larger than before."
  • Drop official support for 32-bit platforms. "It should still work, but you might need Rust compiler installed for install.sh to succeed. It was necessary for newer versions of cryptography Python package. See #1454 and #1579."
  • Wallet RPC API improvements and fixes. "
  • Removal of convert_old_wallet.py script. "It was broken and old format wallets for conversion of which it was used aren't created by JoinMarket since v0.4.0 six years ago. If anybody still needs to do that conversion, some older JoinMarket release can be used."
  • Code quality improvements.
  • Bugfixes and other minor changes.
  • Documentation. "Most important - Bitcoin Core v26 has dropped legacy wallet support by default, but JoinMarket still doesn't support new descriptor wallets. So documentation was changed to note users that Core should be started with deprecatedrpc=create_bdb configuration parameter for JM to work."

Please read the release notes here for full details on what this release includes.

GitHub Repo
Documentation