Skip to content

@dajohi dajohi released this Feb 6, 2019 · 3 commits to master since this release

2019-02-06

Install

To install the command line tools, please see dcrinstaller.
To install decrediton download, uncompress, and run decrediton Linux or decrediton macOS or decrediton Windows.

See manifest-v1.4.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.4.0

This release of dcrd introduces a new consensus vote agenda which allows the
stakeholders to decide whether or not to activate changes needed to modify the
sequence lock handling which is required for providing full support for the
Lightning Network. For those unfamiliar with the voting process in Decred, this
means that all code in order to make the necessary changes is already included
in this release, however its enforcement will remain dormant until the
stakeholders vote to activate it.

It also contains smart fee estimation, performance enhancements for block relay
and processing, a major internal restructuring of how unspent transaction
outputs are handled, support for whitelisting inbound peers to ensure service
for your own SPV (Simplified Payment Verification) wallets, various updates to
the RPC server such as a new method to query the state of the chain and more
easily supporting external RPC connections over TLS, infrastructure
improvements, and other quality assurance changes.

The following Decred Change Proposals (DCP) describes the proposed changes in detail:

It is important for everyone to upgrade their software to this latest release
even if you don't intend to vote in favor of the agenda.

Downgrade Warning

The database format in v1.4.0 is not compatible with previous versions of the
software. This only affects downgrades as users upgrading from previous
versions will see a lengthy 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

Fix Lightning Network Sequence Locks Vote

In order to fully support the Lightning Network, the current sequence lock
consensus rules need to be modified. A new vote with the id fixlnseqlocks is
now available as of this release. After upgrading, stakeholders may set their
preferences through their wallet or Voting Service Provider's (VSP) website.

Smart Fee Estimation (estimatesmartfee)

A new RPC named estimatesmartfee is now available which returns a suitable
fee rate for transactions to use in order to have a high probability of them
being mined within a specified number of confirmations. The estimation is based
on actual network usage and thus varies according to supply and demand.

This is important in the context of the Lightning Network (LN) and, more
generally, it provides services and users with a mechanism to choose how to
handle network congestion. For example, payments that are high priority might
be willing to pay a higher fee to help ensure the transaction is mined more
quickly, while lower priority payments might be willing to wait longer in
exchange for paying a lower fee. This estimation capability provides a way to
obtain a fee that will achieve the desired result with a high probability.

Support for Whitelisting Inbound Peers

When peers are whitelisted via the --whitelist option, they will now be
allowed to connect even when they would otherwise exceed the maximum number of
peers. This is highly useful in cases where users have configured their wallet
to use SPV mode and only connect to dcrd instances that they control for
increased privacy and guaranteed service.

Several Speed Optimizations

Similar to previous releases, this release also contains several enhancements to
improve speed for the initial sync process, validation, and network operations.

In order to achieve these speedups, there is a lengthy one time database
migration, as previously mentioned, that typically takes anywhere from 30
minutes to an hour to complete depending on hardware.

Faster Tip Block Relay

Blocks that extend the current best chain are now relayed to the network
immediately after they pass the initial sanity and contextual checks, most
notably valid proof of work. This allows blocks to propagate more quickly
throughout the network, which in turn improves vote times.

UTXO Set Restructuring

The way the unspent transaction outputs are handled internally has been
overhauled to significantly decrease the time it takes to validate blocks and
transactions. While this has many benefits, probably the most important one
for most stakeholders is that votes can be cast more quickly which helps reduce
the number of missed votes.

RPC Server Changes

New Chain State Query RPC (getblockchaininfo)

A new RPC named getblockchaininfo is now available which can be used to query
the state of the chain including details such as its overall verification
progress during initial sync, the maximum supported block size, and that status
of consensus changes (deployments) which require stakeholder votes. See the
JSON-RPC API Documentation
for API details.

Removal of Vote Creation RPC (createrawssgen)

The deprecated createrawssgen, which was previously used to allow creating a
vote via RPC is no longer available. Votes are time sensitive and thus it does
not make sense to create them offline.

Updates to Block and Transaction RPCs

The getblock, getblockheader, getrawtransaction, and
searchrawtransactions RPCs now contain additional information such as the
extradata field in the header, the expiry field in transactions, and the
blockheight and blockindex of the block that contains a transaction if it
has been mined. See the JSON-RPC API Documentation
for API details.

Built-in Support for Enabling External TLS RPC Connections

A new command line parameter (--altdnsnames) and environment variable
(DCRD_ALT_DNSNAMES) can now be used before the first launch of drcd to specify
additional external IP addresses and DNS names to add during the certificate
creation that are permitted to connect to the RPC server via TLS. Previously,
a separate tool was required to accomplish this configuration.

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:

Documentation:

Developer-related package and module changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

  • Corey Osman
  • Dave Collins
  • David Hill
  • Dmitry Fedorov
  • Donald Adu-Poku
  • ggoranov
  • githubsands
  • J Fixby
  • Jonathan Chappelow
  • Josh Rickmar
  • Matheus Degiovani
  • Sarlor
  • zhizhongzhiwai

