From 990faace9fe48bbb1a5df8e967028863fc934540 Mon Sep 17 00:00:00 2001 From: Adam Gibson Date: Mon, 8 Feb 2021 16:57:09 +0000 Subject: [PATCH] Add release notes and version for 0.8.1 --- docs/JOINMARKET-QT-GUIDE.md | 2 +- docs/release-notes/release-notes-0.8.1.md | 163 ++++++++++++++++++++++ jmbase/jmbase/support.py | 2 +- jmbase/setup.py | 2 +- jmbitcoin/setup.py | 2 +- jmclient/setup.py | 4 +- jmdaemon/setup.py | 4 +- scripts/joinmarket-qt.py | 2 +- 8 files changed, 172 insertions(+), 9 deletions(-) create mode 100644 docs/release-notes/release-notes-0.8.1.md diff --git a/docs/JOINMARKET-QT-GUIDE.md b/docs/JOINMARKET-QT-GUIDE.md index f2053df..dd775fa 100644 --- a/docs/JOINMARKET-QT-GUIDE.md +++ b/docs/JOINMARKET-QT-GUIDE.md @@ -4,7 +4,7 @@ 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. -**LATEST VERSION of JoinMarket-Qt is GUI version 18**. You can check the version via `About` in the menu. +**LATEST VERSION of JoinMarket-Qt is GUI version 19**. You can check the version via `About` in the menu. No other files / setup should be needed. diff --git a/docs/release-notes/release-notes-0.8.1.md b/docs/release-notes/release-notes-0.8.1.md new file mode 100644 index 0000000..0b29356 --- /dev/null +++ b/docs/release-notes/release-notes-0.8.1.md @@ -0,0 +1,163 @@ +Joinmarket-clientserver 0.8.1: +================= + + + +This release contains some important new features and some fairly important bugfixes/improvements to performance. Upgrade is recommended as soon as possible. + +A note that backing up and then recreating a default `joinmarket.cfg` file is *always* a good idea for a new release; make sure to do it for this release, so that all default values and comments are populated. A couple of new config settings now exist, which you should take note of. + +Please report bugs using the issue tracker at github: + + + +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).) + +(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).) + +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. + +Notable changes +=============== + +### Yield Generator config moved to `joinmarket.cfg`. + +This change is one of the reasons for the above note to recreate your `joinmarket.cfg` file. It's not appropriate to have these settings in a python source file, so the same settings are (a) now moved to a dedicated section in `joinmarket.cfg` called `[YIELDGENERATOR]` and (b) *all* of these settings can be modified on the command line when starting the maker; see the `--help` text for the script. + +`a490ddf` Move YG settings to a config file + +### Signing PSBTs + +With the merge of [this PR](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/756) it should now be possible to take a PSBT you created in another environment, where one or more utxos from a Joinmarket wallet are used as input (or a destination is taken from JM as output), and co-sign and optionally broadcast the transaction in Joinmarket. Be aware this is for now experimental, so be cautious. + +Basic documentation on this feature [here](../USAGE.md#psbt). + +`631352c` Add support to sign externally prepared PSBT + +### Signet support + +Signet is a new testnet for Bitcoin that is smaller, quicker to sync (*very* quick!) and supports new features like taproot (though we are not using that, yet). [This](https://gist.github.com/AdamISZ/325716a66c7be7dd3fc4acdfce449fb1) gist can help you set up Joinmarket on signet, which is much more convenient to use for testing, than testnet3. + +`8526d73` Add signet support +`b914e75` Separate commitment files for signet and testnet +`1224214` Add comment about Bitcoin Core rpc_port defaults + +### Constraining sweep transaction fees + +This is a rather complex but impactful issue for any sweep coinjoins - fees are hard to predict but *have* to be estimated before full knowledge of transaction structure. A detailed analysis of the problem is given in [here](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/784#issuecomment-761057922). + +Hence [this PR](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/786). The solution is to constrain the fee to only vary by x% in `joinmarket.cfg`, by default 80% (because there is very likely to be significant variance); it can be changed by resetting the value of `max_sweep_fee_change` in `[POLICY]`. + +`8718ce1` Allow user to constrain coinjoin sweep fee. + +#### Fix fee information in sendpayments + +Logging messages about "tx fee floor" were rather (or very) confusing to users; see [this issue](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/736). This change makes the information displayed about bitcoin network fees calculated for coinjoin transactions more understandable and useful. + +`bb15aa0` `8cdf3e0` Quiet/make more accurate fee information in sends + + +#### Allow upper/lowercase for BIP21URI as per spec + +See [here](https://github.com/btcpayserver/btcpayserver/issues/2110) for background context; Joinmarket contained a mis-application of the spec with regard to capitalization in the "scheme" section (as did a number of other projects). This commit changes the parsing to be case-insensitive, as the spec requires. + +`721b6ed` Allow any case for scheme part of BIP21 URI as per spec + +#### Reduce rpc calls in transaction monitor + +In [this PR](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/795) we prevent the once-per-5-seconds monitoring loop from unnecessarily calling the `gettransaction` RPC call more than once per txid (note: we *do* repeatedly call `gettransaction` on the same txid over *different* loop invocations, since we need to check confirmation status). The correction of this oversight should reduce the number of these calls fairly substantially, although for most reasonably performant systems the difference is negligible. + +`4c44932` gettransaction called once per txid in monitor + +#### Drop support for pre-0.17 Bitcoin Core + +Upgrade your Bitcoin Core if you are still on an (ancient!) pre-0.17 version. + +`81982c7` Drop support for pre-0.17 Bitcoin Core + +#### Bugfix: allow schedules without payment arguments + +Recent refactoring changes had broken the ability to run custom schedules of payments with `-S` argument to sendpayment. This is now fixed. + +`462a95d` Allow schedule files without payment arguments. + +##### Various improvements and bugfixes + +Many small documentation fixes: + +`0867166` `c46227a` `6e51e8c` `72d9922` `3e06c57` various typo/grammar fixes + +`37cde23` Update Qt guide + +`317eaa8` Add libsecp manual build to INSTALL.md + +`86fd2cc` Remove comment about old transaction dict format, not used anymore + +Some general minor bugfixes: + +`0e483f1` Handle None return from _rpc() in get_transaction() + +`f21c905` Fix bugs in utxo parsing in add-utxo.py + +`20e94b0` cad76da Fix bug in test_taker (max_sweep_fee_change) + +`80a324d` Fixes #742 - prevent wallet-tool crashing with wrong argument + +`20b67e9` Wait for bitcoind to start instead of hardcoded sleep in tests. + +`92c1b1a` Fix tests for Bitcoin Core v0.21+ + +`192c07a` Abort early and output error if first bitcoin-cli call fails + +`184c274` Delete logs and wallets subdirectories from scripts directory. + +Somewhat less minor bugfix - this is needed to ensure frozen addresses are actually frozen, in case you use the recovery sync option (usually only used with wallet-tool): + +`0ea2c98` populate used_addresses list in recoversync + +Other miscellaneous: + +This proved particularly relevant for the Windows exe build, but also relates to (and, usually, solves) difficulties people occasionally have running the script version of Qt on Linux, too: + +`61edd03` PySide2 version pinned to 5.14.2 + +Allows hosting ob-watcher with arbitrary URL: + +`00be3a3` ob-watcher: Use relative link + +The wallet-tool help message should now actually be readable! : + +`dee40db` Modify optparse description format for wallet-tool. + +The automated script `genwallet.py` for creating wallets is updated to bech32: + +`0cd8a73` genwallet p2sh -> p2wpkh + +@kristapsk's new public key: + +`709db9e` Update my public key + +Credits +======= + +Thanks to everyone who directly contributed to this release - + + +- @kristapsk +- @ncstdc +- @dooglus +- @ph0cion +- @nixbitcoin +- @AdamISZ +- @erikarvstedt +- @bitcoinhodler + + +And thanks also to those who submitted bug reports, tested (especially bech32 testing!), reviewed and otherwise helped out. diff --git a/jmbase/jmbase/support.py b/jmbase/jmbase/support.py index 9327127..84bf43f 100644 --- a/jmbase/jmbase/support.py +++ b/jmbase/jmbase/support.py @@ -5,7 +5,7 @@ from getpass import getpass from os import path, environ from functools import wraps # JoinMarket version -JM_CORE_VERSION = '0.8.1dev' +JM_CORE_VERSION = '0.8.1' # global Joinmarket constants JM_WALLET_NAME_PREFIX = "joinmarket-wallet-" diff --git a/jmbase/setup.py b/jmbase/setup.py index 05aebc7..e35975a 100644 --- a/jmbase/setup.py +++ b/jmbase/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup(name='joinmarketbase', - version='0.8.1dev', + version='0.8.1', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbase', author='', diff --git a/jmbitcoin/setup.py b/jmbitcoin/setup.py index c4ed31d..4074148 100644 --- a/jmbitcoin/setup.py +++ b/jmbitcoin/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup(name='joinmarketbitcoin', - version='0.8.1dev', + version='0.8.1', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbitcoin', author='', diff --git a/jmclient/setup.py b/jmclient/setup.py index 3e686e7..32c23cd 100644 --- a/jmclient/setup.py +++ b/jmclient/setup.py @@ -2,14 +2,14 @@ from setuptools import setup setup(name='joinmarketclient', - version='0.8.1dev', + version='0.8.1', 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=['joinmarketbase==0.8.1dev', 'mnemonic', 'argon2_cffi', + install_requires=['joinmarketbase==0.8.1', 'mnemonic', 'argon2_cffi', 'bencoder.pyx>=2.0.0', 'pyaes'], python_requires='>=3.6', zip_safe=False) diff --git a/jmdaemon/setup.py b/jmdaemon/setup.py index 6c08937..7523ee6 100644 --- a/jmdaemon/setup.py +++ b/jmdaemon/setup.py @@ -2,13 +2,13 @@ from setuptools import setup setup(name='joinmarketdaemon', - version='0.8.1dev', + version='0.8.1', 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=['txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.8.1dev'], + install_requires=['txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.8.1'], python_requires='>=3.6', zip_safe=False) diff --git a/scripts/joinmarket-qt.py b/scripts/joinmarket-qt.py index 917c214..1cfa9a8 100755 --- a/scripts/joinmarket-qt.py +++ b/scripts/joinmarket-qt.py @@ -58,7 +58,7 @@ donation_address_sw = "bc1q5x02zqj5nshw0yhx2s4tj75z6vkvuvww26jak5" donation_address_url = "https://bitcoinprivacy.me/joinmarket-donations" #Version of this Qt script specifically -JM_GUI_VERSION = '19dev' +JM_GUI_VERSION = '19' from jmbase import get_log, stop_reactor from jmbase.support import DUST_THRESHOLD, EXIT_FAILURE, utxo_to_utxostr,\