You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

9.0 KiB

Joinmarket-clientserver 0.6.2:

https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.6.2

This release includes many functional improvements.

Please report bugs using the issue tracker at github:

https://github.com/joinmarket-org/joinmarket-clientserver/issues

Upgrading

To upgrade (but: read and follow instructions in 0.4.0 if from pre-0.4.0):

First run the install.sh script as mentioned in the README. When prompted to overwrite the directory jmvenv, accept. Python 3 is now required; Python 2 is no longer supported as it reached EOL.

Note that ./install.sh -? will show the options for installation.

Once you have upgraded, please take note of the change mentioned below under Move user data to home directory.

Notable changes

Move user data to home directory

In line with standard practice, an overdue change: from this release, data is stored in $HOME_DIR/.joinmarket. So for Linux this is ~/.joinmarket and for MacOS, $HOME/Library/Application support/joinmarket. What is stored there is:

`joinmarket.cfg` file
`wallets/` directory
`logs/` directory
`cmtdata/` directory
`commitmentlist` file

Most obviously this will impact any existing wallet you have; you should simply copy the your-wallet-name.jmdat file into ~/.joinmarket/wallets. You are also advised to copy the folder cmtdata to the new ~/.joinmarket/cmtdata location (although this is not strictly needed, it's better). The same is true of the file commitmentlist.

You may need to run the wallet-tool.py script once to create the directory.

In certain cases you may prefer to use a specific directory for your joinmarket data; for any script, you can override the ~/.joinmarket/ default, by specifying --datadir=yourdirectory, as mentioned in the --help text.

8c8e6e2 Move all user data to home directory

6711a4e fix location of yigen-statement.csv

de255c3 Fix homedir lookup in MacOS

252a869 add datadir option to Qt script

6943ff2 Bugfix: tumbler datadir reference

No-history wallet synchronization

The no-history synchronization method is enabled by setting blockchain_source = bitcoin-rpc-no-history in the joinmarket.cfg file.

The method can be used to import a seed phrase to see whether it has any money on it within just 5-10 minutes. No-history sync doesn't require a long blockchain rescan, although it needs a full node which can be pruned.

No-history sync works by scanning the full node's UTXO set. The downside is that it cannot find the history but only the current unspent balance, so it cannot avoid address reuse. Therefore when using no-history synchronization the wallet cannot generate new addresses. Any found money can only be spent by fully-sweeping the funds but not partially spending them which requires a change address. When using the method make sure to increase the gap limit to a large amount to cover all the possible bitcoin addresses where coins might be.

The mode does not work with the Joinmarket-Qt GUI application but might do in future.

f5e27c3 Add test code for no-history sync

cbf69c6 Implement no-history synchronization

Auto-freeze of deposits to reused addresses.

See #471 . New deposits should always be to unused addresses, so to prevent forced address reuse attacks, (sometimes called dust attacks, but that's a poor name), we freeze any deposit to an already-used address by default.

The user can easily simple unfreeze these utxos both on CLI and in the Qt GUI (see the "Coins" tab; right click a utxo to unfreeze it). Also, the user can set a finite threshold above which such deposits will not be frozen by setting the value of max_sats_freeze_reuse in the [POLICY] section to a positive integer (-1 means no limit).

Complementary: the command line interface for freezing/unfreezing utxos is made more convenient, with a loop.

d719ff2 Auto-freezing of address reuse below a threshold.

83c4d3d Bugfix for d719ff2 (was erroneously freezing all new utxos)

f949ee9 add tooltips for freeze_reuse config to Qt

66823aa Add loop in the CLI for freezing UTXOs

No-blockchain option

This is useful for testing (so principally for developers), but also for running the ob-watcher script that lets you observe the offers available in your browser. Specify no-blockchain in the blockchain_source setting of the [BLOCKCHAIN] section of the joinmarket.cfg.

931a5c8 Add 'no-blockchain' blockchain_source option.

8ae41b1 noblockchain error message for Qt

Direct send privacy improvement

This adds to direct send payments (i.e. ordinary wallet spends, no coinjoin) the same features that we have for PayJoin payments: random shuffle of inputs and outputs, and locktime setting for approximate sharing of anonymity set with Core, Electrum.

c23808f Privacy improvements for direct_send()

Python2 deprecation.

See #499. Since Python2 has reached EOL as of start of 2020, we also no longer support it for Joinmarket. Anyone who for some reason cannot get access to Python3 can continue to run 0.6.1, at least for some time.

4bf1f50 Remove Python 2 compatibility imports and disable Python 2 installation in setuptools.

8c21b04 Sunsetting support for Python 2

Change of default IRC messaging servers

Cyberguerilla's IRC (also known as "cgan") appears to be down permanently; we have added a new IRC server "hackint" to the default list, which now includes that one, and Darkscience. The agora server has proved relatively unstable and remains inactive by default, but you can activate it by uncommenting the relevant lines in joinmarket.cfg.

f8d1472 Disable Agora by default (again), as discussed on IRC

ea71b56 Added hackint IRC

589a23a Remove Cyberguerilla (it's gone) and add Darkscience

11acea3 Remove Cyberguerilla and re-enable Agora in default IRC config

Simplification of installation process

Whilst this is a meaningful refactoring of the installation process to make it more in line with python standards, so it's mostly only of interest to developers.

18d8f96 simplified joinmarket dependencies installation

Confirmations included in showutxos output on CLI

See #489. As a result of #359 which introduced tracking of confirmations within the wallet, this change in UI could be added. It is not yet implemented in Qt.

f891bcb Display confirmations in wallet-tool showutxos

New code maintainer's public key

@kristapsk is now a maintainer of this repository along with @chris-belcher and @AdamISZ. His public key is added for verification of commits.

a5c9d80 Add my public key

Other changes

There are many commits less of interest to users, relating to: documentation, testing, logging and minor bugfixes:

Testing

06f7358 fix flake errors after #504

71a37c0 Remove nonstandard scripts from test suite

7359792 Move Travis-specific install_bitcoind.sh out of root

635bf32 Pin pytest to 5.3.5, and bitcoind download for travis

0f13276 Use either wget or curl for downloading deps

2fe861d fix messagechannel test

06a95ae fix ygrunner test config load

Documentation

Includes a new URL for donations and update to the Qt guide

3e9f0bb Add explaining text to readme from old repository

be36438 (pr_518) Windows details on generating joinmarket.cfg

87fb67a Update JOINMARKET-QT-GUIDE.md

7ce6cdc Add URL for donating without address reuse

3bafced Add links to various install guides to readme

bb1b01e update INSTALL.md for new libsodium

0d31f31 (origin/update_todo) updates to TODO.md

1158e24 update GUI version in JMQT guide

9eba2dd Update USAGE.md

f7fb5b7 Add table of contents

6433286 Add joinmarket logo

Logging

16cf93a Display INFO level log message on estimate_fee_per_kb() with result

0cdd5ac Add missing space to "matplotlib not found" error message

a84dafb Add INFO level log message on IRC disconnect and reconnect

Minor bugfixes, changes, refactoring

(The first is minor because it refers to an unused constant)

42d8780 Made P2WSH_PRE be the correct value

8bf95fd Display both BTC and sat amounts in more places

205ae85 Get rid of most of direct rpc() calls outside blockchaininterface

5acb85f [Refactor] Fix get_script_path and get_addr_path

a0c8446 fixed location path for accessing wallets (in payjoin receiver)

a51bd55 Fix sweep in GUI

b3e9a6f Fix sweep in scripts/sendpayment.py

cfa032d bugfix obwatcher options load

6efbf33 Fix unwanted display of privkeys in GUI introduced in cbf69c6

ce49ea3 Qt: Only show wallet sync in status bar at start

e15963f Retry in selectWallet() only on non-fatal errors

5f85734 Make explicit args in wallet_generate_recover_bip39

f519909 Check against dust threshold for single joins

Credits

Thanks to everyone who directly contributed to this release -

And thanks also to those who submitted bug reports, tested and otherwise helped out.