Releases: decred/dcrwallet
v1.8.1
This release contains important bug fixes for VSP users.
Bug fixes
-
A warning is logged if a VSP fee payment could not be created due to a locked wallet (
1c1bcfbd
). -
VSP fee payments started by RPC requests are no longer cancelled early after the RPC returns (
07854e37
). -
The random duration interval during which ticket fee payment operations occur was fixed using the correct calculation of when a ticket goes live (
c4c6c421
). -
Fee payment confirmations are no longer assumed to be valid after they receive 6 confirmations, and the VSP is contacted to ensure that it has also confirmed the payment (
7c551ce6
). -
Block heights for ticket liveness and expiry are recalculated properly whenever unmined tickets are processed by the VSP client (
1319da0b
).
New features
- The verbose
getblock
andgetblockheader
JSON-RPC results now include apowhash
field with the hash calculated for the Proof-of-Work algorithm.
Changelog
The following lists all commits since dcrwallet v1.8.0:
1c1bcfbd
: vsp: Dont ignore locked wallet errs07854e37
: vsp: Hardcode background ctxc4c6c421
: vsp: Fix blocksUntilLive calc7c551ce6
: vsp: Only remove confirmed payments1319da0b
: vsp: Recalculate live/expiry heightbc7f095c
: Bump patch version for upcoming 1.8.1 releasea02926a8
: Update dcrd JSON-RPC types module7cb12ad4
: Update decred dependencies
Code Contributors (alphabetical order):
- Jamie Holdstock (@jholdstock)
- Josh Rickmar (@jrick)
v1.8.0
This release enables the votes for and implements the necessary features to follow the upcoming hard forks described by DCP0011 and DCP0012. As always, other minor feature additions and bug fixes have been included.
Bug fixes
-
Manual ticket revocations are no longer performed by the VSP client (
c9fc99b2
). -
A data race on the fee transaction pointer in the VSP client was corrected (
a8f2b058
). -
VSP options in the config file are validated at startup to prevent invalid configurations that do not specify all required settings (
6cc8d053
). -
Ticket purchasing performed through the JSON-RPC server now respects the configured maximum VSP fee (
a19dcb43
). -
A data race on rescanned block hashes in SPV mode was corrected (
dfcac12f
). -
New addresses can no longer be generated and returned externally for an imported voting account. This does not affect address generation when paying to voting account addresses during ticket buying (
d9945563
).
New features
-
Blocks are now validated according to either the initial proof-of-work algorithm or the difficulty and proof-of-work hash algorithm specified by DCP0011 (
3a52f00a
). -
Votes created by the wallet will use the subsidy split described by DCP0012 if the agenda is active (
8374bd52
). -
Mixed ticket purchasing now trickles the ticket purchases with random delays to harden against profiling specific buyers by their ticket timings (
e71decbd
). -
Mixed ticket purchasing was implemented by the
WalletService.PurchaseTickets
gRPC method (5b6ab6da
,4c697648
). -
A
WalletService.Address
gRPC method was added to query the wallet for details about its addresses (80a0e716
,a333c1f5
). -
A
WalletService.DumpPrivateKey
gRPC method was added to dump private keys of wallet addresses (c609d558
,12b9c552
). -
A
VotingService.SetTSpendPolicy
gRPC method was added to set a voting policy for a specific TSpend transaction. AVotingService.TSpendPolicies
gRPC method was added to query the voting policies of these specific TSpends (7352c1cb
). -
In SPV mode, TSpends are now fetched at wallet startup (
eab54c36
). -
A
--cpuprofile
config flag was added to write a pprof CPU profile for the entire process execution. The--memprofile
flag was changed to also profile the entire process execution rather than stopping after 5 minutes (39a379eb
). -
An additional newline character is no longer required when providing the seed during seed restore when entering seeds in hexadecimal form (
f31e848f
). -
The passphrase confirmation can now be piped during the
--create
prompts (dd93c2f6
).
Changelog
The following lists all commits included in dcrwallet v1.8.0 that were not backported to a prior 1.7.x release:
e71decbd
: Trickle tickets during mixed buying82f59828
: Update version prerelease and metadata for release-v1.8 branch92529a4b
: Prepare v1.8.0 release3a52f00a
: Validate that blocks satisfy either V1 or V2 PoW85b48444
: Bump deps.96817277
: Remove features marked deprecated8374bd52
: Follow DCP0012 once activated.99be2039
: Remove jsonrpc/types module replacement1683d3ae
: multi: Fix "the the" comment typos.c9fc99b2
: vsp: Don't revoke tickets.a8f2b058
: vsp: Add missing mutex locks.b6467521
: multi: Introduce AgendaChoices type.816f16d6
: vsp: Don't export Policy.d95475b1
: vsp: Unparam Policy.bf8e7a09
: vsp: Don't export Wallet.6cc8d053
: Validate VSP configs on startup.a19dcb43
: jsonrpc: Respect configured VSPMaxFee.c6933a35
: Move logger subsystem variables to internal package7cd8248f
: linter: fixes72eefbed
: Revert unintentional context change from previous commitdc38eb65
: Unexport wallet SaveRescanned method0aeb02cd
: vsp: Use client provided by vspd package.89623dc9
: build: Test against Go 1.2069d8b47b
: multi: linter cleanupdfcac12f
: Avoid spv data race on rescanned block hashes86898358
: Bump remaining golang.org/x/* modulese89da321
: Bump golang.org/x/sys module904a6db4
: cmd: update to latest deps5b6ab6da
: multi: Modify PurchaseTickets method.4c697648
: rpc: Add parameters to PurchaseTickets.c609d558
: server: Add DumpPrivateKey.12b9c552
: rpc: Add DumpPrivateKey method type.80a0e716
: server: Add Address method.a333c1f5
: rpc: Add address method type.eab54c36
: Fetch tspends in SPV mode39a379eb
: dcrwallet: Add --cpuprofile option7352c1cb
: rpc: Add TSpendPolicies and SetTSpendPolicy requestsf31e848f
: Do not require additional newline prompting a hex seeddd93c2f6
: Allow passphrase confirmation to be read from non-tty566eff83
: multi: Remove some unused code183083d6
: multi: Update dcrd pkgs to wip major versions5e7d5e73
: multi: Bump major module version to 3b16f7ca0
: vsp: Pass the context to feepayment instead of creating a new one.fe1bb25f
: tests: Use a single context in tests.3b3e9e04
: build: Test against Go 1.193d518eab
: whack a commented842ec8
: Run go fmt from Go 1.19 over the tree7cdfb44a
: Bump development version4ed5a4c6
: Prevent panic in RPC-mode getstakeinfo4c162c4f
: Fix compatibility with latest development dcrd04d8d0f6
: Fix regen.sh return code if $UID is unset736efd2a
: Make default fee amount constant more readable185f9cd7
: Update to latest gRPC4941af16
: Updates for Go 1.1880bcd2f3
: Switch away from deprecated terminal packaged9945563
: wallet: No taking voting addresses.
Code Contributors (alphabetical order):
- Alex Yocom-Piatt (@alexlyp)
- @bgptr
- Dave Collins (@davecgh)
- David Hill (@dajohi)
- Jamie Holdstock (@jholdstock)
- @JoeGruffins
- ...
v1.6.3
release-v1.6.3 release-v1.6.3
v1.6.2
release-v1.6.2 release-v1.6.2
v1.6.1
release-v1.6.1 release-v1.6.1
v1.6.0
v1.4.0
dcrwallet 1.4.0
This release focuses on bug fixes and general improvements for both direct
dcrwallet command line users and other projects building on top of dcrwallet
(such as Decrediton and upcoming mobile wallets). A new voting agenda is also
part of this release to enable votes on
DCP0004.
A comprehensive list of improvements and bug fixes follows.
Bug fixes
-
Fixes were made to which and how many addresses and wallet UTXOs are watched
by the SPV and RPC syncers. This prevents several bugs resulting from missed
transactions, such as avoiding double spending errors and spends of unknown
inputs. -
Committed filter creation and validation is fixed on all ARM processors.
Previously, an ARM assembly optimization could produce incorrect output for
the siphash function. -
During initial wallet creation, the database is now always cleanly closed
before the process exits. Previously, this was a race and the new wallet
database may have been missing writes during the initialization step. -
RPC connection errors to dcrd are now properly logged
-
A possible deadlock situation was removed by adding a missing mutex unlock to
the SPV peering implementation. -
Error handling has been improved when querying unmined and unspent ticket
transactions. -
The total number of logged transactions processed by the RPC syncer has been
fixed. -
The process can be interrupted at startup if while being blocked on acquiring
the wallet's database lock. Previously, the process would have needed to be
killed, or wait for an existing running wallet to shutdown.
New features
-
The gRPC method
WalletService.ValidateAddress
now returns pubkey of P2PKH
addresses and BIP0044 branch and child index if the address is controlled by
the wallet. -
The gRPC method
WalletService.ImportScript
is now usable by watching-only
wallets. -
The gRPC method
WalletService.StakeInfo
now includes counts of unspent
tickets. -
A new gRPC method
TicketBuyerV2Service.RunTicketBuyer
has been added to run
the SPV-compatible ticket buyer. -
A new gRPC method
WalletService.GetTicket
has been added to query the
details of an individual ticket by its transaction hash. -
A new gRPC method
WalletService.SweepAccount
has been added to sweep all
UTXOs of an account to a single new output. -
A new gRPC method
WalletService.RpcSync
has been added, providing a similar
asSpvSync
to perform wallet synchronization with a dcrd RPC connection. -
The SPV and RPC syncers now support callbacks for syncing notifications.
These notifications are also availble to gRPC clients who invoke the syncers. -
Creating a new simnet wallet now shows an address that can be used for mining
rewards. -
RPC syncing connections to dcrd can now be proxied using the
--proxy
,
--proxyuser
, and--proxypass
options.
Other improvements
-
Builds have been converted to use Go Modules. The repository has been split
into various submodules, making it far easier to write applications that
import dcrwallet packages as libraries. -
Wallet database API is exported for projects that need support for alternative
database drivers (such as dcrandroid). -
Default transaction relay fee has been dropped to 0.0001 DCR/kB.
-
Transaction size and fee estimation is improved for ticket purchases and any
transaction that redeems a P2SH output. -
DCP0001-0003 now apply to simnet from the start of the chain (note that this
is a hard fork for existing simnets). -
Log files are never automatically deleted. Previously, log files would be
rotated and old log files would be automatically removed. This has been
changed to avoid the loss of potentially important logs. -
Logs for unexpected database consistency issues have been improved by logging
the keys and values
Changelog
All commits since the last release may be viewed on GitHub
here.