7 changed files with 262 additions and 28 deletions
@ -0,0 +1,254 @@
|
||||
Joinmarket-clientserver 0.6.0: |
||||
================= |
||||
|
||||
<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.6.0> |
||||
|
||||
This release has several significant improvements, although changes to the user |
||||
workflow are minor. It also contains an important bugfix for Qt users who **must** |
||||
upgrade (see first "Notable Change" below). Non-Qt users are also, however, strongly recommended to upgrade to take |
||||
advantage of 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. |
||||
To install using Python2, use `./install.sh -p python2` ; the default is now Python3 and is strongly recommended. |
||||
|
||||
Note that `.install.sh -?` will show the options for installation. |
||||
|
||||
If you are running JoinmarketQt, note that Python2 is incompatible. |
||||
|
||||
Notable changes |
||||
=============== |
||||
|
||||
### Respect config settings for fee filters in Joinmarket-Qt |
||||
|
||||
This fixes a bug whereby, although the fees could be checked in a dialog box (if using Single Join, and if checktx is set, which is the default), |
||||
the randomly chosen makers fees were not forced to be below the fee maximums (relative and absolute) in the config file (settings: |
||||
`max_cj_fee_abs`, `max_cj_fee_rel`). |
||||
This bug did not occur in the command line version. |
||||
This could result in higher fees being paid than intended, with some probability, by the Taker (if they were not using the checktx option). |
||||
For this reason update is essential for any user of the Qt version of the application (if they intend to do coinjoins rather than simple payments or payjoin). |
||||
|
||||
c571613 Make Qt check config fee filters as well as checktx |
||||
|
||||
### Tumbler privacy improvements |
||||
|
||||
The tumbler algorithm has been improved with the aim to increase privacy. This affects the `tumbler.py` script and `joinmarket-qt.py` GUI. |
||||
|
||||
* At the start of the run, tumbler will now fully spend all mixdepths with coinjoin with no change address (also known as a sweep transaction) back to its own internal wallet. After these initial sweeps are done tumbler will continue with the already-existing algorithm of sending coinjoins with randomly-generated amounts. |
||||
|
||||
* Tumbler will now occasionally send a round number of bitcoins, for example `0.20000000` or `0.15000000` instead of `0.24159873`. The default probability of this happening is 25% per coinjoin. |
||||
|
||||
* The default wait time between coinjoins is increased from 30 minutes to 60 minutes. |
||||
|
||||
* The default number of coinjoin counterparties is increased from 6 to 9. |
||||
|
||||
* The default number of coinjoins per mixdepth is decreased from 4 to 2. |
||||
|
||||
For a full discription and reasoning behind the changes see: [Plan to improve the privacy of JoinMarket's tumbler script](https://gist.github.com/chris-belcher/7e92810f07328fdfdef2ce444aad0968) |
||||
|
||||
b79d34a Remove amountpower and use uniform distn instead |
||||
|
||||
f40ef2c Occasionally round amounts in tumbler schedule |
||||
|
||||
35f23eb Add sweep coinjoins to start of tumbler schedule |
||||
|
||||
32479ae Modify tumbler defaults to improve privacy |
||||
|
||||
### Wallet refactoring for proper reactive behaviour |
||||
|
||||
This is a large-ish "under the hood" change that allows the wallet to *react* to external events. Thus after this change a deposit |
||||
into the wallet is handled automatically, rather than requiring the user to manually resync or restart. This applies both to yield |
||||
generators and to the Qt wallet; the wallet tab now shows the live balances at addresses. |
||||
|
||||
(At a more technical level, as well as |
||||
changing to a reactive architecture, there are other benefits: a wallet service architecture completely isolates the wallet and |
||||
blockchain access implementation from its client applications, allowing future changes/refactors to work much more easily, significantly |
||||
simpler transaction monitoring code, and also we now have only a single polling loop to the underlying Bitcoin Core RPC). |
||||
|
||||
c654de0 Wallet and blockchain refactoring |
||||
|
||||
eadbed2 Update receive-payjoin for walletservice arch |
||||
|
||||
cf19df2 Restore account support in wallet_service, needed for pre-0.17 Bitcoin Core |
||||
|
||||
### New custom yield generator(s) |
||||
|
||||
The below commits act to slightly refactor and support the use of |
||||
separate/new custom yield generators. Makers are encouraged to take a look |
||||
at the new script [here](https://github.com/JoinMarket-Org/custom-scripts/tree/master/yield-generators) |
||||
called `yg-acyclic`, which has a specific idea about using a maker bot to siphon funds out via one |
||||
mixdepth; read the comments in the file for detail, and please do try it out. |
||||
|
||||
35ebfd0 Fix yg-privacyenhanced.py for recent change. |
||||
|
||||
8b1e24e Make yg algorithms easier to define. |
||||
|
||||
fac2d88 generalize YieldGeneratorBasic.on_tx_unconfirmed |
||||
|
||||
### Wallet password via stdin |
||||
|
||||
This new option allows one to pass wallet passwords via stdin, so as to allow automated startup of the command line application, |
||||
without having the security concern that arises from implementing this as a command line argument (shell history/process list etc.). |
||||
|
||||
b83e27c Add --wallet-password-stdin |
||||
|
||||
### Amount formatting |
||||
|
||||
It is now possible to specify amounts in bitcoins, as well as in sats (the default, which is still retained) on the command line, and also in Joinmarket-Qt. You can add `btc` after an amount to clarify. |
||||
See [here]() for more details. To emphasise, this is not a *change* - you can still do what you did before, but it adds the possibility of using the alternative unit. |
||||
|
||||
b2e4308 Allow both BTC and sat amounts for single send / CJ |
||||
|
||||
8fd0e75 Mention ability to use both BTC and sat amounts in docs |
||||
|
||||
6926a31 Allow both BTC and sat amounts for payjoin receive |
||||
|
||||
### Several minor improvements and bugfixes in Qt |
||||
|
||||
A couple of things notable in this set: first, seed display was (for some reason?) |
||||
not implemented in Qt but only on command line; that has now been added. Also, minor |
||||
bugfixes to how mnemonic extension adding works and ensuring that comment lines are |
||||
preserved in the config file when using Qt (those comments are sometimes very useful, |
||||
so please read them if you haven't!). |
||||
|
||||
1c01f76 Handle exceptions in direct_send() |
||||
|
||||
e6c0575 Abort wallet generation if mnemonic extension choosen but not provided |
||||
|
||||
c23c982 Rename "Exit" to "Quit" in main menu |
||||
|
||||
9dee0d7 Add dialog for displaying seed phrase to JM-Qt |
||||
|
||||
fdc6194 Rename single-letter main window variable from `w` |
||||
|
||||
b3c54ca Rename variable that was previously missed |
||||
|
||||
8ec948e Fix context menu for bech32 addresses in tx history tab |
||||
|
||||
02c2b4b don't use native dialog for schedule open |
||||
|
||||
5d4fc41 Preserve comments in config file when using Qt |
||||
|
||||
bdc0ac5 Fixes #389 - wallet syncing in Qt |
||||
|
||||
24e50cd Use restart_callback in all situations |
||||
|
||||
8936cfc Fixes #445 The variable mnemonic_extension is already of type str and so the call to decode() in displayWords was a bug. |
||||
|
||||
ed825d5 Handle already existing wallet file on recover |
||||
|
||||
### Temporarily revert batch-import during run |
||||
|
||||
An obscure error is encountered by some users running on slower disks: because pre-0.19 Bitcoin Core contains a bug with excessive use of database locks |
||||
during importing of watch-only addresses, an import of as few as 20-60 addresses can create a very long delay (on the order of 10s of seconds), |
||||
whereas it's hardly noticeable on SSD disks. As a result coinjoins can even fail, hence the below commit reverts a batch import which |
||||
was intended to make conditions of failure to sync the wallet far less likely. |
||||
|
||||
df57099 Revert "Fix bug in detailed wallet sync relating to gap addrs." |
||||
|
||||
### Rationalisation of txfee estimate values in code |
||||
|
||||
This should not require any user action. |
||||
The `txfee_default` variable was a leftover from a much simpler first version of Joinmarket |
||||
with sometimes no access to fee estimates, we no longer need it so it's removed as its existence |
||||
is confusing. Similarly, the `--txfee` option was also misleading and is now repurposed as an |
||||
override, see the command line help for details. |
||||
|
||||
5c0b9eb Remove txfee_default |
||||
|
||||
0ab5b65 Redefine cli-option --txfee |
||||
|
||||
### Exit code rationalisation |
||||
|
||||
Make exit codes from application shutdown follow standard logic. |
||||
|
||||
52108b6 Update exit codes |
||||
|
||||
|
||||
### Minor updates for installation |
||||
|
||||
Of note: current libsodium version is old, but we use only the most |
||||
basic functionality; we will probably update shortly, all the same. |
||||
`libssl-dev` and `libltdl-dev` are a necessity for certain Debian distros. |
||||
The twisted version update was not strictly needed, as the security issue |
||||
in pre-v19 only applied to the `web` module, which Joinmarket doesn't use, |
||||
but the update is made here since it hurts nothing. |
||||
|
||||
cb38ac9 Update url for libsodium |
||||
|
||||
84a4ab2 libssl-dev added as dependency |
||||
|
||||
09e6385 Added missing dependency libltdl-dev |
||||
|
||||
fe66f2e Add option to install.sh to not build the Qt GUI |
||||
|
||||
9066ad4 Bump twisted from 18.9.0 to 19.7.0 in /jmbase |
||||
|
||||
### Minor changes |
||||
|
||||
More minor bugfixes: |
||||
|
||||
User created custom schedules were broken by fee check in #367, so restored: |
||||
|
||||
d9bcca3 Allow custom schedules to work again after #367 |
||||
|
||||
Core supports fee block targets up to 1000 and not only 144: |
||||
|
||||
cf54789 Set txfee threshold to 1000 instead of 144 |
||||
|
||||
Tumbler was only checking for valid addresses at time of transaction, not at startup: |
||||
|
||||
ad65521 Validate addresses in CLI tumbler at start. |
||||
|
||||
Two fixes for wallet history function: |
||||
|
||||
54326e8 Fix wallet history's display of cj internal sweeps |
||||
|
||||
90a449c Handle unconfirmed tx in wallet_fetch_history() |
||||
|
||||
Several minor changes to the documentation, logs/error messages, or testing code. |
||||
|
||||
documentation and logging |
||||
|
||||
42991a4 Add note to docs about running yg in background |
||||
|
||||
11304c6 fix formatting error in USAGE.md |
||||
|
||||
c9bf1c6 Update documentation: Replace links to instructions in original Wiki ... |
||||
|
||||
1509be0 Clarify that the quickstart install guide is only for Linux |
||||
|
||||
d568040 Fix outdated link in Linux install instructions |
||||
|
||||
e1ff07c add link to custom-scripts ygs in docs |
||||
|
||||
testing |
||||
|
||||
489aedc move maker_timeout_setting to regtest_joinmarket.cfg |
||||
|
||||
6a0e742 Add basic unit tests for YieldGeneratorBasic. |
||||
|
||||
|
||||
Credits |
||||
======= |
||||
|
||||
Thanks to everyone who directly contributed to this release - |
||||
|
||||
- @chris-belcher |
||||
- @kristapsk |
||||
- @AlexCato |
||||
- @AdamISZ |
||||
- @zaiteki |
||||
- @CandleHater |
||||
- @undeath |
||||
- @domob1812 |
||||
|
||||
And thanks also to those who submitted bug reports, tested and otherwise helped out. |
||||
@ -1,20 +0,0 @@
|
||||
copypaste this into "release-notes" when the time comes to make a new release, then delete this file |
||||
|
||||
Notable changes |
||||
=============== |
||||
|
||||
### Tumbler privacy improvements |
||||
|
||||
The tumbler algorithm has been improved with the aim to increase privacy. This affects the `tumbler.py` script and `joinmarket-qt.py` GUI. |
||||
|
||||
* At the start of the run, tumbler will now fully spend all mixdepths with coinjoin with no change address (also known as a sweep transaction) back to its own internal wallet. After these initial sweeps are done tumbler will continue with the already-existing algorithm of sending coinjoins with randomly-generated amounts. |
||||
|
||||
* Tumbler will now occasionally send a round number of bitcoins, for example `0.20000000` or `0.15000000` instead of `0.24159873`. The default probability of this happening is 25% per coinjoin. |
||||
|
||||
* The default wait time between coinjoins is increased from 30 minutes to 60 minutes. |
||||
|
||||
* The default number of coinjoin counterparties is increased from 6 to 9. |
||||
|
||||
* The default number of coinjoins per mixdepth is decreased from 4 to 2. |
||||
|
||||
For a full discription and reasoning behind the changes see: [Plan to improve the privacy of JoinMarket's tumbler script](https://gist.github.com/chris-belcher/7e92810f07328fdfdef2ce444aad0968) |
||||
Loading…
Reference in new issue