Skip to content

Commit

Permalink
Merge #607: Add release notes and version numbers for 0.6.3
Browse files Browse the repository at this point in the history
bd7930b Add release notes and version numbers for 0.6.3 (Adam Gibson)
  • Loading branch information
AdamISZ committed Jun 25, 2020
2 parents 500fbee + bd7930b commit 3ec8540
Show file tree
Hide file tree
Showing 7 changed files with 230 additions and 10 deletions.
221 changes: 221 additions & 0 deletions docs/release-notes/release-notes-0.6.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
Joinmarket-clientserver 0.6.3:
=================

<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.6.3>

**Note that this will probably be the last release supporting Python 3.5 or lower.**

Includes a few notable improvements to Qt as well as a few quite important back-end
bugfixes. Upgrading is recommended as soon as possible.

Please report bugs using the issue tracker at github:

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

Upgrading
=========

To upgrade:

If you are upgrading from a version pre-0.6.2 then please see the section "Move user data to home directory" in
[the 0.6.2 release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.6.2.md),
and follow the instructions there (except the `commitmentlist` file - that can actually
be left alone, the previous release notes were wrong on this point).

First run the `install.sh` script as mentioned in the README. When prompted to overwrite the directory `jmvenv`, accept.

**Reminder: Python 3 is required; Python 2 is no longer supported as it reached EOL.**

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

Notable changes
===============

### Lock file name change

While this change is very minor, it can cause confusion if un-noticed. Previously the wallet was kept single access with a file, named wallet.jmdat.lock (or \*.lock where \* was whatever your wallet name is). Since this could result in accidental deletion of the wallet via tab completion, it was decided to change this to .\*.lock - note that many file system explorers/commands will hide this file by default as it's considered of a 'hidden' type. As a reminder, this file must be deleted in cases where there was a system or program crash (you are reminded of this in case it happens).

`92f12ab` Change lock filename from wallet.jmdat.lock to .wallet.jmdat.lock

### Backend fidelity bond wallet support

This feature is not yet enabled in the software, but the Joinmarket wallet now supports both sending to timelocked outputs and to burn outputs. This will be enabled as and when the Joinmarket protocol supports it. See [here](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/14f086bfe485a79f555f6355d6d34932fa858f01/docs/fidelity-bonds.md) for details.

`6b41b8b` Disable creation of fidelity bond wallets

`869ef55` Disable loading of fidelity bond wallets by Qt

`14f086b` Add usage guide for fidelity bond wallets

`2860c4f` Freeze timelocked UTXOs with locktimes in future

`ddb32ce` Rename functions to say "key" instead of "privkey"

`c70183b` Create tests for fidelity bond wallets

`a0a0d28` Add support for spending timelocked UTXOs

`762b1f6` Add watch only wallets for fidelity bonds

`a937c44` Add wallet-tool addtxoutproof method

`97216d3` Sync burner outputs and display in wallet-tool

`255d155` Add merkle proof functions to BitcoinCoreInterface

`2271ce0` Add support for burning coins with sendpayment

`dc715c9` Add timelock fidelity bond wallet sync and display

`ee70cd7` Add support for OP_CLTV timelock addresses

`d86df33` Rename functions which create multisig scripts

`53b056e` Rename variable internal to address_type

### Qt improvements and bugfixes

Most important here is the new amount widget that allows entry of bitcoin amounts in sats or BTC in an intuitive way.

`b1ee2f0` Make BitcoinAmountEdit behave the same on resize as QLineEdit

`d1323f6` BitcoinAmountEdit Qt widget

`48f5ddf` QValidator port number restriction only for ports

`d8fef95` Bugfix: recovered wallet file location

`3cd54cb` Adds JMIntValidator to ensure exact integer range

`6f90e30` Fix "Show seed" in Qt for wallets with mnemonic extension

`e536eb1` Add wrapper shell script for JoinMarketQt

`554ced0` Update all exit() calls to sys.exit()

`cfc4869` Install XDG desktop entry for JoinMarketQt

