Skip to content

Releases: decred/decred-binaries

v1.7.0-rc3

19 Jan 18:35
11a4fb4

Choose a tag to compare

v1.7.0-rc3 Pre-release
Pre-release

Install

To install Decrediton desktop wallet, download, uncompress, and run Decrediton Linux or Decrediton macOS or Decrediton Windows.

To install the command-line tools, please see dcrinstall.

See decred-v1.7.0-rc3-manifest.txt and the other manifest files for SHA-256 hashes and the associated .asc signature files to confirm those hashes.

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

Skip to downloads

Contents

dcrwallet v1.7.0-rc3

This release includes bug fixes and improvements from v1.7.0-rc2.

Bug fixes

  • The mixing protocol was fixed to operate properly on both 32 and 64-bit hardware. This fix necessitated a breaking protocol change. All users of v1.7.0-rc1 and v1.7.0-rc2 must upgrade to continue mixing.
  • DCP0010 activation is detected when running in RPC syncing mode and will produce votes with the proper subsidy value.
  • The walletinfo JSON-RPC method now produces more reliable results when neither the SPV nor RPC syncers have been associated with the wallet.
  • A received verack message is no longer required in SPV mode. This fixes several P2P connection issues caused by dcrd sometimes sending other messages before the verack.

Changelog

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

Code Contributors (alphabetical order)

  • Jonathan Chappelow
  • Josh Rickmar

Decrediton v1.7.0-rc3

This release includes bug fixes and improvements from v1.7.0-rc2.

Bug fixes

  • Fix proper on-chain agendas being shown in Governance.
  • Improve dex page styling
  • Add Italian translations
  • Improve Dex Window functionality
  • Fix a possible cause of mixing wallet slowness.
  • Add dcrd upgrade check

Changelog

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

Code Contributors (alphabetical order)

  • Alex Yocom Piatt
  • bgptr
  • Matheus Degiovani

v1.7.0-rc2

12 Jan 21:10
11a4fb4

Choose a tag to compare

v1.7.0-rc2 Pre-release
Pre-release

Install

To install Decrediton desktop wallet, download, uncompress, and run Decrediton Linux or Decrediton macOS or Decrediton Windows.

To install the command-line tools, please see dcrinstall.

See decred-v1.7.0-rc2-manifest.txt and the other manifest files for SHA-256 hashes and the associated .asc signature files to confirm those hashes.

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

Skip to downloads

Contents

dcrd v1.7.0-rc2

This is an updated release candidate of dcrd to introduce a minor quality of life change to help prevent WebSocket client disconnections in cases where there is extremely high contention and multi-continent communication.

Changelog

This updated release candidate consists of 1 commit from 1 contributor which total to 2 files changed, 14 additional lines of code, and 7 deleted lines of code.

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

RPC:

Code Contributors (alphabetical order):

  • Dave Collins

dcrwallet v1.7.0-rc2

This release includes bug fixes and improvements from v1.7.0-rc1.

Bug fixes

  • The subsidy split defined by DCP0010 is correctly used during voting if the consensus change is activated.
  • The listreceivedbyaccount JSON-RPC method will no longer panic if the wallet contains imported BIP0044 accounts.
  • The log level for cancelled streaming gRPC calls was reduced from error to debug to remain consistent with logging of the invocation.

Changelog

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

Code Contributors (alphabetical order)

  • Matheus Degiovani
  • Josh Rickmar

Decrediton v1.7.0-rc2

We've fixed a few bugs as well as adding improvements to the DEX.

Bug fixes

  • Make mix.decred.org the new default csppserver.
  • Add DEX Seed confirmation page.
  • Allow users to select whether or not they would like to use the native DEX BTC wallet.
  • Various styling improvements.

Changelog

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

Code Contributors (alphabetical order)

  • Alex Yocom-Piatt
  • bgptr

v1.7.0-rc1

05 Jan 17:57
11a4fb4

Choose a tag to compare

v1.7.0-rc1 Pre-release
Pre-release

Install

To install Decrediton desktop wallet, download, uncompress, and run Decrediton Linux or Decrediton macOS or Decrediton Windows.