dcrwallet v1.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 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.

  • Fixed reorganizations failing with "missing credit value" errors. This
    was not a database corruption issue and a wallet restore is not necessary.

  • Fixed the block hash returned by gRPC WalletService.GetTransaction
    responses. This method was prevously using the transaction hash instead
    of the hash of the block the transaction was mined in.

  • Fixed error handling in the RPC sync mode to ensure some synchronization
    errors are not ignored.

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
    as SpvSync 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.

decrediton v1.4.0

This decrediton release has been mostly dedicated to fixing nagging issues
with users and cleaning up styling and design overall. We are also happy to
include new features such as: alpha Trezor support, initial alternative color themes,
enhanced Governance/Politeia integration and a prominent page to choose SPV or normal mode.

We are proud to introduce initial Trezor hardware wallet support. This includes
the ability to create transactions in decrediton and then sign them with the
connected device. We will be working hard to add staking on Trezor in the near
future.

Alternative color themes have been a constantly suggested feature since the
launch of decrediton. We have added an initial proof of concept for a dark theme
toggle. The colors are not yet final and design will hopefully provide a series
of possible themes instead of simply light and dark.

This release is the first to directly ask users on startup whether or not they
would like to use SPV mode or not. This will hopefully increase SPV usage and
provide better/faster wallet support for most users.

New features

  • Trezor integration has been added. This allows users to essentially use
    decrediton as watch-only wallet that is able to have its transactions signed
    directly by their Trezor device. Staking isn't yet currently available, but
    we'll be looking in to adding that soon. While we have tested and verified
    this initial Trezor integration, we will hold off on prominently advertising
    this until we can fully confirm it is bug free and secure.

  • Decrediton has switched to using the ticketbuyer v2 service from the wallet
    (instead of the old v1). Given that after DCP-0001 the
    ticket price has been stable, there's no need for that many configuration
    parameters anymore. Version 2 of the ticket buyer needs to be configured only
    with the source account, target stakepool and how much balance should be left
    spendable. The buyer will then purchase as many tickets as possible, while
    maintaining that balance.

  • Launcher Sync Stream. Now both modes (SPV/RPC) both use the same notification
    types to update during launching. This helps with being able to allow dcrwallet
    to handle all of the syncing and simply just update on similiar notifications.
    Previously, there were situations that were causing issues since syncing steps
    would be done out of order.

  • All users will see a new page on first load that lets them select whether or
    not they would like to enable SPV mode. We have also added a link to a newly
    created document explaining everything about SPV.

  • We have added an early proof of concept for color theme toggling. The colors
    for the added dark theme are still being finalized by design, but the button
    can be found on the Settings page.

  • Whenever a panic is detected by decrediton in dcrd or dcrwallet, users are now
    sent to a seperate fatal error screen where they will be able to copy the logs
    to be able to provide them to the developers and support. This will hopefully
    help users receive better direction to alleviate issues that are hitting.

  • Notifications have been completed restyled and fixed to allow for multiple
    simultaneous notifications. There is now a prominent closer button and timer
    for automatic notification closing.

Other improvements

  • Eeter and kylefirethought have delivered a whole new set of animated menu icons.
    These can be seen when hovering over a given menu page tab.

  • The Governance Page has received a large styling overhaul as provided by Eeter
    LLC. Most importantly, notification bubbles have been added to let users
    know when there are new proposals and votes to see.

  • Various clean up and refinement to the launcher. There were issues in SPV mode
    that were causing confusion about whether it was waiting to connect to a
    daemon to proceed or not. Now it should always be clear to the user when they
    need to resolve something to proceed or if they should expect to wait for
    something to happen.

  • We have updated some error messages to better explain to users what the
    problem is and how it can be resolved.

  • Watch-only wallets are now able to create unsigned transactions that can be
    transferred to an unlocked wallet for signing and subsequent broadcasting.

  • Add an import script button to the Add Stakepool form. There are some users
    that wish to simply import their script without having to communicate with any
    outside sources.

  • The min default relay fee was updated in dcrd a few releases ago and now the
    network has sufficiently upgraded to allow for wallet software to use 0.0001
    DCR/kB as the default. Any transaction or ticket created in decrediton or
    dcrwallet should now use that minimum fee from now on.

  • Change to use the documentation subsystem to add the release notes. This will
    allow us to be more flexible when adding new release notes and letting users
    review older ones.

  • Add decrediton logs to the Logs tab underneath the Help page.

  • With the addition of getblockchaininfo json-rpc command in dcrd, we are
    now able to properly determine the progress of dcrd syncing. This removes the
    need to use outside sources to figure out know the syncing progress.

  • Transactions are now decoded within decrediton instead of being sent back to
    dcrwallet for decoding. This should help with performance to avoid an
    unnecessary request.

  • Chinese language has been extensively reviewed by long time Asian community
    contributor @Guang168

Bug fixes

  • There were various issues with the display of recent staking transactions on
    the Overview and the My Tickets pages.

  • Startup stats have been fixed to properly update and work better for large wallets

  • The application About button in macOS now also opens the About modal.

  • CSV exporting now correctly generates timestamps in UTC or local time based
    on app config (thanks to @rocknet for the first contribution).

Changelog

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

Assets 29
You can’t perform that action at this time.