### Fix commitments recording in jmdaemon

For some time this bug resulted in bots silently ignoring commitments being broadcast in public by other bots (via `!hp2` messages). Whilst
this did not impact coinjoin functioning, it may have erroneously allowed more usages of PoDLE commitments than intended. Removing the reference to `jm_single()` fixes this.

`6d87322` Remove jm_single config var call from jmdaemon

### CLI improvements and bugfixes

This includes a change in default minimum size for yieldgenerators, the ability to query software version with the `--version` flag, and an occasionally important improvement in tumbler behaviour: sometimes attempts to broadcast transactions fail due to 'mempool conflict' (one of the inputs provided by a maker, is already spent). But the algorithm was treating this case very wrongly: it was assuming that the cause of the stalling was that some counterparty responded wrongly (e.g. not sending a signature), and so was re-attempting the transaction with all counterparties who *did* respond; this basically ensured repeated failure, because whatever input was already spent, is of course, always already spent. Instead after this fix, the bot will try again with new counterparties.

`3876c1c` Change shebang to python3 and +x for scripts

`49ea4e4` Correct display of wallet mnemonic extension in cli

`c8d10e5` Add python shebangs to joinmarketd.py and wallet-tool.py

`e5cf95d` Add --version option to cli scripts

`6fa7f4c` Display address for UTXO on wallet-tool.py freeze

`4af9c42` Don't use honest_makers in case: mempool conflict

`d2a1a9c` yg-privacyenhanced: change default cj min size to 0.001 btc

### Quit gracefully if connection to Bitcoin Core fails

Previous to this change, we could get a crash and hang of the process in some cases, if the RPC connection to Core failed, such as when Bitcoin Core stops running, or a network disconnect. After these changes we at least get a clear error message and a shutdown of the Joinmarket bot. In the future, this might be extended to support having the Joinmarket program simply wait until the connection comes back up, but there are some
open questions around that.

`52b9ba8` Initialization of BCI raises Exception not sys.exit

`cc219cc` Handles RPC failure in Qt with message box and quit.

`5ce4b55` Quit gracefully if Bitcoin RPC connection lost

`0c73074` Close wallet when WalletService is stopped.

### Support limited use of scripts and Qt without access to Bitcoin Core

In some cases when an RPC connection to a synced instance of Bitcoin Core is not available, it may be useful for users to be able to see, for example, wallet addresses, or other wallet info such as the seed. This is now supported by setting the `blockchain_source` field of the `BLOCKCHAIN` section to `no-blockchain`. (Note: this option existed already, but it previous to this change only allowed the running of the `ob-watcher.py` script; now it also allows these other things).

`f26186d` Allow accessing basic wallet info without blockchain source

### BIP21 support

This allows users to use BIP21 URLs instead of addresses both in the command line and JoinmarketQt.
The Payjoin referred to here is the Joinmarket-wallet-only protocol implemented already, not the BIP78 new PayJoin standard (which is in [this pull request](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/536)).

`4eced50` Add BIP21 support for Payjoin

`faaf51e` Add BIP21 bitcoin payment URI support to sendpayment.py

`a539345` Implement BIP21 in GUI

### Other changes

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

##### Testing of Bitcoin amount parsing

These commits principally add extensive testing and appropriate exception raising for our bitcoin amount parsing.

`13436e0` Fix BTC amount formatting for small amounts and add amount tests

`bfe9f35` Raise ValueError on invalid Bitcoin amount strings

##### Documentation

`f2e100e` fix sample schedule for testnet

`031b8f6` Update tumbler doc for the new schedule format

`d275d82` Update readme.md: change Agora-->hackint

`6bd101e` Remove link to old non segwit version and change new version link to use JoinMarket github organization

`cadd8d8` Fix typo

##### ob-watcher improvements

`e8ec595` Shebang and +x for ob-watcher.py

`80333b2` Make ob-watcher independent of current working directory

`8997147` Terminate ob-watcher immediately if HTTP server fails to start