To install the command-line tools, please see dcrinstall.

See decred-v1.7.0-rc1-manifest.txt and the other manifest files for SHA-256 hashes and the associated .asc signature files to confirm those hashes.

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

Skip to downloads

Contents

dcrd v1.7.0-rc1

This is a new major release of dcrd. Some of the key highlights are:

  • Four new consensus vote agendas which allow stakeholders to decide whether or not to activate support for the following:
    • Reverting the Treasury maximum expenditure policy
    • Enforcing explicit version upgrades
    • Support for automatic ticket revocations for missed votes
    • Changing the Proof-of-Work and Proof-of-Stake subsidy split from 60%/30% to 10%/80%
  • Substantially reduced initial sync time
  • Major performance enhancements to unspent transaction output handling
  • Faster cryptographic signature validation
  • Significant improvements to network synchronization
  • Support for a configurable assumed valid block
  • Block index memory usage reduction
  • Asynchronous indexing
  • Version 1 block filters removal
  • Various updates to the RPC server:
    • Additional per-connection read limits
    • A more strict cross origin request policy
    • A new alternative client authentication mechanism based on TLS certificates
    • Availability of the scripting language version for transaction outputs
    • Several other notable updates, additions, and removals related to the JSON-RPC API
  • New developer modules:
    • Age-Partitioned Bloom Filters
    • Fixed-Precision Unsigned 256-bit Integers
    • Standard Scripts
    • Standard Addresses
  • Infrastructure improvements
  • Quality assurance changes

For those unfamiliar with the voting process in Decred, all code needed in order to support each of the aforementioned consensus changes is already included in this release, however it will remain dormant until the stakeholders vote to activate it.

For reference, the consensus change work for each of the four changes was originally proposed and approved for initial implementation via the following Politeia proposals:

The following Decred Change Proposals (DCPs) describe the proposed changes in detail and provide full technical specifications:

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

The database migration typically takes around 40-50 minutes on HDDs and 20-30 minutes on SSDs.

Notable Changes

Four New Consensus Change Votes

Four new consensus change votes are now available as of this release. After upgrading, stakeholders may set their preferences through their wallet.

Revert Treasury Maximum Expenditure Policy Vote

The first new vote available as of this release has the id reverttreasurypolicy.

The primary goal of this change is to revert the currently active maximum expenditure policy of the decentralized Treasury to the one specified in the original Politeia proposal.

See DCP0007 for the full technical specification.

Explicit Version Upgrades Vote

The second new vote available as of this release has the id explicitverupgrades.

The primary goals of this change are to:

  • Provide an easy, reliable, and efficient method for software and hardware to determine exactly which rules should be applied to transaction and script versions
  • Further embrace the increased security and other desirable properties that hard forks provide over soft forks

See the following for more details:

Automatic Ticket Revocations Vote

The third new vote available as of this release has the id autorevocations.

The primary goals of this change are to:

  • Improve the Decred stakeholder user experience by removing the requirement for stakeholders to manually revoke missed and expired tickets
  • Enable the recovery of funds for users who lost their redeem script for the legacy VSP system (before the release of vspd, which removed the need for the redeem script)

See the following for more details:

Change PoW/PoS Subsidy Split to 10/80 Vote

The fourth new vote available as of this release has the id changesubsidysplit.

The proposed modification to the subsidy split is intended to substantially diminish the ability to attack Decred's markets with mined coins and improve decentralization of the issuance process.

See the following for more details:

Substantially Reduced Initial Sync Time

The amount of time it takes to complete the initial chain synchronization process has been substantially reduced. With default settings, it is around 48% faster versus the previous release.

Unspent Transaction Output Overhaul

The way unspent transaction outputs (UTXOs) are handled has been significantly reworked to provide major performance enhancements to both steady-state operation as well as the initial chain sync process as follows:

  • Each UTXO is now tracked independently on a per-output basis
  • The UTXOs now reside in a dedicated database
  • All UTXO reads and writes now make use of a cache

Unspent Transaction Output Cache

All reads and writes of unspent transaction outputs (utxos) now go through a cache that sits on top of the utxo set database which drastically reduces the amount of reading and writing to disk, especially during the initial sync process when a very large number of blocks are being processed in quick succession.

