From 78470c3aeeff31595f21eb70de179edb235e096d Mon Sep 17 00:00:00 2001 From: Adam Gibson Date: Fri, 28 Oct 2016 16:58:10 +0300 Subject: [PATCH] finalize release notes 0.2.2 reset default minimum_makers to 2 --- doc/release-notes-0.2.2.md | 130 +++++++++++++++++++++++++++++++------ joinmarket/configure.py | 2 +- 2 files changed, 110 insertions(+), 22 deletions(-) diff --git a/doc/release-notes-0.2.2.md b/doc/release-notes-0.2.2.md index 809ab1a1..087f38d1 100644 --- a/doc/release-notes-0.2.2.md +++ b/doc/release-notes-0.2.2.md @@ -3,7 +3,8 @@ JoinMarket 0.2.2: -This is a minor release with some workarounds to avoid the effect of non-responding makers and fixing bugs in 0.2.1, however there are also several bugfixes, and for some classes of users these bugs may be important, so please update immediately. Additionally, several defaults have been amended in the direction of better privacy. +This is a minor release with some workarounds to avoid the effect of non-responding makers, +some useful new features and fixing bugs in 0.2.1 Please report bugs using the issue tracker at github: @@ -16,6 +17,85 @@ For users already running version 0.2.x it is only required to update the Joinma Users updating from a version pre-0.2.0 **must** carefully follow the instructions for updating in the [previous release notes](https://github.com/JoinMarket-Org/joinmarket/blob/master/doc/release-notes-0.2.0.md) +Features, in approximate order of importance +============================================ + +### Complete-with-subset + +In cases where one of the Maker bots you select, either accidentally or by malicious +intent, fails to complete the transaction negotiation process, pre-0.2.2, this would +result in a failure that costs one utxo commitment (see the 0.2.0 notes for details). +This can cause serious inconvenience for a Taker if it happens repeatedly, and this +has been observed due to a number of non-responsive Makers in the pit. +With this new feature, the transaction can still complete with a lower number of +Makers (i.e. the ones that did respond). + +For example, with the default setting of minimum_makers=2 in the POLICY section of +the joinmarket.cfg file, then if you request 5 counterparties, but only 3 respond, +the transaction will go ahead with those 3 (and will still go ahead with as few as 2). +You will get a slightly smaller privacy effect, but also pay less fees. +In testing this has been seen to greatly reduce the chance of a transaction failure. +You can disable this feature by setting minimum_makers=0. + +Do consider also using the -P feature for fine-grained counterparty selection, +where that's possible. Note also that a future upgrade may offer even better +"smart" counterparty selection. + +### Direct Send + +You can now send coins out of your Joinmarket wallet with the sendpayment.py script; +use the option -N 0 (means 0 counterparties). All other syntax is the same, e.g. set +amount 0 for sweeping. This sends coins from *1 mixdepth*; in Joinmarket we never +send coins from multiple mixdepths at the same time, for privacy. + +This method of course does not connect to IRC, so it will be quicker, and of course +cheaper than using a normal Joinmarket transaction. Before the transaction gets +broadcast, it will be presented to you in raw and serialized form to check. + +Yield generators and other heavy users should be careful not to use this to send +coins between mixdepths in the same wallet, as this could lead to unexpected and +undesirable privacy outcomes. + +### Fast sync option + +When using Bitcoin Core, if the wallet has lots of used addresses, it results in a +slow import and sync currently (the full context for this is a bit complex to explain). +If you are *not* recovering a wallet or using a new Core instance, where you must +start from scratch and *not* use this new feature, but are instead simply restarting +your script, it's recommend to append the option --fast to *all* scripts (yieldgen, +tumbler, sendpayment, wallet-tool). This uses a different, more efficient way of +gathering the history of all the addresses. In tests it's been reported to reduce +sync time by anything from 50-90% depending on your exact situation. If you are only +an occasional user (e.g. using sendpayment) and have only few used addresses, it +isn't important. + +### Logging levels + +By default, the logging messages *on the terminal* are now much reduced, corresponding +to log level "INFO". The logging messages in the log file still contain everything +("DEBUG" level). + +You can change the logging level on the terminal to one of INFO, WARNING, ERROR or +DEBUG by setting the config variable console_log_level in section LOGGING. See the +default joinmarket.cfg for reference. + +### Extra new default IRC server + +For better censorship resistance and redundancy it's recommended to use more than one +"Message Channel" (at the moment only IRC is supported, but other messaging servers are +easy to code, PRs welcome!). Some bots have already been using the agora IRC server +(for donations, see: anarplex.net, address 12qvastA6FVod8L45Q3RPD8whbzvrZhxcQ). + +This extra IRC server is now added to the default config, so it's suggested that all +participants use it as well as the existing CGAN. Note the rather ugly comma-separated +lists; this format is required, with the same number of entries for *all* settings in +the MESSAGING section. + +### Dump individual private key + +You can now use the method "dumpprivkey" to wallet-tool.py, in combination with the +-H option, to dump the private key of one address without a full wallet sync. + Bugfixes ======== @@ -29,29 +109,37 @@ The bugfixes are for these specific issues: * tolerate counterparties using a dust threshold between our value and the network floor 0.2.2 Change log -================= +================ -- `8d00f9c` Add gaplimit option for yield generators -- `d40d113` Add agora-irc to config: a second, default irc server to connect to -- `6210225` Add fast sync option for Core wallets -- `03fbcfd` Change logging system to only show relevant messages on console by default -- `c30c4cd` Add direct send feature from mixdepth using -N 0 in sendpayment script; includes sweep -- `fcc1c5e` Add command dumpprivkey to wallet-tool.py -- `baefc05` Modify default fee to 0.02% (yg-pe.py) and modify default maker_timeout_sec to 45 from 30 (bigger messages) -- `c89347a` Allow fewer maker responses to complete a coinjoin, if some makers do not answer -- `7b3b36a` Tolerate counterparties using the old DUST_THRESHOLD value -- `7a41623` Amend default number of counterparties to improve privacy +- `c7d692d` `5effddb` minsize bug fixed in ygs. +- `86d8c3a` `3506294` `b126535` handle too many requests to blockr +- `93dfefc` remove random-nick code, no longer used in 0.2 +- `6210225` `7ecaa56` fast sync +- `e46cad9` `7b4b36a` bump dust threshold +- `51ed5a2` `908208f` `d40d113` add agora to default IRC config +- `ca245e8` bugfix for rpcwallet +- `961e817` `6aaa4c9` `6b14fa2` `2ce4d8c` cleanup +- `4195589` `e256672` update installation instructions +- `4ff5519` `03fbcfd` `033662f` `2f95d88` `481d9a4` + `e1ca488` `9fba63a` implementation of logging levels +- `502b6a8` prevent crash based on tumbler changing index_cache +- `c30c4cd` direct send +- `3387422` add hostid to debug log +- `fcc1c5e` dump individual privkey +- `baefc05` `ebf28ed` `7a41623` modify some defaults +- `c89347a` `a579ff4` complete transactions with subset Credits ======= -Minor bugfixes and improvements by: -@AdamISZ -@adlai -@AlexCato -@CohibAA -Martino Salvetti -Bryan Stitt -Daniel Kraft +Thanks to everyone who directly contributed to this release - + +- @AdamISZ +- @adlai +- @AlexCato +- @CohibAA +- @the9ull +- @WyseNynja + +Thanks also to those who submitted bug reports, tested and otherwise helped out. -Thanks to those who submitted bug reports and otherwise helped out. diff --git a/joinmarket/configure.py b/joinmarket/configure.py index dfb5748a..5c4e3a47 100644 --- a/joinmarket/configure.py +++ b/joinmarket/configure.py @@ -130,7 +130,7 @@ def jm_single(): # to complete, accounting for the fact that some makers might not be # responsive. Should be an integer >=2 for privacy, or set to 0 if you # want to disallow any reduction from your chosen number of makers. -minimum_makers = 3 +minimum_makers = 2 # the fee estimate is based on a projection of how many satoshis # per kB are needed to get in one of the next N blocks, N set here # as the value of 'tx_fees'. This estimate is high if you set N=2,