Releases: decred/decred-binaries
v1.5.0-rc4
2019-12-09
Install
To install decrediton download, uncompress, and run decrediton Linux or decrediton macOS or decrediton Windows.
See decrediton-v1.5.0-rc4-manifest.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.
Updates from rc3: decrediton
Full release notes here
v1.5.0-rc3
2019-12-04
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.5.0-rc3-manifest.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.
Updates from rc2: dcrd, dcrwallet, decrediton
Full release notes here
v1.5.0-rc2
2019-11-19
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.5.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.
Updates from rc1: dcrd, dcrwallet, decrediton
Full release notes here
v1.5.0-rc1
2019-11-07
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.5.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.5.0-rc1
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 block header commitments
- More efficient block filters
- Significant improvements to the mining infrastructure including asynchronous work notifications
- Major performance enhancements for transaction script validation
- Automatic external IP address discovery
- Support for IPv6 over Tor
- Various updates to the RPC server such as:
- A new method to query information about the network
- A method to retrieve the new version 2 block filters
- More calls available to limited access users
- Infrastructure improvements
- Quality assurance changes
For those unfamiliar with the voting process in Decred, all code in order to support block header commitments is already included in this release, however its enforcement will remain dormant until the stakeholders vote to activate it.
For reference, block header commitments were 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.5.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
Block Header Commitments Vote
A new vote with the id headercommitments
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 increase the security and efficiency of lightweight clients, such as Decrediton in its lightweight mode and the dcrandroid/dcrios mobile wallets, as well as add infrastructure that paves the way for several future scalability enhancements.
A high level overview aimed at a general audience including a cost benefit analysis can be found in the Politeia proposal.
In addition, a much more in-depth treatment can be found in the motivation section of DCP0005.
Version 2 Block Filters
The block filters used by lightweight clients, such as SPV (Simplified Payment Verification) wallets, have been updated to improve their efficiency,
ergonomics, and include additional information such as the full ticket commitment script. The new block filters are version 2. The older version 1 filters are now deprecated and scheduled to be removed in the next release, so consumers should update to the new filters as soon as possible.
An overview of block filters can be found in the block filters section of DCP0005.
Also, the specific contents and technical specification of the new version 2 block filters is available in the version 2 block filters section of DCP0005.
Finally, there is a one time database update to build and store the new filters for all existing historical blocks which will likely take a while to complete (typically around 8 to 10 minutes on HDDs and 4 to 5 minutes on SSDs).
Mining Infrastructure Overhaul
The mining infrastructure for building block templates and delivering the work to miners has been significantly overhauled to improve several aspects as follows:
- Support asynchronous background template generation with intelligent vote propagation handling
- Improved handling of chain reorganizations necessary when the current tip is unable to obtain enough votes
- Current state synchronization
- Near elimination of stale templates when new blocks and votes are received
- Subscriptions for streaming template updates
The standard getwork RPC that PoW miners currently use to perform the mining process has been updated to make use of this new infrastructure, so existing PoW miners will seamlessly get the vast majority of benefits without requiring any updates.
However, in addition, a new notifywork RPC is now available that allows miners to register for work to be delivered asynchronously as it becomes available via a WebSockets work notification. These notifications include the same information that getwork
provides along with an additional reason
parameter which allows the miners to make better decisions about when they should instruct workers to discard the current template immediately or should be allowed to finish their current round before being provided with the new template.
Miners are highly encouraged to update their software to make use of the new asynchronous notification infrastructure since it is more robust, efficient, and faster than polling getwork
to manually determine the aforementioned conditions.
The following is a non-exhaustive overview that highlights the major benefits of the changes for both cases:
- Requests for updated templates during the normal mining process in between tip changes will now be nearly instant instead of potentially taking several seconds to build the new template on the spot
- When the chain tip changes, requesting a template will now attempt to wait until either all votes have been received or a timeout occurs prior to handing out a template which is beneficial for PoW miners, PoS miners, and the network as a whole
- PoW miners are much less likely to end up with template with less than the max number of votes which means they are less likely to receive a reduced subsidy
- PoW miners will be much less likely to receive stale templates during chain tip changes due to vote propagation
- PoS voters whose votes end up arriving to the miner slightly slower than the minimum number required are much less likely to have their votes excluded despite having voted simply due to propagation delay
PoW miners who choose to update their software, pool or otherwise, to make use of the asynchronous work notifications will receive additional benefits such as:
- Ability to start mining a new block sooner due to receiving updated work as soon as it becomes available
- Immediate notification with new work that includes any votes that arrive late
- Periodic notifications with new work that include new transactions only when there have actually been new transaction
- Simplified interface code due to removal of the need for polling and manually checking the work bytes for special cases such as the number of votes
NOTE: Miners that are not rolling the timestamp field as they mine should ensure their software is upgraded to roll the timestamp to the latest timestamp each time they hand work out to a miner. This helps ensure the block timestamps are as accurate as possible.
Transaction Script Validation Optimizations
Transaction script validation has been almost completely rewritten to significantly improve its speed and reduce the number of memory allocations. While this has many more benefits than enumerated here, probably the most important ones for most stakeholders are:
- Votes can be cast more quickly which helps reduce the number of missed votes
- Blocks are able to propagate more quickly throughout the network, which in turn further improves votes times
- The initial sync process is around 20-25% faster
Automatic External IP Address Discovery
In order for nodes to fully participate in the peer-to-peer network, they must be publicly accessible and made discoverable by advertising their external IP address. This is typically made slightly more complicated since most users run their nodes on networks behind Network Address Translation (NAT).
Previously, in addition to configuring the network firewall and/or router to allow inbound conne...
v1.4.0
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:
- chaincfg: Add checkpoints for 1.4.0 release (decred/dcrd#1547)
- chaincfg: Introduce agenda for fixlnseqlocks vote (decred/dcrd#1578)
- multi: Enable vote for DCP0004 (decred/dcrd#1579)
- peer: Add support for specifying ua comments (decred/dcrd#1413)
- blockmanager: Fast relay checked tip blocks (decred/dcrd#1443)
- multi: Latest consensus active from simnet genesis (decred/dcrd#1482)
- server: Always allow whitelisted inbound peers (decred/dcrd#1516)
Transaction relay (memory pool):
- blockmanager: handle txs in invalid blocks (decred/dcrd#1430)
- mempool: Remove potential negative locktime check (decred/dcrd#1455)
- mempool: Stake-related readability improvements (decred/dcrd#1456)
RPC:
- multi: Include additional fields on RPC tx results (decred/dcrd#1441)
- rpcserver: Allow scripthash addrs in createrawsstx (decred/dcrd#1444)
- rpcserver: Remove createrawssgen RPC (decred/dcrd#1448)
- rpcclient: support getchaintips RPC (decred/dcrd#1469)
- multi: Add getblockchaininfo rpc (decred/dcrd#1479)
- rpcserver: Adds ability to allow alternative dns names for TLS (decred/dcrd#1476)
- multi: Cleanup recent alt DNS names additions (decred/dcrd#1493)
- multi: Cleanup getblock and getblockheader RPCs (decred/dcrd#1497)
- multi: Return total chain work in RPC results (decred/dcrd#1498)
- rpcserver: Improve GenerateNBlocks error message (decred/dcrd#1507)
- rpcserver: Fix verify progress calculation (decred/dcrd#1508)
- rpcserver: Fix sendrawtransaction error code (decred/dcrd#1512)
- blockchain: Notify stake states after connected block (decred/dcrd#1515)
- rpcserver: bump version to 5.0. (...
v1.4.0-rc3
2019-01-28
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-rc3.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-rc3
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:
- chaincfg: Add checkpoints for 1.4.0 release (decred/dcrd#1547)
- chaincfg: Introduce agenda for fixlnseqlocks vote (decred/dcrd#1578)
- multi: Enable vote for DCP0004 (decred/dcrd#1579)
- peer: Add support for specifying ua comments (decred/dcrd#1413)
- blockmanager: Fast relay checked tip blocks (decred/dcrd#1443)
- multi: Latest consensus active from simnet genesis (decred/dcrd#1482)
- server: Always allow whitelisted inbound peers (decred/dcrd#1516)
Transaction relay (memory pool):
- blockmanager: handle txs in invalid blocks (decred/dcrd#1430)
- mempool: Remove potential negative locktime check (decred/dcrd#1455)
- mempool: Stake-related readability improvements (decred/dcrd#1456)
RPC:
- multi: Include additional fields on RPC tx results (decred/dcrd#1441)
- rpcserver: Allow scripthash addrs in createrawsstx (decred/dcrd#1444)
- rpcserver: Remove createrawssgen RPC (decred/dcrd#1448)
- rpcclient: support getchaintips RPC (decred/dcrd#1469)
- multi: Add getblockchaininfo rpc (decred/dcrd#1479)
- rpcserver: Adds ability to allow alternative dns names for TLS (decred/dcrd#1476)
- multi: Cleanup recent alt DNS names additions (decred/dcrd#1493)
- multi: Cleanup getblock and getblockheader RPCs (decred/dcrd#1497)
- multi: Return total chain work in RPC results (decred/dcrd#1498)
- rpcserver: Improve GenerateNBlocks error message (decred/dcrd#1507)
- rpcserver: Fix verify progress calculation (decred/dcrd#1508)
- rpcserver: Fix sendrawtransaction error code (decred/dcrd#1512)
- blockchain: Notify stake states after connected block ([decred/dcrd#1515](https://github.com/decred/dcrd...
v1.4.0-rc2
2018-01-04
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-rc2.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-rc2
This release of dcrd 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.
It is highly recommended that everyone upgrade to this latest release as it contains many important scalability improvements and smart fee estimation.
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
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 block 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
, and 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:
- chaincfg: Add checkpoints for 1.4.0 release (decred/dcrd#1547)
- peer: Add support for specifying ua comments (decred/dcrd#1413)
- blockmanager: Fast relay checked tip blocks (decred/dcrd#1443)
- multi: Latest consensus active from simnet genesis (decred/dcrd#1482)
- server: Always allow whitelisted inbound peers (decred/dcrd#1516)
Transaction relay (memory pool):
- blockmanager: handle txs in invalid blocks (decred/dcrd#1430)
- mempool: Remove potential negative locktime check (decred/dcrd#1455)
- mempool: Stake-related readability improvements (decred/dcrd#1456)
RPC:
- multi: Include additional fields on RPC tx results (decred/dcrd#1441)
- rpcserver: Allow scripthash addrs in createrawsstx (decred/dcrd#1444)
- rpcserver: Remove createrawssgen RPC (decred/dcrd#1448)
- rpcclient: support getchaintips RPC (decred/dcrd#1469)
- multi: Add getblockchaininfo rpc (decred/dcrd#1479)
- rpcserver: Adds ability to allow alternative dns names for TLS (decred/dcrd#1476)
- multi: Cleanup recent alt DNS names additions (decred/dcrd#1493)
- multi: Cleanup getblock and getblockheader RPCs (decred/dcrd#1497)
- multi: Return total chain work in RPC results (decred/dcrd#1498)
- rpcserver: Improve GenerateNBlocks error message (decred/dcrd#1507)
- rpcserver: Fix verify progress calculation (decred/dcrd#1508)
- rpcserver: Fix sendrawtransaction error code (decred/dcrd#1512)
- blockchain: Notify stake states after connected block (decred/dcrd#1515)
- rpcserver: bump version to 5.0. (decred/dcrd#1531)
- rpcclient: support getblockchaininfo RPC (decred/dcrd#1539)
dcrd command-line flags and configuration:
- config: add --maxsameip to limit # of conns to same IP (decred/dcrd#1517)
Documentation:
- docs: Update docs for versioned modules (decred/dcrd#1391)
- docs: Update for fees package (decred/dcrd#1540)
- docs: Revamp main README.md and update docs (decred/dcrd#1447)
- docs: Use relative versions in contrib checklist (decred/dcrd#1451)
- docs: Use the correct binary name (decred/dcrd#1461)
- docs: Add github pull request template (decred/dcrd#1474)
- docs: Use unix line ending in mod hierarchy gv (decred/dcrd#1487)
- docs: Add README badge and link for goreportcard ([d...
v1.4.0-rc1
2018-12-13
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-rc1.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-rc1
This release of dcrd 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.
It is highly recommended that everyone upgrade to this latest release as it contains many important scalability improvements and smart fee estimation.
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
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 block 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
, and 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:
- chaincfg: Add checkpoints for 1.4.0 release (decred/dcrd#1547)
- peer: Add support for specifying ua comments (decred/dcrd#1413)
- blockmanager: Fast relay checked tip blocks (decred/dcrd#1443)
- multi: Latest consensus active from simnet genesis (decred/dcrd#1482)
- server: Always allow whitelisted inbound peers (decred/dcrd#1516)
Transaction relay (memory pool):
- blockmanager: handle txs in invalid blocks (decred/dcrd#1430)
- mempool: Remove potential negative locktime check (decred/dcrd#1455)
- mempool: Stake-related readability improvements (decred/dcrd#1456)
RPC:
- multi: Include additional fields on RPC tx results (decred/dcrd#1441)
- rpcserver: Allow scripthash addrs in createrawsstx (decred/dcrd#1444)
- rpcserver: Remove createrawssgen RPC (decred/dcrd#1448)
- rpcclient: support getchaintips RPC (decred/dcrd#1469)
- multi: Add getblockchaininfo rpc (decred/dcrd#1479)
- rpcserver: Adds ability to allow alternative dns names for TLS (decred/dcrd#1476)
- multi: Cleanup recent alt DNS names additions (decred/dcrd#1493)
- multi: Cleanup getblock and getblockheader RPCs (decred/dcrd#1497)
- multi: Return total chain work in RPC results (decred/dcrd#1498)
- rpcserver: Improve GenerateNBlocks error message (decred/dcrd#1507)
- rpcserver: Fix verify progress calculation (decred/dcrd#1508)
- rpcserver: Fix sendrawtransaction error code (decred/dcrd#1512)
- blockchain: Notify stake states after connected block (decred/dcrd#1515)
- rpcserver: bump version to 5.0. (decred/dcrd#1531)
- rpcclient: support getblockchaininfo RPC (decred/dcrd#1539)
dcrd command-line flags and configuration:
- config: add --maxsameip to limit # of conns to same IP (decred/dcrd#1517)
Documentation:
- docs: Update docs for versioned modules (decred/dcrd#1391)
- docs: Update for fees package (decred/dcrd#1540)
- docs: Revamp main README.md and update docs (decred/dcrd#1447)
- docs: Use relative versions in contrib checklist (decred/dcrd#1451)
- docs: Use the correct binary name (decred/dcrd#1461)
- docs: Add github pull request template (decred/dcrd#1474)
- docs: Use unix line ending in mod hierarchy gv (decred/dcrd#1487)
- docs: Add README badge and link for goreportcard ([de...
v1.3.1
2018-10-15
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.3.1.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.
decrediton v1.3.1
This is primarily a patch release for Decrediton, but also reveals some exciting new functionality to the entire user base. Previously, SPV wallet functionality and Politeia access were hidden behind configuration settings (which were only accessible by knowledgeable users). Now Politeia is seen by default underneath the new "Governance" page that can be found on the left sidebar. SPV can be enabled by going to the Settings page and updating the option (this will cause decrediton to reset to begin using the systems correctly).
We are also proud to add our first round of translations. We have added French, Spanish, German, Japanese, Chinese (simplified). If you are a long standing community member and notice any incorrect translations you can open an issue on [github](https://www.github.com/decred decrediton/issues) or contact the team on the slack/matrix chat platforms. While we appreciate input from all users, the translation process demands some existing trust, so we'd prefer only users with existing relationships with the project submit translation issues. We're attempting to formalize our translations procedures to allow input from more users. Our goal is to provide the same high quality content for all users, no
matter their preferred language. Our tentative next list of languages are: Russian, Arabic, Malay/Tagalog.
Bug Fixes
-
The underlying dcrwallet was updated to include a required fix that caused panics in some wallets with certain transactions (typically stakepool fee txs).
-
Non-US languages were causing some odd strings to be shown.
-
Use streaming GetTickets with dcrwallet to ease decrediton loading. Now tickets are requested on a smaller basis to avoid issues with very large voting wallets.
Other improvements
-
Add proper wallet and daemon closing procedures to allow settings changes for SPV and Advanced Daemon. Now the user does not have to completely close the wallet to enable these changes. There is also an added button to close the current wallet and select a new one to load.
-
The transaction details page has received a design update from Eeter. We have added the "Rebroadcast Transaction" button if the transaction is "Pending." This should be close to the final form of the page with some minor tweaks.
-
Updated Help page with more links and updated design from Eeter.
-
Update major some major dependencies and others: Webpack 4, Electron 2.0.8
-
Retain number of tickets to purchase upon unsuccessful attempt.
Changelog
All commits since the last release may be viewed on GitHub here.
v1.3.0
2018-09-21
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.3.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.3.0
This release of dcrd contains significant performance enhancements for startup speed, validation, and network operations that directly benefit lightweight clients, such as SPV (Simplified Payment Verification) wallets, a policy change to reduce the default minimum transaction fee rate, a new public test network version, removal of bloom filter support, infrastructure improvements, and other quality assurance changes.
It is highly recommended that everyone upgrade to this latest release as it contains many important scalability improvements and is required to be able to use the new public test network.
Downgrade Warning
The database format in v1.3.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
Reduction of Default Minimum Transaction Fee Rate Policy
The default setting for the policy which specifies the minimum transaction fee rate that will be accepted and relayed to the rest of the network has been reduced to 0.0001 DCR/kB (10,000 atoms/kB) from the previous value of 0.001 DCR/kB (100,000 atoms/kB).
Transactions should not attempt to use the reduced fee rate until the majority of the network has upgraded to this release as otherwise the transactions will likely have issues relaying through the network since old nodes that have not updated their policy will reject them due to not paying a high enough fee.
Several Speed Optimizations
This release contains several enhancements to improve speed for startup, the initial sync process, validation, and network operations.
In order to achieve these speedups, there is a one time database migration, as previously mentioned, that typically only takes a few seconds to complete on most hardware.
Further Improved Startup Speed
The startup time has been improved by roughly 2x on both slower hard disk drives (HDDs) and solid state drives (SSDs) as compared to v1.2.0.
Significantly Faster Network Operations
The ability to serve information to other peers on the network has received several optimizations which, in addition to generally improving the overall scalability and throughput of the network, also directly benefits SPV (Simplified Payment Verification) clients by delivering the block headers they require roughly 3x to 4x faster.
Signature Hash Calculation Optimization
Part of validating that transactions are only spending coins that the owner has authorized involves ensuring the validity of cryptographic signatures. This release provides a speedup of about 75% to a key portion of that validation which results in a roughly 20% faster initial sync process.
Bloom Filters Removal
Bloom filters were deprecated as of the last release in favor of the more recent privacy-preserving GCS committed filters. Consequently, this release removes support for bloom filters completely. There are no known clients which use bloom filters, however, if there are any unknown clients which use them, those clients will need to be updated to use the GCS committed filters accordingly.
Public Test Network Version 3
The public test network has been reset and bumped to version 3. All of the new consensus rules voted in by version 2 of the public test network have been retained and are therefore active on the new version 3 test network without having to vote them in again.
Changelog
All commits since the last release may be viewed on GitHub here.
Protocol and network:
- chaincfg: Add checkpoints for 1.3.0 release (decred/dcrd#1385)
- multi: Remove everything to do about bloom filters (decred/dcrd#1162)
- wire: Remove TxSerializeWitnessSigning (decred/dcrd#1180)
- addrmgr: Skip low quality addresses for getaddr (decred/dcrd#1135)
- addrmgr: Fix race in save peers (decred/dcrd#1259)
- server: Only respond to getaddr once per conn (decred/dcrd#1257)
- peer: Rework version negotiation (decred/dcrd#1250)
- peer: Allow OnVersion callback to reject peer (decred/dcrd#1251)
- server: Reject outbound conns to non-full nodes (decred/dcrd#1252)
- peer: Improve net address service adverts (decred/dcrd#1253)
- addrmgr: Expose method to update services (decred/dcrd#1254)
- server: Update addrmgr services on outbound conns (decred/dcrd#1254)
- server: Use local inbound var in version handler (decred/dcrd#1255)
- server: Only advertise local addr when current (decred/dcrd#1256)
- server: Use local addr var in version handler (decred/dcrd#1258)
- chaincfg: split params into per-network files (decred/dcrd#1265)
- server: Always reply to getheaders with headers (decred/dcrd#1295)
- addrmgr: skip never-successful addresses (decred/dcrd#1313)
- multi: Introduce default coin type for SLIP0044 (decred/dcrd#1293)
- blockchain: Modify diff redux logic for testnet (decred/dcrd#1387)
- multi: Reset testnet and bump to version 3 (decred/dcrd#1387)
- multi: Remove testnet version 2 defs and refs (decred/dcrd#1387)
Transaction relay (memory pool):
- policy: Lower default relay fee to 0.0001/kB (decred/dcrd#1202)
- mempool: Use blockchain for tx expiry check (decred/dcrd#1199)
- mempool: use secp256k1 functions directly (decred/dcrd#1213)
- mempool: Make expiry pruning self contained (decred/dcrd#1378)
- mempool: Stricter orphan evaluation and eviction (decred/dcrd#1207)
- mempool: use secp256k1 functions directly (decred/dcrd#1213)
- multi: add specialized rebroadcast handling for stake txs (decred/dcrd#979)
- mempool: Make expiry pruning self contained (decred/dcrd#1378)
RPC:
- rpcserver: Improve JSON-RPC compatibility (decred/dcrd#1150)
- rpcserver: Correct rebroadcastwinners handler (decred/dcrd#1234)
- dcrjson: Add Expiry field to CreateRawTransactionCmd (decred/dcrd#1149)
- dcrjson: add estimatesmartfee (decred/dcrd#1201)
- rpc: Use upstream gorilla/websocket (decred/dcrd#1218)
- dcrjson: add createvotingaccount and dropvotingaccount rpc methods (decred/dcrd#1217)
- multi: Change NoSplitTransaction param to SplitTx (decred/dcrd#1231)
- rpcclient: pass default value for NewPurchaseTicketCmd's comment param (decred/dcrd#1232)
- multi: No winning ticket ntfns for big reorg depth (decred/dcrd#1235)
- multi: modify PurchaseTicketCmd (decred/dcrd#1241)
- multi: move extension commands into associated normal command files (decred/dcrd#1238)
- dcrjson: Fix NewCreateRawTransactionCmd comment (decred/dcrd#1262)
- multi: revert TicketChange addition to PurchaseTicketCmd (decred/dcrd#1278)
- rpcclient: Implement fmt.Stringer for Client (decred/dcrd#1298)
- multi: add amount field to TransactionInput (decred/dcrd#1297)
- dcrjson: Ready GetStakeInfoResult for SPV wallets ([decred/dcrd#1333](https://git...