This utxo cache provides significant runtime performance benefits at the cost of some additional memory usage. The maximum size of the cache can be configured with the new --utxocachemaxsize command-line configuration option. The default value is 150 MiB, the minimum value is 25 MiB, and the maximum value is 32768 MiB (32 GiB).

Some key properties of the cache are as follows:

  • For reads, the UTXO cache acts as a read-through cache
    • All UTXO reads go through the cache
    • Cache misses load the missing data from the disk and cache it for future lookups
  • For writes, the UTXO cache acts as a write-back cache
    • Writes to the cache are acknowledged by the cache immediately, but are only periodically flushed to disk
  • Allows intermediate steps to effectively be skipped thereby avoiding the need to write millions of entries to disk
  • On average, recent UTXOs are much more likely to be spent in upcoming blocks than older UTXOs, so only the oldest UTXOs are evicted as needed in order to maximize the hit ratio of the cache
  • The cache is periodically flushed with conditional eviction:
    • When the cache is NOT full, nothing is evicted, but the changes are still written to the disk set to allow for a quicker reconciliation in the case of an unclean shutdown
    • When the cache is full, 15% of the oldest UTXOs are evicted

Faster Cryptographic Signature Validation

Some aspects of the underlying crypto code has been updated to further improve its execution speed and reduce the number of memory allocations resulting in about a 1% reduction to signature verification time.

The primary benefits are:

  • Improved vote times since blocks and transactions propagate more quickly throughout the network
  • Approximately a 2% reduction to the duration of the initial sync process

Significant Improvements to Network Synchronization

The method used to obtain blocks from other peers on the network is now guided en...

Read more

v1.6.3

12 May 20:19

Choose a tag to compare

Install

To install Decrediton desktop wallet, download, uncompress, and run Decrediton Linux or Decrediton macOS or Decrediton Windows.

To install the command-line tools, please see dcrinstall.

See decred-v1.6.3-manifest.txt and the other manifest files for SHA-256 hashes and the associated .asc signature files to confirm those hashes.

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

Skip to downloads

Contents

dcrwallet v1.6.3

This release focuses on bug fixes and feature improvements for VSP ticket buying.

New features

  • An AccountUnlocked gRPC method was added to query if an account is individually encrypted and its current locked state.

  • A GetTrackedVSPTickets gRPC method was added for clients to gain insight into what tickets and fees are currently being processed by the VSP client.

  • A syncstatus JSON-RPC method was added to query whether the wallet is known to be synchronized with the network or not, or whether it is still performing initial synchronization.

Bug Fixes

  • Additional situations which caused unexpected "low balance" bugs when purchasing tickets with a VSP have been fixed by attempting to create the additional split transaction.

  • Reliability improvements were made to ensuring that fees are correctly paid to the VSP. This will result in lower missed ticket rates.

  • A bug preventing correct key derivation for keys in a locked individually-encrypted account when all other wallet accounts were unlocked was fixed by deriving the pubkey, rather than erroring when attempting to derive the private key.

  • A data race dealing with the synchronization of managing locked outputs was fixed.

  • The automated ticketbuyer no longer errors for unlocking the wallet with an empty passphrase if the account is individually-encrypted and is unlocked by another method.

Changelog

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

Code Contributors (alphabetical order)

  • Alex Yocom-Piatt
  • David Hill
  • Jamie Holdstock
  • Josh Rickmar
  • Matheus Degiovani
  • Victor Oliveira
  • Wisdom Arerosuoghene

Decrediton v1.6.3

This release of Decrediton includes the initial DEX integration, as well as many other graphical improvements, security upgrades, and bug fixes.

