Skip to content

v1.1.2

Compare
Choose a tag to compare
@dajohi dajohi released this 15 Dec 16:03
· 51 commits to master since this release

2017-12-14

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.1.2.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.1.2

This release of dcrd primarily contains performance enhancements, infrastructure improvements, and other quality assurance changes.

While it is not visible in this release, significant infrastructure work has also been done this release cycle towards porting the Lightning Network (LN) daemon which will ultimately allow LN payments to be backed by Decred.

Notable Changes

Faster Block Validation

A significant portion of block validation involves handling the stake tickets which form an integral part of Decred's hybrid proof-of-work and proof-of-stake system. The code which handles this portion of validation has been significantly optimized in this release such that overall block validation is up to approximately 3 times faster depending on the specific underlying hardware configuration. This also has a noticeable impact on the speed of the initial block download process as well as how quickly votes for winning tickets are submitted to the network.

Data Carrier Transaction Standardness Policy

The standard policy for transaction relay of data carrier transaction outputs has been modified to support canonically-encoded small data pushes. These outputs are also known as OP_RETURN or nulldata outputs. In particular, single byte small integers data pushes (0-16) are now supported.

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:

Documentation

Developer-related package changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

  • Alex Yocom-Piatt
  • Dave Collins
  • David Hill
  • detailyang
  • Donald Adu-Poku
  • Federico Gimenez
  • Jason Zavaglia
  • John C. Vernaleo
  • Jonathan Chappelow
  • Jolan Luff
  • Josh Rickmar
  • Maninder Lall
  • Matheus Degiovani
  • Nicola Larosa
  • Samarth Hattangady
  • Ugwueze Onyekachi Michael

dcrwallet v1.1.2

This release focuses on internal improvements to the wallet to increase code quality, thereby making it easier to add optional support for SPV syncing in a future release. As always, it also comes with bug fixes, new features and other improvements, which are detailed below.

Bug fixes

  • Vote transactions that become invalid when the main chain tip block changes are now removed from the wallet. This allows the invalid vote to be double spent by another vote later if the ticket is picked again on a different chain.

  • Ticket buyer now attempts to avoid purchasing tickets for old blocks if it is enabled while the wallet is catching up to the network.

  • The application now exits cleanly if an interrupt signal (e.g. ^C or SIGINT) is received while at a prompt (such as during wallet creation, or with --promptpass) instead of hanging at the prompt.

  • The application no longer refuses to start when duplicate RPC listener addresses which bind to port 0 are specified in the config.

  • The listtransactions JSON-RPC has been fixed so that the order and amount values of all results match the results returned by Bitcoin Core.

  • The gettransaction JSON-RPC has been fixed to return fees as negative numbers instead of positive, which matches the behavior of Bitcoin Core.

New features

  • A new gRPC method WalletService.GetTickets has been introduced to return all wallet ticket purchases between a block range. The results are streamed to the client.

  • A new gRPC method WalletService.ValidateAddress has been added with similar semantics and usage to the validateaddress JSON-RPC method. It can be used to decode an address string, ensuring that it is a valid address, as well as returning whether the address is owned by the wallet.

  • A new gRPC service DecodeMessageService has been introduced to make it easier for clients not able to decode raw Decred wire messages themselves to decode a message into a gRPC message. Currently, one method exists in the service, DecodeRawTransaction, which decodes a Decred transaction.

  • Pagination support has been added to the WalletService.GetTransactions method through the introduction of a new target_transaction_count parameter in the request. Responses are immediately streamed to the client when the target is reached.

  • The TX IPC pipe has been added (enabled with the pipetx option) to receive messages from the application by a parent process. When combined with the rpclistenerevents option, this allows the application to inform the parent process of the listener addresses used by the gRPC and JSON-RPC servers. This is especially useful when binding listeners to port 0 as the application is able to report the actual port chosen by the operating system to the parent process.

Other improvements

  • Vendoring management of dependency source code has been switched from glide to dep. See the README.md for new build instructions.

  • The BIP0044 coin type has been seamlessly upgraded from the old Decred value of 20 to 42. The new coin type is the coin type reserved for Decred in SLIP0044 and will allow greater compatibility with third party wallets. New wallets are always created with the new coin type, but for legacy compatibility old wallets and seed restores which have address usage with the old coin type will not be upgraded.

  • The address discovery algorithm has been made more concurrent and should see performance improvements, especially on CPUs with high core counts.

  • Performance improvements were made to the WalletService.GetTransactions gRPC method by avoiding unnecessary JSON-RPC calls to dcrd.

  • The ticketaddress option has been deprecated and replaced by the ticketbuyer.votingaddress option.

  • Publishing duplicate vote transactions in a redundant voting wallet setup no longer logs an error for a rejected duplicate transaction.

Changelog

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

decrediton v1.1.2

This release marks a major turning point in our overall look and feel of Decrediton. We have introduced consistent header areas with a new subpage/tab interface. React-motion has been added to give a better feel for transitions from page to page and expanded area reveals. All information modals and passphrase modals have been consolidated to have a consistent feel whenever they are used.

As part of the design overhaul, the Tickets page has begun its transformation to provide a much better user experience. My Tickets subpage is the first step into giving users a clearer picture into their current staking situation. In the upcoming release, we will be adding extensive statistics and graphing to further help visualize a given users' balance and staking history. Overall, we aim to continue to add more tools that will help users' staking experience be much more enjoyable and carefree.

We have also added advanced daemon setup abilities for users that want to use remote daemons or use a different location for their blockchain data. In the next release, we plan on also adding the ability to handle advanced back-end wallet setups: easily switch between different wallet files on the same machine, connecting to a remote wallet and other possible situations. But these advanced options will also be completely transparent for users that choose to run with the default settings.

We have added a Security Center page that will be a catch-all place to store tools that we feel have utility, but aren't needed for everyday normal wallet operation. The first 2 tools that have been added are for Signing and Verifying messages using addresses and private keys to prove ownership of a given address. Here is a typical use case: User A wants to prove to User B that they control a given address. With the Sign Message tool, User A enters the address, a message and their wallet's private passphrase. The tool produces a hash that was created based on that address' private key and the given message. With the Verify Message tool, User B can use the address in question, the hash and the message from User A to verify that it was signed using that address' private key.

We are also happy to announce the introduction of internationalization. Brazilian Portuguese has been added for the first pass and we will be slowly adding more languages on every new release.

Things to expect in the next release:

  • New overview page design
  • Rich historical Statistics/Graphs
  • New staking account user experience
  • Advanced wallet settings
  • More languages translated

Bug fixes

  • Fix issue on Windows caused by using "Aux" as a filename. Aux is a restricted filename with Windows and a simple filename change fixed it.

  • Fix shutdown issue with macOS. When cmd-Q or quitting Decrediton from the dock caused dcrd and dcrwallet to not be shutdown in the background. By adding a final closeClis() in app.on("before-quit",...) it ensures that everything is closed on any shutdown.

  • Removed Skip Sync button due to the new slip44 change in dcrwallet. With the new coin type change, dcrwallet needs to check if there has been any address usage up to that point in the chain for a given wallet.

  • Shorten account names in various areas to avoid obnoxious overflow.

  • Fix issue that was occuring when clearing out stakepool configurations. This would cause users to possibly have incorrect stakepool setups.

  • Change functionality of the space key during seed entry. Previously, when the user would enter the space key they would end up not "selecting" a word and then just type the whole seed. Now the space "selects" the word just as pressing tab does.

Changelog

All commits since the last release may be viewed on GitHub here. Also see
all changes to dcrwallet here.