6 changed files with 149 additions and 7 deletions
@ -0,0 +1,142 @@ |
|||||||
|
Joinmarket-clientserver 0.5.3: |
||||||
|
================= |
||||||
|
|
||||||
|
<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.5.3> |
||||||
|
|
||||||
|
This is a bugfix release that improves the reliability of the messaging code, fixes some suboptimal behaviour in the new PayJoin function. |
||||||
|
Joinmarket coinjoin users should upgrade because of the former, and any users of PayJoin should upgrade because of the latter. |
||||||
|
|
||||||
|
There are also a couple of other minor bugfixes and 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. |
||||||
|
|
||||||
|
Note that `.install.sh -?` will show the options for installation. |
||||||
|
|
||||||
|
If you are running JoinmarketQt, note that Python2 is incompatible. |
||||||
|
|
||||||
|
Notable changes |
||||||
|
=============== |
||||||
|
|
||||||
|
### PayJoin improvements and fixes. |
||||||
|
|
||||||
|
As a result of some basic user testing, a few issues with PayJoin cropped up. None of them were security issues; |
||||||
|
some were user-interface annoyance, and others were suboptimal behaviour. The most significant point that indicates |
||||||
|
update is required is that in some cases a coinjoin would not be done when it could be (i.e. fallback to non-coinjoin |
||||||
|
unnecessarily). |
||||||
|
|
||||||
|
(1) a bug in coin selection such that UIH2 (see documentation) was not being avoided when it could be. |
||||||
|
|
||||||
|
(2) incorrect logic on choosing to fall back to a non-coinjoin (although the existing code still was functionally the same, it printed incorrect information messages). |
||||||
|
|
||||||
|
(3) too easy for users to accidentally choose ordinary coinjoin instead of PayJoin (see [this](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/305) issue). |
||||||
|
|
||||||
|
(4) PayJoin didn't work when the daemon `joinmarketd.py` was run separately, this is fixed. |
||||||
|
|
||||||
|
(5) Minor fix to ensure that the script quits gracefully sender-side when it times out after 10-20 mins, rather than raising an Exception. |
||||||
|
|
||||||
|
(6) Check sequence and locktime in returned partially signed proposal are unaltered. |
||||||
|
|
||||||
|
`ac0ecfb` Fix UIH2 avoidance algo when sender input utxo > payment |
||||||
|
|
||||||
|
`01a48be` Clarifies INFO messages to user about the fallback non-coinjoin |
||||||
|
|
||||||
|
`371772f` No coins fallback if mixdepth empty |
||||||
|
|
||||||
|
`fd5e6d8` Fixes #305 |
||||||
|
|
||||||
|
`0c967bc` Support payjoin when daemon run separately (joinmarketd) |
||||||
|
|
||||||
|
`1c3a153` graceful sender-side timeout of PayJoin if fails |
||||||
|
|
||||||
|
`f539b02` Check sequence and locktime are conforming to payjoin v0 in transaction from receiver to sender. |
||||||
|
|
||||||
|
### Fix bug in message channel switching, and fix rare crash condition; remove Agora from default. |
||||||
|
|
||||||
|
A long standing but rare bug was recorded first in [this](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/105) issue. |
||||||
|
A crash condition occurred where an attempt to switch over to another channel failed. This condition was aggravated by recent problems with |
||||||
|
flaky connections to one of the IRC channels (Agora). Careful analysis showed that the source of the problem was faulty logic in the privmsg |
||||||
|
function (`MessageChannelCollection.prepare_privmsg` to be more specific). This logic was fixed and now bots will make much better use of |
||||||
|
the ability to switch communications from one message channel to another in cases where one drops (which is far from uncommon), and also will |
||||||
|
under no circumstances simply crash when they cannot find any route to the counterparty. |
||||||
|
|
||||||
|
Further, since Agora seems to drop connections actively during transaction negotiation (due to flooding limits), it has been removed for now |
||||||
|
from the default configuration. Users are advised to remove it from their `joinmarket.cfg` by commenting out that section, although feel free |
||||||
|
to experiment with using it. Everything should still work (live testing shows that with the new code, your bot *will* dynamically switch its |
||||||
|
connections from Agora to another mchan in this case), but there are no guarantees. |
||||||
|
|
||||||
|
`3a2c462` Fix bug in channel selection in prepare_privmsg |
||||||
|
|
||||||
|
`9deb3e5` Do not raise exception when privmsg fails |
||||||
|
|
||||||
|
`3bfc39a` Remove agora from default IRC configuration |
||||||
|
|
||||||
|
### Add documentation for installation on Windows |
||||||
|
|
||||||
|
Joinmarket and Joinmarket-Qt are runnable on Windows 10 - by far the simplest way to do it is to |
||||||
|
use the Windows Linux subsystem. This can "talk to" a Bitcoin Core installation on Windows itself, |
||||||
|
with the aid of some simple software. The documentation added to INSTALL.md explains how to do this. |
||||||
|
|
||||||
|
`cbc39bc` `8e6a099` `275d24b` `769990d` `993f3fd` `3cefc47` Add instruction for running JoinMarket-Qt on Windows |
||||||
|
|
||||||
|
`de3818d` add note to Windows install, update JMQT guide |
||||||
|
|
||||||
|
### Fix bug in sendpayment script |
||||||
|
|
||||||
|
After the logging change in the previous release, a bug was introduced which would cause the sendpayment |
||||||
|
script to crash in case it had trouble with blocking counterparties during the first attempt. This is fixed here. |
||||||
|
|
||||||
|
`9e7b619` bugfix jmprint call in taker_finished |
||||||
|
|
||||||
|
### Transaction fee floor |
||||||
|
|
||||||
|
This is a follow up to #271 - here we actually prevent the user accidentally setting a fee lower than the |
||||||
|
minimum relay fee. |
||||||
|
|
||||||
|
`4462ab6` Add tx fee floor if manually chosen |
||||||
|
|
||||||
|
### Fix potential crash from rpc gettransaction call |
||||||
|
|
||||||
|
Code previously only gracefully handled an RPC error, this prevents crashing under any condition. |
||||||
|
|
||||||
|
`3045370` Bugfix crash on unexpected error from gettransaction call. |
||||||
|
|
||||||
|
### Minor changes |
||||||
|
|
||||||
|
Backend testing changes and slight changes to docs/logging. |
||||||
|
|
||||||
|
`2db4e23` Fix F632 use ==/!= to compare str, bytes, and int literals flake8 errors |
||||||
|
|
||||||
|
`ba4ae04` conditionally run docker tests on travis |
||||||
|
|
||||||
|
`37b7a07` Report which nick lead to sig verification failure |
||||||
|
|
||||||
|
`29fc29b` Better formatting for a "withdraw" rows in wallet history output |
||||||
|
|
||||||
|
`4c3b2ff` Sender should use his own wallet, not the receiver's one. |
||||||
|
|
||||||
|
|
||||||
|
Credits |
||||||
|
======= |
||||||
|
|
||||||
|
Thanks to everyone who directly contributed to this release - |
||||||
|
|
||||||
|
- @fivepiece |
||||||
|
- @d3spwn |
||||||
|
- @AdamISZ |
||||||
|
- @jameshilliard |
||||||
|
- @AlexCato |
||||||
|
- @kristapsk |
||||||
|
|
||||||
|
And thanks also to those who submitted bug reports, tested and otherwise helped out. |
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in new issue