New features

  • This release includes our first iteration of DCRDEX being available directly within Decrediton. There is a new page available, 'DEX' on the sidebar. Initially, users will be presented with the option to "enable" DEX on their wallet. Currently, we suggest using a separate wallet to use for DEX trading, instead of a users' main wallet. While we believe the wallet is still secure, the DEX integration has increased the attack surface of the wallet, so it is worth taking extra precaution while using this feature.

    Once enabled, users need to set a DEX passphrase. This passphrase is what they will use to Login and to submit orders etc. Next they need to select or create a new account for DEX. Theses funds are what will be accessible inside of the DCRDEX trading platform.

    Users must then connect their DCR and BTC wallets to DEX. Once connected, they will be guided to register their DEX account and pay the required fee.

    Once these steps are complete they will be able to launch the trading platform. Upon attempting to close Decrediton, there will be an attempt to logout of the DEX. If there are any open orders, Decrediton will not be allowed to close. This is to ensure that the swaps are able to complete successfully.

  • With the introduction of DEX and privacy into Decrediton, we've decided to upgrade some of the security features in the wallet. While most of this is invisible to the user (Electron/Webpack upgrades), we have added per-account locking. Previously, when any action occured the whole wallet was unlocked and then relocked upon completion. Now only the pertinent account for the transcation will be unlocked. This will protect other accounts for situations like DEX and mixing where accounts will be unlocked for long periods of time.

  • We have improved the new vspd ticket tracking so fees are now paid more frequently and process managed tickets is only shown when the user hasn't yet fully confirmed their tickets with the vspd.

Changelog

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

Code Contributors (alphabetical order)

  • Alex Yocom-Piatt
  • Amir Massarwa
  • bgptr
  • Guilherme Marques
  • Jamie Holdstock
  • Joe Gruffins
  • Matheus Degiovani
  • Scott Christian
  • Victor Oliveira

DCRDEX v0.2.0

This release includes a large number of improvements to the UI, the communications protocol, and software design.

The most notable new features are:

  • Numerous UI and usability enhancements including responsive design and depth chart interactivity
  • Support client control by the Decrediton GUI wallet and use of its accounts
  • Experimental Bitcoin Cash (BCH) support
  • Initial changes to support SPV (light) wallets in the next release
  • Account import/export

The latest 1.6 release of dcrd and dcrwallet is required for this release of DCRDEX. At the time of release, this corresponds to the v1.6.2 releases. Bitcoin Core 0.20 and 0.21 are both supported.

Important Notices

Although DCRDEX looks and feels like a regular exchange, the "decentralized" aspect brings an expanded role to the client. Please take the time to read and understand the following:

  • Ensure your nodes (and wallets) are fully synchronized with the blockchain network before placing orders.
  • Never shutdown your wallets with dexc running. When shutting down, always stop dexc before stopping your wallets.
  • If you have to restart dexc with active orders or swaps, you must immediately login again with your app password when dexc starts up.
  • There is an "inaction timeout" when it becomes your client's turn to broadcast a transaction, so be sure not to stop dexc or lose connectivity for longer than that or you risk having your active orders and swaps/matches revoked. If you do have to restart dexc, remember to login as soon as you start it up again.
  • Only one dexc (client) process should be running for a given user account at any time. For example, if you have identical dexc configurations on two computers and you run dexc and login on both, neither dexc instance will be adequately connected to successfully negotiate swaps. Also note that order history is not synchronized between different installations.
  • Your DEX server accounts exist inside the dexc.db file, the location of which depends on operating system, but is typically in ~/.dexc/mainnet/dexc.db or %HOMEPATH%\Local\Dexc\mainnet\dexc.db. Do not delete this file.
  • If you use a non-default bitcoin wallet name, don't forget to set it in bitcoin.conf with a wallet=wallet_name_here line so that bitcoind will load it each time it starts. Otherwise, dexc will give you a "wallet not found" error on startup and login.
  • bitcoind's "smart" fee estimation needs plenty of time to warm up or it is not so smart. When possible, keep your bitcoind running for at least 6 blocks, especially if had not been running for more than an hour, or ensure that the value returned from a bitcoin-cli call to estimatesmartfee 1 returns a "feerate" close to what https://mempool.space/ reports as "High priority".

Client (dexc)

