github decred/decred-binaries v1.2.0

latest releases: v1.7.1, v1.7.0, v1.7.0-rc3...
5 years ago

2018-04-26

Install

To install the command line tools, please see dcrinstaller.

To install decrediton download, uncompress, and run
decrediton Linux or
decrediton OSX or
decrediton Windows.

See manifest-v1.2.0.txt, and the package specific manifest files for sha256 sums and the associated .asc files to confirm those shas.

See README.md for more info on verifying the files.

Contents

dcrd v1.2.0

This release of dcrd contains significant performance enhancements,
infrastructure improvements, improved access to chain-related information for
providing better SPV (Simplified Payment Verification) support, and other
quality assurance changes.

A significant amount of infrastructure work has also been done this release
cycle towards being able to support several planned scalability optimizations.

Downgrade Warning

The database format in v1.2.0 is not compatible with previous versions of the
software. This only affects downgrades as users upgrading from previous
versions will see a one time database migration.

Once this migration has been completed, it will no longer be possible to
downgrade to a previous version of the software without having to delete the
database and redownload the chain.

Notable Changes

Significantly Faster Startup

The startup time has been improved by roughly 17x on slower hard disk drives
(HDDs) and 8x on solid state drives (SSDs).

In order to achieve these speedups, there is a one time database migration, as
previously mentioned, that will likely take a while to complete (typically
around 5 to 6 minutes on HDDs and 2 to 3 minutes on SSDs).

Support For DNS Seed Filtering

In order to better support the forthcoming SPV wallets, support for finding
other peers based upon their enabled services has been added. This is useful
for both SPV wallets and full nodes since SPV wallets will require access to
full nodes in order to retrieve the necessary proofs and full nodes are
generally not interested in making outgoing connections to SPV wallets.

Committed Filters

With the intention of supporting light clients, such as SPV wallets, in a
privacy-preserving way while still minimizing the amount of data that needs to
be downloaded, this release adds support for committed filters. A committed
filter is a combination of a probalistic data structure that is used to test
whether an element is a member of a set with a predetermined collision
probability along with a commitment by consensus-validating full nodes to that
data.

A committed filter is created for every block which allows light clients to
download the filters and match against them locally rather than uploading
personal data to other nodes.

A new service flag is also provided to allow clients to discover nodes that
provide access to filters.

There is a one time database update to build and store the filters for all
existing historical blocks which will likely take a while to complete (typically
around 2 to 3 minutes on HDDs and 1 to 1.5 minutes on SSDs).

Updated Atomic Swap Contracts

The standard checks for atomic swap contracts have been updated to ensure the
contracts enforce the secret size for safer support between chains with
disparate script rules.

RPC Server Changes

New getchaintips RPC

A new RPC named getchaintips has been added which allows callers to query
information about the status of known side chains and their branch lengths.
It currently only provides support for side chains that have been seen while the
current instance of the process is running. This will be further improved in
future releases.

Changelog

All commits since the last release may be viewed on GitHub here.

Protocol and network:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

checkdevpremine utility changes:

Documentation:

Developer-related package changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

  • Andrew Chiw
  • Daniel Krawsiz
  • Dave Collins
  • David Hill
  • Donald Adu-Poku
  • Javed Khan
  • Jolan Luff
  • Jon Gillham
  • Josh Rickmar
  • Markus Richter
  • Matheus Degiovani
  • Ryan Vacek

dcrwallet 1.2.0

This release provides bug fixes for issues reported by users as well as new RPC
features and additions which are required for Decrediton and Politeia. SPV work
is ongoing but these changes will not land until a future release and after most
of the network nodes are running with committed filter support.

This release contains a database upgrade and once upgraded it is not possible
to downgrade to previous wallet releases without performing a seed restore with
the old version.

Bug fixes

  • Orphan votes (votes which have become invalid for the new main chain tip block
    after a reorg or missed vote) are now rejected from reentering the wallet if
    still notified by dcrd.

  • Watching only wallets are now usable again, after a breaking change to them
    introduced in the 1.1.2 release.

  • The transaction fee when purchasing tickets with the purchaseticket JSON-RPC
    and WalletService.PurchaseTickets gRPC methods will now fallback to the
    wallet's configured fee rate if not specified by the RPC request.

  • Various gRPC methods which allowed specifying 0 DCR as a target amount (e.g.
    WalletService.FundTransaction) now follow their documentation and will
    return or use as many unspent outputs as possible.

  • Outputs of transactions with an expiry set are not spendable by consensus
    rules until having reached coinbase maturity. These outputs are no longer
    returned or used when selecting previous outputs to create new transactions.

