10 changed files with 162 additions and 13 deletions
@ -0,0 +1,134 @@
|
||||
Joinmarket-clientserver 0.3.4: |
||||
================= |
||||
|
||||
<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.3.4> |
||||
|
||||
Minor release with improved completion rate of joins, |
||||
and a few important bugfixes (removing possible crash vector for Makers). |
||||
The application now also supports (old Joinmarket-style) non-segwit wallet usage (although this is not recommended), |
||||
, supports the Core multiwallet feature and also rpc cookie auth. |
||||
|
||||
Please also note that the default fee for the yield-generators (Makers) in `script/yield-generator-basic.py` and |
||||
`yg-privacyenhanced.py` are reduced by a factor of 10. Please review the fee configuration at the top of the file |
||||
you're using and change the default values as you wish. |
||||
|
||||
Due to the DOS implications of the bugfix, upgrade immediately if you are a Maker; you may otherwise lose your connection at any time. |
||||
|
||||
Please report bugs using the issue tracker at github: |
||||
|
||||
<https://github.com/joinmarket-org/joinmarket-clientserver/issues> |
||||
|
||||
Upgrading |
||||
========= |
||||
|
||||
To upgrade: run the `install.sh` script as mentioned in the README. When prompted to overwrite the directory `jmvenv`, accept. |
||||
|
||||
|
||||
Notable changes |
||||
=============== |
||||
|
||||
Most changes in this release are backend (many connected with testing or installation), so |
||||
are not listed here. Their not being described here does not imply that they are not important, |
||||
only that they won't be of interest to users. |
||||
|
||||
### Restart-with-subset of honest makers |
||||
|
||||
`b741b24764ebb1b1e89a9f516e64a98eeda86557` |
||||
|
||||
The code already has a facility called "complete-with-subset" which enables a Taker to continue and |
||||
complete a CoinJoin when one or more of the counterparty Makers refuses to send a valid `!ioauth` message |
||||
in the first stage of negotiation. This is the relatively easier kind of DOS vector to address - since |
||||
the Taker has not yet, at this stage, constructed the full CoinJoin transaction, and can therefore |
||||
construct it using the utxos of the honest makers who did send valid `!ioauth`s. It is limited to only |
||||
continue if the number of honest makers is at least as high as the setting `minimum_makers` in the `POLICY` |
||||
section of `joinmarket.cfg`. |
||||
|
||||
However, a DOS-ing Maker can still refuse to send the signature (`!sig`) at the end of the negotiation. In |
||||
this case the Taker must start from scratch as the currently prepared transaction is no longer valid. To aid |
||||
this scenario, this commit allows the Taker to restart with *specifically that set of makers who were honest |
||||
in the first attempt*. This does still cost an additional commitment (it is possible but quite a bit more |
||||
complex to alter the code so that that isn't the case), but it will mean that hopefully very few transactions |
||||
indeed cannot complete. Note that when using `sendpayment` this may require waiting and re-confirming the new |
||||
set of fees (they will usually be the same as the first attempt, but could be different in theory). |
||||
|
||||
With both complete-with-subset and restart-with-subset in place, the overall completion rate should be high |
||||
unless the number of malicious makers completely swamps the number of honest ones. |
||||
|
||||
This is applied to all Taker modes (sendpayment, tumbler and also in Qt GUI). |
||||
|
||||
### Fix bug in IRC collision handling |
||||
|
||||
`ec60bcd14f871611459dd430550085035d750167` |
||||
|
||||
Previously, if a bot reconnected and encountered a nick |
||||
collision, it would append '_' and connect, but counterparties |
||||
would ignore appended characters after NICK_MAX_ENCODED+2, and |
||||
so would send to the other nick. This happens in network |
||||
connection failure scenarios. |
||||
Strategy here is to simply insist on regaining the nick on that |
||||
message channel where it has been lost, retrying every 10s. |
||||
There is also a loud warning message printed. |
||||
Bots with fairly stable connection (including Tor) probably never encountered |
||||
this, but if (for example) your ISP force-disconnects, your Maker could be left |
||||
essentially disconnected from the trading pit, without your knowing. This was quite |
||||
a bad bug; now it will almost certainly be successful in reconnecting to the pit after some seconds |
||||
or minutes, and if not it will at least print a very large warning, repeatedly. |
||||
More sophisticated solutions are difficult to obtain. |
||||
|
||||
### Support for Bitcoin Core multiwallet feature |
||||
|
||||
`91ffa6cb6c165fa26ae5e1d2881cb1c9792dd094` |
||||
|
||||
Adds support for use of multiple Bitcoin Core wallets, a feature introduced in Bitcoin Core 0.15.0, |
||||
see [release notes](https://bitcoincore.org/en/2017/09/01/release-0.15.0/#multiwallet) for details. |
||||
|
||||
### RPC credentials from cookie auth file |
||||
|
||||
`ea67a8bf85edd7fb6b5c5113d6485eaa42bf0129` |
||||
|
||||
Adds support for use of cookies as alternative to rpcuser/pass for authentication of RPC |
||||
connections to Bitcoin Core. |
||||
|
||||
### Support for non-segwit takers/makers. |
||||
|
||||
`816078b437d9a0b6d31be4d2b827582602717abc`, |
||||
`4e6bee33336a0fb915a24e5626af053f4a137b66`, |
||||
`619b4a123f441531dbd54d353ab64e3f771bdba1`, |
||||
`966bce19a42926f74c19fe1db98ab8edc2648e03` |
||||
|
||||
Although as noted in the README now, this is highly dis-recommended (almost nobody is using |
||||
non-segwit joinmarket anymore), there is support for backwards compatibility now, of the |
||||
old-style Joinmarket wallets now (they are not BIP39 and use p2pkh addresses ("1")), and |
||||
running a Taker or Maker is possible. You shoud set `segwit=false` in `joinmarket.cfg` to |
||||
use this feature. |
||||
|
||||
### SIGHASH_SINGLE bugfix for segwit |
||||
|
||||
`589ed31fde771c606488412324d0affd76e8b670` |
||||
|
||||
SIGHASH_SINGLE handling in the signing code for segwit was wrongly coded, this fixes it. |
||||
There is no current usage of this feature in Joinmarket. |
||||
|
||||
### Reduce default Maker fees |
||||
|
||||
`f7029f64924dc9523258b336a4499f5551f8d6cf` |
||||
|
||||
The **default** fees are reduced in both yield generator scripts to about 10% of what they were before, |
||||
to match more what is seen in the market; see the comment at the start of these release notes for user action. |
||||
|
||||
Credits |
||||
======= |
||||
|
||||
Thanks to everyone who directly contributed to this release - |
||||
|
||||
- @AdamISZ |
||||
- @undeath |
||||
- @fivepiece |
||||
- @chris-belcher |
||||
- @kristapsk |
||||
- @adlai |
||||
- @mecampbellsoup |
||||
- @jameshilliard |
||||
- @AlexCato |
||||
|
||||
And thanks also to those who submitted bug reports, tested and otherwise helped out. |
||||
Loading…
Reference in new issue