Features and Improvements

  • Experimental support for Bitcoin Cash (BCH). (542ed9b)
  • Show confirmations for swaps transactions on the Order page when a swap has not yet reached the required number of confirmations. (ecbfebd)
  • Open dialogs can be closed by hitting the "Escape" key. (7c978cd)
  • Allow changing the dex client "application password". (8d7163c)
  • Responsive browser UI design. (c91bde4)
  • Differentiate between buy/sell orders in confirmation modal dialog. (2bdf81f)
  • Clearer revocation notifications. (c8c9729)
  • Raw transaction data is now transmitted to counterparties in the 'audit' and 'match_status' requests. This is a prerequisite for SPV clients. (3704513)
  • More chart interactivity. (a) Indicators on the depth chart for the user's orders. When the mouse hovers near the indicator, the order is highlighted in the "Your Orders" table. Conversely, when the mouse hovers over a row in the "Your Orders" table, the indicator is highlighted on the chart. (b) Move the legend and hover info to the top. (c) When a rate is entered in the order form for a limit order,...
Read more

v1.6.2

08 Apr 17:32
9c89290

Choose a tag to compare

Install

To install Decrediton desktop wallet, download, uncompress, and run Decrediton Linux or Decrediton macOS or Decrediton Windows.

To install the command-line tools, please see dcrinstall.

See decred-v1.6.2-manifest.txt and the other manifest files for SHA-256 hashes and the associated .asc signature files to confirm those hashes.

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

Skip to downloads

Contents

dcrd v1.6.2

This is a patch release of dcrd to introduce a quality of life change for lightweight clients, such as SPV wallets, by not sending them a certain class of announcements that only full nodes are equiped to handle.

Changelog

This patch release consists of 2 commits from 1 contributor which total to 3 files changed, 55 additional lines of code, and 31 deleted lines of code.

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

Protocol and Network

Misc

Code Contributors (alphabetical order)

  • Dave Collins

dcrwallet v1.6.2

This release focuses on bug fixes and feature improvements for VSP ticketbuying and change mixing.

New Features

  • A accountunlocked JSON-RPC method was added, allowing clients to determine whether an account has been encrypted with a unique passphrase, and if it is currently unlocked if so.

  • The setvotechoices JSON-RPC method will now use the vspd client to set vote choices at the VSP, if any is configured in the application settings and the ticket was bought for the VSP.

Bug Fixes

  • A UTXO selection issue which caused "low balance" errors during the additional split transaction sometimes necessary when purchasing tickets with a VSP was fixed. Some UTXOs of the account were not always being considered during the creation of this transaction, which led to the balance errors.

  • A check for a too-low fee when mixing at the smallest common amount was added. This previously was causing "invalid submission" errors, as the server would reject the submission for not paying enough fee.

Changelog

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

Code Contributors (alphabetical order)

  • Jonathan Chappelow
  • Josh Rickmar

Decrediton v1.6.2

This patch release for Decrediton includes just a few small changes for copy and buttons missing text.

Bug Fixes

  • Missing Legacy Ticket purchase button text.

  • Incorrect copy on Governance for thresholds for upgrading the network.

Changelog

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

Code Contributors (alphabetical order)

  • Alex Yocom-Piatt
  • Amir Massarwa
  • bgptr
  • Matheus Degiovani

v1.6.1

23 Feb 21:48
98fee96

Choose a tag to compare

Install

To install Decrediton desktop wallet, download, uncompress, and run Decrediton Linux or Decrediton macOS or Decrediton Windows.

To install the command-line tools, please see dcrinstall.

See decred-v1.6.1-manifest.txt and the other manifest files for SHA-256 hashes and the associated .asc signature files to confirm those hashes.

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

Skip to downloads

Contents

dcrd v1.6.1

This is a patch release of dcrd which includes the following changes:

  • Correct a hard to hit issue where connections might not be reestablished after a network outage under some rare circumstances
  • Allow stakeholders to make use of the staking system to force proof-of-work miners to upgrade to the latest version so voting on the new consensus changes can commence

Changelog

This patch release consists of 3 commits from 1 contributor which total to 3 files changed, 30 additional lines of code, and 9 deleted lines of code.

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

Protocol and Network

Misc

Code Contributors (alphabetical order)

  • Dave Collins

dcrwallet v1.6.1

This release focuses on fixing issues with the new VSP fee payments and account mixing.

