This release includes reliability fixes for mixing users and fixes to both the RPC and SPV syncers.
All users are advised to upgrade. Additionally, users of csppsolver
are advised to upgrade to the latest release (v2.4.0) of that tool.
Bug fixes
-
The websocket JSON-RPC client library has been updated to fix several data races and properly reconnect the RPC syncer if the connection is ever lost (jrick/wsrpc#9, jrick/wsrpc#11, jrick/wsrpc#12).
-
The SPV syncer will be recreated and reperform initial sync after all peers are lost (
c11c84f2
). -
To prevent spinning the CPU at 100%, the SPV syncer now adds per-peer incrementing backoffs after failed connection attempts (
ba7027e8
).
Other improvements
-
When forming an initial common set of mixing peers, all attempted sessions will now be considered, rather than only considering the most recent formation attempt. This can result in peer agreement occurring sooner and with a larger set of peers (decred/dcrd#3463).
-
When wallet is in the process of being shutdown, any ongoing mixes will be completed before the client and wallet process closes (decred/dcrd#3467,
b9bd675e
). Forcsppsolver
users, this feature depends on deploying with the latestcsppsolver
release as well. -
The
version
JSON-RPC method now includes thedcrwallet
version (9e3cbe03
). -
The
debuglevel
JSON-RPC method has been introduced, allowing the debug level of all or individual subsystems to be dynamically changed at runtime (c9d7e6a0
).
Changelog
The following lists all commits since dcrwallet v2.0.5:
5d29910b
: [release-v2.0] Prevent hang when dcrd connection is lost8e4b1da0
: [release-v2.0] loader: Only create mix client if mixing enabled.b47c4de7
: [release-v2.0] version: Crank to 2.0.608c2d3dd
: [release-v2.0] Update wsrpc moduleba7027e8
: [release-v2.0] spv: Implement per-peer increasing backoffsc11c84f2
: [release-v2.0] spv: Teardown syncer after all peers are lostb9bd675e
: [release-v2.0] Order mixclient and syncer shutdown9e3cbe03
: [release-v2.0] Add dcrwallet version to version JSON-RPC result90e5291d
: [release-v2.0] jsonrpc: Let client handle empty VSP policy fields61e7fbc4
: [release-v2.0] Do not specify TLS curve preferencesc9d7e6a0
: [release-v2.0] Implement the debuglevel JSON-RPC method
Code Contributors (alphabetical order):
- Jamie Holdstock (@jholdstock)
- Josh Rickmar (@jrick)