##### Developer (@kristapsk) pubkey update

`9baa04a` Update my pubkey (extended expiration date)

##### Don't use `--txfee` for initial guess

Initial fee guess no longer picks up value from the `--txfee` option, this was a minor bug in that it could end up printing out nonsense
warnings if you used a high value for `--txfee` (which you certainly might, to set the fee in sats/kbyte):

`ec2fd72` Change initial fee guess logic in taker scripts

##### Abort join early with wrong maker count

Fix for both Qt and CLI, taker side: Don't let user try to use a makercount that conflicts with their own config settings (quit early instead of realise it halfway through the join, which could cost both time and commitments):

`5976db7` Abort single join early if maker count below minimum_makers

##### Installation script improvements

`63c21a5` install.sh: use python3 virtualenv

`bf14146` install: fix deb_deps_install for Debian

Credits
=======

Thanks to everyone who directly contributed to this release -

- @kristapsk
- @AdamISZ
- @chris-belcher
- @AlexCato
- @nixbitcoin
- @undeath
- @openoms

And thanks also to those who submitted bug reports, tested and otherwise helped out.
2 changes: 1 addition & 1 deletion jmbase/jmbase/support.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from os import path, environ

# JoinMarket version
JM_CORE_VERSION = '0.6.2'
JM_CORE_VERSION = '0.6.3'

# global Joinmarket constants
JM_WALLET_NAME_PREFIX = "joinmarket-wallet-"
Expand Down
2 changes: 1 addition & 1 deletion jmbase/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


setup(name='joinmarketbase',
version='0.6.2',
version='0.6.3',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbase',
author='',
Expand Down
2 changes: 1 addition & 1 deletion jmbitcoin/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


setup(name='joinmarketbitcoin',
version='0.6.2',
version='0.6.3',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbitcoin',
author='',
Expand Down
4 changes: 2 additions & 2 deletions jmclient/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@


setup(name='joinmarketclient',
version='0.6.2',
version='0.6.3',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmclient',
author='',
author_email='',
license='GPL',
packages=['jmclient'],
install_requires=['future', 'configparser;python_version<"3.2"',
'joinmarketbase==0.6.2', 'mnemonic', 'argon2_cffi',
'joinmarketbase==0.6.3', 'mnemonic', 'argon2_cffi',
'bencoder.pyx>=2.0.0', 'pyaes'],
python_requires='>=3.3',
zip_safe=False)
4 changes: 2 additions & 2 deletions jmdaemon/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@


setup(name='joinmarketdaemon',
version='0.6.2',
version='0.6.3',
description='Joinmarket client library for Bitcoin coinjoins',
url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmdaemon',
author='',
author_email='',
license='GPL',
packages=['jmdaemon'],
install_requires=['future', 'txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.6.2'],
install_requires=['future', 'txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.6.3'],
python_requires='>=3.3',
zip_safe=False)
5 changes: 2 additions & 3 deletions scripts/joinmarket-qt.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
MONOSPACE_FONT = 'monospace'

import jmbitcoin as btc
from jmbase.support import JM_CORE_VERSION

# This is required to change the decimal separator
# to '.' regardless of the locale; TODO don't require
Expand All @@ -62,10 +61,10 @@
donation_address_url = "https://bitcoinprivacy.me/joinmarket-donations"

#Version of this Qt script specifically
JM_GUI_VERSION = '12'
JM_GUI_VERSION = '13'

from jmbase import get_log
from jmbase.support import DUST_THRESHOLD, EXIT_FAILURE
from jmbase.support import DUST_THRESHOLD, EXIT_FAILURE, JM_CORE_VERSION
from jmclient import load_program_config, get_network, update_persist_config,\
open_test_wallet_maybe, get_wallet_path, get_p2sh_vbyte, get_p2pk_vbyte,\
jm_single, validate_address, weighted_order_choose, Taker,\
Expand Down

0 comments on commit 3ec8540

Please sign in to comment.