New Features

  • A WalletServer.SetVspdVoteChoice gRPC method was added, allowing clients to update the agenda preferences for the new VSP software.

Bug Fixes

  • An additional transaction may be created now when an account does not have enough UTXOs to pay for both a ticket and a VSP fee. This avoids insufficient balance errors where possible and prevents the user from needing to split a UTXO themselves.

  • Several issues causing double spends when dealing with unpublished transactions were corrected. This improves the reliability of paying the VSP fee.

  • Account balances no longer report the outputs of unpublished transactions as spendable with minconf=0. Instead, these balances are added to the unconfirmed balance.

  • Account and output mixing now considers the required fee necessary when selecting which common output amount and output count to mix with. This fixes mixing for some outputs which are currently being rejected by the CoinShuffle++ server due to not paying enough of the required transaction fee.

  • The signrawtransaction JSON-RPC method was changed to return an error if the transaction being signed has no inputs.

  • The salsa20 and blake2b dependencies were updated to prevent possible memory corruption caused by smashing the SP register in optimized assembly implementations.

Changelog

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

Code Contributors (alphabetical order)

  • Josh Rickmar

Decrediton v1.6.1

This patch release fixes several issues discovered in the v1.6.0 release.

Most changes are focused on improving the staking experience with the new VSP system: unexpected insufficient balance error is fixed, successes and failures of various staking operations are better reported now, setting consensus vote choices on the new VSP was implemented.

Updates

  • Consensus change voting is now working as expected. When a user sets their vote choice, it is updated in their local wallet and also sent to any legacy VSP. Every live ticket they have assigned with a new VSP is updated as well.

  • Due to the way the coins (UTXOs) are handled when purchasing tickets, there is a possibility of the underlying dcrwallet purchasing fewer tickets than what the user requested. This condition is now explained with a better message, to help the user understand why, for example, they only got 1 ticket when trying to buy 2.

  • Labels on the Staking tab have been updated to make things more clear with the new tickets and the old tickets.

  • An initial Traditional Chinese translation was completed by @smartwojak and verified by long-standing community member Hugo Chang (@changhugo).

  • Running or attempting multiple things at the same time is no longer allowed to avoid possible issues or unexpected errors. For instance, when the mixer is running, users may not purchase tickets or run the autobuyer, and vice versa. To perform an action, the user needs to turn off a running activity before proceeding. Several tooltips have been added to make the user aware of the situation.

  • Loading indicators have been added to various buttons related to ticket purchasing, to indicate that the user should wait for a long-running operation (like mixed ticket purchasing) to complete.

  • Success and failure messages have been added to various new ticket purchasing actions. Now users will be shown a message when they successfully complete (or receive errors for) the following actions: verify that visible tickets are assigned to VSPs and have their fees paid (Process Managed), discover tickets not yet assigned to a VSP and pay their fees (Process Unmanaged), and sync failed VSP tickets.

Bug Fixes

  • Added a timeout when not receiving VSP status response within 5 seconds.

  • Transaction history filtering has been fixed and now allows to select multiple types of transactions at once.

  • Tickets will now show as "Processing", "Error" or "Paid" shortly after purchase. Previously they would be shown as "Solo" until a restart or another block was mined.

  • Added explicit wallet lock calls to ensure that wallet is locked after mixing or ticket autobuyer requests.

  • There were a few reports of incorrectly created legacy ticket purchases due to a still unknown cause. To work-around this we've added sanity checks prior to purchase request to dcrwallet to avoid any potential malformed requests from being sent. This won't solve the core issue, but should at least notify users of something wrong occuring and give us data to investigate further.

Changelog

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

Code Contributors (alphabetical order)

  • Alex Yocom-Piatt
  • Amir Massarwa
  • bgptr
  • Guilherme Marques
  • JoeGruffins
  • Matheus Degiovani
  • Scott Christian
  • smartwojak
  • Victor Oliveira

dcrdex v0.1.5

This patch release provides several important bug fixes.

Please read the initial release (v0.1.0) notes for important information and instructions.

Client (dexc)

Features and Improvements

  • The user's account ID is now logged on connection and authentication with a DEX server. (8ce328)

