|
| 1 | +Joinmarket-clientserver 0.9.5: |
| 2 | +================= |
| 3 | + |
| 4 | +<https://github.com/joinmarket-org/joinmarket-clientserver/releases/tag/v0.9.5> |
| 5 | + |
| 6 | +Please report bugs using the issue tracker at github: |
| 7 | + |
| 8 | +<https://github.com/joinmarket-org/joinmarket-clientserver/issues> |
| 9 | + |
| 10 | + |
| 11 | +Upgrading |
| 12 | +========= |
| 13 | + |
| 14 | +To upgrade: |
| 15 | + |
| 16 | +*Reminder: always back up and recreate your joinmarket.cfg file when doing the upgrade; this is to make sure you have the new default settings.* |
| 17 | + |
| 18 | +(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).) |
| 19 | + |
| 20 | +(If you are upgrading from a version pre-0.9.0 please read the [release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.9.0.md) to find out how about [fidelity bonds](../fidelity-bonds.md) are relevant to your use-case). |
| 21 | + |
| 22 | +First run the `install.sh` script as mentioned in the README. When prompted to overwrite the directory `jmvenv`, accept. |
| 23 | + |
| 24 | +Note that `./install.sh -?` will show the options for installation. |
| 25 | + |
| 26 | +Notable changes |
| 27 | +=============== |
| 28 | + |
| 29 | +### Support sending to taproot |
| 30 | + |
| 31 | +This is mostly (though not 100%) a change to the backend bitcoin library python-bitcointx, which has been upgraded to [v1.1.3](https://github.com/Simplexum/python-bitcointx/releases/tag/python-bitcointx-v1.1.3) and in this version, includes the validation of bech32m as taproot addresses. |
| 32 | +(Note that the master branch of python-bitcointx now has full taproot support, i.e. constructing and spending taproot outputs, also; but we don't yet have a use case for that, anyway). |
| 33 | +Users can now send to taproot addresses via any of the user interfaces (CLI, Qt GUI, web UI). |
| 34 | + |
| 35 | +* `b700f37` Add send-to-P2TR |
| 36 | +* `a467ec4` upgrade to python-bitcointx 1.1.3 |
| 37 | + |
| 38 | +### Extensive updates to the JSON RPC-API (jmwalletd.py); first fully working version |
| 39 | + |
| 40 | +After a lot of testing and bugfixing, the following commits were added to patch up the JSON RPC-API feature that was added in [0.9.3](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases/tag/v0.9.3). The new [webUI project](https://github.com/joinmarket-webui/joinmarket-webui) is using this and is now functional (alpha release coming shortly). |
| 41 | + |
| 42 | +For those not familiar, the RPC API can be served by running the script `jmwalletd.py` and note that unlike other Joinmarket scripts, a wallet need not be specified, since it will allow the unlocking of any wallet (or creation of a new one) from a calling RPC client. See the [user docs](https://joinmarket-org.github.io/joinmarket-clientserver/JSON-RPC-API-using-jmwalletd.html) and [API docs](https://joinmarket-org.github.io/joinmarket-clientserver/api/) for details. |
| 43 | + |
| 44 | +There are several commits, broken into two groups here: |
| 45 | + |
| 46 | +#### New endpoints/functionality |
| 47 | + |
| 48 | +* `29b459a` Add freeze method to RPC-API |
| 49 | +* `89896e0` Add yieldgen report endpoint to API |
| 50 | +* `6e07e4f` Add /taker/stop endpoint to RPC |
| 51 | +* `28fdaa1` Allow re-unlock of wallets via /unlock |
| 52 | +* `3939714` Add status, label and extradata to RPC display |
| 53 | +* `e598b35` Add RPC API endpoint for showseed |
| 54 | + |
| 55 | +#### Fixes to bugs in logic, improvements |
| 56 | + |
| 57 | +* `a0b7b38` Return TransactionFailed when insufficient funds |
| 58 | +* `30e96f8` Do not call stopService at exit in RPC daemon |
| 59 | +* `7b822a4` Do not update coinjoin state if maker cannot start |
| 60 | +* `d493343` Ensure coinjoin state is reset if wallet switches. |
| 61 | +* `4389338` Make unconf unspent display default in jmwalletd |
| 62 | +* `ed7b4e1` Fix bugs in unlock-lock logic |
| 63 | +* `beaa8b0` fixes to API and return format |
| 64 | +* `d4d3157` Unlock does not block waiting for sync |
| 65 | +* `bd33b6d` RPC maker/start returns 409 error if no coins |
| 66 | +* `e6ea9d0` Update HTTP status codes returned by RPC-API |
| 67 | +* `fe46b7e` Allow RPC coinjoin taker_finished to accept unconf |
| 68 | +* `66d7e46` Fix RPC timelockaddress call. |
| 69 | + |
| 70 | + |
| 71 | +### Changes to dependencies |
| 72 | + |
| 73 | +Since the introduction of the use of python-bitcointx in 0.7.0, we have effectively been using two different bindings to `libsecp256k1`, i.e. there was still a dependency on coincurve even though we only used it for one or two minor things. This was obviously very suboptimal, and it has now been removed. We also remove a dependency on `libgmp` because `libsecp256k1` itself removed this dependency. Note that `68a426a` was effectively overriden by the taproot update in `a467ec4` but this has no functional effect. |
| 74 | + |
| 75 | +* `537e317` Remove coincurve dependency, use python-bitcointx |
| 76 | +* `68a426a` Update secp256k1 to latest upstream version. |
| 77 | +* `5f942d5` remove all libgmp dependency references |
| 78 | + |
| 79 | +* `c59dcd3` Remove libgmp-dev dependency |
| 80 | + |
| 81 | +The QR code dependency is one of the more security sensitive ones, so the version was pinnned: |
| 82 | + |
| 83 | +* `f054921` Pin python-qrcode to a specific version |
| 84 | + |
| 85 | +### Installation script improvements |
| 86 | + |
| 87 | +You can now pass a flag to the `install.sh` script which makes the installation suitable for deployment with Docker: |
| 88 | + |
| 89 | +* `c28bfd5` Add support for `--docker-install` with an example Dockerfile and some docs on how to use it. |
| 90 | + |
| 91 | +Also, to aid compilation on constrained devices: |
| 92 | + |
| 93 | +* `c0d6610` Limit number of parallel builds to CPU core count |
| 94 | + |
| 95 | +### Bugfix: Ensure displayed addresses are imported always in Qt |
| 96 | + |
| 97 | +See #1147 and [this explanatory comment](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1147#issuecomment-1012268971) for extra detail. In an unusual, but by no means unthinkable circumstance - a user deposits to multiple addresses in the Qt app, new addresses were being generated and displayed without being imported, meaning if they were paid to in the same Qt run, a rescan would be needed afterwards to pick them up. This is fixed. |
| 98 | + |
| 99 | +* `ac8b173` Ensure all displayed addresses are imported |
| 100 | + |
| 101 | +### UI improvements |
| 102 | + |
| 103 | +Improvement to the Qt app itself: |
| 104 | + |
| 105 | +* `c706c6e` Improve the UX of open wallet dialog. |
| 106 | +* `f899daa` Do not auto generate the QT UI code in setup.py, + `9834d73` Fix linter error |
| 107 | + |
| 108 | +All user interfaces can make use of this extra utxo information: |
| 109 | + |
| 110 | +* `1cc677a` Add derivation path to output of wallet_showutxos |
| 111 | + |
| 112 | +This change (see #1111) corrects the outdated 'used' field to 'status' (since it is multivalued): |
| 113 | + |
| 114 | +* `d110101` Rename `WalletViewEntry.used` to `WalletViewEntry.status` |
| 115 | + |
| 116 | +### Documentation |
| 117 | + |
| 118 | +A big change is that we now have a github pages site with the Joinmarket user documentation in `/docs` mirrored, [here](https://joinmarket-org.github.io/joinmarket-clientserver/), including specifically for the RPC API, [here](https://joinmarket-org.github.io/joinmarket-clientserver/api/). This requires a default `index.md` in `/docs`: |
| 119 | + |
| 120 | +* `bf6c064` Update index.md |
| 121 | +* `bd18048` add index.md for docs site contents |
| 122 | +* `fcd0d91` Add simple index file |
| 123 | +* `16cc17c` address linting complaints of openapi for RPC spec file |
| 124 | +* `1acadb7` Self-host redoc js |
| 125 | +* `44ae9f2` Set theme jekyll-theme-minimal |
| 126 | +* `91c2c48` API documentation via ReDoc |
| 127 | + |
| 128 | +Corrections to units and notation in the config file: |
| 129 | + |
| 130 | +* `1e95618` Improve examples |
| 131 | + |
| 132 | +A clarification on the `rpc_` related settings in the Joinmarket config (this is the Bitcoin Core RPC, not the RPC for Joinmarket as above): |
| 133 | + |
| 134 | +* `b953d7e` Document rpc_cookie_file and rpc_wallet_file in default config |
| 135 | + |
| 136 | +### Minor changes |
| 137 | + |
| 138 | +Minor feature improvements: |
| 139 | + |
| 140 | +* `f5c7f33` Allow signmessage to work with any index |
| 141 | +* `c957c8c` Read only single line with `--wallet-password-stdin` |
| 142 | + |
| 143 | +Minor bugfixes: |
| 144 | + |
| 145 | +* `ca85ac6` Don't throw when disabled socks config missing |
| 146 | +* `cf37639` Make Qt shutdown gracefully on reactor stop. |
| 147 | +* `9ebd538` Removed Unicode dash. |
| 148 | + |
| 149 | +We now only query scripts, not addresses from the RPC utxoset query; see #1124. |
| 150 | + |
| 151 | +* `fb4644e` Allow utxo address validation with script |
| 152 | + |
| 153 | +Fixing warnings related to custom change in a coinjoin (we warn differently if you also use a different script type): |
| 154 | + |
| 155 | +* `c5456e4` Don't show nonwallet_custom_change_warning in Qt GUI for non-cj sends |
| 156 | +* `f741fdd` Use get_txtype() / get_outtype() for address type detection |
| 157 | + |
| 158 | +Corrects error in placement of tumbler log files, if custom data directory: |
| 159 | + |
| 160 | +* `a1bcac9` Fix tumble log dir after load_program_config |
| 161 | + |
| 162 | +Credits |
| 163 | +======= |
| 164 | + |
| 165 | +Thanks to everyone who directly contributed to this release - |
| 166 | + |
| 167 | +- @abhishek0405 |
| 168 | +- @dennisreimann |
| 169 | +- @manasgandy |
| 170 | +- @Silvenga |
| 171 | +- @wukong1971 |
| 172 | +- @sangaman |
| 173 | +- @jameshilliard |
| 174 | +- @kristapsk |
| 175 | +- @AdamISZ |
| 176 | +- @theborakompanioni |
| 177 | +- @5F43CCDF |
| 178 | +- @dmp1ce |
| 179 | + |
| 180 | +And thanks also to those who submitted bug reports, tested, reviewed and otherwise helped out. |
0 commit comments