New features

  • A new gRPC method WalletService.UnspentOutputs has been added to return a
    stream of all wallet unspent outputs. Outputs may be filtered by their
    associated account and required confirmations, as well as stopping once a
    total target amount has been reached or exceeded.

  • A new gRPC method WalletService.BestBlock has been added which will return
    the hash and height of the current main chain tip block. Previously, this
    information was only available as a unary RPC with the
    WalletService.Accounts method.

  • The gRPC method WalletService.GetTickets will paginate results if called
    with a new target ticket count parameter.

  • A new gRPC method WalletService.CommittedTickets has been added to find
    ticket purchase hashes specified by the request where the largest P2PKH
    commitment amount is controlled by the wallet. The commitment address is
    additionally returned by the result.

  • A new gRPC method WalletService.SignMessages has been added to sign multiple
    messages at a time without needing to unlock and lock the wallet before and
    after each call.

  • The gRPC BlockDetails and BlockInfoResponse messages now include a new
    field which specifies whether votes in the block disapprove of the parent
    block.

  • A new JSON-RPC method publishunminedtransactions has been added which
    resends all unmined transactions of the wallet.

  • A new JSON-RPC method sweepaccount has been added which can be used to move
    as much value as possible from an account to either (possibly the same)
    account or an address. This RPC can be used in place of the consolidate
    method but without knowing and specifying exactly how many inputs to use.

  • The new JSON-RPC methods startautobuyer and stopautobuyer have been added
    which can start and stop the automatic ticket purchaser over JSON-RPC, similar
    to the already existing StartAutoBuyer and StopAutoBuyer gRPC methods of
    the TicketBuyerService.

  • The JSON-RPC method getbalance now returns aggregate balances for all
    accounts if called with the special * account name.

Other improvements

  • The sendtosstx, sendtossgen, and sendtossrtx JSON-RPC methods have been
    removed. These RPCs were intended to manually send ticket purchases, votes,
    and revocations manually, but were unimplemented and would cause crashes if
    used.

  • Transaction size estimation has been improved to more accurately estimate
    fees, in particular when redeeming with pay-to-script-hash redeem scripts.

  • The help JSON-RPC method text for the getbalance RPC has been updated to
    reflect the changes made to the returned object.

  • Users are now informed with log messages to configure their public passphrase
    or enter it on startup if the wallet is encrypted with one but it was not
    specified.

  • Script execution errors during sanity checks after signing inputs now record
    additional information about the failure including the previous output and
    script being spent and the signature script used by the input.

Changelog

All commits since the last release may be viewed on GitHub
here.

decrediton 1.2.0

This release of decrediton adds some major changes to the wallet startup,
overview page and adds the first round of statistics for better user
information. Now that the overall look and feel designed by Eeter has been
impletmented we will be focusing on refinement and adding improved
responsiveness (eg dark mode, resolving to various media widths).

Launcher has been redesigned to provide the user with a more intuitive startup
experience. In normal working mode, the daemon (of the chosen network) will
begin to sync and become operational while the user completes wallet
creation/selection. Then once both the wallet is ready and the daemon has
synced the wallet will fully load.

A tutorial, release notes, settings and logs have all been added to the
launcher for the user to utilize whilst they may be waiting for their daemon
to sync. Hopefully this will allow the user to more seamlessly create wallets
with less confusion or require any additional support.

The wallet creation by seed has received a substantial update as well. We now
allow the user to copy seeds (if they complete a warning screen) and also paste
seeds. And for confirmation for new wallets only requires the user to complete
1/3 of the words to confirm storage of wallet's seed.

Overview has been redesigned to give the user more information about their
wallet's current situation and to guide them where to find various features
of their wallet. Basic graphs covering balances, tickets and transactions have
been added. All recent transactions and recent ticket activity can be found
below the overview graphs. We will be adding more features to the overview page
as we gauge user interest and feedback on existing additions.

Introductory data prepartion and statistics have been implemented for this
release. For now we are providing a small window of lookback for transactions,
staking and other information. The reduced window size is mostly an issue
with unsatisfactory performance. When this performance improves, we will be
adding custom windows and window lengths for custom graphing and exporting
options.

New Features

  • Validate Addresses - a form to validate addresses has been added to the
    Security Center. This will allow users to test addresses to confirm address
    ownership and/or validity.

  • Filter by address - now transactions can be filtered by address in History.
    When the user enters a string into the address filter form, it will show any
    address that has an output with a matching address.

  • Charts - we have decided to use recharts as our first
    charting solution.

  • Import wallet from hex seed - instead of entering in the 33 word
    mnemonic, they are now able to use the hex representation of their seed.

  • Export data to CSV - we now all users to export various types of data to csv.
    These options are found under the Transactions page.

  • Show logs - logs can now be found on the launcher and on the help page.
    For now, we only show the logs of the current instance of wallet and daemon.
    This is mostly due to performance with pulling in thousands of lines of text.

Changelog

All commits since the last release may be viewed on GitHub
here.

Don't miss a new decred-binaries release

NewReleases is sending notifications on new releases.