Fixes

  • Fix a possible panic when reconfiguring a wallet that is not connected. (dfe4cd)

  • When resuming trades on startup and login, counterparty contract audits now retry repeatedly, as is the case when an audit request is initially received. This prevents a match from being incorrectly revoked on startup if the wallet/node fails to locate the counterparty contract immediately. (dfe4cd)

  • The client's database subsystem is always started first and stopped last. This is a prerequisite for the following wallet lock-on-shutdown change. (b4ef3f)

  • On shutdown of client Core, the wallets are now locked even if the PromptShutdown function is not used. This does not affect dexc users, only direct Go consumers of the client/core.Core type. (70044e)

  • Fix a possible interruption of the DEX reconnect loop if the config response timed out. (4df683)

  • Update the crypto/x/blake2 dependency to prevent silent memory corruption from the hash function's assembly code. (c67af3)

  • Handle orders that somehow lose their funding coins. Previously, such orders would forever be logged at startup but never retired, and any matches from such orders that required swap negotiation of other recovery would have been improperly abandoned. (a7b5aa)

Server (dcrdex)

There are no substantive server changes, just a few logging improvements.

Code Summary

11 commits, 13 files changed, 564 insertions(+), and 254 deletions(-)

decred/dcrdex@v0.1.4...v0.1.5

3 contributors

Read more

v1.6.0

25 Jan 15:56
22b97f7

Choose a tag to compare

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

Skip to downloads

Contents

dcrd v1.6.0

This release of dcrd introduces a large number of updates. Some of the key highlights are:

  • A new consensus vote agenda which allows the stakeholders to decide whether or not to activate support for a decentralized treasury
  • Aggregate fee transaction selection in block templates (Child Pays For Parent)
  • Improved peer discovery via HTTPS seeding with filtering capabilities
  • Major performance enhancements for signature validation and other cryptographic operations
  • Approximately 15% less overall resident memory usage
  • Proactive signature cache eviction
  • Improved support for single-party Schnorr signatures
  • Ticket exhaustion prevention
  • Various updates to the RPC server such as:
    • A new method to retrieve the current treasury balance
    • A new method to query treasury spend transaction vote details
  • Infrastructure improvements
  • Quality assurance changes

For those unfamiliar with the voting process in Decred, all code needed in order to support a decentralized treasury is already included in this release, however it will remain dormant until the stakeholders vote to activate it.

For reference, the decentralized treasury work was originally proposed and approved for initial implementation via the following Politeia proposal:

The following Decred Change Proposal (DCP) describes the proposed changes in detail and provides a full technical specification:

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

The database migration typically takes about 5 to 10 minutes on HDDs and 2 to 4 minutes on SSDs.

Notable Changes

Decentralized Treasury Vote

A new vote with the id treasury is now available as of this release. After upgrading, stakeholders may set their preferences through their wallet or Voting Service Provider's (VSP) website.

The primary goal of this change is to fully decentralize treasury spending so that it is controlled by the stakeholders via ticket voting.

See the initial Politeia proposal for more details.

Aggregate Fee Block Template Transaction Selection (Child Pays For Parent)

The transactions that are selected for inclusion in block templates that Proof-of-Work miners solve now prioritize the overall fees of the entire transaction ancestor graph.

This is beneficial for both miners and end users as it:

  • Helps maximize miner profit by ensuring that unconfirmed transaction chains with higher aggregate fees are given priority over others with lower aggregate fees
  • Provides a mechanism for users to increase the priority of an unconfirmed transaction by spending its outputs with another transaction that pays higher fees

This is commonly referred to as Child Pays For Parent (CPFP) as the spending ("child") transaction is able to increase the priority of the spent ("parent") transaction.

HTTPS Seeding

The initial bootstrap process that contacts seeders to discover other nodes to connect to now uses a REST-based API over HTTPS.

This change will be imperceptible for most users, with the exception that it accelerates the process of finding suitable candidate nodes that support desired services, particularly in the case of recently-introduced services that have not yet achieved widespread adoption on the network.

