Skip to content

Releases: decred/dcrd

dcrd v2.1.3

30 Dec 15:29
release-v2.1.3
dddf550

Choose a tag to compare

This is a patch release of dcrd to bump the version number to match the rest of the core Decred software suite.

There is no functional change as compared to v2.1.2.

dcrd v2.1.2

10 Dec 00:05
release-v2.1.2
d6a7eac

Choose a tag to compare

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

  • Reduced memory allocations for peer-to-peer network operations

Changelog

This patch release consists of 3 commits from 2 contributors which total to 28
files changed, 176 additional lines of code, and 106 deleted lines of code.

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

Developer-related package and module changes:

  • [release-v2.1] wire: Pass pointers by interface to writeElement (decred/dcrd#3582)

Developer-related module management:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • Josh Rickmar

dcrd v2.1.1

28 Nov 19:30
release-v2.1.1
368157c

Choose a tag to compare

This is a patch release of dcrd to bump the version number to match the rest of the core Decred software suite.

There is no functional change as compared to v2.1.0.

dcrd v2.1.0

26 Nov 17:39
release-v2.1.0
3efd273

Choose a tag to compare

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

  • A new consensus vote agenda which allows the stakeholders to decide whether or not to activate a new decentralized treasury maximum expenditure policy
  • Exclusion timeouts for disruptive StakeShuffle mixing participants
  • Less bandwidth usage for StakeShuffle mixing messages
  • Configurable maximum overall memory usage limit
  • Higher network throughput
  • Faster address decoding
  • Hardware optimizations for hashes
  • Various updates to the RPC server
    • IPv6 zone support
    • New JSON-RPC API additions for dynamic profiling server control
    • Discrete mining cancellation support
  • Infrastructure improvements
  • Miscellaneous network and protocol optimizations
  • 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 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 full technical specifications:

Upgrade Required

It is extremely important for everyone to upgrade their software to this latest release even if you don't intend to vote in favor of the agenda. This particularly applies to PoW miners as failure to upgrade will result in lost rewards after block height 1035288. That is estimated to be around December 9th, 2025.

Notable Changes

New Treasury Maximum Expenditure Policy Vote

A consensus change vote with the id maxtreasuryspend is now available as of this release. After upgrading, stakeholders may set their preferences through their wallet.

The primary goals of this change are to:

  • Provide a maximum expenditure policy that is stable for the long term while retaining the primary motivations for having a maximum expenditure policy
  • Serve as a preemptive measure to avoid the current overly-restrictive spending limits from potentially resulting in issues with funding ongoing operations

See the following for more details:

Exclusion Timeouts for Disruptive StakeShuffle Mixing Participants

Coins participating in decentralized StakeShuffle mixing that are excluded from ongoing mixes due to failing to complete the entire protocol too many times are now prohibited from participating in any new mixes for a certain period of time.

The exclusion timeout is a matter of policy that may be refined in the future. It is currently set to 24 hours.

This change improves the overall robustness of the system and helps ensure smooth operation for all honest participants in the event of misbehavior, intentional or otherwise.

Less Bandwidth Usage for StakeShuffle Mixing Messages

This release includes various changes to reduce the amount of bandwidth required for decentralized StakeShuffle mixing by approximately 15%.

Aside from generally improving efficiency, it provides the key benefit of lowering the overall resource requirements for full nodes running in bandwidth-constrained environments.

Configurable Maximum Overall Memory Usage Limit

The server automatically calculates a default target maximum memory limit that is sufficient for almost all users and use cases.

System administrators that are comfortable trading off more memory for performance may now optionally set the GOMEMLIMIT environment variable prior to starting drcd in order to increase the target maximum memory limit.

The target limit is logged when the server starts. For example:

Soft memory limit: 1.80 GiB

Note that the value may not be configured to be less than the default calculated value and is potentially influenced by the cache-specific CLI options --sigcachemaxsize and --utxocachemaxsize.

Higher Network Throughput

The primary network syncing infrastructure now uses a model that makes better use of multiple processor cores provided by all modern hardware. The net result is better overall throughput that scales equally well across the entire spectrum of low-end to high-end computing hardware.

Faster Address Decoding

Decoding of Decred payment addresses is now about two times faster on average.

Larger wallets connecting to dcrd via RPC will notice significantly faster load times and mobile wallets using the new code will benefit from less battery usage.

Hardware Optimizations for Hashes

BLAKE-256 hashing is now approximately 70% faster on any modern amd64 hardware.

The primary benefits are:

  • Notably reduced overall CPU usage for the same amount of work
  • Performance enhancements to nearly all areas such as:
    • The initial chain sync process
    • Transaction and block validation
    • Mixing message validation
    • Signature verification
    • Key generation
    • Lightweight client sync time
    • Stakeholder voting lottery selection
    • Internal caches
    • Payment addresses

RPC Server Changes

The RPC server version as of this release is 8.3.0

IPv6 Zone Support

The RPC server may now be configured to listen on IPv6 addresses with a zone.

This is particularly useful for specifying which scope or interface to bind the listener to in systems with multiple interfaces. For example, link local IPv6 addresses typically require specifying the zone to avoid routing issues since they are otherwise ambiguous on systems with multiple interfaces.

New Dynamic Profiling Server Control RPCs (startprofiler and stopprofiler)

Two new RPCs named startprofiler and stopprofiler are now available. These RPCs can be used to dynamically start and stop the built-in profiling server.

The profiling server is primarily useful for developers working on the software.

See the following for API details:

Discrete Mining Cancellation Support (generate)

The generate RPC used in test environments such as the test and simulation networks to mine a discrete number of blocks now accepts a parameter of 0 to cancel a running active discrete mining instance.

See the following for API details:

Changelog

This release consists of 355 commits from 8 contributors which total to 294 files changed, 25,567 additional lines of code, and 10,534 deleted lines of code.

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

Protocol and network:

Mixing message relay (mix pool):

Read more

dcrd v2.0.6

20 Feb 22:47
release-v2.0.6
dabb376

Choose a tag to compare

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

  • Improved reliability for wallets participating in StakeShuffle mixing
  • Minor performance enhancement for random number generation on OpenBSD

Changelog

This patch release consists of 3 commits from 2 contributors which total to 8 files changed, 119 additional lines of code, and 68 deleted lines of code.

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

Developer-related package and module changes:

  • [release-v2.0] rand: Use stdlib crypto/rand.Read on OpenBSD + Go 1.24 (decred/dcrd#3473)

Developer-related module management:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • Josh Rickmar

dcrd v2.0.5

13 Nov 17:37
release-v2.0.5
2417fe0

Choose a tag to compare

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

  • Improved StakeShuffle mixing robustness against misbehaving peers
  • Peers are no longer intermittently disconnected when serving factored polynomial data

Upgrade Required To Participate in StakeShuffle Mixing

Although upgrading to this latest release is not required for continued operation of the core network, it is required for anyone who wishes to participate in StakeShuffle mixing with the highest anonymity set guarantees and fastest matching.

Changelog

This patch release consists of 8 commits from 2 contributors which total to 8 files changed, 83 additional lines of code, and 56 deleted lines of code.

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

Protocol and network:

Mixing message relay (mix pool):

  • [release-v2.0] mixpool: Do not return early for revealed secrets (decred/dcrd#3458)

Developer-related package and module changes:

Developer-related module management:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • Josh Rickmar

dcrd v2.0.4

28 Aug 20:33
release-v2.0.4
b4378f4

Choose a tag to compare

dcrd v2.0.4 Release Notes

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

  • Improved session formation for StakeShuffle mix transactions
  • Support for Internationalized Domain Names (IDNs) in hostnames
  • StakeShuffle mixing performance enhancements

Changelog

This patch release consists of 14 commits from 3 contributors which total to 17 files changed, 201 additional lines of code, and 97 deleted lines of code.

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

Mixing message relay (mix pool):

  • [release-v2.0] mixpool: Reject KEs submitted too early (decred/dcrd#3431)
  • [release-v2.0] mixclient: Use newest (fewest-PR) KEs to form alt sessions (decred/dcrd#3431)

RPC / gencerts utility changes:

  • [release-v2.0] certgen,gencerts: Punycode non-ASCII hostnames (decred/dcrd#3432)

Developer-related package and module changes:

Developer-related module management:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • Jamie Holdstock
  • Josh Rickmar

dcrd v2.0.3

20 Jun 15:51
release-v2.0.3
039a14a

Choose a tag to compare

dcrd v2.0.3 Release Notes

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

  • Improved sender privacy for transactions and mix messages via randomized announcements
  • Nodes now prefer to maintain at least three mixing-capable outbound connections
  • Recent transactions and mix messages will now be available to serve for longer
  • Reduced memory usage during periods of lower activity
  • Mixing-related performance enhancements

Changelog

This patch release consists of 26 commits from 2 contributors which total to 37 files changed, 4527 additional lines of code, and 499 deleted lines of code.

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

Protocol and network:

Mixing message relay (mix pool):

Documentation:

Developer-related package and module changes:

Developer-related module management:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • Josh Rickmar

dcrd v2.0.2

05 Jun 15:40
release-v2.0.2
5d864bf

Choose a tag to compare

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

  • Nodes now prefer to maintain at least one mixing-capable outbound connection
  • Peers will no longer potentially be improperly banned due to missing mix messages
  • Mixing messages that are not available will now be obtained from elsewhere
  • Improves mixing message availability during network propagation

Changelog

This patch release consists of 26 commits from 3 contributors which total to 18 files changed, 468 additional lines of code, and 451 deleted lines of code.

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

Protocol and network:

Mixing message relay (mix pool):

Developer-related package and module changes:

Developer-related module management:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • David Hill
  • Josh Rickmar

dcrd v2.0.1

29 May 16:56
release-v2.0.1
4778a11

Choose a tag to compare

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

  • Provides a new JSON-RPC API method named getmixmessage that can be used to query decentralized StakeShuffle mixing messages
  • No longer relays mixing messages when transaction relay is disabled
  • Transaction outputs with one confirmation may now be used as part of a mix
  • Improves best network address candidate selection
  • More consistent logging of banned peers along with the reason they were banned

Changelog

This patch release consists of 19 commits from 3 contributors which total to 18 files changed, 388 additional lines of code, and 187 deleted lines of code.

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

Protocol and network:

RPC:

Mixing message relay (mix pool):

Documentation:

Developer-related package and module changes:

Developer-related module management:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • David Hill
  • Josh Rickmar