The following are some key benefits of HTTPS seeders over the previous DNS-based seeders:

  • Support for non-standard ports
  • Advertisement of supported service
  • Better scalability both in terms of network load and new features
  • Native support for TLS-secured communication channels
  • Native support for proxies which allows the use of anonymous overlay networks such as Tor and I2P
  • No need for a large DNSSEC dependency surface
  • Uses better audited infrastructure
  • More secure
  • Increases flexibility

Signature Validation And Other Crypto Operation Optimizations

The underlying crypto code has been reworked to significantly improve its execution speed and reduce the number of memory allocations. While this has more benefits than enumerated here, probably the most important ones for most stakeholders are:

  • Improved vote times since blocks and transactions propagate more quickly throughout the network
  • The initial sync process is around 15% faster

Proactive Signature Cache Eviction

Signature cache entries that are nearly guaranteed to no longer be useful are now immediately and proactively evicted resulting in overall faster validation during steady state operation due to fewer cache misses.

The primary purpose of the cache is to avoid double checking signatures that are already known to be valid.

Orphan Transaction Relay Policy Refinement

Transactions that spend outputs which are not known to nodes relaying them, known as orphan transactions, now have the same size restrictions applied to them as standard non-orphan transactions.

This ensures that transactions chains are not artificially hindered from relaying regardless of the order they are received.

In order to keep memory usage of the now potentially larger orphan transactions under control, more intelligent orphan eviction has been implemented and the maximum number of allowed orphans before random eviction occurs has been lowered.

These changes, in conjunction with other related changes, mean that nodes are better about orphan transaction management and thus missing ancestors will typically either be broadcast or mined fairly quickly resulting in fewer overall orphans and smaller actual run-time orphan pools.

Ticket Exhaustion Prevention

Mining templates that would lead to the chain becoming unrecoverable due to inevitable ticket exhaustion will no longer be generated.

This is primarily aimed at the testing networks, but it could also theoretically affect the main network in some far future if the demand for tickets were to ever dry up for some unforeseen reason.

New Initial State Protocol Messages (getinitstate/initstate)

This release introduces a pair of peer-to-peer protocol messages named getinitstate and initstate which support querying one or more pieces of information that are useful to acquire when a node first connects in a consolidated fashion.

Some examples of the aforementioned information are the mining state as of the current tip block and, with the introduction of the decentralized treasury, any outstanding treasury spend transactions that are being voted on.

Mining State Protocol Messages Deprecated (getminings/minings)

Due to the addition of the previously-described initial state peer-to-peer protocol messages, the getminings and minings protocol messages are now deprecated. Use the new getinitstate and initstate messages with the headblocks and headblockvotes state types instead.

RPC Server Changes

The RPC server version as of this release is 6.2.0.

New Treasury Balance Query RPC (gettreasurybalance)

A new RPC named gettreasurybalance is now available to query the current balance of the decentralized treasury. Please note that this requires the decentralized treasury vote to pass and become active, so it will return an appropriate error indicating the decentralized treasury is inactive until that time.

See the gettreasurybalance JSON-RPC API Documentation for API details.

New Treasury Spend Vote Query RPC (gettreasuryspendvotes)

A new RPC named gettreasuryspendvotes is now available to query vote information about one or more treasury spend transactions. Please note that this requires the decentralized treasury vote to pass and become active to produce a meaningful result since treasury spend transactions are invalid until that time.

See the gettreasuryspendvotes JSON-RPC API Documentation for API details.

New Force Mining Template Regeneration RPC (regentemplate)

A new RPC nam...

Read more

v1.6.0-rc5

15 Jan 16:25
ac508d3

Choose a tag to compare

v1.6.0-rc5 Pre-release
Pre-release
add decrediton v1.5.2 rel notes (#129)

v1.6.0-rc4

02 Dec 15:01
ac508d3

Choose a tag to compare

v1.6.0-rc4 Pre-release
Pre-release
add decrediton v1.5.2 rel notes (#129)

v1.6.0-rc3

16 Nov 15:49
ac508d3

Choose a tag to compare

v1.6.0-rc3 Pre-release
Pre-release
add decrediton v1.5.2 rel notes (#129)